IntelliJ Rust Changelog #128
New Features
-
#5715 Improve
New project
dialog to supportcargo-generate
templates. Now a WebAssembly project can be created using the corresponding template (by @avrong) -
#5451 Add intention to import a qualified path. Now you can add
use
item for any part of a complex path under the caret (by @Kobzol) Move
refactoring (F6) improvements:-
#5736 Search and update changed references when moving a top-level item. Previously,
Search for references
checkbox did not work and all the references remained the same after refactoring -
#5484 Take re-exports into account when moving a single file
-
-
#5758 Provide
true
/false
completion for boolean values (by @ozkriff) - Improve
Wrong number of type arguments
inspection - Improve struct patterns completion:
- Type inference improvements:
-
#5808 Infer types for
associated_type_bounds
rustc nightly feature -
#5733 Infer type for types implementing the
Try
trait when using question mark operator (by @Kobzol)
-
-
#5798 Add
Main function not found in crate
(E0601) inspection for build scripts - #5747 Fold external (non-project related) parts of backtraces (by @Kobzol)
Performance Improvements
- #5790 Avoid name resolution while checking if an item is public or not. It should slightly improve performance of code insight
Fixes
- Type inference improvements:
-
#5841 Infer type parameters from associated type bindings
-
#5837 Infer types of complex
?
expressions -
#5824 Ignore currently unsupported negative
impl
blocks during type inference. Fixes someMismatched types
false-positives related to negativeimpl
s in stdlib -
#5812 Fix
Self
type substitution in bounds. This fixes someThe trait bound is not satisfied
false-positives -
#5809 Process nested projections during normalization. Fixes type inference of
Pin<&impl Future<...>>
awaiting
-
- Macro expansion improvements:
-
#5862 Fix
ArrayIndexOutOfBoundsException
during macro call arguments completion -
#5810 Replace
IntellijRustDollarCrate
with a crate name inShow macro expansion
action -
#5796 Fix name resolution of
$crate
expanded from transitive dependencies -
#5855 Don’t skip doc comments provided via macro definition
-
#5777 Fix groups substitution in macro expansion
-
-
#5857 Find and replace occurrences located outside a function in
Introduce constant/variable
refactoring (by @Kobzol) -
#5856 Properly check spelling in lifetimes. Now
'static
is not reported as a typo -
#5853 Fix name resolution of private reexport with
crate::
path -
#5849 Include
RUSTC
in environment when executing Cargo (by @tamird) -
#5842 Don’t show parameter hints for single-parameter closures. This hint can be returned back by disabling
Show only smart hints
inPreferences | Editor | Inlay Hints | Rust | Parameter hints
-
#5838 Fix stdlib source paths on nightly. This fixes
Cargo project update failed
error. -
#5822 Don’t provide color highlighting while batch code inspection via
Analyze | Inspect Code
action and similar ones. It prevents empty items inInspection Result
tool window -
#5820 Suppress
snake_case
naming lint for#[no_mangle]
extern functions (by @Kobzol) -
#5819 Add
unsafe
modifier to functions extracted from unsafe functions (by @Kobzol) -
#5801 Fix navigation to derive items in 2020.2
-
#5661 Prefer trait methods before private inherent methods in completion (by @Kobzol)
-
#5779 Fix mod declarations with
#[path = "mod.rs"]
attribute -
#5766 Attach module without a parent to a parent module in
Attach file to module
fix (by @Kobzol) -
#5799 Use correct language name for TOML color settings configurable
- #5789 Render inlay hint settings properly using standard layout
Internal Improvements
-
#5840 Allow triggering project GitHub workflows from UI
-
#5793 Enable GitHub actions to merge PRs
-
#5782 Get rid of
PackageOrigin.TRANSITIVE_DEPENDENCY
Full set of changes can be found here