github rust-lang/rust-analyzer 2025-03-17

latest release: nightly
one day ago

Commit: b0632f7
Release: 2025-03-17 (v0.3.2345)

Announcement

This release brings two major changes, which might make it slightly spicier than usual.

The first is upgrading to the latest version of salsa, the incremental evaluation framework used by rust-analyzer.
This will make it possible to implement parallel evaluation and persistency in the future.

The second change is to use salsa for the crate graph, making it incremental.
Adding or removing a dependency, or editing a build script or proc macro, will now invalidate only the affected crates instead of the entire workspace.

New Features

  • #19079, #19332 warn when a rename will change the meaning of the program:

    Screen.Recording.2025-02-02.015127.mp4

  • #18964 put a new batch of salsa on rust-analyzer.

  • #19337 put salsa on the crate graph.

  • #19271 add "Convert for into while let" assist.

Fixes

  • #19344 add icons to VS Code views:

  • #19252 fix syntax fixup producing invalid punctuation.

  • #19333 fix diagnostics being cleared right after being received.

  • #19330 normalize projections in evaluated const display and layout calculation.

  • #19363 display varargs in completion detail.

  • #19325 rank ADT constructors as such for completion scoring.

  • #19326 add missing name-ref parents to syntactic highlighting.

  • #19327 fix path macro hygiene.

  • #19311 log build script error output for Cargo projects.

  • #19351 don't panic when the crate graph isn't ready.

  • #19356 avoid recursively debug printing crates.

Internal Improvements

  • #19314 (first contribution) impl HasSource for VariantDef.
  • #19367 drop legacy salsa.
  • #19354 prepare for Return Type Notation (RTN) and add a diagnostic.
  • #19232 bump chalk to get support for async closures.
  • #19305 vendor query-group-macro in rust-analyzer.
  • #19364 add missing with_durability calls.
  • #19368 remove CrateGraphBuilder::iter_mut.
  • #19236 switch to the 2024 edition.
  • #19369 do not error out for actions with no data to resolve.
  • #19366 remove legacy SyntaxContextId re-export.
  • #19228 split up some ADT queries.
  • #19355 render root syntax contexts more clearly.
  • #19343 make GenericParamsCollector::type_or_consts private.
  • #19328 run proc-macro server tests in a separate CI job.
  • #19334 remove generated mdbook files.

See also the changelog post.

Don't miss a new rust-analyzer release

NewReleases is sending notifications on new releases.