Skip to content

Releases: rust-lang/rust-analyzer

nightly

11 Mar 00:38
44f18c3
Compare
Choose a tag to compare
nightly Pre-release
Pre-release
Merge pull request #18964 from davidbarsky/davidbarsky/port-rust-anal…

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.

2025-01-28

28 Jan 14:42
1f86729
Compare
Choose a tag to compare
Merge pull request #19061 from Veykril/push-rwyqqtqmnput

Disable `Receiver` based autoderef temporarily

2025-01-27

27 Jan 06:25
2df4ecf
Compare
Choose a tag to compare

Commit: 2df4ecf
Release: 2025-01-27 (v0.3.2282)

New Features

  • #18934 add the ability to jump from into to from definitions.
  • #18993 make auto-insertion of await and iter() in completions configurable.
  • #19012 implement arbitrary_self_types.

Fixes

  • #19004 (first contribution) increase AUTODEREF_RECURSION_LIMIT to 20.

  • #18973 make niches into nices (improve niche count rendering).

    a type with nicely-formatted 2⁶³ niches

  • #19034 don't complete #[doc(hidden)] enum variants and use trees.

  • #18976 consider enum variants in type ns resolution.

  • #18988 de-prioritize completions that add await and iter().

  • #19016, #19018 record glob imports in ItemScope.

  • #19028 filter by path stability in flyimport.

  • #19030 fix markdown horizontal ruler sometimes being treated as a heading.

  • #19020 prevent infinite recursion when formatting bounds.

  • #19017 fix flycheck panic with once invocation strategy.

  • #18977 fix missing upmapping in trait impl completion.

  • #18982 reduce "Extract variable" range.

  • #18967 properly record meaningful imports as re-exports in symbol index.

  • #18986 go to Display::fmt when invoked on to_string.

  • #19014 check cfgs when collecting macro defs.

  • #19026 only collect implicit visibile use symbols if they have renames.

  • #19033 make proc-macro-srv spans lines and columns 1-indexed (but always 1).

  • #19019 explicitly add buildfiles when constructing ProjectFolders.

  • #18989 only refresh syntax tree view when the active document changes.

Internal Improvements

  • #18981 (first contribution) make usage of RTLD_DEEPBIND in proc macro server portable.
  • #18991 keep already computed inlay hint properties instead of late resolving them.
  • #19029 skip redundant path search in resolve_completion_edits.
  • #18909 use strict_provenance in symbol interner.
  • #18984 move dual blanket impl logic from source_analyzer to goto_def.
  • #18990 clean up Name string rendering.
  • #18994 treat cfg fetching failures as a warning, not error.
  • #18878 document all rust-project.json fields.
  • #18972 drop outgoing lsp-server messages on a background thread.

See also the changelog post.