@@ -87,7 +87,6 @@ pub struct Definitions {
87
87
parent_modules_of_macro_defs : FxHashMap < ExpnId , DefId > ,
88
88
/// Item with a given `LocalDefId` was defined during macro expansion with ID `ExpnId`.
89
89
expansions_that_defined : FxHashMap < LocalDefId , ExpnId > ,
90
- next_disambiguator : FxHashMap < ( LocalDefId , DefPathData ) , u32 > ,
91
90
}
92
91
93
92
/// A unique identifier that we can use to lookup a definition
@@ -350,7 +349,6 @@ impl Definitions {
350
349
def_id_to_hir_id : Default :: default ( ) ,
351
350
hir_id_to_def_id : Default :: default ( ) ,
352
351
expansions_that_defined : Default :: default ( ) ,
353
- next_disambiguator : Default :: default ( ) ,
354
352
parent_modules_of_macro_defs : Default :: default ( ) ,
355
353
}
356
354
}
@@ -366,20 +364,14 @@ impl Definitions {
366
364
parent : LocalDefId ,
367
365
data : DefPathData ,
368
366
expn_id : ExpnId ,
367
+ mut next_disambiguator : impl FnMut ( LocalDefId , DefPathData ) -> u32 ,
369
368
) -> LocalDefId {
370
369
debug ! ( "create_def(parent={:?}, data={:?}, expn_id={:?})" , parent, data, expn_id) ;
371
370
372
371
// The root node must be created with `create_root_def()`.
373
372
assert ! ( data != DefPathData :: CrateRoot ) ;
374
373
375
- // Find the next free disambiguator for this key.
376
- let disambiguator = {
377
- let next_disamb = self . next_disambiguator . entry ( ( parent, data) ) . or_insert ( 0 ) ;
378
- let disambiguator = * next_disamb;
379
- * next_disamb = next_disamb. checked_add ( 1 ) . expect ( "disambiguator overflow" ) ;
380
- disambiguator
381
- } ;
382
-
374
+ let disambiguator = next_disambiguator ( parent, data) ;
383
375
let key = DefKey {
384
376
parent : Some ( parent. local_def_index ) ,
385
377
disambiguated_data : DisambiguatedDefPathData { data, disambiguator } ,
0 commit comments