Skip to content

Commit 050f2a7

Browse files
committed
Don't store defaultness for inherent impl items
1 parent b7269fd commit 050f2a7

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

compiler/rustc_metadata/src/rmeta/encoder.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1725,11 +1725,11 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
17251725
let tcx = self.tcx;
17261726
let item = tcx.associated_item(def_id);
17271727

1728-
self.tables.defaultness.set_some(def_id.index, item.defaultness(tcx));
17291728
self.tables.assoc_container.set_some(def_id.index, item.container);
17301729

17311730
match item.container {
17321731
AssocItemContainer::Trait => {
1732+
self.tables.defaultness.set_some(def_id.index, item.defaultness(tcx));
17331733
if item.is_type() {
17341734
self.encode_explicit_item_bounds(def_id);
17351735
self.encode_explicit_item_self_bounds(def_id);
@@ -1740,6 +1740,7 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
17401740
}
17411741
}
17421742
AssocItemContainer::TraitImpl => {
1743+
self.tables.defaultness.set_some(def_id.index, item.defaultness(tcx));
17431744
if let Some(trait_item_def_id) = item.trait_item_def_id {
17441745
self.tables.trait_item_def_id.set_some(def_id.index, trait_item_def_id.into());
17451746
}

compiler/rustc_middle/src/ty/assoc.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,12 @@ impl AssocItem {
5757
///
5858
/// [`type_of`]: crate::ty::TyCtxt::type_of
5959
pub fn defaultness(&self, tcx: TyCtxt<'_>) -> hir::Defaultness {
60-
tcx.defaultness(self.def_id)
60+
match self.container {
61+
AssocItemContainer::InherentImpl => hir::Defaultness::Final,
62+
AssocItemContainer::Trait | AssocItemContainer::TraitImpl => {
63+
tcx.defaultness(self.def_id)
64+
}
65+
}
6166
}
6267

6368
#[inline]

compiler/rustc_ty_utils/src/ty.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,6 @@ fn defaultness(tcx: TyCtxt<'_>, def_id: LocalDefId) -> hir::Defaultness {
8989
..
9090
})
9191
| hir::Node::TraitItem(hir::TraitItem { defaultness, .. }) => *defaultness,
92-
hir::Node::ImplItem(hir::ImplItem {
93-
impl_kind: hir::ImplItemImplKind::Inherent { .. },
94-
..
95-
}) => hir::Defaultness::Final,
9692
node => {
9793
bug!("`defaultness` called on {:?}", node);
9894
}

0 commit comments

Comments
 (0)