Test that _ @ subpat
is syntactically rejected.
This commit is contained in:
parent
e39abcfad9
commit
c37bd26eaa
@ -0,0 +1,16 @@
|
||||
// Here we check that `_ @ sub` is syntactically invalid
|
||||
// and comes with a nice actionable suggestion.
|
||||
|
||||
fn main() {}
|
||||
|
||||
#[cfg(FALSE)]
|
||||
fn wild_before_at_is_bad_syntax() {
|
||||
let _ @ a = 0;
|
||||
//~^ ERROR pattern on wrong side of `@`
|
||||
let _ @ ref a = 0;
|
||||
//~^ ERROR pattern on wrong side of `@`
|
||||
let _ @ ref mut a = 0;
|
||||
//~^ ERROR pattern on wrong side of `@`
|
||||
let _ @ (a, .., b) = (0, 1, 2, 3);
|
||||
//~^ ERROR left-hand side of `@` must be a binding
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
error: pattern on wrong side of `@`
|
||||
--> $DIR/wild-before-at-syntactically-rejected.rs:8:9
|
||||
|
|
||||
LL | let _ @ a = 0;
|
||||
| -^^^-
|
||||
| | |
|
||||
| | binding on the right, should be on the left
|
||||
| pattern on the left, should be on the right
|
||||
| help: switch the order: `a @ _`
|
||||
|
||||
error: pattern on wrong side of `@`
|
||||
--> $DIR/wild-before-at-syntactically-rejected.rs:10:9
|
||||
|
|
||||
LL | let _ @ ref a = 0;
|
||||
| -^^^-----
|
||||
| | |
|
||||
| | binding on the right, should be on the left
|
||||
| pattern on the left, should be on the right
|
||||
| help: switch the order: `ref a @ _`
|
||||
|
||||
error: pattern on wrong side of `@`
|
||||
--> $DIR/wild-before-at-syntactically-rejected.rs:12:9
|
||||
|
|
||||
LL | let _ @ ref mut a = 0;
|
||||
| -^^^---------
|
||||
| | |
|
||||
| | binding on the right, should be on the left
|
||||
| pattern on the left, should be on the right
|
||||
| help: switch the order: `ref mut a @ _`
|
||||
|
||||
error: left-hand side of `@` must be a binding
|
||||
--> $DIR/wild-before-at-syntactically-rejected.rs:14:9
|
||||
|
|
||||
LL | let _ @ (a, .., b) = (0, 1, 2, 3);
|
||||
| -^^^----------
|
||||
| | |
|
||||
| | also a pattern
|
||||
| interpreted as a pattern, not a binding
|
||||
|
|
||||
= note: bindings are `x`, `mut x`, `ref x`, and `ref mut x`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
Loading…
x
Reference in New Issue
Block a user