From 759092eb2af6b6f74af2e74a73db51c7317eaeab Mon Sep 17 00:00:00 2001 From: ljedrz Date: Tue, 7 Jan 2020 16:17:06 +0100 Subject: [PATCH 1/4] HIR: replace ImplItemId struct with an alias --- src/librustc/hir/map/mod.rs | 4 ++-- src/librustc/ich/impls_hir.rs | 3 +-- src/librustc/ty/mod.rs | 8 ++++---- src/librustc_ast_lowering/item.rs | 4 ++-- src/librustc_hir/hir.rs | 5 +---- src/librustc_hir/stable_hash_impls.rs | 6 ------ src/librustc_lint/builtin.rs | 2 +- src/librustc_passes/dead.rs | 2 +- src/librustc_passes/reachable.rs | 2 +- src/librustc_privacy/lib.rs | 12 ++++++------ src/librustc_resolve/lifetimes.rs | 4 ++-- src/librustc_typeck/check/compare_method.rs | 4 ++-- src/librustc_typeck/impl_wf_check.rs | 2 +- 13 files changed, 24 insertions(+), 34 deletions(-) diff --git a/src/librustc/hir/map/mod.rs b/src/librustc/hir/map/mod.rs index 0a165accb7d52..6416c23285c31 100644 --- a/src/librustc/hir/map/mod.rs +++ b/src/librustc/hir/map/mod.rs @@ -414,7 +414,7 @@ impl<'hir> Map<'hir> { } pub fn impl_item(&self, id: ImplItemId) -> &'hir ImplItem<'hir> { - self.read(id.hir_id); + self.read(id); // N.B., intentionally bypass `self.forest.krate()` so that we // do not trigger a read of the whole krate here @@ -570,7 +570,7 @@ impl<'hir> Map<'hir> { } for id in &module.impl_items { - visitor.visit_impl_item(self.expect_impl_item(id.hir_id)); + visitor.visit_impl_item(self.expect_impl_item(*id)); } } diff --git a/src/librustc/ich/impls_hir.rs b/src/librustc/ich/impls_hir.rs index 8961f7cd4bc95..bfb4f67420783 100644 --- a/src/librustc/ich/impls_hir.rs +++ b/src/librustc/ich/impls_hir.rs @@ -58,10 +58,9 @@ impl<'ctx> rustc_hir::HashStableContext for StableHashingContext<'ctx> { fn hash_impl_item_id(&mut self, id: hir::ImplItemId, hasher: &mut StableHasher) { let hcx = self; - let hir::ImplItemId { hir_id } = id; hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { - hir_id.hash_stable(hcx, hasher); + id.hash_stable(hcx, hasher); }) } diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index 7cca12308e65f..3dc507b9766f0 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -2781,7 +2781,7 @@ impl<'tcx> TyCtxt<'tcx> { parent_def_id: DefId, impl_item_ref: &hir::ImplItemRef<'_>, ) -> AssocItem { - let def_id = self.hir().local_def_id(impl_item_ref.id.hir_id); + let def_id = self.hir().local_def_id(impl_item_ref.id); let (kind, has_self) = match impl_item_ref.kind { hir::AssocItemKind::Const => (ty::AssocKind::Const, false), hir::AssocItemKind::Method { has_self } => (ty::AssocKind::Method, has_self), @@ -2793,7 +2793,7 @@ impl<'tcx> TyCtxt<'tcx> { ident: impl_item_ref.ident, kind, // Visibility of trait impl items doesn't matter. - vis: ty::Visibility::from_hir(&impl_item_ref.vis, impl_item_ref.id.hir_id, self), + vis: ty::Visibility::from_hir(&impl_item_ref.vis, impl_item_ref.id, self), defaultness: impl_item_ref.defaultness, def_id, container: ImplContainer(parent_def_id), @@ -3085,7 +3085,7 @@ fn associated_item(tcx: TyCtxt<'_>, def_id: DefId) -> AssocItem { let parent_item = tcx.hir().expect_item(parent_id); match parent_item.kind { hir::ItemKind::Impl(.., ref impl_item_refs) => { - if let Some(impl_item_ref) = impl_item_refs.iter().find(|i| i.id.hir_id == id) { + if let Some(impl_item_ref) = impl_item_refs.iter().find(|i| i.id == id) { let assoc_item = tcx.associated_item_from_impl_item_ref(parent_def_id, impl_item_ref); debug_assert_eq!(assoc_item.def_id, def_id); @@ -3156,7 +3156,7 @@ fn associated_item_def_ids(tcx: TyCtxt<'_>, def_id: DefId) -> &[DefId] { impl_item_refs .iter() .map(|impl_item_ref| impl_item_ref.id) - .map(|id| tcx.hir().local_def_id(id.hir_id)), + .map(|id| tcx.hir().local_def_id(id)), ), hir::ItemKind::TraitAlias(..) => &[], _ => span_bug!(item.span, "associated_item_def_ids: not impl or trait"), diff --git a/src/librustc_ast_lowering/item.rs b/src/librustc_ast_lowering/item.rs index 2515ca9d9466a..f049803f6828a 100644 --- a/src/librustc_ast_lowering/item.rs +++ b/src/librustc_ast_lowering/item.rs @@ -93,7 +93,7 @@ impl<'a, 'lowering, 'hir> Visitor<'a> for ItemLowerer<'a, 'lowering, 'hir> { fn visit_impl_item(&mut self, item: &'a AssocItem) { self.lctx.with_hir_id_owner(item.id, |lctx| { let hir_item = lctx.lower_impl_item(item); - let id = hir::ImplItemId { hir_id: hir_item.hir_id }; + let id = hir_item.hir_id; lctx.impl_items.insert(id, hir_item); lctx.modules.get_mut(&lctx.current_module).unwrap().impl_items.insert(id); }); @@ -890,7 +890,7 @@ impl<'hir> LoweringContext<'_, 'hir> { fn lower_impl_item_ref(&mut self, i: &AssocItem) -> hir::ImplItemRef<'hir> { hir::ImplItemRef { - id: hir::ImplItemId { hir_id: self.lower_node_id(i.id) }, + id: self.lower_node_id(i.id), ident: i.ident, span: i.span, vis: self.lower_visibility(&i.vis, Some(i.id)), diff --git a/src/librustc_hir/hir.rs b/src/librustc_hir/hir.rs index 2303a85df4acf..0405d890036f3 100644 --- a/src/librustc_hir/hir.rs +++ b/src/librustc_hir/hir.rs @@ -1843,10 +1843,7 @@ pub enum TraitItemKind<'hir> { // The bodies for items are stored "out of line", in a separate // hashmap in the `Crate`. Here we just record the node-id of the item // so it can fetched later. -#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, RustcEncodable, RustcDecodable, Debug)] -pub struct ImplItemId { - pub hir_id: HirId, -} +pub type ImplItemId = HirId; /// Represents anything within an `impl` block. #[derive(RustcEncodable, RustcDecodable, Debug)] diff --git a/src/librustc_hir/stable_hash_impls.rs b/src/librustc_hir/stable_hash_impls.rs index 696a350ebdd15..5550841b429dc 100644 --- a/src/librustc_hir/stable_hash_impls.rs +++ b/src/librustc_hir/stable_hash_impls.rs @@ -44,12 +44,6 @@ impl HashStable for ItemId { } } -impl HashStable for ImplItemId { - fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) { - hcx.hash_impl_item_id(*self, hasher) - } -} - impl HashStable for TraitItemId { fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) { hcx.hash_trait_item_id(*self, hasher) diff --git a/src/librustc_lint/builtin.rs b/src/librustc_lint/builtin.rs index c2e20d5cf758e..74eadb313e29e 100644 --- a/src/librustc_lint/builtin.rs +++ b/src/librustc_lint/builtin.rs @@ -443,7 +443,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for MissingDoc { Some(Node::Item(item)) => { if let hir::VisibilityKind::Inherited = item.vis.node { for impl_item_ref in impl_item_refs { - self.private_traits.insert(impl_item_ref.id.hir_id); + self.private_traits.insert(impl_item_ref.id); } } } diff --git a/src/librustc_passes/dead.rs b/src/librustc_passes/dead.rs index 0c435a1666363..d03c1f37ae323 100644 --- a/src/librustc_passes/dead.rs +++ b/src/librustc_passes/dead.rs @@ -412,7 +412,7 @@ impl<'v, 'k, 'tcx> ItemLikeVisitor<'v> for LifeSeeder<'k, 'tcx> { &impl_item.attrs, ) { - self.worklist.push(impl_item_ref.id.hir_id); + self.worklist.push(impl_item_ref.id); } } } diff --git a/src/librustc_passes/reachable.rs b/src/librustc_passes/reachable.rs index 9b529401049b0..f0a9ed90d6e6e 100644 --- a/src/librustc_passes/reachable.rs +++ b/src/librustc_passes/reachable.rs @@ -348,7 +348,7 @@ impl<'a, 'tcx> ItemLikeVisitor<'tcx> for CollectPrivateImplItemsVisitor<'a, 'tcx // We need only trait impls here, not inherent impls, and only non-exported ones if let hir::ItemKind::Impl(.., Some(ref trait_ref), _, ref impl_item_refs) = item.kind { if !self.access_levels.is_reachable(item.hir_id) { - self.worklist.extend(impl_item_refs.iter().map(|ii_ref| ii_ref.id.hir_id)); + self.worklist.extend(impl_item_refs.iter().map(|ii_ref| ii_ref.id)); let trait_def_id = match trait_ref.path.res { Res::Def(DefKind::Trait, def_id) => def_id, diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs index c932e8bb1f46d..8b3598f6e517e 100644 --- a/src/librustc_privacy/lib.rs +++ b/src/librustc_privacy/lib.rs @@ -727,7 +727,7 @@ impl Visitor<'tcx> for EmbargoVisitor<'tcx> { hir::ItemKind::Impl(.., ref trait_ref, _, impl_item_refs) => { for impl_item_ref in impl_item_refs { if trait_ref.is_some() || impl_item_ref.vis.node.is_pub() { - self.update(impl_item_ref.id.hir_id, item_level); + self.update(impl_item_ref.id, item_level); } } } @@ -826,9 +826,9 @@ impl Visitor<'tcx> for EmbargoVisitor<'tcx> { self.reach(item.hir_id, item_level).generics().predicates().ty().trait_ref(); for impl_item_ref in impl_item_refs { - let impl_item_level = self.get(impl_item_ref.id.hir_id); + let impl_item_level = self.get(impl_item_ref.id); if impl_item_level.is_some() { - self.reach(impl_item_ref.id.hir_id, impl_item_level) + self.reach(impl_item_ref.id, impl_item_level) .generics() .predicates() .ty(); @@ -1545,7 +1545,7 @@ impl<'a, 'tcx> Visitor<'tcx> for ObsoleteVisiblePrivateTypesVisitor<'a, 'tcx> { let impl_item = self.tcx.hir().impl_item(impl_item_ref.id); match impl_item.kind { hir::ImplItemKind::Const(..) | hir::ImplItemKind::Method(..) => { - self.access_levels.is_reachable(impl_item_ref.id.hir_id) + self.access_levels.is_reachable(impl_item_ref.id) } hir::ImplItemKind::OpaqueTy(..) | hir::ImplItemKind::TyAlias(_) => { false @@ -1610,7 +1610,7 @@ impl<'a, 'tcx> Visitor<'tcx> for ObsoleteVisiblePrivateTypesVisitor<'a, 'tcx> { // methods will be visible as `Public::foo`. let mut found_pub_static = false; for impl_item_ref in impl_item_refs { - if self.item_is_public(&impl_item_ref.id.hir_id, &impl_item_ref.vis) { + if self.item_is_public(&impl_item_ref.id, &impl_item_ref.vis) { let impl_item = self.tcx.hir().impl_item(impl_item_ref.id); match impl_item_ref.kind { AssocItemKind::Const => { @@ -1996,7 +1996,7 @@ impl<'a, 'tcx> Visitor<'tcx> for PrivateItemsInPublicInterfacesVisitor<'a, 'tcx> impl_vis }; self.check_assoc_item( - impl_item_ref.id.hir_id, + impl_item_ref.id, impl_item_ref.kind, impl_item_ref.defaultness, impl_item_vis, diff --git a/src/librustc_resolve/lifetimes.rs b/src/librustc_resolve/lifetimes.rs index 4cd3a9e1a8082..a266d3d176797 100644 --- a/src/librustc_resolve/lifetimes.rs +++ b/src/librustc_resolve/lifetimes.rs @@ -583,7 +583,7 @@ impl<'a, 'tcx> Visitor<'tcx> for LifetimeContext<'a, 'tcx> { if let Some(hir_id) = self.tcx.hir().as_local_hir_id(def_id) { // Ensure that the parent of the def is an item, not HRTB let parent_id = self.tcx.hir().get_parent_node(hir_id); - let parent_impl_id = hir::ImplItemId { hir_id: parent_id }; + let parent_impl_id = parent_id; let parent_trait_id = hir::TraitItemId { hir_id: parent_id }; let krate = self.tcx.hir().forest.krate(); @@ -2066,7 +2066,7 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> { { impl_self = Some(self_ty); assoc_item_kind = - impl_items.iter().find(|ii| ii.id.hir_id == parent).map(|ii| ii.kind); + impl_items.iter().find(|ii| ii.id == parent).map(|ii| ii.kind); } Some(body) } diff --git a/src/librustc_typeck/check/compare_method.rs b/src/librustc_typeck/check/compare_method.rs index 13e37c124e014..4dba7b0fce30d 100644 --- a/src/librustc_typeck/check/compare_method.rs +++ b/src/librustc_typeck/check/compare_method.rs @@ -838,7 +838,7 @@ fn compare_synthetic_generics<'tcx>( let trait_m = tcx.hir().trait_item(hir::TraitItemId { hir_id: trait_m }); let impl_m = tcx.hir().as_local_hir_id(impl_m.def_id)?; - let impl_m = tcx.hir().impl_item(hir::ImplItemId { hir_id: impl_m }); + let impl_m = tcx.hir().impl_item(impl_m); // in case there are no generics, take the spot between the function name // and the opening paren of the argument list @@ -872,7 +872,7 @@ fn compare_synthetic_generics<'tcx>( err.span_label(impl_span, "expected `impl Trait`, found generic parameter"); (|| { let impl_m = tcx.hir().as_local_hir_id(impl_m.def_id)?; - let impl_m = tcx.hir().impl_item(hir::ImplItemId { hir_id: impl_m }); + let impl_m = tcx.hir().impl_item(impl_m); let input_tys = match impl_m.kind { hir::ImplItemKind::Method(ref sig, _) => sig.decl.inputs, _ => unreachable!(), diff --git a/src/librustc_typeck/impl_wf_check.rs b/src/librustc_typeck/impl_wf_check.rs index b22d7c68cf9b6..e4a8a56dac810 100644 --- a/src/librustc_typeck/impl_wf_check.rs +++ b/src/librustc_typeck/impl_wf_check.rs @@ -120,7 +120,7 @@ fn enforce_impl_params_are_constrained( // Disallow unconstrained lifetimes, but only if they appear in assoc types. let lifetimes_in_associated_types: FxHashSet<_> = impl_item_refs .iter() - .map(|item_ref| tcx.hir().local_def_id(item_ref.id.hir_id)) + .map(|item_ref| tcx.hir().local_def_id(item_ref.id)) .filter(|&def_id| { let item = tcx.associated_item(def_id); item.kind == ty::AssocKind::Type && item.defaultness.has_value() From 58fb6197b897ea89e14732760a14223627701a5d Mon Sep 17 00:00:00 2001 From: ljedrz Date: Tue, 7 Jan 2020 16:23:05 +0100 Subject: [PATCH 2/4] HIR: replace TraitItemId struct with an alias --- src/librustc/hir/map/mod.rs | 4 ++-- src/librustc/ich/impls_hir.rs | 3 +-- src/librustc/ty/mod.rs | 8 ++++---- src/librustc_ast_lowering/item.rs | 4 ++-- src/librustc_hir/hir.rs | 5 +---- src/librustc_hir/stable_hash_impls.rs | 6 ------ src/librustc_lint/builtin.rs | 2 +- src/librustc_privacy/lib.rs | 6 +++--- src/librustc_resolve/lifetimes.rs | 4 ++-- src/librustc_typeck/check/compare_method.rs | 2 +- src/librustc_typeck/collect.rs | 2 +- 11 files changed, 18 insertions(+), 28 deletions(-) diff --git a/src/librustc/hir/map/mod.rs b/src/librustc/hir/map/mod.rs index 6416c23285c31..7a02ecae10e84 100644 --- a/src/librustc/hir/map/mod.rs +++ b/src/librustc/hir/map/mod.rs @@ -406,7 +406,7 @@ impl<'hir> Map<'hir> { } pub fn trait_item(&self, id: TraitItemId) -> &'hir TraitItem<'hir> { - self.read(id.hir_id); + self.read(id); // N.B., intentionally bypass `self.forest.krate()` so that we // do not trigger a read of the whole krate here @@ -566,7 +566,7 @@ impl<'hir> Map<'hir> { } for id in &module.trait_items { - visitor.visit_trait_item(self.expect_trait_item(id.hir_id)); + visitor.visit_trait_item(self.expect_trait_item(*id)); } for id in &module.impl_items { diff --git a/src/librustc/ich/impls_hir.rs b/src/librustc/ich/impls_hir.rs index bfb4f67420783..05065d8294c67 100644 --- a/src/librustc/ich/impls_hir.rs +++ b/src/librustc/ich/impls_hir.rs @@ -66,10 +66,9 @@ impl<'ctx> rustc_hir::HashStableContext for StableHashingContext<'ctx> { fn hash_trait_item_id(&mut self, id: hir::TraitItemId, hasher: &mut StableHasher) { let hcx = self; - let hir::TraitItemId { hir_id } = id; hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { - hir_id.hash_stable(hcx, hasher); + id.hash_stable(hcx, hasher); }) } diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index 3dc507b9766f0..aaa63723d374b 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -2756,7 +2756,7 @@ impl<'tcx> TyCtxt<'tcx> { parent_vis: &hir::Visibility<'_>, trait_item_ref: &hir::TraitItemRef, ) -> AssocItem { - let def_id = self.hir().local_def_id(trait_item_ref.id.hir_id); + let def_id = self.hir().local_def_id(trait_item_ref.id); let (kind, has_self) = match trait_item_ref.kind { hir::AssocItemKind::Const => (ty::AssocKind::Const, false), hir::AssocItemKind::Method { has_self } => (ty::AssocKind::Method, has_self), @@ -2768,7 +2768,7 @@ impl<'tcx> TyCtxt<'tcx> { ident: trait_item_ref.ident, kind, // Visibility of trait items is inherited from their traits. - vis: Visibility::from_hir(parent_vis, trait_item_ref.id.hir_id, self), + vis: Visibility::from_hir(parent_vis, trait_item_ref.id, self), defaultness: trait_item_ref.defaultness, def_id, container: TraitContainer(parent_def_id), @@ -3094,7 +3094,7 @@ fn associated_item(tcx: TyCtxt<'_>, def_id: DefId) -> AssocItem { } hir::ItemKind::Trait(.., ref trait_item_refs) => { - if let Some(trait_item_ref) = trait_item_refs.iter().find(|i| i.id.hir_id == id) { + if let Some(trait_item_ref) = trait_item_refs.iter().find(|i| i.id == id) { let assoc_item = tcx.associated_item_from_trait_item_ref( parent_def_id, &parent_item.vis, @@ -3150,7 +3150,7 @@ fn associated_item_def_ids(tcx: TyCtxt<'_>, def_id: DefId) -> &[DefId] { trait_item_refs .iter() .map(|trait_item_ref| trait_item_ref.id) - .map(|id| tcx.hir().local_def_id(id.hir_id)), + .map(|id| tcx.hir().local_def_id(id)), ), hir::ItemKind::Impl(.., ref impl_item_refs) => tcx.arena.alloc_from_iter( impl_item_refs diff --git a/src/librustc_ast_lowering/item.rs b/src/librustc_ast_lowering/item.rs index f049803f6828a..2c45b1750d1b8 100644 --- a/src/librustc_ast_lowering/item.rs +++ b/src/librustc_ast_lowering/item.rs @@ -82,7 +82,7 @@ impl<'a, 'lowering, 'hir> Visitor<'a> for ItemLowerer<'a, 'lowering, 'hir> { fn visit_trait_item(&mut self, item: &'a AssocItem) { self.lctx.with_hir_id_owner(item.id, |lctx| { let hir_item = lctx.lower_trait_item(item); - let id = hir::TraitItemId { hir_id: hir_item.hir_id }; + let id = hir_item.hir_id; lctx.trait_items.insert(id, hir_item); lctx.modules.get_mut(&lctx.current_module).unwrap().trait_items.insert(id); }); @@ -807,7 +807,7 @@ impl<'hir> LoweringContext<'_, 'hir> { AssocItemKind::Macro(..) => unimplemented!(), }; hir::TraitItemRef { - id: hir::TraitItemId { hir_id: self.lower_node_id(i.id) }, + id: self.lower_node_id(i.id), ident: i.ident, span: i.span, defaultness: self.lower_defaultness(Defaultness::Default, has_default), diff --git a/src/librustc_hir/hir.rs b/src/librustc_hir/hir.rs index 0405d890036f3..c10ee33be28db 100644 --- a/src/librustc_hir/hir.rs +++ b/src/librustc_hir/hir.rs @@ -1799,10 +1799,7 @@ pub struct FnSig<'hir> { // The bodies for items are stored "out of line", in a separate // hashmap in the `Crate`. Here we just record the node-id of the item // so it can fetched later. -#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, RustcEncodable, RustcDecodable, Debug)] -pub struct TraitItemId { - pub hir_id: HirId, -} +pub type TraitItemId = HirId; /// Represents an item declaration within a trait declaration, /// possibly including a default implementation. A trait item is diff --git a/src/librustc_hir/stable_hash_impls.rs b/src/librustc_hir/stable_hash_impls.rs index 5550841b429dc..486f5c554d9c0 100644 --- a/src/librustc_hir/stable_hash_impls.rs +++ b/src/librustc_hir/stable_hash_impls.rs @@ -44,12 +44,6 @@ impl HashStable for ItemId { } } -impl HashStable for TraitItemId { - fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) { - hcx.hash_trait_item_id(*self, hasher) - } -} - impl HashStable for Mod<'_> { fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) { hcx.hash_hir_mod(self, hasher) diff --git a/src/librustc_lint/builtin.rs b/src/librustc_lint/builtin.rs index 74eadb313e29e..a9a698de850d2 100644 --- a/src/librustc_lint/builtin.rs +++ b/src/librustc_lint/builtin.rs @@ -427,7 +427,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for MissingDoc { if let hir::VisibilityKind::Inherited = it.vis.node { self.private_traits.insert(it.hir_id); for trait_item_ref in trait_item_refs { - self.private_traits.insert(trait_item_ref.id.hir_id); + self.private_traits.insert(trait_item_ref.id); } return; } diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs index 8b3598f6e517e..f624869a652f7 100644 --- a/src/librustc_privacy/lib.rs +++ b/src/librustc_privacy/lib.rs @@ -733,7 +733,7 @@ impl Visitor<'tcx> for EmbargoVisitor<'tcx> { } hir::ItemKind::Trait(.., trait_item_refs) => { for trait_item_ref in trait_item_refs { - self.update(trait_item_ref.id.hir_id, item_level); + self.update(trait_item_ref.id, item_level); } } hir::ItemKind::Struct(ref def, _) | hir::ItemKind::Union(ref def, _) => { @@ -802,7 +802,7 @@ impl Visitor<'tcx> for EmbargoVisitor<'tcx> { self.reach(item.hir_id, item_level).generics().predicates(); for trait_item_ref in trait_item_refs { - let mut reach = self.reach(trait_item_ref.id.hir_id, item_level); + let mut reach = self.reach(trait_item_ref.id, item_level); reach.generics().predicates(); if trait_item_ref.kind == AssocItemKind::Type @@ -1942,7 +1942,7 @@ impl<'a, 'tcx> Visitor<'tcx> for PrivateItemsInPublicInterfacesVisitor<'a, 'tcx> for trait_item_ref in trait_item_refs { self.check_assoc_item( - trait_item_ref.id.hir_id, + trait_item_ref.id, trait_item_ref.kind, trait_item_ref.defaultness, item_visibility, diff --git a/src/librustc_resolve/lifetimes.rs b/src/librustc_resolve/lifetimes.rs index a266d3d176797..acb38442fec95 100644 --- a/src/librustc_resolve/lifetimes.rs +++ b/src/librustc_resolve/lifetimes.rs @@ -584,7 +584,7 @@ impl<'a, 'tcx> Visitor<'tcx> for LifetimeContext<'a, 'tcx> { // Ensure that the parent of the def is an item, not HRTB let parent_id = self.tcx.hir().get_parent_node(hir_id); let parent_impl_id = parent_id; - let parent_trait_id = hir::TraitItemId { hir_id: parent_id }; + let parent_trait_id = parent_id; let krate = self.tcx.hir().forest.krate(); if !(krate.items.contains_key(&parent_id) @@ -2052,7 +2052,7 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> { self.tcx.hir().expect_item(self.tcx.hir().get_parent_item(parent)).kind { assoc_item_kind = - trait_items.iter().find(|ti| ti.id.hir_id == parent).map(|ti| ti.kind); + trait_items.iter().find(|ti| ti.id == parent).map(|ti| ti.kind); } match *m { hir::TraitMethod::Required(_) => None, diff --git a/src/librustc_typeck/check/compare_method.rs b/src/librustc_typeck/check/compare_method.rs index 4dba7b0fce30d..c0766cc690678 100644 --- a/src/librustc_typeck/check/compare_method.rs +++ b/src/librustc_typeck/check/compare_method.rs @@ -835,7 +835,7 @@ fn compare_synthetic_generics<'tcx>( // as another generic argument let new_name = tcx.sess.source_map().span_to_snippet(trait_span).ok()?; let trait_m = tcx.hir().as_local_hir_id(trait_m.def_id)?; - let trait_m = tcx.hir().trait_item(hir::TraitItemId { hir_id: trait_m }); + let trait_m = tcx.hir().trait_item(trait_m); let impl_m = tcx.hir().as_local_hir_id(impl_m.def_id)?; let impl_m = tcx.hir().impl_item(impl_m); diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index fb9e4ba5ce28e..268886a593a7c 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -2345,7 +2345,7 @@ fn associated_item_predicates( trait_item_ref: &hir::TraitItemRef, ) -> Vec<(ty::Predicate<'tcx>, Span)> { let trait_item = tcx.hir().trait_item(trait_item_ref.id); - let item_def_id = tcx.hir().local_def_id(trait_item_ref.id.hir_id); + let item_def_id = tcx.hir().local_def_id(trait_item_ref.id); let bounds = match trait_item.kind { hir::TraitItemKind::Type(ref bounds, _) => bounds, _ => return Vec::new(), From 9ddfa41880ab91c8486e2a278c0774668b838dcf Mon Sep 17 00:00:00 2001 From: ljedrz Date: Tue, 7 Jan 2020 16:36:18 +0100 Subject: [PATCH 3/4] HIR: replace ItemId struct with an alias --- src/librustc/hir/intravisit.rs | 2 +- src/librustc/hir/map/collector.rs | 2 +- src/librustc/hir/map/mod.rs | 2 +- src/librustc/ich/impls_hir.rs | 3 +-- src/librustc_ast_lowering/item.rs | 5 +---- src/librustc_ast_lowering/lib.rs | 6 +++--- src/librustc_hir/hir.rs | 5 +---- src/librustc_hir/print.rs | 2 +- src/librustc_hir/stable_hash_impls.rs | 6 ------ src/librustc_metadata/rmeta/encoder.rs | 2 +- src/librustc_passes/dead.rs | 2 +- src/librustc_passes/hir_stats.rs | 2 +- src/librustc_privacy/lib.rs | 9 ++++----- src/librustc_resolve/lifetimes.rs | 2 +- src/librustc_typeck/astconv.rs | 2 +- src/librustc_typeck/check/method/suggest.rs | 2 +- src/librustdoc/clean/mod.rs | 14 +++++++------- src/librustdoc/visit_ast.rs | 8 ++++---- 18 files changed, 31 insertions(+), 45 deletions(-) diff --git a/src/librustc/hir/intravisit.rs b/src/librustc/hir/intravisit.rs index edecfd335fbb7..81697cc66f137 100644 --- a/src/librustc/hir/intravisit.rs +++ b/src/librustc/hir/intravisit.rs @@ -226,7 +226,7 @@ pub trait Visitor<'v>: Sized { /// but cannot supply a `Map`; see `nested_visit_map` for advice. #[allow(unused_variables)] fn visit_nested_item(&mut self, id: ItemId) { - let opt_item = self.nested_visit_map().inter().map(|map| map.expect_item(id.id)); + let opt_item = self.nested_visit_map().inter().map(|map| map.expect_item(id)); if let Some(item) = opt_item { self.visit_item(item); } diff --git a/src/librustc/hir/map/collector.rs b/src/librustc/hir/map/collector.rs index 6879e8fd76348..41e7bd2f7ac59 100644 --- a/src/librustc/hir/map/collector.rs +++ b/src/librustc/hir/map/collector.rs @@ -346,7 +346,7 @@ impl<'a, 'hir> Visitor<'hir> for NodeCollector<'a, 'hir> { fn visit_nested_item(&mut self, item: ItemId) { debug!("visit_nested_item: {:?}", item); - self.visit_item(self.krate.item(item.id)); + self.visit_item(self.krate.item(item)); } fn visit_nested_trait_item(&mut self, item_id: TraitItemId) { diff --git a/src/librustc/hir/map/mod.rs b/src/librustc/hir/map/mod.rs index 7a02ecae10e84..21c81a9ecc7bc 100644 --- a/src/librustc/hir/map/mod.rs +++ b/src/librustc/hir/map/mod.rs @@ -1256,7 +1256,7 @@ pub fn map_crate<'hir>( impl<'hir> print::PpAnn for Map<'hir> { fn nested(&self, state: &mut print::State<'_>, nested: print::Nested) { match nested { - Nested::Item(id) => state.print_item(self.expect_item(id.id)), + Nested::Item(id) => state.print_item(self.expect_item(id)), Nested::TraitItem(id) => state.print_trait_item(self.trait_item(id)), Nested::ImplItem(id) => state.print_impl_item(self.impl_item(id)), Nested::Body(id) => state.print_expr(&self.body(id).value), diff --git a/src/librustc/ich/impls_hir.rs b/src/librustc/ich/impls_hir.rs index 05065d8294c67..6b02812ecd505 100644 --- a/src/librustc/ich/impls_hir.rs +++ b/src/librustc/ich/impls_hir.rs @@ -49,7 +49,6 @@ impl<'ctx> rustc_hir::HashStableContext for StableHashingContext<'ctx> { fn hash_item_id(&mut self, id: hir::ItemId, hasher: &mut StableHasher) { let hcx = self; - let hir::ItemId { id } = id; hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { id.hash_stable(hcx, hasher); @@ -84,7 +83,7 @@ impl<'ctx> rustc_hir::HashStableContext for StableHashingContext<'ctx> { let item_ids_hash = item_ids .iter() .map(|id| { - let (def_path_hash, local_id) = id.id.to_stable_hash_key(hcx); + let (def_path_hash, local_id) = id.to_stable_hash_key(hcx); debug_assert_eq!(local_id, hir::ItemLocalId::from_u32(0)); def_path_hash.0 }) diff --git a/src/librustc_ast_lowering/item.rs b/src/librustc_ast_lowering/item.rs index 2c45b1750d1b8..e9cdf711ed511 100644 --- a/src/librustc_ast_lowering/item.rs +++ b/src/librustc_ast_lowering/item.rs @@ -190,10 +190,7 @@ impl<'hir> LoweringContext<'_, 'hir> { _ => smallvec![i.id], }; - node_ids - .into_iter() - .map(|node_id| hir::ItemId { id: self.allocate_hir_id_counter(node_id) }) - .collect() + node_ids.into_iter().map(|node_id| self.allocate_hir_id_counter(node_id)).collect() } fn lower_item_id_use_tree( diff --git a/src/librustc_ast_lowering/lib.rs b/src/librustc_ast_lowering/lib.rs index bc3dfecd4a675..bcb5590c29a35 100644 --- a/src/librustc_ast_lowering/lib.rs +++ b/src/librustc_ast_lowering/lib.rs @@ -1424,7 +1424,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { lctx.generate_opaque_type(opaque_ty_node_id, opaque_ty_item, span, opaque_ty_span); // `impl Trait` now just becomes `Foo<'a, 'b, ..>`. - hir::TyKind::Def(hir::ItemId { id: opaque_ty_id }, lifetimes) + hir::TyKind::Def(opaque_ty_id, lifetimes) }) } @@ -2364,7 +2364,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { // Foo = impl Trait` is, internally, created as a child of the // async fn, so the *type parameters* are inherited. It's // only the lifetime parameters that we must supply. - let opaque_ty_ref = hir::TyKind::Def(hir::ItemId { id: opaque_ty_id }, generic_args); + let opaque_ty_ref = hir::TyKind::Def(opaque_ty_id, generic_args); let opaque_ty = self.ty(opaque_ty_span, opaque_ty_ref); hir::FunctionRetTy::Return(self.arena.alloc(opaque_ty)) } @@ -2904,7 +2904,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { let mut ids: SmallVec<[hir::Stmt<'hir>; 1]> = item_ids .into_iter() .map(|item_id| { - let item_id = hir::ItemId { id: self.lower_node_id(item_id) }; + let item_id = self.lower_node_id(item_id); self.stmt(s.span, hir::StmtKind::Item(item_id)) }) .collect(); diff --git a/src/librustc_hir/hir.rs b/src/librustc_hir/hir.rs index c10ee33be28db..e03c4d97cf86d 100644 --- a/src/librustc_hir/hir.rs +++ b/src/librustc_hir/hir.rs @@ -2343,10 +2343,7 @@ impl VariantData<'hir> { // The bodies for items are stored "out of line", in a separate // hashmap in the `Crate`. Here we just record the node-id of the item // so it can fetched later. -#[derive(Copy, Clone, RustcEncodable, RustcDecodable, Debug)] -pub struct ItemId { - pub id: HirId, -} +pub type ItemId = HirId; /// An item /// diff --git a/src/librustc_hir/print.rs b/src/librustc_hir/print.rs index 571bab2cb83f2..3ce8aaf8bcb9b 100644 --- a/src/librustc_hir/print.rs +++ b/src/librustc_hir/print.rs @@ -54,7 +54,7 @@ impl PpAnn for hir::Crate<'a> { } fn nested(&self, state: &mut State<'_>, nested: Nested) { match nested { - Nested::Item(id) => state.print_item(self.item(id.id)), + Nested::Item(id) => state.print_item(self.item(id)), Nested::TraitItem(id) => state.print_trait_item(self.trait_item(id)), Nested::ImplItem(id) => state.print_impl_item(self.impl_item(id)), Nested::Body(id) => state.print_expr(&self.body(id).value), diff --git a/src/librustc_hir/stable_hash_impls.rs b/src/librustc_hir/stable_hash_impls.rs index 486f5c554d9c0..4f959b32b0c80 100644 --- a/src/librustc_hir/stable_hash_impls.rs +++ b/src/librustc_hir/stable_hash_impls.rs @@ -38,12 +38,6 @@ impl HashStable for BodyId { } } -impl HashStable for ItemId { - fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) { - hcx.hash_item_id(*self, hasher) - } -} - impl HashStable for Mod<'_> { fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) { hcx.hash_hir_mod(self, hasher) diff --git a/src/librustc_metadata/rmeta/encoder.rs b/src/librustc_metadata/rmeta/encoder.rs index 92bfc51d9d5f0..01417cd418972 100644 --- a/src/librustc_metadata/rmeta/encoder.rs +++ b/src/librustc_metadata/rmeta/encoder.rs @@ -681,7 +681,7 @@ impl EncodeContext<'tcx> { record!(self.per_def.span[def_id] <- self.tcx.def_span(def_id)); record!(self.per_def.attributes[def_id] <- attrs); record!(self.per_def.children[def_id] <- md.item_ids.iter().map(|item_id| { - tcx.hir().local_def_id(item_id.id).index + tcx.hir().local_def_id(*item_id).index })); self.encode_stability(def_id); self.encode_deprecation(def_id); diff --git a/src/librustc_passes/dead.rs b/src/librustc_passes/dead.rs index d03c1f37ae323..c259033da2973 100644 --- a/src/librustc_passes/dead.rs +++ b/src/librustc_passes/dead.rs @@ -300,7 +300,7 @@ impl<'a, 'tcx> Visitor<'tcx> for MarkSymbolVisitor<'a, 'tcx> { fn visit_ty(&mut self, ty: &'tcx hir::Ty<'tcx>) { match ty.kind { TyKind::Def(item_id, _) => { - let item = self.tcx.hir().expect_item(item_id.id); + let item = self.tcx.hir().expect_item(item_id); intravisit::walk_item(self, item); } _ => (), diff --git a/src/librustc_passes/hir_stats.rs b/src/librustc_passes/hir_stats.rs index 3eca602cf8603..1f953a8144273 100644 --- a/src/librustc_passes/hir_stats.rs +++ b/src/librustc_passes/hir_stats.rs @@ -97,7 +97,7 @@ impl<'v> hir_visit::Visitor<'v> for StatCollector<'v> { } fn visit_nested_item(&mut self, id: hir::ItemId) { - let nested_item = self.krate.unwrap().item(id.id); + let nested_item = self.krate.unwrap().item(id); self.visit_item(nested_item) } diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs index f624869a652f7..30829a4c8fb00 100644 --- a/src/librustc_privacy/lib.rs +++ b/src/librustc_privacy/lib.rs @@ -533,8 +533,7 @@ impl EmbargoVisitor<'tcx> { fn update_macro_reachable_mod(&mut self, reachable_mod: hir::HirId, defining_mod: DefId) { let module_def_id = self.tcx.hir().local_def_id(reachable_mod); let module = self.tcx.hir().get_module(module_def_id).0; - for item_id in module.item_ids { - let hir_id = item_id.id; + for &hir_id in module.item_ids { let item_def_id = self.tcx.hir().local_def_id(hir_id); if let Some(def_kind) = self.tcx.def_kind(item_def_id) { let item = self.tcx.hir().expect_item(hir_id); @@ -655,9 +654,9 @@ impl EmbargoVisitor<'tcx> { .map(|module_hir_id| self.tcx.hir().expect_item(module_hir_id)) { if let hir::ItemKind::Mod(m) = &item.kind { - for item_id in m.item_ids.as_ref() { - let item = self.tcx.hir().expect_item(item_id.id); - let def_id = self.tcx.hir().local_def_id(item_id.id); + for &item_id in m.item_ids.as_ref() { + let item = self.tcx.hir().expect_item(item_id); + let def_id = self.tcx.hir().local_def_id(item_id); if !self.tcx.hygienic_eq(segment.ident, item.ident, def_id) { continue; } diff --git a/src/librustc_resolve/lifetimes.rs b/src/librustc_resolve/lifetimes.rs index acb38442fec95..2a04c64cfe6d9 100644 --- a/src/librustc_resolve/lifetimes.rs +++ b/src/librustc_resolve/lifetimes.rs @@ -551,7 +551,7 @@ impl<'a, 'tcx> Visitor<'tcx> for LifetimeContext<'a, 'tcx> { // `type MyAnonTy<'b> = impl MyTrait<'b>;` // ^ ^ this gets resolved in the scope of // the opaque_ty generics - let (generics, bounds) = match self.tcx.hir().expect_item(item_id.id).kind { + let (generics, bounds) = match self.tcx.hir().expect_item(item_id).kind { // Named opaque `impl Trait` types are reached via `TyKind::Path`. // This arm is for `impl Trait` in the types of statics, constants and locals. hir::ItemKind::OpaqueTy(hir::OpaqueTy { impl_trait_fn: None, .. }) => { diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs index 5acaede2ee02e..404b2cbf0f6a9 100644 --- a/src/librustc_typeck/astconv.rs +++ b/src/librustc_typeck/astconv.rs @@ -2609,7 +2609,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o { self.res_to_ty(opt_self_ty, path, false) } hir::TyKind::Def(item_id, ref lifetimes) => { - let did = tcx.hir().local_def_id(item_id.id); + let did = tcx.hir().local_def_id(item_id); self.impl_trait_ty_to_ty(did, lifetimes) } hir::TyKind::Path(hir::QPath::TypeRelative(ref qself, ref segment)) => { diff --git a/src/librustc_typeck/check/method/suggest.rs b/src/librustc_typeck/check/method/suggest.rs index 1cc1eb2c7b2df..1c1587d683ec6 100644 --- a/src/librustc_typeck/check/method/suggest.rs +++ b/src/librustc_typeck/check/method/suggest.rs @@ -1091,7 +1091,7 @@ impl intravisit::Visitor<'tcx> for UsePlacementFinder<'tcx> { } // Find a `use` statement. for item_id in module.item_ids { - let item = self.tcx.hir().expect_item(item_id.id); + let item = self.tcx.hir().expect_item(*item_id); match item.kind { hir::ItemKind::Use(..) => { // Don't suggest placing a `use` before the prelude diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index bb46a15258e0f..2709f4f555c29 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -144,17 +144,17 @@ impl Clean for CrateNum { .item_ids .iter() .filter_map(|&id| { - let item = cx.tcx.hir().expect_item(id.id); + let item = cx.tcx.hir().expect_item(id); match item.kind { hir::ItemKind::Mod(_) => { - as_primitive(Res::Def(DefKind::Mod, cx.tcx.hir().local_def_id(id.id))) + as_primitive(Res::Def(DefKind::Mod, cx.tcx.hir().local_def_id(id))) } hir::ItemKind::Use(ref path, hir::UseKind::Single) if item.vis.node.is_pub() => { as_primitive(path.res).map(|(_, prim, attrs)| { // Pretend the primitive is local. - (cx.tcx.hir().local_def_id(id.id), prim, attrs) + (cx.tcx.hir().local_def_id(id), prim, attrs) }) } _ => None, @@ -197,16 +197,16 @@ impl Clean for CrateNum { .item_ids .iter() .filter_map(|&id| { - let item = cx.tcx.hir().expect_item(id.id); + let item = cx.tcx.hir().expect_item(id); match item.kind { hir::ItemKind::Mod(_) => { - as_keyword(Res::Def(DefKind::Mod, cx.tcx.hir().local_def_id(id.id))) + as_keyword(Res::Def(DefKind::Mod, cx.tcx.hir().local_def_id(id))) } hir::ItemKind::Use(ref path, hir::UseKind::Single) if item.vis.node.is_pub() => { as_keyword(path.res).map(|(_, prim, attrs)| { - (cx.tcx.hir().local_def_id(id.id), prim, attrs) + (cx.tcx.hir().local_def_id(id), prim, attrs) }) } _ => None, @@ -1337,7 +1337,7 @@ impl Clean for hir::Ty<'_> { } TyKind::Tup(ref tys) => Tuple(tys.clean(cx)), TyKind::Def(item_id, _) => { - let item = cx.tcx.hir().expect_item(item_id.id); + let item = cx.tcx.hir().expect_item(item_id); if let hir::ItemKind::OpaqueTy(ref ty) = item.kind { ImplTrait(ty.bounds.clean(cx)) } else { diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index 5fa9270959cca..615991df2be0f 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -248,8 +248,8 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { // Keep track of if there were any private modules in the path. let orig_inside_public_path = self.inside_public_path; self.inside_public_path &= vis.node.is_pub(); - for i in m.item_ids { - let item = self.cx.tcx.hir().expect_item(i.id); + for &i in m.item_ids { + let item = self.cx.tcx.hir().expect_item(i); self.visit_item(item, None, &mut om); } self.inside_public_path = orig_inside_public_path; @@ -350,8 +350,8 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { let ret = match tcx.hir().get(res_hir_id) { Node::Item(&hir::Item { kind: hir::ItemKind::Mod(ref m), .. }) if glob => { let prev = mem::replace(&mut self.inlining, true); - for i in m.item_ids { - let i = self.cx.tcx.hir().expect_item(i.id); + for &i in m.item_ids { + let i = self.cx.tcx.hir().expect_item(i); self.visit_item(i, None, om); } self.inlining = prev; From 0f5d1c1f7111f6b75a7cfc1145a13979948f6a86 Mon Sep 17 00:00:00 2001 From: ljedrz Date: Wed, 8 Jan 2020 10:19:18 +0100 Subject: [PATCH 4/4] HIR: remove obsolete stable hash functions --- src/librustc/ich/impls_hir.rs | 31 --------------------------- src/librustc_hir/stable_hash_impls.rs | 5 +---- 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/src/librustc/ich/impls_hir.rs b/src/librustc/ich/impls_hir.rs index 6b02812ecd505..632f8ba7252e0 100644 --- a/src/librustc/ich/impls_hir.rs +++ b/src/librustc/ich/impls_hir.rs @@ -40,37 +40,6 @@ impl<'ctx> rustc_hir::HashStableContext for StableHashingContext<'ctx> { } } - // The following implementations of HashStable for `ItemId`, `TraitItemId`, and - // `ImplItemId` deserve special attention. Normally we do not hash `NodeId`s within - // the HIR, since they just signify a HIR nodes own path. But `ItemId` et al - // are used when another item in the HIR is *referenced* and we certainly - // want to pick up on a reference changing its target, so we hash the NodeIds - // in "DefPath Mode". - - fn hash_item_id(&mut self, id: hir::ItemId, hasher: &mut StableHasher) { - let hcx = self; - - hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { - id.hash_stable(hcx, hasher); - }) - } - - fn hash_impl_item_id(&mut self, id: hir::ImplItemId, hasher: &mut StableHasher) { - let hcx = self; - - hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { - id.hash_stable(hcx, hasher); - }) - } - - fn hash_trait_item_id(&mut self, id: hir::TraitItemId, hasher: &mut StableHasher) { - let hcx = self; - - hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { - id.hash_stable(hcx, hasher); - }) - } - fn hash_hir_mod(&mut self, module: &hir::Mod<'_>, hasher: &mut StableHasher) { let hcx = self; let hir::Mod { inner: ref inner_span, ref item_ids } = *module; diff --git a/src/librustc_hir/stable_hash_impls.rs b/src/librustc_hir/stable_hash_impls.rs index 4f959b32b0c80..8737725ea7f26 100644 --- a/src/librustc_hir/stable_hash_impls.rs +++ b/src/librustc_hir/stable_hash_impls.rs @@ -1,7 +1,7 @@ use rustc_data_structures::stable_hasher::{HashStable, StableHasher}; use crate::def_id::DefId; -use crate::hir::{BodyId, Expr, ImplItemId, ItemId, Mod, TraitItemId, Ty, VisibilityKind}; +use crate::hir::{BodyId, Expr, Mod, Ty, VisibilityKind}; use crate::hir_id::HirId; /// Requirements for a `StableHashingContext` to be used in this crate. @@ -11,9 +11,6 @@ pub trait HashStableContext: syntax::HashStableContext + rustc_target::HashStabl fn hash_def_id(&mut self, _: DefId, hasher: &mut StableHasher); fn hash_hir_id(&mut self, _: HirId, hasher: &mut StableHasher); fn hash_body_id(&mut self, _: BodyId, hasher: &mut StableHasher); - fn hash_item_id(&mut self, _: ItemId, hasher: &mut StableHasher); - fn hash_impl_item_id(&mut self, _: ImplItemId, hasher: &mut StableHasher); - fn hash_trait_item_id(&mut self, _: TraitItemId, hasher: &mut StableHasher); fn hash_hir_mod(&mut self, _: &Mod<'_>, hasher: &mut StableHasher); fn hash_hir_expr(&mut self, _: &Expr<'_>, hasher: &mut StableHasher); fn hash_hir_ty(&mut self, _: &Ty<'_>, hasher: &mut StableHasher);