Rollup merge of #144448 - camsteffen:defaultness-impl-trait-only, r=compiler-errors
Limit defaultness query to impl of trait I separated this out from https://github.com/rust-lang/rust/pull/144386.
This commit is contained in:
@@ -2124,11 +2124,11 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
|
|||||||
};
|
};
|
||||||
let def_id = id.owner_id.to_def_id();
|
let def_id = id.owner_id.to_def_id();
|
||||||
|
|
||||||
self.tables.defaultness.set_some(def_id.index, tcx.defaultness(def_id));
|
|
||||||
|
|
||||||
if of_trait && let Some(header) = tcx.impl_trait_header(def_id) {
|
if of_trait && let Some(header) = tcx.impl_trait_header(def_id) {
|
||||||
record!(self.tables.impl_trait_header[def_id] <- header);
|
record!(self.tables.impl_trait_header[def_id] <- header);
|
||||||
|
|
||||||
|
self.tables.defaultness.set_some(def_id.index, tcx.defaultness(def_id));
|
||||||
|
|
||||||
let trait_ref = header.trait_ref.instantiate_identity();
|
let trait_ref = header.trait_ref.instantiate_identity();
|
||||||
let simplified_self_ty = fast_reject::simplify_type(
|
let simplified_self_ty = fast_reject::simplify_type(
|
||||||
self.tcx,
|
self.tcx,
|
||||||
|
|||||||
@@ -80,8 +80,11 @@ fn sizedness_constraint_for_ty<'tcx>(
|
|||||||
|
|
||||||
fn defaultness(tcx: TyCtxt<'_>, def_id: LocalDefId) -> hir::Defaultness {
|
fn defaultness(tcx: TyCtxt<'_>, def_id: LocalDefId) -> hir::Defaultness {
|
||||||
match tcx.hir_node_by_def_id(def_id) {
|
match tcx.hir_node_by_def_id(def_id) {
|
||||||
hir::Node::Item(hir::Item { kind: hir::ItemKind::Impl(impl_), .. }) => impl_.defaultness,
|
hir::Node::Item(hir::Item {
|
||||||
hir::Node::ImplItem(hir::ImplItem { defaultness, .. })
|
kind: hir::ItemKind::Impl(hir::Impl { defaultness, of_trait: Some(_), .. }),
|
||||||
|
..
|
||||||
|
})
|
||||||
|
| hir::Node::ImplItem(hir::ImplItem { defaultness, .. })
|
||||||
| hir::Node::TraitItem(hir::TraitItem { defaultness, .. }) => *defaultness,
|
| hir::Node::TraitItem(hir::TraitItem { defaultness, .. }) => *defaultness,
|
||||||
node => {
|
node => {
|
||||||
bug!("`defaultness` called on {:?}", node);
|
bug!("`defaultness` called on {:?}", node);
|
||||||
|
|||||||
Reference in New Issue
Block a user