@@ -46,9 +46,9 @@ trait ToNameBinding<'a> {
4646 fn to_name_binding ( self ) -> NameBinding < ' a > ;
4747}
4848
49- impl < ' a > ToNameBinding < ' a > for ( Module < ' a > , Span ) {
49+ impl < ' a > ToNameBinding < ' a > for ( Module < ' a > , Span , ty :: Visibility ) {
5050 fn to_name_binding ( self ) -> NameBinding < ' a > {
51- NameBinding :: create_from_module ( self . 0 , Some ( self . 1 ) )
51+ NameBinding { kind : NameBindingKind :: Module ( self . 0 ) , span : Some ( self . 1 ) , vis : self . 2 }
5252 }
5353}
5454
@@ -247,8 +247,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
247247 } ;
248248 let parent_link = ModuleParentLink ( parent, name) ;
249249 let def = Def :: Mod ( def_id) ;
250- let module = self . new_extern_crate_module ( parent_link, def, vis , item. id ) ;
251- self . define ( parent, name, TypeNS , ( module, sp) ) ;
250+ let module = self . new_extern_crate_module ( parent_link, def, item. id ) ;
251+ self . define ( parent, name, TypeNS , ( module, sp, vis ) ) ;
252252
253253 self . build_reduced_graph_for_external_crate ( module) ;
254254 }
@@ -257,8 +257,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
257257 ItemMod ( ..) => {
258258 let parent_link = ModuleParentLink ( parent, name) ;
259259 let def = Def :: Mod ( self . ast_map . local_def_id ( item. id ) ) ;
260- let module = self . new_module ( parent_link, Some ( def) , false , vis ) ;
261- self . define ( parent, name, TypeNS , ( module, sp) ) ;
260+ let module = self . new_module ( parent_link, Some ( def) , false ) ;
261+ self . define ( parent, name, TypeNS , ( module, sp, vis ) ) ;
262262 self . module_map . insert ( item. id , module) ;
263263 * parent_ref = module;
264264 }
@@ -289,12 +289,12 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
289289 ItemEnum ( ref enum_definition, _) => {
290290 let parent_link = ModuleParentLink ( parent, name) ;
291291 let def = Def :: Enum ( self . ast_map . local_def_id ( item. id ) ) ;
292- let module = self . new_module ( parent_link, Some ( def) , false , vis ) ;
293- self . define ( parent, name, TypeNS , ( module, sp) ) ;
292+ let module = self . new_module ( parent_link, Some ( def) , false ) ;
293+ self . define ( parent, name, TypeNS , ( module, sp, vis ) ) ;
294294
295295 for variant in & ( * enum_definition) . variants {
296296 let item_def_id = self . ast_map . local_def_id ( item. id ) ;
297- self . build_reduced_graph_for_variant ( variant, item_def_id, module) ;
297+ self . build_reduced_graph_for_variant ( variant, item_def_id, module, vis ) ;
298298 }
299299 }
300300
@@ -328,8 +328,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
328328 // Add all the items within to a new module.
329329 let parent_link = ModuleParentLink ( parent, name) ;
330330 let def = Def :: Trait ( def_id) ;
331- let module_parent = self . new_module ( parent_link, Some ( def) , false , vis ) ;
332- self . define ( parent, name, TypeNS , ( module_parent, sp) ) ;
331+ let module_parent = self . new_module ( parent_link, Some ( def) , false ) ;
332+ self . define ( parent, name, TypeNS , ( module_parent, sp, vis ) ) ;
333333
334334 // Add the names of all the items to the trait info.
335335 for item in items {
@@ -353,7 +353,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
353353 fn build_reduced_graph_for_variant ( & mut self ,
354354 variant : & Variant ,
355355 item_id : DefId ,
356- parent : Module < ' b > ) {
356+ parent : Module < ' b > ,
357+ vis : ty:: Visibility ) {
357358 let name = variant. node . name ;
358359 if variant. node . data . is_struct ( ) {
359360 // Not adding fields for variants as they are not accessed with a self receiver
@@ -364,8 +365,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
364365 // Variants are always treated as importable to allow them to be glob used.
365366 // All variants are defined in both type and value namespaces as future-proofing.
366367 let def = Def :: Variant ( item_id, self . ast_map . local_def_id ( variant. node . data . id ( ) ) ) ;
367- self . define ( parent, name, ValueNS , ( def, variant. span , parent . vis ) ) ;
368- self . define ( parent, name, TypeNS , ( def, variant. span , parent . vis ) ) ;
368+ self . define ( parent, name, ValueNS , ( def, variant. span , vis) ) ;
369+ self . define ( parent, name, TypeNS , ( def, variant. span , vis) ) ;
369370 }
370371
371372 /// Constructs the reduced graph for one foreign item.
@@ -396,7 +397,7 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
396397 block_id) ;
397398
398399 let parent_link = BlockParentLink ( parent, block_id) ;
399- let new_module = self . new_module ( parent_link, None , false , parent . vis ) ;
400+ let new_module = self . new_module ( parent_link, None , false ) ;
400401 self . module_map . insert ( block_id, new_module) ;
401402 * parent = new_module;
402403 }
@@ -425,8 +426,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
425426 debug ! ( "(building reduced graph for external crate) building module {} {:?}" ,
426427 name, vis) ;
427428 let parent_link = ModuleParentLink ( parent, name) ;
428- let module = self . new_module ( parent_link, Some ( def) , true , vis ) ;
429- self . try_define ( parent, name, TypeNS , ( module, DUMMY_SP ) ) ;
429+ let module = self . new_module ( parent_link, Some ( def) , true ) ;
430+ self . try_define ( parent, name, TypeNS , ( module, DUMMY_SP , vis ) ) ;
430431 }
431432 Def :: Variant ( _, variant_id) => {
432433 debug ! ( "(building reduced graph for external crate) building variant {}" , name) ;
@@ -467,8 +468,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
467468 }
468469
469470 let parent_link = ModuleParentLink ( parent, name) ;
470- let module = self . new_module ( parent_link, Some ( def) , true , vis ) ;
471- self . try_define ( parent, name, TypeNS , ( module, DUMMY_SP ) ) ;
471+ let module = self . new_module ( parent_link, Some ( def) , true ) ;
472+ self . try_define ( parent, name, TypeNS , ( module, DUMMY_SP , vis ) ) ;
472473 }
473474 Def :: TyAlias ( ..) | Def :: AssociatedTy ( ..) => {
474475 debug ! ( "(building reduced graph for external crate) building type {}" , name) ;
0 commit comments