45 lines
881 B
Rust
45 lines
881 B
Rust
|
fn main() {}
|
||
|
|
||
|
macro_rules! expand_to_enum {
|
||
|
() => {
|
||
|
enum BadE {}
|
||
|
//~^ ERROR enum is not supported in `trait`s or `impl`s
|
||
|
//~| ERROR enum is not supported in `trait`s or `impl`s
|
||
|
//~| ERROR enum is not supported in `extern` blocks
|
||
|
};
|
||
|
}
|
||
|
|
||
|
macro_rules! mac_impl {
|
||
|
($($i:item)*) => {
|
||
|
struct S;
|
||
|
impl S { $($i)* }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
mac_impl! {
|
||
|
struct BadS; //~ ERROR struct is not supported in `trait`s or `impl`s
|
||
|
expand_to_enum!();
|
||
|
}
|
||
|
|
||
|
macro_rules! mac_trait {
|
||
|
($($i:item)*) => {
|
||
|
trait T { $($i)* }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
mac_trait! {
|
||
|
struct BadS; //~ ERROR struct is not supported in `trait`s or `impl`s
|
||
|
expand_to_enum!();
|
||
|
}
|
||
|
|
||
|
macro_rules! mac_extern {
|
||
|
($($i:item)*) => {
|
||
|
extern "C" { $($i)* }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
mac_extern! {
|
||
|
struct BadS; //~ ERROR struct is not supported in `extern` blocks
|
||
|
expand_to_enum!();
|
||
|
}
|