Skip to content

Releases: rust-lang/rust-analyzer

nightly

07 Jul 00:34
Compare
Choose a tag to compare
nightly Pre-release
Pre-release
Auto merge of #17551 - Veykril:has-errors, r=Veykril

Also mark InferenceResult::has_errors flag when there are error types

Should work around https://github.com/rust-lang/rust-analyzer/issues/15090#issuecomment-2211647133

2024-07-01

01 Jul 05:06
Compare
Choose a tag to compare

Commit: ea7fdad
Release: 2024-07-01 (v0.3.2020)

Fixes

  • #17467 (first contribution) allow "Bool to enum" assist on function parameters.
  • #17505 fix stack overflow with TAITs.
  • #17481 allow pattern completions in let statements.
  • #17471 keep parentheses for calls of function-like fields.
  • #17513 fix completions after async.
  • #17518 fix expression scope calculation in macro expansions.
  • #17488 fix duplicate snippets showing up on hover.
  • #17516 allow disabling borrow checking in term search and don't emit explicit generics.
  • #17411 improve hover text in unlinked file diagnostics.

Internal Improvements

  • #17478 simplify and speed up data constructor term search tactic.
  • #17487 small memory usage optimizations.
  • #17519 move dylib version testing to proc-macro-srv.
  • #17520 some proc-macro-srv clean-ups.
  • #17501 allow non-org members to assign area labels.

See also the changelog post.

2024-06-24

24 Jun 05:05
Compare
Choose a tag to compare

Commit: 2fd803c
Release: 2024-06-24 (v0.3.2011)

New Features

  • #17438 (first contribution) add Toggle LSP Logs command.

Fixes

  • #17419 (first contribution) don't expand built-in macros in Expand macros recursively.
  • #17431 add space after specific keywords in completion.
  • #17459 include async keyword in completions.
  • #17442 handle end of input in pat fragment parsers.
  • #17415 only show unlinked-file diagnostic on first line during startup.
  • #17426 handle character boundaries for wide chars in extend_selection
  • #17457 actually prevent cycles in the source_root_parent_map.
  • #17461 fix panic when cancelling flycheck.
  • #17462 fix IDE features breaking in some attribute macros.
  • #17469 handle ItemInNs::Macros when converting ModuleItem to ItemInNs.
  • #17449 add associated item constants tactic for term search.
  • #17439, #17464 properly prime all crate def maps in parallel_prime_caches.
  • #17440 fix and cleanup VS Code task building.

Internal Improvements

  • #17434 (first contribution) document for parameter inlay hints heuristics.
  • #17456 (first contribution) remove conflict warning with panicbit.cargo.
  • #17473 tidy up generics handling in hir-ty.
  • #17474 avoid some allocations in hir-ty.
  • #17455 tidy up the VS Code extension a bit.
  • #17435 fix manual generation instructions.

See also the changelog post.

2024-06-17

17 Jun 04:43
Compare
Choose a tag to compare

Commit: 6b8b8ff
Release: 2024-06-17 (v0.3.2002)

New Features

  • #17372 compute native diagnostics in parallel.
  • #17364 show type bounds from containers when hovering on functions.
  • #17374 allow choosing logical cores for cache priming threads.
  • #16840 allow arbitrary commands for runnables in rust-project.json.

Fixes

  • #17412 (first contribution) add a breaker to avoid infinite loops with source root cycles.
  • #17381 ensure that a SourceRoot cannot be its own parent.
  • #17380 remove again extra parse cache from Semantics.
  • #17394 fix HirDisplay stack overflow for Self parameter defaults.
  • #17407 avoid doubling Cargo args in runnables.

Internal Improvements

  • #17405, #17406 avoid unnecessary ModPath clones.
  • #17377 improve HIR formatting.
  • #17392 rename ${length()} to ${len()} in MBE.
  • #17398 remove FileId::BOGUS.
  • #17418 fix rustdoc warnings.
  • #17417 prefer a trait over the impl_intern_value_trivial macro.

See also the changelog post.

2024-06-11

11 Jun 07:52
Compare
Choose a tag to compare
Auto merge of #17381 - roife:fix-issue-17378, r=Veykril

fix: ensure that the parent of a SourceRoot cannot be itself

fix #17378.

In `FileSetConfig.map`, different roots might be mapped to the same `root_id` due to deduplication in `ProjectFolders::new`:

```rust
// Example from rustup
/Users/roife/code/rustup/target/debug/build/rustup-863a063426b56c51/out
/Users/roife/code/rustup
```

In `source_root_parent_map`, r-a might encounter paths where their SourceRootId (i.e. `root_id`) is identical, yet one the them is the parent of the another. This situation can cause the `root_id` to be its own parent, potentially leading to an infinite loop.

This PR resolves such cases by adding a check.

2024-06-10

10 Jun 03:44
Compare
Choose a tag to compare

Changelog #237

Commit: b427d46
Release: 2024-06-10 (v0.3.1992)

New Features

  • #17282 (first contribution) hide items starting with __ from symbol search.
  • #17058 add basic, unstable support for rust-analyzer.toml.

IMPORTANT: We don't promise any stability with this feature yet, any configs exposed may be removed again, the ordering may change etc.

Fixes

  • #17352 do not resolve prelude within block modules.
  • #17350 highlight unlinked files more proeminently.
  • #17360 don't touch foreign sources when renaming imports.
  • #17333 check for snippet support in extract_expressions_from_format_string.
  • #17329 don't mark #[rustc_deprecated_safe_2024] functions as unsafe.
  • #17353 fix hover action formatting.
  • #17308 prioritize local crates in auto-import.

Internal Improvements

  • #17346, #17368 (first contribution) add submenus to GUI VS Code extension settings.
  • #17340 improve find_path performance.
  • #17004 cache macro calls more aggressively in Semantics.
  • #17312 add Function::fn_ptr_type(…) for obtaining name-erased function types.
  • #17348 use fallible indexing in TypeOrConstParam::source(…) and LifetimeParam::source(…).
  • #17365 expose snippet capability to diagnostic quickfixes.
  • #17375 don't intern attribute inputs, as their spans make them unique.
  • #17341 clean up inert attribute handling.
  • #17356 prefer shorthand tracing::span macros.
  • #17315 use string interpolation in more places.
  • #17359 add version info to VS Code status bar item.

See also the changelog post.

2024-06-03

03 Jun 05:35
Compare
Choose a tag to compare

Changelog #236

Commit: 7852a4c
Release: 2024-06-03 (v0.3.1983)

New Features

  • #17253 (first contribution) add assist to toggle between normal and doc-comments.
  • #17258 (first contribution) add assist to toggle async sugar.
  • #17328 enable completions within derive helper attributes.

Fixes

  • #17302 fix diagnostics clearing when flycheck runs per-workspace.
  • #17326 fix container search for tokens originating within derive attributes.
  • #17291 handle generics in type constructor term search tactic.

Internal Improvements

  • #17278 (first contribution) replace command-group with process-wrap.
  • #17337 include path info in AbsPathBuf::assert panic message.

See also the changelog post.

2024-05-27

27 May 06:30
Compare
Choose a tag to compare

Changelog #235

Commit: 71a816a
Release: 2024-05-27 (v0.3.1975)

New Features

  • #17268 retain more information about callables.

Fixes

  • #17248 (first contribution) only clear diagnostics after new ones were received.
  • #17140 (first contribution) handle {self} when removing unused imports.
  • #17295 (first contribution) use correct key for environment variables with the C/C++ extension.
  • #17270 consider implied bounds from associated types in completion.
  • #17174 infer type of async blocks with tail return.
  • #17251 resolve extern prelude for modules nested in blocks.
  • #17277 fix various find_path issues.
  • #17279 fix format_args lowering.
  • #17284 use correct toolchain channel when generating built-in type doc links.
  • #17275 fix inconsistent working directory for Run and Debug commands.

Internal Improvements

  • #17296 (first contribution) avoid clone when constructing runnable label.
  • #17287 allow sysroot to only consist of the source root dir.
  • #17252 refactor prefer_no_std and prefer_prelude bools into a struct.

See also the changelog post.

2024-05-20

20 May 05:09
Compare
Choose a tag to compare

Changelog #234

Commit: 21ec8f5
Release: 2024-05-20 (v0.3.1966)

Note

Because of an infrastructure issue, this release is not available on the VS Code Marketplace.
Of course, you can still download and install the VSIX from GitHub Releases.

Fixes

  • #17203 fix OOM caused by term search.
  • #17227 hash file contents to verify it actually changed.
  • #17225 interleave function-like and attribute macro expansion in "Expand macro recursively".
  • #17220 improve confusing literal hovers.
  • #17187 keep parentheses in De Morgan's law assist when the precedence of inner expression is lower.
  • #17216 respect path attribute in "Extract module to file".
  • #17232 don't emit --keep-going with custom build script commands.

Internal Improvements

  • #17250 (first contribution) fix Neovim 0.10 inlay hints config example.
  • #17241 (first contribution) fix some typos.
  • #17221 make macro parse tree validation lazier.
  • #17195 implement unsafe attribute parsing.
  • #17228 sort computed runnables.
  • #17243 add StaticLifetime to hir API.
  • #17235, #17238, #17239, #17240 tweak metrics CI caching.
  • #17224 bump Cargo.lock dependencies.
  • #17259 sync from downstream.

See also the changelog post.

2024-05-13

13 May 05:13
Compare
Choose a tag to compare

Changelog #233

Commit: 5bf2f85
Release: 2024-05-13 (v0.3.1958)

Fixes

  • #17192 fix source range for INT_NUMBER in completion.

Internal Improvements

  • #17207 report all LSP protocol errors with invalid_data.
  • #17208 report both I/O and main loop thread errors.

See also the changelog post.