New Features

  • #7640 Improve external ABI support:
    • Parse any literal in ABI name position (including raw strings) and annotate non-string literals as invalid (in the same way as rustc does)

      Non-string abi literal

    • Annotate invalid ABI names and experimental ABIs without the corresponding feature attribute

      Invalid abi name

    • Provide completion for ABI names

  • #7682 Detect E0121 in structs and enum variants (by @t-kameyama)

    The type placeholder `_` is not allowed within types on item signatures for structs and enum variants

  • #7646 Implement Expand into separate table intention to expand an inline TOML table into a full one

  • #7666 Show macro 2.0 items in Structure View (Ctrl+F12)

  • #7664 Improve parser recovery for function pointers (by @afetisov)

Performance Improvements

  • #7703 Suggest keywords much more quickly during Rust code completion


  • #7635, #7676 Take into account type aliases in most of intention actions, quick fixes, and refactorings (by @Kobzol)

  • #7557 Reduce the number of false-positive annotations caused by Self convention inspection (by @Kobzol)

  • #7692 Do not substitute type alias names for associated types in inlay hints like Chained method (by @Kobzol)

  • #7690 Import types after invoking Create function, Create struct and Create tuple struct intentions (by @Kobzol)

  • #7711 Fix some quick-fixes and intentions to make them work with aliased types properly. For example, Convert to String using `ToString` trait quick-fix now works even when the expected type is an alias for String type

  • #7638 Surround with unsafe inspection now works identically inside statements and tail expressions

  • #7598 Display implied shortcut reference links in quick documentation (by @shocoman)

  • #7582 Don’t show a completion popup automatically when typing a let binding identifier starting with a lowercase letter. You still can invoke the completion explicitly (using Ctrl+Space, for example)

  • #7668 Do not offer the Make public quick-fix on method calls from trait impls (by @Kobzol)

  • #7614 Allow removing Build step in Cargo Command configurations

Internal Improvements

  • #7711 Introduce Ty.isEquivalentTo(Ty) for Tys comparison. Unlike ==, it ignores aliasedBy field

Full set of changes can be found here