Releases: rust-lang/rust-analyzer
2025-12-01
Commit: d646b23
Release: 2025-12-01 (v0.3.2702)
New Features
#21027(first contribution) build releases with static CRT for-windows-msvctargets.#21121add basic support for declarative attribute and derive macros.#20125display 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.#21151don't run cache priming when disabled.#21095fix iterator completions after auto-deref.#20937don't suggest duplicateconstcompletions afterraw.#20976fix completion after inner attributes.#21144fix completion afterexternand addcratecompletion.#21028complete enum aliases in patterns.#21126fix parameter info with missing arguments.#20163use per-token, not global, edition in the parser.#20164pass the per-token, not global, edition when expanding declarative macros.#20217use root hygiene for speculative resolution.#21170support multipleenabled features in#[target_feature].#21159,#21172rewritedyn Traitlowering to follow rustc.#20685support multiple variants ingenerate_enum_{is,projection}_method.#20967offerreplace_method_eager_lazyonand.#21141setenclosing_rangein the SCIP index.#21131check snippet capabilities in#[cfg(…)]key completion.#21023fix handling of cloned elements inSyntaxEditor.#21147show a dropdown in the UI forrust-analyzer.imports.granularity.group.
Internal Improvements
#20892reintroduce attribute rewrite.#21097,#21145,#21146,#21154reimplement proc macro server token trees as immutable, to speed up concatenation.#20986,#21133,#21135,#21139,#21179integratepostcardinto the proc-macro server.#21149use a single query per crate for lang items.#21167shrinkInferenceResultby ~40 bytes.#21169use newsalsaAPI forinfer.#21115bumprustccrates.#21177fixSmolStrpretty-printing forRepr::Static.
See also the changelog post.
2025-11-24
Commit: 4a2b38f
Release: 2025-11-24 (v0.3.2693)
New Features
#21100(first contribution) add semantic token modifier for deprecated items.#21068(first contribution) makedyninlay hints configurable.#21093add assist to convert char literals.#20974rewrite method resolution to follow rustc more closely.#21015parse cargo config files with origins.
Fixes
#21090,#21092(first contribution) don't offer to remove parantheses around control flow expressions.#21083complete#[cfg(…)]keys.#20980remove some deep normalizations from inference.#21084fix formatting request blocking on thecrate_def_mapquery.#21061infer array lengths.#21060,#21113,#21026improve pattern inference.#21036handle references in postfix completions.#21053fix panic inextract_functionwhen a variable is used multiple times in a macro call.#21074support parameters with the same name as a macro inadd_missing_impl_members.#21065fix field completion in irrefutable patterns.#21018handle comments inprivate_fieldquick fix.#21042import full path inreplace_qualified_name_with_usewhen triggered on the first segment.#21038support multiple selected variants ingenerate_from_impl_for_enum.#20559add digit group separators inadd_explicit_enum_discriminant.#21111fill unguarded arms inadd_missing_match_arms.#21047add#[unsafe(…)]completion.#21048don't reportincorrect_caseon#[no_mangle]static items.#21098load targets of all types with paths outside package root.
Internal Improvements
#21094(first contribution) makeDefMapdumps more verbose.#21114(first contribution) disable thetracing/attributesin some crates.#21011(first contribution) provide a gdb pretty printer forSmolStr.#21017speed up cloning of inlineSmolStrvariants at the expense of heap ones.#21046,#21088improve start-up speed.#21087gather trait implementations during cache priming.#21085produce fewer progress reports on start-up.#21086reduce allocations intry_evaluate_obligations.#21059deriveParamEnvfromGenericPredicates.#21109migratereplace_qualified_name_with_useassist toSyntaxEditor.#21057implement precedence in HIR printing.#21103record lang item queries inanalysis-stats.
See also the changelog post.
2025-11-17
Commit: 2efc800
Release: 2025-11-17 (v0.3.2683)
Fixes
#20985allow renaming label afteradd_label_to_loop.#21003add block on postfix.constcompletion.#20542handle guards inreplace_if_let_with_match.#20972parseimpl ! {}.
Internal Improvements
#21021fix Docs.rs builds after movingsmol_str.
See also the changelog post.
2025-11-10
Commit: 21f8445
Release: 2025-11-10 (v0.3.2675)
New Features
#20565add "Convert rangefortowhile" assist.
Fixes
#20964canonicalizecustom-target.jsonpaths when fetching sysroot metadata.#20961consider more expression types asin_value.#20963expand literals with wrong suffixes intoLitKind::Err.#20971fix panic while resolving callable signatures forAsyncFnMut.#20957keep associated items ingenerate_blanket_trait_impl.#20973handle method calls inapply_demorgan.
Internal Improvements
#21005(first contribution) improve wording in testing docs.#20994reduce memory usage of symbol index.#20997only populate public items in dependency symbol index.#20995use newsalsaAPI forSymbolsDatabase.#20991,#20990,#20988mergetext-size,ungrammarandsmol_strinto rust-analyzer.#21002bump library editions to 2024 and remove legacy files.
See also the changelog post.
2025-11-03
Commit: bacc5bb
Release: 2025-11-03 (v0.3.2667)
New Features
#20186add option to exclude nearby derives from "Go to implementations" and implementations lens.#20906support opaques properly.
Fixes
#20921avoid callingspecializes()query on crates that do not define#![feature(specialization)].#20920resolvetarget-dirmore precisely.#20369change method to associated function calls when renamingself.#20931show proper async function signatures in the signature help.#20930fix handling of nested block modules.#20919consider all matches for flyimport even when searched with a qualifier.#20942fix false positive syntax errors on frontmatters.#20934improve error recovery with malformed function return types.#20915offerreplace_is_method_with_if_let_methodinwhileexpression.
Internal Improvements
#20922reduceclient_commandsallocations in LSP conversion.#20927support memory profiling usingdhat.
See also the changelog post.
2025-10-28
Merge pull request #20922 from Veykril/veykril/push-pznvunxxozkq perf: Reduce `client_commands` allocations in proto conversion
2025-10-27
Commit: 049767e
Release: 2025-10-27 (v0.3.2658)
New Features
#20854feat (first contribution) parse script frontmatter.#20837feat (first contribution) exposeaddConfigurationAPI from the Code extension.#20329,#20445,#20446,#20454,#20470,#20447,#20496,#20497,#20502,#20506,#20523,#20527,#20537,#20545,#20553,#20563,#20586,#20609,#20578,#20647,#20645,#20649,#20654,#20665,#20671,#20677,#20664,#20717,#20728,#20733,#20735,#20738,#20765,#20777,#20785,#20814,#20834,#20841,#20867,#20873,#20882,#20888,#20896,#20893,#20895switch from Chalk to the next trait solver.#20632support navigation on primitives.#20760addall,anyandnotcompletions in#[cfg].#20806,#20835log flycheckstdoutandstderrto files.#19771add "Generate blanket trait impl" assist.#20705add "Flip range expression" assist.#19918add "Removeelsebranches" assist.#20855improve fixture support.
Fixes
#20583(first contribution) addrust-analyzer.semanticHighlighting.comments.enableoption.#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) addnegationsemantic token type.#20425(first contribution) add parser heuristic to warn on unterminated strings.#20520add option to hide reborrows in adjustment inlay hints.#20721implement fallback properly.#20755add#[doc = include_str!(…)]completion.#20423make import sorting order follow the 2024 edition style.#20801small fixes for import insertion.#20866runcargo metadataon sysroot right from its path.#20554improve handling of theenv!macro.#20587deduplicate methods in completion by function ID and not by name.#20803replace--show-outputtask defaults with--nocapture.#20459track diagnostic generations per package.#20689make flycheck clearing dependency-aware.#20635don't trigger two flychecks when saving files that are part of targets.#20402add more workarounds for incorrect startup diagnostics.#20787fix spuriousincorrect_generics_lenon generic enum variants used through type aliases.#20770don't triggertrait-impl-incorrect-safetyon unresolved traits.#20642make#[target_feature]safe on WASM.#20504avoid infinite recursion while lowering associated type bounds from supertraits.#20720prevent rustup from automatically installing toolchains.#20528masquerade as nightly cargo when invoking flycheck with-Zscript.#20612fix "Expand macro recursively" on nested macro calls.#20517only compute unstable paths on nightly toolchains for IDE features.#20639resolve paths to snapshot test libraries absolutely.#20547don't highlight unrelated unsafe operation onunsafeblocks.#20579don't pass--targettorustctwice while fetching target data layout.#20475don't duplicate lang items with overridden sysroot crates.#20518fixelsecompletion inlet _ = if x {} $0.#20390addif-elsecompletions inletstatements and argument lists.#20620,#20657addelsekeyword completion afterletstatements.#20653don't output an empty generic parameters list ingenerate_function.#20708fix panic indestructure_struct_binding.#20702fixelsecompletion beforeelsekeyword.#20700fixextract_variableonif-let.#20709fix panic indestructure_struct_binding.#20710fix shorthand fields inunused_variables.#20661tighten up expected type completions inif.#20507handle expectedreturntype in completions.#20725fix lifetime elision handling forFn-style trait bounds.#20624fixlifetime_bounds.- [
#20723]...
2025-08-25
fix: Only compute unstable paths on nightly toolchains for IDE features
2025-08-11
Commit: 9db0550
Release: 2025-08-11 (v0.3.2577)
An Update on the Next Trait Solver
We are very close to switching from chalk to the next trait solver, which will be shared with rustc.
chalk is de-facto unmaintained, and sharing the code with the compiler will greatly improve trait solving accuracy and fix long-standing issues in rust-analyzer.
This will also let us enable more on-the-fly diagnostics (currently marked as experimental), and even significantly improve performance.
However, in order to avoid regressions, we will suspend the weekly releases until the new solver is stabilized.
In the meanwhile, please test the pre-release versions (nightlies) and report any issues or improvements you notice, either on GitHub Issues, GitHub Discussions, or Zulip.
New Features
#20420(first contribution) add config option to exclude locals from document symbol search.
Fixes
#20381check expected type for assignments in completions.#20382correctly go toimpl Fromfrominto()even inside macros.#20387do not remove the original token when descending into derives.#20412properly handle names matching identifiers ingenerate_function.#20418fixextract_expressions_from_format_stringonwrite!calls.#20354remove no-op calls inremove_dbg.#20384fix external docs URL for exported macros.
Internal Improvements
#20417(first contribution) fix parsing of trait bound polarity andfor-binders.#20419,#20429,#20434make flycheck generational.#20385migrateexpand_glob_importassist toSyntaxEditor.#20373generate anast::Module, notString, inextract_module.#20383removetedfromreplace_named_generic_with_impl.#20380removeadd_attrfromedit_in_placebecause it useted.#20409addwrite!andwriteln!tominicore.#20400disable error reporting when clamping a position.#20393fix non-LSP compliantResponsedefinition.#20392report the incorrect payload when failing to deserialize LSP messages.#20389slim down compile-time artifact progress reports.
See also the changelog post.
2025-08-04
Commit: 8d75311
Release: 2025-08-04 (v0.3.2563)
New Features
#20351change callers to use method call syntax when renaming a parameter toself.
Fixes
#20313fix variable substitution inrunnables.extraEnv.#20333do not require all rename definitions to be renameable.#20336check for snippet cap ingenerate_mut_trait_impl.#20337fix bounds display withimpl Trait.#20300don't addPanicssection fordebug_assert!.#20327don't show$saved_fileliterally in IDE status updates.
Internal Improvements
#20342reorganizeproc-macro-srv, add--formatand--versionargs.#20311,#20314,#20364,#20368,#20371migrateconvert_tuple_struct_to_named_struct,inline_type_alias,convert_from_to_tryfrom,generate_delegate_methodsandgenerate_trait_from_implassists toSyntaxEditor.#20303,#20372migratepath_transformtoSyntaxEditor.#20345addSyntaxEditor::delete_all.#20349fix new Clippy lints.#20154improve settings tree descriptions.#20335use GitHub app for authenticating sync PRs.
See also the changelog post.