@@ -61,7 +61,7 @@ impl Resolver<'_, '_> {
61
61
// For mod items `nearest_normal_mod` returns its argument, but we actually need its parent.
62
62
let normal_mod_id = self . nearest_normal_mod ( def_id) ;
63
63
if normal_mod_id == def_id {
64
- self . tcx . opt_local_parent ( def_id) . map_or ( Visibility :: Public , Visibility :: Restricted )
64
+ Visibility :: Restricted ( self . tcx . local_parent ( def_id) )
65
65
} else {
66
66
Visibility :: Restricted ( normal_mod_id)
67
67
}
@@ -80,12 +80,11 @@ impl<'r, 'a, 'tcx> EffectiveVisibilitiesVisitor<'r, 'a, 'tcx> {
80
80
r,
81
81
def_effective_visibilities : Default :: default ( ) ,
82
82
import_effective_visibilities : Default :: default ( ) ,
83
- current_private_vis : Visibility :: Public ,
83
+ current_private_vis : Visibility :: Restricted ( CRATE_DEF_ID ) ,
84
84
changed : false ,
85
85
} ;
86
86
87
- visitor. update ( CRATE_DEF_ID , CRATE_DEF_ID ) ;
88
- visitor. current_private_vis = Visibility :: Restricted ( CRATE_DEF_ID ) ;
87
+ visitor. def_effective_visibilities . update_root ( ) ;
89
88
visitor. set_bindings_effective_visibilities ( CRATE_DEF_ID ) ;
90
89
91
90
while visitor. changed {
@@ -202,7 +201,7 @@ impl<'r, 'a, 'tcx> EffectiveVisibilitiesVisitor<'r, 'a, 'tcx> {
202
201
) ;
203
202
}
204
203
205
- fn update ( & mut self , def_id : LocalDefId , parent_id : LocalDefId ) {
204
+ fn update_field ( & mut self , def_id : LocalDefId , parent_id : LocalDefId ) {
206
205
self . update_def ( def_id, self . r . visibilities [ & def_id] , ParentId :: Def ( parent_id) ) ;
207
206
}
208
207
}
@@ -234,14 +233,14 @@ impl<'r, 'ast, 'tcx> Visitor<'ast> for EffectiveVisibilitiesVisitor<'ast, 'r, 't
234
233
for variant in variants {
235
234
let variant_def_id = self . r . local_def_id ( variant. id ) ;
236
235
for field in variant. data . fields ( ) {
237
- self . update ( self . r . local_def_id ( field. id ) , variant_def_id) ;
236
+ self . update_field ( self . r . local_def_id ( field. id ) , variant_def_id) ;
238
237
}
239
238
}
240
239
}
241
240
242
241
ast:: ItemKind :: Struct ( ref def, _) | ast:: ItemKind :: Union ( ref def, _) => {
243
242
for field in def. fields ( ) {
244
- self . update ( self . r . local_def_id ( field. id ) , def_id) ;
243
+ self . update_field ( self . r . local_def_id ( field. id ) , def_id) ;
245
244
}
246
245
}
247
246
0 commit comments