Treat identity region outlives as true - #161963
Conversation
|
Just found out this is a tracked issue - rust-lang/project-assumptions-on-binders#19 |
| .reachable_from(r) | ||
| .into_iter() | ||
| // FIXME(-Zassumptions-on-binders): 'static may have been an input region canonicalized to something else is that important? | ||
| // FIXME(-Zassumptions-on-binders): do we need to adding the reflexive edge here? |
There was a problem hiding this comment.
I think this is a very relevant FIXME that should probably get deleted/commented on/generally addressed!
in general I'm unsure of where this should be handled, where you're handling it now is like, "sure I guess, idk, that works", but yeah, haha.
anyway, gonna need some time to properly review this (and I'm a bit busy today). I got infodumped on by boxy for how abby works for the purposes of implementing the DSL, and have a mental model of abby, but haven't actually looked at the code itself much yet. But, looking at pull_region_outlives_constraints_out_of_universe now I'm like waiwaiwait there's a complication of handling some annoying edge case present in my mental model that is not present in the code, I gotta figure out what's happening with more coffee :P
|
Gonna close this in favour of #161988 since it's a more general fix. discussed on zulip: #t-types/assumptions-on-binders > handling reflexive constraints thx for looking into abby stuff :3 and the DSL is indeed sick 😌 |
Fixes #161733
We rewrite region outlives to
Orby combining upper bounds of one region and lower bounds of the other. However, regions in identity region outlives may have no relation to other regions. So it was considered as false.An alternative is to eagerly handle identity region outlives at the construction sites. That's a lot and covering all current and future creation is difficult.
The real purpose of this PR is to play with the new DSL :3
r? @khyperia