New Features

Fixes

  • Improvements in new name resolution engine:
    • #6734 Fix name resolution of macro calls inside file included by include! macro

    • #6730 Support file-level cfg attributes

    • #6721 Support name resolution to multiple inline modules

    • #6720 Fix name resolution inside cfg-disabled inline modules

    • #6773 Use old name resolution in test/bench non-workspace crates

    Note, you can enable the new engine via Use experimental name resolution engine option in Preferences | Languages & Frameworks | Rust settings

  • Refactoring improvements:
    • #6874 Properly handle default type arguments in Extract Function (Refactor | Extract Method or Ctrl+Alt+M) refactoring

    • #6005 Delete redundant imports properly when performing Inline Function (Refactor | Inline... or Ctrl+Alt+N) refactoring on a function declared in a different module (by @SaarYogev)

    • #6695 Properly handle where clauses when converting between structs and tuples using Convert to block/tuple struct

  • #6869 Fix fetching info about items generated by build scripts. Note, the corresponding feature work only when org.rust.cargo.evaluate.build.scripts experimental feature is enabled

  • #6855 Do not show incorrect move errors on a function pointer type used as a type parameter

  • #6848 Support detecting E0116 “Inherent implementation defined for a type outside the current crate” for impls for trait objects

  • #6786 Take cfg attributes into account when performing control-flow analysis

  • #6655 Fix movement of match arms inside closures when performing Move Statement actions (by @t-kameyama)

  • #4765 Ignore underscore imports during duplicates detection

  • #6846 Properly change state of optional dependencies in Cargo.toml tables

  • #6818 Fix crate registry index parsing when using experimental local crates index. This feature is disabled by default for now. To use it, enable org.rust.crates.local.index experimental feature

Internal Improvements

  • #6459 Add Python typings for our LLDB/GDB pretty-printers to enable code analysis and completion in the prettyPrinters module

Full set of changes can be found here