// check-pass // compile-flags: -Z span-debug --error-format human // aux-build:test-macros.rs #![feature(rustc_attrs)] #![feature(stmt_expr_attributes)] #![no_std] // Don't load unnecessary hygiene information from std extern crate std; #[macro_use] extern crate test_macros; macro_rules! produce_it { ($expr:expr) => { #[derive(Print)] struct Foo { val: [bool; { let a = #[cfg_attr(not(FALSE), rustc_dummy(first))] $expr; 0 }] } } } produce_it!(#[cfg_attr(not(FALSE), rustc_dummy(second))] { #![cfg_attr(not(FALSE), allow(unused))] 30 }); fn main() {}