1
Fork 0

Rollup merge of #120950 - compiler-errors:miri-async-closurs, r=RalfJung,oli-obk

Fix async closures in CTFE

First commit renames `is_coroutine_or_closure` into `is_closure_like`, because `is_coroutine_or_closure_or_coroutine_closure` seems confusing and long.

Second commit fixes some forgotten cases where we want to handle `TyKind::CoroutineClosure` the same as closures and coroutines.

The test exercises the change to `ValidityVisitor::aggregate_field_path_elem` which is the source of #120946, but not the change to `UsedParamsNeedSubstVisitor`, though I feel like it's not that big of a deal. Let me know if you'd like for me to look into constructing a test for the latter, though I have no idea what it'd look like (we can't assert against `TooGeneric` anywhere?).

Fixes #120946

r? oli-obk cc ``@RalfJung``
This commit is contained in:
Matthias Krüger 2024-02-12 23:18:53 +01:00 committed by GitHub
commit 15896bdd18
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 86 additions and 39 deletions

View file

@ -11,7 +11,7 @@ use rustc_span::Span;
pub fn provide(providers: &mut Providers) {
providers.upvars_mentioned = |tcx, def_id| {
if !tcx.is_closure_or_coroutine(def_id) {
if !tcx.is_closure_like(def_id) {
return None;
}