|  | #![allow(dead_code, unused_variables, unused_macro_rules, bad_style)] | 
|  | #![deny(keyword_idents)] | 
|  |  | 
|  | //@ edition:2015 | 
|  | //@ run-rustfix | 
|  |  | 
|  | fn r#async() {} //~ ERROR async | 
|  | //~^ WARN this is accepted in the current edition | 
|  |  | 
|  | macro_rules! foo { | 
|  | ($foo:ident) => {}; | 
|  | ($async:expr, r#async) => {}; | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | } | 
|  |  | 
|  | foo!(r#async); | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  |  | 
|  | mod dont_lint_raw { | 
|  | fn r#async() {} | 
|  | } | 
|  |  | 
|  | mod async_trait { | 
|  | trait r#async {} | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | struct MyStruct; | 
|  | impl r#async for MyStruct {} | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | } | 
|  |  | 
|  | mod async_static { | 
|  | static r#async: u32 = 0; | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | } | 
|  |  | 
|  | mod async_const { | 
|  | const r#async: u32 = 0; | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | } | 
|  |  | 
|  | struct Foo; | 
|  | impl Foo { fn r#async() {} } | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  |  | 
|  | fn main() { | 
|  | struct r#async {} | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | let r#async: r#async = r#async {}; | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | //~| ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | //~| ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | } | 
|  |  | 
|  | #[macro_export] | 
|  | macro_rules! produces_async { | 
|  | () => (pub fn r#async() {}) | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | } | 
|  |  | 
|  | #[macro_export] | 
|  | macro_rules! consumes_async { | 
|  | (r#async) => (1) | 
|  | //~^ ERROR async | 
|  | //~| WARN this is accepted in the current edition | 
|  | } |