about summary refs log tree commit diff
diff options
context:
space:
mode:
authorclubby789 <jamie@hill-daniel.co.uk>2023-06-02 01:29:39 +0000
committerclubby789 <jamie@hill-daniel.co.uk>2023-06-02 01:33:09 +0000
commitd722f27684f30e5ada53309608b5ca308ca2e0ce (patch)
tree8bc06848521927bf120329976f090da575ceed7f
parent731601ccd1617a9ca4b1fe09fdb5906c2019110b (diff)
downloadrust-d722f27684f30e5ada53309608b5ca308ca2e0ce.tar.gz
rust-d722f27684f30e5ada53309608b5ca308ca2e0ce.zip
Test invalid tuple field identifiers
-rw-r--r--tests/ui/offset-of/offset-of-tuple.rs10
-rw-r--r--tests/ui/offset-of/offset-of-tuple.stderr37
2 files changed, 47 insertions, 0 deletions
diff --git a/tests/ui/offset-of/offset-of-tuple.rs b/tests/ui/offset-of/offset-of-tuple.rs
new file mode 100644
index 00000000000..4077538b77f
--- /dev/null
+++ b/tests/ui/offset-of/offset-of-tuple.rs
@@ -0,0 +1,10 @@
+#![feature(offset_of)]
+#![feature(builtin_syntax)]
+
+fn main() {
+    core::mem::offset_of!((u8, u8), _0); //~ ERROR no field `_0`
+    core::mem::offset_of!((u8, u8), +1); //~ ERROR no rules expected
+    core::mem::offset_of!((u8, u8), -1); //~ ERROR no rules expected
+    builtin # offset_of((u8, u8), _0); //~ ERROR no field `_0`
+    builtin # offset_of((u8, u8), +1); //~ ERROR expected identifier
+}
diff --git a/tests/ui/offset-of/offset-of-tuple.stderr b/tests/ui/offset-of/offset-of-tuple.stderr
new file mode 100644
index 00000000000..cc9ce0f3455
--- /dev/null
+++ b/tests/ui/offset-of/offset-of-tuple.stderr
@@ -0,0 +1,37 @@
+error: expected identifier, found `+`
+  --> $DIR/offset-of-tuple.rs:9:35
+   |
+LL |     builtin # offset_of((u8, u8), +1);
+   |                                   ^ expected identifier
+
+error: no rules expected the token `1`
+  --> $DIR/offset-of-tuple.rs:6:38
+   |
+LL |     core::mem::offset_of!((u8, u8), +1);
+   |                                      ^ no rules expected this token in macro call
+   |
+   = note: while trying to match sequence start
+
+error: no rules expected the token `1`
+  --> $DIR/offset-of-tuple.rs:7:38
+   |
+LL |     core::mem::offset_of!((u8, u8), -1);
+   |                                      ^ no rules expected this token in macro call
+   |
+   = note: while trying to match sequence start
+
+error[E0609]: no field `_0` on type `(u8, u8)`
+  --> $DIR/offset-of-tuple.rs:5:37
+   |
+LL |     core::mem::offset_of!((u8, u8), _0);
+   |                                     ^^
+
+error[E0609]: no field `_0` on type `(u8, u8)`
+  --> $DIR/offset-of-tuple.rs:8:35
+   |
+LL |     builtin # offset_of((u8, u8), _0);
+   |                                   ^^
+
+error: aborting due to 5 previous errors
+
+For more information about this error, try `rustc --explain E0609`.