@@ -257,7 +257,7 @@ pub(super) fn transcribe<'a>(
257257
258258 // Replace meta-variable expressions with the result of their expansion.
259259 mbe:: TokenTree :: MetaVarExpr ( sp, expr) => {
260- transcribe_metavar_expr ( cx, expr, interp, & repeats, & mut result, & sp) ?;
260+ transcribe_metavar_expr ( cx, expr, interp, & mut marker , & repeats, & mut result, & sp) ?;
261261 }
262262
263263 // If we are entering a new delimiter, we push its contents to the `stack` to be
@@ -513,17 +513,23 @@ fn transcribe_metavar_expr<'a>(
513513 cx : & ExtCtxt < ' a > ,
514514 expr : MetaVarExpr ,
515515 interp : & FxHashMap < MacroRulesNormalizedIdent , NamedMatch > ,
516+ marker : & mut Marker ,
516517 repeats : & [ ( usize , usize ) ] ,
517518 result : & mut Vec < TreeAndSpacing > ,
518519 sp : & DelimSpan ,
519520) -> PResult < ' a , ( ) > {
521+ let mut visited_span = || {
522+ let mut span = sp. entire ( ) ;
523+ marker. visit_span ( & mut span) ;
524+ span
525+ } ;
520526 match expr {
521527 MetaVarExpr :: Count ( original_ident, depth_opt) => {
522528 let matched = matched_from_ident ( cx, original_ident, interp) ?;
523529 let count = count_repetitions ( cx, depth_opt, matched, & repeats, sp) ?;
524530 let tt = TokenTree :: token (
525531 TokenKind :: lit ( token:: Integer , sym:: integer ( count) , None ) ,
526- sp . entire ( ) ,
532+ visited_span ( ) ,
527533 ) ;
528534 result. push ( tt. into ( ) ) ;
529535 }
@@ -536,7 +542,7 @@ fn transcribe_metavar_expr<'a>(
536542 result. push (
537543 TokenTree :: token (
538544 TokenKind :: lit ( token:: Integer , sym:: integer ( * index) , None ) ,
539- sp . entire ( ) ,
545+ visited_span ( ) ,
540546 )
541547 . into ( ) ,
542548 ) ;
@@ -548,7 +554,7 @@ fn transcribe_metavar_expr<'a>(
548554 result. push (
549555 TokenTree :: token (
550556 TokenKind :: lit ( token:: Integer , sym:: integer ( * length) , None ) ,
551- sp . entire ( ) ,
557+ visited_span ( ) ,
552558 )
553559 . into ( ) ,
554560 ) ;
0 commit comments