File tree Expand file tree Collapse file tree 2 files changed +94
-0
lines changed Expand file tree Collapse file tree 2 files changed +94
-0
lines changed Original file line number Diff line number Diff line change 1+ // Check what token streams proc macros see when interpolated tokens are passed to them as input.
2+
3+ // check-pass
4+ // aux-build:test-macros.rs
5+
6+ #[ macro_use]
7+ extern crate test_macros;
8+
9+ macro_rules! pass_ident {
10+ ( $i: ident) => {
11+ fn f( ) {
12+ print_bang!( $i) ;
13+ }
14+
15+ #[ print_attr]
16+ const $i: u8 = 0 ;
17+
18+ #[ derive( Print ) ]
19+ struct $i { }
20+ } ;
21+ }
22+
23+ pass_ident ! ( A ) ;
24+
25+ fn main ( ) { }
Original file line number Diff line number Diff line change 1+ PRINT-BANG INPUT (DISPLAY): A
2+ PRINT-BANG RE-COLLECTED (DISPLAY): A
3+ PRINT-BANG INPUT (DEBUG): TokenStream [
4+ Group {
5+ delimiter: None,
6+ stream: TokenStream [
7+ Ident {
8+ ident: "A",
9+ span: #0 bytes(402..403),
10+ },
11+ ],
12+ span: #3 bytes(269..271),
13+ },
14+ ]
15+ PRINT-ATTR INPUT (DISPLAY): const A: u8 = 0;
16+ PRINT-ATTR RE-COLLECTED (DISPLAY): const A : u8 = 0 ;
17+ PRINT-ATTR INPUT (DEBUG): TokenStream [
18+ Ident {
19+ ident: "const",
20+ span: #0 bytes(0..0),
21+ },
22+ Ident {
23+ ident: "A",
24+ span: #0 bytes(0..0),
25+ },
26+ Punct {
27+ ch: ':',
28+ spacing: Alone,
29+ span: #0 bytes(0..0),
30+ },
31+ Ident {
32+ ident: "u8",
33+ span: #0 bytes(0..0),
34+ },
35+ Punct {
36+ ch: '=',
37+ spacing: Alone,
38+ span: #0 bytes(0..0),
39+ },
40+ Literal {
41+ kind: Integer,
42+ symbol: "0",
43+ suffix: None,
44+ span: #0 bytes(0..0),
45+ },
46+ Punct {
47+ ch: ';',
48+ spacing: Alone,
49+ span: #0 bytes(0..0),
50+ },
51+ ]
52+ PRINT-DERIVE INPUT (DISPLAY): struct A {
53+ }
54+ PRINT-DERIVE RE-COLLECTED (DISPLAY): struct A { }
55+ PRINT-DERIVE INPUT (DEBUG): TokenStream [
56+ Ident {
57+ ident: "struct",
58+ span: #0 bytes(0..0),
59+ },
60+ Ident {
61+ ident: "A",
62+ span: #0 bytes(0..0),
63+ },
64+ Group {
65+ delimiter: Brace,
66+ stream: TokenStream [],
67+ span: #0 bytes(0..0),
68+ },
69+ ]
You can’t perform that action at this time.
0 commit comments