@@ -511,9 +511,9 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
511511 }
512512
513513 // We've successfully resolved the import. Write the results in.
514- let mut import_resolutions = module_. import_resolutions . borrow_mut ( ) ;
515514
516515 {
516+ let mut import_resolutions = module_. import_resolutions . borrow_mut ( ) ;
517517 let mut check_and_write_import = |namespace, result| {
518518 let result: & ResolveResult < & NameBinding > = result;
519519
@@ -567,26 +567,22 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
567567 }
568568
569569 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 ) ;
573571
574572 // Record what this import resolves to for later uses in documentation,
575573 // this may resolve to either a value or a type, but for documentation
576574 // 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| {
578576 let def = binding. def ( ) . unwrap ( ) ;
579577 let last_private = if binding. is_public ( ) { lp } else { DependsOn ( def. def_id ( ) ) } ;
580578 ( def, last_private)
581579 } )
582580 } ;
583581
584582 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 ) ;
588584
589- import_resolution_type . binding . as_ref ( ) . map ( |binding| {
585+ type_result . success ( ) . map ( |binding| {
590586 let def = binding. def ( ) . unwrap ( ) ;
591587 let last_private = if binding. is_public ( ) { lp } else { DependsOn ( def. def_id ( ) ) } ;
592588 ( def, last_private)
0 commit comments