Skip to content

Commit 3ff6882

Browse files
committed
Merge pull request 293 from aatifsyed/master
2 parents 7d089f5 + 7a143c7 commit 3ff6882

File tree

1 file changed

+12
-58
lines changed

1 file changed

+12
-58
lines changed

src/runtime.rs

+12-58
Original file line numberDiff line numberDiff line change
@@ -305,68 +305,22 @@ pub fn push_ident_spanned(tokens: &mut TokenStream, span: Span, s: &str) {
305305

306306
#[doc(hidden)]
307307
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+
]);
335312
}
336313

337314
#[doc(hidden)]
338315
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+
]);
370324
}
371325

372326
macro_rules! push_punct {

0 commit comments

Comments
 (0)