Skip to content

Commit 82ad5c9

Browse files
Revert "use opaque_ty_origin_unchecked instead of destructuring HIR"
This reverts commit 5a4601f.
1 parent b629c85 commit 82ad5c9

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

compiler/rustc_borrowck/src/type_check/mod.rs

+12-4
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,17 @@ pub(crate) fn type_check<'mir, 'tcx>(
227227
let mut hidden_type = infcx.resolve_vars_if_possible(decl.hidden_type);
228228
// Check that RPITs are only constrained in their outermost
229229
// function, otherwise report a mismatched types error.
230-
if let OpaqueTyOrigin::FnReturn(parent) | OpaqueTyOrigin::AsyncFn(parent)
231-
= infcx.opaque_ty_origin_unchecked(opaque_type_key.def_id, hidden_type.span)
232-
&& parent.to_def_id() != body.source.def_id()
230+
if let hir::Node::Item(hir::Item {
231+
kind:
232+
hir::ItemKind::OpaqueTy(hir::OpaqueTy {
233+
origin:
234+
hir::OpaqueTyOrigin::AsyncFn(parent)
235+
| hir::OpaqueTyOrigin::FnReturn(parent),
236+
..
237+
}),
238+
..
239+
}) = infcx.tcx.hir().get_by_def_id(opaque_type_key.def_id.expect_local()) &&
240+
parent.to_def_id() != body.source.def_id()
233241
{
234242
infcx
235243
.report_mismatched_types(
@@ -239,7 +247,7 @@ pub(crate) fn type_check<'mir, 'tcx>(
239247
body.source.def_id().expect_local(),
240248
),
241249
),
242-
infcx.tcx.mk_opaque(opaque_type_key.def_id.to_def_id(), opaque_type_key.substs),
250+
infcx.tcx.mk_opaque(opaque_type_key.def_id, opaque_type_key.substs),
243251
hidden_type.ty,
244252
ty::error::TypeError::Mismatch,
245253
)

compiler/rustc_infer/src/infer/opaque_types.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
438438
}
439439

440440
#[instrument(skip(self), level = "trace")]
441-
pub fn opaque_ty_origin_unchecked(&self, def_id: LocalDefId, span: Span) -> OpaqueTyOrigin {
441+
fn opaque_ty_origin_unchecked(&self, def_id: LocalDefId, span: Span) -> OpaqueTyOrigin {
442442
let origin = match self.tcx.hir().expect_item(def_id).kind {
443443
hir::ItemKind::OpaqueTy(hir::OpaqueTy { origin, .. }) => origin,
444444
ref itemkind => {

0 commit comments

Comments
 (0)