New Features

  • Improve Use of moved value inspection:
    • Take into account macro expansions while analysis
    • Detect Use of moved value error in loops, lambdas and if expressions better
  • 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)

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

    report duplicate imported names

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

Fixes

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

    • Fix matching $($ e:expr,)+ group in macros

    • Produce less unnecessary parens around exprs while macro expansion

    • Don’t make full revalidate of macro expansions after Show single step/recursive macro expansion actions
  • 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)
  • Fix exception produced by Reformat Code action (Ctrl+Atl+L/Cmd+Atl+L) while indexing
  • 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

  • Make 2019.3 platform default for development

Full set of changes can be found here