Skip to content

Commit a70e577

Browse files
Adjust some nits in trait solver text
Co-authored-by: lcnr <rust@lcnr.de>
1 parent 81c2640 commit a70e577

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

posts/2025-01-09-Rust-1.84.0.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ automatically use older library versions compatible with their older toolchain.
6969

7070
See the [documentation](https://doc.rust-lang.org/cargo/reference/rust-version.html#setting-and-updating-rust-version) for more considerations when deciding on an MSRV policy.
7171

72-
### Migration to a new trait solver begins
72+
### Migration to the new trait solver begins
7373

7474
The Rust compiler is in the process of moving to a new implementation for the
7575
trait solver. The next-generation trait solver is a reimplementation of a core
@@ -81,16 +81,15 @@ underlying type of `<Vec<T> as IntoIterator>::Item` - and equating types
8181

8282
In 1.84, the new solver is used for checking coherence of trait impls. At a
8383
high level, coherence is responsible for ensuring that there is at most one
84-
implementation of a trait for a given type, including *globally* in not yet
85-
written or visible code in downstream crates from the current compilation.
86-
87-
This stabilization does include some breaking changes, primarily by fixing some
88-
correctness issues with the old solver. Typically these will show up as new
89-
"conflicting implementations of trait ..." errors that were not previously
90-
reported. We expect instances of this to be rare based on evaluation of
91-
available code through [Crater], as the soundness holes in the previous solving
92-
engine used relatively esoteric code. It also improves our ability to detect
93-
where impls do *not* overlap, allowing more code to be written in some cases.
84+
implementation of a trait for a given type while considering not yet written
85+
or visible code from other crates.
86+
87+
This stabilization fixes a few mostly theoretical correctness issues of the
88+
old implementation, resulting in potential "conflicting implementations of trait ..."
89+
errors that were not previously reported. We expect the affected patterns to be
90+
very rare based on evaluation of available code through [Crater]. The stabilization
91+
also improves our ability to prove that impls do *not* overlap, allowing more code
92+
to be written in some cases.
9493

9594
For more details, see a [previous blog post](https://blog.rust-lang.org/inside-rust/2024/12/04/trait-system-refactor-initiative.html)
9695
and the [stabilization report](https://github.com/rust-lang/rust/pull/130654).

0 commit comments

Comments
 (0)