summaryrefslogtreecommitdiffstats
path: root/src/test/ui/tuple/tuple-struct-fields
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/tuple/tuple-struct-fields')
-rw-r--r--src/test/ui/tuple/tuple-struct-fields/test.rs9
-rw-r--r--src/test/ui/tuple/tuple-struct-fields/test.stderr17
-rw-r--r--src/test/ui/tuple/tuple-struct-fields/test2.rs15
-rw-r--r--src/test/ui/tuple/tuple-struct-fields/test2.stderr28
-rw-r--r--src/test/ui/tuple/tuple-struct-fields/test3.rs15
-rw-r--r--src/test/ui/tuple/tuple-struct-fields/test3.stderr28
6 files changed, 112 insertions, 0 deletions
diff --git a/src/test/ui/tuple/tuple-struct-fields/test.rs b/src/test/ui/tuple/tuple-struct-fields/test.rs
new file mode 100644
index 000000000..00677090d
--- /dev/null
+++ b/src/test/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/src/test/ui/tuple/tuple-struct-fields/test.stderr b/src/test/ui/tuple/tuple-struct-fields/test.stderr
new file mode 100644
index 000000000..bfa0b32fd
--- /dev/null
+++ b/src/test/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/src/test/ui/tuple/tuple-struct-fields/test2.rs b/src/test/ui/tuple/tuple-struct-fields/test2.rs
new file mode 100644
index 000000000..2b2a2c127
--- /dev/null
+++ b/src/test/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/src/test/ui/tuple/tuple-struct-fields/test2.stderr b/src/test/ui/tuple/tuple-struct-fields/test2.stderr
new file mode 100644
index 000000000..64a9ac135
--- /dev/null
+++ b/src/test/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/src/test/ui/tuple/tuple-struct-fields/test3.rs b/src/test/ui/tuple/tuple-struct-fields/test3.rs
new file mode 100644
index 000000000..98d19426e
--- /dev/null
+++ b/src/test/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/src/test/ui/tuple/tuple-struct-fields/test3.stderr b/src/test/ui/tuple/tuple-struct-fields/test3.stderr
new file mode 100644
index 000000000..75262ed57
--- /dev/null
+++ b/src/test/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`.