New Features

  • #5715 Improve New project dialog to support cargo-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
    • #5811 Support dyn Trait and impl Trait (by @Kobzol)

    • #5306 Provide Add missing type arguments fix (by @Kobzol). Currently, the fix adds only type parameters and ignores lifetimes and associated types

  • #5643 Add Substitute associated type intention (by @Kobzol)

  • Improve struct patterns completion:
    • #5660 Suggest only struct fields while completion in struct patterns (by @Kobzol)

    • #5825 Completion for .. syntax in struct patterns (by @Kobzol)

  • Type inference improvements:
  • #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 some Mismatched types false-positives related to negative impls in stdlib

    • #5812 Fix Self type substitution in bounds. This fixes some The 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 in Show 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 in Preferences | 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 in Inspection 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