diff options
| author | b-naber <bn263@gmx.de> | 2020-12-15 21:03:25 +0100 |
|---|---|---|
| committer | b-naber <bn263@gmx.de> | 2021-01-22 17:07:27 +0100 |
| commit | 5ddad99a5686ce32b87ef14c21642fc55becebf9 (patch) | |
| tree | 2c0c578b7fcb989c9d33557be621fcfbcb920712 /src/test/ui/parser | |
| parent | 728d257839ad2397e34c71f8ceda151fa579242d (diff) | |
add and update tests
Diffstat (limited to 'src/test/ui/parser')
4 files changed, 84 insertions, 0 deletions
diff --git a/src/test/ui/parser/missing-closing-angle-bracket-eq-constraint.rs b/src/test/ui/parser/missing-closing-angle-bracket-eq-constraint.rs new file mode 100644 index 00000000000..da95c1bfa27 --- /dev/null +++ b/src/test/ui/parser/missing-closing-angle-bracket-eq-constraint.rs @@ -0,0 +1,23 @@ +struct Foo<T1, T2> { + _a : T1, + _b : T2, +} + +fn test1<T>(arg : T) { + let v : Vec<(u32,_) = vec![]; + //~^ ERROR: expected one of + //~| ERROR: type annotations needed +} + +fn test2<T1, T2>(arg1 : T1, arg2 : T2) { + let foo : Foo::<T1, T2 = Foo {_a : arg1, _b : arg2}; + //~^ ERROR: expected one of +} + +fn test3<'a>(arg : &'a u32) { + let v : Vec<'a = vec![]; + //~^ ERROR: expected one of + //~| ERROR: type annotations needed for `Vec<T>` +} + +fn main() {} diff --git a/src/test/ui/parser/missing-closing-angle-bracket-eq-constraint.stderr b/src/test/ui/parser/missing-closing-angle-bracket-eq-constraint.stderr new file mode 100644 index 00000000000..ae53334f5e0 --- /dev/null +++ b/src/test/ui/parser/missing-closing-angle-bracket-eq-constraint.stderr @@ -0,0 +1,49 @@ +error: expected one of `,`, `:`, or `>`, found `=` + --> $DIR/missing-closing-angle-bracket-eq-constraint.rs:7:23 + | +LL | let v : Vec<(u32,_) = vec![]; + | - - ^ expected one of `,`, `:`, or `>` + | | | + | | maybe try to close unmatched angle bracket + | while parsing the type for `v` + +error: expected one of `!`, `(`, `+`, `,`, `::`, `<`, or `>`, found `{` + --> $DIR/missing-closing-angle-bracket-eq-constraint.rs:13:32 + | +LL | let foo : Foo::<T1, T2 = Foo {_a : arg1, _b : arg2}; + | --- ^ expected one of 7 possible tokens + | | + | while parsing the type for `foo` + +error: expected one of `,`, `:`, or `>`, found `=` + --> $DIR/missing-closing-angle-bracket-eq-constraint.rs:18:18 + | +LL | let v : Vec<'a = vec![]; + | - -- ^ expected one of `,`, `:`, or `>` + | | | + | | maybe try to close unmatched angle bracket + | while parsing the type for `v` + +error[E0282]: type annotations needed for `Vec<T>` + --> $DIR/missing-closing-angle-bracket-eq-constraint.rs:7:25 + | +LL | let v : Vec<(u32,_) = vec![]; + | - ^^^^^^ cannot infer type for type parameter `T` + | | + | consider giving `v` the explicit type `Vec<T>`, where the type parameter `T` is specified + | + = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0282]: type annotations needed for `Vec<T>` + --> $DIR/missing-closing-angle-bracket-eq-constraint.rs:18:20 + | +LL | let v : Vec<'a = vec![]; + | - ^^^^^^ cannot infer type for type parameter `T` + | | + | consider giving `v` the explicit type `Vec<T>`, where the type parameter `T` is specified + | + = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) + +error: aborting due to 5 previous errors + +For more information about this error, try `rustc --explain E0282`. diff --git a/src/test/ui/parser/nested-missing-closing-angle-bracket.rs b/src/test/ui/parser/nested-missing-closing-angle-bracket.rs new file mode 100644 index 00000000000..84ffdd176ae --- /dev/null +++ b/src/test/ui/parser/nested-missing-closing-angle-bracket.rs @@ -0,0 +1,4 @@ +fn main() { + let v : Vec::<Vec<(u32,_,_)> = vec![vec![]]; + //~^ ERROR: expected one of +} diff --git a/src/test/ui/parser/nested-missing-closing-angle-bracket.stderr b/src/test/ui/parser/nested-missing-closing-angle-bracket.stderr new file mode 100644 index 00000000000..b85bc02568c --- /dev/null +++ b/src/test/ui/parser/nested-missing-closing-angle-bracket.stderr @@ -0,0 +1,8 @@ +error: expected one of `,` or `>`, found `;` + --> $DIR/nested-missing-closing-angle-bracket.rs:2:46 + | +LL | let v : Vec::<Vec<(u32,_,_)> = vec![vec![]]; + | - while parsing the type for `v` ^ expected one of `,` or `>` + +error: aborting due to previous error + |
