Commit graph

4799 commits

Author SHA1 Message Date
Esteban Küber
e929d19edc review comments 2019-03-22 21:54:19 -07:00
Esteban Küber
ac3290e8d9 Add suggestion to use &*var when &str: From<String> is expected 2019-03-22 20:38:14 -07:00
Mazdak Farrokhzad
4be19e36d9
Rollup merge of #59347 - petrochenkov:nomake, r=davidtwco
Move one test from run-make-fulldeps to ui

The test was written when `--extern` without path didn't exist.
2019-03-22 19:31:40 +01:00
Mazdak Farrokhzad
de08d0ec2d
Rollup merge of #59323 - euclio:enum-instead-of-variant, r=varkor
use suggestions for "enum instead of variant" error
2019-03-22 19:31:36 +01:00
Mazdak Farrokhzad
9d33d6fa4b
Rollup merge of #59322 - estebank:diag-tweak, r=davidtwco
Tweak incorrect escaped char diagnostic
2019-03-22 19:31:34 +01:00
Mazdak Farrokhzad
11429b2d13
Rollup merge of #59321 - varkor:unify-E0109-E0110-E0111, r=davidtwco
Unify E0109, E0110 and E0111

Error messages should no longer be restricted to specific generic kinds.
2019-03-22 19:31:33 +01:00
Mazdak Farrokhzad
0407c642f5
Rollup merge of #59297 - euclio:field-method-suggestions, r=estebank
convert field/method confusion help to suggestions
2019-03-22 19:31:28 +01:00
Mazdak Farrokhzad
5a0e4510a8
Rollup merge of #59266 - estebank:struct-parse-recovery, r=petrochenkov
Do not complain about non-existing fields after parse recovery

When failing to parse struct-like enum variants, the ADT gets recorded
as having no fields. Record that we have actually recovered during
parsing of this variant to avoid complaing about non-existing fields
when actually using it.

Fix #57361.
2019-03-22 19:31:24 +01:00
Mazdak Farrokhzad
225b6baae7
Rollup merge of #59190 - greg-kargin:master, r=sanxiyn
consistent naming for Rhs type parameter in libcore/ops

Rename RHS type parameter occurrences RHS->Rhs to make it consistent throughout files and follow naming conventions.
2019-03-22 19:31:21 +01:00
bors
2210e9a6a9 Auto merge of #59035 - estebank:closure-instacall, r=davidtwco
When encountering `||{}()`, suggest the likely intended `(||{})()`

Fix #55851.
2019-03-22 11:18:11 +00:00
bors
a85ec7c2c0 Auto merge of #59031 - estebank:recover-from-comaless, r=petrochenkov
Recover from missing comma between enum variants and from bad `pub` kw

Fix #56579. Fix #56473.
2019-03-22 04:52:10 +00:00
bors
86466a397a Auto merge of #58981 - estebank:elseless-if, r=davidtwco
Point at coercion reason for `if` expressions without else clause if caused by return type

```
error[E0317]: if may be missing an else clause
  --> $DIR/if-without-else-as-fn-expr.rs:2:5
   |
LL |   fn foo(bar: usize) -> usize {
   |                         ----- found `usize` because of this return type
LL | /     if bar % 5 == 0 {
LL | |         return 3;
LL | |     }
   | |_____^ expected (), found usize
   |
   = note: expected type `()`
              found type `usize`
   = note: `if` expressions without `else` must evaluate to `()`
```

Fix #25228.
2019-03-21 23:42:41 +00:00
Vadim Petrochenkov
6389478d70 Move one test from run-make-fulldeps to ui 2019-03-21 23:36:50 +03:00
Vadim Petrochenkov
fa013896f7 hygiene: Fix identifier comparison in impl overlap check 2019-03-21 22:20:10 +03:00
Andy Russell
16a8abe1bb
use suggestions for "enum instead of variant" error 2019-03-21 11:04:15 -04:00
Esteban Küber
a8120d660a Tweak incorrect escaped char diagnostic 2019-03-20 11:45:25 -07:00
varkor
aff175b328 Update tests 2019-03-20 18:32:52 +00:00
Andy Russell
a291d4e94c
convert field/method confusion help to suggestions 2019-03-19 15:56:29 -04:00
Mazdak Farrokhzad
8ebe2acb7b
Rollup merge of #59116 - estebank:comma-sugg, r=petrochenkov
Be more discerning on when to attempt suggesting a comma in a macro invocation

Fix #58796.
2019-03-19 15:16:55 +01:00
Mazdak Farrokhzad
d4ef74b2da
Rollup merge of #57847 - clarcharr:dbg_no_params, r=Centril
dbg!() without parameters

Fixes #57845.
2019-03-19 15:16:46 +01:00
Mazdak Farrokhzad
c1975dbd34
Rollup merge of #57729 - pnkfelix:issue-55748-pat-types-are-constraints-on-bindings-too, r=nikomatsakis
extra testing of how NLL handles wildcard type `_`

test that wildcard type `_` is not duplicated by `type Foo<X> = (X, X);` and potentially instantiated at different types when used in type ascriptions in let bindings.

(NLL's handling of this for the type ascription *expression form* is currently broken, or at least differs from what AST-borrowck does. I'll file a separate bug about that. Its not something critical to address since that expression is guarded by `#![feature(type_ascription)]`.)

cc #55748
2019-03-19 15:16:45 +01:00
bors
3bf064beaa Auto merge of #56462 - Zoxc:query-macro, r=oli-obk
Define queries using a proc macro

cc @rust-lang/compiler
2019-03-18 21:24:12 +00:00
bors
cd45b19bd2 Auto merge of #58872 - rep-nop:diagnostic-fix-56031, r=petrochenkov
Adds help message in error for invalid `impl for T` syntax

Fixes #56031.
2019-03-18 08:03:05 +00:00
John Kåre Alsaker
9e9d03fd66 Add load_cached query modifier and keep dep node names consistent with query names 2019-03-18 08:20:09 +01:00
John Kåre Alsaker
7d90547532 Define queries using a proc macro 2019-03-18 08:20:06 +01:00
Esteban Küber
6007e6f649 Do not complain about non-existing fields after parse recovery
When failing to parse struct-like enum variants, the ADT gets recorded
as having no fields. Record that we have actually recovered during
parsing of this variant to avoid complaing about non-existing fields
when actually using it.
2019-03-17 20:09:53 -07:00
bors
817d074e54 Auto merge of #59250 - bovinebuddha:filter_ui_revision_tests, r=petrochenkov
Filter ui revision tests

Updates UI test output filtering to also filter away test annotations for revisions:

Previously filtered: //~ ERROR [XXXX]
Now also filters: //[revision]~ ERROR [XXXX]

I reckon, if we have the one, we should have the other for consistency, its lack was probably an oversight (the existence of revision testing is not really well documented...)
2019-03-17 23:51:18 +00:00
bors
c82834e2b9 Auto merge of #58994 - oli-obk:deprecated_derive, r=petrochenkov
Hide deprecation warnings inside derive expansions

Fixes #58822
2019-03-17 20:49:55 +00:00
bors
f649c76e98 Auto merge of #59047 - petrochenkov:modnodefid, r=Centril
resolve: Account for new importable entities

Fixes the ICE encountered in https://github.com/rust-lang/rust/pull/58837
r? @Centril
2019-03-17 17:25:10 +00:00
Mathias Blikstad
704649d96d Removed obsolete .stderr test outputs 2019-03-17 17:01:59 +01:00
Mathias Blikstad
faed3a2b19 Updated UI test output to remove test annotations for revisions 2019-03-17 17:00:18 +01:00
Esteban Küber
1aa43af370 parse full visibility when recovering 2019-03-16 17:47:57 -07:00
Esteban Küber
b2b9555f95 Recover from incorrect pub kw in "reasonable" places 2019-03-16 17:47:57 -07:00
Esteban Küber
532dd4475b Recover from missing comma between enum variants 2019-03-16 17:47:00 -07:00
Oliver Scherer
a69e12c21b Don't report deprecation lints in derive expansions 2019-03-16 22:33:15 +01:00
Vadim Petrochenkov
6ad55b3dec syntax: Introduce Ident::can_be_raw 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
5cb5083909 syntax_ext: Validate #[proc_macro_derive] input better
Tweak some error wording
2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
e2009ea5ff Add tests for malformed input in #[proc_macro_derive] 2019-03-16 23:13:15 +03:00
kennytm
524a7afcf2
Rollup merge of #59201 - lambda:remove-repr-simd-isize-usize-restriction, r=alexcrichton
Remove restriction on isize/usize in repr(simd)

As discussed in #55078, there's no known reason for this restriction.

It's unlikely that repr(simd) will be stabilized in its current form, but
might as well remove some restrictions on it.

This removes the branch in `is_machine` which returns false for these types.
`is_machine` is only used for the repr(simd) type validation check.
2019-03-16 22:40:49 +08:00
kennytm
8601c79aff
Rollup merge of #59169 - tmandry:allow-features-flag, r=cramertj
Add `-Z allow_features=...` flag

Adds a compiler option to allow only whitelisted features.

For projects on nightly that want to prevent feature-creep (and maybe, someday, move off of nightly). Not being able to enforce this has been a problem on Fuchsia and at other big companies.

This doesn't support filtering edition feature flags, but someone is welcome to add that if they need it.
2019-03-16 22:40:33 +08:00
kennytm
bbe5f3d08b
Rollup merge of #59146 - estebank:suggest-return-lt, r=varkor
Suggest return lifetime when there's only one named lifetime

Fix #29094.
2019-03-16 22:40:15 +08:00
kennytm
3bf4398ed2
Rollup merge of #59139 - oli-obk:unions_are_a_good_thing, r=RalfJung
Unregress using scalar unions in constants.

fixes https://github.com/rust-lang/rust/issues/59126

r? @RalfJung

I also made a bunch of these invariants panic instead of report an error.
2019-03-16 22:40:10 +08:00
kennytm
464478fbbb
Rollup merge of #59118 - seanmonstar:alias-where-self-ice, r=alexreg
rustc: fix ICE when trait alias has bare Self

Fixes https://github.com/rust-lang/rust/issues/59029
2019-03-16 22:40:07 +08:00
kennytm
6fbd55385d
Rollup merge of #59079 - euclio:macro-semi, r=estebank
add suggestions to invalid macro item error

r? @estebank
2019-03-16 22:39:49 +08:00
Vadim Petrochenkov
47ee538a28 resolve: Account for new importable entities 2019-03-16 16:08:05 +03:00
Grigorii Kargin
7f395d2b3a fix tests 2019-03-16 02:56:26 +03:00
Brian Campbell
5303c1b90b Remove restriction on isize/usize in repr(simd)
As discussed in #55078, there's no known reason for this restriction.

It's unlikely that repr(simd) will be stabilized in its current form, but
might as well remove some restrictions on it.

This removes the branch in `is_machine` which returns false for these types.
`is_machine` is only used for the repr(simd) type validation check.
2019-03-15 09:42:02 -04:00
Eduard-Mihai Burtescu
22d6c55cdf rustc: print ExistentialProjection with spaces around =, e.g. dyn Foo<A = X>. 2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
a54a41ce47 rustc: provide DisambiguatedDefPathData in ty::print. 2019-03-15 13:25:10 +02:00