File tree Expand file tree Collapse file tree 2 files changed +75
-0
lines changed
Expand file tree Collapse file tree 2 files changed +75
-0
lines changed Original file line number Diff line number Diff line change 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+ // compile-flags: -Zedition=2015 -Zunstable-options
12+ #![ feature( raw_identifiers) ]
13+
14+ #[ macro_export]
15+ macro_rules! produces_async {
16+ ( ) => ( pub fn async ( ) { } )
17+ }
18+
19+ #[ macro_export]
20+ macro_rules! produces_async_raw {
21+ ( ) => ( pub fn r#async( ) { } )
22+ }
23+
24+ #[ macro_export]
25+ macro_rules! consumes_async {
26+ ( async ) => ( 1 )
27+ }
28+
29+ #[ macro_export]
30+ macro_rules! consumes_async_raw {
31+ ( r#async) => ( 1 )
32+ }
33+
34+ #[ macro_export]
35+ macro_rules! consumes_ident {
36+ ( $i: ident) => ( $i)
37+ }
Original file line number Diff line number Diff line change 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+ // compile-flags: -Zedition=2018 -Zunstable-options
12+ // aux-build:edition-kw-macro-2015.rs
13+
14+ #![ feature( raw_identifiers) ]
15+
16+ #[ macro_use]
17+ extern crate edition_kw_macro_2015;
18+
19+ pub fn main ( ) {
20+ let mut r#async = 1 ;
21+
22+ r#async = consumes_async ! ( r#async) ;
23+ r#async = consumes_async_raw ! ( r#async) ;
24+
25+ if consumes_ident ! ( r#async) == 1 {
26+ // ...
27+ }
28+ one:: r#async ( ) ;
29+ two:: r#async ( ) ;
30+ }
31+
32+
33+ mod one {
34+ produces_async ! { }
35+ }
36+ mod two {
37+ produces_async_raw ! { }
38+ }
You can’t perform that action at this time.
0 commit comments