New Features

  • Language support improvements:
  • #3935 Partially support include macro. Now if include macro invocation contains only string literal, all common code insight features (like name resolution, code completion, etc.) will work in both including and included files

  • #3640 Make more precise navigation when an element is generated by a macro. Note, it works only when the new macro expansion engine is enabled. You can turn it on via Preferences | Languages & Frameworks | Rust | Expand declarative macros option

  • #3832, #3980 Add detection of the new compiler errors: E0132, E0322 and E0328 (by @mibac138)

  • #3952 Provide completion while typing in GDB and LLDB consoles

  • #4034 Support default type params while type inference. It also should fix incorrect code generation by Implement members quick fix for types with default type params

  • #3961 Make possible to disable File is not included in module tree editor notification

Fixes

  • #3749 Improve performance of marco name resolution. It should speed up the macro expansion task produced by new experimental macro expansion engine

  • #4045 Make Add format string argument intention work properly when format macro has additional args like write!(f, "")

  • #4029 Fix false positive E0118 error annotations for primitive type impls in stdlib (by @mibac138)

  • #4023 Fix multiple name resolution result for procedural macros (by @fedochet)

  • #3898 Highlight exit points better (by @rrevenantt)

  • #3988 Do not show Unresolved reference error annotation for methods with multiple declaration (e.g. with different cfg attributes)