Skip to content

Commit

Permalink
Auto merge of #122317 - compiler-errors:fulfill-method-probe, r=lcnr
Browse files Browse the repository at this point in the history
Use fulfillment in method probe, not evaluation

This PR reworks method probing to use fulfillment instead of a `for`-loop of `evaluate_predicate` calls, and moves normalization from method candidate assembly into the `consider_probe`, where it's applied to *all* candidates. This last part coincidentally fixes rust-lang/rust#121643 (comment).

Regarding *why* this large rewrite is done: In general, it's an anti-pattern to do `for o in obligations { evaluate(o); }` because it's not compatible with the way that the new solver emits alias-relate obligations which constrain variables that may show up in other predicates.

r? lcnr
  • Loading branch information
bors committed Apr 23, 2024
2 parents b217e97 + ce56834 commit c9e356a
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit c9e356a

Please sign in to comment.