diff options
| author | Caio <c410.f3r@gmail.com> | 2021-01-16 15:54:05 -0300 |
|---|---|---|
| committer | Caio <c410.f3r@gmail.com> | 2021-01-16 19:46:54 -0300 |
| commit | ad35979c50366d6b0fbcda99215f1c4e926e5dab (patch) | |
| tree | 8bc4fd6168831ee45cf114456cc70d4cf49266d8 /src/test/ui/parser | |
| parent | 63a83c5f55801b17b77adf690db397d17c706c48 (diff) | |
| download | rust-ad35979c50366d6b0fbcda99215f1c4e926e5dab.tar.gz rust-ad35979c50366d6b0fbcda99215f1c4e926e5dab.zip | |
Move some tests to more reasonable directories - 2
Address comments Update limits
Diffstat (limited to 'src/test/ui/parser')
42 files changed, 584 insertions, 0 deletions
diff --git a/src/test/ui/parser/auxiliary/issue-21146-inc.rs b/src/test/ui/parser/auxiliary/issue-21146-inc.rs new file mode 100644 index 00000000000..32a3b9dcc35 --- /dev/null +++ b/src/test/ui/parser/auxiliary/issue-21146-inc.rs @@ -0,0 +1,3 @@ +// include file for issue-21146.rs + +parse_error diff --git a/src/test/ui/parser/can-begin-expr-check.rs b/src/test/ui/parser/can-begin-expr-check.rs new file mode 100644 index 00000000000..8974d9f48c1 --- /dev/null +++ b/src/test/ui/parser/can-begin-expr-check.rs @@ -0,0 +1,20 @@ +pub fn main() { + + return; + return (); + return as (); + return return as (); + return return return; + + return if true { + () + } else { + () + }; + + loop { + return break as (); + } + + return enum; //~ ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found keyword `enum` +} diff --git a/src/test/ui/parser/can-begin-expr-check.stderr b/src/test/ui/parser/can-begin-expr-check.stderr new file mode 100644 index 00000000000..d674fc36bc2 --- /dev/null +++ b/src/test/ui/parser/can-begin-expr-check.stderr @@ -0,0 +1,8 @@ +error: expected one of `.`, `;`, `?`, `}`, or an operator, found keyword `enum` + --> $DIR/can-begin-expr-check.rs:19:12 + | +LL | return enum; + | ^^^^ expected one of `.`, `;`, `?`, `}`, or an operator + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-20616-1.rs b/src/test/ui/parser/issue-20616-1.rs new file mode 100644 index 00000000000..49e9cb310c1 --- /dev/null +++ b/src/test/ui/parser/issue-20616-1.rs @@ -0,0 +1,36 @@ +// We need all these 9 issue-20616-N.rs files +// because we can only catch one parsing error at a time + + + +type Type_1_<'a, T> = &'a T; + + +type Type_1<'a T> = &'a T; //~ error: expected one of `,`, `:`, or `>`, found `T` + + +//type Type_2 = Type_1_<'static ()>; // error: expected `,` or `>` after lifetime name, found `(` + + +//type Type_3<T> = Box<T,,>; // error: expected type, found `,` + + +//type Type_4<T> = Type_1_<'static,, T>; // error: expected type, found `,` + + +type Type_5_<'a> = Type_1_<'a, ()>; + + +//type Type_5<'a> = Type_1_<'a, (),,>; // error: expected type, found `,` + + +//type Type_6 = Type_5_<'a,,>; // error: expected type, found `,` + + +//type Type_7 = Box<(),,>; // error: expected type, found `,` + + +//type Type_8<'a,,> = &'a (); // error: expected ident, found `,` + + +//type Type_9<T,,> = Box<T>; // error: expected ident, found `,` diff --git a/src/test/ui/parser/issue-20616-1.stderr b/src/test/ui/parser/issue-20616-1.stderr new file mode 100644 index 00000000000..81604623785 --- /dev/null +++ b/src/test/ui/parser/issue-20616-1.stderr @@ -0,0 +1,8 @@ +error: expected one of `,`, `:`, or `>`, found `T` + --> $DIR/issue-20616-1.rs:9:16 + | +LL | type Type_1<'a T> = &'a T; + | ^ expected one of `,`, `:`, or `>` + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-20616-2.rs b/src/test/ui/parser/issue-20616-2.rs new file mode 100644 index 00000000000..f108ae5de14 --- /dev/null +++ b/src/test/ui/parser/issue-20616-2.rs @@ -0,0 +1,36 @@ +// We need all these 9 issue-20616-N.rs files +// because we can only catch one parsing error at a time + + + +type Type_1_<'a, T> = &'a T; + + +//type Type_1<'a T> = &'a T; // error: expected `,` or `>` after lifetime name, found `T` + + +type Type_2 = Type_1_<'static ()>; //~ error: expected one of `,`, `:`, `=`, or `>`, found `(` + + +//type Type_3<T> = Box<T,,>; // error: expected type, found `,` + + +//type Type_4<T> = Type_1_<'static,, T>; // error: expected type, found `,` + + +type Type_5_<'a> = Type_1_<'a, ()>; + + +//type Type_5<'a> = Type_1_<'a, (),,>; // error: expected type, found `,` + + +//type Type_6 = Type_5_<'a,,>; // error: expected type, found `,` + + +//type Type_7 = Box<(),,>; // error: expected type, found `,` + + +//type Type_8<'a,,> = &'a (); // error: expected ident, found `,` + + +//type Type_9<T,,> = Box<T>; // error: expected ident, found `,` diff --git a/src/test/ui/parser/issue-20616-2.stderr b/src/test/ui/parser/issue-20616-2.stderr new file mode 100644 index 00000000000..01e3d3dd7cc --- /dev/null +++ b/src/test/ui/parser/issue-20616-2.stderr @@ -0,0 +1,8 @@ +error: expected one of `,`, `:`, `=`, or `>`, found `(` + --> $DIR/issue-20616-2.rs:12:31 + | +LL | type Type_2 = Type_1_<'static ()>; + | ^ expected one of `,`, `:`, `=`, or `>` + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-21146.rs b/src/test/ui/parser/issue-21146.rs new file mode 100644 index 00000000000..19eaffc3edd --- /dev/null +++ b/src/test/ui/parser/issue-21146.rs @@ -0,0 +1,3 @@ +// error-pattern: expected one of `!` or `::`, found `<eof>` +include!("auxiliary/issue-21146-inc.rs"); +fn main() {} diff --git a/src/test/ui/parser/issue-21146.stderr b/src/test/ui/parser/issue-21146.stderr new file mode 100644 index 00000000000..c71fda3d63f --- /dev/null +++ b/src/test/ui/parser/issue-21146.stderr @@ -0,0 +1,8 @@ +error: expected one of `!` or `::`, found `<eof>` + --> $DIR/auxiliary/issue-21146-inc.rs:3:1 + | +LL | parse_error + | ^^^^^^^^^^^ expected one of `!` or `::` + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-34222-1.rs b/src/test/ui/parser/issue-34222-1.rs new file mode 100644 index 00000000000..d36dddc97bb --- /dev/null +++ b/src/test/ui/parser/issue-34222-1.rs @@ -0,0 +1,3 @@ +fn main() { + /// comment //~ ERROR found a documentation comment that doesn't document anything +} diff --git a/src/test/ui/parser/issue-34222-1.stderr b/src/test/ui/parser/issue-34222-1.stderr new file mode 100644 index 00000000000..0799656b06b --- /dev/null +++ b/src/test/ui/parser/issue-34222-1.stderr @@ -0,0 +1,11 @@ +error[E0585]: found a documentation comment that doesn't document anything + --> $DIR/issue-34222-1.rs:2:5 + | +LL | /// comment + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: doc comments must come before what they document, maybe a comment was intended with `//`? + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0585`. diff --git a/src/test/ui/parser/issue-43196.rs b/src/test/ui/parser/issue-43196.rs new file mode 100644 index 00000000000..0eefa01ce6d --- /dev/null +++ b/src/test/ui/parser/issue-43196.rs @@ -0,0 +1,6 @@ +fn main() { + | +} +//~^ ERROR expected `|`, found `}` +| +//~^ ERROR expected item, found `|` diff --git a/src/test/ui/parser/issue-43196.stderr b/src/test/ui/parser/issue-43196.stderr new file mode 100644 index 00000000000..4f7ed5cc6fd --- /dev/null +++ b/src/test/ui/parser/issue-43196.stderr @@ -0,0 +1,16 @@ +error: expected `|`, found `}` + --> $DIR/issue-43196.rs:3:1 + | +LL | | + | - expected `|` +LL | } + | ^ unexpected token + +error: expected item, found `|` + --> $DIR/issue-43196.rs:5:1 + | +LL | | + | ^ expected item + +error: aborting due to 2 previous errors + diff --git a/src/test/ui/parser/issue-44021.rs b/src/test/ui/parser/issue-44021.rs new file mode 100644 index 00000000000..0b9558cc91e --- /dev/null +++ b/src/test/ui/parser/issue-44021.rs @@ -0,0 +1,6 @@ +struct MyStruct; +impl MyStruct { + fn f() {|x, y} //~ ERROR expected one of `:`, `@`, or `|`, found `}` +} + +fn main() {} diff --git a/src/test/ui/parser/issue-44021.stderr b/src/test/ui/parser/issue-44021.stderr new file mode 100644 index 00000000000..b888cd989a6 --- /dev/null +++ b/src/test/ui/parser/issue-44021.stderr @@ -0,0 +1,8 @@ +error: expected one of `:`, `@`, or `|`, found `}` + --> $DIR/issue-44021.rs:3:18 + | +LL | fn f() {|x, y} + | ^ expected one of `:`, `@`, or `|` + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-45296.rs b/src/test/ui/parser/issue-45296.rs new file mode 100644 index 00000000000..f242c1d2937 --- /dev/null +++ b/src/test/ui/parser/issue-45296.rs @@ -0,0 +1,5 @@ +fn main() { + let unused = (); + + #![allow(unused_variables)] //~ ERROR not permitted in this context +} diff --git a/src/test/ui/parser/issue-45296.stderr b/src/test/ui/parser/issue-45296.stderr new file mode 100644 index 00000000000..c0d4ce1243e --- /dev/null +++ b/src/test/ui/parser/issue-45296.stderr @@ -0,0 +1,10 @@ +error: an inner attribute is not permitted in this context + --> $DIR/issue-45296.rs:4:5 + | +LL | #![allow(unused_variables)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them. + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-46186.fixed b/src/test/ui/parser/issue-46186.fixed new file mode 100644 index 00000000000..2cb5a4996ee --- /dev/null +++ b/src/test/ui/parser/issue-46186.fixed @@ -0,0 +1,8 @@ +// run-rustfix + +pub struct Struct { + pub a: usize, +} +//~^ ERROR expected item, found `;` + +fn main() {} diff --git a/src/test/ui/parser/issue-46186.rs b/src/test/ui/parser/issue-46186.rs new file mode 100644 index 00000000000..84cad38c5ec --- /dev/null +++ b/src/test/ui/parser/issue-46186.rs @@ -0,0 +1,8 @@ +// run-rustfix + +pub struct Struct { + pub a: usize, +}; +//~^ ERROR expected item, found `;` + +fn main() {} diff --git a/src/test/ui/parser/issue-46186.stderr b/src/test/ui/parser/issue-46186.stderr new file mode 100644 index 00000000000..0766c8a33df --- /dev/null +++ b/src/test/ui/parser/issue-46186.stderr @@ -0,0 +1,10 @@ +error: expected item, found `;` + --> $DIR/issue-46186.rs:5:2 + | +LL | }; + | ^ help: remove this semicolon + | + = help: braced struct declarations are not followed by a semicolon + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-51602.rs b/src/test/ui/parser/issue-51602.rs new file mode 100644 index 00000000000..0e96ca914a9 --- /dev/null +++ b/src/test/ui/parser/issue-51602.rs @@ -0,0 +1,6 @@ +fn main(){ + if i in 1..10 { +//~^ ERROR expected `{`, found keyword `in` + break; + } +} diff --git a/src/test/ui/parser/issue-51602.stderr b/src/test/ui/parser/issue-51602.stderr new file mode 100644 index 00000000000..d800890bca3 --- /dev/null +++ b/src/test/ui/parser/issue-51602.stderr @@ -0,0 +1,10 @@ +error: expected `{`, found keyword `in` + --> $DIR/issue-51602.rs:2:10 + | +LL | if i in 1..10 { + | -- ^^ expected `{` + | | + | this `if` expression has a condition, but no block + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-52496.rs b/src/test/ui/parser/issue-52496.rs new file mode 100644 index 00000000000..4e945365373 --- /dev/null +++ b/src/test/ui/parser/issue-52496.rs @@ -0,0 +1,12 @@ +struct Foo { bar: f64, baz: i64, bat: i64 } + +fn main() { + let _ = Foo { bar: .5, baz: 42 }; + //~^ ERROR float literals must have an integer part + //~| ERROR missing field `bat` in initializer of `Foo` + let bar = 1.5f32; + let _ = Foo { bar.into(), bat: -1, . }; + //~^ ERROR expected one of + //~| ERROR missing fields `bar`, `baz` in initializer of `Foo` + //~| ERROR expected identifier, found `.` +} diff --git a/src/test/ui/parser/issue-52496.stderr b/src/test/ui/parser/issue-52496.stderr new file mode 100644 index 00000000000..10fcc46f344 --- /dev/null +++ b/src/test/ui/parser/issue-52496.stderr @@ -0,0 +1,37 @@ +error: float literals must have an integer part + --> $DIR/issue-52496.rs:4:24 + | +LL | let _ = Foo { bar: .5, baz: 42 }; + | ^^ help: must have an integer part: `0.5` + +error: expected one of `,` or `}`, found `.` + --> $DIR/issue-52496.rs:8:22 + | +LL | let _ = Foo { bar.into(), bat: -1, . }; + | --- ^ expected one of `,` or `}` + | | + | while parsing this struct + +error: expected identifier, found `.` + --> $DIR/issue-52496.rs:8:40 + | +LL | let _ = Foo { bar.into(), bat: -1, . }; + | --- ^ expected identifier + | | + | while parsing this struct + +error[E0063]: missing field `bat` in initializer of `Foo` + --> $DIR/issue-52496.rs:4:13 + | +LL | let _ = Foo { bar: .5, baz: 42 }; + | ^^^ missing `bat` + +error[E0063]: missing fields `bar`, `baz` in initializer of `Foo` + --> $DIR/issue-52496.rs:8:13 + | +LL | let _ = Foo { bar.into(), bat: -1, . }; + | ^^^ missing `bar`, `baz` + +error: aborting due to 5 previous errors + +For more information about this error, try `rustc --explain E0063`. diff --git a/src/test/ui/parser/issue-58856-2.rs b/src/test/ui/parser/issue-58856-2.rs new file mode 100644 index 00000000000..9356d57b0e5 --- /dev/null +++ b/src/test/ui/parser/issue-58856-2.rs @@ -0,0 +1,14 @@ +struct Empty; + +trait Howness {} + +impl Howness for () { + fn how_are_you(&self -> Empty { + //~^ ERROR expected one of `)` or `,`, found `->` + //~| ERROR method `how_are_you` is not a member of trait `Howness` + Empty + } +} +//~^ ERROR non-item in item list + +fn main() {} diff --git a/src/test/ui/parser/issue-58856-2.stderr b/src/test/ui/parser/issue-58856-2.stderr new file mode 100644 index 00000000000..303b5eacc32 --- /dev/null +++ b/src/test/ui/parser/issue-58856-2.stderr @@ -0,0 +1,34 @@ +error: expected one of `)` or `,`, found `->` + --> $DIR/issue-58856-2.rs:6:26 + | +LL | fn how_are_you(&self -> Empty { + | - -^^ + | | | + | | help: `)` may belong here + | unclosed delimiter + +error: non-item in item list + --> $DIR/issue-58856-2.rs:11:1 + | +LL | impl Howness for () { + | - item list starts here +... +LL | } + | ^ + | | + | non-item starts here + | item list ends here + +error[E0407]: method `how_are_you` is not a member of trait `Howness` + --> $DIR/issue-58856-2.rs:6:5 + | +LL | / fn how_are_you(&self -> Empty { +LL | | +LL | | +LL | | Empty +LL | | } + | |_____^ not a member of trait `Howness` + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0407`. diff --git a/src/test/ui/parser/issue-60075.rs b/src/test/ui/parser/issue-60075.rs new file mode 100644 index 00000000000..e89d78ee8a6 --- /dev/null +++ b/src/test/ui/parser/issue-60075.rs @@ -0,0 +1,11 @@ +fn main() {} + +trait T { + fn qux() -> Option<usize> { + let _ = if true { + }); +//~^ ERROR non-item in item list +//~| ERROR mismatched closing delimiter: `)` +//~| ERROR expected one of `.`, `;` + Some(4) + } diff --git a/src/test/ui/parser/issue-60075.stderr b/src/test/ui/parser/issue-60075.stderr new file mode 100644 index 00000000000..e3b7f4ad420 --- /dev/null +++ b/src/test/ui/parser/issue-60075.stderr @@ -0,0 +1,29 @@ +error: expected one of `.`, `;`, `?`, `else`, or an operator, found `}` + --> $DIR/issue-60075.rs:6:10 + | +LL | }); + | ^ expected one of `.`, `;`, `?`, `else`, or an operator + +error: non-item in item list + --> $DIR/issue-60075.rs:6:11 + | +LL | trait T { + | - item list starts here +... +LL | }); + | ^ non-item starts here +... +LL | } + | - item list ends here + +error: mismatched closing delimiter: `)` + --> $DIR/issue-60075.rs:6:10 + | +LL | fn qux() -> Option<usize> { + | - unclosed delimiter +LL | let _ = if true { +LL | }); + | ^ mismatched closing delimiter + +error: aborting due to 3 previous errors + diff --git a/src/test/ui/parser/issue-62554.rs b/src/test/ui/parser/issue-62554.rs new file mode 100644 index 00000000000..cfd02183cb4 --- /dev/null +++ b/src/test/ui/parser/issue-62554.rs @@ -0,0 +1,6 @@ +// error-pattern:this file contains an unclosed delimiter +// error-pattern:xpected `{`, found `macro_rules` + +fn main() {} + +fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { diff --git a/src/test/ui/parser/issue-62554.stderr b/src/test/ui/parser/issue-62554.stderr new file mode 100644 index 00000000000..935d3842cdf --- /dev/null +++ b/src/test/ui/parser/issue-62554.stderr @@ -0,0 +1,71 @@ +error: this file contains an unclosed delimiter + --> $DIR/issue-62554.rs:6:89 + | +LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { + | - - - - - ^ + | | | | | | + | | | | | unclosed delimiter + | | | | unclosed delimiter + | | | unclosed delimiter + | unclosed delimiter unclosed delimiter + +error: this file contains an unclosed delimiter + --> $DIR/issue-62554.rs:6:89 + | +LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { + | - - - - - ^ + | | | | | | + | | | | | unclosed delimiter + | | | | unclosed delimiter + | | | unclosed delimiter + | unclosed delimiter unclosed delimiter + +error: this file contains an unclosed delimiter + --> $DIR/issue-62554.rs:6:89 + | +LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { + | - - - - - ^ + | | | | | | + | | | | | unclosed delimiter + | | | | unclosed delimiter + | | | unclosed delimiter + | unclosed delimiter unclosed delimiter + +error: this file contains an unclosed delimiter + --> $DIR/issue-62554.rs:6:89 + | +LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { + | - - - - - ^ + | | | | | | + | | | | | unclosed delimiter + | | | | unclosed delimiter + | | | unclosed delimiter + | unclosed delimiter unclosed delimiter + +error: this file contains an unclosed delimiter + --> $DIR/issue-62554.rs:6:89 + | +LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { + | - - - - - ^ + | | | | | | + | | | | | unclosed delimiter + | | | | unclosed delimiter + | | | unclosed delimiter + | unclosed delimiter unclosed delimiter + +error: expected `{`, found `macro_rules` + --> $DIR/issue-62554.rs:6:23 + | +LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { + | -- ^^^^^^^^^^^ expected `{` + | | + | this `if` expression has a condition, but no block + | +help: try placing this code inside a block + | +LL | fn foo(u: u8) { if u8 { macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { +LL | } + | + +error: aborting due to 6 previous errors + diff --git a/src/test/ui/parser/issue-66473.rs b/src/test/ui/parser/issue-66473.rs new file mode 100644 index 00000000000..9db4521bb42 --- /dev/null +++ b/src/test/ui/parser/issue-66473.rs Binary files differdiff --git a/src/test/ui/parser/issue-66473.stderr b/src/test/ui/parser/issue-66473.stderr new file mode 100644 index 00000000000..b370b125cfe --- /dev/null +++ b/src/test/ui/parser/issue-66473.stderr Binary files differdiff --git a/src/test/ui/parser/issue-72253.rs b/src/test/ui/parser/issue-72253.rs new file mode 100644 index 00000000000..6f9af73b039 --- /dev/null +++ b/src/test/ui/parser/issue-72253.rs @@ -0,0 +1,6 @@ +fn main() { + let a = std::process::Command::new("echo") + .arg("1") + ,arg("2") //~ ERROR expected one of `.`, `;`, `?`, or an operator, found `,` + .output(); +} diff --git a/src/test/ui/parser/issue-72253.stderr b/src/test/ui/parser/issue-72253.stderr new file mode 100644 index 00000000000..3819fd92a9e --- /dev/null +++ b/src/test/ui/parser/issue-72253.stderr @@ -0,0 +1,10 @@ +error: expected one of `.`, `;`, `?`, or an operator, found `,` + --> $DIR/issue-72253.rs:4:9 + | +LL | .arg("1") + | - expected one of `.`, `;`, `?`, or an operator +LL | ,arg("2") + | ^ unexpected token + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-72373.rs b/src/test/ui/parser/issue-72373.rs new file mode 100644 index 00000000000..4da6061c27f --- /dev/null +++ b/src/test/ui/parser/issue-72373.rs @@ -0,0 +1,9 @@ +fn foo(c: &[u32], n: u32) -> u32 { + match *c { + [h, ..] if h > n => 0, + [h, ..] if h == n => 1, + [h, ref ts..] => foo(c, n - h) + foo(ts, n), + //~^ ERROR expected one of `,`, `@`, `]`, or `|`, found `..` + [] => 0, + } +} diff --git a/src/test/ui/parser/issue-72373.stderr b/src/test/ui/parser/issue-72373.stderr new file mode 100644 index 00000000000..dfde8624814 --- /dev/null +++ b/src/test/ui/parser/issue-72373.stderr @@ -0,0 +1,13 @@ +error: expected one of `,`, `@`, `]`, or `|`, found `..` + --> $DIR/issue-72373.rs:5:19 + | +LL | [h, ref ts..] => foo(c, n - h) + foo(ts, n), + | ^^ expected one of `,`, `@`, `]`, or `|` + | +help: if you meant to bind the contents of the rest of the array pattern into `ts`, use `@` + | +LL | [h, ref ts @ ..] => foo(c, n - h) + foo(ts, n), + | ^ + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-75599.rs b/src/test/ui/parser/issue-75599.rs new file mode 100644 index 00000000000..0857676e4ed --- /dev/null +++ b/src/test/ui/parser/issue-75599.rs @@ -0,0 +1,24 @@ +// check-pass +#![allow(non_upper_case_globals)] + +const or: usize = 1; +const and: usize = 2; + +mod or { + pub const X: usize = 3; +} + +mod and { + pub const X: usize = 4; +} + +fn main() { + match 0 { + 0 => {} + or => {} + and => {} + or::X => {} + and::X => {} + _ => {} + } +} diff --git a/src/test/ui/parser/issue-76597.fixed b/src/test/ui/parser/issue-76597.fixed new file mode 100644 index 00000000000..2d7a30b8361 --- /dev/null +++ b/src/test/ui/parser/issue-76597.fixed @@ -0,0 +1,11 @@ +// run-rustfix + +#![allow(dead_code)] +#![allow(unused_variables)] +fn f( + x: u8, + y: u8, +) {} +//~^^ ERROR: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `y` + +fn main() {} diff --git a/src/test/ui/parser/issue-76597.rs b/src/test/ui/parser/issue-76597.rs new file mode 100644 index 00000000000..521b9c64b1c --- /dev/null +++ b/src/test/ui/parser/issue-76597.rs @@ -0,0 +1,11 @@ +// run-rustfix + +#![allow(dead_code)] +#![allow(unused_variables)] +fn f( + x: u8 + y: u8, +) {} +//~^^ ERROR: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `y` + +fn main() {} diff --git a/src/test/ui/parser/issue-76597.stderr b/src/test/ui/parser/issue-76597.stderr new file mode 100644 index 00000000000..50b23329f0c --- /dev/null +++ b/src/test/ui/parser/issue-76597.stderr @@ -0,0 +1,13 @@ +error: expected one of `!`, `(`, `)`, `+`, `,`, `::`, or `<`, found `y` + --> $DIR/issue-76597.rs:7:38 + | +LL | ... x: u8 + | - + | | + | expected one of 7 possible tokens + | help: missing `,` +LL | ... y: u8, + | ^ unexpected token + +error: aborting due to previous error + diff --git a/src/test/ui/parser/lifetime_starts_expressions.rs b/src/test/ui/parser/lifetime_starts_expressions.rs new file mode 100644 index 00000000000..e0098793e1f --- /dev/null +++ b/src/test/ui/parser/lifetime_starts_expressions.rs @@ -0,0 +1,13 @@ +fn foo() -> u32 { + return 'label: loop { break 'label 42; }; +} + +fn bar() -> u32 { + loop { break 'label: loop { break 'label 42; }; } + //~^ ERROR expected identifier, found keyword `loop` + //~| ERROR expected type, found keyword `loop` +} + +pub fn main() { + foo(); +} diff --git a/src/test/ui/parser/lifetime_starts_expressions.stderr b/src/test/ui/parser/lifetime_starts_expressions.stderr new file mode 100644 index 00000000000..7275841ebb8 --- /dev/null +++ b/src/test/ui/parser/lifetime_starts_expressions.stderr @@ -0,0 +1,23 @@ +error: expected identifier, found keyword `loop` + --> $DIR/lifetime_starts_expressions.rs:6:26 + | +LL | loop { break 'label: loop { break 'label 42; }; } + | ^^^^ expected identifier, found keyword + | +help: you can escape reserved keywords to use them as identifiers + | +LL | loop { break 'label: r#loop { break 'label 42; }; } + | ^^^^^^ + +error: expected type, found keyword `loop` + --> $DIR/lifetime_starts_expressions.rs:6:26 + | +LL | loop { break 'label: loop { break 'label 42; }; } + | - ^^^^ expected type + | | + | help: maybe write a path separator here: `::` + | + = note: `#![feature(type_ascription)]` lets you annotate an expression with a type: `<expr>: <type>` + +error: aborting due to 2 previous errors + |
