From 52bdaaa0edb2824af1610b67664f06580335fd78 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Wed, 1 Jul 2020 14:12:49 +0300 Subject: [PATCH] Add some requested tests --- .../ui/parser/float-field-interpolated.rs | 17 +++++++ .../ui/parser/float-field-interpolated.stderr | 46 +++++++++++++++++++ src/test/ui/tuple/index-float.rs | 1 + 3 files changed, 64 insertions(+) create mode 100644 src/test/ui/parser/float-field-interpolated.rs create mode 100644 src/test/ui/parser/float-field-interpolated.stderr diff --git a/src/test/ui/parser/float-field-interpolated.rs b/src/test/ui/parser/float-field-interpolated.rs new file mode 100644 index 0000000000000..a30532035365b --- /dev/null +++ b/src/test/ui/parser/float-field-interpolated.rs @@ -0,0 +1,17 @@ +struct S(u8, (u8, u8)); + +macro_rules! generate_field_accesses { + ($a:tt, $b:literal, $c:expr) => { + let s = S(0, (0, 0)); + + s.$a; // OK + { s.$b; } //~ ERROR unexpected token: `1.1` + //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1` + { s.$c; } //~ ERROR unexpected token: `1.1` + //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1` + }; +} + +fn main() { + generate_field_accesses!(1.1, 1.1, 1.1); +} diff --git a/src/test/ui/parser/float-field-interpolated.stderr b/src/test/ui/parser/float-field-interpolated.stderr new file mode 100644 index 0000000000000..fb974f085cbf1 --- /dev/null +++ b/src/test/ui/parser/float-field-interpolated.stderr @@ -0,0 +1,46 @@ +error: unexpected token: `1.1` + --> $DIR/float-field-interpolated.rs:8:13 + | +LL | { s.$b; } + | ^^ +... +LL | generate_field_accesses!(1.1, 1.1, 1.1); + | ---------------------------------------- in this macro invocation + | + = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) + +error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1` + --> $DIR/float-field-interpolated.rs:8:13 + | +LL | { s.$b; } + | ^^ expected one of `.`, `;`, `?`, `}`, or an operator +... +LL | generate_field_accesses!(1.1, 1.1, 1.1); + | ---------------------------------------- in this macro invocation + | + = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) + +error: unexpected token: `1.1` + --> $DIR/float-field-interpolated.rs:10:13 + | +LL | { s.$c; } + | ^^ +... +LL | generate_field_accesses!(1.1, 1.1, 1.1); + | ---------------------------------------- in this macro invocation + | + = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) + +error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1` + --> $DIR/float-field-interpolated.rs:10:13 + | +LL | { s.$c; } + | ^^ expected one of `.`, `;`, `?`, `}`, or an operator +... +LL | generate_field_accesses!(1.1, 1.1, 1.1); + | ---------------------------------------- in this macro invocation + | + = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) + +error: aborting due to 4 previous errors + diff --git a/src/test/ui/tuple/index-float.rs b/src/test/ui/tuple/index-float.rs index 85b088d664da1..eda2bf48581a0 100644 --- a/src/test/ui/tuple/index-float.rs +++ b/src/test/ui/tuple/index-float.rs @@ -4,6 +4,7 @@ fn main() { let tuple = (((),),); let _ = tuple. 0.0; // OK, whitespace + let _ = tuple.0. 0; // OK, whitespace let _ = tuple./*special cases*/0.0; // OK, comment }