2017-07-11 07:30:10 -05:00
|
|
|
// This is just a check-list of the cases where feeding arguments to
|
|
|
|
// `#[macro_use]` is rejected. (The cases where no error is emitted
|
|
|
|
// corresponds to cases where the attribute is currently unused, so we
|
|
|
|
// get that warning; see issue-43106-gating-of-builtin-attrs.rs
|
|
|
|
|
2019-01-01 17:21:05 -06:00
|
|
|
#![macro_use(my_macro)]
|
|
|
|
//~^ ERROR arguments to macro_use are not allowed here
|
2017-07-11 07:30:10 -05:00
|
|
|
|
2019-01-01 17:21:05 -06:00
|
|
|
#[macro_use(my_macro)]
|
2017-07-11 07:30:10 -05:00
|
|
|
//~^ ERROR arguments to macro_use are not allowed here
|
|
|
|
mod macro_escape {
|
2019-01-01 17:21:05 -06:00
|
|
|
mod inner { #![macro_use(my_macro)] }
|
2017-07-11 07:30:10 -05:00
|
|
|
//~^ ERROR arguments to macro_use are not allowed here
|
|
|
|
|
|
|
|
#[macro_use = "2700"] struct S;
|
2019-01-01 17:21:05 -06:00
|
|
|
//~^ ERROR attribute must be of the form
|
|
|
|
|
|
|
|
#[macro_use] fn f() { }
|
2017-07-11 07:30:10 -05:00
|
|
|
|
2019-01-01 17:21:05 -06:00
|
|
|
#[macro_use] type T = S;
|
2017-07-11 07:30:10 -05:00
|
|
|
|
2019-01-01 17:21:05 -06:00
|
|
|
#[macro_use] impl S { }
|
2017-07-11 07:30:10 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() { }
|