1
- use proc_macro2:: Span ;
2
- use quote:: Tokens ;
1
+ use proc_macro2:: { TokenStream , Span } ;
3
2
use syn:: { Ident , LitStr } ;
4
3
5
4
use analyze:: Ownerships ;
6
5
use check:: { App , Kind } ;
7
6
8
7
fn krate ( ) -> Ident {
9
- Ident :: from ( "rtfm" )
8
+ Ident :: new ( "rtfm" , Span :: call_site ( ) )
10
9
}
11
10
12
- pub fn app ( app : & App , ownerships : & Ownerships ) -> Tokens {
11
+ pub fn app ( app : & App , ownerships : & Ownerships ) -> TokenStream {
13
12
let mut root = vec ! [ ] ;
14
13
let mut main = vec ! [ quote!( #![ allow( path_statements) ] ) ] ;
15
14
@@ -28,7 +27,7 @@ pub fn app(app: &App, ownerships: &Ownerships) -> Tokens {
28
27
quote ! ( #( #root) * )
29
28
}
30
29
31
- fn idle ( app : & App , ownerships : & Ownerships , main : & mut Vec < Tokens > , root : & mut Vec < Tokens > ) {
30
+ fn idle ( app : & App , ownerships : & Ownerships , main : & mut Vec < TokenStream > , root : & mut Vec < TokenStream > ) {
32
31
let krate = krate ( ) ;
33
32
34
33
let mut mod_items = vec ! [ ] ;
@@ -54,7 +53,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V
54
53
let super_ = if needs_reexport {
55
54
None
56
55
} else {
57
- Some ( Ident :: from ( "super" ) )
56
+ Some ( Ident :: new ( "super" , Span :: call_site ( ) ) )
58
57
} ;
59
58
let mut rexprs = vec ! [ ] ;
60
59
let mut rfields = vec ! [ ] ;
@@ -70,7 +69,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V
70
69
pub #name: & ' static mut #ty,
71
70
} ) ;
72
71
73
- let _name = Ident :: from ( format ! ( "_{}" , name. as_ref ( ) ) ) ;
72
+ let _name = Ident :: new ( & name. to_string ( ) , Span :: call_site ( ) ) ;
74
73
rexprs. push ( if resource. expr . is_some ( ) {
75
74
quote ! {
76
75
#name: & mut #super_:: #_name,
@@ -136,7 +135,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V
136
135
continue ;
137
136
}
138
137
139
- let _name = Ident :: from ( format ! ( "_{}" , name. as_ref ( ) ) ) ;
138
+ let _name = Ident :: new ( & name. to_string ( ) , Span :: call_site ( ) ) ;
140
139
let resource = app. resources
141
140
. get ( name)
142
141
. expect ( & format ! ( "BUG: resource {} has no definition" , name) ) ;
@@ -224,7 +223,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V
224
223
} ) ;
225
224
}
226
225
227
- fn init ( app : & App , main : & mut Vec < Tokens > , root : & mut Vec < Tokens > ) {
226
+ fn init ( app : & App , main : & mut Vec < TokenStream > , root : & mut Vec < TokenStream > ) {
228
227
let device = & app. device ;
229
228
let krate = krate ( ) ;
230
229
@@ -263,7 +262,7 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) {
263
262
& mut #name
264
263
} , ) ) ;
265
264
} else {
266
- let _name = Ident :: from ( format ! ( "_{}" , name. as_ref ( ) ) ) ;
265
+ let _name = Ident :: new ( & name. to_string ( ) , Span :: call_site ( ) ) ;
267
266
lifetime = Some ( quote ! ( ' a) ) ;
268
267
269
268
fields. push ( quote ! {
@@ -310,7 +309,7 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) {
310
309
let mut fields = vec ! [ ] ;
311
310
312
311
for ( name, resource) in late_resources {
313
- let _name = Ident :: from ( format ! ( "_{}" , name. as_ref ( ) ) ) ;
312
+ let _name = Ident :: new ( & name. to_string ( ) , Span :: call_site ( ) ) ;
314
313
315
314
let ty = & resource. ty ;
316
315
@@ -415,11 +414,11 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) {
415
414
} ) ;
416
415
}
417
416
418
- fn resources ( app : & App , ownerships : & Ownerships , root : & mut Vec < Tokens > ) {
417
+ fn resources ( app : & App , ownerships : & Ownerships , root : & mut Vec < TokenStream > ) {
419
418
let krate = krate ( ) ;
420
419
421
420
for name in ownerships. keys ( ) {
422
- let _name = Ident :: from ( format ! ( "_{}" , name. as_ref ( ) ) ) ;
421
+ let _name = Ident :: new ( & name. to_string ( ) , Span :: call_site ( ) ) ;
423
422
424
423
// Declare the static that holds the resource
425
424
let resource = app. resources
@@ -442,7 +441,7 @@ fn resources(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>) {
442
441
}
443
442
}
444
443
445
- fn tasks ( app : & App , ownerships : & Ownerships , root : & mut Vec < Tokens > , main : & mut Vec < Tokens > ) {
444
+ fn tasks ( app : & App , ownerships : & Ownerships , root : & mut Vec < TokenStream > , main : & mut Vec < TokenStream > ) {
446
445
let device = & app. device ;
447
446
let krate = krate ( ) ;
448
447
@@ -456,7 +455,7 @@ fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>, main: &mut
456
455
if has_resources {
457
456
for rname in & task. resources {
458
457
let ceiling = ownerships[ rname] . ceiling ( ) ;
459
- let _rname = Ident :: from ( format ! ( "_{}" , rname. as_ref ( ) ) ) ;
458
+ let _rname = Ident :: new ( & rname. to_string ( ) , Span :: call_site ( ) ) ;
460
459
let resource = app. resources
461
460
. get ( rname)
462
461
. expect ( & format ! ( "BUG: resource {} has no definition" , rname) ) ;
@@ -594,8 +593,8 @@ fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>, main: &mut
594
593
}
595
594
596
595
let path = & task. path ;
597
- let _tname = Ident :: from ( format ! ( "_{}" , tname ) ) ;
598
- let export_name = LitStr :: new ( tname. as_ref ( ) , Span :: call_site ( ) ) ;
596
+ let _tname = Ident :: new ( & tname . to_string ( ) , Span :: call_site ( ) ) ;
597
+ let export_name = LitStr :: new ( & tname. to_string ( ) , Span :: call_site ( ) ) ;
599
598
root. push ( quote ! {
600
599
#[ allow( non_snake_case) ]
601
600
#[ allow( unsafe_code) ]
0 commit comments