This repository was archived by the owner on May 28, 2025. It is now read-only.
Commit 5be2110
committed
Auto merge of rust-lang#132325 - lcnr:damn-son, r=<try>
rework winnowing to sensibly handle global where-bounds
this is somewhat weird, but it at least allows us to mirror this behavior in the new solver:
- trivial builtin-impls
- non-global where-bounds, bailing with ambiguity if at least one global where-bound exists
- object ☠️ + alias-bound candidates
- merge candidates ignoring global where-bounds
This is a different approach from rust-lang#124592 which maintains the "if there are global where-bounds, don't guide type inference using non-global where-bounds" behavior, hopefully avoiding the breakage and means we use guidance from non-global where-bounds in fewer, instead of in more cases.
r? `@compiler-errors`File tree
3 files changed
+265
-305
lines changed- compiler/rustc_trait_selection/src
- traits/select
- tests/ui/const-generics/occurs-check
3 files changed
+265
-305
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
0 commit comments