@@ -263,9 +263,7 @@ fn generic_extension<'cx, 'tt>(
263263
264264 // Ignore the delimiters on the RHS.
265265 let rhs = match & rhses[ i] {
266- mbe:: TokenTree :: Delimited ( _, delimited) => {
267- delimited. inner_tts ( ) . to_vec ( ) . clone ( )
268- }
266+ mbe:: TokenTree :: Delimited ( _, delimited) => delimited. tts . to_vec ( ) ,
269267 _ => cx. span_bug ( sp, "malformed macro rhs" ) ,
270268 } ;
271269 let arm_span = rhses[ i] . span ( ) ;
@@ -470,17 +468,16 @@ pub fn compile_declarative_macro(
470468 . iter ( )
471469 . map ( |m| {
472470 if let MatchedTokenTree ( ref tt) = * m {
473- let mut tts = vec ! [ ] ;
474- mbe:: quoted:: parse (
471+ let tt = mbe:: quoted:: parse (
475472 tt. clone ( ) . into ( ) ,
476473 true ,
477474 & sess. parse_sess ,
478475 def. id ,
479476 features,
480477 edition,
481- & mut tts ,
482- ) ;
483- let tt = tts . pop ( ) . unwrap ( ) ;
478+ )
479+ . pop ( )
480+ . unwrap ( ) ;
484481 valid &= check_lhs_nt_follows ( & sess. parse_sess , features, & def, & tt) ;
485482 return tt;
486483 }
@@ -495,17 +492,16 @@ pub fn compile_declarative_macro(
495492 . iter ( )
496493 . map ( |m| {
497494 if let MatchedTokenTree ( ref tt) = * m {
498- let mut tts = vec ! [ ] ;
499- mbe:: quoted:: parse (
495+ return mbe:: quoted:: parse (
500496 tt. clone ( ) . into ( ) ,
501497 false ,
502498 & sess. parse_sess ,
503499 def. id ,
504500 features,
505501 edition,
506- & mut tts ,
507- ) ;
508- return tts . pop ( ) . unwrap ( ) ;
502+ )
503+ . pop ( )
504+ . unwrap ( ) ;
509505 }
510506 sess. parse_sess . span_diagnostic . span_bug ( def. span , "wrong-structured lhs" )
511507 } )
@@ -544,7 +540,7 @@ pub fn compile_declarative_macro(
544540 // Ignore the delimiters around the matcher.
545541 match lhs {
546542 mbe:: TokenTree :: Delimited ( _, delimited) => {
547- mbe:: macro_parser:: compute_locs ( & sess. parse_sess , delimited. inner_tts ( ) )
543+ mbe:: macro_parser:: compute_locs ( & sess. parse_sess , & delimited. tts )
548544 }
549545 _ => sess. parse_sess . span_diagnostic . span_bug ( def. span , "malformed macro lhs" ) ,
550546 }
@@ -576,7 +572,7 @@ fn check_lhs_nt_follows(
576572 // lhs is going to be like TokenTree::Delimited(...), where the
577573 // entire lhs is those tts. Or, it can be a "bare sequence", not wrapped in parens.
578574 if let mbe:: TokenTree :: Delimited ( _, delimited) = lhs {
579- check_matcher ( sess, features, def, delimited. inner_tts ( ) )
575+ check_matcher ( sess, features, def, & delimited. tts )
580576 } else {
581577 let msg = "invalid macro matcher; matchers must be contained in balanced delimiters" ;
582578 sess. span_diagnostic . span_err ( lhs. span ( ) , msg) ;
@@ -597,7 +593,7 @@ fn check_lhs_no_empty_seq(sess: &ParseSess, tts: &[mbe::TokenTree]) -> bool {
597593 | TokenTree :: MetaVarDecl ( ..)
598594 | TokenTree :: MetaVarExpr ( ..) => ( ) ,
599595 TokenTree :: Delimited ( _, ref del) => {
600- if !check_lhs_no_empty_seq ( sess, del. inner_tts ( ) ) {
596+ if !check_lhs_no_empty_seq ( sess, & del. tts ) {
601597 return false ;
602598 }
603599 }
@@ -692,9 +688,9 @@ impl FirstSets {
692688 | TokenTree :: MetaVarExpr ( ..) => {
693689 first. replace_with ( tt. clone ( ) ) ;
694690 }
695- TokenTree :: Delimited ( _span , ref delimited) => {
696- build_recur ( sets, delimited. inner_tts ( ) ) ;
697- first. replace_with ( delimited. open_tt ( ) . clone ( ) ) ;
691+ TokenTree :: Delimited ( span , ref delimited) => {
692+ build_recur ( sets, & delimited. tts ) ;
693+ first. replace_with ( delimited. open_tt ( span ) ) ;
698694 }
699695 TokenTree :: Sequence ( sp, ref seq_rep) => {
700696 let subfirst = build_recur ( sets, & seq_rep. tts ) ;
@@ -758,8 +754,8 @@ impl FirstSets {
758754 first. add_one ( tt. clone ( ) ) ;
759755 return first;
760756 }
761- TokenTree :: Delimited ( _span , ref delimited) => {
762- first. add_one ( delimited. open_tt ( ) . clone ( ) ) ;
757+ TokenTree :: Delimited ( span , ref delimited) => {
758+ first. add_one ( delimited. open_tt ( span ) ) ;
763759 return first;
764760 }
765761 TokenTree :: Sequence ( sp, ref seq_rep) => {
@@ -945,9 +941,9 @@ fn check_matcher_core(
945941 suffix_first = build_suffix_first ( ) ;
946942 }
947943 }
948- TokenTree :: Delimited ( _span , ref d) => {
949- let my_suffix = TokenSet :: singleton ( d. close_tt ( ) . clone ( ) ) ;
950- check_matcher_core ( sess, features, def, first_sets, d . inner_tts ( ) , & my_suffix) ;
944+ TokenTree :: Delimited ( span , ref d) => {
945+ let my_suffix = TokenSet :: singleton ( d. close_tt ( span ) ) ;
946+ check_matcher_core ( sess, features, def, first_sets, & d . tts , & my_suffix) ;
951947 // don't track non NT tokens
952948 last. replace_with_irrelevant ( ) ;
953949
0 commit comments