Releases: rust-lang/rust-analyzer
Releases Β· rust-lang/rust-analyzer
nightly
Merge pull request #21571 from Wilfred/check_type_names fix: Stale diagnostics with rust-project.json and rustc JSON
2026-02-02
Commit: 7cb789d
Release: 2026-02-02 (v0.3.2777)
New Features
Fixes
#21564fix upvar analysis of nested closures and re-enableunused_variablesandunused_mut.#21527match=>and==aftermetain macros.#21528handleSelf::EnumVariantandSelfon traits in doclinks.#21533fix panic when an opaque was constrained to an impossible type in method autoderef.#21555clear diagnostics on panic.#21542complete inferred types in statics.#21495completeelsebefore tuples.#21513use binding name for the new function inextract_function.#21522add semicolon intoggle_macro_delimiter.#21514handlecontinueinconvert_range_for_to_while.#21534don't panic if spawning the workspace discovery command fails.
Internal Improvements
#21548make JSON and postcard protocols explicit, drop genericCodec.#21410handle cancellation in bidirectional proc macro calls.
See also the changelog post.
2026-01-26
Commit: 2532c48
Release: 2026-01-26 (v0.3.2769)
Fixes
#21497(first contribution) allow const evaluation errors in method resolution.#21491insert type variables for statics.#21490don't mix up regular and built-in derives in "Expand macro recursively".#21485avoid emitting redundant block inmove_guard.#21499don't offerapply_demorganonif let.
Internal Improvements
#21492fix parameter capture and drop order in async functions.#21385parallelize proc macro expansion.#21479add tests for bidirectional communication in proc macro expansion.#21509add tests for renaming keywords in imports.
See also the changelog post.
2026-01-19
Commit: 080e703
Release: 2026-01-19 (v0.3.2761)
New Features
#21483trigger flycheck when non-workspace files get modified.
Fixes
#21475(first contribution) look up flycheck by ID instead of vector index.#21462sync cast checks torustconce again.#21456makenaked_asm!()always return!.#21364fix lowering crash with supertrait predicates.#21445disableunused_variablesandunused_mutwarnings.#21459hide macro-generated renamed imports from symbol index.#21464respect re-exports in path symbol search.#21484don't show sysroot dependencies in symbol search.#21451completemutandrawon&x.foo().#21442keep+#[cfg]+and+#[track_caller]+afterextract_function.#21412keep guard expression inmove_guard.#20946offerconvert_to_guarded_returnonif let ... else.#21465don't offerremove_parentheseson(2 as i32) < 3.
Internal Improvements
#21458,#21443migrateunwrap_blockandgenerate_mut_trait_implassists toSyntaxEditor.#21466removepostcard-legacyproc macro server protocol.#21468improveworkspace.discoverConfigdocs.
See also the changelog post.
2026-01-12
Commit: dd48777
Release: 2026-01-12 (v0.3.2753)
New Features
#21415,#21446allow Rust paths in symbol search.#18043support configuring flycheck usingworkspace.discoverConfig.
Performance Improvements
#21407reuse scratch allocations fortry_evaluate_obligations.
Fixes
#21414(first contribution) include traits defined in other crates in flyimport.#21436(first contribution) handle#[ignore = "reason"]on tests.#21405(first contribution) supportSpan::lineandSpan::columnin proc macro expansion.#21416supportSpan::byte_rangein proc macro expansion.#21421fix recursive built-in derive expansion.#21399properly lowerSelfOnlypredicates.#21434remove code made redundant by method resolution rewrite.#21432fix missing lifetimes diagnostics with function pointers.#21420ignore escapes when string highlighting is disabled.
Internal Improvements
#21438,#21439add integration test infrastructure to proc macro server.#21433include private definitions in generated docs.
See also the changelog post.
2026-01-05
Commit: 6a1246b
Release: 2026-01-05 (v0.3.2743)
New Features
#21376allow finding references from doc comments.#21308add configuration options to override thetest,benchanddoctestsubcommands.#21370add #[rust_analyzer::macro_style()] attribute to control macro completion brace style.
Performance Improvements
#21362,#21363compress token trees to reduce memory usage (saves 120 MB onself).#21396only compute lang items for#![feature(lang_items)]crates.#21390pre-allocate interner storage with 64 KB of data or 1024 elements.#21391reduceimpl_signaturequery dependencies in method resolution.
Fixes
#21374(first contribution) suppressnon_camel_case_typeslint for+#[repr(C)]+structs and enums.#21403suppress false positive missing associated item diagnostics when specialization is used.#21397fixSpan::source_textin proc macro expansion.#21377,#21400supportSpan::fileandSpan::local_filein proc macro expansion.#21393add location links for generic parameter type hints.#21375fix incorrectdynhint inimpl Tr for.#21361ignoretry_into_prefix when suggesting a name.
Internal Improvements
#21367add anupvars_mentionedthat computes the closure captures.#21369migratemove_arm_cond_to_match_guardassist toSyntaxEditor.#21388remove unnecessaryConstLiteralRefenum.#21401add aREADME.mdtoproc-macro-srv-cli.
See also the changelog post.
2025-12-29
Commit: be6975f
Release: 2025-12-29 (v0.3.2735)
New Features
#21200don't expand built-in derives, treat them specifically instead (saves 180 MB onself).#21337stabilize type mismatch diagnostic.#20193add setting to disable showing rename conflicts.#20741add macro segment completion.
Fixes
#21326keep flycheck generations in sync across multiple workspaces.#21348re-enable fixpoint variance analysis.#21351fix parsing offormat_args!(..., keyword=...).#21358fix type inference when hovering on_.#21354fix duplicatedefaultitem in record update syntax.#21330fix indent inconvert_to_guarded_return.#20595fix indent inconvert_iter_for_each_to_for.#20521handlebreakin expected type analysis.#21359prompt the user to add therust-analyzercomponent to the toolchain file.#21297fix LSP configuration request handling.
Internal Improvements
#21249,#21340,#21345implement bidirectional proc macro server messaging prototype.#21335store closures with "tupled" inputs.#21341move library and local root inputs tobase-db.#21344stop using MIRProjectionElemin closure analysis.#21349make token trees no longer generic over the span.#21353pre-allocate some buffers for parsing.#21355reduce channel lock contention for drop threads.#21357dropAstIdMapasynchronously.#21356collect garbage when quiescient after events.#21334addcargo-macheteCI step.
See also the changelog post.
2025-12-22
Commit: 9d58a93
Release: 2025-12-22 (v0.3.2727)
New Features
#21295,#21307use GC instead ofsalsainterning for solver types (salves 648 MB and 31 s onself).#21240show parameter inlay hints for missing arguments.#20996add "Insert explicit method call derefs" assist.#21309add LSP extension to get failed obligations for a given function.#21282addcrate_attrsfield torust-project.json.
Fixes
#21270(first contribution) fix "file emitted multiple times" errors inrust-analyzer scip.#21276fix reference-style links in hover.#21304strip invisible delimiters in MBE.#21262use the HIR to check for used locals.#21032don't add semicolons to unit-returning function calls in argument lists.#21278suggest&mut Tfor&Tin completions.#21289suggest&Tfor&&Tin completions.#21212use variant name as variable in postfix completions for enums.#21166supportthisparameter name in closures.#21277fix reference stripping in expected type analysis.#21291fix expected type analysis for match arms.#20438fix guessing of braces for renamed macros.#21293don't offermove_guardin blocks with multiple statements.#21258supportadd_return_typefor functions defined inside closures.#20576support nestedif-letinmerge_nested_if.#20577fix indent inmerge_nested_if.#21266keep expression inreplace_let_with_if_let.#21272prepend workspace root to target file for sysroot metadata.#21273fix method resolution for incoherent impls when there are two sysroots in the crate graph.
Internal Improvements
#21316call out feature freeze on IDE assists.#21314add "Use of AI tools" section to developer docs.#21279add specialErasedFileAstIdused to bypassing downmapping.#21298pretty-print attributes up tocfg(false).#21284bumprustccrates.#20439add hint to useT![]instead ofT! {}.#20472drop style guide entry about precondition checks.
See also the changelog post.
2025-12-15
Commit: 87cf663
Release: 2025-12-15 (v0.3.2719)
New Features
Fixes
#21253(first contribution) don't register twice fordidSaveTextDocument.#21265(first contribution) properly handle multiple lint attributes on the same item.#21238(first contribution) add a stubis_transmutableto avoid panicking.#21226(first contribution) show generic args when displaying traits.#21235pass environment to fix a const generics panic.#21251fix a panic inTypeBound::kind().#21233revert "turnBlockLocinto a tracked struct".#21244support#[rustc_deprecated_safe_2024(audit_that = reason)].#21210fix completion with{{{and_in format strings.#20754keep labels and attributes inconvert_for_to_while_let.#21239add missing parameter inreplace_method_eager_lazy.#21044keep generics ingenerate_fn_type_alias.#21175fix indent intoggle_ignore.#21264don't offerbind_unused_paramin closures.#21256demoteadd_return_type.#21187include overloaded operators in SCIP index.#21221don't needlessly add visibility inno_such_fieldquick fix.
Internal Improvements
#21225giveFileSymbola'dblifetime.#21263use generated names in oldformat_args!lowering.#21174,#21199migrateconvert_iter_for_each_to_forandgenerate_delegate_traitassists toSyntaxEditor.#21209do not create stale expressions in body lowering.#21252fix two Clippy lints.
See also the changelog post.
2025-12-08
Commit: 5e3e9c4
Release: 2025-12-08 (v0.3.2711)
New Features
#21218bump minimum supported toolchain version from 1.78 to 1.90.
Fixes
#21205(first contribution) handle#[cfg]in macro input attribute stripping.#21203add configuration option to hide placeholder type hints.#21222don't complete unit return type in async associated items.#21215don't implement sizedness check viaall_field_tys.#21190,#21195more proc macro server fixes.#21223temporarily disablepostcard.#21198add missing semicolon in incompleteletcompletion.#21183registerdefine_opaquebuilt-in attribute macro.#21164allow multiple active discovery operations.
Internal Improvements
#21182removeTraitEnvironment.#21178makeModuleIdandBlockLoctracked structs.#21208handle lint attribute expansion inhir.#21188fix rustdoc warnings and enable them on CI.#21189removemdbook-tocusage from the book.
See also the changelog post.