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