Commit graph

5345 commits

Author SHA1 Message Date
bors
ed2a5115da Auto merge of #61147 - estebank:suggest-as-ref, r=oli-obk
When encountering move error on an `Option`, suggest using `as_ref`

Fix #61109, cc #15457.
2019-05-27 01:10:22 +00:00
Mazdak Farrokhzad
6ae3c2b2a4
Rollup merge of #61189 - oli-obk:turbofish_ice, r=varkor
Turn turbo 🐟 🍨 into an error

Master branch part of #60989

r? @varkor
2019-05-26 02:13:33 +02:00
Mazdak Farrokhzad
b4a3d44a87
Rollup merge of #61144 - estebank:issue-61108, r=matthewjasper
Suggest borrowing for loop head on move error

Fix #61108.
2019-05-26 02:13:27 +02:00
Mazdak Farrokhzad
24cc368118
Rollup merge of #61087 - estebank:parsepalooza, r=Centril
Tweak `self` arg not as first argument of a method diagnostic

Mention that `self` is only valid on "associated functions"
```
error: unexpected `self` argument in function
  --> $DIR/self-in-function-arg.rs:1:15
   |
LL | fn foo(x:i32, self: i32) -> i32 { self }
   |               ^^^^ not valid as function argument
   |
   = note: `self` is only valid as the first argument of an associated function
```

When it is a method, mention it must be first
```
error: unexpected `self` argument in function
  --> $DIR/trait-fn.rs:4:20
   |
LL |     fn c(foo: u32, self) {}
   |                    ^^^^ must be the first associated function argument
```

Move a bunch of error recovery methods to `diagnostics.rs` away from `parser.rs`.

Fix #51547. CC #60015.
2019-05-26 02:13:24 +02:00
Oliver Scherer
a15df94b69 Turn ICE on type arguments on variables into an error 2019-05-25 21:16:27 +02:00
Esteban Küber
4e68ddca90 review comments: move back some methods and clean up wording 2019-05-25 12:15:06 -07:00
Esteban Küber
976541884f Tweak self arg not as first argument of a method diagnostic
Mention that `self` is only valid on "associated functions"
```
error: unexpected `self` argument in function
  --> $DIR/self-in-function-arg.rs:1:15
   |
LL | fn foo(x:i32, self: i32) -> i32 { self }
   |               ^^^^ not valid as function argument
   |
   = note: `self` is only valid as the first argument of an associated function
```

When it is a method, mention it must be first
```
error: unexpected `self` argument in function
  --> $DIR/trait-fn.rs:4:20
   |
LL |     fn c(foo: u32, self) {}
   |                    ^^^^ must be the first associated function argument
```
2019-05-25 12:05:18 -07:00
Esteban Küber
1cc42ea675 Add support for suggesting as_ref to Result accesses 2019-05-25 11:12:41 -07:00
Oliver Scherer
0b732aa607 Update nll ui tests 2019-05-25 17:21:29 +02:00
Oliver Scherer
dd327951eb Update ui tests 2019-05-25 10:07:02 +02:00
Oliver Scherer
fa459a08e1 Fix rebase fallout 2019-05-25 10:07:02 +02:00
Oliver Scherer
28198bb3be Update ui tests 2019-05-25 10:07:02 +02:00
Oliver Scherer
fa17654f79 Make ConstValue::Slice solely take [u8] and str 2019-05-25 10:07:01 +02:00
Mazdak Farrokhzad
19b5a10346
Rollup merge of #61138 - varkor:async-await-tests, r=cramertj
Move async/await tests to their own folder

This moves run-pass and ui async/await tests to their own folder `src/test/ui/async-await` and organises some into subfolders. (It does not move rustdoc tests for async/await.)

I also did some drive-by cleaning up of issues/error code tests into their own folders (which already existed). These are in separate commits, so easy to separate out if that's more desirable.

r? @cramertj
2019-05-25 04:55:45 +02:00
Mazdak Farrokhzad
57139e2055
Rollup merge of #61118 - pnkfelix:issue-60654-dont-ice-on-gat, r=varkor
Dont ICE on an attempt to use GAT without feature gate

Fix #60654
2019-05-25 04:55:39 +02:00
Mazdak Farrokhzad
8e5e1a0d3c
Rollup merge of #61113 - SimonSapin:fnbox, r=alexcrichton
Deprecate `FnBox`. `Box<dyn FnOnce()>` can be called directly, since 1.35

FCP completion: https://github.com/rust-lang/rust/issues/28796#issuecomment-439731515
2019-05-25 04:55:36 +02:00
Esteban Küber
4b0963653e When encountering move error on an Option, suggest using as_ref 2019-05-24 19:10:00 -07:00
Esteban Küber
274b7e49e0 Suggest borrowing for loop head on move error 2019-05-24 18:23:43 -07:00
varkor
c91ab64048 Add extra arc_wake 2019-05-25 00:23:15 +01:00
Esteban Küber
ee7593e0ac Revert changes that belong to separate PR 2019-05-24 15:17:32 -07:00
varkor
79816bb9e3 Delete stray .stderr 2019-05-24 22:36:57 +01:00
varkor
aea04009e4 Move error code tests to error code folder 2019-05-24 22:07:35 +01:00
varkor
cb7e0d0dd3 Add issues folder in async-await 2019-05-24 22:06:09 +01:00
varkor
06b85709d4 Add drop-order folder in test/ui/async-await 2019-05-24 22:05:57 +01:00
varkor
df26dd8fd1 Add auxiliary issue file 2019-05-24 22:03:14 +01:00
varkor
d289a5ba40 Move some issues into the issues folder 2019-05-24 21:49:52 +01:00
varkor
59762baf8a Move async/await tests to test/ui/async-await 2019-05-24 21:49:34 +01:00
Esteban Küber
5c5fa775e5 review comments 2019-05-24 11:50:21 -07:00
Esteban Küber
24160171e4 Tweak macro parse errors when reaching EOF during macro call parse
- Add detail on origin of current parser when reaching EOF and stop
  saying "found <eof>" and point at the end of macro calls
- Handle empty `cfg_attr` attribute
- Reword empty `derive` attribute error
2019-05-24 11:49:33 -07:00
Felix S. Klock II
c235ba4d0b Regression test for issue #60654. 2019-05-24 15:15:55 +02:00
bors
d96c01e77c Auto merge of #60803 - varkor:remove-in-place-syntax, r=petrochenkov
Remove `ObsoleteInPlace`

The in place syntax has been deprecated for over a year. As it is, this is accumulated cruft: the error messages are unlikely to be helpful any more and it conflicts with some useful syntax (e.g. const generics in some instances).

It may be that removing `Token::LArrow` is backwards-incompatible. We should do a crater run to check.

cc @eddyb
2019-05-24 09:54:17 +00:00
Simon Sapin
73fd3497d4 Deprecate FnBox. Box<dyn FnOnce()> can be called directly, since 1.35
FCP completion: https://github.com/rust-lang/rust/issues/28796#issuecomment-439731515
2019-05-24 09:11:04 +02:00
bors
46805805ab Auto merge of #60984 - matthewjasper:borrowck-error-reporting-cleanup, r=pnkfelix
Borrowck error reporting cleanup

* Don't show variables created by desugarings in borrowck errors
* Move "conflict error" reporting to it's own module, so that `error_reporting` contains only common error reporting methods.
* Remove unused `ScopeTree` parameter.

r? @pnkfelix
2019-05-24 03:07:07 +00:00
varkor
36f654262d Update tests 2019-05-24 01:27:32 +01:00
Mazdak Farrokhzad
92fda925e3
Rollup merge of #61098 - varkor:fix-overflowing-literal-in-loop, r=estebank
Fix overflowing literal lint in loops

Fixes https://github.com/rust-lang/rust/issues/60459.

r? @estebank
2019-05-24 01:30:25 +02:00
Mazdak Farrokhzad
26f3528434
Rollup merge of #61056 - euclio:custom-discriminant-error, r=estebank
tweak discriminant on non-nullary enum diagnostic

Adds notes pointing at the non-nullary variants, and uses "custom
discriminant" language to be consistent with the Reference.

Fixes #61039.

r? @estebank
2019-05-24 01:30:21 +02:00
Mazdak Farrokhzad
b9459e7e4d
Rollup merge of #61054 - estebank:mut-ref-reassign, r=zackmdavis
Suggest dereferencing on assignment to mutable borrow

Fix #33570
2019-05-24 01:30:20 +02:00
varkor
12de24ce81 Add test for denying overflowing literal in loop 2019-05-23 21:48:26 +01:00
varkor
3e4cefe1bd Update unreachable loop patterns test 2019-05-23 21:39:36 +01:00
Esteban Küber
7fbbcfaafd Add regression test for negative case 2019-05-23 10:32:01 -07:00
John Kåre Alsaker
e77096b08c Remove subtle Default impl for Value 2019-05-23 18:51:47 +02:00
Andy Russell
3cbf5864a6
tweak discriminant on non-nullary enum diagnostic
Adds notes pointing at the non-nullary variants, and uses "custom
discriminant" language to be consistent with the Reference.
2019-05-23 11:13:48 -04:00
bors
27cc0db7a2 Auto merge of #60965 - petrochenkov:lit3, r=matklad
syntax: Continue refactoring literals

A follow up to https://github.com/rust-lang/rust/pull/60679.

a2fd002bd5: Similarly to `EscapeError`, literal parsing now produces a `LitError`.
This way we can get rid of `diag: Option<(Span, &Handler)>` in interfaces while leaving attr/mod alone.

d9516d1120: Gathers all components of a literal token in a single struct.
2019-05-23 13:28:27 +00:00
Vadim Petrochenkov
90d15e7704 syntax: Some code cleanup 2019-05-23 12:46:41 +03:00
Vadim Petrochenkov
694f76d561 syntax: More consistent wording for some literal parsing errors 2019-05-23 12:44:05 +03:00
Vadim Petrochenkov
fcc2f92f45 syntax: Return named errors from literal parsing functions 2019-05-23 12:44:05 +03:00
bors
f688ba6089 Auto merge of #61075 - Centril:rollup-1ugmcqu, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #60981 (Bump compiler-builtins to 0.1.15)
 - #61014 (Make -Zemit-artifact-notifications also emit the artifact type)
 - #61043 (Disable LLVM/debug assertions in gnu-full-bootstrap)
 - #61046 (Fix ICE with inconsistent macro matchers)
 - #61055 (Solaris CI: Build with dilos2 stable)
 - #61057 (Revert "Add implementations of last in terms of next_back on a bunch of DoubleEndedIterators.")
 - #61073 (librustc_errors: Remove unused annotation style `OldSchoolNoteText`)

Failed merges:

r? @ghost
2019-05-23 07:31:24 +00:00
Mazdak Farrokhzad
1ea0b1d274
Rollup merge of #61046 - mark-i-m:transcribe-fix, r=petrochenkov
Fix ICE with inconsistent macro matchers

Fixes #61033

r? @petrochenkov
2019-05-23 08:37:15 +02:00
Mazdak Farrokhzad
e4e97caba0
Rollup merge of #61014 - jsgf:emit-artifact-type, r=alexcrichton
Make -Zemit-artifact-notifications also emit the artifact type

This is easier for tooling to handle than trying to reverse-engineer the type from the filename extension. The field name and value is intended to reflect the `--emit` command-line option.

Related issues https://github.com/rust-lang/rust/issues/60988 https://github.com/rust-lang/rust/issues/58465
cc @alexcrichton
2019-05-23 08:37:12 +02:00
bors
85334c5092 Auto merge of #60174 - matthewjasper:add-match-arm-scopes, r=pnkfelix
Add match arm scopes and other scope fixes

* Add drop and lint scopes for match arms.
* Lint attributes are now respected on match arms.
* Make sure we emit a StorageDead if we diverge when initializing a temporary.
* Adjust MIR pretty printing of scopes for locals.
* Don't generate duplicate lint scopes for `let statements`.
* Add some previously missing fake borrows for matches.

closes #46525

cc @rust-lang/compiler
2019-05-23 04:48:21 +00:00