Releases: rust-lang/rust-analyzer
nightly
Merge pull request #20432 from sgasho/fix/20215_implement_default_mem…
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
#20381
check expected type for assignments in completions.#20382
correctly go toimpl From
frominto()
even inside macros.#20387
do not remove the original token when descending into derives.#20412
properly handle names matching identifiers ingenerate_function
.#20418
fixextract_expressions_from_format_string
onwrite!
calls.#20354
remove no-op calls inremove_dbg
.#20384
fix external docs URL for exported macros.
Internal Improvements
#20417
(first contribution) fix parsing of trait bound polarity andfor
-binders.#20419
,#20429
,#20434
make flycheck generational.#20385
migrateexpand_glob_import
assist toSyntaxEditor
.#20373
generate anast::Module
, notString
, inextract_module
.#20383
removeted
fromreplace_named_generic_with_impl
.#20380
removeadd_attr
fromedit_in_place
because it useted
.#20409
addwrite!
andwriteln!
tominicore
.#20400
disable error reporting when clamping a position.#20393
fix non-LSP compliantResponse
definition.#20392
report the incorrect payload when failing to deserialize LSP messages.#20389
slim 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
#20351
change callers to use method call syntax when renaming a parameter toself
.
Fixes
#20313
fix variable substitution inrunnables.extraEnv
.#20333
do not require all rename definitions to be renameable.#20336
check for snippet cap ingenerate_mut_trait_impl
.#20337
fix bounds display withimpl Trait
.#20300
don't addPanics
section fordebug_assert!
.#20327
don't show$saved_file
literally in IDE status updates.
Internal Improvements
#20342
reorganizeproc-macro-srv
, add--format
and--version
args.#20311
,#20314
,#20364
,#20368
,#20371
migrateconvert_tuple_struct_to_named_struct
,inline_type_alias
,convert_from_to_tryfrom
,generate_delegate_methods
andgenerate_trait_from_impl
assists toSyntaxEditor
.#20303
,#20372
migratepath_transform
toSyntaxEditor
.#20345
addSyntaxEditor::delete_all
.#20349
fix new Clippy lints.#20154
improve settings tree descriptions.#20335
use GitHub app for authenticating sync PRs.
See also the changelog post.
2025-07-28
Commit: db02cdc
Release: 2025-07-28
(v0.3.2555
)
New Features
#19938
add "Generate impl for type" assist.
Fixes
#20271
disable tests in flycheck ifcfg.setTest
is set tofalse
.#20262
fix search of raw labels and lifetimes.#20273
apply adjustments to patterns and expressions when doing pattern analysis.#20281
parsefor<'a> [const]
.#20318
ignoreDestruct
bounds again.#20290
,#20315
use temporary directory for copied lockfiles.#20319
consider all produced artifacts for proc macro dylib search.#20302
fix doc-comment folding with multi-line parameter lists.#20285
useSelf
when renamingself
parameter.#20256
supportDeref
ingenerate_mut_trait_impl
.#20297
fix whitespace ingenerate_trait_from_impl
.
Internal Improvements
#20272
(first contribution) fix size asserts onx86_64-unknown-linux-gnux32
.#20293
,#20306
,#20307
,#20270
migratereplace_derive_with_manual_impl
,add_missing_impl_members
,convert_to_guarded_return
,extract_expressions_from_format_string
andgenerate_new
toSyntaxEditor
.#20269
migrateAstNodeEdit::Indent
toSyntaxEditor
.#20289
removeExpressionStoreDiagnostics::MacroError
.#20278
fupport filtering inanalysis-stats
MIR lowering.#20280
,#20282
,#20279
set uprustc-josh-sync
.
See also the changelog post.
2025-07-21
Commit: 58e507d
Release: 2025-07-21
(v0.3.2547
)
New Features
#19783
add "GenerateFrom
impl from single field" assist.#20265
supportcfg_select!
for the standard library.
Fixes
#20238
infer lifetimes for GATs in expression/pattern positions.#19917
handleAsRef
andBorrow
in "GenerateIndexMut
impl fromIndex
".#20247
transform tail expression&
to&mut
in "GenerateTraitMut
impl fromTrait
".#20255
fix bounds in "GenerateDeref
impl".
Internal Improvements
#20233
(first contribution) expandlsp-server
example.#20178
clean up cargo config querying.#20234
remove{ConstParam,TypeParam}::remove_default
.#20246
addAsMut
tominicore
prelude.
See also the changelog post.
2025-07-14
Commit: 591e3b7
Release: 2025-07-14
(v0.3.2539
)
New Features
-
#20054
support folding multi-line parameter list with the function body: -
#20185
include enum variants in world symbols. -
#20109
makegenerate_new
work for tuple structs.
Fixes
#20192
fix a panic in documentation rendering.#20180
always bump in the parser inerr_and_bump
.#20200
revert "re-enable fixpoint iteration for variance computation".#20212
fixdyn
inlay hints with parantheses and don't display them on HRTBs.#20210
makenaked_asm!
safe to call and fixglobal_asm!
.#20232
normalize projection types before const eval.#20235
fixwhere
clause position in trait associated item completion.
Internal Improvements
#20219
outline parts ofExpressionStore
into a different allocation.#20198
,#20211
,#20218
migratepull_assignment_up
,convert_named_struct_to_tuple_struct
,convert_match_to_let_else
,generate_impl
andremove_dbg
assists toSyntaxEditor
.
See also the changelog post.
2025-07-09
Commit: e429bac
Release: 2025-07-09
(v0.3.2533
)
New Features
#20185
include enum variants in world symbols.
Fixes
#20192
fix a panic in documentation rendering.#20180
always bump in the parser inerr_and_bump
.#20200
revert "re-enable fixpoint iteration for variance computation".
Internal Improvements
#20198
migratepull_assignment_up
assist toSyntaxEditor
.
2025-07-07
Commit: 0ac6559
Release: 2025-07-07
(v0.3.2527
)
New Features
Fixes
#20151
only remove keyword prefixes (macro@
ormacro
) from links in the docs if the target is inferred.#20158
don't warn about the proc macro server when the sysroot is missing.#20160
reduce diagnostic range formacro_calls!
.#20120
fix value resolution inmatch
patterns.#20161
fix closure capture analysis forlet
expressions.#20167
improve#[derive(Default)]
expansion.#20031
respect length limit and improve adjustment hint tooltips.#20179
handle divergence in destructuring assignments.#20159
always couple--compile-time-deps
with--all-targets
.#20170
improve flycheck and build script progress reporting.#20112
add workaround for missingDelimiter::None
support to built-in macros.#20126
improve panic message on discover command spawning errors.#20148
honorrust-analyzer.cargo.noDeps
option when fetching sysroot metadata.
Internal Improvements
#20175
(first contribution) remove special handling for box patterns inmatch_check
.#20124
remove last use ofrustc_pattern_analysis::Captures
.#20156
restructure proc macro loading erros.#20157
re-enable fixpoint iteration for variance computation.#20184
remove dead field fromInferenceContext
.#20169
skip unnecessaryBodySourceMap
'seq
.#20134
,#20135
,#20136
,#20137
,#20165
migratereplace_is_method_with_if_let_method
,promote_local_to_const
,toggle_macro_delimiter
,wrap_unwrap_cfg_attr
andunmerge_match_arm
assists toSyntaxEditor
.#20132
addAsMut
,Borrow
andBorrowMut
tominicore
.#20144
addload_workspace_into_db
version ofload_workspace
.#19923
bumpsalsa
.
See also the changelog post.
2025-06-30
Commit: 6df1213
Release: 2025-06-30
(v0.3.2519
)
New Features
#20077
(first contribution) take an optional"args": "cursor"
in the VS Code "Run" command.#19546
highlight return values as related tomatch
/if
/=>
.#20100
lowerPointeeSized
to?Sized
to support the newSized
trait hierarchy.#20105
parse new[const] Trait
syntax.
Fixes
#20110
don't show float completions on integer literals.#20096
don't show notifications on failedrustfmt
calls.#20121
don't append--compile-time-deps
to build script commands.#20073
useROOT
hygiene forargs
in the newformat_args!
expansion.#20069
fix cargo project manifest not pointing to the workspace root.#20072
respect configuredbuild.target-dir
.#20061
don't wrap exit points with the right type in "Wrap return type".#20103
prettify AST inPathTransform
if it's coming from a macro.#20080
clean up and expandfolding_ranges
.#20092
don't complain aboutrustc
workspace loading if it's not required.#20036
don't default to'static
for trait object lifetimes.
Internal Improvements
#20012
(first contribution) bumpliteral-escaper
.#20088
de-Arc
trait items query.#20087
short-circuit a couple of queries.#20106
make theVariantFields
query more idiomatic.#20098
unify formatting of progress messages.#20104
clean upprovideCodeActions
VS Code hook.#20116
cancel CI workflow only after the main matrix has finished.#20084
fix CI job cancellation on Windows.
See also the changelog post.
2025-06-23
Commit: 0100bc7
Release: 2025-06-23
(v0.3.2509
)
New Features
#19939
addrust-analyzer.assist.preferSelf
to preferSelf
instead of the enum name in assists.#20047
usecargo check --compile-time-deps
when available.#20020
reload workspaces whencargo
config changes.#20018
copy lockfile into target directory before invokingcargo metadata
.#20056
support the newformat_args!
expansion in 1.89.#20014
show whatcargo metadata
is doing.
Fixes
#19945
add quickfix to theprivate-field
diagnostic.#20025
(first contribution) hide imported private methods if "private editable" is disabled.#20041
revert "turnBlockId
into a#[salsa::tracked]
".#20022
never make type mismatch diagnostic stable, even when there is a fix.#20023
improve completions inif
/while
expression conditions.#20039
fix closure capturing inlet
expressions.#20035
pass--color=always
from Test Explorer.
Internal Improvements
#19495
start infestingide
crates with a'db
lifetime.#20046
addhir::TypeParam::parent
method.#20050
improve documentation for excluding imports from symbol search.
See also the changelog post.