Changelog #298

Commit: 4e147e7
Release: 2025-08-11 (v0.3.2571)

An Update on the Next Trait Solver

We are very close to switching from chalk to the next trait solver, which will be shared with rustc. chalk is de-facto unmaintained, and sharing the code with the compiler will greatly improve trait solving accuracy and fix long-standing issues in rust-analyzer. This will also let us enable more on-the-fly diagnostics (currently marked as experimental), and even significantly improve performance.

However, in order to avoid regressions, we will suspend the weekly releases until the new solver is stabilized. In the meanwhile, please test the pre-release versions (nightlies) and report any issues or improvements you notice, either on GitHub Issues, GitHub Discussions, or Zulip.

Fixes

  • #20381 check expected type for assignments in completions.

  • #20382 correctly go to impl From from into() even inside macros.

  • #20387 do not remove the original token when descending into derives.

  • #20412 properly handle names matching identifiers in generate_function.

  • #20418 fix extract_expressions_from_format_string on write! calls.

  • #20354 remove no-op calls in remove_dbg.

  • #20384 fix external docs URL for exported macros.

Internal Improvements

  • #20417 (first contribution) fix parsing of trait bound polarity and for-binders.

  • #20419 make flycheck generational.

  • #20385 migrate expand_glob_import assist to SyntaxEditor.

  • #20373 generate an ast::Module, not String, in extract_module.

  • #20383 remove ted from replace_named_generic_with_impl.

  • #20380 remove add_attr from edit_in_place because it use ted.

  • #20409 add write! and writeln! to minicore.

  • #20400 disable error reporting when clamping a position.

  • #20393 fix non-LSP compliant Response definition.

  • #20392 report the incorrect payload when failing to deserialize LSP messages.

  • #20389 slim down compile-time artifact progress reports.