@@ -12,11 +12,10 @@ extern crate quote;
12
12
13
13
use std:: env;
14
14
15
- use proc_macro2:: Literal ;
16
- use proc_macro2:: { Term , TokenNode , TokenStream , TokenTree } ;
15
+ use proc_macro2:: { Literal , Span , Term , TokenStream , TokenTree } ;
17
16
18
17
fn string ( s : & str ) -> TokenTree {
19
- TokenNode :: Literal ( Literal :: string ( s) ) . into ( )
18
+ Literal :: string ( s) . into ( )
20
19
}
21
20
22
21
#[ proc_macro_attribute]
@@ -29,12 +28,12 @@ pub fn simd_test(
29
28
if tokens. len ( ) != 2 {
30
29
panic ! ( "expected #[simd_test = \" feature\" ]" ) ;
31
30
}
32
- match tokens[ 0 ] . kind {
33
- TokenNode :: Op ( '=' , _ ) => { }
31
+ match & tokens[ 0 ] {
32
+ TokenTree :: Op ( tt ) if tt . op ( ) == '=' => { }
34
33
_ => panic ! ( "expected #[simd_test = \" feature\" ]" ) ,
35
34
}
36
- let target_features = match tokens[ 1 ] . kind {
37
- TokenNode :: Literal ( ref l ) => l . to_string ( ) ,
35
+ let target_features = match & tokens[ 1 ] {
36
+ TokenTree :: Literal ( tt ) => tt . to_string ( ) ,
38
37
_ => panic ! ( "expected #[simd_test = \" feature\" ]" ) ,
39
38
} ;
40
39
let target_features: Vec < String > = target_features
@@ -44,8 +43,8 @@ pub fn simd_test(
44
43
. map ( |v| String :: from ( v) )
45
44
. collect ( ) ;
46
45
47
- let enable_feature = match tokens[ 1 ] . kind {
48
- TokenNode :: Literal ( ref l ) => l . to_string ( ) ,
46
+ let enable_feature = match & tokens[ 1 ] {
47
+ TokenTree :: Literal ( tt ) => tt . to_string ( ) ,
49
48
_ => panic ! ( "expected #[simd_test = \" feature\" ]" ) ,
50
49
} ;
51
50
let enable_feature = enable_feature
@@ -88,7 +87,7 @@ pub fn simd_test(
88
87
}
89
88
t => panic ! ( "unknown target: {}" , t) ,
90
89
} ;
91
- let macro_test = proc_macro2:: Term :: intern ( macro_test) ;
90
+ let macro_test = proc_macro2:: Term :: new ( macro_test, Span :: call_site ( ) ) ;
92
91
93
92
let mut cfg_target_features = quote:: Tokens :: new ( ) ;
94
93
use quote:: ToTokens ;
@@ -123,15 +122,15 @@ pub fn simd_test(
123
122
fn find_name ( item : TokenStream ) -> Term {
124
123
let mut tokens = item. into_iter ( ) ;
125
124
while let Some ( tok) = tokens. next ( ) {
126
- if let TokenNode :: Term ( word) = tok. kind {
125
+ if let TokenTree :: Term ( word) = tok {
127
126
if word. as_str ( ) == "fn" {
128
127
break ;
129
128
}
130
129
}
131
130
}
132
131
133
- match tokens. next ( ) . map ( |t| t . kind ) {
134
- Some ( TokenNode :: Term ( word) ) => word,
132
+ match tokens. next ( ) {
133
+ Some ( TokenTree :: Term ( word) ) => word,
135
134
_ => panic ! ( "failed to find function name" ) ,
136
135
}
137
136
}
0 commit comments