From 068924198babed20c11715bb4f4acb9f2e470a9c Mon Sep 17 00:00:00 2001 From: Alex Hamilton Date: Fri, 25 Jan 2019 10:42:11 -0600 Subject: [PATCH] wildcard_match_arm: add simple ui test. --- tests/ui/wildcard_match_arm.rs | 36 ++++++++++++++++++++++++++++++ tests/ui/wildcard_match_arm.stderr | 15 +++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 tests/ui/wildcard_match_arm.rs create mode 100644 tests/ui/wildcard_match_arm.stderr diff --git a/tests/ui/wildcard_match_arm.rs b/tests/ui/wildcard_match_arm.rs new file mode 100644 index 00000000000..26a37c969a3 --- /dev/null +++ b/tests/ui/wildcard_match_arm.rs @@ -0,0 +1,36 @@ +#![deny(clippy::wildcard_match_arm)] + +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +enum Color { + Red, + Green, + Blue, + Rgb(u8, u8, u8), + Cyan, +} + +impl Color { + fn is_monochrome(self) -> bool { + match self { + Color::Red | Color::Green | Color::Blue => true, + Color::Rgb(r, g, b) => r | g == 0 || r | b == 0 || g | b == 0, + Color::Cyan => false, + } + } +} + +fn main() { + let color = Color::Rgb(0, 0, 127); + match color { + Color::Red => println!("Red"), + _ => eprintln!("Not red"), + }; + match color { + Color::Red => {}, + Color::Green => {}, + Color::Blue => {}, + Color::Cyan => {}, + c if c.is_monochrome() => {}, + Color::Rgb(_, _, _) => {}, + }; +} \ No newline at end of file diff --git a/tests/ui/wildcard_match_arm.stderr b/tests/ui/wildcard_match_arm.stderr new file mode 100644 index 00000000000..0d10382dc15 --- /dev/null +++ b/tests/ui/wildcard_match_arm.stderr @@ -0,0 +1,15 @@ +error: wildcard match will miss any future added variants. + --> $DIR/wildcard_match_arm.rs:26:3 + | +LL | _ => eprintln!("Not red"), + | ^ + | +note: lint level defined here + --> $DIR/wildcard_match_arm.rs:1:9 + | +LL | #![deny(clippy::wildcard_match_arm)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ + = note: to resolve, match each variant explicitly + +error: aborting due to previous error + -- 2.44.0