]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/edition-keywords-2018-2018.rs
Auto merge of #54265 - arielb1:civilize-proc-macros, r=alexcrichton
[rust.git] / src / test / run-pass / edition-keywords-2018-2018.rs
1 // Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 #![allow(unused_assignments)]
12 // edition:2018
13 // aux-build:edition-kw-macro-2018.rs
14
15 #[macro_use]
16 extern crate edition_kw_macro_2018;
17
18 pub fn check_async() {
19     // let mut async = 1; // ERROR, reserved
20     let mut r#async = 1; // OK
21
22     r#async = consumes_async!(async); // OK
23     // r#async = consumes_async!(r#async); // ERROR, not a match
24     // r#async = consumes_async_raw!(async); // ERROR, not a match
25     r#async = consumes_async_raw!(r#async); // OK
26
27     // if passes_ident!(async) == 1 {} // ERROR, reserved
28     if passes_ident!(r#async) == 1 {} // OK
29     // one_async::async(); // ERROR, reserved
30     // one_async::r#async(); // ERROR, unresolved name
31     // two_async::async(); // ERROR, reserved
32     two_async::r#async(); // OK
33 }
34
35 mod one_async {
36     // produces_async! {} // ERROR, reserved
37 }
38 mod two_async {
39     produces_async_raw! {} // OK
40 }
41
42 fn main() {}