File tree 2 files changed +94
-0
lines changed
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