Skip to content

Commit

Permalink
Add more test cases for match_wildcard_for_single_variants
Browse files Browse the repository at this point in the history
  • Loading branch information
vtmargaryan committed May 15, 2020
1 parent 2620d24 commit d906253
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 4 deletions.
43 changes: 42 additions & 1 deletion tests/ui/match_wildcard_for_single_variants.fixed
Expand Up @@ -9,10 +9,51 @@ enum Foo {
C,
}

enum Color {
Red,
Green,
Blue,
Rgb(u8, u8, u8),
}

fn main() {
match Foo::A {
let f = Foo::A;
match f {
Foo::A => {},
Foo::B => {},
Foo::C => {},
}

let color = Color::Red;

// check exhaustive bindings
match color {
Color::Red => {},
Color::Green => {},
Color::Rgb(_r, _g, _b) => {},
Color::Blue => {},
}

// check exhaustive wild
match color {
Color::Red => {},
Color::Green => {},
Color::Rgb(..) => {},
Color::Blue => {},
}
match color {
Color::Red => {},
Color::Green => {},
Color::Rgb(_, _, _) => {},
Color::Blue => {},
}

// shouldn't lint as there is one missing variant
// and one that isn't exhaustively covered
match color {
Color::Red => {},
Color::Green => {},
Color::Rgb(255, _, _) => {},
_ => {},
}
}
43 changes: 42 additions & 1 deletion tests/ui/match_wildcard_for_single_variants.rs
Expand Up @@ -9,10 +9,51 @@ enum Foo {
C,
}

enum Color {
Red,
Green,
Blue,
Rgb(u8, u8, u8),
}

fn main() {
match Foo::A {
let f = Foo::A;
match f {
Foo::A => {},
Foo::B => {},
_ => {},
}

let color = Color::Red;

// check exhaustive bindings
match color {
Color::Red => {},
Color::Green => {},
Color::Rgb(_r, _g, _b) => {},
_ => {},
}

// check exhaustive wild
match color {
Color::Red => {},
Color::Green => {},
Color::Rgb(..) => {},
_ => {},
}
match color {
Color::Red => {},
Color::Green => {},
Color::Rgb(_, _, _) => {},
_ => {},
}

// shouldn't lint as there is one missing variant
// and one that isn't exhaustively covered
match color {
Color::Red => {},
Color::Green => {},
Color::Rgb(255, _, _) => {},
_ => {},
}
}
22 changes: 20 additions & 2 deletions tests/ui/match_wildcard_for_single_variants.stderr
@@ -1,10 +1,28 @@
error: wildcard match will miss any future added variants
--> $DIR/match_wildcard_for_single_variants.rs:16:9
--> $DIR/match_wildcard_for_single_variants.rs:24:9
|
LL | _ => {},
| ^ help: try this: `Foo::C`
|
= note: `-D clippy::match-wildcard-for-single-variants` implied by `-D warnings`

error: aborting due to previous error
error: wildcard match will miss any future added variants
--> $DIR/match_wildcard_for_single_variants.rs:34:9
|
LL | _ => {},
| ^ help: try this: `Color::Blue`

error: wildcard match will miss any future added variants
--> $DIR/match_wildcard_for_single_variants.rs:42:9
|
LL | _ => {},
| ^ help: try this: `Color::Blue`

error: wildcard match will miss any future added variants
--> $DIR/match_wildcard_for_single_variants.rs:48:9
|
LL | _ => {},
| ^ help: try this: `Color::Blue`

error: aborting due to 4 previous errors

0 comments on commit d906253

Please sign in to comment.