IntelliJ Rust Changelog #98
New Features
-
Support 2019.2 EAPs
- Language support improvements:
- Support postfix
awaitsyntax - Parse
statickeyword in generator expressions correctly
- Support postfix
-
Detection of new compiler errors: E0040, E0081, E0120 and E0184 (by @mibac138)
- Completion improvements:
-
Take into account type information to sort suggested items while completion

-
Implement
derefpostfix completion to add*before selected expression (by @mibac138)
-
Add completion for
deprecatedattribute
-
- Debugger improvements:
- Provide GDB formatters for
HashMapandHashSetcollections. Note, these formatters require Rust 1.33 or above to work properly - Display enum values correctly while debugging with GDB
-
Provide common IDE features (e.g. name resolution and completion) in
Evaluate ExpressionandNew Watchfields. Note,Evaluate Expressionfeature is not fully supported and works in certain cases only
- Provide GDB formatters for
-
#3738 Improve
Convert to named fieldsrefactoring. Now it allows converting all usages of the struct to the corresponding representation (by @rrevenantt)
-
#3779 Automatically detect stdlib sources in
rustcsysroot even if rustup is absent -
#3796 Take into account constants of primitive types:
bool,f32/64,charand&strinMatch Checkinspection. In addition, the inspection can evaluate constant boolean expressions while analysis (constant functions are not supported) like it has already implemented for integer expressions -
#3819 Now it’s possible to filter usage of variables and fields by read/write access png
-
#3520 Support more types from stdlib, like
Rc,Arc,Cell,RefCell, etc., inAdd missing fieldsquick fix (by @Kobzol)
-
#3826 Notify a user when a file is not included in the project structure. It should simplify to find out the reason why common IDE features (e.g., name resolution, completion, etc.) don’t work properly in the file (by @Kobzol)
-
#3778 Add
Flatten use statementsintention (by @mibac138)
-
#3745 Allow folding of macros and macro expansion branches (by @ice1000)
-
#3736 Add
Show the result of macro expansionintention to invokecargo expandcommand. If you don’t have the corresponding package, the plugin shows a notification to installcargo-expandbinary in one click - #3827 Update
Extract functiondialog. Now it allows changing parameter names. Also, it validates creating function name (by @Kobzol)
Fixes
- Name resolution fixes:
- Fix name resolution of uniform paths
- Properly process atom
useitems likeuse crate_namefor 2018 edition. Previously such items broke name resolution of all items imported from the corresponding crate - Take into account alias of
extern crateitem for 2018 edition - Correctly detect edition of stdlib crates. It should fix unresolved references to stdlib items like
BTreeMapandLinkedList - Perform name resolution properly when path contains primitive type name as qualifier like
f64::INFINITY - Make
GoTo Declaration,Find usagesandType Declarationactions work correctly forselfparameter (by @vlad20012 & @mibac138)
- Performance improvements:
- Significantly speed up
Find usagesaction especially for private and local items - Fix possible UI freezes caused by parameter info popup
- Show large macro expansions faster
- Significantly speed up
- False positive annotation fixes:
- Fix a lot of false positive error annotation like
Expected Vec, found Vecfor rust-lang/rust project - Fix false positive error annotation produced by
Dropping referenceinspection (by @mibac138) - Perform better analysis by
Match Checkinspection on complex patterns with multiple types
- Fix a lot of false positive error annotation like
- Type inference improvements:
- Take into account
Dereftrait implementation while binary expression type inference - Use proper rules of match ergonomics to correctly infer types of variable bindings in all cases (previously not all rules were supported)
- Take into account
-
Provides navigation links from backtrace to project sources for crates with 2018 edition. This feature has been working for 2015 edition crates for a long time but was broken for 2018 edition
-
Highlight
constandstaticitems properly -
Better brace matching while deletion and inside macro calls (by @rrevenantt)
-
More precise code highlighting in doc tests
- #3800 Parse 4 slashes in doc comments properly (by @rrevenantt)
Internal Improvements
- Provide new API to evaluate constant expressions. It’s already used in
Match Checkinspection