Releases: rust-lang/rust-analyzer
2023-05-08
Changelog #180
Commit: 833d530
Release: 2023-05-08
(v0.3.1506
)
New Features
-
#11557
(first contribution) add dependency tree explorer: -
#14662
(first contribution) support locally-built documentation forexperimental/externalDocs
with compatible clients. -
#14664
MIR episode 4, support arithmentic assignment operators, statics, constants in patterns and associated constants in traits. -
#14711
highlight closure captures when cursor is on|
ormove
. -
#14732
fix pattern type mismatches for bindings, enable pattern type mismatch diagnostics again. -
#14725
emit function bodies when expanding built-in derives. -
#14749
define problem matcher for panics, F8 will go to the panic location in Code. -
#14758
addrust-analyzer.hover.memoryLayout.enable
config for disabling memory layout info on hover.
Fixes
#14745
(first contribution) sort dependencies in VS Code tree view.#14707
don't generate already-existing methods ongenerate_delegate_methods
.#14713
don't highlight escapes in raw strings.#14714
excludeSized
from go-to actions in hover.#14705
fix floating point evaluation andtry
block tracking in MIR.#14712
only pass unstable flags tocargo metadata
from extra args config.#14738
use block def maps in body lowering.#14739
parse bare dyn types with leading lifetime.#14750
ignore impls with#[rustc_reservation_impl]
#14748
show memory layout type aliases.
Internal Improvements
#14716
reduce memory consumption by not mergingtrait_impls_in_deps
results (saves 59 MB onself
).#14720
use boxed slices instead ofVec
s in declarative macros (saves 8 MB onself
).#14718
usetriomphe::Arc
instead ofstd::sync::Arc
(saves 4 MB onself
).#14715
refactor symbol index.#14710
refactor notification handlers.#14733
publishline-index
and switch tonohash_hasher
.#14757
fix library publish branch filter.
See also the changelog post.
2023-05-01
Changelog #179
Commit: 3a27518
Release: 2023-05-01
(v0.3.1498
)
New Features
-
#14690
add hover for closures: -
#14513
add#[doc(alias(..))]
-based field and function completions. -
#14659
de-duplicate crates when extending crate graphs. -
#14644
,#14686
don't underline wholefor
loops and iterator chains on errors.
Fixes
#14647
(first contribution) remove extrarustc
argument in target layout loading.#14641
register obligations during path inference.#14652
fixpat
fragment handling in the 2021 edition.#14651
fix VS Code workspace root de-duplication.#14689
forceInitializeParams
path drives to uppercase on Windows.#14667
handle nested types inunwrap_result_return_type
.#14671
fixproc-macro-srv
path config.#14678
fix "Restart server" button trying to start instead of restart the server.#14639
fix some typos inStructFlags
.
Internal Improvements
#14648
(first contribution) specify--pre-release
when publishing on the Code Marketplace.#14658
removeproc-macro
server command from therust-analyzer
binary.#14654
fix status command panicking when additional LRU caches are set up.#14636
remove unnecessaryis_derive
field fromMacroCallKind::Attr
.
See also the changelog post.
2023-04-24
Changelog #178
Commit: bc78ebd
Release: 2023-04-24
(v0.3.1489
)
New Features
#14610
resolve$crate
in derive paths.
Fixes
#14591
(first contribution) restrictSort items
assist range.#14618
(first contribution) respecteditor.parameterHints.enabled
after triggering a completion.#14598
fix release channel detection for unstable completion filtering.#14619
fix falseneed-mut
positive and too large span in closures.#14625
fix token conversion for doc-comments.#14634
report remaining macro errors in associated item collection.#14643
fix const eval panic with parameter destructing.#14603
try to de-duplicate workspaces by top level cargo workspace.
Internal Improvements
#14577
(first contribution) fix all spelling mistakes.#14621
(first contribution) support type parameters inmake::impl_trait
.#14622
addsyntax::make::ty_alias
.#14632
increase LRU cache size forparse_expansion
andmacro_expand
queries.#14633
don't reparse files when trying to expand assoc item macro calls.#14630
replaceArc<String>
withArc<str>
.#14594
moveExpander
andLowerCtx
into separate modules.#14604
addminicore
smoke test.#14599
addRA_UNSTABLE_SYSROOT_HACK
.#14628
restructure symbol queries.#14629
add additional query information to status ouput.
See also the changelog post.
2023-04-17
Changelog #177
Commit: bab80da
Release: 2023-04-17
(v0.3.1481
)
New Features
-
#14533
make inlay hints insertable:insert_inlay_hint.mp4
-
#14561
map tokens frominclude!
expansion to the included file:include-go-to-def.mp4
-
#14470
compute closure captures. -
#14549
,#14551
don't suggest unstable items on stable toolchain.
Fixes
#14536
(first contribution) restrict the applicability range ofSort trait items
.#14540
(first contribution) allow extracting function from single brace of block expression.#14579
(first contribution) accept unknown notification during initialization.#14538
fix project linking popup appearing for modules that can be linked to a crate.#14550
fix type inference in nested closures.#14544
infer types of nested RPITs.#14576
fix explicit deref problems in closure capture.#14560
fix view crate graph being broken due to webworker usage.#14559
,#14570
skip code lens resolution for mismatched document versions.#14580
parse more exclusive range and inline const patterns.#14547
fix receiver adjustments forExtract variable
.#14535
use the Rust file's parent directory instead of the workspace folder when running thediscoverProjectCommand
.
Internal Improvements
#14556
warn when loading sysroot fails to find thecore
library.#14446
only run TypeScript CI when the VS Code extension changes.#14572
encode closing delimiter span inFlatTree
s.#14573
allocateExprScope
entries in a single arena instead of per-ScopeData
.#14575
putAttrs
behind a query instead ofAttsWithOwner
.#14574
makeblock_def_map
infallible.#14578
makeinherent_impls_in_block
andtrait_impls_in_block
infallible.#14585
makeExpandDatabase::parse_macro_expansion
andExpandDatabase::parse_or_expand
infallible.#14581
move layout logic fromhir-def
tohir-ty
.#14583
report macro definition errors on the definition.#14584
,#14587
,#14588
report item-level macro expansion syntax errors.
See also the changelog post.
2023-04-10
Changelog #176
Commit: 01120f1
Release: 2023-04-10
(v0.3.1472
)
New Features
-
#14433
(first contribution) add#[doc(alias(..))]
-based completions. -
#14512
highlight escapes inchar
literals: -
#14455
add assist to convert nested functions to closures. -
#14432
drop support for non-syroot proc macro ABIs (proc macros no longer expand with Rust 1.63).
Fixes
#14486
desugarasync fn
completely.#14481
fix VS Code project linking pop-up buttons being swapped.#14482
use the correct path accessor in the project linking pop-up.#14483
do autoderef in "Generate delegate methods".#14493
insert whitespace between text and attribute macros.#14505
fix block-local trait impl solving regressions.#14520
unify types ininfer_expr_coerce_never()
.
Internal Improvements
#14521
,#14526
,#14528
add bounds for fields in derive macros.#14436
normalize associated types in paths in expressions.#14490
use an arena instead of a hash map in the crate graph.#14442
implement structured API for snippets.#14509
resolve labels in body lowering.#14511
always reborrow mutable reference receiver in methods.#14517
shuffle around somehir-def
modules.#14519
don't recreateHygiene
unnecessarily.#14518
remove unnecessaryName
s fromFunctionData::params
.#14525
remove parameter names from function item tree.#14524
render function parameters inhir-def
pretty printing.
See also the changelog post.
2023-04-04
Auto merge of #14468 - lowr:patch/expand-macro-bang, r=Veykril Expand Macro Recursively: don't append "!" to non-bang macro name When we run `Expand Macro Recursively`, we prepend a comment "Recursive expansion of foo! macro" to the expansion result. I've noticed we unconditionally render the macro name with "!" and, while super subtle, I feel a bit awkward when the macro is either a derive or attribute macro.
2023-04-03
Changelog #175
Commit: 2365762
Release: 2023-04-03
(v0.3.1459
)
New Features
#14366
prompting the user to add aCargo.toml
of unlinked file to thelinkedProjects
.
Fixes
#14422
(first contribution) don't escape double hashes outside of Rust code blocks.#14444
(first contribution) pass environment variables to debug runnables.#14424
check ancestor blocks for local trait impls.#14434
usestruct_tail_without_normalization
inExpectation::rvalue_hint
.#14440
handle box and raw pointers correctly inbuiltin_deref
.#14461
use async block in async function type inference.#14435
add missing autoborrow adjustment for index expressions.#14426
fix stack overflow in inhabitedness checking.#14464
fix false-positiveneeds-mut
on array.#14449
recover frompub()
visibility modifier.#14468
don't append ! to derive and attribute macros in "Expand macro recursively".#14419
use the rightCrateId
s for proc macros inrust-project.json
workspaces.#14427
allow subsequentrust-project.json
-based workspaces to get proc macro expansion.#14430
canonicalizerust-project.json
manifest path.
Internal Improvements
#14465
(first contribution) add limited syntax support for return type notations.#14425
(first contribution) fix typo in comment.#14410
add config to specifiy LRU capacities for all queries.#14445
introduceStructFlags
.#14448
don't exposeInferenceTable
outside ofhir-ty
.#14439
set durability to high forenable_proc_attr_macros
input.#14454
refineCrateOrigin
variants.#14458
clean upCrateGraph
construction.
See also the changelog post.
2023-03-27
Changelog #174
Commit: b99d5eb
Release: 2023-03-27
(v0.3.1451
)
New Features
#14405
,#14409
,#14415
load proc macros asynchronously.#14368
MIR episode 3, add support for?
, function pointers and trait objects.
Fixes
#14385
(first contribution) fix VS Code status message formatting error.#14407
fix renames of locals used in macro calls.
Internal Improvements
#14380
coalesce adjacentIndel
s.#14402
reject symlinks inrust-project.json
.#14408
only intern blocks that declare items.#14412
handle proc macro fetching viaOpQueue
.#14404
remove client side proc-macro version check.
See also the changelog post.
2023-03-20
Changelog #173
Commit: 825833c
Release: 2023-03-20
(v0.3.1443
)
New Features
-
#14281
add quick fix for inserting anunsafe
block:add-unsafe.mp4
-
#13789
prioritize missing variants in match pattern completions: -
#14354
add signature help for record and tuple struct patterns: -
#13994
lint incoherent inherent impls:
Fixes
#12958
fix return type of async closures.#14337
allow the status bar item to be clicked again.#14347
addStorageDead
forlet
bindings without initializer (fixes false positiveneeds-mut
in loops).#14348
fix rustc proc-macro handling in the rustc workspace.#14349
respect parent blocks in visibility resolution.#14338
only skip reborrow adjustment hints for block,if
andmatch
expressions.#14353
don't replaceSyntaxToken
withSyntaxNode
in "Inline call".#14355
don't emit unnecessary reference completions.#14357
don't pass feature flags to rustc private crates metadata invocation.#14359
don't retry inlay hint requests.#14361
fixast::IfExpr
child accessors.
Internal Improvements
#14307
add Cargo-style project discovery for Buck and Bazel users.#14362
prioritize "Removedbg!
" assist over "Inline macro".#14358
report sysroot and rustc crate loading errors.#14334
,#14336
addis_float
,is_char
andas_slice
tohir::Type
.#14378
bumpchalk
to fix a GAT bug.#14342
add path of workspace root folders to status output.#14340
renameAstDatabase
toExpandDatabase
.
See also the changelog post.
2023-03-13
Changelog #172
Commit: f1e51af
Release: 2023-03-13
(v0.3.1435
)
New Features
-
#14232
,#14316
MIR episode 2, addneed-mut
and experimentalunused-mut
diagnostics: -
#14313
add fancy buttons to the VS Code status message: -
#14266
makereplace_or_with_or_else
assists more generally applicable. -
#14328
allow passing extracargo
args when running build scripts.
Fixes
#14323
(first contribution) fix source root de-duplication.#14267
mark unresolved field, unresolved method and expected function diagnostics as experimental.#14297
addlibcore
dependency to proc macros.#14282
load proc macros forrustc_private
crates.#14260
tightenreplace_match_with_if_let
applicability range.#14271
don't trigger unresolved method/field diagnostics on types containing errors.#14284
highlight unresolved derives as such.#14248
show diagnostic for}
followed byelse
inlet-else
statement.#14283
don't send error notifications for workspace failures if server status is supported.#14286
fix block defmap not looking into tail expressions for macro calls.#14291
fix handling of multiple definition bindings inconvert_match_to_let_else
.#14299
fix searching inside bodies of attributed items.#14300
watch both stdout and stderr in flycheck.#14306
fix block with no termination in or-patterns.
Internal Improvements
#14261
reuse the resolver inInferenceContext
instead of rebuilding it when needed.#14302
add missing queries toper_query_memory_usage
.#14311
don't attempt to compute diagnostics in library crates.#14326
renamematch_expr
field ofhir::diagnostics::MissingMatchArms
.
See also the changelog post.