@@ -176,7 +176,7 @@ fn parse_tree<'a>(
176
176
// Depending on what `tree` is, we could be parsing different parts of a macro
177
177
match tree {
178
178
// `tree` is a `$` token. Look at the next token in `trees`
179
- & tokenstream:: TokenTree :: Token ( Token { kind : token:: Dollar , span } , _) => {
179
+ & tokenstream:: TokenTree :: Token ( Token { kind : token:: Dollar , span : dollar_span } , _) => {
180
180
// FIXME: Handle `Invisible`-delimited groups in a more systematic way
181
181
// during parsing.
182
182
let mut next = outer_trees. next ( ) ;
@@ -209,7 +209,7 @@ fn parse_tree<'a>(
209
209
err. emit ( ) ;
210
210
// Returns early the same read `$` to avoid spanning
211
211
// unrelated diagnostics that could be performed afterwards
212
- return TokenTree :: token ( token:: Dollar , span ) ;
212
+ return TokenTree :: token ( token:: Dollar , dollar_span ) ;
213
213
}
214
214
Ok ( elem) => {
215
215
maybe_emit_macro_metavar_expr_feature (
@@ -251,7 +251,7 @@ fn parse_tree<'a>(
251
251
// special metavariable that names the crate of the invocation.
252
252
Some ( tokenstream:: TokenTree :: Token ( token, _) ) if token. is_ident ( ) => {
253
253
let ( ident, is_raw) = token. ident ( ) . unwrap ( ) ;
254
- let span = ident. span . with_lo ( span . lo ( ) ) ;
254
+ let span = ident. span . with_lo ( dollar_span . lo ( ) ) ;
255
255
if ident. name == kw:: Crate && matches ! ( is_raw, IdentIsRaw :: No ) {
256
256
TokenTree :: token ( token:: Ident ( kw:: DollarCrate , is_raw) , span)
257
257
} else {
@@ -260,16 +260,19 @@ fn parse_tree<'a>(
260
260
}
261
261
262
262
// `tree` is followed by another `$`. This is an escaped `$`.
263
- Some ( & tokenstream:: TokenTree :: Token ( Token { kind : token:: Dollar , span } , _) ) => {
263
+ Some ( & tokenstream:: TokenTree :: Token (
264
+ Token { kind : token:: Dollar , span : dollar_span2 } ,
265
+ _,
266
+ ) ) => {
264
267
if parsing_patterns {
265
268
span_dollar_dollar_or_metavar_in_the_lhs_err (
266
269
sess,
267
- & Token { kind : token:: Dollar , span } ,
270
+ & Token { kind : token:: Dollar , span : dollar_span2 } ,
268
271
) ;
269
272
} else {
270
- maybe_emit_macro_metavar_expr_feature ( features, sess, span ) ;
273
+ maybe_emit_macro_metavar_expr_feature ( features, sess, dollar_span2 ) ;
271
274
}
272
- TokenTree :: token ( token:: Dollar , span )
275
+ TokenTree :: token ( token:: Dollar , dollar_span2 )
273
276
}
274
277
275
278
// `tree` is followed by some other token. This is an error.
@@ -281,7 +284,7 @@ fn parse_tree<'a>(
281
284
}
282
285
283
286
// There are no more tokens. Just return the `$` we already have.
284
- None => TokenTree :: token ( token:: Dollar , span ) ,
287
+ None => TokenTree :: token ( token:: Dollar , dollar_span ) ,
285
288
}
286
289
}
287
290
0 commit comments