New Features

  • Type hints improvements:
    • Provide new interactive inlay type hints. Now you can collapse complex types in desired way, navigate to type declarations or even disable hints just from an editor. You can change settings of type hints in Preferences | Editor | Inlay Hints | Rust panel. Note, interactive inlay hints available only since 2019.2 and work only for types so far
    • Now type hints take into account type aliases for enum and structs
  • New intentions:
    • Add Replace .. with actual fields intentions for struct literals (by @shevtsiv)
    • Implement Put on separate lines and Put on one line intentions for enum variants and struct fields (by @t-kameyama)
  • Navigate to the corresponding Cargo.toml file when Goto super action is called for crate root file
  • Provide completion of macro fragment specifiers like ty, item, expr, etc. (by @t-kameyama)
  • Show items expanded from macros in Navigate | Class/Symbol dialogs for all scopes
  • Show stdout for successful tests. Previously, test output was shown only for failed tests because of lack of the corresponding support in libtest. Note, at this moment it only works with the nightly toolchain because the implementation is based on --show-output flag introduced recently and available only in the nightly compiler for now (by @emmericp)

Fixes

  • Debugger improvements:
    • Fix incorrect rendering of test results tree in Run tool window while debugging
    • Correctly parse build and run arguments to run debug process
  • Fix false positive Cannot move error annotation while using slice patterns
  • Fix false positive E0026 error annotation on a struct pattern with a raw identifier
  • Take into account crate re-exports via pub use item for 2018 edition
  • Fix sporadic Unresolved reference error annotations for valid code
  • Improve type inference with generic default type params
  • Fix Too few arguments for option exception while manual changing of run configuration command
  • Correctly auto import trait items if possible when UFCS form is using
  • Correctly handle trailing commas in Put on separate lines intentions

Internal Improvements

  • Add initial support of cfg attributes in the plugin’s analysis. For now, it’s turned off by default and doesn’t affect users because of incomplete implementation