This is the last release that supports the 2022.3 IDEs. To receive plugin updates further, please upgrade your IDE to 2023.1.

New Features

  • Detect new compiler errors:

    • #10406 The not cfg-predicate was malformed E0536

    • #10387 A non-ident or non-wildcard pattern has been used as a parameter of a function pointer type E0561

    • #10399 async non-move closures with parameters are currently not supported E0708

    • #10361 Variadic parameters have been used on a non-C ABI function E0045

  • #10315 Support extracting code containing control flow in Extract function refactoring (Refactor | Extract Method or Ctrl+Alt+M)

  • #9219 Adjust new Rust project generator to new project wizard in IDEA

  • #10398 Highlight constants and statics differently to visually distinguish them. You can change the corresponding highlighting via Preferences | Editor | Color Scheme | Rust settings

  • #10359 Annotate built-in attributes (by @kuksag)

    • Check that the proper delimiter is applied when specifying an attribute

    • Check that attribute format is conforming with the respective template

    • Check that no literal suffixes are used when specifying an attribute

    • Check if an attribute is used multiple times on the same item

  • #9551 Allow to configure the channel and environment variables for external linters. You can configure it in Settings | Languages & Frameworks | Rust | External Linters

  • #9287 Enable Debugger, Profiler, Valgrind, Code Coverage, and Build/Test tool windows for bench command (CLion only). Note, default bench profile doesn’t contain debuginfo. You have to use, for example, dev profile (add --profile=dev to your command)

  • #8161 Allow loading NatVis debugger renderers when using MSVC toolchain on Windows

  • #8207 Add an experimental option to use source-based coverage

  • #8087 Add a quick-fix for type mismatch E0308 error that adds a #[repr(...)] attribute to an enum: (by @serid)

Fixes

  • #10410 Parse and expand macros in attributes: #[doc = foo!()]

  • #10367 Properly build local crate index to provide completion of crate names and version in Cargo.toml after collapsing cargo git crate index into one commit

  • #8147 Render const generics in quick docs and inline hints

  • #9254 Fix Needless lifetimes inspection in case of async functions

  • #9740 Support smart enter for type aliases

  • #8762 Fix running build if Cargo project is in a subdirectory

  • #10382 Fix formatting and links in descriptions of some intentions and inspections

  • #10396 Reduce the error scope for E0130, E0561 and E0642 compiler errors from value parameter to pattern

  • #8908 Fix a bug when applying changes to multiple configurable (e.g. Rust and Cargo) at once

  • #7917 Fixes E0518 error detection when there is cfg-disabled import of inline proc macro

  • #7141 Fix completion of derive proc macro with doc(hidden) attribute in imports

  • #10380 Fix showing error when assigning value to union field outside unsafe block

  • #9948 Allow cargo packages installed via cargo install --path (by @joshuataylor)

  • #10361 Don’t show error function cannot be variadic when use default ABI

Internal Improvements

  • #10389 Extend MIR support with most basic cases (by @LebedevEA)

  • #10388 Migrate tests to JUnit4

  • #10146 Generate info about built-in attributes

Full set of changes can be found here