Skip to content

Releases: rust-lang/rust-analyzer

nightly

nightly Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Jul 01:09
cac0779
Merge pull request #22759 from Wilfred/fix/syntax-factory-mapping-unw…

2026-07-13

Choose a tag to compare

@github-actions github-actions released this 13 Jul 04:44
ffcdbbd

Commit: ffcdbbd
Release: 2026-07-13 (v0.3.2971)

New Features

  • #22734 add quick fix for array length mismatch.

Performance Improvements

  • #22766 share same proc macro servers between workspaces and use two processes.

Fixes

  • #22770 (first contribution) clamp cttz const eval result to type width.
  • #22654 improve #[doc = macro!()] expansion.
  • #22744 don't complete ..Default::default() when implementing Default.
  • #22736 fix panic in merge_imports on trailing path separator.
  • #22707 fix MIR lowering crash with error types.
  • #22749 fix crash in generate_function with unresolved module.
  • #22751 handle #[cfg] in tail expression macros even better.
  • #22683 support Cargo 1.97 CARGO_RESOLVER_LOCKFILE_PATH setting.
  • #22735 fix proc macros TokenStream::from_str for doc comments.
  • #22741 add parentheses when adding reference to dyn 'a + B.
  • #22535 prettify associated consts of trait defined by a macro.
  • #22726 suggest code action fixes even if their range is elsewhere.
  • #22405 recurse into container expressions for unused-must-use.
  • #22768 handle $ in onEnter.

Internal Improvements

  • #22728 remove dead NavigationTarget::docs field.
  • #22719 remove some more ExpandDatabase queries.
  • #22729 migrate ExpandDatabase::{expansion_,real_,}span_map queries.
  • #22733 make expand_speculative a method on MacroCallId.
  • #22717 simplify fn_macro::register_builtin!.
  • #22739 remove ExpandDatabase.
  • #22746 remove cycle_{fn,initial} support from #[query_group].
  • #22745 remove DefDatabase.
  • #22774 remove Intern::Database and Lookup::Database associated types.
  • #22764 use Expr::parse instead of SourceFile::parse in ast::make.
  • #22748 remove unnecessary clone_for_update.
  • #22581 log a message when cache priming completes.
  • #22755 support goards in match_ast!.
  • #22753 bring lsp_server::Response closer to the spec.
  • #22635 bump gen-lsp-types.
  • #22750 fix new Clippy lints.

See also the changelog post.

2026-07-06

Choose a tag to compare

@github-actions github-actions released this 06 Jul 07:58
7ae18ed

Commit: 7ae18ed
Release: 2026-07-06 (v0.3.2963)

New Features

  • #22433 (first contribution) add union-pat-has-rest diagnostic.
  • #22665 (first contribution) add yield-outside-of-coroutine diagnostic.
  • #22679 add cargo.configPath setting.

Performance Improvements

  • #22709 (first contribution) reduce parser joint token allocation size.
  • #22711 hoist attribute qualifier segment computation.
  • #22708 remove unused StaticIndexedFile::inlay_hints SCIP field.

Fixes

  • #22706 (first contribution) fix const resolution in array lengths.
  • #22649 (first contribution) fix nvim-lsp configuration example.
  • #22582 only run Drop::drop when implemented.
  • #22675 handle more instances of #[cfg] during lowering.
  • #22619 skip impls on types with errors during method resolution.
  • #22673 fix handling of coroutine parameters.
  • #22646 fix crash while lowering consts with associated types.
  • #22715 fix crash while invoking completions inside macro calls.
  • #22705 fix crash in extract_variable with unresolved macro call.
  • #22613 fix panic in convert_tuple_struct_to_named_struct on nested patterns for recursive enum.
  • #22674 fix some panics in unwrap_return_type, remove_underscore and promote_local_to_const.
  • #22488 skip associated consts with defaults and remove type bounds in generate_blanket_trait_impl.
  • #22231 support more than two arms in replace_match_with_if_let.
  • #20362 add missing generic parameters in generate_default_from_enum_variant.
  • #22595 exclude leading and trailing trivia in SCIP definition ranges.
  • #22676 don't use metadata_extra_args with the sysroot.
  • #22703 include walkthrough_create_project into the VSIX.

Internal Improvements

  • #22685 (first contribution) bump itertools.
  • #22639, #22667 remove input queries from #[query_group].
  • #22700 remove #[salsa::lru] support in #[query_group].
  • #22702, #22704 remove #[salsa::invoke_interned] support from #[query_group].
  • #22689 inline ExpandDatabase::expand_proc_macro into its caller.
  • #22699 remove ExpandDatabase::proc_macro_span in favor of the underlying function.
  • #22485 remove clone_for_update from ide-ssr.
  • #22668 add SyntaxElement::tree_top.
  • #22690 fix non-UTF-8 string in a smol_str test.
  • #22684, #22727 document some less-known features.
  • #22666 disallow AI usage for E-easy and E-has-instructions issues.

See also the changelog post.

2026-06-29

Choose a tag to compare

@github-actions github-actions released this 29 Jun 04:04
972c4e7

Commit: 972c4e7
Release: 2026-06-29 (v0.3.2955)

New Features

  • #22466 add mut-ref-in-imm-ref-pat diagnostic.
  • #22645 offer quick fix adding .await for type_mismatch.

Performance Improvements

  • #22637 bump salsa (saves 70 MB on analysis-stats self).

Fixes

  • #22640 fix crash when hovering over anonymous consts.
  • #22618 don't parenthesize if-let guards.

Internal Improvements

  • #22633 (first contribution) mark inline_convert_while_ascii as unsafe.
  • #22115 switch from lsp-types to gen-lsp-types.
  • #22658 move ExpandDatabase::syntax_context to HirFileId.

See also the changelog post.

2026-06-22

Choose a tag to compare

@github-actions github-actions released this 22 Jun 03:32
69ccffd

Commit: 69ccffd
Release: 2026-06-22 (v0.3.2946)

New Features

  • #22103 add "Create Rust project" command:

    588125554-92a3f6a0-7d25-4dea-9d46-a58430c63f86.mov

Performance Improvements

  • #22615 don't load unnecessary path dependency files into the VFS.
  • #22627 don't visit nodes multiple times during GC.

Fixes

  • #22591 fix execution of benchmark runnables.
  • #22594 fix bit/byte mismatch during const eval.
  • #22601 fix crash on static constants in array length positions.
  • #22621 don't panic on out-of-range integer literals in const positions.
  • #22599 check for #[cfg] in tail expression macros.
  • #22486, #22617 don't complete .await on receivers of unknown type.

Internal Improvements

  • #22604 don't rely on FxHashSet iteration order in SCIP.
  • #22625 track salsa cancellation time in loop turn warning.
  • #22351 migrate merge_imports to SyntaxEditor.
  • #22516 bye-bye ted.

See also the changelog post.

2026-06-15

Choose a tag to compare

@github-actions github-actions released this 15 Jun 06:20
cc27280

Commit: cc27280
Release: 2026-06-15 (v0.3.2937)

New Features

  • #22549 support excluding enum variants from flyimport.

Performance Improvements

  • #22579 defer initial workspace flycheck until cache priming completes.

Fixes

  • #22575 (fist contribution) don't count ... as a parameter for function pointers.
  • #22566 fix closure capture analysis with destructuring assignments.
  • #22545 make inline_type_alias work on ADT definitions.
  • #22551 handle macro calls in inline_local_variable.
  • #22584 offer inline_macro in macro calls.
  • #22574 use package id as argument to --package if package when not unique.

Internal Improvements

  • #21868 (first contribution) migrate extract_module assist to SyntaxEditor.
  • #22571 (first contribution) remove unnecessary feature flags from tests.
  • #22505 disallow using LLMs for comments and autonomously-filed PRs or issues.
  • #22588 add RFMF funding links.

See also the changelog post.

2026-06-08

Choose a tag to compare

@github-actions github-actions released this 08 Jun 04:51
7ea2b25

Commit: 7ea2b25
Release: 2026-06-08 (v0.3.2929)

New Features

  • #22469 (first contribution) add infer-vars-not-allowed diagnostic.

  • #22512 (first contribution) parse unstable unnamed enum variants.

  • #22448 add "Evaluate Predicate" command:

    597728705-8273a170-caa5-4ab9-8f17-a5cd04944f10.mp4

  • #22481 lower field defaults.

  • #22495 use mimalloc for Windows releases.

Fixes

  • #22520 don't emit "type annotations needed" errors on include_bytes!().
  • #22524 parse | pattern types.
  • #22503 try to improve completion ranking.
  • #22457 dereference LHS in assignments instead of adding &mut in type_mismatch quick fix.
  • #22507 hide ra@gennew inhaly hints.
  • #22508 don't add both drop and pin_drop in add_missing_impl_members.
  • #22519 don't add unused generic parameters in generate_trait_from_impl.
  • #22523 handle mutable access better in extract_function.
  • #22506 kill proc-macro-srv processes on shutdown.
  • #22522 fix test runnables in rust-project.json.

Internal Improvements

  • #22510 simplify mir::ProjectionElem and bring it closer the rustc version.
  • #22533 remove AST types from FoldKind.
  • #22528 improve panic message when FileSourceRootInput is missing.

See also the changelog post.

2026-06-01

Choose a tag to compare

@github-actions github-actions released this 01 Jun 06:54
c5d30e2

Commit: c5d30e2
Release: 2026-06-01 (v0.3.2921)

New Features

  • #22411 add cannot-implicitly-deref-trait-object diagnostic.

Performance Improvements

  • #22493 make MemDocs cheap to clone since it's snapshotted.

Fixes

  • #22473 port block and loop inference from rustc.
  • #22476 only complete functional record update at the end of the literal.
  • #22449 fix an expected analysis regression with enum variants.
  • #22409, #22453 filter out reference completions for generic reference parameters.
  • #22452 prioritize missing fields in pattern completion.
  • #22437 handle macros in extract_module.
  • #22447 fix extract_variable in macro calls.
  • #22498 also consider library features internal.
  • #22426 fix potential panic in CfgDiff formatting.
  • #22342 don't double references with &mut T in add_reference_here.
  • #21566 fix SyntaxContext roots potentially overlapping interneds.

Internal Improvements

  • #22465 improve syntax mapping in for loop desugaring.
  • #22474 intern MIR projections using the new type interning infrastructure.
  • #22477, #22484 replace ast::make with SyntaxFactory in derive_macro, edits, prettify_macro_expansion_ and rename.
  • #22500 always use sysroot crates for proc-macro-srv.
  • #22427 fix inactive region handling in MiniCore.
  • #22501 don't depend on salsa for the proc-macro-srv CI job.
  • #22492, #22502 use 1 CGU for release builds.

See also the changelog post.

2026-05-25

Choose a tag to compare

@github-actions github-actions released this 25 May 04:29
de5824b

Commit: de5824b
Release: 2026-05-25 (v0.3.2913)

New Features

  • #22406 (first contribution) add mutable-ref diagnostic.
  • #22424 (first contribution) add array-pattern-without-fixed-length diagnostic.
  • #22404 add cannot-index-into diagnostics.
  • #22416 support excluding subitems from completions.

Performance Improvements

  • #22322 improve incrementality for modules.

Fixes

  • #22432 (first contribution) filter package-scoped features in flycheck.
  • #22430 (first contribution) saturate float to uint cast in const eval.
  • #22415 (first contribution) allow wildcard parameters in foreign function declarations.
  • #22252 refactor handling of generic parameters in hir::Type.
  • #22396 support named consts in range pattern types.
  • #22392 don't try autoref during method probe in path mode.
  • #22385 auto-import enum variants.
  • #22425 expected tuple struct pattern field in expected type completions.
  • #22397 complete macro paths in macro calls.
  • #22399 fix ref_match completions in macro calls.
  • #22408 don't complete semicolon in match expression.
  • #22419 use grouped annotation in add_label_to_loop.
  • #22369 use wildcard on sad path in replace_if_let_with_match with guard.
  • #22383 return a specific error for unimplemented built-in macros.

Internal Improvements

  • #22420 clean up bidirectional proc macro server protocol.

See also the changelog post.

2026-05-18

Choose a tag to compare

@github-actions github-actions released this 18 May 02:50
ce81cf6

Commit: ce81cf6
Release: 2026-05-18 (v0.3.2904)

VS Code Extension Publishing Issue

This release is not available on the VS Code Marketplace and OpenVSX due to an infrastructure issue.
Until it's fixed, you can still download it from the GitHub release page.

New Features

  • #22347, #22355, #22372, #22379, #22380, #22378 add invalid-range-pat-type, non-exhaustive-record-pat, method-call-illegal-sized-bound, fru-in-destructuring-assignment, cannot-be-dereferenced and explicit-drop-method-use diagnostics.
  • #22082, #22368, #22384 add pattern type support.

Performance Improvements

  • #22329 encode the name instead of index in EnumVariantId for better incrementality.
  • #22191 use the LineIndex in RootDatabase in the proc macro server.

Fixes

  • #22358, #22381 show const and unsafe in signature help.
  • #22357 show Run lens for fn main in bench targets.
  • #22363 fix false positive trait-impl-missing-assoc_item with Self: Sized bounds.
  • #22376 hide duplicate completions originating from Deref chains.
  • #22367 fix spurious reference completions.
  • #22386 don't complete :: before existing :: in paths.
  • #22354 don't drop path segment in qualify_path.
  • #22344 handle macro calls in extract_function.
  • #22335 add parameter to the closures produced by replace_method_eager_lazy.

Internal Improvements

  • #22352 (first contribution) migrate inline_call assist to `SyntaxEditor.
  • #22313 refactor visiting and tracking of placeholder types.
  • #22328 remove interning from #[query_group].
  • #22119 remove some usages of DbInterner::conjure.
  • #22391 ignore workspace/diagnostic/refresh in slow tests.

See also the changelog post.