Changelog #337

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.