Skip to content

Commit ebcc847

Browse files
committed
Make ty_param_owner return a LocalDefId.
1 parent 79afe99 commit ebcc847

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

compiler/rustc_middle/src/hir/map/mod.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -546,10 +546,12 @@ impl<'hir> Map<'hir> {
546546
});
547547
}
548548

549-
pub fn ty_param_owner(&self, id: HirId) -> HirId {
549+
pub fn ty_param_owner(&self, id: HirId) -> LocalDefId {
550550
match self.get(id) {
551-
Node::Item(&Item { kind: ItemKind::Trait(..) | ItemKind::TraitAlias(..), .. }) => id,
552-
Node::GenericParam(_) => self.get_parent_node(id),
551+
Node::Item(&Item { kind: ItemKind::Trait(..) | ItemKind::TraitAlias(..), .. }) => {
552+
id.expect_owner()
553+
}
554+
Node::GenericParam(_) => self.get_parent_item(id),
553555
_ => bug!("ty_param_owner: {} not a type parameter", self.node_to_string(id)),
554556
}
555557
}

compiler/rustc_typeck/src/check/fn_ctxt/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,7 @@ impl<'a, 'tcx> AstConv<'tcx> for FnCtxt<'a, 'tcx> {
188188
) -> ty::GenericPredicates<'tcx> {
189189
let tcx = self.tcx;
190190
let hir_id = tcx.hir().local_def_id_to_hir_id(def_id.expect_local());
191-
let item_id = tcx.hir().ty_param_owner(hir_id);
192-
let item_def_id = tcx.hir().local_def_id(item_id);
191+
let item_def_id = tcx.hir().ty_param_owner(hir_id);
193192
let generics = tcx.generics_of(item_def_id);
194193
let index = generics.param_def_id_to_index[&def_id];
195194
ty::GenericPredicates {

compiler/rustc_typeck/src/collect.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -569,13 +569,12 @@ fn type_param_predicates(
569569

570570
let param_id = tcx.hir().local_def_id_to_hir_id(def_id);
571571
let param_owner = tcx.hir().ty_param_owner(param_id);
572-
let param_owner_def_id = tcx.hir().local_def_id(param_owner);
573-
let generics = tcx.generics_of(param_owner_def_id);
572+
let generics = tcx.generics_of(param_owner);
574573
let index = generics.param_def_id_to_index[&def_id.to_def_id()];
575574
let ty = tcx.mk_ty_param(index, tcx.hir().ty_param_name(param_id));
576575

577576
// Don't look for bounds where the type parameter isn't in scope.
578-
let parent = if item_def_id == param_owner_def_id.to_def_id() {
577+
let parent = if item_def_id == param_owner.to_def_id() {
579578
None
580579
} else {
581580
tcx.generics_of(item_def_id).parent

0 commit comments

Comments
 (0)