IntelliJ Rust Changelog #161
New Features
-
#8005 Provide
Invert if condition
intention forif
statement withoutelse
branch -
#8126 Annotate labels with invalid names (by @t-kameyama)
-
#8115 Annotate macro 2.0 definitions as experimental and provide quick-fix to add
decl_macro
feature on nightly toolchain -
#8054, #8083 Better process complex re-exports by auto import for unresolved UFCS method calls as well as during other refactorings and inspection quick-fixes
-
#7978 Adapt new name resolution engine to use it inside files without crate root (for example, standalone rust files). It allows resolving macros 2.0 and improve processing of complex re-exports in such files
-
#7976 Improve annotations of type aliases and associated types. Now the plugin doesn’t show outdated E0202 error, provides error messages similar to recent stable compiler and check usages of the following nightly features: generic_associated_types, inherent_associated_types, associated_type_defaults and extern_types
-
#8138 Take into account const generic parameters while
<>
completion -
#7298 Provide enabled experimental features by
Help | Create New Issue
action which allows opening issue in our tracker right from your IDE
Fixes
-
Name resolution improvements:
-
#8176 Prefer enum variant over associated items with the same name
-
#8173 Fix exception during preparation phase of name resolution. In particular, it should fix analysis in
sixtyfps
crate -
#8153 Correctly disambiguate constants/const parameters and unit structs during name resolution
-
#8135 Properly invalidate name resolution caches on adding or removing
#![no_std]
and#![no_core]
attributes -
#8186 Fix name resolution of some procedural macro calls. For example,
yew::html!
fromyew
crate
-
-
Procedural macro expansion fixes:
-
#8183 Do not expand
async_trait
procedural macro from async-trait crate. It should fix some code insight issues related toasync_trait
-
#8155 Fix procedural macro expansion with nightly toolchain
Note, procedural macro expansion is still under development, and it’s disabled by default for now. To turn it on, enable
org.rust.cargo.evaluate.build.scripts
andorg.rust.macros.proc
experimental features -
-
#8100 Fix Extract variable refactoring on expression statements and return values (by @afetisov)
-
#8163 Correctly process enum and structs with the same names as primitive types like
u32
. It should help to infer proper types for such items and not to produce false positiveUse of moved value
error annotations, for example, in bevy crate -
#8166 Fix false-positive unresolved reference for UFCS path inside trait impl when using unnamed trait import
-
#8157 Remove
set
,get
andwith
name patterns from theSelf convention
inspection. This should reduce the number of false positive warnings produced by the inspection. It also moves the inspection closer to the correspondingwrong_self_convention
inspection fromClippy
(by @Kobzol) -
#8112 Use absolute path during auto importing when the scope has child module with the same name as extern crate
-
#8052 Take into account code generated with attribute procedural macros by
Unused imports
inspection -
#8195 Fix Rust code completion settings layout
Internal Improvements
-
#8159 Make 2021.3 platform default for development
-
#8152 Setup Dependabot for updating
ra_ap_proc_macro_srv
. It should help to keep procedural macro expansion engine up-to-date and quicker support changes related to procedural macros in nightly compiler -
#8167 Prepare plugin for upcoming changes in untrusted editor notification
Full set of changes can be found here