rust/tests/ui/macros/macro-meta-items.rs

33 lines
514 B
Rust

//@ run-pass
//@ compile-flags: --cfg foo --check-cfg=cfg(foo)
#![allow(dead_code)]
macro_rules! compiles_fine {
($at:meta) => {
#[cfg($at)]
static MISTYPED: () = "foo";
}
}
macro_rules! emit {
($at:meta) => {
#[cfg($at)]
static MISTYPED: &'static str = "foo";
}
}
// item
compiles_fine!(FALSE);
emit!(foo);
fn foo() {
println!("{}", MISTYPED);
}
pub fn main() {
// statement
compiles_fine!(FALSE);
emit!(FALSE);
println!("{}", MISTYPED);
}