2017-07-11 12:30:10 +00: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 23:21:05 +00:00
|
|
|
#![macro_use(my_macro)]
|
2020-01-10 14:57:36 +00:00
|
|
|
//~^ ERROR arguments to `macro_use` are not allowed here
|
2017-07-11 12:30:10 +00:00
|
|
|
|
2019-01-01 23:21:05 +00:00
|
|
|
#[macro_use(my_macro)]
|
2020-01-10 14:57:36 +00:00
|
|
|
//~^ ERROR arguments to `macro_use` are not allowed here
|
2017-07-11 12:30:10 +00:00
|
|
|
mod macro_escape {
|
2019-01-01 23:21:05 +00:00
|
|
|
mod inner { #![macro_use(my_macro)] }
|
2020-01-10 14:57:36 +00:00
|
|
|
//~^ ERROR arguments to `macro_use` are not allowed here
|
2017-07-11 12:30:10 +00:00
|
|
|
|
|
|
|
#[macro_use = "2700"] struct S;
|
2019-05-22 00:47:23 +00:00
|
|
|
//~^ ERROR malformed `macro_use` attribute
|
2019-01-01 23:21:05 +00:00
|
|
|
|
|
|
|
#[macro_use] fn f() { }
|
2017-07-11 12:30:10 +00:00
|
|
|
|
2019-01-01 23:21:05 +00:00
|
|
|
#[macro_use] type T = S;
|
2017-07-11 12:30:10 +00:00
|
|
|
|
2019-01-01 23:21:05 +00:00
|
|
|
#[macro_use] impl S { }
|
2017-07-11 12:30:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() { }
|