about summary refs log tree commit diff
path: root/tests/ui/tuple/tuple-struct-fields
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/tuple/tuple-struct-fields')
-rw-r--r--tests/ui/tuple/tuple-struct-fields/test.rs9
-rw-r--r--tests/ui/tuple/tuple-struct-fields/test.stderr17
-rw-r--r--tests/ui/tuple/tuple-struct-fields/test2.rs15
-rw-r--r--tests/ui/tuple/tuple-struct-fields/test2.stderr28
-rw-r--r--tests/ui/tuple/tuple-struct-fields/test3.rs15
-rw-r--r--tests/ui/tuple/tuple-struct-fields/test3.stderr28
6 files changed, 112 insertions, 0 deletions
diff --git a/tests/ui/tuple/tuple-struct-fields/test.rs b/tests/ui/tuple/tuple-struct-fields/test.rs
new file mode 100644
index 00000000000..00677090d78
--- /dev/null
+++ b/tests/ui/tuple/tuple-struct-fields/test.rs
@@ -0,0 +1,9 @@
+mod foo {
+    type T = ();
+    struct S1(pub(in foo) (), pub(T), pub(crate) (), pub(((), T)));
+    struct S2(pub((foo)) ());
+    //~^ ERROR expected one of `)` or `,`, found `(`
+    //~| ERROR cannot find type `foo` in this scope
+}
+
+fn main() {}
diff --git a/tests/ui/tuple/tuple-struct-fields/test.stderr b/tests/ui/tuple/tuple-struct-fields/test.stderr
new file mode 100644
index 00000000000..bfa0b32fd45
--- /dev/null
+++ b/tests/ui/tuple/tuple-struct-fields/test.stderr
@@ -0,0 +1,17 @@
+error: expected one of `)` or `,`, found `(`
+  --> $DIR/test.rs:4:26
+   |
+LL |     struct S2(pub((foo)) ());
+   |                         -^ expected one of `)` or `,`
+   |                         |
+   |                         help: missing `,`
+
+error[E0412]: cannot find type `foo` in this scope
+  --> $DIR/test.rs:4:20
+   |
+LL |     struct S2(pub((foo)) ());
+   |                    ^^^ not found in this scope
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/tests/ui/tuple/tuple-struct-fields/test2.rs b/tests/ui/tuple/tuple-struct-fields/test2.rs
new file mode 100644
index 00000000000..2b2a2c127e9
--- /dev/null
+++ b/tests/ui/tuple/tuple-struct-fields/test2.rs
@@ -0,0 +1,15 @@
+macro_rules! define_struct {
+    ($t:ty) => {
+        struct S1(pub $t);
+        struct S2(pub (in foo) ());
+        struct S3(pub $t ());
+        //~^ ERROR expected one of `)` or `,`, found `(`
+    }
+}
+
+mod foo {
+    define_struct! { (foo) } //~ ERROR cannot find type `foo` in this scope
+                             //~| ERROR cannot find type `foo` in this scope
+}
+
+fn main() {}
diff --git a/tests/ui/tuple/tuple-struct-fields/test2.stderr b/tests/ui/tuple/tuple-struct-fields/test2.stderr
new file mode 100644
index 00000000000..64a9ac13566
--- /dev/null
+++ b/tests/ui/tuple/tuple-struct-fields/test2.stderr
@@ -0,0 +1,28 @@
+error: expected one of `)` or `,`, found `(`
+  --> $DIR/test2.rs:5:26
+   |
+LL |         struct S3(pub $t ());
+   |                         -^ expected one of `)` or `,`
+   |                         |
+   |                         help: missing `,`
+...
+LL |     define_struct! { (foo) }
+   |     ------------------------ in this macro invocation
+   |
+   = note: this error originates in the macro `define_struct` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0412]: cannot find type `foo` in this scope
+  --> $DIR/test2.rs:11:23
+   |
+LL |     define_struct! { (foo) }
+   |                       ^^^ not found in this scope
+
+error[E0412]: cannot find type `foo` in this scope
+  --> $DIR/test2.rs:11:23
+   |
+LL |     define_struct! { (foo) }
+   |                       ^^^ 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/tests/ui/tuple/tuple-struct-fields/test3.rs b/tests/ui/tuple/tuple-struct-fields/test3.rs
new file mode 100644
index 00000000000..98d19426e77
--- /dev/null
+++ b/tests/ui/tuple/tuple-struct-fields/test3.rs
@@ -0,0 +1,15 @@
+macro_rules! define_struct {
+    ($t:ty) => {
+        struct S1(pub($t));
+        struct S2(pub (in foo) ());
+        struct S3(pub($t) ());
+        //~^ ERROR expected one of `)` or `,`, found `(`
+    }
+}
+
+mod foo {
+    define_struct! { foo } //~ ERROR cannot find type `foo` in this scope
+                           //~| ERROR cannot find type `foo` in this scope
+}
+
+fn main() {}
diff --git a/tests/ui/tuple/tuple-struct-fields/test3.stderr b/tests/ui/tuple/tuple-struct-fields/test3.stderr
new file mode 100644
index 00000000000..75262ed5780
--- /dev/null
+++ b/tests/ui/tuple/tuple-struct-fields/test3.stderr
@@ -0,0 +1,28 @@
+error: expected one of `)` or `,`, found `(`
+  --> $DIR/test3.rs:5:27
+   |
+LL |         struct S3(pub($t) ());
+   |                          -^ expected one of `)` or `,`
+   |                          |
+   |                          help: missing `,`
+...
+LL |     define_struct! { foo }
+   |     ---------------------- in this macro invocation
+   |
+   = note: this error originates in the macro `define_struct` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0412]: cannot find type `foo` in this scope
+  --> $DIR/test3.rs:11:22
+   |
+LL |     define_struct! { foo }
+   |                      ^^^ not found in this scope
+
+error[E0412]: cannot find type `foo` in this scope
+  --> $DIR/test3.rs:11:22
+   |
+LL |     define_struct! { foo }
+   |                      ^^^ not found in this scope
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0412`.