New Features

  • #10059 Show the contents of references and pointers when debugging with LLDB. For example, now the content of &Vec, *const Vec and *mut Vec is rendered, in addition to previously supported Vec.

  • Attribute procedural macro improvements:

    • #10236 Show parameter hints inside attribute procedural macros

    • #10230 Show hints for chained method calls inside attribute procedural macros

    • #10182 Make intentions work inside an attribute macro expansion

    Note that attribute procedural macro expansion is disabled by default. If you want to try it out, enable org.rust.macros.proc.attr experimental feature.

  • #10200 Highlight that an underscore expression (_) can only be used in the left-hand side of an assignment

  • Detect new compiler errors:

    • #10193 Annotate mismatched members in trait implementation (E0323, E0324, E0325)

    • #10179 Annotate when an inherent implementation was written on a dyn auto trait (E0785)

    • #10176 Detect if the Copy trait was implemented on a type that is neither a struct nor an enum (E0206)


  • #10260 Fix the Invert if condition intention when there is another if after the current one

  • #10215 Fix false-positive detection of unreachable code with let else syntax (by @White-Green)

  • #10196 Don’t run some inspections on Rust files outside a valid Cargo project to avoid expected false-positive errors

  • #10096 Improve support for multiple attribute macro calls on a single item

  • #7910 Fix Before launch configurations for Cargo command configurations

Internal Improvements

  • #10231 Provide plugin sources along with the plugin archive to simplify plugin development with IntelliJ Rust plugin as a dependency

  • #10221 Make 2023.1 the default platform for development

  • #10218 Now all macros are expanded by default in all RsTestBase-based tests and the @ExpandMacros annotation is not needed there anymore

  • #10229 Provide RsDiagnostic-based API for quick-fixes with arbitrary ranges

Full set of changes can be found here