35 lines
673 B
Rust
35 lines
673 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() {}
|