diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index 0f69c06c417a..d657b9bbe67e 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -787,7 +787,7 @@ impl<'a> LoweringContext<'a> { return n; } assert!(!def_id.is_local()); - let n = self.sess.cstore.item_generics_cloned(def_id).regions.len(); + let n = self.sess.cstore.item_generics_cloned_untracked(def_id).regions.len(); self.type_def_lifetime_params.insert(def_id, n); n }); diff --git a/src/librustc/middle/cstore.rs b/src/librustc/middle/cstore.rs index e21de424d7e3..0b4a2ce71b3c 100644 --- a/src/librustc/middle/cstore.rs +++ b/src/librustc/middle/cstore.rs @@ -234,12 +234,6 @@ pub trait CrateStore { // access to the metadata loader fn metadata_loader(&self) -> &MetadataLoader; - // item info - fn item_generics_cloned(&self, def: DefId) -> ty::Generics; - - // trait/impl-item info - fn associated_item_cloned(&self, def: DefId) -> ty::AssociatedItem; - // resolve fn def_key(&self, def: DefId) -> DefKey; fn def_path(&self, def: DefId) -> hir_map::DefPath; @@ -255,6 +249,8 @@ pub trait CrateStore { fn item_children_untracked(&self, did: DefId, sess: &Session) -> Vec; fn load_macro_untracked(&self, did: DefId, sess: &Session) -> LoadedMacro; fn extern_mod_stmt_cnum_untracked(&self, emod_id: ast::NodeId) -> Option; + fn item_generics_cloned_untracked(&self, def: DefId) -> ty::Generics; + fn associated_item_cloned_untracked(&self, def: DefId) -> ty::AssociatedItem; // This is basically a 1-based range of ints, which is a little // silly - I may fix that. @@ -308,11 +304,11 @@ impl CrateStore for DummyCrateStore { { bug!("crate_data_as_rc_any") } // item info fn visibility_untracked(&self, def: DefId) -> ty::Visibility { bug!("visibility") } - fn item_generics_cloned(&self, def: DefId) -> ty::Generics + fn item_generics_cloned_untracked(&self, def: DefId) -> ty::Generics { bug!("item_generics_cloned") } // trait/impl-item info - fn associated_item_cloned(&self, def: DefId) -> ty::AssociatedItem + fn associated_item_cloned_untracked(&self, def: DefId) -> ty::AssociatedItem { bug!("associated_item_cloned") } // crate metadata diff --git a/src/librustc/middle/resolve_lifetime.rs b/src/librustc/middle/resolve_lifetime.rs index a8e98e53db39..c53e255f0cda 100644 --- a/src/librustc/middle/resolve_lifetime.rs +++ b/src/librustc/middle/resolve_lifetime.rs @@ -978,7 +978,7 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> { } else { let cstore = &self.sess.cstore; self.xcrate_object_lifetime_defaults.entry(def_id).or_insert_with(|| { - cstore.item_generics_cloned(def_id).types.into_iter().map(|def| { + cstore.item_generics_cloned_untracked(def_id).types.into_iter().map(|def| { def.object_lifetime_default }).collect() }) diff --git a/src/librustc_metadata/cstore_impl.rs b/src/librustc_metadata/cstore_impl.rs index 90bccf92b19b..0a14eac31572 100644 --- a/src/librustc_metadata/cstore_impl.rs +++ b/src/librustc_metadata/cstore_impl.rs @@ -350,12 +350,12 @@ impl CrateStore for cstore::CStore { self.get_crate_data(def.krate).get_visibility(def.index) } - fn item_generics_cloned(&self, def: DefId) -> ty::Generics { + fn item_generics_cloned_untracked(&self, def: DefId) -> ty::Generics { self.read_dep_node(def); self.get_crate_data(def.krate).get_generics(def.index) } - fn associated_item_cloned(&self, def: DefId) -> ty::AssociatedItem + fn associated_item_cloned_untracked(&self, def: DefId) -> ty::AssociatedItem { self.read_dep_node(def); self.get_crate_data(def.krate).get_associated_item(def.index) diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index 776ec3fd3f99..e3589ad58cfa 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -490,7 +490,7 @@ impl<'a> Resolver<'a> { self.define(module, child.ident, ns, (child.def, ty::Visibility::Public, DUMMY_SP, expansion)); - if self.session.cstore.associated_item_cloned(child.def.def_id()) + if self.session.cstore.associated_item_cloned_untracked(child.def.def_id()) .method_has_self_argument { self.has_self.insert(child.def.def_id()); }