Skip to content

Releases: rust-lang/rust-analyzer

nightly

16 Dec 00:54
b272c35

Choose a tag to compare

nightly Pre-release
Pre-release
Merge pull request #21240 from benodiwal/feat/inlay-hint-missing-argu…

2025-12-15

15 Dec 08:57
87cf663

Choose a tag to compare

Commit: 87cf663
Release: 2025-12-15 (v0.3.2719)

New Features

  • #21243 support #[feature(associated_type_defaults)].
  • #21242 support the 1.93 format_args! lowering.

Fixes

  • #21253 (first contribution) don't register twice for didSaveTextDocument.
  • #21265 (first contribution) properly handle multiple lint attributes on the same item.
  • #21238 (first contribution) add a stub is_transmutable to avoid panicking.
  • #21226 (first contribution) show generic args when displaying traits.
  • #21235 pass environment to fix a const generics panic.
  • #21251 fix a panic in TypeBound::kind().
  • #21233 revert "turn BlockLoc into a tracked struct".
  • #21244 support #[rustc_deprecated_safe_2024(audit_that = reason)].
  • #21210 fix completion with {{{ and _ in format strings.
  • #20754 keep labels and attributes in convert_for_to_while_let.
  • #21239 add missing parameter in replace_method_eager_lazy.
  • #21044 keep generics in generate_fn_type_alias.
  • #21175 fix indent in toggle_ignore.
  • #21264 don't offer bind_unused_param in closures.
  • #21256 demote add_return_type.
  • #21187 include overloaded operators in SCIP index.
  • #21221 don't needlessly add visibility in no_such_field quick fix.

Internal Improvements

  • #21225 give FileSymbol a 'db lifetime.
  • #21263 use generated names in old format_args! lowering.
  • #21174, #21199 migrate convert_iter_for_each_to_for and generate_delegate_trait assists to SyntaxEditor.
  • #21209 do not create stale expressions in body lowering.
  • #21252 fix two Clippy lints.

See also the changelog post.

2025-12-08

08 Dec 10:15
5e3e9c4

Choose a tag to compare

Commit: 5e3e9c4
Release: 2025-12-08 (v0.3.2711)

New Features

  • #21218 bump minimum supported toolchain version from 1.78 to 1.90.

Fixes

  • #21205 (first contribution) handle #[cfg] in macro input attribute stripping.
  • #21203 add configuration option to hide placeholder type hints.
  • #21222 don't complete unit return type in async associated items.
  • #21215 don't implement sizedness check via all_field_tys.
  • #21190, #21195 more proc macro server fixes.
  • #21223 temporarily disable postcard.
  • #21198 add missing semicolon in incomplete let completion.
  • #21183 register define_opaque built-in attribute macro.
  • #21164 allow multiple active discovery operations.

Internal Improvements

  • #21182 remove TraitEnvironment.
  • #21178 make ModuleId and BlockLoc tracked structs.
  • #21208 handle lint attribute expansion in hir.
  • #21188 fix rustdoc warnings and enable them on CI.
  • #21189 remove mdbook-toc usage from the book.

See also the changelog post.

2025-12-01

01 Dec 08:20
d646b23

Choose a tag to compare

Commit: d646b23
Release: 2025-12-01 (v0.3.2702)

New Features

  • #21027 (first contribution) build releases with static CRT for -windows-msvc targets.
  • #21121 add basic support for declarative attribute and derive macros.
  • #20125 display inferred placeholder types inlay hints and use them in "Extract type as type alias".

Fixes

  • #21077 (first contribution) handle more block types and show modifiers in closing brace inlay hints.
  • #21151 don't run cache priming when disabled.
  • #21095 fix iterator completions after auto-deref.
  • #20937 don't suggest duplicate const completions after raw.
  • #20976 fix completion after inner attributes.
  • #21144 fix completion after extern and add crate completion.
  • #21028 complete enum aliases in patterns.
  • #21126 fix parameter info with missing arguments.
  • #20163 use per-token, not global, edition in the parser.
  • #20164 pass the per-token, not global, edition when expanding declarative macros.
  • #20217 use root hygiene for speculative resolution.
  • #21170 support multiple enabled features in #[target_feature].
  • #21159, #21172 rewrite dyn Trait lowering to follow rustc.
  • #20685 support multiple variants in generate_enum_{is,projection}_method.
  • #20967 offer replace_method_eager_lazy on and.
  • #21141 set enclosing_range in the SCIP index.
  • #21131 check snippet capabilities in #[cfg(…)] key completion.
  • #21023 fix handling of cloned elements in SyntaxEditor.
  • #21147 show a dropdown in the UI for rust-analyzer.imports.granularity.group.

Internal Improvements

  • #20892 reintroduce attribute rewrite.
  • #21097, #21145, #21146, #21154 reimplement proc macro server token trees as immutable, to speed up concatenation.
  • #20986, #21133, #21135, #21139, #21179 integrate postcard into the proc-macro server.
  • #21149 use a single query per crate for lang items.
  • #21167 shrink InferenceResult by ~40 bytes.
  • #21169 use new salsa API for infer.
  • #21115 bump rustc crates.
  • #21177 fix SmolStr pretty-printing for Repr::Static.

See also the changelog post.

2025-11-24

24 Nov 05:53
4a2b38f

Choose a tag to compare

Commit: 4a2b38f
Release: 2025-11-24 (v0.3.2693)

New Features

  • #21100 (first contribution) add semantic token modifier for deprecated items.
  • #21068 (first contribution) make dyn inlay hints configurable.
  • #21093 add assist to convert char literals.
  • #20974 rewrite method resolution to follow rustc more closely.
  • #21015 parse cargo config files with origins.

Fixes

  • #21090, #21092 (first contribution) don't offer to remove parantheses around control flow expressions.
  • #21083 complete #[cfg(…)] keys.
  • #20980 remove some deep normalizations from inference.
  • #21084 fix formatting request blocking on the crate_def_map query.
  • #21061 infer array lengths.
  • #21060, #21113, #21026 improve pattern inference.
  • #21036 handle references in postfix completions.
  • #21053 fix panic in extract_function when a variable is used multiple times in a macro call.
  • #21074 support parameters with the same name as a macro in add_missing_impl_members.
  • #21065 fix field completion in irrefutable patterns.
  • #21018 handle comments in private_field quick fix.
  • #21042 import full path in replace_qualified_name_with_use when triggered on the first segment.
  • #21038 support multiple selected variants in generate_from_impl_for_enum.
  • #20559 add digit group separators in add_explicit_enum_discriminant.
  • #21111 fill unguarded arms in add_missing_match_arms.
  • #21047 add #[unsafe(…)] completion.
  • #21048 don't report incorrect_case on #[no_mangle] static items.
  • #21098 load targets of all types with paths outside package root.

Internal Improvements

  • #21094 (first contribution) make DefMap dumps more verbose.
  • #21114 (first contribution) disable the tracing/attributes in some crates.
  • #21011 (first contribution) provide a gdb pretty printer for SmolStr.
  • #21017 speed up cloning of inline SmolStr variants at the expense of heap ones.
  • #21046, #21088 improve start-up speed.
  • #21087 gather trait implementations during cache priming.
  • #21085 produce fewer progress reports on start-up.
  • #21086 reduce allocations in try_evaluate_obligations.
  • #21059 derive ParamEnv from GenericPredicates.
  • #21109 migrate replace_qualified_name_with_use assist to SyntaxEditor.
  • #21057 implement precedence in HIR printing.
  • #21103 record lang item queries in analysis-stats.

See also the changelog post.

2025-11-17

17 Nov 10:19
2efc800

Choose a tag to compare

Commit: 2efc800
Release: 2025-11-17 (v0.3.2683)

Fixes

  • #20985 allow renaming label after add_label_to_loop.
  • #21003 add block on postfix .const completion.
  • #20542 handle guards in replace_if_let_with_match.
  • #20972 parse impl ! {}.

Internal Improvements

  • #21021 fix Docs.rs builds after moving smol_str.

See also the changelog post.

2025-11-10

10 Nov 08:35
21f8445

Choose a tag to compare

Commit: 21f8445
Release: 2025-11-10 (v0.3.2675)

New Features

  • #20565 add "Convert range for to while" assist.

Fixes

  • #20964 canonicalize custom-target.json paths when fetching sysroot metadata.
  • #20961 consider more expression types as in_value.
  • #20963 expand literals with wrong suffixes into LitKind::Err.
  • #20971 fix panic while resolving callable signatures for AsyncFnMut.
  • #20957 keep associated items in generate_blanket_trait_impl.
  • #20973 handle method calls in apply_demorgan.

Internal Improvements

  • #21005 (first contribution) improve wording in testing docs.
  • #20994 reduce memory usage of symbol index.
  • #20997 only populate public items in dependency symbol index.
  • #20995 use new salsa API for SymbolsDatabase.
  • #20991, #20990, #20988 merge text-size, ungrammar and smol_str into rust-analyzer.
  • #21002 bump library editions to 2024 and remove legacy files.

See also the changelog post.

2025-11-03

03 Nov 08:17
bacc5bb

Choose a tag to compare

Commit: bacc5bb
Release: 2025-11-03 (v0.3.2667)

New Features

  • #20186 add option to exclude nearby derives from "Go to implementations" and implementations lens.
  • #20906 support opaques properly.

Fixes

  • #20921 avoid calling specializes() query on crates that do not define #![feature(specialization)].
  • #20920 resolve target-dir more precisely.
  • #20369 change method to associated function calls when renaming self.
  • #20931 show proper async function signatures in the signature help.
  • #20930 fix handling of nested block modules.
  • #20919 consider all matches for flyimport even when searched with a qualifier.
  • #20942 fix false positive syntax errors on frontmatters.
  • #20934 improve error recovery with malformed function return types.
  • #20915 offer replace_is_method_with_if_let_method in while expression.

Internal Improvements

  • #20922 reduce client_commands allocations in LSP conversion.
  • #20927 support memory profiling using dhat.

See also the changelog post.

2025-10-28

28 Oct 17:36
7c810e9

Choose a tag to compare

Merge pull request #20922 from Veykril/veykril/push-pznvunxxozkq

perf: Reduce `client_commands` allocations in proto conversion

2025-10-27

27 Oct 05:57
049767e

Choose a tag to compare

Commit: 049767e
Release: 2025-10-27 (v0.3.2658)

New Features

Fixes

  • #20583 (first contribution) add rust-analyzer.semanticHighlighting.comments.enable option.
  • #20697, #20745 (first contribution) fix negative literals in const generics.
  • #19867 (first contribution) allow &raw [mut | const] for union fields in safe code.
  • #20432 (first contribution) improve identifier pattern handling in assists.
  • #20891 (first contribution) add negation semantic token type.
  • #20425 (first contribution) add parser heuristic to warn on unterminated strings.
  • #20520 add option to hide reborrows in adjustment inlay hints.
  • #20721 implement fallback properly.
  • #20755 add #[doc = include_str!(…)] completion.
  • #20423 make import sorting order follow the 2024 edition style.
  • #20801 small fixes for import insertion.
  • #20866 run cargo metadata on sysroot right from its path.
  • #20554 improve handling of the env! macro.
  • #20587 deduplicate methods in completion by function ID and not by name.
  • #20803 replace --show-output task defaults with --nocapture.
  • #20459 track diagnostic generations per package.
  • #20689 make flycheck clearing dependency-aware.
  • #20635 don't trigger two flychecks when saving files that are part of targets.
  • #20402 add more workarounds for incorrect startup diagnostics.
  • #20787 fix spurious incorrect_generics_len on generic enum variants used through type aliases.
  • #20770 don't trigger trait-impl-incorrect-safety on unresolved traits.
  • #20642 make #[target_feature] safe on WASM.
  • #20504 avoid infinite recursion while lowering associated type bounds from supertraits.
  • #20720 prevent rustup from automatically installing toolchains.
  • #20528 masquerade as nightly cargo when invoking flycheck with -Zscript.
  • #20612 fix "Expand macro recursively" on nested macro calls.
  • #20517 only compute unstable paths on nightly toolchains for IDE features.
  • #20639 resolve paths to snapshot test libraries absolutely.
  • #20547 don't highlight unrelated unsafe operation on unsafe blocks.
  • #20579 don't pass --target to rustc twice while fetching target data layout.
  • #20475 don't duplicate lang items with overridden sysroot crates.
  • #20518 fix else completion in let _ = if x {} $0.
  • #20390 add if-else completions in let statements and argument lists.
  • #20620, #20657 add else keyword completion after let statements.
  • #20653 don't output an empty generic parameters list in generate_function.
  • #20708 fix panic in destructure_struct_binding.
  • #20702 fix else completion before else keyword.
  • #20700 fix extract_variable on if-let.
  • #20709 fix panic in destructure_struct_binding.
  • #20710 fix shorthand fields in unused_variables.
  • #20661 tighten up expected type completions in if.
  • #20507 handle expected return type in completions.
  • #20725 fix lifetime elision handling for Fn-style trait bounds.
  • #20624 fix lifetime_bounds.
  • [#20723]...
Read more