Changelog #298
Commit: 9db0550
Release: 2025-08-11 (v0.3.2577)
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.
New Features
-
#20420(first contribution) add config option to exclude locals from document symbol search.
Fixes
-
#20381check expected type for assignments in completions. -
#20382correctly go toimpl Fromfrominto()even inside macros. -
#20387do not remove the original token when descending into derives. -
#20412properly handle names matching identifiers ingenerate_function. -
#20418fixextract_expressions_from_format_stringonwrite!calls. -
#20354remove no-op calls inremove_dbg. -
#20384fix external docs URL for exported macros.
Internal Improvements
-
#20417(first contribution) fix parsing of trait bound polarity andfor-binders. -
#20385migrateexpand_glob_importassist toSyntaxEditor. -
#20373generate anast::Module, notString, inextract_module. -
#20383removetedfromreplace_named_generic_with_impl. -
#20380removeadd_attrfromedit_in_placebecause it useted. -
#20409addwrite!andwriteln!tominicore. -
#20400disable error reporting when clamping a position. -
#20393fix non-LSP compliantResponsedefinition. -
#20392report the incorrect payload when failing to deserialize LSP messages. -
#20389slim down compile-time artifact progress reports.