From 4b9912c2b00a047c6c19aa62ba90bb7d252f07d4 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sat, 2 Jan 2016 23:13:15 +0100 Subject: [PATCH] Add test for wild fields --- tests/compile-fail/unneeded_field_pattern.rs | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tests/compile-fail/unneeded_field_pattern.rs diff --git a/tests/compile-fail/unneeded_field_pattern.rs b/tests/compile-fail/unneeded_field_pattern.rs new file mode 100644 index 00000000000..bbe72a7133e --- /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