@@ -257,7 +257,7 @@ pub(super) fn transcribe<'a>(
257
257
258
258
// Replace meta-variable expressions with the result of their expansion.
259
259
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) ?;
261
261
}
262
262
263
263
// 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>(
513
513
cx : & ExtCtxt < ' a > ,
514
514
expr : MetaVarExpr ,
515
515
interp : & FxHashMap < MacroRulesNormalizedIdent , NamedMatch > ,
516
+ marker : & mut Marker ,
516
517
repeats : & [ ( usize , usize ) ] ,
517
518
result : & mut Vec < TreeAndSpacing > ,
518
519
sp : & DelimSpan ,
519
520
) -> PResult < ' a , ( ) > {
521
+ let mut visited_span = || {
522
+ let mut span = sp. entire ( ) ;
523
+ marker. visit_span ( & mut span) ;
524
+ span
525
+ } ;
520
526
match expr {
521
527
MetaVarExpr :: Count ( original_ident, depth_opt) => {
522
528
let matched = matched_from_ident ( cx, original_ident, interp) ?;
523
529
let count = count_repetitions ( cx, depth_opt, matched, & repeats, sp) ?;
524
530
let tt = TokenTree :: token (
525
531
TokenKind :: lit ( token:: Integer , sym:: integer ( count) , None ) ,
526
- sp . entire ( ) ,
532
+ visited_span ( ) ,
527
533
) ;
528
534
result. push ( tt. into ( ) ) ;
529
535
}
@@ -536,7 +542,7 @@ fn transcribe_metavar_expr<'a>(
536
542
result. push (
537
543
TokenTree :: token (
538
544
TokenKind :: lit ( token:: Integer , sym:: integer ( * index) , None ) ,
539
- sp . entire ( ) ,
545
+ visited_span ( ) ,
540
546
)
541
547
. into ( ) ,
542
548
) ;
@@ -548,7 +554,7 @@ fn transcribe_metavar_expr<'a>(
548
554
result. push (
549
555
TokenTree :: token (
550
556
TokenKind :: lit ( token:: Integer , sym:: integer ( * length) , None ) ,
551
- sp . entire ( ) ,
557
+ visited_span ( ) ,
552
558
)
553
559
. into ( ) ,
554
560
) ;
0 commit comments