diff options
| author | bors <bors@rust-lang.org> | 2022-04-14 06:36:04 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-04-14 06:36:04 +0000 |
| commit | f9d4d12b6ab97fae8b9a6f607473fe149f38f6bd (patch) | |
| tree | e634583136462b71bb9699a7a674f4f7afabb37c /compiler/rustc_expand/src/mbe/macro_parser.rs | |
| parent | f387c930ee7c84357f8fa9f4c38903c00404ac46 (diff) | |
| parent | dd9028a8c43f6770bb93073fb9d1b161ab3f68d3 (diff) | |
| download | rust-f9d4d12b6ab97fae8b9a6f607473fe149f38f6bd.tar.gz rust-f9d4d12b6ab97fae8b9a6f607473fe149f38f6bd.zip | |
Auto merge of #95928 - nnethercote:rm-TokenTree-Clone, r=petrochenkov
Remove `<mbe::TokenTree as Clone>` `mbe::TokenTree` doesn't really need to implement `Clone`, and getting rid of that impl leads to some speed-ups. r? `@petrochenkov`
Diffstat (limited to 'compiler/rustc_expand/src/mbe/macro_parser.rs')
| -rw-r--r-- | compiler/rustc_expand/src/mbe/macro_parser.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/rustc_expand/src/mbe/macro_parser.rs b/compiler/rustc_expand/src/mbe/macro_parser.rs index b5f56d7d6dc..74b8450f756 100644 --- a/compiler/rustc_expand/src/mbe/macro_parser.rs +++ b/compiler/rustc_expand/src/mbe/macro_parser.rs @@ -142,10 +142,13 @@ pub(super) fn compute_locs(sess: &ParseSess, matcher: &[TokenTree]) -> Vec<Match locs.push(MatcherLoc::Token { token: token.clone() }); } TokenTree::Delimited(span, delimited) => { + let open_token = Token::new(token::OpenDelim(delimited.delim), span.open); + let close_token = Token::new(token::CloseDelim(delimited.delim), span.close); + locs.push(MatcherLoc::Delimited); - inner(sess, &[delimited.open_tt(*span)], locs, next_metavar, seq_depth); + locs.push(MatcherLoc::Token { token: open_token }); inner(sess, &delimited.tts, locs, next_metavar, seq_depth); - inner(sess, &[delimited.close_tt(*span)], locs, next_metavar, seq_depth); + locs.push(MatcherLoc::Token { token: close_token }); } TokenTree::Sequence(_, seq) => { // We can't determine `idx_first_after` and construct the final |
