28 lines
569 B
Rust
28 lines
569 B
Rust
|
#![deny(unreachable_patterns)]
|
||
|
//~^ NOTE: lint level is defined here
|
||
|
pub enum TypeCtor {
|
||
|
Slice,
|
||
|
Array,
|
||
|
}
|
||
|
|
||
|
pub struct ApplicationTy(TypeCtor);
|
||
|
|
||
|
macro_rules! ty_app {
|
||
|
($ctor:pat) => {
|
||
|
ApplicationTy($ctor) //~ ERROR unreachable pattern
|
||
|
};
|
||
|
}
|
||
|
|
||
|
fn _foo(ty: ApplicationTy) {
|
||
|
match ty {
|
||
|
ty_app!(TypeCtor::Array) | ty_app!(TypeCtor::Slice) => {} //~ NOTE: in this expansion
|
||
|
}
|
||
|
|
||
|
// same as above, with the macro expanded
|
||
|
match ty {
|
||
|
ApplicationTy(TypeCtor::Array) | ApplicationTy(TypeCtor::Slice) => {}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {}
|