IntelliJ Rust Changelog #119
New Features
-
#4936 Provide name resolution of items declared in
impl
blocks for type aliases. Taking performance into account, this feature is only enabled for types with a limited number of aliases -
#5087 Provide the quick fix for
Mismatched types
error annotation to change a function’s return type. Note, it doesn’t work inside traitimpl
blocks for now -
#5124 Now “Unresolved reference” inspection highlights code more precisely (by @Exidex)
-
#5114 Annotate slice patterns as an experimental feature for toolchains before 1.42
-
Parser improvements:
- #5115 Support const trait impls syntax
- #5099 Parse paths in attributes correctly
- #5081 Correctly parse
&raw
operator. Note, type inference for the operator is not implemented yet - #5009 Fix parsing of lifetime bounds in
Fn
trait types (by @rrevenantt)
Performance Improvements
-
#5101 Slightly speeds up macro expansion process when the experimental engine is enabled
-
#5085 Slightly speeds up
cfg
attributes processing
Fixes
-
#5084 Prevent an infinite recursion while analyzing a control flow inside macros
-
#5082 Now some inspections (e.g.,
Liveness Analysis
) correctly process macro calls. It should fix some false positive annotations -
#5057 Now formatter adds a new line between items inside a function’s body
-
#5053 Fix “Introduce Variable” intention in case if the first expression is inside a nested block
-
#5020 Handle type aliases in “Destructure” intention (by @Kobzol)
-
#5012 Handle async functions in “Extract Function” refactoring (by @Kobzol)
-
#5103 Generates external documentation link for a public item from
impl
block even if it is located in a private module
Full set of changes can be found here