New Features

  • Change Signature refactoring (Refactor | Change Signature or Ctrl+F6) now allows you to specify a default value for new parameters (by @Kobzol)

  • Suggest installing wasm32-unknown-unknown target if it is not installed yet when you try to execute wasm-pack run configuration

Fixes

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

    • Support file-level cfg attributes

    • Support name resolution to multiple inline modules

    • Fix name resolution inside cfg-disabled inline modules

    • 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:
    • Properly handle default type arguments in Extract Function (Refactor | Extract Method or Ctrl+Alt+M) refactoring

    • 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)

    • Properly handle where clauses when converting between structs and tuples using Convert to block/tuple struct
  • 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
  • Do not show incorrect move errors on a function pointer type used as a type parameter
  • Support detecting E0116 “Inherent implementation defined for a type outside the current crate” for impls for trait objects
  • Take cfg attributes into account when performing control-flow analysis
  • Fix movement of match arms inside closures when performing Move Statement actions (by @t-kameyama)
  • Properly change state of optional dependencies in Cargo.toml tables
  • 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

  • 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