diff --git a/tests/compile-fail/unneeded_field_pattern.rs b/tests/compile-fail/unneeded_field_pattern.rs new file mode 100644 index 000000000000..bbe72a7133e1 --- /dev/null +++ b/tests/compile-fail/unneeded_field_pattern.rs @@ -0,0 +1,26 @@ +#![feature(plugin)] +#![plugin(clippy)] + +#![deny(unneeded_field_pattern)] +#[allow(dead_code, unused)] + +struct Foo { + a: i32, + b: i32, + c: i32, +} + +fn main() { + let f = Foo { a: 0, b: 0, c: 0 }; + + match f { + Foo { a: _, b: 0, .. } => {} //~ERROR You matched a field with a wildcard pattern + //~^ HELP Try with `Foo { b: 0, .. }` + Foo { a: _, b: _, c: _ } => {} //~ERROR All the struct fields are matched to a + //~^ HELP Try with `Foo { .. }` + } + match f { + Foo { b: 0, .. } => {} // should be OK + Foo { .. } => {} // and the Force might be with this one + } +} \ No newline at end of file