<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/enabling-the-next-generation-trait-solver-on-nightly-qz3paa3se" -->

---
title: Enabling the next-generation trait solver on nightly
description: The Rust compiler team is enabling the next-generation trait solver by default on the nightly channel starting August 22, after nearly four years of...
canonical: https://daily.dev/posts/enabling-the-next-generation-trait-solver-on-nightly-qz3paa3se
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Enabling the next-generation trait solver on nightly | daily.dev
og:description: The Rust compiler team is enabling the next-generation trait solver by default on the nightly channel starting August 22, after nearly four years of...
og:url: https://daily.dev/posts/enabling-the-next-generation-trait-solver-on-nightly-qz3paa3se
og:image: https://api.daily.dev/og/posts/QZ3pAA3sE.png
og:image:alt: Enabling the next-generation trait solver on nightly
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Enabling the next-generation trait solver on nightly

**[Rust](https://daily.dev/sources/rust)** · 6 min read · 13 upvotes · 0 comments

## Summary

The Rust compiler team is enabling the next-generation trait solver by default on the nightly channel starting August 22, after nearly four years of development, ahead of a planned stabilization in the coming months. This is described as the largest single change to the compiler since its initial release, replacing internals responsible for proving where-clauses and normalizing associated types. It fixes over 200 known GitHub issues, changes handling of impl Trait and associated types with higher-ranked lifetimes (affecting crates like bevy and minijinja), and brings major compile-time performance work, with the datafusion crate compiling more than 8x faster. Developers can test it via rustup update nightly and disable it with -Znext-solver=coherence, and are asked to report bugs, regressions, or bad diagnostics via a pinned GitHub issue.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.rust-lang.org/2026/08/21/enabling-next-solver-on-nightly>

## Questions this post answers

### How do I disable the next-generation trait solver on Rust nightly if it breaks my build?

Pass -Znext-solver=coherence to rustc, set RUSTFLAGS=-Znext-solver=coherence, or add it to your project's .cargo/config.toml under rustflags for your target, for example rustflags = ["-Znext-solver=coherence"] under [target.x86_64-unknown-linux-gnu]. This reverts to the old trait solver implementation while still running on nightly.

_daily.dev surfaces compiler changes like this so nightly Rust users aren't caught off guard by breakage._

### When does the new Rust trait solver become available on the nightly channel?

It became accessible on the nightly channel starting Saturday, August 22, after being enabled on the main branch earlier. Before that date, it could still be tested manually by passing -Znext-solver=globally as a command-line argument to rustc. Full stabilization is planned within the following months after nightly testing surfaces remaining issues.

_Tracking compiler rollout timelines on daily.dev helps teams plan upgrades to new Rust toolchains._

### What kind of code breaks or changes behavior with Rust's next-generation trait solver?

Code relying on incorrect type inference around associated types referencing bound lifetimes, such as for<'a> fn(<T as Trait>::Assoc<'a>) patterns, changes behavior; this affected crates like bevy and minijinja. It also fixes previously unnecessary errors and changes recursive impl Trait handling, such as allowing a recursive function returning impl Sized that previously errored. Compile times can also shift significantly, with datafusion compiling over 8x faster.

_daily.dev helps developers catch type-system breakage before it hits their own Rust codebase._

## Similar posts on daily.dev

- [Rust's next-generation trait solver](https://daily.dev/posts/rust-s-next-generation-trait-solver-nvu0dw5xn) · Lobsters · 0 upvotes · 0 comments
- [Changelog \#299](https://daily.dev/posts/changelog-299-c7urnewfy) · rust-analyzer · 0 upvotes · 0 comments
- [How to speed up the Rust compiler in July 2026](https://daily.dev/posts/how-to-speed-up-the-rust-compiler-in-july-2026-rsrjhr5xg) · Lobsters · 2 upvotes · 0 comments

---

Tags: [#rust](https://daily.dev/tags/rust), [#compiler](https://daily.dev/tags/compiler)

[View this post on daily.dev](https://daily.dev/posts/enabling-the-next-generation-trait-solver-on-nightly-qz3paa3se)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Enabling the next-generation trait solver on nightly","url":"https://daily.dev/posts/enabling-the-next-generation-trait-solver-on-nightly-qz3paa3se","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/enabling-the-next-generation-trait-solver-on-nightly-qz3paa3se"},"datePublished":"2026-08-21T15:06:56.153Z","dateModified":"2026-09-13T19:20:48.721Z","description":"The Rust compiler team is enabling the next-generation trait solver by default on the nightly channel starting August 22, after nearly four years of...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/10c030b2429f801a5aed8756bdece9d2?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/10c030b2429f801a5aed8756bdece9d2?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Rust","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Rust","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/8fb725c4025846578f65c8eada2fc5b8","url":"https://daily.dev/sources/rust"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/enabling-the-next-generation-trait-solver-on-nightly-qz3paa3se","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":13},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rust,compiler","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Rust","item":"https://daily.dev/sources/rust"},{"@type":"ListItem","position":3,"name":"Enabling the next-generation trait solver on nightly"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/enabling-the-next-generation-trait-solver-on-nightly-qz3paa3se#faq","mainEntity":[{"@type":"Question","name":"How do I disable the next-generation trait solver on Rust nightly if it breaks my build?","acceptedAnswer":{"@type":"Answer","text":"Pass -Znext-solver=coherence to rustc, set RUSTFLAGS=-Znext-solver=coherence, or add it to your project's .cargo/config.toml under rustflags for your target, for example rustflags = [\"-Znext-solver=coherence\"] under [target.x86_64-unknown-linux-gnu]. This reverts to the old trait solver implementation while still running on nightly. daily.dev surfaces compiler changes like this so nightly Rust users aren't caught off guard by breakage."}},{"@type":"Question","name":"When does the new Rust trait solver become available on the nightly channel?","acceptedAnswer":{"@type":"Answer","text":"It became accessible on the nightly channel starting Saturday, August 22, after being enabled on the main branch earlier. Before that date, it could still be tested manually by passing -Znext-solver=globally as a command-line argument to rustc. Full stabilization is planned within the following months after nightly testing surfaces remaining issues. Tracking compiler rollout timelines on daily.dev helps teams plan upgrades to new Rust toolchains."}},{"@type":"Question","name":"What kind of code breaks or changes behavior with Rust's next-generation trait solver?","acceptedAnswer":{"@type":"Answer","text":"Code relying on incorrect type inference around associated types referencing bound lifetimes, such as for<'a> fn(<T as Trait>::Assoc<'a>) patterns, changes behavior; this affected crates like bevy and minijinja. It also fixes previously unnecessary errors and changes recursive impl Trait handling, such as allowing a recursive function returning impl Sized that previously errored. Compile times can also shift significantly, with datafusion compiling over 8x faster. daily.dev helps developers catch type-system breakage before it hits their own Rust codebase."}}]}
```

