IntelliJ Rust Changelog #174
New Features
-
#8998 Support rename refactoring (
Refactor | Rename
or Shift+F6) for macro metavariables -
#8850
Borrow checker
inspection now detects more cases of move errors when a type overloads dereference operator. Among the new supported types are smart pointers (Box
,Rc
, etc.) and user-defined types implementingDeref
trait
Performance Improvements
-
#8985 Speed up completion and highlighting when typing in macro calls, thanks to fewer cache invalidations
-
#8981 Slightly speed up type inference
-
#8978 Do not invalidate caches of dependency crates on workspace code changes
-
#8977 Do not trigger the indexing mode when typing in non-recursive macro calls
Fixes
-
#8977 Show completion popup automatically when typing in macro calls. Now there is no need to press Ctrl + Space to invoke completion manually. Note, this change works only if the corresponding macro does not invoke other macros
-
#8979 Fix false-positive unresolved reference annotations in type-qualified paths to associate members, e.g.
<S as module::Trait>::convert(S)
-
#8967 Properly resolve methods with specified
self
parameter type, e.g.self: Rc<Self>
-
Improvements of procedural macro expansion:
-
#8989 Fix error messages explaining why a procedural macro call has not been expanded
-
#8991 Fix deserialization of certain messages produced by procedural macro expander
Note, procedural macro expansion is disabled by default for now. To turn it on, enable
org.rust.cargo.evaluate.build.scripts
andorg.rust.macros.proc
experimental features -
Internal Improvements
-
Improvements in new project model reloading approach:
-
#8960, #8987 Update or suggest updating the project model on changes in Cargo config, rust-toolchain and build script files
-
#8980 Provide a new icon for the floating button notifying about the changes in the plugin project model
-
-
#8946 Add a registry flag to enable native Rust support in MSVC LLDB on Windows. Note, the implementation at this point is experimental and might cause LLDB crashes in certain cases
-
#8850 Implement type adjustments in the plugin’s type inference engine
-
#8705 Automatically suggest generated struct names after paste, based on their fields in JSON import (by @Kobzol)
Full set of changes can be found here