fn main() {
- let a = Vec::new();
+ let a: &[u8] = &[];
match a {
[1, tail @ .., tail @ ..] => {},
//~^ ERROR identifier `tail` is bound more than once in the same pattern
//~| ERROR subslice patterns are unstable
//~| ERROR subslice patterns are unstable
//~| ERROR `..` can only be used once per slice pattern
- //~| ERROR expected an array or slice, found `std::vec::Vec<_>`
_ => ()
}
}
+
+const RECOVERY_WITNESS: () = 0; //~ ERROR mismatched types
| |
| previously used here
-error[E0529]: expected an array or slice, found `std::vec::Vec<_>`
- --> $DIR/match-vec-invalid.rs:4:9
+error[E0308]: mismatched types
+ --> $DIR/match-vec-invalid.rs:13:30
|
-LL | [1, tail @ .., tail @ ..] => {},
- | ^^^^^^^^^^^^^^^^^^^^^^^^^ pattern cannot match with input type `std::vec::Vec<_>`
+LL | const RECOVERY_WITNESS: () = 0;
+ | ^ expected (), found integer
+ |
+ = note: expected type `()`
+ found type `{integer}`
error: aborting due to 5 previous errors
-Some errors have detailed explanations: E0416, E0529, E0658.
-For more information about an error, try `rustc --explain E0416`.
+Some errors have detailed explanations: E0308, E0416, E0658.
+For more information about an error, try `rustc --explain E0308`.
fn main() {
+ struct Test(&'static u8, [u8; 0]);
+ let x = Test(&0, []);
+
let Test(&desc[..]) = x; //~ ERROR: expected one of `)`, `,`, or `@`, found `[`
- //~^ ERROR cannot find value `x` in this scope
- //~| ERROR cannot find tuple struct/variant `Test` in this scope
- //~| ERROR subslice patterns are unstable
+ //~^ ERROR subslice patterns are unstable
}
+
+const RECOVERY_WITNESS: () = 0; //~ ERROR mismatched types
error: expected one of `)`, `,`, or `@`, found `[`
- --> $DIR/pat-lt-bracket-6.rs:2:19
+ --> $DIR/pat-lt-bracket-6.rs:5:19
|
LL | let Test(&desc[..]) = x;
| ^ expected one of `)`, `,`, or `@` here
-error[E0425]: cannot find value `x` in this scope
- --> $DIR/pat-lt-bracket-6.rs:2:27
- |
-LL | let Test(&desc[..]) = x;
- | ^ not found in this scope
-
-error[E0531]: cannot find tuple struct/variant `Test` in this scope
- --> $DIR/pat-lt-bracket-6.rs:2:9
- |
-LL | let Test(&desc[..]) = x;
- | ^^^^ not found in this scope
-
error[E0658]: subslice patterns are unstable
- --> $DIR/pat-lt-bracket-6.rs:2:20
+ --> $DIR/pat-lt-bracket-6.rs:5:20
|
LL | let Test(&desc[..]) = x;
| ^^
= note: for more information, see https://github.com/rust-lang/rust/issues/62254
= help: add `#![feature(slice_patterns)]` to the crate attributes to enable
-error: aborting due to 4 previous errors
+error[E0308]: mismatched types
+ --> $DIR/pat-lt-bracket-6.rs:9:30
+ |
+LL | const RECOVERY_WITNESS: () = 0;
+ | ^ expected (), found integer
+ |
+ = note: expected type `()`
+ found type `{integer}`
+
+error: aborting due to 3 previous errors
-Some errors have detailed explanations: E0425, E0658.
-For more information about an error, try `rustc --explain E0425`.
+Some errors have detailed explanations: E0308, E0658.
+For more information about an error, try `rustc --explain E0308`.
fn main() {
- for thing(x[]) in foo {} //~ ERROR: expected one of `)`, `,`, or `@`, found `[`
- //~^ ERROR cannot find value `foo` in this scope
- //~| ERROR cannot find tuple struct/variant `thing` in this scope
+ struct Thing(u8, [u8; 0]);
+ let foo = core::iter::empty();
+
+ for Thing(x[]) in foo {} //~ ERROR: expected one of `)`, `,`, or `@`, found `[`
}
+
+const RECOVERY_WITNESS: () = 0; //~ ERROR mismatched types
error: expected one of `)`, `,`, or `@`, found `[`
- --> $DIR/pat-lt-bracket-7.rs:2:16
+ --> $DIR/pat-lt-bracket-7.rs:5:16
|
-LL | for thing(x[]) in foo {}
+LL | for Thing(x[]) in foo {}
| ^ expected one of `)`, `,`, or `@` here
-error[E0425]: cannot find value `foo` in this scope
- --> $DIR/pat-lt-bracket-7.rs:2:23
+error[E0308]: mismatched types
+ --> $DIR/pat-lt-bracket-7.rs:8:30
|
-LL | for thing(x[]) in foo {}
- | ^^^ not found in this scope
-
-error[E0531]: cannot find tuple struct/variant `thing` in this scope
- --> $DIR/pat-lt-bracket-7.rs:2:9
+LL | const RECOVERY_WITNESS: () = 0;
+ | ^ expected (), found integer
|
-LL | for thing(x[]) in foo {}
- | ^^^^^ not found in this scope
+ = note: expected type `()`
+ found type `{integer}`
-error: aborting due to 3 previous errors
+error: aborting due to 2 previous errors
-For more information about this error, try `rustc --explain E0425`.
+For more information about this error, try `rustc --explain E0308`.