@@ -305,68 +305,22 @@ pub fn push_ident_spanned(tokens: &mut TokenStream, span: Span, s: &str) {
305305
306306#[ doc( hidden) ]
307307pub 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+ ] ) ;
335312}
336313
337314#[ doc( hidden) ]
338315pub 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+ ] ) ;
370324}
371325
372326macro_rules! push_punct {
0 commit comments