Commit graph

23201 commits

Author SHA1 Message Date
Kampfkarren
1156ce6f54 Feedback 2019-04-10 19:22:43 -07:00
Kampfkarren
4af7cf37d4 Fix tests, I think 2019-04-10 14:39:51 -07:00
Kampfkarren
2b6143126d Fix error brought up by changing tabs to spaces 2019-04-10 12:14:53 -07:00
Kampfkarren
de02dd96fd Adhere to tidy script 2019-04-10 10:41:47 -07:00
Kampfkarren
4a938b5b3c Special error when using catch after try 2019-04-10 10:35:48 -07:00
bors
53b622a48a Auto merge of #56479 - mark-i-m:unsat, r=nikomatsakis
Better lifetime error message

I propose the following error message as more user-friendly

r? @nikomatsakis
2019-01-19 02:25:38 +00:00
Mazdak Farrokhzad
2a830e47e1
Rollup merge of #57725 - estebank:parens, r=michaelwoerister
Use structured suggestion to surround struct literal with parenthesis
2019-01-18 22:56:48 +01:00
Mazdak Farrokhzad
42accf06dc
Rollup merge of #57720 - dlrobertson:fix_57521, r=estebank
Fix suggestions given mulitple bad lifetimes

When given multiple lifetimes prior to type parameters in generic
parameters, do not ICE and print the correct suggestion.

r? @estebank

CC @pnkfelix

Fixes: #57521
2019-01-18 22:56:47 +01:00
Mazdak Farrokhzad
0eb4bdc5f1
Rollup merge of #57657 - AB1908:regression-test-case, r=nikomatsakis
Add regression test to close #53787

Fixes #53787
2019-01-18 22:56:44 +01:00
Mazdak Farrokhzad
d2300afd66
Rollup merge of #57650 - AB1908:master, r=petrochenkov
librustc_metadata: Pass a default value when unwrapping a span

Fixes #57323.

When compiling with `static-nobundle` a-la

`rustc -l static-nobundle=nonexistent main.rs`

we now get a neat output in the form of:

```
error[E0658]: kind="static-nobundle" is feature gated (see issue #37403)
  |
  = help: add #![feature(static_nobundle)] to the crate attributes to enable

error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
```
The build and tests completed successfully on my machine. Should I be adding a new test?
2019-01-18 22:56:43 +01:00
Mazdak Farrokhzad
f63e3d2ef4
Rollup merge of #57635 - euclio:path-separators, r=michaelwoerister
use structured macro and path resolve suggestions
2019-01-18 22:56:42 +01:00
Mazdak Farrokhzad
49c74e4c85
Rollup merge of #57350 - folex:master, r=estebank
Better error note on unimplemented Index trait for string

fixes #56740

I've tried to compile suggestion from comments in the issue #56740, but unsure of it. So I'm open to advice :)

Current output will be like this:
```rust
error[E0277]: the type `str` cannot be indexed by `{integer}`
  --> $DIR/str-idx.rs:3:17
   |
LL |     let c: u8 = s[4]; //~ ERROR the type `str` cannot be indexed by `{integer}`
   |                 ^^^^ `str` cannot be indexed by `{integer}`
   |
   = help: the trait `std::ops::Index<{integer}>` is not implemented for `str`
   = note: you can use `.chars().nth()` or `.bytes().nth()`
           see chapter in The Book <https://doc.rust-lang.org/book/ch08-02-strings.html#indexing-into-strings>

error: aborting due to previous error

For more information about this error, try `rustc --explain E0277`.
```

`x.py test src/test/ui` succeeded and I've also tested output manually by compiling the following code:
```rust
fn _f() {
    let s = std::string::String::from("hello");
    let _c = s[0];

    let s = std::string::String::from("hello");
    let mut _c = s[0];

    let s = "hello";
    let _c = s[0];

    let s = "hello";
    let mut _c = &s[0];
}
```

Not sure if some docs should be changed too. I will also fix error message in the [Book :: Indexing into Strings](db53e2e3cd/src/ch08-02-strings.md (indexing-into-strings)) if that PR will get approved :)
2019-01-18 22:56:40 +01:00
Mazdak Farrokhzad
0dd4bfa356
Rollup merge of #57302 - sinkuu:unused_assignments_fp, r=estebank
Fix unused_assignments false positive

Fixes #22630.

In liveness analysis, make `continue` jump to the loop condition's `LiveNode` (`cond` as in comment) instead of the loop's one (`expr`).

069b0c4108/src/librustc/middle/liveness.rs (L1358-L1370)
2019-01-18 22:56:39 +01:00
Mazdak Farrokhzad
b9cb5db5e8
Rollup merge of #57107 - mjbshaw:thread_local_test, r=nikomatsakis
Add a regression test for mutating a non-mut #[thread_local]

This should close #54901 since the regression has since been fixed.
2019-01-18 22:56:34 +01:00
bors
c76f3c374f Auto merge of #57737 - Centril:rollup, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #56594 (Remove confusing comment about ideally using `!` for `c_void`)
 - #57340 (Use correct tracking issue for c_variadic)
 - #57357 (Cleanup PartialEq docs.)
 - #57551 (resolve: Add a test for issue #57539)
 - #57636 (Fix sources sidebar not showing up)
 - #57646 (Fixes text becoming invisible when element targetted)
 - #57654 (Add some links in std::fs.)
 - #57683 (Document Unpin in std::prelude documentation)
 - #57685 (Enhance `Pin` impl applicability for `PartialEq` and `PartialOrd`.)
 - #57710 (Fix non-clickable urls)

Failed merges:

r? @ghost
2019-01-18 19:08:20 +00:00
Mazdak Farrokhzad
4091ca0183
Rollup merge of #57551 - petrochenkov:regrtest, r=nikomatsakis
resolve: Add a test for issue #57539

Add a test for the bugfix regression reported in https://github.com/rust-lang/rust/issues/57539

Closes https://github.com/rust-lang/rust/issues/57539
2019-01-18 18:06:32 +01:00
Esteban Küber
ec3c5b0199 Use structured suggestion to surround struct literal with parenthesis 2019-01-17 21:19:30 -08:00
Mark Mansi
db2d243e9e fix compat-mode ui test 2019-01-17 22:04:27 -06:00
Mark Mansi
274d293cab Update tests 2019-01-17 20:39:06 -06:00
Dan Robertson
e3ba6ed3f5
Fix suggestions given mulitple bad lifetimes
When given multiple lifetimes prior to type parameters in generic
parameters, do not ICE and print the correct suggestion.
2019-01-18 01:10:14 +00:00
Wesley Norris
f5413cd1e2 Bless test.
Bless test, remove submodule, and fix book entry.

bless test again? maybe it'll work this time...
2019-01-17 17:49:29 -05:00
Wesley Norris
80ee94c1f8 Minor changes to wording and formatting. 2019-01-17 17:26:24 -05:00
Wesley Norris
22e97da30a Bless test. 2019-01-17 17:26:24 -05:00
bors
6599946272 Auto merge of #57520 - alexreg:tidy-copyright-lint, r=Mark-Simulacrum
Add lint for copyright headers to 'tidy' tool

r? @Mark-Simulacrum

CC @centril
2019-01-17 07:36:37 +00:00
AB1908
1e3f475d64 Add test for linking non-existent static library 2019-01-17 03:40:36 +00:00
bors
c40b97796e Auto merge of #57392 - Xanewok:always-calc-glob-map, r=petrochenkov
Always calculate glob map but only for glob uses

Previously calculating glob map was *opt-in*, however it did record node id -> ident use for every use directive. This aims to see if we can unconditionally calculate the glob map and not regress performance.

Main motivation is to get rid of some of the moving pieces and simplify the compilation interface - this would allow us to entirely remove `CrateAnalysis`. Later, we could easily expose a relevant query, similar to the likes of `maybe_unused_trait_import` (so using precomputed data from the resolver, but which could be rewritten to be on-demand).

r? @nikomatsakis

Local perf run showed mostly noise (except `ctfe-stress-*`) but I'd appreciate if we could do a perf run run here and double-check that this won't regress performance.
2019-01-16 23:25:41 +00:00
AB1908
0edc5c9779 Fix error template 2019-01-16 23:08:42 +00:00
bors
ceb2512144 Auto merge of #57321 - petrochenkov:atokens, r=nikomatsakis
Implement basic input validation for built-in attributes

Correct top-level shape (`#[attr]` vs `#[attr(...)]` vs `#[attr = ...]`) is enforced for built-in attributes, built-in attributes must also fit into the "meta-item" syntax (aka the "classic attribute syntax").

For some subset of attributes (found by crater run), errors are lowered to deprecation warnings.

NOTE: This PR previously included https://github.com/rust-lang/rust/pull/57367 as well.
2019-01-16 15:01:20 +00:00
bors
cccaf9a8c6 Auto merge of #57416 - alexcrichton:remove-platform-intrinsics, r=nagisa
rustc: Remove platform intrinsics crate

This was originally attempted in #57048 but it was realized that we
could fully remove the crate via the `"unadjusted"` ABI on intrinsics.
This means that all intrinsics in stdsimd are implemented directly
against LLVM rather than using the abstraction layer provided here. That
ends up meaning that this crate is no longer used at all.

This crate developed long ago to implement the SIMD intrinsics, but we
didn't end up using it in the long run. In that case let's remove it!
2019-01-16 12:15:10 +00:00
AB1908
3f0a75d806 Remove trailing whitespace 2019-01-16 06:29:44 +00:00
AB1908
193809ec3a Add regression test to close #53787 2019-01-16 05:34:40 +00:00
Andy Russell
93b55365b5
use structured macro and path resolve suggestions 2019-01-15 11:27:58 -05:00
Mazdak Farrokhzad
cf436832f8
Rollup merge of #57587 - Aaron1011:fix/const-pat-ice, r=alexcrichton
Add 'rustc-env:RUST_BACKTRACE=0' to const-pat-ice test

This ensures that the test passes, regardless of what the user has set
RUST_BACKTRACE to.
2019-01-15 12:42:12 +01:00
Mazdak Farrokhzad
e8cfae4140
Rollup merge of #57467 - JohnTitor:implement-the-check-attribute-1, r=oli-obk
Implement `check_attribute` to forbid `#[allow_internal_unsafe]`

Fixes #56768.

r? @oli-obk
2019-01-15 12:42:08 +01:00
Mazdak Farrokhzad
5fa44c4b5a
Rollup merge of #57352 - arielb1:no-manual-markers, r=nikomatsakis
forbid manually impl'ing one of an object type's marker traits

This shouldn't break compatibility for crates that do not use
`feature(optin_builtin_traits)`, because as the test shows, it is
only possible to impl a marker trait for a trait object in the crate the
marker trait is defined in, which must define
`feature(optin_builtin_traits)`.

Fixes #56934.

r? @nikomatsakis
2019-01-15 12:42:06 +01:00
Mazdak Farrokhzad
c4b8735872
Rollup merge of #56044 - matthewjasper:function-param-drop-order, r=cramertj
Drop partially bound function parameters in the expected order

Given the function

```rust
fn foo((_x, _): (LogDrop, LogDrop), (_, _y): (LogDrop, LogDrop)) {}
```

Prior to 1.12.0 we dropped both `_x` and `_y` before the rest of their
respective parameters, since then we dropped `_x` and `_y` after. The
original order appears to be the correct order, as the value created
later is dropped first, so we revert to that order and add a test for
it.

While this is technically a breaking change, I can't work out how
anyone could be relying on this without making their code very
brittle. If this is considered to be too likely to break real world code
then I can revert the change and change the test to check for the
current order.
2019-01-15 12:42:04 +01:00
Yuki Okushi
bd1551e46e Fix tests 2019-01-15 18:02:46 +09:00
Ariel Ben-Yehuda
d38a59f8b5 fix test output changing in rebase 2019-01-15 00:27:00 +02:00
Yuki Okushi
a7623e70d5 Add error check 2019-01-15 06:56:21 +09:00
Yuki Okushi
efd111e502 Add test 2019-01-15 06:55:17 +09:00
Mazdak Farrokhzad
b03d414e3c
Rollup merge of #57585 - estebank:trailing-semicolon, r=petrochenkov
Recover from item trailing semicolon

CC https://github.com/rust-lang/rfcs/pull/2479

r? @petrochenkov
2019-01-14 20:31:58 +01:00
Mazdak Farrokhzad
feb48f334d
Rollup merge of #57572 - Centril:unaccept-extern-in-path, r=petrochenkov
Unaccept `extern_in_paths`

Based on completed fcp-close in https://github.com/rust-lang/rust/issues/55600, this removes `extern_in_path` (e.g. `extern::foo::bar`) from the language. The changes are primarily reversing 32db83b16e.

Closes https://github.com/rust-lang/rust/issues/55600

r? @petrochenkov
2019-01-14 20:31:57 +01:00
Mazdak Farrokhzad
2f7a226c4d
Rollup merge of #57540 - estebank:eval-more, r=petrochenkov
Modify some parser diagnostics to continue evaluating beyond the parser

Continue evaluating further errors after parser errors on:
 - trailing type argument attribute
 - lifetime in incorrect location
 - incorrect binary literal
 - missing `for` in `impl Trait for Foo`
 - type argument in `where` clause
 - incorrect float literal
 - incorrect `..` in pattern
 - associated types
 - incorrect discriminator value variant error

and others. All of these were found by making `continue-parse-after-error` `true` by default to identify errors that would need few changes. There are now only a handful of errors that have any change with `continue-parse-after-error` enabled.

These changes make it so `rust` _won't_ stop evaluation after finishing parsing, enabling type checking errors to be displayed on the existing code without having to fix the parse errors.

Each commit has an individual diagnostic change with their corresponding tests.

CC #48724.
2019-01-14 20:31:55 +01:00
Mazdak Farrokhzad
816e31b1c6
Rollup merge of #57481 - euclio:bool-cast-suggestion, r=estebank
provide suggestion for invalid boolean cast

Also, don't suggest comparing to zero for non-numeric expressions.
2019-01-14 20:31:53 +01:00
Alex Crichton
7616daabc7 rustc: Remove platform intrinsics crate
This was originally attempted in #57048 but it was realized that we
could fully remove the crate via the `"unadjusted"` ABI on intrinsics.
This means that all intrinsics in stdsimd are implemented directly
against LLVM rather than using the abstraction layer provided here. That
ends up meaning that this crate is no longer used at all.

This crate developed long ago to implement the SIMD intrinsics, but we
didn't end up using it in the long run. In that case let's remove it!
2019-01-14 09:54:23 -08:00
Michael Bradshaw
f4ded5b559 Add a regression test for mutating a non-mut #[thread_local] 2019-01-14 08:02:33 -08:00
bors
d10680818b Auto merge of #57592 - Centril:rollup, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #57232 (Parallelize and optimize parts of HIR map creation)
 - #57418 (MetadataOnlyCodegenBackend: run the collector only once)
 - #57465 (Stabilize cfg_target_vendor)
 - #57477 (clarify resolve typo suggestion)
 - #57556 (privacy: Fix private-in-public check for existential types)
 - #57584 (Remove the `connect_timeout_unroutable` test.)

Failed merges:

r? @ghost
2019-01-14 13:03:24 +00:00
Mazdak Farrokhzad
4112aef5f7
Rollup merge of #57556 - petrochenkov:privexist, r=arielb1
privacy: Fix private-in-public check for existential types

Fixes https://github.com/rust-lang/rust/issues/53546 (regression from https://github.com/rust-lang/rust/pull/56878)

r? @arielb1
2019-01-14 11:31:54 +01:00
Mazdak Farrokhzad
0b7d8f99ed
Rollup merge of #57477 - euclio:clarify-lev-suggestion, r=zackmdavis
clarify resolve typo suggestion

Include the kind of the binding that we're suggesting, and use a
structured suggestion.

Fixes #53445.
2019-01-14 11:31:53 +01:00
Mazdak Farrokhzad
74cc0be8f6
Rollup merge of #57465 - jethrogb:jb/stablize-cfg-target-vendor, r=joshtriplett,Centril
Stabilize cfg_target_vendor

This stabilizes the use of `cfg(target_vendor = "...")` and removes the corresponding `cfg_target_vendor` feature. Other unstable cfgs remain behind their existing feature gates.

This functionality was added back in 2015 in #28612 to complete the coverage of target tuples (`<arch><sub>-<vendor>-<os>-<env>`). [RFC 131](https://github.com/rust-lang/rfcs/blob/master/text/0131-target-specification.md) governs the target specification, not including `target_vendor` seems to have just been an oversight. `target_os`, `target_family`, and `target_arch` are stable as of 1.0.0. `target_env` was also not mentioned in RFC 131, was added in #24777, never behind a feature_gate, and insta-stable at 1.1.0.

The functionality is tested in [test/run-pass/cfg/cfg-target-vendor.rs](https://github.com/rust-lang/rust/blob/master/src/test/run-pass/cfg/cfg-target-vendor.rs).

Closes #29718
2019-01-14 11:31:52 +01:00