Skip to content

Releases: rust-lang/rust-analyzer

2023-10-16

16 Oct 05:58
Compare
Choose a tag to compare

Changelog #203

Commit: 6572ec8
Release: 2023-10-16 (v0.3.1697)

New Features

  • #15728 (first contribution) VS Code: support opening local documentation if available:

    local_docs.webm

  • #15743, #15752, #15755 (first contribution) add assist to convert is_some / is_ok and to if let:

    "Screen recording showing an assist that rewrites if a.is_some() to if let Some(_tmp) = a, and similarly for is_ok

  • #15681 (first contribution) add rust-analyzer.rust.analyzerTargetDir option to use rust-analyzer specific target directory.

  • #15696 add tuple return to tuple struct assist:

    tuple_return_type_to_tuple_struct.webm

Fixes

  • #15744 (first contribution) add diagnostics for char and byte literal errors:

    Screenshot showing errros on invalid char and byte literal

  • #15713 offer prefix match flyimport completions for one and two character paths:

    Screenshot showing IpAddr, Ipv4Addr and Ipv6Addr completions for Ip

Internal Improvements

  • #15745 (first contribution) add Zed to the manual IDE list.
  • #15725 fix automatic rustc / rustdoc lint generation.
  • #15618 port anymap to stdx.
  • #15760 make some mir::ProjectionStore methods public.
  • #15762 try to use deploy key in the metrics workflow.
  • #15691 update rustc_abi dependency.

See also the changelog post.

2023-10-09

09 Oct 06:09
Compare
Choose a tag to compare

Changelog #202

Commit: b1f89a8
Release: 2023-10-09 (v0.3.1689)

New Features

  • #15668 (first contribution) add backtick to surrounding and auto-closing pairs.

  • #15700 add assist for applying De Morgan's law to Iterator::all and Iterator::any:

    IteratorDeMorgans.webm

  • #15707 allow configuring the status bar click action in VS Code.

Fixes

  • #15690 (first contribution) fix line and column regex in the VS Code problem matcher.
  • #15701 strip base prefix in layout_scalar_valid_range.
  • #15698 allow more kinds of if-let patterns in guarded return assist.
  • #15709 recognize #[export_name = "main"] function as binary entrypoint for runnables.
  • #15641 fix path syntax produced by the into_to_qualified_from assist.
  • #15600 ensure rustfmt runs when configured with ./.

Internal Improvements

  • #15721 shrink PatPtr by swapping its AstPtr and Either wrap order.

See also the changelog post.

2023-10-02

02 Oct 06:14
Compare
Choose a tag to compare

Changelog #201

Commit: 0840038
Release: 2023-10-02 (v0.3.1681)

New Features

Fixes

  • #15662 fix panic in wrapping and unwrapping Result return type assists.
  • #15667 make bool_to_enum assist create enum at top-level.
  • #15682 recover better on missing parameter in parameter list.
  • #15688 make rustc_layout_scalar_valid_range attributes work for non-decimal literals.
  • #15692 don't trigger completion when typing underscore in types or patterns.

Internal Improvements

  • #15680 (first contribution) re-generate lints.rs.
  • #15633 allow customizing SCIP config.
  • #15677 allocate AST ids for parameters.
  • #15686 only run tests on Linux for pull requests.

See also the changelog post.

2023-09-25

25 Sep 05:42
Compare
Choose a tag to compare

Changelog #200

Commit: 862a300
Release: 2023-09-25 (v0.3.1673)

New Features

  • #15582 (first contribution) add option to show full signatures in completion docs.
  • #15484 add "bool to enum" assist, to replace variables, fields, constants and statics with a new enum.

Fixes

  • #15621 (first contribution) give unmerge_use a label explaining what it will affect.
  • #15651 wrap inlined closures in parentheses.
  • #15635 compute inlayHint.textEdit eagerly for VS Code.
  • #15587 fix autoimport on traits already imported as _.

Internal Improvements

  • #15615 (first contribution) fix some Clippy lints.
  • #15620 (first contribution) change exclude_labels to exclude_titles in triagebot config.
  • #15632 use load_workspace_at for rust-analyzer scip.
  • #15492 extend check.overrideCommand and buildScripts.overrideCommand docs.
  • #15616 use in-tree rustc dependencies with a cfg flag.
  • #15637 update chalk.
  • #15432, #15594 de-unwrap inline_call, add_missing_match_arms, convert_comment_block and desugar_doc_comment.

See also the changelog post.

2023-09-18

18 Sep 06:01
Compare
Choose a tag to compare

Changelog #199

Commit: 0566644
Release: 2023-09-18 (v0.3.1665)

Fixes

  • #15597 (first contribution) update field shorthands in promote_local_to_const.
  • #15232 disallow renaming of non-local items.
  • #15601 "temporarily" skip declaration checks in derive expansions.
  • #15625 don't skip closure captures after let-else.
  • #15611 prefer stable paths in import path.
  • #15606 fix above_whole_item lens location breaking lenses.

Internal Improvements

  • #15431 de-unwrap extract_function.
  • #15609 remove most of the duplication from Semantics{,Impl} using deref.

See also the changelog post.

2023-09-11

11 Sep 05:03
Compare
Choose a tag to compare

Changelog #198

Commit: 326f37e
Release: 2023-09-11 (v0.3.1657)

New Features

  • #15578 diagnose mismatched argument count for tuple struct patterns:

    A screenshot showing an error on let S(a, b) = todo!()

  • #15584 diagnose private fields in record constructor:

    A screenshot showing an error when using a private field in a pattern

  • #15557 parse builtin# syntax and add type checking for builtin#offset_of.

  • #15559 implement builtin#format_args, using rustc's format_args parser.

  • #15532 on-type format (, by adding closing ) automatically.

  • #15573 add "into to qualified from" assist.

  • #15524 add "Bind unused parameter" assist.

  • #15528 enable cfg(rust_analyzer) when code is being analyzed.

Fixes

  • #15574 use crate name for CARGO_CRATE_NAME.
  • #15577 clear native diagnostics for closed files.

Internal Improvements

  • #15568 replace format_args parser with upstream fork.
  • #15565 implement write_via_move intrinsic for MIR eval.
  • #15571 remove allocation on MIR eval memory write.
  • #15567 ignore enum variants in analysis stats of MIR bodies.
  • #15575 intern projections in MIR place.
  • #15430 de-unwrap wrap_return_type_in_result.
  • #15529 do not send inlay hint refresh requests on file edits.
  • #15522 resolve inlay hint data lazily.
  • #15586, #15592 shrink some stuff.
  • #15564 use current folder's rustfmt.toml with custom configurations.
  • #15560 when using rust-project.json, prefer the sysroot-defined rustc over discovery in $PATH.
  • #15558 remove rust-analyzer.discoverProjectCommand in favor of a companion VS Code extension.

See also the changelog post.

2023-09-04

04 Sep 06:00
Compare
Choose a tag to compare

Changelog #197

Commit: 2df30e1
Release: 2023-09-04 (v0.3.1649)

Fixes

  • #15527 respect #[allow(unused_braces)].

Internal Improvements

  • #15465 fix cargo handle logging in flycheck.
  • #15542 less once_cell, more std.
  • #15543 remove some allocations in borrowck.
  • #15544 shuffle some locking around.
  • #15549 add a few more db.unwind_if_cancelled() calls.
  • #15548 restructure some modules in the rust-analyzer crate.
  • #15551 move doc-comment handling into ide-db.
  • #15552 bump rustc-perf checkout for metrics, replace webrender, diesel and ripgrep with newer versions.
  • #15553 add hyper 0.14.18 to metrics.

See also the changelog post.

2023-08-28

28 Aug 09:16
Compare
Choose a tag to compare

Changelog #196

Commit: 144526c
Release: 2023-08-28 (v0.3.1641)

New Features

  • #15374 (first contribution) implement extern crate completion.

Fixes

  • #15512 update offset intrinsic to match 1.72.
  • #15517 fix unknown label diagnostics for while let loop with label in condition.

Internal Improvements

  • #15385 (first contribution) pass target in proc-macro-test to fix cross-compilation on Darwin hosts.
  • #15490 fix help text for rust-analyzer.check.invocation{Strategy,Location}.
  • #15503 report the rust-analyzer version in the SCPI metadata.
  • #15494 sync from downstream.
  • #15523 use RUSTC_BOOTSTRAP when running analysis-stats on the standard library.
  • #15495 unpin serde.

See also the changelog post.

2023-08-21

21 Aug 08:59
Compare
Choose a tag to compare

Changelog #195

Commit: 83b3ba1
Release: 2023-08-21 (v0.3.1631)

New Features

  • #15477 record import aliases in symbol index.
  • #15446 add status bar button to toggle check on save.

Fixes

  • #15463 show generic constant defaults in hover.
  • #15473 honor #[doc(hidden)] in auto-import and completions.
  • #15383 suggest type completions for type arguments and constant completions for constant arguments.
  • #15418 fix signature help of methods generated by macros.
  • #15410 rewrite De Morgan's assist to avoid string manipulation.
  • #15179 substitute default values of const params in "Add missing members".
  • #15420 increase the buffer size for the discover project command.

Internal Improvements

  • #15466 add offset param to token descend API.
  • #15472 record import origins in ItemScope and PerNs.
  • #15426, #15429, #15434 de-unwrap convert_to_guarded_return, generate_delegate_methods and generate_derive.
  • #15461 always collect memory usage info in analysis-stats.
  • #15482 pin serde to the last non-blobby release.

See also the changelog post.

2023-08-14

14 Aug 07:27
Compare
Choose a tag to compare

Changelog #194

Commit: 2fbe69d
Release: 2023-08-14 (v0.3.1623)

New Features

  • #15262 (first contribution) add rust-analyzer.check.ignore setting to ignore specific check diagnostics.

Fixes

  • #15350 handle #[cfg]s on generic parameters.
  • #15405 support doc links that resolve to fields.
  • #15416 correctly display fully-qualified associated types correctly.
  • #15419 add MIR lowering support for tuple destructing assignment.
  • #15415 fix float parser hack creating empty NameRef tokens.
  • #15250 don't use control flow when keeping the tail expression of the original function.
  • #15445 fix only_types config filtering out traits from world symbols.
  • #15438 fix parser getting stuck in eager macro inputs.

Internal Improvements

  • #15217 (first contribution) convert unwrap to expect in lsp-server and add a debug log.
  • #15422 record import source IDs.
  • #15435 derive block attributes from block item tree.
  • #15436 preserve resolve_obligations_as_possible allocation across calls.
  • #15423, #15433 de-unwrap convert_named_struct_to_tuple_struct and remove_unused_imports.
  • #15417 use Cast::cast() instead of explicit interning.
  • #15428 fix pinned version of lsp-types.
  • #15421 add more error context when failing to invoke the Rust toolchain.

See also the changelog post.