Skip to content

Releases: rust-lang/rust-analyzer

2024-04-15

15 Apr 05:22
Compare
Choose a tag to compare

Changelog #229

Commit: 5dbe3fe
Release: 2024-04-15 (v0.3.1924)

Fixes

  • #17019 don't confuse paths with source roots sharing the same prefix.
  • #17063 fix inlay hint resolution.
  • #17056 run cargo test per workspace in the test explorer.
  • #17054 revert "fix: postfix snippet completion source range".
  • #17051 auto-close triple backticks.

Internal Improvements

  • #17034 (first contribution) document enabling the Flatpak Rust SDK extension.
  • #17033 log flycheck errors.
  • #17062 temporarily disable unlinked file popup.
  • #16450, #17065 prepare parser interface for editions.
  • #17059 make function builder create AST directly.
  • #17030 bump chalk.
  • #17035 run Windows tests on PRs too.

See also the changelog post.

2024-04-08

08 Apr 06:23
Compare
Choose a tag to compare

Changelog #228

Commit: 7a8374c
Release: 2024-04-08 (v0.3.1916)

New Features

  • #16924, #16988 add rust-analyzer.cargo.allTargets to configure passing --all-targets to cargo invocations.

Fixes

  • #17000 (first contribution) set the right postfix snippet completion source range.
  • #16968 silence type mismatches involving unresolved projections.
  • #16997 fix patch_cfg_if not applying with stitched sysroot.
  • #17006 fix some cfg censoring bugs.
  • #17003 fix off-by-one in LSP offset conversion.
  • #16961 fix crate IDs when multiple workspaces are loaded.
  • #16970 fix tasks in tasks.json.
  • #17016 apply cargo flags in test explorer.
  • #17014 consider #[exported_name=main] functions in test modules as tests.

Internal Improvements

  • #16996 lower Outlives goals and respect them in display impls.
  • #17002 consider ADT generic parameter defaults for unsubstituted layout calculations.
  • #16979 use contiguous indices for enum variants in pattern analysis.
  • #17023 slight clean-ups and perf improvements.
  • #16920 fix new nightly Clippy lints.
  • #16986 add client information to bug report template.

See also the changelog post.

2024-04-01

01 Apr 05:37
Compare
Choose a tag to compare

Changelog #227

Commit: e4a405f
Release: 2024-04-01 (v0.3.1906)

New Features

  • #16805, #16960, #16967 implement lifetime lowering and resolution.
  • #16906 add struct hover field display limit (rust-analyzer.hover.show.structFields).

Fixes

  • #16964 revert debug extension priorities.
  • #16965 use LLDB when debugging with C++ extension on MacOS.
  • #16957 check for client relative glob pattern support before using them.
  • #16971 resolve tests per file instead of crate in test explorer.
  • #16975 prompt the user to reload the window when enabling test explorer.

Internal Improvements

  • #16944 revert to the crates.io version of rustc_pattern_analysis.
  • #16930 support choosing the allocator in xtask dist.

See also the changelog post.

2024-03-25

25 Mar 06:28
Compare
Choose a tag to compare

Changelog #226

Commit: 6f6b03f
Release: 2024-03-25 (v0.3.1896)

New Features

  • #16852 implement ATPIT.
  • #16860 syntax highlighting improvements.

Fixes

  • #16915 (first contribution) fix stack overflow on recursive const types.
  • #16913 make file watching work on Windows and improve subsequent change detection.
  • #16935 handle CTFE panicking like rustc.
  • #16830 fix panic on impl Trait associated types in where clauses.
  • #16905, #16927 rename ProcMacroKind::FuncLike to Bang.
  • #16919 handle self::super in paths.
  • #16880 use --workspace and --no-fail-fast in test explorer.
  • #16868 handle attributes when auto-closing left braces.
  • #16822 improve resolution for inlay hints targetting the same position.
  • #16871, #16886 skip problematic cyclic dev-dependencies.
  • #16885 improve parser recovery for match arms.
  • #16812 fix "Go to implementation" for impls inside blocks.
  • #16909 keep the Attr::Literal spans.
  • #16911 fix hang on projects depending on rustc_private.

Internal Improvements

  • #16835 share token trees between derive attributes and their proc macros.
  • #16879 add fuel to match checking.
  • #16895 resolve whether $pat is $pat_param or not using hygiene.
  • #16839 support arbitrary shell command runnables.
  • #16884 move grammar codegen into xtask.
  • #16889, #16899, #16918 enforce UTF-8 paths.
  • #16892 don't try to read root crate file contents before VFS.
  • #16912 remove Span trait.
  • #16863 bump rustc dependencies and use in-tree rustc_pattern_analysis.
  • #16928 build x86_64-unknown-linux-gnu releases on Rocky Linux 8 (GLIBC 2.28).
  • #16904 bump rust-cache action.
  • #16929 bump release actions and Node version.

See also the changelog post.

2024-03-18

18 Mar 07:00
Compare
Choose a tag to compare

Changelog #225

Commit: b6d1887
Release: 2024-03-18 (v0.3.1885)

Announcement

Today's release switches to Ubuntu 20.04 for building the official binaries, bringing the minimum supported GLIBC version to 2.31.
Upgrading was forced by GitHub Actions moving form Node.js 16 to 20.
See #16793 for more information.

Affected distributions include Debian 10, Ubuntu 18.04, Enterprise Linux 7 and 8, and Amazon Linux 2.
For now, the alternatives are building from source, or using the rust-analyzer toolchain component.

New Features

  • #16789 apply #[cfg] to proc macro inputs.
  • #16834 support macro calls in eager macros for IDE features.
  • #16808 add proc macro semantic token type.

Fixes

  • #16762 (first contribution) add quick fix for "undersolved field" diagnostic.
  • #16810 add fix for "unused variable" diagnostic.
  • #16856 fix where clause rendering on hover.
  • #16846 fix panic and incorrect handling of use in extract_module.
  • #16861 ignore some warnings if they originate from macro expansions.
  • #16845 show compilation progress in test explorer.
  • #16847 distinguish integration tests from crates in test explorer.
  • #16820 don't auto-close block comments in strings.

Internal Improvements

  • #16819 improve rooted upmapping.
  • #16832 shrink MacroCallLoc.
  • #16841 use associated items as anchors for spans.
  • #16842 make proc macro definition site spans more resistant to invalidation.
  • #16844 replace Span with SyntaxContextId in MacroCallLoc.
  • #16771 don't desugar self parameter into a pattern.
  • #16335 compress file text using LZ4.
  • #16473 stop eagerly resolving inlay hint text edits for VS Code.
  • #16749, #16811 some method resolution clean-ups.
  • #16862 remove redundant clones
  • #16784 remove synstructure const hack support.
  • #16851 build linux-gnu releases on Ubuntu 20.04.

See also the changelog post.

2024-03-11

11 Mar 08:15
Compare
Choose a tag to compare

Changelog #224

Commit: 574e23e
Release: 2024-03-11 (v0.3.1877)

New Features

  • #16662, #16773, #16794 add test explorer (disabled by default, enable using rust-analyzer.testExplorer).
  • #15938, #16756 add hover display for trait assoc items

Fixes

  • #16723 (first contribution) complete constants inside format strings.
  • #16769 fix argument type inference with associated type impl Trait.
  • #16757 disable style lints by default (rust-analyzer.diagnostics.styleLints.enable).
  • #16759 fix "Go to definition" for constants inside range patterns.
  • #16778 bump rustc_pattern_analysis to fix a panic on mismatched types.
  • #16770 fix panic on float numbers without dots in chain calls (x.1e0).
  • #16779 skip match diagnostics for partially unknown types.
  • #16690 use four-space indentation in macro expansion.
  • #16752 don't allow destructuring of structs with no public fields.
  • #16766 keep attributes in "Generate delegate trait" assist.
  • #16775 remove accidental dependency between parse_macro_expansion and parse.
  • #16776 make SpanMap accesses lazy to avoid a salsa dependency.
  • #16777 don't invalid body query results when generating desugared names.
  • #16781, #16782 don't escape \ and $ in "Extract format expression".
  • #16719 add basic support for the VS Code Native Debug extension.

Internal Improvements

  • #16722 (first contribution) avoid some allocations.
  • #16748 compute syntax validation errors on demand.
  • #16755 use PATH For toolchain binaries.
  • #16785, #16786, #16787 simplify the parser code somewhat.
  • #16742 add parent-child relationship between SourceRoots.
  • #16703 add more methods for resolving AST definitions to their corresponding HIR types.
  • #16763 add index and parent_fn accessors to hir::Param.
  • #16772 add tracing spans to salsa databases.
  • #16708, #16751 move assist, diagnostics docs and lint definition generation into xtask codegen.
  • #16747 various clean-ups.
  • #16758 bump dependencies.

See also the changelog post.

2024-03-04

04 Mar 06:21
Compare
Choose a tag to compare

Changelog #223

Commit: 037924c
Release: 2024-03-04 (v0.3.1868)

New Features

  • #16638 (first contribution) add destructure_struct_binding assist.
  • #16651 add fill_record_pattern_fields assist.
  • #16687 support tuples in term search.
  • #16555, #16692 speed up completions by considering coherence.

Fixes

  • #16630 fix type inference of closures with predicates.
  • #16679 resolve modules in blocks in the ide layer.
  • #16647 fix false positive for dyn Trait in replace_filter_map_next_with_find_map.
  • #16678 fix panic when inlining callsites inside macro parameters.
  • #16684 don't panic on synthetic syntax in inference diagnostics.
  • #16691 fix completions panicking with certain macro setups.
  • #16693 prefer sysroot rustc in rust-project.json projects.
  • #16696, #16709 handle deref_mut and index_mut in index expressions.
  • #16727 don't highlight related associated items of supertraits.
  • #16702 ignore generic arguments in intra-doc link path resolution.
  • #16665 prioritize rustup sysroots over system ones.
  • #16695 revert doc-comment highlighting.

Internal Improvements

  • #16670 (first contribution) document NeoVim inlay hint configuration.
  • #16673 (first contribution) narrow down typos ignore list.
  • #16706 drop load-cargo dependency on ide.
  • #16738 bump rustc_pattern_analysis.
  • #16627 add repository URL and code sample sections to the bug report template.
  • #16669 merge BorrowKind::Unique into BorrowKind::Mut.
  • #16697 add RelPath::to_path_buf() method.
  • #16698 derive PartialEq, Eq and Hash for hir::Param.
  • #16705 add public function for resolving callable AST expressions to their HIR equivalents.
  • #16707 export SemanticsImpl from hir.
  • #16680 remove salsa compile-fail tests.

See also the changelog post.

2024-02-26

26 Feb 06:53
Compare
Choose a tag to compare

Changelog #222

Commit: 5346002
Release: 2024-02-26 (v0.3.1860)

New Features

  • #16489 (first contribution) create alias when renaming an import.
  • #16589 add unresolved-ident diagnostic.
  • #16303 add non-exhaustive-let diagnostic.
  • #16475 support multiple tab stops for edits in VSCode.

Fixes

  • #16358 (first contribution) de-duplicate references from macro expansions.
  • #16621 (first contribution) avoid setting RUSTC_BOOTSTRAP for build scripts, to prevent spurious recompiles.
  • #16590 fix remove-unnecessary-else false positives on if expressions.
  • #16616 try to fix potential server hang with build scripts.
  • #16645 fix deadlock between recreate_crate_graph and file_line_index.
  • #16618 don't escape { in assists.
  • #16637 account for string delimiters correctly in proc macro server.
  • #16606 render associated item owner in hover for items other than functions.

Internal Improvements

  • #16654 (first contribution) add -V shorthand for --version.
  • #16643, #16652 reduce salsa memory usage.
  • #16612 fetch toolchain and data layout for detached files.
  • #13112 set up handling of auto trait bounds, but leave it disabled due to performance problems.
  • #16617 attempt to add a timeout to rustc_tests.
  • #16648 pin rustc-tests commit.
  • #16649, #16650 disable rustc-tests metrics.
  • #16601 check out repository before running typos.
  • #16646 remove some repeated words.
  • #16668 sync from downstream.

See also the changelog post.

2024-02-19

19 Feb 09:36
Compare
Choose a tag to compare

Changelog #221

Commit: 68c506f
Release: 2024-02-19 (v0.3.1850)

New Features

  • #16092 (first contribution) introduce term search to rust-analyzer.
  • #16117 (first contribution) prioritize constructors and builders in completions.
  • #15923 improve support for ignored proc macros.
  • #15476 substitute $saved_file in custom check commands.

Fixes

  • #16550 (first contribution) activate on top level Cargo.toml and rust-project.json files.
  • #16530 fix macro transcriber emitting incorrect lifetime tokens.
  • #16541 highlight doc comments.
  • #16547 validate literals in proc macro server's FreeFunctions::literal_from_str.
  • #16544 only complete traits in impl ... for.
  • #16553 improve parser error recovery on = in record field initializer and patterns.
  • #16554 pass .cargo/config.toml environment variables to proc-macro server.
  • #16563 set RUSTUP_TOOLCHAIN and invoke the proxies instead of sysroot binaries.
  • #16247 fix build scripts not being rebuilt on some occasions.
  • #16574 fix needless_return false positives on trailing inner item declarations.
  • #16582 respect textual length of paths in find_path.
  • #16583 ignore type mismatches between {unknown} and non-{unknown} types.
  • #16586 remove cargo knowledge from CrateData.
  • #16569 place snippets correctly in multi-edit assists.
  • #16579 fix snippets being placed leftwards of where they should be.
  • #16559 fill in SCIP documentation fields.

Internal Improvements

  • #16588 (first contribution) parse (nightly) const and async trait bounds.
  • #16587 (first contribution) update GitHub actions and Node version.
  • #16576 (first contribution) add license files to lsp-server.
  • #15003 add basic support for become expressions (tail calls).
  • #16577 migrate assists to the structured snippet API, part 7 of 7.
  • #16446 implement literal_from_str in proc macro server.
  • #16537, #16545 make tool discovery prefer sysroot paths.
  • #16540 make macro_arg query always returns a TokenTree.
  • #16560 set channel override when querying the sysroot metadata.
  • #16558 update JsonProject to include optional fields.
  • #16562 add clippy and rustfmt problem matchers to CI.
  • #16573 remove salsa compile tests.
  • #16533 bump rustc_pattern_analysis.
  • #16585 bump actions/checkout to v4.
  • #16598, #16599, #16600 downgrade actions/checkout, actions/setup-node and Node in release workflow.
  • #16597 sync from downstream.

See also the changelog post.

2024-02-12

12 Feb 06:34
Compare
Choose a tag to compare

Changelog #220

Commit: c06ca6c
Release: 2024-02-12 (v0.3.1839)

New Features

  • #16510 add option to only run cargo check on the current package.
  • #16502 add unnecessary else diagnostic.
  • #16460 add trailing return diagnostic.
  • #16477 add incorrect case diagnostics for traits and their associated items.
  • #16454 add break and return postfix completions.
  • #16424 add support for converting let statements to guarded returns.
  • #15863 add UnindexedProject notification for LSP clients.

Fixes

  • #16487 (first contribution) improve Deref handling in "Generate getter" assist.
  • #16509 render visibility for tuple struct fields.
  • #16124 improve parser error recovery on missing arguments in call expressions.
  • #16484 preserve where clause when expanding built-in derive macros.
  • #16462 improve error message when proc-macros have not yet been built.
  • #16497 fix spacing when inlining functions defined in macros.
  • #16517 fix crash inside filter_unnecessary_bounds on missing generic parameter.

Internal Improvements

  • #16482 (first contribution) use boxed slice for Subtree::token_trees.
  • #16503 move salsa fork in-tree.
  • #16505 optimize input queries that take no arguments.
  • #16527 remove hack for self-referential SyntaxContexts.
  • #16467 migrate assists to the structured snippet API, part 6.
  • #16474 instrument more paths using tracing.
  • #16499 bump rustc_pattern_analysis.
  • #16525 abstract more over ItemTreeLoc-like structs.
  • #16470 lint against debug prints and disallowed types using Clippy.
  • #16500 run Clippy on Windows, not Linux.
  • #16518, #16519, #16521 enable more Clippy lints.
  • #16492, #16532 sync from downstream.

See also the changelog post.