Skip to content

Commit 62ec331

Browse files
committed
Use tcx.local_parent() more often
1 parent 2bb9d70 commit 62ec331

5 files changed

Lines changed: 7 additions & 9 deletions

File tree

compiler/rustc_hir_analysis/src/collect/predicates_of.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ fn gather_explicit_predicates_of(tcx: TyCtxt<'_>, def_id: LocalDefId) -> ty::Gen
107107
);
108108

109109
return ty::GenericPredicates {
110-
parent: Some(tcx.parent(def_id.to_def_id())),
110+
parent: Some(tcx.local_parent(def_id).to_def_id()),
111111
predicates: tcx.arena.alloc_from_iter(predicates),
112112
};
113113
}

compiler/rustc_passes/src/dead.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,8 @@ impl<'tcx> MarkSymbolVisitor<'tcx> {
380380
/// for discussion).
381381
fn should_ignore_impl_item(&mut self, impl_item: &hir::ImplItem<'_>) -> bool {
382382
if let hir::ImplItemImplKind::Trait { .. } = impl_item.impl_kind
383-
&& let impl_of = self.tcx.parent(impl_item.owner_id.to_def_id())
384-
&& self.tcx.is_automatically_derived(impl_of)
383+
&& let impl_of = self.tcx.local_parent(impl_item.owner_id.def_id)
384+
&& self.tcx.is_automatically_derived(impl_of.to_def_id())
385385
&& let trait_ref = self.tcx.impl_trait_ref(impl_of).instantiate_identity()
386386
&& find_attr!(self.tcx, trait_ref.def_id, RustcTrivialFieldReads)
387387
{

compiler/rustc_trait_selection/src/error_reporting/infer/need_type_info.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -516,9 +516,8 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
516516

517517
let Some(InferSource { span, kind }) = local_visitor.infer_source else {
518518
let silence = if let DefKind::AssocFn = self.tcx.def_kind(body_def_id)
519-
&& let parent = self.tcx.parent(body_def_id.into())
520-
&& self.tcx.is_automatically_derived(parent)
521-
&& let Some(parent) = parent.as_local()
519+
&& let parent = self.tcx.local_parent(body_def_id)
520+
&& self.tcx.is_automatically_derived(parent.to_def_id())
522521
&& let hir::Node::Item(item) = self.tcx.hir_node_by_def_id(parent)
523522
&& let hir::ItemKind::Impl(imp) = item.kind
524523
&& let hir::TyKind::Path(hir::QPath::Resolved(_, path)) = imp.self_ty.kind

compiler/rustc_trait_selection/src/error_reporting/traits/suggestions.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1966,10 +1966,9 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
19661966

19671967
let mut span = obligation.cause.span;
19681968
if let DefKind::Closure = self.tcx.def_kind(obligation.cause.body_id)
1969-
&& let parent = self.tcx.parent(obligation.cause.body_id.into())
1969+
&& let parent = self.tcx.local_parent(obligation.cause.body_id)
19701970
&& let DefKind::Fn | DefKind::AssocFn = self.tcx.def_kind(parent)
19711971
&& self.tcx.asyncness(parent).is_async()
1972-
&& let Some(parent) = parent.as_local()
19731972
&& let Node::Item(hir::Item { kind: hir::ItemKind::Fn { sig: fn_sig, .. }, .. })
19741973
| Node::ImplItem(hir::ImplItem { kind: hir::ImplItemKind::Fn(fn_sig, _), .. })
19751974
| Node::TraitItem(hir::TraitItem {

src/tools/clippy/clippy_lints/src/only_used_in_recursion.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ impl<'tcx> LateLintPass<'tcx> for OnlyUsedInRecursion {
332332
if let ImplItemImplKind::Trait { trait_item_def_id, .. } = impl_kind
333333
&& let Ok(trait_item_id) = trait_item_def_id
334334
{
335-
let impl_id = cx.tcx.parent(owner_id.into());
335+
let impl_id = cx.tcx.local_parent(owner_id.def_id);
336336
let trait_ref = cx.tcx.impl_trait_ref(impl_id).instantiate_identity();
337337
(
338338
trait_item_id,

0 commit comments

Comments
 (0)