Skip to content

Commit 90939e6

Browse files
Revert "Do not allow typeck children items to constrain outer RPITs"
This reverts commit e8d9f38.
1 parent 82ad5c9 commit 90939e6

File tree

1 file changed

+0
-29
lines changed
  • compiler/rustc_borrowck/src/type_check

1 file changed

+0
-29
lines changed

compiler/rustc_borrowck/src/type_check/mod.rs

-29
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKi
2121
use rustc_infer::infer::{
2222
InferCtxt, InferOk, LateBoundRegion, LateBoundRegionConversionTime, NllRegionVariableOrigin,
2323
};
24-
use rustc_infer::traits::ObligationCause;
2524
use rustc_middle::mir::tcx::PlaceTy;
2625
use rustc_middle::mir::visit::{NonMutatingUseContext, PlaceContext, Visitor};
2726
use rustc_middle::mir::AssertKind;
@@ -225,34 +224,6 @@ pub(crate) fn type_check<'mir, 'tcx>(
225224
)
226225
.unwrap();
227226
let mut hidden_type = infcx.resolve_vars_if_possible(decl.hidden_type);
228-
// Check that RPITs are only constrained in their outermost
229-
// function, otherwise report a mismatched types error.
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()
241-
{
242-
infcx
243-
.report_mismatched_types(
244-
&ObligationCause::misc(
245-
hidden_type.span,
246-
infcx.tcx.hir().local_def_id_to_hir_id(
247-
body.source.def_id().expect_local(),
248-
),
249-
),
250-
infcx.tcx.mk_opaque(opaque_type_key.def_id, opaque_type_key.substs),
251-
hidden_type.ty,
252-
ty::error::TypeError::Mismatch,
253-
)
254-
.emit();
255-
}
256227
trace!(
257228
"finalized opaque type {:?} to {:#?}",
258229
opaque_type_key,

0 commit comments

Comments
 (0)