diff options
| author | Caio <c410.f3r@gmail.com> | 2021-01-31 19:46:46 -0300 |
|---|---|---|
| committer | Caio <c410.f3r@gmail.com> | 2021-01-31 19:46:46 -0300 |
| commit | 2bb4a694d1e71644f9fb770d2a0b33f80dd213f4 (patch) | |
| tree | 0b7d9fbd772bb6b303ab262c1a1f2de885e02b23 /src/test/ui/parser | |
| parent | 0e63af5da3400ace48a0345117980473fd21ad73 (diff) | |
| download | rust-2bb4a694d1e71644f9fb770d2a0b33f80dd213f4.tar.gz rust-2bb4a694d1e71644f9fb770d2a0b33f80dd213f4.zip | |
Move some tests to more reasonable directories
Diffstat (limited to 'src/test/ui/parser')
| -rw-r--r-- | src/test/ui/parser/issue-20616-8.rs | 35 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-20616-8.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-20616-9.rs | 35 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-20616-9.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-57198.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-57198.stderr | 13 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-57684.fixed | 37 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-57684.rs | 37 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-57684.stderr | 18 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-57819.fixed | 47 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-57819.rs | 47 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-57819.stderr | 44 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-58856-1.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-58856-1.stderr | 29 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-64732.rs | 9 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-64732.stderr | 24 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-7970b.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-7970b.stderr | 8 |
18 files changed, 419 insertions, 0 deletions
diff --git a/src/test/ui/parser/issue-20616-8.rs b/src/test/ui/parser/issue-20616-8.rs new file mode 100644 index 00000000000..3ceb58d1252 --- /dev/null +++ b/src/test/ui/parser/issue-20616-8.rs @@ -0,0 +1,35 @@ +// 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 `,` 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 one of `#`, `>`, `const`, identifier, or lifetime, found `,` + + +//type Type_9<T,,> = Box<T>; // error: expected identifier, found `,` diff --git a/src/test/ui/parser/issue-20616-8.stderr b/src/test/ui/parser/issue-20616-8.stderr new file mode 100644 index 00000000000..e9f37e50fff --- /dev/null +++ b/src/test/ui/parser/issue-20616-8.stderr @@ -0,0 +1,8 @@ +error: expected one of `#`, `>`, `const`, identifier, or lifetime, found `,` + --> $DIR/issue-20616-8.rs:31:16 + | +LL | type Type_8<'a,,> = &'a (); + | ^ expected one of `#`, `>`, `const`, identifier, or lifetime + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-20616-9.rs b/src/test/ui/parser/issue-20616-9.rs new file mode 100644 index 00000000000..7f84284481e --- /dev/null +++ b/src/test/ui/parser/issue-20616-9.rs @@ -0,0 +1,35 @@ +// 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 `,` 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 identifier, found `,` + + +type Type_9<T,,> = Box<T>; +//~^ error: expected one of `#`, `>`, `const`, identifier, or lifetime, found `,` diff --git a/src/test/ui/parser/issue-20616-9.stderr b/src/test/ui/parser/issue-20616-9.stderr new file mode 100644 index 00000000000..dc309d1bce1 --- /dev/null +++ b/src/test/ui/parser/issue-20616-9.stderr @@ -0,0 +1,8 @@ +error: expected one of `#`, `>`, `const`, identifier, or lifetime, found `,` + --> $DIR/issue-20616-9.rs:34:15 + | +LL | type Type_9<T,,> = Box<T>; + | ^ expected one of `#`, `>`, `const`, identifier, or lifetime + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-57198.rs b/src/test/ui/parser/issue-57198.rs new file mode 100644 index 00000000000..714a46cbc9f --- /dev/null +++ b/src/test/ui/parser/issue-57198.rs @@ -0,0 +1,8 @@ +mod m { + pub fn r#for() {} +} + +fn main() { + m::for(); + //~^ ERROR expected identifier, found keyword `for` +} diff --git a/src/test/ui/parser/issue-57198.stderr b/src/test/ui/parser/issue-57198.stderr new file mode 100644 index 00000000000..197c4cc967d --- /dev/null +++ b/src/test/ui/parser/issue-57198.stderr @@ -0,0 +1,13 @@ +error: expected identifier, found keyword `for` + --> $DIR/issue-57198.rs:6:8 + | +LL | m::for(); + | ^^^ expected identifier, found keyword + | +help: you can escape reserved keywords to use them as identifiers + | +LL | m::r#for(); + | ^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/parser/issue-57684.fixed b/src/test/ui/parser/issue-57684.fixed new file mode 100644 index 00000000000..4a432206d51 --- /dev/null +++ b/src/test/ui/parser/issue-57684.fixed @@ -0,0 +1,37 @@ +// run-rustfix + +#![allow(warnings)] + +// This test checks that the following error is emitted when a `=` character is used to initialize +// a struct field when a `:` is expected. +// +// ``` +// error: struct fields are initialized with a colon +// --> $DIR/issue-57684.rs:12:20 +// | +// LL | let _ = X { f1 = 5 }; +// | ^ help: replace equals symbol with a colon: `:` +// ``` + +struct X { + f1: i32, +} + +struct Y { + f1: i32, + f2: i32, + f3: i32, +} + +fn main() { + let _ = X { f1: 5 }; + //~^ ERROR expected `:`, found `=` + + let f3 = 3; + let _ = Y { + f1: 5, + //~^ ERROR expected `:`, found `=` + f2: 4, + f3, + }; +} diff --git a/src/test/ui/parser/issue-57684.rs b/src/test/ui/parser/issue-57684.rs new file mode 100644 index 00000000000..7a62785e32f --- /dev/null +++ b/src/test/ui/parser/issue-57684.rs @@ -0,0 +1,37 @@ +// run-rustfix + +#![allow(warnings)] + +// This test checks that the following error is emitted when a `=` character is used to initialize +// a struct field when a `:` is expected. +// +// ``` +// error: struct fields are initialized with a colon +// --> $DIR/issue-57684.rs:12:20 +// | +// LL | let _ = X { f1 = 5 }; +// | ^ help: replace equals symbol with a colon: `:` +// ``` + +struct X { + f1: i32, +} + +struct Y { + f1: i32, + f2: i32, + f3: i32, +} + +fn main() { + let _ = X { f1 = 5 }; + //~^ ERROR expected `:`, found `=` + + let f3 = 3; + let _ = Y { + f1 = 5, + //~^ ERROR expected `:`, found `=` + f2: 4, + f3, + }; +} diff --git a/src/test/ui/parser/issue-57684.stderr b/src/test/ui/parser/issue-57684.stderr new file mode 100644 index 00000000000..514bbffde6b --- /dev/null +++ b/src/test/ui/parser/issue-57684.stderr @@ -0,0 +1,18 @@ +error: expected `:`, found `=` + --> $DIR/issue-57684.rs:27:20 + | +LL | let _ = X { f1 = 5 }; + | -^ + | | + | help: replace equals symbol with a colon: `:` + +error: expected `:`, found `=` + --> $DIR/issue-57684.rs:32:12 + | +LL | f1 = 5, + | -^ + | | + | help: replace equals symbol with a colon: `:` + +error: aborting due to 2 previous errors + diff --git a/src/test/ui/parser/issue-57819.fixed b/src/test/ui/parser/issue-57819.fixed new file mode 100644 index 00000000000..3fab21db2d0 --- /dev/null +++ b/src/test/ui/parser/issue-57819.fixed @@ -0,0 +1,47 @@ +// run-rustfix + +#![allow(warnings)] + +// This test checks that the following error is emitted and the suggestion works: +// +// ``` +// let _ = vec![1, 2, 3].into_iter().collect::<<<Vec<usize>>(); +// ^^ help: remove extra angle brackets +// ``` + +trait Foo { + type Output; +} + +fn foo<T: Foo>() { + // More complex cases with more than one correct leading `<` character: + + bar::<<T as Foo>::Output>(); + //~^ ERROR unmatched angle bracket + + bar::<<T as Foo>::Output>(); + //~^ ERROR unmatched angle bracket + + bar::<<T as Foo>::Output>(); + //~^ ERROR unmatched angle bracket + + bar::<<T as Foo>::Output>(); +} + +fn bar<T>() {} + +fn main() { + let _ = vec![1, 2, 3].into_iter().collect::<Vec<usize>>(); + //~^ ERROR unmatched angle bracket + + let _ = vec![1, 2, 3].into_iter().collect::<Vec<usize>>(); + //~^ ERROR unmatched angle bracket + + let _ = vec![1, 2, 3].into_iter().collect::<Vec<usize>>(); + //~^ ERROR unmatched angle bracket + + let _ = vec![1, 2, 3].into_iter().collect::<Vec<usize>>(); + //~^ ERROR unmatched angle bracket + + let _ = vec![1, 2, 3].into_iter().collect::<Vec<usize>>(); +} diff --git a/src/test/ui/parser/issue-57819.rs b/src/test/ui/parser/issue-57819.rs new file mode 100644 index 00000000000..5cafbf439be --- /dev/null +++ b/src/test/ui/parser/issue-57819.rs @@ -0,0 +1,47 @@ +// run-rustfix + +#![allow(warnings)] + +// This test checks that the following error is emitted and the suggestion works: +// +// ``` +// let _ = vec![1, 2, 3].into_iter().collect::<<<Vec<usize>>(); +// ^^ help: remove extra angle brackets +// ``` + +trait Foo { + type Output; +} + +fn foo<T: Foo>() { + // More complex cases with more than one correct leading `<` character: + + bar::<<<<<T as Foo>::Output>(); + //~^ ERROR unmatched angle bracket + + bar::<<<<T as Foo>::Output>(); + //~^ ERROR unmatched angle bracket + + bar::<<<T as Foo>::Output>(); + //~^ ERROR unmatched angle bracket + + bar::<<T as Foo>::Output>(); +} + +fn bar<T>() {} + +fn main() { + let _ = vec![1, 2, 3].into_iter().collect::<<<<<Vec<usize>>(); + //~^ ERROR unmatched angle bracket + + let _ = vec![1, 2, 3].into_iter().collect::<<<<Vec<usize>>(); + //~^ ERROR unmatched angle bracket + + let _ = vec![1, 2, 3].into_iter().collect::<<<Vec<usize>>(); + //~^ ERROR unmatched angle bracket + + let _ = vec![1, 2, 3].into_iter().collect::<<Vec<usize>>(); + //~^ ERROR unmatched angle bracket + + let _ = vec![1, 2, 3].into_iter().collect::<Vec<usize>>(); +} diff --git a/src/test/ui/parser/issue-57819.stderr b/src/test/ui/parser/issue-57819.stderr new file mode 100644 index 00000000000..493e9835b1c --- /dev/null +++ b/src/test/ui/parser/issue-57819.stderr @@ -0,0 +1,44 @@ +error: unmatched angle brackets + --> $DIR/issue-57819.rs:19:10 + | +LL | bar::<<<<<T as Foo>::Output>(); + | ^^^ help: remove extra angle brackets + +error: unmatched angle brackets + --> $DIR/issue-57819.rs:22:10 + | +LL | bar::<<<<T as Foo>::Output>(); + | ^^ help: remove extra angle brackets + +error: unmatched angle bracket + --> $DIR/issue-57819.rs:25:10 + | +LL | bar::<<<T as Foo>::Output>(); + | ^ help: remove extra angle bracket + +error: unmatched angle brackets + --> $DIR/issue-57819.rs:34:48 + | +LL | let _ = vec![1, 2, 3].into_iter().collect::<<<<<Vec<usize>>(); + | ^^^^ help: remove extra angle brackets + +error: unmatched angle brackets + --> $DIR/issue-57819.rs:37:48 + | +LL | let _ = vec![1, 2, 3].into_iter().collect::<<<<Vec<usize>>(); + | ^^^ help: remove extra angle brackets + +error: unmatched angle brackets + --> $DIR/issue-57819.rs:40:48 + | +LL | let _ = vec![1, 2, 3].into_iter().collect::<<<Vec<usize>>(); + | ^^ help: remove extra angle brackets + +error: unmatched angle bracket + --> $DIR/issue-57819.rs:43:48 + | +LL | let _ = vec![1, 2, 3].into_iter().collect::<<Vec<usize>>(); + | ^ help: remove extra angle bracket + +error: aborting due to 7 previous errors + diff --git a/src/test/ui/parser/issue-58856-1.rs b/src/test/ui/parser/issue-58856-1.rs new file mode 100644 index 00000000000..332a3014416 --- /dev/null +++ b/src/test/ui/parser/issue-58856-1.rs @@ -0,0 +1,8 @@ +impl A { + //~^ ERROR cannot find type `A` in this scope + fn b(self> + //~^ ERROR expected one of `)`, `,`, or `:`, found `>` + //~| ERROR expected one of `->`, `;`, `where`, or `{`, found `>` +} + +fn main() {} diff --git a/src/test/ui/parser/issue-58856-1.stderr b/src/test/ui/parser/issue-58856-1.stderr new file mode 100644 index 00000000000..f1abb40ed7a --- /dev/null +++ b/src/test/ui/parser/issue-58856-1.stderr @@ -0,0 +1,29 @@ +error: expected one of `)`, `,`, or `:`, found `>` + --> $DIR/issue-58856-1.rs:3:14 + | +LL | fn b(self> + | - ^ help: `)` may belong here + | | + | unclosed delimiter + +error: expected one of `->`, `;`, `where`, or `{`, found `>` + --> $DIR/issue-58856-1.rs:3:14 + | +LL | impl A { + | - while parsing this item list starting here +LL | +LL | fn b(self> + | ^ expected one of `->`, `;`, `where`, or `{` +... +LL | } + | - the item list ends here + +error[E0412]: cannot find type `A` in this scope + --> $DIR/issue-58856-1.rs:1:6 + | +LL | impl A { + | ^ not found in this scope + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0412`. diff --git a/src/test/ui/parser/issue-64732.rs b/src/test/ui/parser/issue-64732.rs new file mode 100644 index 00000000000..2db51ea6042 --- /dev/null +++ b/src/test/ui/parser/issue-64732.rs @@ -0,0 +1,9 @@ +#![allow(unused)] +fn main() { + let _foo = b'hello\0'; + //~^ ERROR character literal may only contain one codepoint + //~| HELP if you meant to write a byte string literal, use double quotes + let _bar = 'hello'; + //~^ ERROR character literal may only contain one codepoint + //~| HELP if you meant to write a `str` literal, use double quotes +} diff --git a/src/test/ui/parser/issue-64732.stderr b/src/test/ui/parser/issue-64732.stderr new file mode 100644 index 00000000000..3b00ffc8f6c --- /dev/null +++ b/src/test/ui/parser/issue-64732.stderr @@ -0,0 +1,24 @@ +error: character literal may only contain one codepoint + --> $DIR/issue-64732.rs:3:17 + | +LL | let _foo = b'hello\0'; + | ^^^^^^^^^ + | +help: if you meant to write a byte string literal, use double quotes + | +LL | let _foo = b"hello\0"; + | ^^^^^^^^^ + +error: character literal may only contain one codepoint + --> $DIR/issue-64732.rs:6:16 + | +LL | let _bar = 'hello'; + | ^^^^^^^ + | +help: if you meant to write a `str` literal, use double quotes + | +LL | let _bar = "hello"; + | ^^^^^^^ + +error: aborting due to 2 previous errors + diff --git a/src/test/ui/parser/issue-7970b.rs b/src/test/ui/parser/issue-7970b.rs new file mode 100644 index 00000000000..1c4abce3959 --- /dev/null +++ b/src/test/ui/parser/issue-7970b.rs @@ -0,0 +1,4 @@ +fn main() {} + +macro_rules! test {} +//~^ ERROR unexpected end of macro invocation diff --git a/src/test/ui/parser/issue-7970b.stderr b/src/test/ui/parser/issue-7970b.stderr new file mode 100644 index 00000000000..a62226a8a4d --- /dev/null +++ b/src/test/ui/parser/issue-7970b.stderr @@ -0,0 +1,8 @@ +error: unexpected end of macro invocation + --> $DIR/issue-7970b.rs:3:1 + | +LL | macro_rules! test {} + | ^^^^^^^^^^^^^^^^^^^^ missing tokens in macro arguments + +error: aborting due to previous error + |
