Repository navigation
Conversation
lcnr
force-pushed
the
only-merge-eq-modulo-regions
branch
2 times, most recently
from
October 7, 2026 10:03
037ac33 to
06ec1ca
Compare
This was referenced Oct 7, 2026
lcnr
force-pushed
the
only-merge-eq-modulo-regions
branch
from
October 7, 2026 10:53
06ec1ca to
0cdc858
Compare
-Znext-solver
10 of 20 tasks
lcnr
force-pushed
the
only-merge-eq-modulo-regions
branch
from
October 8, 2026 07:31
0cdc858 to
232b0ff
Compare
Collaborator
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is for the sake future compatibility, see https://rust-lang.zulipchat.com/#narrow/channel/144729-t-types/topic/resolving.20equal.20regions/near/623504310 for more background. Integrated changes to make this not cause any crater regression, see #133502 (comment) where we did an accidental crater run only for this change.
I would generally like us to not be region dependent at all. For this we need the following:
stalled_onshouldn't have to track region variablesFor this to work candidate merging has to always merge the region constraints of all candidates and can't rely on there being no region constraints. This in turn means that as long as there's an ambiguous candidate, we can't use another candidate which is known to hold, as the ambiguous candidate may end up resulting in fewer region constraints than the existing options.
This change does prevent us from discarding
HeadUsagesof other where-bounds if one where-bound holds without any constraints. This will cause hangs if we allow using a non-rigidParamEnvfor normalization in rust-lang/trait-system-refactor-initiative#210.This also has annoying interactions with weakening impl shadowing. I am really unsure about the long-term plan here. We may revert this change in the future because the tradeoff isn't worth it, unsure. By doing it for now we're future compatible with whatever we want to do.
The cycle handling tests are better tested by https://github.com/lcnr/search_graph_fuzz, having subtle cycle handling tests as ui tests is very brittle and very easily stops testing the right thing.
cc rust-lang/trait-system-refactor-initiative#305, see the added test
r? types