IntelliJ Rust Changelog #163
New Features
-
#8018 Add a widget for the external linter. Widget indicates whether the linter is turned on. Also, the widget shows a notification when linter significantly affects the code analysis performance. The external linter settings were moved to
Preferences | Languages & Frameworks | Rust | External Linters


-
#8132 Add
Extract traitrefactoring (Refactor | Extract trait)
-
#8315 Complete the second path segment if the first segment is unresolved but can be imported.

-
#8284 Provide completion for out-of-scope items when invoked at an empty place (by Ctrl+Space).
-
#6353 Detect
Const cannot refer to staticE0013 compiler error (by @zeroeightysix) -
#8289 Prioritize expressions that can be implicitly coerced to the expected type when suggesting completion variants
-
#8335 Do not run non-syntax inspections on files disabled by
cfgattributes -
#8323 Process available items generated by build script and expand available procedural macro calls even if the whole project host code (build scripts and procedural macro libraries) cannot be successfully compiled and executed. Note, build script evaluation is disabled by default for now. To turn it on, enable
org.rust.cargo.evaluate.build.scriptsexperimental feature -
#8119 Enable new name resolution inside functions bodies. It allows resolving macros 2.0 declared inside function bodies
Fixes
- Auto-import improvements:
-
#8291 Improve sorting of auto-import variants
-
#8288 Fix auto-import from
alloccrate when using#![no_std] -
#8286 Don’t show auto-import from auxiliary stdlib crates such as
unwind
-
-
#8362 Do not produce a false-positive error about missing format macro arguments without
format_args_capturefeature starting with 1.58 -
#8334 Don’t perform project model reloading when another IDE project become trusted
-
#8318 Expand proc macros from
dev-dependencies. Note, procedural macro expansion is still under development, and it’s disabled by default for now. To turn it on, enableorg.rust.cargo.evaluate.build.scriptsandorg.rust.macros.procexperimental features -
#8297 Fix default parameters handling in
Wrong number of type argumentsinspection -
#8279 Fix resolve of imports inside detached files
-
#8269 Correctly parenthesize block-like expressions (e.g.
match) inInline Variablerefactoring (by @Kobzol) -
#8268 Fix type inference if there are dependencies named the same as stdlib crates
-
#8263 Infer generic parameter types in
Convert closure to functionintention (by @Kobzol) -
#8230
Introduce local variablerefactoring no longer moves the new binding into closure bodies if it is used outside of them (by @afetisov) -
#8228 Do not offer the
Add remaining patternsquick-fix when pattern matching on an enum marked with#[non_exhaustive]if there are no wildcard arms in thematchexpression (by @Kobzol) -
#8216 Support usages in
serdestring attributes like#[serde(default = "path")]inUnused importinspection. Note, the inspection is disabled by default and can be enabled in the inspection settings -
#8187 Support indirect self-references in
Moverefactoring (Refactor | Moveor F6) -
#8185 Fix handling comments in
Invert if conditionintention -
#8165 Fix
Invert if conditionintention when there isreturn/continuewithout semicolon -
#8133 Fix rename quick-fix for module declaration by
Module naming conventioninspection -
#7906 Fix
Run with Coveragefor projects located on WSL file system -
#7814 Handle qualified field paths correctly in
Generate constructor(Code | Generate | Constructor) refactoring (by @Kobzol) -
#7562 Don’t hang on build when an incorrect path is used with
Redirect Input fromoption - #8382 Fix stuck external linter errors
Internal Improvements
-
#8363 Set up dependabot to update gradle dependencies automatically
-
#8316 Always generate Java-compatible byte code for interface methods with default implementation without
@JvmDefaultannotation -
#8310 Update Kotlin language version to 1.6 and API version to 1.5. So now we can use new language features from Kotlin 1.6 and all API added in Kotlin 1.5
-
#8247 Make 2021 default edition in tests
-
#8175 Enable procedural macro expansion in regression tests
Full set of changes can be found here