54 lines
1.5 KiB
Rust
54 lines
1.5 KiB
Rust
// revisions: normal lint
|
|
// Test that putting the lint level on a match arm emits a warning, as this was previously
|
|
// meaningful and is no longer.
|
|
#![feature(non_exhaustive_omitted_patterns_lint)]
|
|
|
|
// aux-build:enums.rs
|
|
extern crate enums;
|
|
|
|
use enums::NonExhaustiveEnum;
|
|
|
|
fn main() {
|
|
let val = NonExhaustiveEnum::Unit;
|
|
|
|
#[deny(non_exhaustive_omitted_patterns)]
|
|
match val {
|
|
//~^ ERROR some variants are not matched explicitly
|
|
NonExhaustiveEnum::Unit => {}
|
|
NonExhaustiveEnum::Tuple(_) => {}
|
|
_ => {}
|
|
}
|
|
|
|
#[cfg_attr(lint, deny(non_exhaustive_omitted_patterns))]
|
|
match val {
|
|
//[lint]~^ ERROR some variants are not matched explicitly
|
|
NonExhaustiveEnum::Unit => {}
|
|
NonExhaustiveEnum::Tuple(_) => {}
|
|
_ => {}
|
|
}
|
|
|
|
match val {
|
|
NonExhaustiveEnum::Unit => {}
|
|
NonExhaustiveEnum::Tuple(_) => {}
|
|
#[deny(non_exhaustive_omitted_patterns)]
|
|
_ => {}
|
|
}
|
|
//~^^ WARN lint level must be set on the whole match
|
|
|
|
match val {
|
|
NonExhaustiveEnum::Unit => {}
|
|
NonExhaustiveEnum::Tuple(_) => {}
|
|
#[cfg_attr(lint, deny(non_exhaustive_omitted_patterns))]
|
|
_ => {}
|
|
}
|
|
//[lint]~^^ WARN lint level must be set on the whole match
|
|
|
|
match val {
|
|
NonExhaustiveEnum::Unit => {}
|
|
NonExhaustiveEnum::Tuple(_) => {}
|
|
#[cfg_attr(lint, warn(non_exhaustive_omitted_patterns))]
|
|
_ => {}
|
|
}
|
|
//[lint]~^^ WARN lint level must be set on the whole match
|
|
}
|