about summary refs log tree commit diff
path: root/src/test/ui/parser
diff options
context:
space:
mode:
authorCaio <c410.f3r@gmail.com>2021-01-31 19:46:46 -0300
committerCaio <c410.f3r@gmail.com>2021-01-31 19:46:46 -0300
commit2bb4a694d1e71644f9fb770d2a0b33f80dd213f4 (patch)
tree0b7d9fbd772bb6b303ab262c1a1f2de885e02b23 /src/test/ui/parser
parent0e63af5da3400ace48a0345117980473fd21ad73 (diff)
downloadrust-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.rs35
-rw-r--r--src/test/ui/parser/issue-20616-8.stderr8
-rw-r--r--src/test/ui/parser/issue-20616-9.rs35
-rw-r--r--src/test/ui/parser/issue-20616-9.stderr8
-rw-r--r--src/test/ui/parser/issue-57198.rs8
-rw-r--r--src/test/ui/parser/issue-57198.stderr13
-rw-r--r--src/test/ui/parser/issue-57684.fixed37
-rw-r--r--src/test/ui/parser/issue-57684.rs37
-rw-r--r--src/test/ui/parser/issue-57684.stderr18
-rw-r--r--src/test/ui/parser/issue-57819.fixed47
-rw-r--r--src/test/ui/parser/issue-57819.rs47
-rw-r--r--src/test/ui/parser/issue-57819.stderr44
-rw-r--r--src/test/ui/parser/issue-58856-1.rs8
-rw-r--r--src/test/ui/parser/issue-58856-1.stderr29
-rw-r--r--src/test/ui/parser/issue-64732.rs9
-rw-r--r--src/test/ui/parser/issue-64732.stderr24
-rw-r--r--src/test/ui/parser/issue-7970b.rs4
-rw-r--r--src/test/ui/parser/issue-7970b.stderr8
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
+