Closed
Description
This issue tracks the release notes text for #130654.
Steps
- Proposed text is drafted by PR author (or team) making the noteworthy change.
- Issue is nominated for release team review of clarity for wider audience.
- Release team includes text in release notes/blog posts.
Release notes text
The responsible team for the underlying change should edit this section to replace the automatically generated link with a succinct description of what changed, drawing upon text proposed by the author (either in discussion or through direct editing).
# Language
- [use the next-generation trait solver in coherence](https://github.com/rust-lang/rust/pull/130654)
Tip
Use the previous releases categories to help choose which one(s) to use.
The category will be de-duplicated with all the other ones by the release team.
More than one section can be included if needed.
Release blog section
If the change is notable enough for inclusion in the blog post, the responsible team should add content to this section.
Otherwise leave it empty.
### Next-generation trait solver in coherence
Coherence checking, i.e. the part of the compiler making sure that there is no overlap between different trait implementations, the "coherence check", now uses the next-generation trait solver. This changes fixes many subtle inconsistencies, bugs, and even unsoundnesses. TODO links
The next-generation trait solver is a reimplementation of a core component of Rusts type system. It is not only responsible for checking whether trait-bounds - e.g. `Vec<T>: Clone` - hold, but is also used by many other parts of the type system, such as normalization - figuring out the underlying type of `<Vec<T> as IntoIterator>::Item` - and equating types.
TODO @lcnr
cc @lcnr, @compiler-errors -- origin issue/PR authors and assignees for starting to draft text