New Features

  • #7914, #8029 Use info calculated by new name resolution engine for Import quick-fix and completion of out-of-scope items. It brings:
    • Better processing of complex re-exports, including proper visibility handling
    • Significant performance improvement
    • Auto-import for macros

  • #7798 Support let else syntax

  • #7898 Provide completion of the rust-version field in the [package] table of the Cargo.toml manifest (by @HTG-YT)

    rust_version completion

  • #7928 Enable Unresolved reference inspection for attribute macros if org.rust.macros.proc experimental feature is enabled

Performance Improvements

  • #7944 Slightly optimize Find usages for public items in binary crates

  • #7936 Slightly optimize memory consumption of name resolution internal structures

Fixes

  • #8033 Fix name resolution of explicit type-qualified associated types in type aliases (like type Alias<T> = <T as Trait>::Item;). Particularly, this fixes type inference in hecs library

  • #8025 Fix type inference for breaks out of the loop nested within expression blocks (by @afetisov)

  • #8022 Fix expansion of procedural macros that contain _ in the macro body

  • #8006 Simplify negation of boolean literal (e.g. in Invert if condition intention)

  • #8004 Allow deeper path nesting in parser. This fixes deep nested type qualifiers and fixes code insight in projects like diesel

  • #7993 Don’t try to detect procedural macros in stdlib to avoid attempts to expand unstable built-in attributes

  • #7989 Highlight errors in single string literal argument of panic! macro according new rules in 2021 edition

  • #7987 Take into account type aliases in Add safe cast quick fix

  • #7963 Fix parsing of const generic arguments and defaults

  • #7933 Show the Import quick fix higher in intention list (by @Kobzol)

Full set of changes can be found here