diff options
| author | Michael Goulet <michael@errs.io> | 2022-07-26 07:37:54 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-07-26 07:46:30 +0000 |
| commit | 90939e6bce14304c24da2f253c1b94e7feca01a9 (patch) | |
| tree | 6cda5affc50791858c6cb4ee0639f7078c34140d | |
| parent | 82ad5c95b6cdfc404ca07cd5cf791b809c390671 (diff) | |
| download | rust-90939e6bce14304c24da2f253c1b94e7feca01a9.tar.gz rust-90939e6bce14304c24da2f253c1b94e7feca01a9.zip | |
Revert "Do not allow typeck children items to constrain outer RPITs"
This reverts commit e8d9f38141a0ee8ac5484783e1fb5c218f9d2eee.
| -rw-r--r-- | compiler/rustc_borrowck/src/type_check/mod.rs | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/compiler/rustc_borrowck/src/type_check/mod.rs b/compiler/rustc_borrowck/src/type_check/mod.rs index 1db1ec4a7bf..cf2140097e6 100644 --- a/compiler/rustc_borrowck/src/type_check/mod.rs +++ b/compiler/rustc_borrowck/src/type_check/mod.rs @@ -21,7 +21,6 @@ use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKi use rustc_infer::infer::{ InferCtxt, InferOk, LateBoundRegion, LateBoundRegionConversionTime, NllRegionVariableOrigin, }; -use rustc_infer::traits::ObligationCause; use rustc_middle::mir::tcx::PlaceTy; use rustc_middle::mir::visit::{NonMutatingUseContext, PlaceContext, Visitor}; use rustc_middle::mir::AssertKind; @@ -225,34 +224,6 @@ pub(crate) fn type_check<'mir, 'tcx>( ) .unwrap(); let mut hidden_type = infcx.resolve_vars_if_possible(decl.hidden_type); - // Check that RPITs are only constrained in their outermost - // function, otherwise report a mismatched types error. - if let hir::Node::Item(hir::Item { - kind: - hir::ItemKind::OpaqueTy(hir::OpaqueTy { - origin: - hir::OpaqueTyOrigin::AsyncFn(parent) - | hir::OpaqueTyOrigin::FnReturn(parent), - .. - }), - .. - }) = infcx.tcx.hir().get_by_def_id(opaque_type_key.def_id.expect_local()) && - parent.to_def_id() != body.source.def_id() - { - infcx - .report_mismatched_types( - &ObligationCause::misc( - hidden_type.span, - infcx.tcx.hir().local_def_id_to_hir_id( - body.source.def_id().expect_local(), - ), - ), - infcx.tcx.mk_opaque(opaque_type_key.def_id, opaque_type_key.substs), - hidden_type.ty, - ty::error::TypeError::Mismatch, - ) - .emit(); - } trace!( "finalized opaque type {:?} to {:#?}", opaque_type_key, |
