rust/tests/ui/proc-macro/expand-to-derive.rs

35 lines
676 B
Rust

//@ check-pass
//@ compile-flags: -Z span-debug --error-format human
//@ aux-build:test-macros.rs
#![feature(rustc_attrs)]
#![no_std] // Don't load unnecessary hygiene information from std
extern crate std;
#[macro_use]
extern crate test_macros;
macro_rules! expand_to_derive {
($item:item) => {
#[derive(Print)]
struct Foo {
#[cfg(FALSE)] removed: bool,
field: [bool; {
$item
0
}]
}
};
}
expand_to_derive! {
#[cfg_attr(not(FALSE), rustc_dummy)]
struct Inner {
#[cfg(FALSE)] removed_inner_field: bool,
other_inner_field: u8,
}
}
fn main() {}