Skip to content

Commit eac3231

Browse files
authored
Merge pull request #307 from dishmaker/dishmaker/perf_llvml_runtime
perf: reduce llvm-lines in runtime.rs
2 parents 11115fb + 4665865 commit eac3231

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

src/runtime.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -283,19 +283,20 @@ pub fn parse(tokens: &mut TokenStream, s: &str) {
283283
#[doc(hidden)]
284284
pub fn parse_spanned(tokens: &mut TokenStream, span: Span, s: &str) {
285285
let s: TokenStream = s.parse().expect("invalid token stream");
286-
tokens.extend(s.into_iter().map(|t| respan_token_tree(t, span)));
286+
for token in s.into_iter() {
287+
tokens.append(respan_token_tree(token, span));
288+
}
287289
}
288290

289291
// Token tree with every span replaced by the given one.
290292
fn respan_token_tree(mut token: TokenTree, span: Span) -> TokenTree {
291293
match &mut token {
292294
TokenTree::Group(g) => {
293-
let stream = g
294-
.stream()
295-
.into_iter()
296-
.map(|token| respan_token_tree(token, span))
297-
.collect();
298-
*g = Group::new(g.delimiter(), stream);
295+
let mut tokens = TokenStream::new();
296+
for token in g.stream().into_iter() {
297+
tokens.append(respan_token_tree(token, span));
298+
}
299+
*g = Group::new(g.delimiter(), tokens);
299300
g.set_span(span);
300301
}
301302
other => other.set_span(span),

0 commit comments

Comments
 (0)