Skip to content

Releases: rust-lang/rust-analyzer

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.

nightly

03 Mar 00:38
81ff38f
Compare
Choose a tag to compare
nightly Pre-release
Pre-release
Merge pull request #19266 from the-mikedavis/lsp-pull-diagnostics-ide…

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.

2025-01-20

20 Jan 06:33
248bd51
Compare
Choose a tag to compare

Commit: 248bd51
Release: 2025-01-20 (v0.3.2273)

New Features

  • #18917 add dereferencing completions.
  • #18927 automatically include await, iter() and into_iter() in completions
  • #18925 render type parameter projection target bounds in inlay hints.
  • #18946, #18950 show "Go to type definition" actions for type bounds in functions.
  • #18952 complete raw and const keywords.
  • #18939 flip rust-analyzer.typing.excludeChars to be opt-in, with better defaults.

Fixes

  • #18908 (first contribution) report errors blocks before else in let-else.
  • #18953 (first contribution) fix broken #[cfg(debug_assertions)].
  • #18933 (first contribution) bump update notify to fix a Windows crash.
  • #18944 update chalk, to fix trait upcasting.
  • #18949 partially back out "fix source root construction for virtual manifests".
  • #18929 avoid stack overflow when reaching macro expansion limit.
  • #18940 fix Semantics not always caching file roots correctly.
  • #18922 don't return inlay hints outside requested range.
  • #18897 make test_runner::TestState::stdout optional to fix parsing cargo test JSON output.
  • #18968 enable unstable-options for cargo rustc --print.
  • #18937 hide syntax tree view by default.

Internal Improvements

  • #18957 update syntax tree viewer docs.
  • #18951 add missing #[rust_analyzer::rust_fixture] annotations.

See also the changelog post.

2025-01-13

13 Jan 07:11
8364ef2
Compare
Choose a tag to compare

Commit: 8364ef2
Release: 2025-01-13 (v0.3.2264)

New Features

  • #18880 (first contribution) add config to include additional paths in the VFS.
  • #18885 (first contribution) change rust-analyzer.cargo.cfgs from a map to a list.
  • #18907 implement #[rust_analyzer::skip] for bodies.
  • #18903 implement implicit sized bound inlay hints.
  • #18813 reimplement the syntax tree view as a sidebar.
  • #18906 reimplement Rust string highlighting using a tool attribute.
  • #18788 re-remove rust-analyzer.cargo.sysrootQueryMetadata.

Fixes

  • #18832 (first contribution) do not offer completions within strings in macro calls.
  • #18866 (first contribution) fix JSON project buildfile inclusion.
  • #18858 clear diagnostics on cancel unconditionally.
  • #18853 fix case where completion inside macro that expands to #[test] was unavailable.
  • #18864 fix diagnostics not clearing between flychecks.
  • #18877 fix performance issue on missing MBE bindings.
  • #18884 fix env! completions.
  • #18900 do not call prettify_macro_expansion unless "Inline macro" has actually been invoked.
  • #18904 improve module path rendering in hover.
  • #18861 make edition per-token, not file.
  • #18920 fix ref text edit for binding mode hints.
  • #18889 fix token lookup in macro call completions.
  • #18899 fix another panic in fixup reversing.

Internal Improvements

  • #18855 migrate if-let replacement assists to SyntaxEditor.
  • #18524 migrate (un)wrap_return_type assists to SyntaxEditor.
  • #18902 add Definition::Crate.
  • #18921 compute inlay hint text edits lazily.
  • #18923 compute inlay hint tooltips lazily.
  • #18867 support target-tuple (vs. target-triple) and clean up version fetching.
  • #18887 refactor test helpers within ide-completions.

See also the changelog post.