Skip to content

Commit 5cf6929

Browse files
committed
Add tests
1 parent 26f340a commit 5cf6929

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
error: some variants are not matched explicitly
2+
--> $DIR/omitted-patterns-dont-lint-on-arm.rs:15:11
3+
|
4+
LL | match val {
5+
| ^^^ pattern `NonExhaustiveEnum::Struct { .. }` not covered
6+
|
7+
= help: ensure that all variants are matched explicitly by adding the suggested match arms
8+
= note: the matched value is of type `NonExhaustiveEnum` and the `non_exhaustive_omitted_patterns` attribute was found
9+
note: the lint level is defined here
10+
--> $DIR/omitted-patterns-dont-lint-on-arm.rs:14:12
11+
|
12+
LL | #[deny(non_exhaustive_omitted_patterns)]
13+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14+
15+
error: some variants are not matched explicitly
16+
--> $DIR/omitted-patterns-dont-lint-on-arm.rs:23:11
17+
|
18+
LL | match val {
19+
| ^^^ pattern `NonExhaustiveEnum::Struct { .. }` not covered
20+
|
21+
= help: ensure that all variants are matched explicitly by adding the suggested match arms
22+
= note: the matched value is of type `NonExhaustiveEnum` and the `non_exhaustive_omitted_patterns` attribute was found
23+
note: the lint level is defined here
24+
--> $DIR/omitted-patterns-dont-lint-on-arm.rs:22:27
25+
|
26+
LL | #[cfg_attr(lint, deny(non_exhaustive_omitted_patterns))]
27+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
28+
29+
error: aborting due to 2 previous errors
30+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
error: some variants are not matched explicitly
2+
--> $DIR/omitted-patterns-dont-lint-on-arm.rs:15:11
3+
|
4+
LL | match val {
5+
| ^^^ pattern `NonExhaustiveEnum::Struct { .. }` not covered
6+
|
7+
= help: ensure that all variants are matched explicitly by adding the suggested match arms
8+
= note: the matched value is of type `NonExhaustiveEnum` and the `non_exhaustive_omitted_patterns` attribute was found
9+
note: the lint level is defined here
10+
--> $DIR/omitted-patterns-dont-lint-on-arm.rs:14:12
11+
|
12+
LL | #[deny(non_exhaustive_omitted_patterns)]
13+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14+
15+
error: aborting due to previous error
16+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// revisions: normal lint
2+
// Test that putting the lint level on a match arm emits a warning, as this was previously
3+
// meaningful and is no longer.
4+
#![feature(non_exhaustive_omitted_patterns_lint)]
5+
6+
// aux-build:enums.rs
7+
extern crate enums;
8+
9+
use enums::NonExhaustiveEnum;
10+
11+
fn main() {
12+
let val = NonExhaustiveEnum::Unit;
13+
14+
#[deny(non_exhaustive_omitted_patterns)]
15+
match val {
16+
//~^ ERROR some variants are not matched explicitly
17+
NonExhaustiveEnum::Unit => {}
18+
NonExhaustiveEnum::Tuple(_) => {}
19+
_ => {}
20+
}
21+
22+
#[cfg_attr(lint, deny(non_exhaustive_omitted_patterns))]
23+
match val {
24+
//[lint]~^ ERROR some variants are not matched explicitly
25+
NonExhaustiveEnum::Unit => {}
26+
NonExhaustiveEnum::Tuple(_) => {}
27+
_ => {}
28+
}
29+
30+
match val {
31+
NonExhaustiveEnum::Unit => {}
32+
NonExhaustiveEnum::Tuple(_) => {}
33+
#[deny(non_exhaustive_omitted_patterns)]
34+
_ => {}
35+
}
36+
37+
match val {
38+
NonExhaustiveEnum::Unit => {}
39+
NonExhaustiveEnum::Tuple(_) => {}
40+
#[cfg_attr(lint, deny(non_exhaustive_omitted_patterns))]
41+
_ => {}
42+
}
43+
44+
match val {
45+
NonExhaustiveEnum::Unit => {}
46+
NonExhaustiveEnum::Tuple(_) => {}
47+
#[cfg_attr(lint, warn(non_exhaustive_omitted_patterns))]
48+
_ => {}
49+
}
50+
}

0 commit comments

Comments
 (0)