@@ -305,68 +305,22 @@ pub fn push_ident_spanned(tokens: &mut TokenStream, span: Span, s: &str) {
305
305
306
306
#[ doc( hidden) ]
307
307
pub fn push_lifetime ( tokens : & mut TokenStream , lifetime : & str ) {
308
- struct Lifetime < ' a > {
309
- name : & ' a str ,
310
- state : u8 ,
311
- }
312
-
313
- impl < ' a > Iterator for Lifetime < ' a > {
314
- type Item = TokenTree ;
315
-
316
- fn next ( & mut self ) -> Option < Self :: Item > {
317
- match self . state {
318
- 0 => {
319
- self . state = 1 ;
320
- Some ( TokenTree :: Punct ( Punct :: new ( '\'' , Spacing :: Joint ) ) )
321
- }
322
- 1 => {
323
- self . state = 2 ;
324
- Some ( TokenTree :: Ident ( Ident :: new ( self . name , Span :: call_site ( ) ) ) )
325
- }
326
- _ => None ,
327
- }
328
- }
329
- }
330
-
331
- tokens. extend ( Lifetime {
332
- name : & lifetime[ 1 ..] ,
333
- state : 0 ,
334
- } ) ;
308
+ tokens. extend ( [
309
+ TokenTree :: Punct ( Punct :: new ( '\'' , Spacing :: Joint ) ) ,
310
+ TokenTree :: Ident ( Ident :: new ( & lifetime[ 1 ..] , Span :: call_site ( ) ) ) ,
311
+ ] ) ;
335
312
}
336
313
337
314
#[ doc( hidden) ]
338
315
pub fn push_lifetime_spanned ( tokens : & mut TokenStream , span : Span , lifetime : & str ) {
339
- struct Lifetime < ' a > {
340
- name : & ' a str ,
341
- span : Span ,
342
- state : u8 ,
343
- }
344
-
345
- impl < ' a > Iterator for Lifetime < ' a > {
346
- type Item = TokenTree ;
347
-
348
- fn next ( & mut self ) -> Option < Self :: Item > {
349
- match self . state {
350
- 0 => {
351
- self . state = 1 ;
352
- let mut apostrophe = Punct :: new ( '\'' , Spacing :: Joint ) ;
353
- apostrophe. set_span ( self . span ) ;
354
- Some ( TokenTree :: Punct ( apostrophe) )
355
- }
356
- 1 => {
357
- self . state = 2 ;
358
- Some ( TokenTree :: Ident ( Ident :: new ( self . name , self . span ) ) )
359
- }
360
- _ => None ,
361
- }
362
- }
363
- }
364
-
365
- tokens. extend ( Lifetime {
366
- name : & lifetime[ 1 ..] ,
367
- span,
368
- state : 0 ,
369
- } ) ;
316
+ tokens. extend ( [
317
+ TokenTree :: Punct ( {
318
+ let mut apostrophe = Punct :: new ( '\'' , Spacing :: Joint ) ;
319
+ apostrophe. set_span ( span) ;
320
+ apostrophe
321
+ } ) ,
322
+ TokenTree :: Ident ( Ident :: new ( & lifetime[ 1 ..] , span) ) ,
323
+ ] ) ;
370
324
}
371
325
372
326
macro_rules! push_punct {
0 commit comments