Releases: rust-lang/rust-analyzer
2023-07-17
Changelog #190
Commit: d824511
Release: 2023-07-17
(v0.3.1591
)
Fixes
#15248
fix eager token mapping panics.#15297
normalize type alias inprojected_ty
.#15258
supportgetrandom
syscall in MIR.#15268
addwrite_bytes
andctlz
intrinsics.#15282
addtype_name
intrinsic and give realdiscriminant_type
tochalk
.#15284
addsched_getaffinity
and enablecfg(miri)
in analysis.
Internal Improvements
#15257
(first contribution) ignoreContent-Length
header case inlsp-server
.#15270
(first contribution) make fields ofmir::Terminator
public.#15292
(first contribution) fix typo in command line help.#15295
(first contribution) fixrust-analzyer ssr
help message.#15251
skip building subtrees for built-in derives.#15231
,#15260
migrate more assists to use the structured snippet API.#15263
enablederive
feature forserde
inlsp-server
.#15267
mark MIR execution limit test as slow.#15252
enableuseUnknownInCatchVariables
TypeScript option.#15259
use type imports.#15254
add FIXME forexactOptionalPropertyTypes
.#15264
,#15265
bump npm dependencies.#15266
set.editorconfig
default indent size to4
.#15275
default to stable toolchain in the metrics workflow.
See also the changelog post.
2023-07-10
Changelog #189
Commit: ff15634
Release: 2023-07-10
(v0.3.1583
)
New Features
-
#15081
(first contribution) add a memory layout viewer: -
#15152
addGenerate trait from impl
assist: -
#14990
map our diagnostics to therustc
andclippy
ones. -
#15186
don't add panics to error jump list by default.
Fixes
#15118
(first contribution) follow raw pointers in autoderef chain when resolving methods with custom receiver.#15235
(first contribution) don't insert semicolon when extractingmatch
arm.#15226
makeExpand glob import
work on enum imports.#15211
support GATs in bounds for associated types.#15223
don't showunresolved-field
diagnostic for missing names.#15216
don't mark braces aroundself
imports as unnecessary.#15212
recover from missing associated items and generic const defaults.#15245
fix missing terminator in pattern matching of consts.#15222
fixsize_of_val
and supportmin_align_of_val
intrinsic.#15244
supportread_via_copy
intrinsic.#15228
implement recursion in MIR interpreter without recursion.#15230
useDebug
impl for const eval result rendering.#15227
indent after pressing enter on a blank line.
Internal Improvements
#15202
don't diagnose built-in derives.#15204
add analysis-stats flag to trigger some IDE features.#15149
speed up line index calculation via SSE2.#15219
unify Generate getter and setter assists.#15205
split out project loading capabilities from therust-analyzer
crate.#15203
shuffle someproc_macro_expand
query things around.#15209
use stronger typing forAstId
andAstIdMap
.#15181
clean upImportMap
.#15210
removeCfgExpander
.#15206
formatlet
-else
.#15224
replacex
withit
.#15160
enablenoUncheckedIndexedAccess
andnoPropertyAccessFromIndexSignature
TypeScript options.#15234
remind user to checkPATH
after installation.
See also the changelog post.
2023-07-03
Changelog #188
Commit: ff485b6
Release: 2023-07-03
(v0.3.1575
)
New Features
#15136
(first contribution) drop matching brace key binding.#15185
bumpchalk
.#15151
update VS Code extension dependencies and require 1.78.
Fixes
#15148
fixself
andsuper
path resolution in block modules.#15157
fix runnable detection for#[tokio::test]
.#15173
fix data layout of reference to nested unsized structs.#15184
disable MIR interpreter for targets with different pointer size from host.#15168
fix MIRrealloc
allocating a smaller destination.#15189
fix overflow checking in shift operator.#15194
fix layout of SIMD types and respect alignment in MIR interpreter.#15101
,#15177
,#15180
check clientworkspace.workspaceEdit.resourceOperations
capability.#15138
renamerunnableEnv
torunnables.extraEnv
.
Internal Improvements
#15030
,#15163
(first contribution) run metrics on parallel.#15172
support#[derive_const(Trait)]
.#15140
add comment explaining whyHasSource::source()
returnsOption
.#15161
addlibrary
fixture meta.#15175
dropcross-env
npm dep.#15174
switch to@vscode/vsce
.#15153
clean up Code extensionactivationEvents
.#15154
use@tsconfig/strictest
for type checking rules.#15159
enablenoImplicitOverride
.#15169
use anonymous lifetime where possible.#15142
rename crates after removing libs from workspace.#15195
don't specifyproc-macro-test
version.
See also the changelog post.
2023-06-26
Changelog #187
Commit: 4a2ceef
Release: 2023-06-26
(v0.3.1566
)
New Features
Fixes
#15105
(first contribution) fix display of negative integers.#15074
fix inlining of async functions.#15112
support manual implementation ofFn
traits in the MIR interpreter.#15119
support more intrinsics in the MIR interpreter.#15135
fix some unsizing problems in MIR.#15085
include project path in workspace loading errors.#15104
skip mutability diagnostics on synthetic bindings.
Internal Improvements
#15093
useArgumentV1
instead ofArgument
.#15071
,#15089
remove spuriousregex
dependency.#15087
,#15097
,#15100
use consistent style for error handling.#15086
intern use and extern crate items like other items.#15095
change in-tree libs to workspace dependencies and bump versions.#15098
use lib crates from crates.io.#15070
report metric timings for file item trees and crate def map creation.#15110
add run-tests CLI command.
See also the changelog post.
2023-06-19
Changelog #186
Commit: cd3bf9f
Release: 2023-06-19
(v0.3.1557
)
Fixes
#15026
,#15044
deduplicate fields, and tuple indices in deref handling for completion.#14932
lower const params with a bad id.#15054
use correct const param and default type names in "Implement missing members".#15032
exclude Markdown injection grammar from.vscodeignore
.#15040
use a more obscure hasher name in#[derive]
expansion.#15075
add binding definition for for-expr iterator desugared binding.
Internal Improvements
#15076
shrink size ofhir::Binding
.#15036
giveConstBlockId
andInTypeConstId
namedLocation
types.#15047
record file dependencies in crate graph construction.#15053
add aCrateRootModuleId
that encodes a module id that is always a crate root.#15058
improve "terminator is none" message.#14693
supportPointee
trait.#15065
do not allocate unnecessarily when importing macros from parent modules.#15067
add more context to "overly long loop turn" messages.#15066
analyze all bodies inanalysis-stats
, not just functions.#15069
add body lowering step, track time of each step separtely.
See also the changelog post.
2023-06-12
Changelog #185
Commit: a4407b4
Release: 2023-06-12
(v0.3.1549
)
New Features
#14925
(first contribution) add "Inline constant as literal" assist.#15028
giverustfmt
jobs a separate thread.
Fixes
#14960
(first contribution) add span to token groups.#14974
(first contribution) properly format documentation forSignatureHelpRequest
s.#14978
emit'_
for lifetime generics inHirDisplay
.#15000
only generate derived trait bound for associated types in field types.#15006
fix panic informat_args!
expansion.#15012
infer async return type ingenerate_function
.#14875
handle lifetimes in assists.#14989
,#15025
derive source scope from syntax node to be transformed.#15019
fix panic in displaying const trait objects.#15022
fix panic in displaying unsized structs.#14998
make eager macros lazier.
Internal Improvements
#15005
(first contribution) fix typo inreload.rs
.#14980
,#14988
sync from downstream.#14984
,#14997
bring back thesysroot-abi
feature.#14979
migrate some assists to use the structured snippet API.#15014
document thesysroot
field inJsonProject
.#15020
show query entry counts in memory usage command.#14827
offset version number when auto-publishing.#14994
fix CI to actually run when proc-macro things change.#14995
fix proc-macro slow test.
See also the changelog post.
2023-06-05
Changelog #184
Commit: 2f1b7ce
Release: 2023-06-05
(v0.3.1541
)
New Features
-
#14938
add signature help for tuple patterns and expressions: -
#14892
,#14942
MIR episode 6, separate monomorphization and speed up interpretation. -
#14905
render niches on hover. -
#14911
allow settingcfg
s (rust-analyzer.cargo.cfgs
). -
#14929
add render configuration for memory layout hovers. -
#14888
prioritize threads affected by user typing.
Fixes
#14935
don't duplicate sysroot crates inrustc
workspace.#14939
don't discard file id from differing macro upmapping in nav target calculation.#14947
add enum, reference, array and slice torender_const_scalar
.#14952
make assignment operators right associative.#14971
consider outer binders when folding captured items' type.#14912
don't add--all-targets
to runnables forno_std
orno_core
crates.#14945
don't trigger "replace generic with impl trait" assist when it would produce broken code.#14920
fix edits forconvert_named_struct_to_tuple_struct
.#14950
support floating-point intrinsics in const eval.#14951
fix string pattern matching in mir interpreter.#14955
remove unnecessaryStorageDead
.#14961
fix drop scopes problems in mir.#14970
detect multiple bindings for one identifier in the same pattern and suppressneed-mut
.#14972
fixunused-mut
false positive forBox
.#14976
fix missing terminator for slice pattern.
Internal Improvements
#14941
shrinkDefMap
, share crate level items with block def maps.#14842
improveast::make
.#14969
update built-in attribute list.
See also the changelog post.
2023-05-29
Changelog #183
Commit: 505fd09
Release: 2023-05-29
(v0.3.1533
)
New Features
-
#14866
(first contribution) add Markdown syntax highlighting to doc-comments in VS Code: -
#14849
implement symbol search by alias: -
#14816
add assist to replace a named generic parameter with impl trait:replace-generic.mp4
-
#14916
add diagnostic for incorrect_
expressions:
Fixes
#14752
(first contribution) fix indentation ingenerate_derive
,add_missing_impl_members
andadd_missing_default_members
.#14878
implement${count()}
metavariable expressions.#14872
introduce new type variable when expectation for ref pattern is not a reference.#14891
,#14897
evaluateUnevaluatedConst
during unification.#14913
evaluateUnevaluatedConst
before trait solving.#14890
use::core
instead of$crate
inoption_env!
expansion.#14893
fixneed-mut
false positive in closure capture of match scrutinee.#14874
change how#![cfg(FALSE)]
behaves on crate root.#14895
don't try to determine type of token inside macro calls.#14904
render size, align and offset hover values in hex.#14906
add a toggle to disable the dependency explorer.#14910
filter out unused cargo features from config.
Internal Improvements
#14894
(first contribution) allow overriding the SCIP output path.#14914
(first contribution) update outdatedrustup
installation instructions.#14859
specify thread types using Quality of Service API.#14880
remove double lookups fromInterned
.#14881
replaceDisplay
impl forName
to support interning.#14889
add context to "overly long loop" message.#14901
move flycheck and config errors to status notification.#14909
run CI on nightly rust whenproc-macro-*
crates change.#14755
fix a TODO and some Clippy lints.
See also the changelog post.
2023-05-22
Changelog #182
Commit: 7ac161c
Release: 2023-05-22
(v0.3.1524
)
New Features
-
#14775
add#[doc(alias(..))]
-based method completions: -
#14811
render hover actions for closure captures and signature: -
#14812
highlight used associated trait items when cursor is on trait import or trait bound: -
#14789
addmoved-out-of-ref
diagnostic: -
#14845
add layout info for enum variant and locals: -
#14837
support C string literals. -
#14787
MIR episode 5, lower slice patterns and anonymousconst
blocks.
Fixes
#14848
(first contribution) traverseelse
blocks oflet-else
inpreorder_expr
.#14809
support#[macro_use(name, ...)]
.#14824
diagnose non-valuereturn
andbreak
type mismatches.#14825
fix evaluation of negation for floating point types.#14828
processmacro_use
prelude in semantic scope resolver.#14823
only render discriminant hints for data-carrying enums with primitiverepr
.#14822
force-disable theaugmentsSyntaxTokens
capability on VS Code.#14802
fix layout forhir_ty::Ty
and friends.#14820
expandformat_args!
with more details.#14851
handle match scrutinee in closure captures.#14855
consider block impls inlookup_impl_assoc_item_for_trait_ref
.#14863
consider all tokens in macro calls when analyzing locals.
Internal Improvements
#14746
parse unstable associated return type bounds.#14794
,#14818
,#14835
restructureInlayHint
, no longer derive properties from its kind.#14810
inline handlers module.#14834
do less file parsing for symbol index generation.#14836
bumprustc_lexer
.#14843
partially support panic message inMirEvalError
.#14847
reduce MIR memory usage.#14857
shrinkProcMacroExpander
from 8 to 4 bytes.#14819
fix division by zero inanalysis-stats
.
See also the changelog post.
2023-05-15
Changelog #181
Commit: e5c7228
Release: 2023-05-15
(v0.3.1514
)
A Note on Today's Release
Because of an infrastructure issue, today's release is not available on the VS Code Marketplace and OpenVSX.
The VSIX can still be downloaded manually from GitHub Releases, and Code should be able to update it automatically in the future.
We hope we can get everything sorted out by next Monday.
New Features
-
#14742
add closure capture inlay hints, disabled by default: -
#14777
addrust-analyzer.semanticHighlighting.nonStandardTokens
setting to control the usage of non-standard tokens and modifiers.
Fixes
#14781
,#14800
introduce macro sub-namespaces andmacro_use
prelude.#14727
evaluate consts lazily inpath_to_const
.#14795
addmacro
modifier for highlighting tokens in macro calls.#14797
fix perf regression from symbol index refactor.#14801
fixprocess_changes
duplicating change events.#14788
fix derivedDebug
implementation for unsized structs.
Internal Improvements
#14799
(first contribution) remove root component from patched Windows UNC path prefix.#14735
drop canonicalization of paths and normalize allrust-project.json
paths.#14808
add metrics for unevaluated constants, failed MIR bodies and failed data layouts.#14747
add more APIs tola_arena::IdxRange
.
See also the changelog post.