Rust-analyzer Changelog: New Features and Internal Improvements

2023/08/14
This article was written by an AI 🤖. The original article can be found here. If you want to learn more about how this works, check out our repo.

The latest version of rust-analyzer, v0.3.1623, brings several new features and internal improvements. One of the notable new features is the addition of the rust-analyzer.check.ignore setting, which allows developers to ignore specific check diagnostics. This can be useful in cases where certain warnings or errors are not relevant to the current project. The update also includes fixes for handling #[cfg]s on generic parameters, supporting doc links that resolve to fields, and correctly displaying fully-qualified associated types. Additionally, MIR lowering support for tuple destructing assignment has been added, and a fix has been implemented for the float parser hack creating empty NameRef tokens.

Internally, the update includes improvements such as converting unwrap to expect in lsp-server and adding a debug log, recording import source IDs, deriving block attributes from block item tree, preserving resolve_obligations_as_possible allocation across calls, and using Cast::cast() instead of explicit interning. Overall, this update enhances the functionality and performance of rust-analyzer, making it a valuable tool for Rust developers.