You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
the general idea here is a minimal form of assumptions on binders which:
Only has assumptions for the binder around coroutine witness types
Doesn't rewrite constraints involving placeholders to be constraints involving smaller universe variables
this avoids a lot of the complexity with the full assumptions on binders design and avoids soundness issues from assuming more things without them ever being proven.
getting a first version of this flag will require:
checking which version of abby is enabled when entering binders and changing behaviour for the binder when entering witness types only
fix up a bunch of the asserts in the eagerly_handle_placeholders logic to no longer assert things about what universe things are (when min_coroutines is in use) as we now won't be fully eagerly handling placeholders in all -Zassumptions-on-binders variants
drop pretty much all of the rewrite rules when using min_coroutines. we want to drop constraints if they hold, and otherwise keep them unchanged and propagated to the root.
dont destructure type outlives constraints into their constituent parts eagerly (cc eagerly destructing type outlives constraints? #23). I'm not sure if this is actually necessary for this to be a useful feature or not. If it isn't then I want to avoid doing this to keep min_coroutines as small as possible. If it does wind up being necessary it can be done we can re-enable it in the future and after we've added support for VisibleForLeakCheck (cc support VisibleForLeakCheck #30)
this issue doesn't cover all of the stuff needed for stabilization of this flag, just what the initial implementation will need to be
the general idea here is a minimal form of assumptions on binders which:
this avoids a lot of the complexity with the full assumptions on binders design and avoids soundness issues from assuming more things without them ever being proven.
getting a first version of this flag will require:
eagerly_handle_placeholderslogic to no longer assert things about what universe things are (whenmin_coroutinesis in use) as we now won't be fully eagerly handling placeholders in all -Zassumptions-on-binders variantsmin_coroutines. we want to drop constraints if they hold, and otherwise keep them unchanged and propagated to the root.VisibleForLeakCheck(cc supportVisibleForLeakCheck#30)this issue doesn't cover all of the stuff needed for stabilization of this flag, just what the initial implementation will need to be