Releases

rust-analyzer adds diagnostics and pattern type support in v0.3.2904

rust-analyzer v0.3.2904 adds new diagnostics and pattern type support, while a temporary marketplace outage briefly changed how users could grab the update.

Nina Kowalski··2 min read
Published
Listen to this article0:00 min
rust-analyzer adds diagnostics and pattern type support in v0.3.2904
Source: opengraph.githubassets.com

A temporary publishing snag kept rust-analyzer v0.3.2904 off the Visual Studio Marketplace and Open VSX, but the release still landed with the kind of editor-facing changes Rust developers feel immediately: new diagnostics, pattern type support, and tighter incremental performance.

rust-analyzer is the Rust language server behind the IDE experience in editors such as VS Code, Emacs, and Vim, and its homepage describes it as a free and open source project developed by Ferrous Systems with support from multiple companies and individuals. For this release, the changelog told users they could still download v0.3.2904 from the GitHub release page while the marketplace issue was sorted out. By May 22, the Visual Studio Marketplace listing had already moved on to version 0.4.2910 and still showed 6,189,800 installs, a good sign that the distribution problem was temporary rather than a lasting change in how the extension ships.

AI-generated illustration
AI-generated illustration

The real payoff is in the diagnostics. v0.3.2904 adds checks for invalid-range-pat-type, non-exhaustive-record-pat, method-call-illegal-sized-bound, fru-in-destructuring-assignment, cannot-be-dereferenced, and explicit-drop-method-use. Those are the sort of warnings that save time in the exact places Rust can feel fussy: pattern matching, destructuring, trait bounds, and ownership-sensitive method calls. Instead of discovering a mistake after a compile, users get a sharper signal while the cursor is still in the file.

Pattern type support is the other headline feature, and it arrives at a useful moment. A GitHub issue filed on April 24 reported rust-analyzer mis-handling built-in macro pattern_type support in nightly Rust, so this release looks like a direct step toward keeping the language server aligned with newer type-system behavior. In a tool that lives inside the edit-compile-debug loop, that kind of support matters as much as any headline language feature because it keeps completions and diagnostics trustworthy when nightly syntax gets involved.

The release also includes work aimed at making that trust feel faster. EnumVariantId now encodes the name instead of the index for better incrementality, and the proc-macro server now uses LineIndex in RootDatabase. The GitHub pulse for the release week showed 15 authors pushing 33 commits, with 47 active pull requests, 30 active issues, and 17 merged pull requests from 14 people, which matches the feel of a busy maintenance sprint rather than a flashy launch. Small fixes round it out: signature help now shows const and unsafe, fn main in benchmark targets gets a Run lens, false positives around Self: Sized are reduced, duplicate completions from Deref chains are hidden, and path completion edge cases are cleaned up. For rust-analyzer users, v0.3.2904 is the kind of update that quietly removes friction right where the day’s Rust work actually happens.

This article was produced by Prism’s automated news system from verified source data, official records, and press releases, then run through automated quality and moderation checks before publishing. The system is built and supervised by the people who set the standards it runs under. Read our full AI policy.

Did this article answer your question?

Discussion

More Rust Programming News