blob: a62915fe260911dfcdf27fe8e7cce425e757f1a7 [file] [log] [blame] [edit]
#![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() {}