Skip to content

Releases: rust-lang/rust-analyzer

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

2024-08-26

26 Aug 06:01
Compare
Choose a tag to compare

Commit: 7106cd3
Release: 2024-08-26 (v0.3.2086)

New Features

  • #17936 implement module_path!.
  • #17857 allow declaring cfg groups in rust-project.json.
  • #17927, #17955 speed up search for short associated functions.

Fixes

  • #17942 implement floating point casts in const eval.
  • #17958 Consider Deref impls in trait method completions.
  • #17960 use extra_test_bin_args in Test Explorer runner.
  • #17925 include generics when lowering extern type.
  • #17928 keep comments in "Convert while to loop".
  • #17924 fix panic when a TAIT exists in a RPIT.
  • #17932 fix semantic highlighting panics during start-up.
  • #17939, #17948 improve handling of Sized predicates.
  • #17943 improve proc macro panic message and workspace loading failure diagnostic.
  • #17912, #17946 run flycheck without reverse dependencies when target is specified.
  • #17949 watch build files from rust-project.json.
  • #17956 keep original error when retrying cargo metadata with --no-deps.
  • #17913 add workspace-level config to rust-analyzer.toml.

Internal Improvements

  • #17888 remove invocationLocation in favor of invocationStrategy.
  • #17886 wait for cache priming before reporting that the server is ready.
  • #17898 improve macro token mapping heuristics.
  • #17961 don't allocate autoderef steps when not needed.
  • #17930 remove the ability to configure the user config path.

See also the changelog post.

2024-08-19

19 Aug 04:15
Compare
Choose a tag to compare

Commit: fa00326
Release: 2024-08-19 (v0.3.2078)

New Features

  • #17845 implement TAIT and fix ATPIT.
  • #17853 support min_exhaustive_patterns.
  • #17595 implement lifetime inference.
  • #17915 make rust-analyzer partially work while offline.

Fixes

  • #17833 (first contribution) reuse recursion limit as expansion depth limit.
  • #17900 (first contribution) add option to exclude vendored libraries from SCIP/LSIF output.
  • #17864 build and run build scripts for LSIF.
  • #17859 support #[rustc_deprecated_safe_2024].
  • #17905 properly account for editions in names.
  • #17863 resolve included files to their calling modules in IDE layer.
  • #17865 emit non-exhaustive let diagnostics for async and unsafe blocks.
  • #17882 fix panic while canonicalizing erroneous projection type.
  • #17893 fix panic on associated functions with type annotations.
  • #17916 fix panic while lowering impl Trait parameter of parent generics.
  • #17867 handle trailing excess comma in "Convert to named struct".

Internal Improvements

  • #17903 (first contribution) don't kill the flycheck process command group.
  • #17908 test for word boundary in FindUsages.
  • #17842, #17843 optimize channel usage.
  • #17850 send back empty responses while the VFS is still loading.
  • #17876 remove unreachable logic for include token mapping.
  • #17896 check the edition for edition-dependent syntax kinds.
  • #17891 be more resilient to bad language item definitions in binary operator inference.
  • #17907 replace once_cell with the std types.
  • #17862 fix auto-publishing workflow.
  • #17909 remove rust-analyzer.workspace.discoverProjectRunner.

See also the changelog post.