github rust-lang/rust-analyzer 2026-07-20

latest release: nightly
one day ago

Commit: cac0779
Release: 2026-07-20 (v0.3.2981)

New Features

  • #22283 early late classification of lifetimes.
  • #22791 re-enable auto trait inference.
  • #22777 treat library files as truly immutable.
  • #22464 hide private fields on hover depending on context.
  • #22811 add capture hints to coroutines.
  • #22813 add return-outside-of-function diagnostic.

Performance Improvements

  • #22862 shrink hir::Expr from 56 to 48 bytes.
  • #22860 pack ExprOrPatId when stored and shrink ScopeData.
  • #22794 avoid an allocation when converting case in flyimport.

Fixes

  • #22634 (first contribution) don't panic when restarting flycheck with an empty handle list.
  • #22822 (first contribution) fix panic on functions and proc macros with the same name.
  • #22865 (first contribution) respawn proc macro servers after stopping them.
  • #22784 don't #[macro_use] the sysroot crates.
  • #22861 record expressions in types in ExprScope.
  • #22773 resolve non-plain paths in blocks correctly.
  • #22747 reimplement the crate_supports_no_std syntactic heuristic.
  • #22832 correctly record binding owners in coroutines.
  • #22825 respect hover.documentation.enable.
  • #22852 eagerly normalize IntoFuture::Output for await.
  • #22483 don't assume array destructuring assignments with rest pattern are constant-sized.
  • #22857 handle enum variants in next-solver generics.
  • #22849 fix syntax-bridge panic when splitting float.
  • #22583 update render_const_using_debug_impl for recent standard library changes.
  • #22804 don't update existing parent inference results for anonymous consts.
  • #22810 stop leaking bound variables from skipped binders.
  • #22855 fix InferenceContext:identity_args using the wrong DefId.
  • #22827 fix panic on type bounds after macro calls caused by parser recovery.
  • #22789 fix invalid pattern_matching_variant lowering due to recovery.
  • #22759, #22782 use quote! to avoid some unwrap panics in SyntaxFactory.
  • #22792 preserve whitespace from macro inputs in extract_variable.
  • #22819 only update the status if the message is different when the client doesn't support experimental/serverStatus.

Internal Improvements

  • #22780 remove #[salsa::cycle] support from #[query_group].
  • #22814 migrate HirDatabase::borrowck away from #[query_group].
  • #22548 add a few more database lifetimes.
  • #22534 turn BlockLoc into a tracked struct, take 3.
  • #22779 remove the TreeMutator from SourceChangeBuilder.
  • #22815 remove manual lifetime extension.
  • #22778 split out a session construct.
  • #22793 use Result for the lsp_server::Response payload.

See also the changelog post.

Don't miss a new rust-analyzer release

NewReleases is sending notifications on new releases.