@@ -6,14 +6,13 @@ use rustc_ast::token::{self, Delimiter, IdentIsRaw, Lit, LitKind, Nonterminal, T
6
6
use rustc_ast:: tokenstream:: { DelimSpacing , DelimSpan , Spacing , TokenStream , TokenTree } ;
7
7
use rustc_data_structures:: fx:: FxHashMap ;
8
8
use rustc_data_structures:: sync:: Lrc ;
9
- use rustc_data_structures:: unord:: UnordMap ;
10
9
use rustc_errors:: { Diag , DiagCtxtHandle , PResult , pluralize} ;
11
10
use rustc_parse:: lexer:: nfc_normalize;
12
11
use rustc_parse:: parser:: ParseNtResult ;
13
12
use rustc_session:: parse:: { ParseSess , SymbolGallery } ;
14
13
use rustc_span:: hygiene:: { LocalExpnId , Transparency } ;
15
14
use rustc_span:: {
16
- Ident , MacroRulesNormalizedIdent , Span , Symbol , SyntaxContext , sym, with_metavar_spans_mut ,
15
+ Ident , MacroRulesNormalizedIdent , Span , Symbol , SyntaxContext , sym, with_metavar_spans ,
17
16
} ;
18
17
use smallvec:: { SmallVec , smallvec} ;
19
18
@@ -283,13 +282,13 @@ pub(super) fn transcribe<'a>(
283
282
}
284
283
MatchedSingle ( ParseNtResult :: Ident ( ident, is_raw) ) => {
285
284
marker. visit_span ( & mut sp) ;
286
- with_metavar_spans_mut ( |mspans| mspans. insert ( ident. span , sp) ) ;
285
+ with_metavar_spans ( |mspans| mspans. insert ( ident. span , sp) ) ;
287
286
let kind = token:: NtIdent ( * ident, * is_raw) ;
288
287
TokenTree :: token_alone ( kind, sp)
289
288
}
290
289
MatchedSingle ( ParseNtResult :: Lifetime ( ident, is_raw) ) => {
291
290
marker. visit_span ( & mut sp) ;
292
- with_metavar_spans_mut ( |mspans| mspans. insert ( ident. span , sp) ) ;
291
+ with_metavar_spans ( |mspans| mspans. insert ( ident. span , sp) ) ;
293
292
let kind = token:: NtLifetime ( * ident, * is_raw) ;
294
293
TokenTree :: token_alone ( kind, sp)
295
294
}
@@ -299,7 +298,7 @@ pub(super) fn transcribe<'a>(
299
298
// `Interpolated` is currently used for such groups in rustc parser.
300
299
marker. visit_span ( & mut sp) ;
301
300
let use_span = nt. use_span ( ) ;
302
- with_metavar_spans_mut ( |mspans| mspans. insert ( use_span, sp) ) ;
301
+ with_metavar_spans ( |mspans| mspans. insert ( use_span, sp) ) ;
303
302
TokenTree :: token_alone ( token:: Interpolated ( Lrc :: clone ( nt) ) , sp)
304
303
}
305
304
MatchedSeq ( ..) => {
@@ -415,19 +414,15 @@ fn maybe_use_metavar_location(
415
414
return orig_tt. clone ( ) ;
416
415
}
417
416
418
- let insert = |mspans : & mut UnordMap < _ , _ > , s, ms| match mspans. try_insert ( s, ms) {
419
- Ok ( _) => true ,
420
- Err ( err) => * err. entry . get ( ) == ms, // Tried to insert the same span, still success
421
- } ;
422
417
marker. visit_span ( & mut metavar_span) ;
423
418
let no_collision = match orig_tt {
424
419
TokenTree :: Token ( token, ..) => {
425
- with_metavar_spans_mut ( |mspans| insert ( mspans , token. span , metavar_span) )
420
+ with_metavar_spans ( |mspans| mspans . insert ( token. span , metavar_span) )
426
421
}
427
- TokenTree :: Delimited ( dspan, ..) => with_metavar_spans_mut ( |mspans| {
428
- insert ( mspans , dspan. open , metavar_span)
429
- && insert ( mspans , dspan. close , metavar_span)
430
- && insert ( mspans , dspan. entire ( ) , metavar_span)
422
+ TokenTree :: Delimited ( dspan, ..) => with_metavar_spans ( |mspans| {
423
+ mspans . insert ( dspan. open , metavar_span)
424
+ && mspans . insert ( dspan. close , metavar_span)
425
+ && mspans . insert ( dspan. entire ( ) , metavar_span)
431
426
} ) ,
432
427
} ;
433
428
if no_collision || psess. source_map ( ) . is_imported ( metavar_span) {
@@ -439,14 +434,14 @@ fn maybe_use_metavar_location(
439
434
match orig_tt {
440
435
TokenTree :: Token ( Token { kind, span } , spacing) => {
441
436
let span = metavar_span. with_ctxt ( span. ctxt ( ) ) ;
442
- with_metavar_spans_mut ( |mspans| insert ( mspans , span, metavar_span) ) ;
437
+ with_metavar_spans ( |mspans| mspans . insert ( span, metavar_span) ) ;
443
438
TokenTree :: Token ( Token { kind : kind. clone ( ) , span } , * spacing)
444
439
}
445
440
TokenTree :: Delimited ( dspan, dspacing, delimiter, tts) => {
446
441
let open = metavar_span. with_ctxt ( dspan. open . ctxt ( ) ) ;
447
442
let close = metavar_span. with_ctxt ( dspan. close . ctxt ( ) ) ;
448
- with_metavar_spans_mut ( |mspans| {
449
- insert ( mspans , open, metavar_span) && insert ( mspans , close, metavar_span)
443
+ with_metavar_spans ( |mspans| {
444
+ mspans . insert ( open, metavar_span) && mspans . insert ( close, metavar_span)
450
445
} ) ;
451
446
let dspan = DelimSpan :: from_pair ( open, close) ;
452
447
TokenTree :: Delimited ( dspan, * dspacing, * delimiter, tts. clone ( ) )
0 commit comments