//! I missed a `cfg_attr` match in #128581, it should have had the same treatment as `cfg`. If //! an invalid attribute starting with `cfg_attr` is passed, then it would trigger an ICE because //! it was not considered "checked" (e.g. `#[cfg_attr::skip]` or `#[cfg_attr::no_such_thing]`). //! //! This test is not exhaustive, there's too many possible positions to check, instead it just does //! a basic smoke test in a few select positions to make sure we don't ICE for e.g. //! `#[cfg_attr::no_such_thing]`. //! //! issue: rust-lang/rust#128716 #![crate_type = "lib"] #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve mod we_are_no_strangers_to_love {} #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve struct YouKnowTheRules { #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve and_so_do_i: u8, } #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve fn a_full_commitment() { #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve let is_what_i_am_thinking_of = (); } #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve union AnyOtherGuy { owo: () } struct This; #[cfg_attr(FALSE, doc = "you wouldn't get this")] impl From for This { #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve fn from(#[cfg_attr::no_such_thing] any_other_guy: AnyOtherGuy) -> This { //~^ ERROR failed to resolve #[cfg_attr::no_such_thing] //~^ ERROR attributes on expressions are experimental //~| ERROR failed to resolve unreachable!() } } #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve enum NeverGonna { #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve GiveYouUp(#[cfg_attr::no_such_thing] u8), //~^ ERROR failed to resolve LetYouDown { #![cfg_attr::no_such_thing] //~^ ERROR an inner attribute is not permitted in this context never_gonna: (), round_around: (), #[cfg_attr::no_such_thing] //~^ ERROR failed to resolve and_desert_you: (), }, }