@@ -797,7 +797,7 @@ fn match_meta_var<S: Span>(
797797 return input. expect_fragment ( parser:: PrefixEntryPoint :: Expr ) . map ( |tt| {
798798 tt. map ( |tt| match tt {
799799 tt:: TokenTree :: Leaf ( leaf) => tt:: Subtree {
800- delimiter : tt:: Delimiter :: dummy_invisible ( ) ,
800+ delimiter : tt:: Delimiter :: invisible_spanned ( * leaf . span ( ) ) ,
801801 token_trees : vec ! [ leaf. into( ) ] ,
802802 } ,
803803 tt:: TokenTree :: Subtree ( mut s) => {
@@ -831,7 +831,7 @@ fn match_meta_var<S: Span>(
831831 match neg {
832832 None => lit. into ( ) ,
833833 Some ( neg) => tt:: TokenTree :: Subtree ( tt:: Subtree {
834- delimiter : tt:: Delimiter :: dummy_invisible ( ) ,
834+ delimiter : tt:: Delimiter :: invisible_spanned ( * literal . span ( ) ) ,
835835 token_trees : vec ! [ neg, lit. into( ) ] ,
836836 } ) ,
837837 }
@@ -960,11 +960,13 @@ impl<S: Span> TtIter<'_, S> {
960960 self . expect_lifetime ( )
961961 } else {
962962 let puncts = self . expect_glued_punct ( ) ?;
963+ let delimiter = tt:: Delimiter {
964+ open : puncts. first ( ) . unwrap ( ) . span ,
965+ close : puncts. last ( ) . unwrap ( ) . span ,
966+ kind : tt:: DelimiterKind :: Invisible ,
967+ } ;
963968 let token_trees = puncts. into_iter ( ) . map ( |p| tt:: Leaf :: Punct ( p) . into ( ) ) . collect ( ) ;
964- Ok ( tt:: TokenTree :: Subtree ( tt:: Subtree {
965- delimiter : tt:: Delimiter :: dummy_invisible ( ) ,
966- token_trees,
967- } ) )
969+ Ok ( tt:: TokenTree :: Subtree ( tt:: Subtree { delimiter, token_trees } ) )
968970 }
969971 } else {
970972 self . next ( ) . ok_or ( ( ) ) . cloned ( )
@@ -979,7 +981,11 @@ impl<S: Span> TtIter<'_, S> {
979981 let ident = self . expect_ident_or_underscore ( ) ?;
980982
981983 Ok ( tt:: Subtree {
982- delimiter : tt:: Delimiter :: dummy_invisible ( ) ,
984+ delimiter : tt:: Delimiter {
985+ open : punct. span ,
986+ close : ident. span ,
987+ kind : tt:: DelimiterKind :: Invisible ,
988+ } ,
983989 token_trees : vec ! [
984990 tt:: Leaf :: Punct ( * punct) . into( ) ,
985991 tt:: Leaf :: Ident ( ident. clone( ) ) . into( ) ,
0 commit comments