-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Fix effect predicates from item bounds in old solver #134638
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
This comment has been minimized.
This comment has been minimized.
51dfecd
to
535bc78
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit, then r=me
<T as Trait>::Assoc::<U>::func(); | ||
//~^ ERROR the trait bound `<T as Trait>::Assoc<U>: ~const Trait` is not satisfied | ||
//[current]~^ ERROR the trait bound `U: ~const Other` is not satisfied | ||
//[next]~^^ ERROR the trait bound `<T as Trait>::Assoc<U>: ~const Trait` is not satisfied |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deeply_normalize_for_diagnostics
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<T as Trait>::Assoc<U>
is not U
. There's no normalization happening here -- that's a rigid alias. This is due to the fact that the proof tree looks like:
<T as Trait>::Assoc<U>: ~const Other
proven via an item bound requires:U: ~const Other
but we don't go deeper in the proof tree visitor b/c the nested obligation is not considered a where clause for the purposes of proof tree visitor. This may be fixed by #132345.
Nothing to change here @bors r=lcnr rollup |
Rollup of 5 pull requests Successful merges: - rust-lang#134638 (Fix effect predicates from item bounds in old solver) - rust-lang#134662 (Fix safety docs for `dyn Any + Send {+ Sync}`) - rust-lang#134689 (core: fix const ptr::swap_nonoverlapping when there are pointers at odd offsets) - rust-lang#134699 (Belay new reviews for workingjubilee) - rust-lang#134701 (Correctly note item kind in `NonConstFunctionCall` error message) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#134638 - compiler-errors:fx-item-bounds, r=lcnr Fix effect predicates from item bounds in old solver r? lcnr
r? lcnr