Auto merge of #117415 - matthiaskrgr:rollup-jr2p1t2, r=matthiaskrgr
Rollup of 7 pull requests Successful merges: - #116862 (Detect when trait is implemented for type and suggest importing it) - #117389 (Some diagnostics improvements of `gen` blocks) - #117396 (Don't treat closures/coroutine types as part of the public API) - #117398 (Correctly handle nested or-patterns in exhaustiveness) - #117403 (Poison check_well_formed if method receivers are invalid to prevent typeck from running on it) - #117411 (Improve some diagnostics around `?Trait` bounds) - #117414 (Don't normalize to an un-revealed opaque when we hit the recursion limit) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
31bc7e2c47
31 changed files with 288 additions and 151 deletions
|
@ -230,17 +230,14 @@ impl<'cx, 'tcx> FallibleTypeFolder<TyCtxt<'tcx>> for QueryNormalizer<'cx, 'tcx>
|
|||
Reveal::All => {
|
||||
let args = data.args.try_fold_with(self)?;
|
||||
let recursion_limit = self.interner().recursion_limit();
|
||||
|
||||
if !recursion_limit.value_within_limit(self.anon_depth) {
|
||||
// A closure or coroutine may have itself as in its upvars.
|
||||
// This should be checked handled by the recursion check for opaque
|
||||
// types, but we may end up here before that check can happen.
|
||||
// In that case, we delay a bug to mark the trip, and continue without
|
||||
// revealing the opaque.
|
||||
self.infcx
|
||||
let guar = self
|
||||
.infcx
|
||||
.err_ctxt()
|
||||
.build_overflow_error(&ty, self.cause.span, true)
|
||||
.delay_as_bug();
|
||||
return ty.try_super_fold_with(self);
|
||||
return Ok(Ty::new_error(self.interner(), guar));
|
||||
}
|
||||
|
||||
let generic_ty = self.interner().type_of(data.def_id);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue