@@ -27,7 +27,6 @@ use rustc_hir::def_id::{DefId, LocalDefId, CRATE_DEF_ID};
2727use rustc_metadata:: creader:: LoadedMacro ;
2828use rustc_middle:: metadata:: ModChild ;
2929use rustc_middle:: { bug, ty} ;
30- use rustc_session:: cstore:: CrateStore ;
3130use rustc_span:: hygiene:: { ExpnId , LocalExpnId , MacroKind } ;
3231use rustc_span:: symbol:: { kw, sym, Ident , Symbol } ;
3332use rustc_span:: Span ;
@@ -118,20 +117,14 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
118117 let def_kind = self . cstore ( ) . def_kind ( def_id) ;
119118 match def_kind {
120119 DefKind :: Mod | DefKind :: Enum | DefKind :: Trait => {
121- let def_key = self . cstore ( ) . def_key ( def_id) ;
122- let parent = def_key. parent . map ( |index| {
123- self . get_nearest_non_block_module ( DefId { index, krate : def_id. krate } )
124- } ) ;
125- let name = if let Some ( cnum) = def_id. as_crate_root ( ) {
126- self . cstore ( ) . crate_name ( cnum)
127- } else {
128- def_key. disambiguated_data . data . get_opt_name ( ) . expect ( "module without name" )
129- } ;
130-
120+ let parent = self
121+ . tcx
122+ . opt_parent ( def_id)
123+ . map ( |parent_id| self . get_nearest_non_block_module ( parent_id) ) ;
131124 let expn_id = self . cstore ( ) . module_expansion_untracked ( def_id, & self . tcx . sess ) ;
132125 Some ( self . new_module (
133126 parent,
134- ModuleKind :: Def ( def_kind, def_id, name ) ,
127+ ModuleKind :: Def ( def_kind, def_id, self . tcx . item_name ( def_id ) ) ,
135128 expn_id,
136129 self . def_span ( def_id) ,
137130 // FIXME: Account for `#[no_implicit_prelude]` attributes.
0 commit comments