Skip to content

Releases: rust-lang/rust-analyzer

nightly

29 Mar 00:40
2e1ff25
Compare
Choose a tag to compare
nightly Pre-release
Pre-release
Merge pull request #19375 from ChayimFriedman2/do-not-complete

feat: Allow crate authors to control completion of their things

2025-03-24

24 Mar 05:46
37acea8
Compare
Choose a tag to compare

Commit: 37acea8
Release: 2025-03-24 (v0.3.2353)

New Features

Fixes

  • #19384 fix stale "Building CrateGraph" report.
  • #19416 handle multiple #[repr(..)] attributes correctly.
  • #19362 speed up resolving a "Generate delegate method" assist.
  • #19348 add text edit support for return type hints on non-block body closures.
  • #19413 properly calculate the layout of unsized tuple pointers.
  • #19320 mark manual trait implementations as unsafe when replacing a derive.
  • #19400 fix syntax highlighting for &raw const / &raw mut in standalone files.
  • #19397 add postfix completion for const block.
  • #19005 fix testing of packages with multiple targets.

Internal Improvements

  • #19408 replace #[derive]s to reduce codegen burden for generated syntax types.
  • #19390 do not use Expander in associated item lowering.
  • #19412 remove some unnecessary usages of Semantics.
  • #19429 remove unused dependencies.
  • #19419 render layout and other extra information when hovering Self.
  • #19329 add some docs to proc-macro-api.
  • #19379 bump Edition::CURRENT to 2024.
  • #19378 trigger salsa LRU at the end of analysis-stats.
  • #19315 do not generate docs with in xtask codegen --check.
  • #19391 clean up proc-macro-srv CI job.

See also the changelog post.

2025-03-17

17 Mar 06:29
b0632f7
Compare
Choose a tag to compare

Commit: b0632f7
Release: 2025-03-17 (v0.3.2345)

Announcement

This release brings two major changes, which might make it slightly spicier than usual.

The first is upgrading to the latest version of salsa, the incremental evaluation framework used by rust-analyzer.
This will make it possible to implement parallel evaluation and persistency in the future.

The second change is to use salsa for the crate graph, making it incremental.
Adding or removing a dependency, or editing a build script or proc macro, will now invalidate only the affected crates instead of the entire workspace.

New Features

  • #19079, #19332 warn when a rename will change the meaning of the program:

    Screen.Recording.2025-02-02.015127.mp4

  • #18964 put a new batch of salsa on rust-analyzer.

  • #19337 put salsa on the crate graph.

  • #19271 add "Convert for into while let" assist.

Fixes

  • #19344 add icons to VS Code views:

    Screenshot showing an icon on the Explorer: Rust Dependencies sidebar

  • #19252 fix syntax fixup producing invalid punctuation.

  • #19333 fix diagnostics being cleared right after being received.

  • #19330 normalize projections in evaluated const display and layout calculation.

  • #19363 display varargs in completion detail.

  • #19325 rank ADT constructors as such for completion scoring.

  • #19326 add missing name-ref parents to syntactic highlighting.

  • #19327 fix path macro hygiene.

  • #19311 log build script error output for Cargo projects.

  • #19351 don't panic when the crate graph isn't ready.

  • #19356 avoid recursively debug printing crates.

Internal Improvements

  • #19314 (first contribution) impl HasSource for VariantDef.
  • #19367 drop legacy salsa.
  • #19354 prepare for Return Type Notation (RTN) and add a diagnostic.
  • #19232 bump chalk to get support for async closures.
  • #19305 vendor query-group-macro in rust-analyzer.
  • #19364 add missing with_durability calls.
  • #19368 remove CrateGraphBuilder::iter_mut.
  • #19236 switch to the 2024 edition.
  • #19369 do not error out for actions with no data to resolve.
  • #19366 remove legacy SyntaxContextId re-export.
  • #19228 split up some ADT queries.
  • #19355 render root syntax contexts more clearly.
  • #19343 make GenericParamsCollector::type_or_consts private.
  • #19328 run proc-macro server tests in a separate CI job.
  • #19334 remove generated mdbook files.

See also the changelog post.

2025-03-10

10 Mar 07:06
5e7dd31
Compare
Choose a tag to compare

Commit: 5e7dd31
Release: 2025-03-10 (v0.3.2337)

New Features

  • #19243 allow unsetting default #[cfg]s.
  • #19265 add diagnostic for dangling dyn and impl.

Fixes

  • #19226 (first contribution) improve completions that return a reference.
  • #19279 (first contribution) add letm and improve let keyword completion.
  • #19308 bring back support for Rust 1.78 projects.
  • #19261 support tuple structs in expand_rest_pattern.
  • #19324 fix adding of brackets in "Inline variable".
  • #19297 fix completion relevance check.
  • #19290 warn when cargo metadata fails.
  • #19292 handle modifiers in punctuation highlighting.
  • #19274 don't highlight unsafe definitions as unsafe.
  • #19295 make "rust-analyzer: Run" available in manifest file.

Internal Improvements

  • #19288 (first contribution) use size_of from the prelude.
  • #19244, #19275 warn when the active toolchain is too old.
  • #19286 twiddle with the rustup invocation on CI.

See also the changelog post.

2025-03-04

04 Mar 09:56
02862f5
Compare
Choose a tag to compare

Commit: 02862f5
Release: 2025-03-04 (v0.3.2330)

New Features

  • #19243 allow unsetting default #[cfg]s.

Fixes

  • #19226 (first contribution) improve completions that return a reference.
  • #19261 support tuple structs in expand_rest_pattern.

Internal Improvements

See also the changelog post.

2025-03-03

03 Mar 06:06
81ff38f
Compare
Choose a tag to compare

Commit: 81ff38f
Release: 2025-03-03 (v0.3.2328)

Announcement

The x86-64, AArch64 and ARM Linux binaries now target GLIBC 2.28, and will keep doing so for the foreseeable future, which might be until June 2029.

In addition, this version drops support for toolchains older than 1.82.

New Features

  • #18987 calculate drop glue and show it on hover.
  • #19259 add "flip or-pattern" assist.
  • #19230 set up Zig on CI and start using it in rust-analyzer.

Fixes

  • #19197 (first contribution) update insta inline snapshot using cargo insta when clicking "Update Test" runnable.
  • #19246 (first contribution) add anchor for intra-doc links to associated items.
  • #19266 (first contribution) add identifier to pull diagnostic LSP capabilities.
  • #19211 include private items in completions for local crates.
  • #19223 support target features implications in target_feature 1.1.
  • #19204 allow package/feature format for features.
  • #19241 map crate ids for proc macros in sysroot crate graph construction.
  • #19249 avoid unnecessary parantheses in prefix adjustment hints.
  • #19250 use precedence calculation for parentheses in inline_local_variable.
  • #19221 add tab stop to impl body in generate_trait_impl.

Internal Improvements

  • #19239 (first contribution) configure out performance counters on ohos to fix compilation.
  • #19096 allow rust-project.json to specify sysroot workspace.
  • #19225 migrate remove_mut, remove_parantheses and remove_unused_param to SyntaxEditor.
  • #19171 migrate apply_demorgan to SyntaxEditor.
  • #19253 migrate convert_bool_then to SyntaxEditor.
  • #19251 remove syntax editing from parenthesis computation.
  • #19257 clean up syntax highlighting.
  • #19219 vendor always-assert into stdx.
  • #19237 enable doctests.
  • #19218 make release builds from source non-incremental.
  • #19194 bump VS Code extension deps.

See also the changelog post.

2025-02-24

24 Feb 13:54
6d68c47
Compare
Choose a tag to compare

Commit: 6d68c47
Release: 2025-02-24 (v0.3.2319)

New Features

  • #19158 (first contribution) add expand_glob_reexport assist.
  • #19127 refactor path lowering and serve a new path diagnostic.

Fixes

  • #19151 (first contribution) use correct working directory for proc macro execution.
  • #19179 disable assists with many results if grouping not supported.
  • #19182 fix associated type lowering in trait bounds.
  • #19167 fix detection of ref patterns for path patterns.

Internal Improvements

  • #19209 (first contribution) fix inline parser codegen test.
  • #19191 remove limit crate in favor usize.
  • #19188 use ubuntu-latest (with Rocky Linux 8) workers for releases.

See also the changelog post.

2025-02-17

17 Feb 06:42
84b6936
Compare
Choose a tag to compare

Commit: 84b6936
Release: 2025-02-17 (v0.3.2308)

Fixes

  • #19088 (first contribution) fix resolution with modules that shadow built-in types.
  • #19117, #19144 (first contribution) don't emit implicit drop inlay hints in macro calls.
  • #19137 (first contribution) highlight extern crate in doc comments.
  • #19156 (first contribution) mark ~/.cargo/git/checkouts as read-only.
  • #19129 fix postfix completions in macro calls.
  • #19148, #19160 improve error recovery when calling a field or associated function.
  • #19125 censor #[cfg_attr] for attribute macros.
  • #19124 fix off-by-one error in range formatting.
  • #18998 make rust-analyzer.files.excludeDirs actually work.
  • #19111 apply adjustments to proper expression in CoerceMany.
  • #19109 do not show safety hints for extern items lacking semantics.
  • #18928 handle character boundaries in import search.
  • #18995 lower range pattern bounds to expressions.
  • #19143 propagate error types in MIR type projections.

Internal Improvements

  • #19110 (first contribution) panic_context.
  • #19142 spawn toolchain querying processes in parallel.
  • #19155 migrate add_missing_match_arms to SyntaxFactory.
  • #19163 stabilize sort order of related_tests.
  • #19161, #19166 improve sort order of runnables.
  • #19159 set RUSTUP_TOOLCHAIN when loading sysroot workspace.
  • #19150 apply cfg.setTest to rust-project.json.

See also the changelog post.

2025-02-10

10 Feb 05:22
35181e1
Compare
Choose a tag to compare

Commit: 35181e1
Release: 2025-02-10 (v0.3.2299)

New Features

  • #19104 add option to disable inlay type hints for closure parameters.

Fixes

  • #19066 array types from slice patterns.
  • #19094 fix IDE resolution of use inside bodies.
  • #19086 fix some MIR eval and lowering issues.
  • #18912 up-map ranges in convert_tuple_struct_to_named_struct.
  • #19105 don't emit empty SCIP occurrence for built-ins.
  • #19062 fix SCIP indexing of module names.
  • #19106 resolve projection types before checking pointer casts.

Internal Improvements

  • #19083 (first contribution) don't try to use NEON on big-endian AArch64.
  • #19084 split cache priming into distinct phases.
  • #19085 don't use InferenceResult::has_errors flag for MIR building.
  • #19099 use interior mutability for loaded ProcMacroSrv::expanders.
  • #19093 prevent panics from tearing down worker threads.

See also the changelog post.

2025-02-03

03 Feb 06:45
f3998f7
Compare
Choose a tag to compare

Commit: f3998f7
Release: 2025-02-03 (v0.3.2291)

New Features

  • #19001, #19063 implement default-field-values.
  • #19038 support RFC 2396 (target-feature 1.1).

Fixes

  • #19061 temporarily disable Receiver-based completions.
  • #19050 don't suggest .into_iter().method() on iterators.
  • #19047 fix syntactic highlighting for renames.
  • #19044 fix #[rustc_deprecated_safe_2024].
  • #19045 fix a missing standard semantic token.
  • #19037 delay recursion check, to help with custom #[test] macros.
  • #19051 mark unsafe function pointer calls as unsafe.
  • #19056 properly handle CRLF line endings in the syntax tree view.
  • #19057 show status bar item in the VS Code Output pane.

Internal Improvements

  • #19072 (first contribution) be more principled when computing completion_item_hash.
  • #19055 (first contribution) enable some working code on FreeBSD.
  • #19052, #19080 prioritize formatting tasks and only take read VFS lock when rebuilding the crate graph.
  • #19036 split out ExpressionStore from Body.
  • #19070 remove mutable syntax tree usage from adjustment hints.
  • #19067 bump TentHash to 1.0.
  • #19015 convert manual to mdBook.

See also the changelog post.