about summary refs log tree commit diff
path: root/src/test/ui/parser
diff options
context:
space:
mode:
authorb-naber <bn263@gmx.de>2020-12-15 21:03:25 +0100
committerb-naber <bn263@gmx.de>2021-01-22 17:07:27 +0100
commit5ddad99a5686ce32b87ef14c21642fc55becebf9 (patch)
tree2c0c578b7fcb989c9d33557be621fcfbcb920712 /src/test/ui/parser
parent728d257839ad2397e34c71f8ceda151fa579242d (diff)
add and update tests
Diffstat (limited to 'src/test/ui/parser')
-rw-r--r--src/test/ui/parser/missing-closing-angle-bracket-eq-constraint.rs23
-rw-r--r--src/test/ui/parser/missing-closing-angle-bracket-eq-constraint.stderr49
-rw-r--r--src/test/ui/parser/nested-missing-closing-angle-bracket.rs4
-rw-r--r--src/test/ui/parser/nested-missing-closing-angle-bracket.stderr8
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
+