Skip to content

Releases: rust-lang/rust-analyzer

2024-10-28

28 Oct 06:15
3b3a87f
Compare
Choose a tag to compare

Commit: 3b3a87f
Release: 2024-10-28 (v0.3.2162)

A Note on Windows Artifacts

The next release will stop including .gz artifacts for Windows.
These are harder to use than the .zip ones, which should be used instead.

New Features

  • #18294 (first contribution) support Option in "Wrap/Unwrap return type".
  • #18362, #18370 (first contribution) support "Go to definition" on range operators and patterns.
  • #18359 (first contribution) add option to not start the server on initialization.
  • #18264 implement mixed-site hygiene.
  • #18404, #18408 implement pull model for diagnostics.
  • #18349 render aliased type documentation when alias doesn't have any.
  • #18418 split macro-error diagnostic so users can ignore parts of it.

Fixes

  • #18407 (first contribution) fix formatting on welcome page.
  • #18376 add text edits to more inlay hints.
  • #18361 fix token downmapping failing for include! inputs.
  • #18254 nail destructuring assignment down once and for all.
  • #18337 don't show private items from modules nested in blocks in completions.
  • #18360 improve completions for extern blocks.
  • #18371 fix parsing of use bounds.
  • #18388 Fix checking for false labelDetailsSupport value.
  • #18395 add missing target_has_atomic and target_has_atomic_load_store cfg flags.
  • #18390 prevent public re-exports of private items.
  • #18417 correctly handle #"" before the 2024 edition.
  • #18419 put leading | in patterns under OrPat.
  • #18415 mark "Remove dbg!" as a quick fix for better prioritization.
  • #18366 fix Markdown display in status bar message.
  • #18399 respect config to disable native diagnostics.
  • #18386 don't crash when local time offset is unavailable.

Internal Improvements

  • #18372 (first contribution) switch CI from bors to merge queues.
  • #18373 merge separate inlay hints targeting the same range.
  • #18391 log original syntax on panic.
  • #18394, #18396 pretty-print Config in "Status" command.
  • #18402 improve proc macro error message for failed build scripts.
  • #18410 invert token iteration order in macro mapping.
  • #17954 update rustc-hash to version 2.
  • #18392 swap query call order in file_item_tree_query to help with caching issue.
  • #18409 only construct a resolver during macro descension when needed.
  • #18368 add test for LSIF macro-generated constants.
  • #18405 update changelog generation for merge queues.

See also the changelog post.

2024-10-21

21 Oct 06:31
Compare
Choose a tag to compare

Commit: 9323b53
Release: 2024-10-21 (v0.3.2154)

New Features

  • #18152 highlight exit points of async blocks.
  • #18291 respect references.excludeTests in Call Hierarchy.
  • #18350, #18354 add initial support for safe in extern blocks.
  • #18292 support renaming self parameters in functions.

Fixes

  • #18265, #18320 (first contribution) add support for LLDB-DAP.
  • #18226 (first contribution) fix parsing of use in generic parameters.
  • #18229 (first contribution) make rustfmt.overrideCommand relative to project, not workspace root.
  • #18336 (first contribution) increase macro expansion token limit once more.
  • #18278 do not consider matching of places that evaluate to ! to diverge, and disallow coercions from them.
  • #18217 stop doing cast checks for unknown pointer kinds.
  • #18252 do not consider mutable usage of deref to *mut T as deref_mut.
  • #18299 fix Ok wrapping quick fix for return statements.
  • #18275 don't expand #[test_case].

Internal Improvements

  • #18242 don't resolve extern crates in import fixed point resolution.
  • #18216 return structs instead of tuples from OpQueues.
  • #18331 support more trivial types in is_sized check.
  • #17990 use local time when formatting logs.
  • #18243, #18300 clamp LSP columns to line length.
  • #18328 fix running analysis-stats against the standard libraries on CI.
  • #18335 fix .editorconfig glob.

See also the changelog post.

2024-10-14

14 Oct 06:09
Compare
Choose a tag to compare

Commit: d7628c0
Release: 2024-10-14 (v0.3.2146)

Fixes

  • #18246 fix crash in prettify_macro_expansion() when the node isn't the whole file.
  • #18245 fix detail label in completions.
  • #18247 fix something_to_resolve sometimes being reset in completion_item
  • #18269 display constructor types in a nicer way.
  • #18289 fix panic on JSON projects with relative buildfile paths.

Internal Improvements

  • #18266 use macos-13 runners and bump MACOSX_DEPLOYMENT_TARGET to 13.0.
  • #18281 stop using spawnSync in the VS Code extension.

See also the changelog post.

2024-10-07

07 Oct 06:04
Compare
Choose a tag to compare

Commit: 2b750da
Release: 2024-10-07 (v0.3.2137)

New Features

  • #18085 provide an option (rust-analyzer.cfg.setTest) to not set cfg(test).

Fixes

  • #18207 (first contribution) suggest UpperCamelCase instead of CamelCase to match rustc.
  • #18210 fix resolution of labels inside macro calls.
  • #18206 handle block expressions as modules when finding their parents.
  • #18219 fix incorrect bootstrap error message.
  • #18255 use external stack in borrow check DFS.

Internal Improvements

  • #18167 send less data for completions, if possible.
  • #18234 filter out opaque tokens when descending into macros for some IDE features.
  • #18195 remove Default from OpQueue.
  • #18227 add JSON tracing Layer for profiling start-up.

See also the changelog post.

2024-09-30

30 Sep 03:27
Compare
Choose a tag to compare

Commit: 822644d
Release: 2024-09-30 (v0.3.2129)

New Features

  • #17923 (first contribution) add option to rebuild project before restarting debugging.
  • #18180 index workspace symbols at start-up rather than on the first search.

Fixes

  • #18160 fix name resolution with renamed imports and shadowing.
  • #18164 handle import aliases in remove_unused_imports.
  • #18161 improve reference handling in consuming postfix completions.
  • #18172 support #[expect] in attribute completion and hover.
  • #18162 report lifetime GATs as object-unsafe.
  • #18123 disambiguate package names in flycheck.
  • #18166 fix a bug in span map merging.
  • #18184 pass --all-targets for build scripts in more CLI commands.
  • #18193 don't report start-up error when a workspace discovery command is configured.

Internal Improvements

  • #18205 (first contribution) rename object-safety to dyn-compatibility.
  • #18196 add SyntaxFactory to simplify generating nodes with syntax mappings.
  • #18181 add tracing to project discovery and VFS loading.
  • #18192 include rust-project.json build files in VFS.
  • #18157 respect --disable-proc-macros in analysis-stats.
  • #18208 allow overriding proc macro server in analysis-stats.
  • #18188 bump MSRV to 1.81.
  • #18175 drop COMPLETION_MARKER Easter egg.

See also the changelog post.

2024-09-23

23 Sep 08:49
Compare
Choose a tag to compare

Commit: 1301e42
Release: 2024-09-23 (v0.3.2121)

Note

Because of infrastructure issues, this release is not available on GitHub Releases.

New Features

  • #18135 add diagnostics for unsafe_op_in_unsafe_fn.
  • #18131 replace $crate in user-visible macro expansions.
  • #18151 support ${concat(...)} metavariable expressions.
  • #18137 support expr_2021 fragment specifiers.

Fixes

  • #18136 (first contribution) don't lint names of #[no_mangle] extern functions.
  • #18128 don't show lints and quick fixes in code generated by external macros.
  • #18117 always cache macro expansion root nodes in Semantics.
  • #18139 extend type_variable_table when index is larger than the table size.
  • #18146 remove check that text of parse_expr_from_str() matches the produced parsed tree.
  • #18153 account for rawness in $expr fragments.
  • #18108 take #[cfg_attr] into account for lint attributes.
  • #18132 don't complete ; in closure return expressions.

Internal Improvements

  • #18134 extend SourceChangeBuilder to make make working with SyntaxEditor easier.
  • #18169 temporarily disable GitHub releases.

See also the changelog post.

2024-09-16

16 Sep 06:22
Compare
Choose a tag to compare

Commit: 94b526f
Release: 2024-09-16 (v0.3.2112)

New Features

  • #18038 generate names for tuple struct fields in "Fill match arms".
  • #18018 automatically add semicolon when completing unit-returning function call.

Fixes

  • #18052 (first contribution) don't output hex when inlining integer constants.
  • #18041 improve name suggestions for variables extracted from function calls.
  • #18075 render patterns when hovering on function parameters.
  • #18093 skip diagnostics when casting to dyn Trait.
  • #18092 correctly escape strings in stringify!.
  • #18101 fix false positive error when casting literals.
  • #18106 don't report typed hole error in asm! out operands.
  • #18073 fix "immutable tree" in generate_delegate_trait.
  • #18119 fix printing of constants greater than i128::MAX.
  • #18099 improve handling of lint attributes.
  • #18050 offer replace_qualified_name_with_use on the first segment of a path.
  • #18107 don't emit empty inlay hint parts.
  • #18105 don't panic on invalid LSP notifications from buggy clients.

Internal Improvements

  • #18032 add preliminary SyntaxEditor functionality.
  • #18057 improve testing infra for rust-analyzer.toml.
  • #18080 remove crate graph deduplication logic.
  • #17904 add CLI command to report unresolved references.

See also the changelog post.

2024-09-09

09 Sep 05:58
Compare
Choose a tag to compare

Commit: 08c7bbc
Release: 2024-09-09 (v0.3.2104)

New Features

  • #17984 implement cast typecheck and diagnostics.
  • #18022, #18053 add IDE support for asm! expressions.

Fixes

  • #18031 suggest name in pattern completion.
  • #18016 use existing type aliases in "Wrap return type in Result".
  • #18028 prevent lifetime hint panic in non-generic definitions.
  • #18045 keep loop blocks during lowering.
  • #18068 set TraitRef self types explicitly during lowering.
  • #18067 prevent MIR building when unknown types are present.
  • #18059 don't clobber discovered projects when updating settings.

Internal Improvements

  • #18026 tweak completion scoring.
  • #18044 add edition-dependent keyword highlighting tests.
  • #18065 catch panics from diagnostics computation.
  • #18066 don't panic LSP writer thread when the receiver gets dropped.

See also the changelog post.

2024-09-02

02 Sep 05:07
Compare
Choose a tag to compare

Commit: 779d9ee
Release: 2024-09-02 (v0.3.2096)

New Features

  • #17814, #17999 implement object-safety and add it to hover.
  • #17940, #17941 implement "Convert closure to function" assist.
  • #17757 implement "Toggle macro delimiters" assist.
  • #17985 implement "Add explicit enum discriminants" assist.
  • #18006 add an option to hide deprecated items from completion.
  • #18010 support function types in lifetime elision hints.

Fixes

  • #17972 revert "#17936 implement module_path!".
  • #17994 fix TokenStream::to_string implementation dropping quotation marks.
  • #17987 fix resolution of shadowed built-in macros.
  • #17963 show error lifetime arguments as '_.
  • #17737 sprinkle some sugar on async impl Trait completions.
  • #17970 fix "Unwrap block" for blocks with modifiers.
  • #17991 don't add unnecessary reference in "Extract variable".
  • #17973 expand proc macros in workspace, not package root.
  • #17993 keep field attributes when converting between tuples and named structs.
  • #17982 consider indentation in "Generate impl" and "Generate trait impl".
  • #18015 handle attributes in "Flip comma".
  • #18003 do not report missing unsafe on addr_of!(EXTERN_OR_MUT_STATIC).
  • #18005 don't suggest for loops in impl T for A in function bodies.
  • #17962 update return type syntax to match compiler.
  • #17988 fix incorrect symbol definitions in SCIP output.

Internal Improvements

  • #17975, #18009 (first contribution) do not assume rustup is installed in xtask codegen.
  • #18008, #18012 make inlay hint resolution more reliable.
  • #17945 recategorize config classes.
  • #17967 prepare for stand-alone MBE tests.
  • #17992 avoid newlines in worspace fetch errors.
  • #18011 add some doc-comments to OpQueue.
  • #17974 drop Apache license appendices.

See also the changelog post.

2024-08-27

27 Aug 07:18
Compare
Choose a tag to compare
Auto merge of #17972 - rust-lang:revert-17936-module_path, r=Veykril

Revert "feat: Implement `module_path` macro"

Reverts rust-lang/rust-analyzer#17936 Fixes https://github.com/rust-lang/rust-analyzer/issues/17968