| #![feature(extern_item_impls)] | |
| // Check whether the EII attributes do target checking properly. | |
| #[eii] | |
| fn foo() {} | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| const A: usize = 3; | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| macro_rules! foo_impl { | |
| () => {}; | |
| } | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| struct Foo; | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| impl Foo { | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| fn foo_impl() {} | |
| } | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| trait Bar { | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| fn foo_impl(); | |
| } | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| impl Bar for Foo { | |
| #[foo] | |
| //~^ ERROR `#[foo]` is only valid on functions | |
| #[eii] | |
| //~^ ERROR `#[eii]` is only valid on functions | |
| fn foo_impl() {} | |
| } | |
| fn main() {} |