-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
life without region uniquification #127
Comments
We should fix this by supporting OR-region constraints |
This was referenced Jan 29, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Region uniquification during canonicalization prevents us from caching parts of the query input, meaning that we have to walk the entire type. This results in hangs, e.g. for closures if a type is both an upvar and in the signature. It's known to affect
itertools
so we likely can't avoid it. Trying to reinstate the type length limit in rust-lang/rust#125507 ended up causing breakage for multiple projects, so we've reverted it in rust-lang/rust#127670.To handle the crates affected by the type length limit, the new solver has to be able to cache components during canonicalization, forcing us to disable region uniquification. As MIR borrowck will continue to uniquify regions itself, we'll now have to manually maintain the invariant that if some goal
G
holds, thenuniquified(G)
also holds. At least for allG
without non-region inference variables.The text was updated successfully, but these errors were encountered: