• Extend cfg attributes support. Now the plugin takes into account features declared in Cargo.toml of external dependencies. Note, features declared in your workspace and stdlib are still ignored. The corresponding support includes highlighting of “disabled” code with gray foreground and ignoring code that shouldn’t be compiled with the current feature set while code analysis.
  • Equip paths in Cargo.toml with completion, navigation, and certain refactorings (for example, rename). Note, it requires the latest Toml plugin version

  • Detect invalid usages of default type parameters (by @rrevenantt)
  • Move support of Grazie plugin to IntelliJ Rust. This integration provides spelling and grammar checks for texts inside your Rust code, for example, in comments and strings literals. Due to some technical reasons, you need to install the latest versions of both plugins to make it work

  • Don’t show default generic types in inlay type hints. Note, this behavior can be configured via Preferences | Editor | Inlay Hints | Rust | Type Hints | Show obvious types option
  • Add Put struct literal fields on separate lines/one line intention (by @Kobzol)
  • Display info about impl block in Go to Implementations dialog (by @rrevenantt)

Fixes

  • Macros support improvements:
    • Parse macro calls with unbalanced braces better

    • Fix endless progress bar of macro expansion process

    • Make some optimizations of macro expansion processing with experimental expansion engine. In should improve IDE responsiveness while typing and speed up completion inside macro calls

    • Trigger highlighting update after changes in macro call. Previously, in some rare cases it was required additional changes in editor to rerun highlighting with new macro expansion engine

    • Avoid unnecessary parens around expressions in macro call expansions
  • Type inferences fixes and improvements:
    • Skip impls with rustc_reservation_impl attribute while type inference. It should fix some weird type inference results related to From trait

    • Correctly infer type of empty array. It fixes unexpected Type mismatch error annotations with [] literal
  • Fix false positive Unresolved reference error annotations for Self reference
  • Parse disambiguator :: in type references like Vec::<[i32; 8]> correctly. Also, mark :: as useless in such cases and provide quick fix to remove it
  • Consider test option is disabled inside cfg attributes in stdlib. It allows the plugin to ignore such items while name resolution
  • Fix incorrect highlighting of selected item introduced in some previous version
  • Do not throw exception on Complete Current Statement action
  • Apply Convert to type using 'From' trait quick fix for unnamed types like (i32, i32) properly
  • Provide Cannot assign twice to immutable variable error annotations for secondary assignments to immutable variable with compound operators like +=

Full set of changes can be found here