Skip to content

Commit dd9028a

Browse files
committed
mbe::TokenTree: remove Lrc around Delimited and SequenceRepetition.
1 parent 75fd391 commit dd9028a

File tree

3 files changed

+10
-19
lines changed

3 files changed

+10
-19
lines changed

compiler/rustc_expand/src/mbe.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ crate mod transcribe;
1313
use metavar_expr::MetaVarExpr;
1414
use rustc_ast::token::{self, NonterminalKind, Token, TokenKind};
1515
use rustc_ast::tokenstream::DelimSpan;
16-
use rustc_data_structures::sync::Lrc;
1716
use rustc_span::symbol::Ident;
1817
use rustc_span::Span;
1918

@@ -64,13 +63,13 @@ enum KleeneOp {
6463

6564
/// Similar to `tokenstream::TokenTree`, except that `Sequence`, `MetaVar`, `MetaVarDecl`, and
6665
/// `MetaVarExpr` are "first-class" token trees. Useful for parsing macros.
67-
#[derive(Debug, Clone, PartialEq, Encodable, Decodable)]
66+
#[derive(Debug, PartialEq, Encodable, Decodable)]
6867
enum TokenTree {
6968
Token(Token),
7069
/// A delimited sequence, e.g. `($e:expr)` (RHS) or `{ $e }` (LHS).
71-
Delimited(DelimSpan, Lrc<Delimited>),
70+
Delimited(DelimSpan, Delimited),
7271
/// A kleene-style repetition sequence, e.g. `$($e:expr)*` (RHS) or `$($e),*` (LHS).
73-
Sequence(DelimSpan, Lrc<SequenceRepetition>),
72+
Sequence(DelimSpan, SequenceRepetition),
7473
/// e.g., `$var`.
7574
MetaVar(Span, Ident),
7675
/// e.g., `$var:expr`. Only appears on the LHS.

compiler/rustc_expand/src/mbe/macro_rules.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ use rustc_ast::{NodeId, DUMMY_NODE_ID};
1414
use rustc_ast_pretty::pprust;
1515
use rustc_attr::{self as attr, TransparencyError};
1616
use rustc_data_structures::fx::FxHashMap;
17-
use rustc_data_structures::sync::Lrc;
1817
use rustc_errors::{Applicability, Diagnostic, DiagnosticBuilder};
1918
use rustc_feature::Features;
2019
use rustc_lint_defs::builtin::{
@@ -407,7 +406,7 @@ pub fn compile_declarative_macro(
407406
let argument_gram = vec![
408407
mbe::TokenTree::Sequence(
409408
DelimSpan::dummy(),
410-
Lrc::new(mbe::SequenceRepetition {
409+
mbe::SequenceRepetition {
411410
tts: vec![
412411
mbe::TokenTree::MetaVarDecl(def.span, lhs_nm, tt_spec),
413412
mbe::TokenTree::token(token::FatArrow, def.span),
@@ -419,20 +418,20 @@ pub fn compile_declarative_macro(
419418
)),
420419
kleene: mbe::KleeneToken::new(mbe::KleeneOp::OneOrMore, def.span),
421420
num_captures: 2,
422-
}),
421+
},
423422
),
424423
// to phase into semicolon-termination instead of semicolon-separation
425424
mbe::TokenTree::Sequence(
426425
DelimSpan::dummy(),
427-
Lrc::new(mbe::SequenceRepetition {
426+
mbe::SequenceRepetition {
428427
tts: vec![mbe::TokenTree::token(
429428
if macro_rules { token::Semi } else { token::Comma },
430429
def.span,
431430
)],
432431
separator: None,
433432
kleene: mbe::KleeneToken::new(mbe::KleeneOp::ZeroOrMore, def.span),
434433
num_captures: 0,
435-
}),
434+
},
436435
),
437436
];
438437
// Convert it into `MatcherLoc` form.

compiler/rustc_expand/src/mbe/quoted.rs

+3-10
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ use rustc_span::symbol::{kw, sym, Ident};
1111
use rustc_span::edition::Edition;
1212
use rustc_span::{Span, SyntaxContext};
1313

14-
use rustc_data_structures::sync::Lrc;
15-
1614
const VALID_FRAGMENT_NAMES_MSG: &str = "valid fragment specifiers are \
1715
`ident`, `block`, `stmt`, `expr`, `pat`, `ty`, `lifetime`, \
1816
`literal`, `path`, `meta`, `tt`, `item` and `vis`";
@@ -213,12 +211,7 @@ fn parse_tree(
213211
if parsing_patterns { count_metavar_decls(&sequence) } else { 0 };
214212
TokenTree::Sequence(
215213
delim_span,
216-
Lrc::new(SequenceRepetition {
217-
tts: sequence,
218-
separator,
219-
kleene,
220-
num_captures,
221-
}),
214+
SequenceRepetition { tts: sequence, separator, kleene, num_captures },
222215
)
223216
}
224217

@@ -269,10 +262,10 @@ fn parse_tree(
269262
// descend into the delimited set and further parse it.
270263
tokenstream::TokenTree::Delimited(span, delim, tts) => TokenTree::Delimited(
271264
span,
272-
Lrc::new(Delimited {
265+
Delimited {
273266
delim,
274267
tts: parse(tts, parsing_patterns, sess, node_id, features, edition),
275-
}),
268+
},
276269
),
277270
}
278271
}

0 commit comments

Comments
 (0)