@@ -3808,19 +3808,50 @@ impl Remap {
38083808 parent_pkg_id : & PackageId ,
38093809 ) -> ResolveResult < ( ) > {
38103810 for ( unresolved_world_id, unresolved_world) in unresolved. worlds . iter ( ) {
3811- let pkg = match world_to_package. get ( & unresolved_world_id) {
3812- Some ( items) => * items,
3813- // Same as above, all worlds are foreign until we find a
3814- // non-foreign one.
3815- None => break ,
3816- } ;
3817- self . process_foreign_world (
3818- pkg,
3819- unresolved_world_id,
3820- unresolved_world,
3821- resolve,
3822- parent_pkg_id,
3823- ) ?;
3811+ let ( pkg_name, world, span, stabilities) =
3812+ match world_to_package. get ( & unresolved_world_id) {
3813+ Some ( items) => * items,
3814+ // Same as above, all worlds are foreign until we find a
3815+ // non-foreign one.
3816+ None => break ,
3817+ } ;
3818+
3819+ let pkgid = resolve
3820+ . package_names
3821+ . get ( pkg_name)
3822+ . copied ( )
3823+ . ok_or_else ( || {
3824+ ResolveError :: from ( ResolveErrorKind :: PackageNotFound {
3825+ span,
3826+ requested : pkg_name. clone ( ) ,
3827+ known : resolve. package_names . keys ( ) . cloned ( ) . collect ( ) ,
3828+ } )
3829+ } ) ?;
3830+ let pkg = & resolve. packages [ pkgid] ;
3831+ let world_span = unresolved_world. span ;
3832+
3833+ let mut enabled = false ;
3834+ for stability in stabilities {
3835+ if resolve. include_stability ( stability, parent_pkg_id, world_span) ? {
3836+ enabled = true ;
3837+ break ;
3838+ }
3839+ }
3840+
3841+ if !enabled {
3842+ self . worlds . push ( None ) ;
3843+ continue ;
3844+ }
3845+
3846+ let world_id = pkg. worlds . get ( world) . copied ( ) . ok_or_else ( || {
3847+ ResolveError :: from ( ResolveErrorKind :: WorldNotFound {
3848+ span : world_span,
3849+ requested : world. to_string ( ) ,
3850+ package : pkg. name . clone ( ) ,
3851+ } )
3852+ } ) ?;
3853+ assert_eq ! ( self . worlds. len( ) , unresolved_world_id. index( ) ) ;
3854+ self . worlds . push ( Some ( world_id) ) ;
38243855 }
38253856 for ( id, _) in unresolved. worlds . iter ( ) . skip ( self . worlds . len ( ) ) {
38263857 assert ! (
@@ -3831,53 +3862,6 @@ impl Remap {
38313862 Ok ( ( ) )
38323863 }
38333864
3834- fn process_foreign_world (
3835- & mut self ,
3836- ( pkg_name, world, span, stabilities) : ( & PackageName , & String , Span , & Vec < Stability > ) ,
3837- unresolved_world_id : Id < World > ,
3838- unresolved_world : & World ,
3839- resolve : & mut Resolve ,
3840- parent_pkg_id : & PackageId ,
3841- ) -> ResolveResult < ( ) > {
3842- let pkgid = resolve
3843- . package_names
3844- . get ( pkg_name)
3845- . copied ( )
3846- . ok_or_else ( || {
3847- ResolveError :: from ( ResolveErrorKind :: PackageNotFound {
3848- span,
3849- requested : pkg_name. clone ( ) ,
3850- known : resolve. package_names . keys ( ) . cloned ( ) . collect ( ) ,
3851- } )
3852- } ) ?;
3853- let pkg = & resolve. packages [ pkgid] ;
3854- let world_span = unresolved_world. span ;
3855-
3856- let mut enabled = false ;
3857- for stability in stabilities {
3858- if resolve. include_stability ( stability, parent_pkg_id, world_span) ? {
3859- enabled = true ;
3860- break ;
3861- }
3862- }
3863-
3864- if !enabled {
3865- self . worlds . push ( None ) ;
3866- return Ok ( ( ) ) ;
3867- }
3868-
3869- let world_id = pkg. worlds . get ( world) . copied ( ) . ok_or_else ( || {
3870- ResolveError :: from ( ResolveErrorKind :: WorldNotFound {
3871- span : world_span,
3872- requested : world. to_string ( ) ,
3873- package : pkg. name . clone ( ) ,
3874- } )
3875- } ) ?;
3876- assert_eq ! ( self . worlds. len( ) , unresolved_world_id. index( ) ) ;
3877- self . worlds . push ( Some ( world_id) ) ;
3878- Ok ( ( ) )
3879- }
3880-
38813865 fn process_foreign_types (
38823866 & mut self ,
38833867 unresolved : & UnresolvedPackage ,
0 commit comments