Blog coding article

rust-analyzer changelog #0

Aleksey, Florian

rust-analyzer changelog #0

Published on 2 min read
rust-analyzer icon
An experimental Rust compiler front-end for IDEs
❤️ Sponsor


    This is the first instance of a monthly changelog for rust-analyzer. This changelog also serves as a transparency measure for our OpenCollective. We want to thank all sponsors, especially Embark Studios, as well as all individual contributors. You will also find a detailed bookkeeping record around your donation here within the next week.

    Notable changes since last month include:

    New Features

    • Initial support for .await syntax (#1558).
    • Type inference for ? (#1512).
    • Completion for type aliases (#1472).
    • Mutable variables are underlined (#1544, #1550).
    • add_impl_members adds types (#1476).
    • Sumbodules with raw names and #[path] are resolved (#1478, #1499).
    • Correctly add obligations in function methods (#1496).
    • Initial type inference for for loops (#1501).
    • Use bounds on generic parameters during type inference (#1515).
    • Completions works for fields of enum variants and in patterns (#1525, #1572).
    • Show types of local variables in completion (#1582).


    • Make goto definition work with various Vim clients (#1511).
    • Diagnostics are collected for a single file (#1494).
    • Show code lens for fn main (#1536).
    • Fix discovery of lang items (#1514).

    Internal Improvements

    • Share the lexer with rustc (#1575).
    • Migrate to the new version of rowan library, improving memory usage of syntax trees for 60% (#1545).
    • Pick up floundering work from chalk (#1532).
    • Many improvements and cleanups by (@kjeremy).

    The highlight of the month is probably #1575. The end-game for rust-analyzer is to become a different front-end for the code that rustc itself uses. This pull request is the first step on this path: now, rust-analyzer and rustc use the same code for lexing Rust.