//@ check-pass
//@ compile-flags: -Z span-debug
//@ aux-build:test-macros.rs

#![feature(cfg_eval)]
#![feature(proc_macro_hygiene)]
#![feature(stmt_expr_attributes)]
#![feature(rustc_attrs)]
#![no_std] // Don't load unnecessary hygiene information from std
extern crate std;

#[macro_use]
extern crate test_macros;

#[cfg_eval]
#[print_attr]
struct S1 {
    #[cfg(FALSE)]
    field_false: u8,
    #[cfg(all(/*true*/))]
    #[cfg_attr(FALSE, unknown_attr)]
    #[cfg_attr(all(/*true*/), allow())]
    field_true: u8,
}

#[cfg_eval]
#[cfg(FALSE)]
struct S2 {}

fn main() {
    // Subtle - we need a trailing comma after the '1' - otherwise, `#[cfg_eval]` will
    // turn this into `(#[cfg(all())] 1)`, which is a parenthesized expression, not a tuple
    // expression. `#[cfg]` is not supported inside parenthesized expressions, so this will
    // produce an error when attribute collection runs.
    let _ = #[cfg_eval] #[print_attr] #[cfg_attr(not(FALSE), rustc_dummy)]
    (#[cfg(FALSE)] 0, #[cfg(all(/*true*/))] 1,);
}
