Skip to content

Commit 52c7397

Browse files
committed
resolve: Use item_name and opt_parent in Resolver::get_module
This is a cleanup that doesn't introduce new query calls, but this way `def_key` is decoded twice which may matter for performance or may not
1 parent d99e01f commit 52c7397

File tree

1 file changed

+5
-12
lines changed

1 file changed

+5
-12
lines changed

compiler/rustc_resolve/src/build_reduced_graph.rs

+5-12
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ use rustc_hir::def_id::{DefId, LocalDefId, CRATE_DEF_ID};
2727
use rustc_metadata::creader::LoadedMacro;
2828
use rustc_middle::metadata::ModChild;
2929
use rustc_middle::{bug, ty};
30-
use rustc_session::cstore::CrateStore;
3130
use rustc_span::hygiene::{ExpnId, LocalExpnId, MacroKind};
3231
use rustc_span::symbol::{kw, sym, Ident, Symbol};
3332
use 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

Comments
 (0)