New Features

  • Improve Use of moved value inspection:
    • #4690 Take into account macro expansions while analysis
    • #4687 Detect Use of moved value error in loops, lambdas and if expressions better
  • #4615 Make initial REPL integration. You can try it in Rust Console tool window. The current implementation includes syntax highlighting, basic completion and command history. Under the hood, it uses evcxr util, so the integration requires this util to be installed. If you don’t have it yet, the plugin suggests installing it in one click after the first usage of Rust Console tool window. For now, it’s disabled by default. To turn it on, you need to enable org.rust.ide.repl.tool.window option in Experimental Features dialog (by @dima74)

  • #4415 Provide detection of importing items with same names (see E0252) (by @rrevenantt)

    report duplicate imported names

  • #4619 Allow to manually choose arguments in Extract Function dialog (Ctrl+Alt+M/Cmd+Alt+M) (by @Stzx)

Fixes

  • #4698 Show cached compilation warnings in Build tool window. Note, Build tool window is experimental at this moment. To turn it on, you can enable org.rust.cargo.build.tool.window option in Experimental Features dialog

  • #4696 Pass --edition=2018 to rustfmt if needed. It should fix the issue when code with keywords from 2018 edition (like async or await) is not formatted by Reformat File with Rustfmt action

  • Macro support improvements:
    • #4694 Fix matching $($ e:expr,)+ group in macros

    • #4695 Produce less unnecessary parens around exprs while macro expansion

    • #4689 Don’t make full revalidate of macro expansions after Show single step/recursive macro expansion actions

  • #4671 Process default type parameters by Move type constraint to parameter list and Move type constraint to where clause intentions properly. Previously, these intentions removed default type parameters (by @rrevenantt)

  • #4701 Fix exception produced by Reformat Code action (Ctrl+Atl+L/Cmd+Atl+L) while indexing

  • #4715 Do not suggest Put parameters/arguments/fields/variants on separate lines/one line intentions for code with comments to avoid generation of broken code (by @t-kameyama)

Internal Improvements

  • #4704 Make 2019.3 platform default for development

Full set of changes can be found here