diff --git a/src/test/ui/match/match-same-name-enum-variant.rs b/src/test/ui/match/match-same-name-enum-variant.rs new file mode 100644 index 000000000000..d106bf713412 --- /dev/null +++ b/src/test/ui/match/match-same-name-enum-variant.rs @@ -0,0 +1,33 @@ +// Test for issue #67776: binding named the same as enum variant +// should report a warning even when matching against a borrow + +// check-pass + +#![allow(unused_variables)] +#![allow(non_snake_case)] + +enum Foo { + Bar, + Baz, +} + + +fn fn2(e: Foo) { + match e { + Bar => println!("A"), + //~^ WARNING named the same as one of the variants of the type `Foo` + Baz => println!("B"), + //~^ WARNING named the same as one of the variants of the type `Foo` + } +} + +fn fn1(e: &Foo) { + match e { + Bar => println!("A"), + //~^ WARNING named the same as one of the variants of the type `Foo` + Baz => println!("B"), + //~^ WARNING named the same as one of the variants of the type `Foo` + } +} + +fn main() {} diff --git a/src/test/ui/match/match-same-name-enum-variant.stderr b/src/test/ui/match/match-same-name-enum-variant.stderr new file mode 100644 index 000000000000..cadf5e6cdeea --- /dev/null +++ b/src/test/ui/match/match-same-name-enum-variant.stderr @@ -0,0 +1,24 @@ +warning[E0170]: pattern binding `Bar` is named the same as one of the variants of the type `Foo` + --> $DIR/match-same-name-enum-variant.rs:14:9 + | +LL | Bar => println!("A"), + | ^^^ help: to match on the variant, qualify the path: `Foo::Bar` + +warning[E0170]: pattern binding `Baz` is named the same as one of the variants of the type `Foo` + --> $DIR/match-same-name-enum-variant.rs:16:9 + | +LL | Baz => println!("B"), + | ^^^ help: to match on the variant, qualify the path: `Foo::Baz` + +warning[E0170]: pattern binding `Bar` is named the same as one of the variants of the type `Foo` + --> $DIR/match-same-name-enum-variant.rs:23:9 + | +LL | Bar => println!("A"), + | ^^^ help: to match on the variant, qualify the path: `Foo::Bar` + +warning[E0170]: pattern binding `Baz` is named the same as one of the variants of the type `Foo` + --> $DIR/match-same-name-enum-variant.rs:25:9 + | +LL | Baz => println!("B"), + | ^^^ help: to match on the variant, qualify the path: `Foo::Baz` +