@@ -511,9 +511,9 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
511
511
}
512
512
513
513
// We've successfully resolved the import. Write the results in.
514
- let mut import_resolutions = module_. import_resolutions . borrow_mut ( ) ;
515
514
516
515
{
516
+ let mut import_resolutions = module_. import_resolutions . borrow_mut ( ) ;
517
517
let mut check_and_write_import = |namespace, result| {
518
518
let result: & ResolveResult < & NameBinding > = result;
519
519
@@ -567,26 +567,22 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
567
567
}
568
568
569
569
let value_def_and_priv = {
570
- let import_resolution_value = import_resolutions. get_mut ( & ( target, ValueNS ) ) . unwrap ( ) ;
571
- assert ! ( import_resolution_value. outstanding_references >= 1 ) ;
572
- import_resolution_value. outstanding_references -= 1 ;
570
+ module_. decrement_outstanding_references_for ( target, ValueNS ) ;
573
571
574
572
// Record what this import resolves to for later uses in documentation,
575
573
// this may resolve to either a value or a type, but for documentation
576
574
// purposes it's good enough to just favor one over the other.
577
- import_resolution_value . binding . as_ref ( ) . map ( |binding| {
575
+ value_result . success ( ) . map ( |binding| {
578
576
let def = binding. def ( ) . unwrap ( ) ;
579
577
let last_private = if binding. is_public ( ) { lp } else { DependsOn ( def. def_id ( ) ) } ;
580
578
( def, last_private)
581
579
} )
582
580
} ;
583
581
584
582
let type_def_and_priv = {
585
- let import_resolution_type = import_resolutions. get_mut ( & ( target, TypeNS ) ) . unwrap ( ) ;
586
- assert ! ( import_resolution_type. outstanding_references >= 1 ) ;
587
- import_resolution_type. outstanding_references -= 1 ;
583
+ module_. decrement_outstanding_references_for ( target, TypeNS ) ;
588
584
589
- import_resolution_type . binding . as_ref ( ) . map ( |binding| {
585
+ type_result . success ( ) . map ( |binding| {
590
586
let def = binding. def ( ) . unwrap ( ) ;
591
587
let last_private = if binding. is_public ( ) { lp } else { DependsOn ( def. def_id ( ) ) } ;
592
588
( def, last_private)
0 commit comments