From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- .../ui/parser/issues/issue-87086-colon-path-sep.rs | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/test/ui/parser/issues/issue-87086-colon-path-sep.rs (limited to 'src/test/ui/parser/issues/issue-87086-colon-path-sep.rs') diff --git a/src/test/ui/parser/issues/issue-87086-colon-path-sep.rs b/src/test/ui/parser/issues/issue-87086-colon-path-sep.rs new file mode 100644 index 000000000..0b7b67496 --- /dev/null +++ b/src/test/ui/parser/issues/issue-87086-colon-path-sep.rs @@ -0,0 +1,79 @@ +// Tests that a suggestion is issued if the user wrote a colon instead of +// a path separator in a match arm. + +mod qux { + pub enum Foo { + Bar, + Baz, + } +} + +use qux::Foo; + +fn f() -> Foo { Foo::Bar } + +fn g1() { + match f() { + Foo:Bar => {} + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + _ => {} + } + match f() { + qux::Foo:Bar => {} + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + _ => {} + } + match f() { + qux:Foo::Baz => {} + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + _ => {} + } + match f() { + qux: Foo::Baz if true => {} + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + _ => {} + } + if let Foo:Bar = f() { + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + } +} + +fn g1_neg() { + match f() { + ref qux: Foo::Baz => {} + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + _ => {} + } +} + +fn g2_neg() { + match f() { + mut qux: Foo::Baz => {} + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + _ => {} + } +} + +fn main() { + let myfoo = Foo::Bar; + match myfoo { + Foo::Bar => {} + Foo:Bar::Baz => {} + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + //~| ERROR: failed to resolve: `Bar` is a variant, not a module + } + match myfoo { + Foo::Bar => {} + Foo:Bar => {} + //~^ ERROR: expected one of + //~| HELP: maybe write a path separator here + } +} -- cgit v1.2.3