Rename some OwnerId fields.
spastorino noticed some silly expressions like `item_id.def_id.def_id`. This commit renames several `def_id: OwnerId` fields as `owner_id`, so those expressions become `item_id.owner_id.def_id`. `item_id.owner_id.local_def_id` would be even clearer, but the use of `def_id` for values of type `LocalDefId` is *very* widespread, so I left that alone.
This commit is contained in:
@@ -227,17 +227,17 @@ fn check_opaque<'tcx>(tcx: TyCtxt<'tcx>, id: hir::ItemId) {
|
||||
return;
|
||||
}
|
||||
|
||||
let substs = InternalSubsts::identity_for_item(tcx, item.def_id.to_def_id());
|
||||
let span = tcx.def_span(item.def_id.def_id);
|
||||
let substs = InternalSubsts::identity_for_item(tcx, item.owner_id.to_def_id());
|
||||
let span = tcx.def_span(item.owner_id.def_id);
|
||||
|
||||
check_opaque_for_inheriting_lifetimes(tcx, item.def_id.def_id, span);
|
||||
if tcx.type_of(item.def_id.def_id).references_error() {
|
||||
check_opaque_for_inheriting_lifetimes(tcx, item.owner_id.def_id, span);
|
||||
if tcx.type_of(item.owner_id.def_id).references_error() {
|
||||
return;
|
||||
}
|
||||
if check_opaque_for_cycles(tcx, item.def_id.def_id, substs, span, &origin).is_err() {
|
||||
if check_opaque_for_cycles(tcx, item.owner_id.def_id, substs, span, &origin).is_err() {
|
||||
return;
|
||||
}
|
||||
check_opaque_meets_bounds(tcx, item.def_id.def_id, substs, span, &origin);
|
||||
check_opaque_meets_bounds(tcx, item.owner_id.def_id, substs, span, &origin);
|
||||
}
|
||||
/// Checks that an opaque type does not use `Self` or `T::Foo` projections that would result
|
||||
/// in "inheriting lifetimes".
|
||||
@@ -492,25 +492,25 @@ fn check_opaque_meets_bounds<'tcx>(
|
||||
fn check_item_type<'tcx>(tcx: TyCtxt<'tcx>, id: hir::ItemId) {
|
||||
debug!(
|
||||
"check_item_type(it.def_id={:?}, it.name={})",
|
||||
id.def_id,
|
||||
tcx.def_path_str(id.def_id.to_def_id())
|
||||
id.owner_id,
|
||||
tcx.def_path_str(id.owner_id.to_def_id())
|
||||
);
|
||||
let _indenter = indenter();
|
||||
match tcx.def_kind(id.def_id) {
|
||||
match tcx.def_kind(id.owner_id) {
|
||||
DefKind::Static(..) => {
|
||||
tcx.ensure().typeck(id.def_id.def_id);
|
||||
maybe_check_static_with_link_section(tcx, id.def_id.def_id);
|
||||
check_static_inhabited(tcx, id.def_id.def_id);
|
||||
tcx.ensure().typeck(id.owner_id.def_id);
|
||||
maybe_check_static_with_link_section(tcx, id.owner_id.def_id);
|
||||
check_static_inhabited(tcx, id.owner_id.def_id);
|
||||
}
|
||||
DefKind::Const => {
|
||||
tcx.ensure().typeck(id.def_id.def_id);
|
||||
tcx.ensure().typeck(id.owner_id.def_id);
|
||||
}
|
||||
DefKind::Enum => {
|
||||
let item = tcx.hir().item(id);
|
||||
let hir::ItemKind::Enum(ref enum_definition, _) = item.kind else {
|
||||
return;
|
||||
};
|
||||
check_enum(tcx, &enum_definition.variants, item.def_id.def_id);
|
||||
check_enum(tcx, &enum_definition.variants, item.owner_id.def_id);
|
||||
}
|
||||
DefKind::Fn => {} // entirely within check_item_body
|
||||
DefKind::Impl => {
|
||||
@@ -518,12 +518,12 @@ fn check_item_type<'tcx>(tcx: TyCtxt<'tcx>, id: hir::ItemId) {
|
||||
let hir::ItemKind::Impl(ref impl_) = it.kind else {
|
||||
return;
|
||||
};
|
||||
debug!("ItemKind::Impl {} with id {:?}", it.ident, it.def_id);
|
||||
if let Some(impl_trait_ref) = tcx.impl_trait_ref(it.def_id) {
|
||||
debug!("ItemKind::Impl {} with id {:?}", it.ident, it.owner_id);
|
||||
if let Some(impl_trait_ref) = tcx.impl_trait_ref(it.owner_id) {
|
||||
check_impl_items_against_trait(
|
||||
tcx,
|
||||
it.span,
|
||||
it.def_id.def_id,
|
||||
it.owner_id.def_id,
|
||||
impl_trait_ref,
|
||||
&impl_.items,
|
||||
);
|
||||
@@ -545,15 +545,15 @@ fn check_item_type<'tcx>(tcx: TyCtxt<'tcx>, id: hir::ItemId) {
|
||||
fn_maybe_err(tcx, item.ident.span, abi);
|
||||
}
|
||||
hir::TraitItemKind::Type(.., Some(default)) => {
|
||||
let assoc_item = tcx.associated_item(item.def_id);
|
||||
let assoc_item = tcx.associated_item(item.owner_id);
|
||||
let trait_substs =
|
||||
InternalSubsts::identity_for_item(tcx, it.def_id.to_def_id());
|
||||
InternalSubsts::identity_for_item(tcx, it.owner_id.to_def_id());
|
||||
let _: Result<_, rustc_errors::ErrorGuaranteed> = check_type_bounds(
|
||||
tcx,
|
||||
assoc_item,
|
||||
assoc_item,
|
||||
default.span,
|
||||
ty::TraitRef { def_id: it.def_id.to_def_id(), substs: trait_substs },
|
||||
ty::TraitRef { def_id: it.owner_id.to_def_id(), substs: trait_substs },
|
||||
);
|
||||
}
|
||||
_ => {}
|
||||
@@ -561,16 +561,16 @@ fn check_item_type<'tcx>(tcx: TyCtxt<'tcx>, id: hir::ItemId) {
|
||||
}
|
||||
}
|
||||
DefKind::Struct => {
|
||||
check_struct(tcx, id.def_id.def_id);
|
||||
check_struct(tcx, id.owner_id.def_id);
|
||||
}
|
||||
DefKind::Union => {
|
||||
check_union(tcx, id.def_id.def_id);
|
||||
check_union(tcx, id.owner_id.def_id);
|
||||
}
|
||||
DefKind::OpaqueTy => {
|
||||
check_opaque(tcx, id);
|
||||
}
|
||||
DefKind::ImplTraitPlaceholder => {
|
||||
let parent = tcx.impl_trait_in_trait_parent(id.def_id.to_def_id());
|
||||
let parent = tcx.impl_trait_in_trait_parent(id.owner_id.to_def_id());
|
||||
// Only check the validity of this opaque type if the function has a default body
|
||||
if let hir::Node::TraitItem(hir::TraitItem {
|
||||
kind: hir::TraitItemKind::Fn(_, hir::TraitFn::Provided(_)),
|
||||
@@ -581,8 +581,8 @@ fn check_item_type<'tcx>(tcx: TyCtxt<'tcx>, id: hir::ItemId) {
|
||||
}
|
||||
}
|
||||
DefKind::TyAlias => {
|
||||
let pty_ty = tcx.type_of(id.def_id);
|
||||
let generics = tcx.generics_of(id.def_id);
|
||||
let pty_ty = tcx.type_of(id.owner_id);
|
||||
let generics = tcx.generics_of(id.owner_id);
|
||||
check_type_params_are_used(tcx, &generics, pty_ty);
|
||||
}
|
||||
DefKind::ForeignMod => {
|
||||
@@ -604,7 +604,7 @@ fn check_item_type<'tcx>(tcx: TyCtxt<'tcx>, id: hir::ItemId) {
|
||||
}
|
||||
} else {
|
||||
for item in items {
|
||||
let def_id = item.id.def_id.def_id;
|
||||
let def_id = item.id.owner_id.def_id;
|
||||
let generics = tcx.generics_of(def_id);
|
||||
let own_counts = generics.own_counts();
|
||||
if generics.params.len() - own_counts.lifetimes != 0 {
|
||||
@@ -659,7 +659,7 @@ fn check_item_type<'tcx>(tcx: TyCtxt<'tcx>, id: hir::ItemId) {
|
||||
|
||||
pub(super) fn check_on_unimplemented(tcx: TyCtxt<'_>, item: &hir::Item<'_>) {
|
||||
// an error would be reported if this fails.
|
||||
let _ = traits::OnUnimplementedDirective::of_item(tcx, item.def_id.to_def_id());
|
||||
let _ = traits::OnUnimplementedDirective::of_item(tcx, item.owner_id.to_def_id());
|
||||
}
|
||||
|
||||
pub(super) fn check_specialization_validity<'tcx>(
|
||||
@@ -746,7 +746,7 @@ fn check_impl_items_against_trait<'tcx>(
|
||||
let trait_def = tcx.trait_def(impl_trait_ref.def_id);
|
||||
|
||||
for impl_item in impl_item_refs {
|
||||
let ty_impl_item = tcx.associated_item(impl_item.id.def_id);
|
||||
let ty_impl_item = tcx.associated_item(impl_item.id.owner_id);
|
||||
let ty_trait_item = if let Some(trait_item_id) = ty_impl_item.trait_item_def_id {
|
||||
tcx.associated_item(trait_item_id)
|
||||
} else {
|
||||
@@ -758,7 +758,7 @@ fn check_impl_items_against_trait<'tcx>(
|
||||
match impl_item_full.kind {
|
||||
hir::ImplItemKind::Const(..) => {
|
||||
let _ = tcx.compare_assoc_const_impl_item_with_trait_item((
|
||||
impl_item.id.def_id.def_id,
|
||||
impl_item.id.owner_id.def_id,
|
||||
ty_impl_item.trait_item_def_id.unwrap(),
|
||||
));
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ fn equate_intrinsic_type<'tcx>(
|
||||
) {
|
||||
let (own_counts, span) = match &it.kind {
|
||||
hir::ForeignItemKind::Fn(.., generics) => {
|
||||
let own_counts = tcx.generics_of(it.def_id.to_def_id()).own_counts();
|
||||
let own_counts = tcx.generics_of(it.owner_id.to_def_id()).own_counts();
|
||||
(own_counts, generics.span)
|
||||
}
|
||||
_ => {
|
||||
@@ -57,7 +57,7 @@ fn equate_intrinsic_type<'tcx>(
|
||||
{
|
||||
let fty = tcx.mk_fn_ptr(sig);
|
||||
let cause = ObligationCause::new(it.span, it.hir_id(), ObligationCauseCode::IntrinsicType);
|
||||
require_same_types(tcx, &cause, tcx.mk_fn_ptr(tcx.fn_sig(it.def_id)), fty);
|
||||
require_same_types(tcx, &cause, tcx.mk_fn_ptr(tcx.fn_sig(it.owner_id)), fty);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ pub fn intrinsic_operation_unsafety(tcx: TyCtxt<'_>, intrinsic_id: DefId) -> hir
|
||||
/// and in `library/core/src/intrinsics.rs`.
|
||||
pub fn check_intrinsic_type(tcx: TyCtxt<'_>, it: &hir::ForeignItem<'_>) {
|
||||
let param = |n| tcx.mk_ty_param(n, Symbol::intern(&format!("P{}", n)));
|
||||
let intrinsic_id = it.def_id.to_def_id();
|
||||
let intrinsic_id = it.owner_id.to_def_id();
|
||||
let intrinsic_name = tcx.item_name(intrinsic_id);
|
||||
let name_str = intrinsic_name.as_str();
|
||||
|
||||
|
||||
@@ -147,10 +147,10 @@ fn check_well_formed(tcx: TyCtxt<'_>, def_id: hir::OwnerId) {
|
||||
/// the types first.
|
||||
#[instrument(skip(tcx), level = "debug")]
|
||||
fn check_item<'tcx>(tcx: TyCtxt<'tcx>, item: &'tcx hir::Item<'tcx>) {
|
||||
let def_id = item.def_id.def_id;
|
||||
let def_id = item.owner_id.def_id;
|
||||
|
||||
debug!(
|
||||
?item.def_id,
|
||||
?item.owner_id,
|
||||
item.name = ? tcx.def_path_str(def_id.to_def_id())
|
||||
);
|
||||
|
||||
@@ -246,10 +246,10 @@ fn check_item<'tcx>(tcx: TyCtxt<'tcx>, item: &'tcx hir::Item<'tcx>) {
|
||||
}
|
||||
|
||||
fn check_foreign_item(tcx: TyCtxt<'_>, item: &hir::ForeignItem<'_>) {
|
||||
let def_id = item.def_id.def_id;
|
||||
let def_id = item.owner_id.def_id;
|
||||
|
||||
debug!(
|
||||
?item.def_id,
|
||||
?item.owner_id,
|
||||
item.name = ? tcx.def_path_str(def_id.to_def_id())
|
||||
);
|
||||
|
||||
@@ -263,7 +263,7 @@ fn check_foreign_item(tcx: TyCtxt<'_>, item: &hir::ForeignItem<'_>) {
|
||||
}
|
||||
|
||||
fn check_trait_item(tcx: TyCtxt<'_>, trait_item: &hir::TraitItem<'_>) {
|
||||
let def_id = trait_item.def_id.def_id;
|
||||
let def_id = trait_item.owner_id.def_id;
|
||||
|
||||
let (method_sig, span) = match trait_item.kind {
|
||||
hir::TraitItemKind::Fn(ref sig, _) => (Some(sig), trait_item.span),
|
||||
@@ -275,7 +275,7 @@ fn check_trait_item(tcx: TyCtxt<'_>, trait_item: &hir::TraitItem<'_>) {
|
||||
|
||||
let encl_trait_def_id = tcx.local_parent(def_id);
|
||||
let encl_trait = tcx.hir().expect_item(encl_trait_def_id);
|
||||
let encl_trait_def_id = encl_trait.def_id.to_def_id();
|
||||
let encl_trait_def_id = encl_trait.owner_id.to_def_id();
|
||||
let fn_lang_item_name = if Some(encl_trait_def_id) == tcx.lang_items().fn_trait() {
|
||||
Some("fn")
|
||||
} else if Some(encl_trait_def_id) == tcx.lang_items().fn_mut_trait() {
|
||||
@@ -348,7 +348,7 @@ fn check_gat_where_clauses(tcx: TyCtxt<'_>, associated_items: &[hir::TraitItemRe
|
||||
loop {
|
||||
let mut should_continue = false;
|
||||
for gat_item in associated_items {
|
||||
let gat_def_id = gat_item.id.def_id;
|
||||
let gat_def_id = gat_item.id.owner_id;
|
||||
let gat_item = tcx.associated_item(gat_def_id);
|
||||
// If this item is not an assoc ty, or has no substs, then it's not a GAT
|
||||
if gat_item.kind != ty::AssocKind::Type {
|
||||
@@ -365,7 +365,7 @@ fn check_gat_where_clauses(tcx: TyCtxt<'_>, associated_items: &[hir::TraitItemRe
|
||||
// constrains the GAT with individually.
|
||||
let mut new_required_bounds: Option<FxHashSet<ty::Predicate<'_>>> = None;
|
||||
for item in associated_items {
|
||||
let item_def_id = item.id.def_id;
|
||||
let item_def_id = item.id.owner_id;
|
||||
// Skip our own GAT, since it does not constrain itself at all.
|
||||
if item_def_id == gat_def_id {
|
||||
continue;
|
||||
@@ -790,7 +790,7 @@ fn check_object_unsafe_self_trait_by_name(tcx: TyCtxt<'_>, item: &hir::TraitItem
|
||||
let (trait_name, trait_def_id) =
|
||||
match tcx.hir().get_by_def_id(tcx.hir().get_parent_item(item.hir_id()).def_id) {
|
||||
hir::Node::Item(item) => match item.kind {
|
||||
hir::ItemKind::Trait(..) => (item.ident, item.def_id),
|
||||
hir::ItemKind::Trait(..) => (item.ident, item.owner_id),
|
||||
_ => return,
|
||||
},
|
||||
_ => return,
|
||||
@@ -845,7 +845,7 @@ fn check_impl_item(tcx: TyCtxt<'_>, impl_item: &hir::ImplItem<'_>) {
|
||||
_ => (None, impl_item.span),
|
||||
};
|
||||
|
||||
check_associated_item(tcx, impl_item.def_id.def_id, span, method_sig);
|
||||
check_associated_item(tcx, impl_item.owner_id.def_id, span, method_sig);
|
||||
}
|
||||
|
||||
fn check_param_wf(tcx: TyCtxt<'_>, param: &hir::GenericParam<'_>) {
|
||||
@@ -1045,11 +1045,11 @@ fn check_type_defn<'tcx, F>(
|
||||
) where
|
||||
F: FnMut(&WfCheckingCtxt<'_, 'tcx>) -> Vec<AdtVariant<'tcx>>,
|
||||
{
|
||||
let _ = tcx.representability(item.def_id.def_id);
|
||||
let _ = tcx.representability(item.owner_id.def_id);
|
||||
|
||||
enter_wf_checking_ctxt(tcx, item.span, item.def_id.def_id, |wfcx| {
|
||||
enter_wf_checking_ctxt(tcx, item.span, item.owner_id.def_id, |wfcx| {
|
||||
let variants = lookup_fields(wfcx);
|
||||
let packed = tcx.adt_def(item.def_id).repr().packed();
|
||||
let packed = tcx.adt_def(item.owner_id).repr().packed();
|
||||
|
||||
for variant in &variants {
|
||||
// All field types must be well-formed.
|
||||
@@ -1073,7 +1073,7 @@ fn check_type_defn<'tcx, F>(
|
||||
// Just treat unresolved type expression as if it needs drop.
|
||||
true
|
||||
} else {
|
||||
ty.needs_drop(tcx, tcx.param_env(item.def_id))
|
||||
ty.needs_drop(tcx, tcx.param_env(item.owner_id))
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1121,15 +1121,15 @@ fn check_type_defn<'tcx, F>(
|
||||
}
|
||||
}
|
||||
|
||||
check_where_clauses(wfcx, item.span, item.def_id.def_id);
|
||||
check_where_clauses(wfcx, item.span, item.owner_id.def_id);
|
||||
});
|
||||
}
|
||||
|
||||
#[instrument(skip(tcx, item))]
|
||||
fn check_trait(tcx: TyCtxt<'_>, item: &hir::Item<'_>) {
|
||||
debug!(?item.def_id);
|
||||
debug!(?item.owner_id);
|
||||
|
||||
let def_id = item.def_id.def_id;
|
||||
let def_id = item.owner_id.def_id;
|
||||
let trait_def = tcx.trait_def(def_id);
|
||||
if trait_def.is_marker
|
||||
|| matches!(trait_def.specialization_kind, TraitSpecializationKind::Marker)
|
||||
@@ -1240,13 +1240,13 @@ fn check_impl<'tcx>(
|
||||
ast_trait_ref: &Option<hir::TraitRef<'_>>,
|
||||
constness: hir::Constness,
|
||||
) {
|
||||
enter_wf_checking_ctxt(tcx, item.span, item.def_id.def_id, |wfcx| {
|
||||
enter_wf_checking_ctxt(tcx, item.span, item.owner_id.def_id, |wfcx| {
|
||||
match *ast_trait_ref {
|
||||
Some(ref ast_trait_ref) => {
|
||||
// `#[rustc_reservation_impl]` impls are not real impls and
|
||||
// therefore don't need to be WF (the trait's `Self: Trait` predicate
|
||||
// won't hold).
|
||||
let trait_ref = tcx.impl_trait_ref(item.def_id).unwrap();
|
||||
let trait_ref = tcx.impl_trait_ref(item.owner_id).unwrap();
|
||||
let trait_ref = wfcx.normalize(ast_trait_ref.path.span, None, trait_ref);
|
||||
let trait_pred = ty::TraitPredicate {
|
||||
trait_ref,
|
||||
@@ -1268,7 +1268,7 @@ fn check_impl<'tcx>(
|
||||
wfcx.register_obligations(obligations);
|
||||
}
|
||||
None => {
|
||||
let self_ty = tcx.type_of(item.def_id);
|
||||
let self_ty = tcx.type_of(item.owner_id);
|
||||
let self_ty = wfcx.normalize(
|
||||
item.span,
|
||||
Some(WellFormedLoc::Ty(item.hir_id().expect_owner().def_id)),
|
||||
@@ -1282,7 +1282,7 @@ fn check_impl<'tcx>(
|
||||
}
|
||||
}
|
||||
|
||||
check_where_clauses(wfcx, item.span, item.def_id.def_id);
|
||||
check_where_clauses(wfcx, item.span, item.owner_id.def_id);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1778,14 +1778,14 @@ fn check_variances_for_type_defn<'tcx>(
|
||||
item: &hir::Item<'tcx>,
|
||||
hir_generics: &hir::Generics<'_>,
|
||||
) {
|
||||
let ty = tcx.type_of(item.def_id);
|
||||
let ty = tcx.type_of(item.owner_id);
|
||||
if tcx.has_error_field(ty) {
|
||||
return;
|
||||
}
|
||||
|
||||
let ty_predicates = tcx.predicates_of(item.def_id);
|
||||
let ty_predicates = tcx.predicates_of(item.owner_id);
|
||||
assert_eq!(ty_predicates.parent, None);
|
||||
let variances = tcx.variances_of(item.def_id);
|
||||
let variances = tcx.variances_of(item.owner_id);
|
||||
|
||||
let mut constrained_parameters: FxHashSet<_> = variances
|
||||
.iter()
|
||||
@@ -1798,7 +1798,7 @@ fn check_variances_for_type_defn<'tcx>(
|
||||
|
||||
// Lazily calculated because it is only needed in case of an error.
|
||||
let explicitly_bounded_params = LazyCell::new(|| {
|
||||
let icx = crate::collect::ItemCtxt::new(tcx, item.def_id.to_def_id());
|
||||
let icx = crate::collect::ItemCtxt::new(tcx, item.owner_id.to_def_id());
|
||||
hir_generics
|
||||
.predicates
|
||||
.iter()
|
||||
@@ -1919,10 +1919,10 @@ impl<'tcx> WfCheckingCtxt<'_, 'tcx> {
|
||||
|
||||
fn check_mod_type_wf(tcx: TyCtxt<'_>, module: LocalDefId) {
|
||||
let items = tcx.hir_module_items(module);
|
||||
items.par_items(|item| tcx.ensure().check_well_formed(item.def_id));
|
||||
items.par_impl_items(|item| tcx.ensure().check_well_formed(item.def_id));
|
||||
items.par_trait_items(|item| tcx.ensure().check_well_formed(item.def_id));
|
||||
items.par_foreign_items(|item| tcx.ensure().check_well_formed(item.def_id));
|
||||
items.par_items(|item| tcx.ensure().check_well_formed(item.owner_id));
|
||||
items.par_impl_items(|item| tcx.ensure().check_well_formed(item.owner_id));
|
||||
items.par_trait_items(|item| tcx.ensure().check_well_formed(item.owner_id));
|
||||
items.par_foreign_items(|item| tcx.ensure().check_well_formed(item.owner_id));
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user