@@ -46,9 +46,9 @@ trait ToNameBinding<'a> {
46
46
fn to_name_binding ( self ) -> NameBinding < ' a > ;
47
47
}
48
48
49
- impl < ' a > ToNameBinding < ' a > for ( Module < ' a > , Span ) {
49
+ impl < ' a > ToNameBinding < ' a > for ( Module < ' a > , Span , ty :: Visibility ) {
50
50
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 }
52
52
}
53
53
}
54
54
@@ -247,8 +247,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
247
247
} ;
248
248
let parent_link = ModuleParentLink ( parent, name) ;
249
249
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 ) ) ;
252
252
253
253
self . build_reduced_graph_for_external_crate ( module) ;
254
254
}
@@ -257,8 +257,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
257
257
ItemMod ( ..) => {
258
258
let parent_link = ModuleParentLink ( parent, name) ;
259
259
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 ) ) ;
262
262
self . module_map . insert ( item. id , module) ;
263
263
* parent_ref = module;
264
264
}
@@ -289,12 +289,12 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
289
289
ItemEnum ( ref enum_definition, _) => {
290
290
let parent_link = ModuleParentLink ( parent, name) ;
291
291
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 ) ) ;
294
294
295
295
for variant in & ( * enum_definition) . variants {
296
296
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 ) ;
298
298
}
299
299
}
300
300
@@ -328,8 +328,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
328
328
// Add all the items within to a new module.
329
329
let parent_link = ModuleParentLink ( parent, name) ;
330
330
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 ) ) ;
333
333
334
334
// Add the names of all the items to the trait info.
335
335
for item in items {
@@ -353,7 +353,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
353
353
fn build_reduced_graph_for_variant ( & mut self ,
354
354
variant : & Variant ,
355
355
item_id : DefId ,
356
- parent : Module < ' b > ) {
356
+ parent : Module < ' b > ,
357
+ vis : ty:: Visibility ) {
357
358
let name = variant. node . name ;
358
359
if variant. node . data . is_struct ( ) {
359
360
// 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> {
364
365
// Variants are always treated as importable to allow them to be glob used.
365
366
// All variants are defined in both type and value namespaces as future-proofing.
366
367
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) ) ;
369
370
}
370
371
371
372
/// Constructs the reduced graph for one foreign item.
@@ -396,7 +397,7 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
396
397
block_id) ;
397
398
398
399
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 ) ;
400
401
self . module_map . insert ( block_id, new_module) ;
401
402
* parent = new_module;
402
403
}
@@ -425,8 +426,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
425
426
debug ! ( "(building reduced graph for external crate) building module {} {:?}" ,
426
427
name, vis) ;
427
428
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 ) ) ;
430
431
}
431
432
Def :: Variant ( _, variant_id) => {
432
433
debug ! ( "(building reduced graph for external crate) building variant {}" , name) ;
@@ -467,8 +468,8 @@ impl<'b, 'tcx:'b> Resolver<'b, 'tcx> {
467
468
}
468
469
469
470
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 ) ) ;
472
473
}
473
474
Def :: TyAlias ( ..) | Def :: AssociatedTy ( ..) => {
474
475
debug ! ( "(building reduced graph for external crate) building type {}" , name) ;
0 commit comments