-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
emit ProjectionPredicate
obligations when relating projections
#96912
Conversation
bd0f367
to
5db1bb3
Compare
☔ The latest upstream changes (presumably #97024) made this pull request unmergeable. Please resolve the merge conflicts. |
4ea40a6
to
56d3ee3
Compare
56d3ee3
to
0730fcc
Compare
d92e002
to
275bc1a
Compare
ProjectionPredicate
obligations when relating projectionsProjectionPredicate
obligations when relating projections
r? @jackh726 |
Uh, bors picked up an old comment? @bors treeclosed- |
☔ The latest upstream changes (presumably #98566) made this pull request unmergeable. Please resolve the merge conflicts. |
@BoxyUwU thoughts to schedule this for a types team deep dive? It would nice to have a greater discussion about the direction here (and of the proposed workaround to prevent overflows). I definitely don't feel comfortable approving the workaround by myself, because I do think it locks us into a corner, sort of. |
not familiar with what actually is required for a types team dive but it does seem like a good idea to get peoples opinions on this, esp the workaround for the typenum regression since if we were to stabilize this + that hack we couldnt remove the latter without also removing the former which could break code relying on the inference improvements gained here. |
Going to mark this as a waiting on types team. |
275bc1a
to
431460d
Compare
@bors try |
⌛ Trying commit 431460d4a724b96af190d4bb91a5040a1ba1ab32 with merge ae78d5a6ece2513cec91dad9a182fabcaa5a43d6... |
nvm boxy said she was not yet done |
💔 Test failed - checks-actions |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #96709) made this pull request unmergeable. Please resolve the merge conflicts. |
3d9343b
to
686df5f
Compare
☔ The latest upstream changes (presumably #102324) made this pull request unmergeable. Please resolve the merge conflicts. |
checking this PR, with regard to this comment: is there anything planned (or already discussed) from team Types? cc @rust-lang/types |
Going to mark this as blocked as waiting for non-fatal recursive errors. @lcnr is working on this AFAIK. |
Gonna close this since there is no chance it gets merged any time soon. non fatal recursive errors is unlikely to happen until we get the new solver |
…, r=lcnr Implement `deferred_projection_equality` for erica solver Somewhat of a revival of rust-lang#96912. When relating projections now emit an `AliasEq` obligation instead of attempting to determine equality of projections that may not be as normalized as possible (i.e. because of lazy norm, or just containing inference variables that prevent us from resolving an impl). Only do this when the new solver is enabled
…, r=lcnr Implement `deferred_projection_equality` for erica solver Somewhat of a revival of rust-lang#96912. When relating projections now emit an `AliasEq` obligation instead of attempting to determine equality of projections that may not be as normalized as possible (i.e. because of lazy norm, or just containing inference variables that prevent us from resolving an impl). Only do this when the new solver is enabled
fixes #96230
might also be #89196 need to check
when relating a projection with infer vars emit a
ProjectionPredicate
obligation so when encountering something like<T as Trait<_>>::Assoc eq Foo<u32>
we can avoid erroring incase the_
gets inferred to something which would allow normalizing the projection toFoo<u32>
these changes should be feature gated before merging as the changes to selection are sus but its nice to have CI run with the changes having an effect while working on this