github rust-lang/rust-analyzer 2025-12-22

9 hours ago

Commit: 9d58a93
Release: 2025-12-22 (v0.3.2727)

New Features

  • #21295, #21307 use GC instead of salsa interning for solver types (salves 648 MB and 31 s on self).
  • #21240 show parameter inlay hints for missing arguments.
  • #20996 add "Insert explicit method call derefs" assist.
  • #21309 add LSP extension to get failed obligations for a given function.
  • #21282 add crate_attrs field to rust-project.json.

Fixes

  • #21270 (first contribution) fix "file emitted multiple times" errors in rust-analyzer scip.
  • #21276 fix reference-style links in hover.
  • #21304 strip invisible delimiters in MBE.
  • #21262 use the HIR to check for used locals.
  • #21032 don't add semicolons to unit-returning function calls in argument lists.
  • #21278 suggest &mut T for &T in completions.
  • #21289 suggest &T for &&T in completions.
  • #21212 use variant name as variable in postfix completions for enums.
  • #21166 support this parameter name in closures.
  • #21277 fix reference stripping in expected type analysis.
  • #21291 fix expected type analysis for match arms.
  • #20438 fix guessing of braces for renamed macros.
  • #21293 don't offer move_guard in blocks with multiple statements.
  • #21258 support add_return_type for functions defined inside closures.
  • #20576 support nested if-let in merge_nested_if.
  • #20577 fix indent in merge_nested_if.
  • #21266 keep expression in replace_let_with_if_let.
  • #21272 prepend workspace root to target file for sysroot metadata.
  • #21273 fix method resolution for incoherent impls when there are two sysroots in the crate graph.

Internal Improvements

  • #21316 call out feature freeze on IDE assists.
  • #21314 add "Use of AI tools" section to developer docs.
  • #21279 add special ErasedFileAstId used to bypassing downmapping.
  • #21298 pretty-print attributes up to cfg(false).
  • #21284 bump rustc crates.
  • #20439 add hint to use T![] instead of T! {}.
  • #20472 drop style guide entry about precondition checks.

See also the changelog post.

Don't miss a new rust-analyzer release

NewReleases is sending notifications on new releases.