« All posts

Rust Enables Next-Gen Trait Solver by Default on Nightly

Rust's next-generation trait solver is now default on nightly, fixing 200+ bugs and delivering major compile-time performance gains.

After nearly four years of development, the Rust team has enabled the next-generation trait solver by default on the nightly channel. Described as the largest single change to the compiler since Rust's initial release, it rewrites core type-checking machinery including where-clause proving and associated type normalization, with full stabilization planned in the coming months.

The new solver already fixes over 200 known GitHub issues, makes handling of opaque types (RPIT, the unstable TAIT, and Return Type Notation) far more consistent, and removes incorrect type inference around higher-ranked associated types that affected crates like bevy and minijinja. It also clears the path for new implicit trait bounds such as Move and Forget and for fixing remaining type-system unsoundnesses.

Compile-time performance was a major focus: the new implementation had cases of quadratic or even exponential slowdowns compared to the old solver, but recent weeks of optimization work have closed much of that gap, with crates like datafusion now compiling over 8x faster. The change becomes the nightly default starting Saturday, August 22, though it can already be tested earlier via the -Znext-solver=globally flag. Developers are encouraged to update with rustup update nightly, test existing projects, and report regressions on the pinned tracking issue.

This synthesis was produced from its source by AI; there is no human editor or manual review step. How we work