diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2023-11-06 21:06:20 +0000 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2023-11-29 18:47:31 +0000 |
| commit | ed084a93433d214edae3ee739444cbd442baf6fc (patch) | |
| tree | 28af6542a71aacf116e5a6b51eb6c3166497ef29 /tests/ui/parser | |
| parent | 44fd3b4d4648c9ea2dfa052fe5d3dbb2dfb4f492 (diff) | |
| download | rust-ed084a93433d214edae3ee739444cbd442baf6fc.tar.gz rust-ed084a93433d214edae3ee739444cbd442baf6fc.zip | |
When parsing patterns, bubble all errors except reserved idents that aren't likely to appear in for head or match arm
Diffstat (limited to 'tests/ui/parser')
| -rw-r--r-- | tests/ui/parser/mut-patterns.rs | 2 | ||||
| -rw-r--r-- | tests/ui/parser/mut-patterns.stderr | 40 |
2 files changed, 40 insertions, 2 deletions
diff --git a/tests/ui/parser/mut-patterns.rs b/tests/ui/parser/mut-patterns.rs index 8b83d6ab2f8..f2d2df0af29 100644 --- a/tests/ui/parser/mut-patterns.rs +++ b/tests/ui/parser/mut-patterns.rs @@ -27,7 +27,7 @@ pub fn main() { struct r#yield(u8, u8); let mut mut yield(become, await) = r#yield(0, 0); //~^ ERROR `mut` on a binding may not be repeated - //~| ERROR `mut` must be attached to each individual binding + //~| ERROR `mut` must be followed by a named binding //~| ERROR expected identifier, found reserved keyword `yield` //~| ERROR expected identifier, found reserved keyword `become` //~| ERROR expected identifier, found keyword `await` diff --git a/tests/ui/parser/mut-patterns.stderr b/tests/ui/parser/mut-patterns.stderr index d91440d7859..6559cf09cdf 100644 --- a/tests/ui/parser/mut-patterns.stderr +++ b/tests/ui/parser/mut-patterns.stderr @@ -72,5 +72,43 @@ help: escape `become` to use it as an identifier LL | let mut mut yield(r#become, await) = r#yield(0, 0); | ++ -error: aborting due to 9 previous errors +error: expected identifier, found keyword `await` + --> $DIR/mut-patterns.rs:28:31 + | +LL | let mut mut yield(become, await) = r#yield(0, 0); + | ^^^^^ expected identifier, found keyword + | +help: escape `await` to use it as an identifier + | +LL | let mut mut yield(become, r#await) = r#yield(0, 0); + | ++ + +error: `mut` must be followed by a named binding + --> $DIR/mut-patterns.rs:28:9 + | +LL | let mut mut yield(become, await) = r#yield(0, 0); + | ^^^^^^^^ help: remove the `mut` prefix + | + = note: `mut` may be followed by `variable` and `variable @ pattern` + +error: `mut` must be attached to each individual binding + --> $DIR/mut-patterns.rs:37:9 + | +LL | let mut W(mut a, W(b, W(ref c, W(d, B { box f })))) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add `mut` to each binding: `W(mut a, W(mut b, W(ref c, W(mut d, B { box mut f }))))` + | + = note: `mut` may be followed by `variable` and `variable @ pattern` + +error: expected identifier, found `x` + --> $DIR/mut-patterns.rs:44:21 + | +LL | let mut $p = 0; + | ^^ expected identifier +... +LL | foo!(x); + | ------- in this macro invocation + | + = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: aborting due to 13 previous errors |
