diff --git a/src/test/ui/parser/match-vec-invalid.rs b/src/test/ui/parser/match-vec-invalid.rs index d14fdc4e22e3..00f4374b256d 100644 --- a/src/test/ui/parser/match-vec-invalid.rs +++ b/src/test/ui/parser/match-vec-invalid.rs @@ -1,12 +1,13 @@ 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 diff --git a/src/test/ui/parser/match-vec-invalid.stderr b/src/test/ui/parser/match-vec-invalid.stderr index 49d5a83c5a9f..0956ac21b7f1 100644 --- a/src/test/ui/parser/match-vec-invalid.stderr +++ b/src/test/ui/parser/match-vec-invalid.stderr @@ -30,13 +30,16 @@ LL | [1, tail @ .., tail @ ..] => {}, | | | 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`. diff --git a/src/test/ui/parser/pat-lt-bracket-6.rs b/src/test/ui/parser/pat-lt-bracket-6.rs index 69c4bfb23c2f..7b9721830993 100644 --- a/src/test/ui/parser/pat-lt-bracket-6.rs +++ b/src/test/ui/parser/pat-lt-bracket-6.rs @@ -1,6 +1,9 @@ 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 diff --git a/src/test/ui/parser/pat-lt-bracket-6.stderr b/src/test/ui/parser/pat-lt-bracket-6.stderr index 45270b314a9b..201465b2c850 100644 --- a/src/test/ui/parser/pat-lt-bracket-6.stderr +++ b/src/test/ui/parser/pat-lt-bracket-6.stderr @@ -1,23 +1,11 @@ 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; | ^^ @@ -25,7 +13,16 @@ 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}` -Some errors have detailed explanations: E0425, E0658. -For more information about an error, try `rustc --explain E0425`. +error: aborting due to 3 previous errors + +Some errors have detailed explanations: E0308, E0658. +For more information about an error, try `rustc --explain E0308`. diff --git a/src/test/ui/parser/pat-lt-bracket-7.rs b/src/test/ui/parser/pat-lt-bracket-7.rs index 1060d705e6e3..020fdb845e8b 100644 --- a/src/test/ui/parser/pat-lt-bracket-7.rs +++ b/src/test/ui/parser/pat-lt-bracket-7.rs @@ -1,5 +1,8 @@ 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 diff --git a/src/test/ui/parser/pat-lt-bracket-7.stderr b/src/test/ui/parser/pat-lt-bracket-7.stderr index 3e4bff7cbd75..17557efa49e8 100644 --- a/src/test/ui/parser/pat-lt-bracket-7.stderr +++ b/src/test/ui/parser/pat-lt-bracket-7.stderr @@ -1,21 +1,18 @@ 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`.