#3: v0.4.0
-
#243 — Updated installation guidance: Documented Mason and Scoop support, linked the merged Neovim configuration, and clarified how to install a newer server binary independently of editor integrations.
-
#244 — Basic const evaluation: Added evaluation of simple integer arithmetic, shifts, and numeric literals during type inference. Unsupported expressions now remain unknown instead of producing misleading values.
-
#246 — Stable inlay hints while typing: Retried inlay hint requests interrupted by edits, keeping existing hints visible until updated results arrive and eliminating flicker.
-
#248 — Preserve references to unknown types: Kept reference structure when the referenced type is unresolved, improving inference and inlay hints for partially known code.
-
#249 — Basic trait-object support: Added analysis support for
dyn Trait, allowing method calls through trait objects to resolve. -
#250 — Correct closure return types: Fixed explicit
returnexpressions inside closures to use the closure's return type rather than the enclosing function's type. -
#252 — Auto traits and negative impls: Added basic support for auto traits such as
SendandSync, negative impls, and trait objects such asdyn Foo + Send. This also improves resolution of methods such asanyhow::Context::contextthat require auto-trait bounds. -
#253 — Faster item lookup setup: Reduced repeated item-lookup setup during reference searches by reusing information saved during indexing.
-
#254 — Faster reference searches: Stopped following aliases during Find All References, substantially reducing the amount of code that needs resolving and bringing search behavior closer to rust-analyzer.
-
#259 — More precise implementation locations: Go to Implementation and document symbols now select the type in an
implheader instead of highlighting the entire block. -
#260 — More useful inlay hints: Added hints for inferred closure parameters and closure signatures, filtered obvious hints, and hid default generic arguments. Nested and iterator types now use compact labels with the full type available in a tooltip.
-
#262 — Tuple and slice pattern inference: Added implicit reference matching for tuple and slice patterns, preserving the correct binding types when destructuring borrowed values.
-
#263 — Associated types in signatures and parameters: Resolved
Self-based associated types in implementation signatures and normalized associated types before destructuring parameters, improving inference for their bindings. -
#264 — Const and static values in hover: Extended const evaluation to declared constants and statics. Hover cards now show short initializers and include the evaluated value when available.
-
#266 — Navigation inside declarative macros: Added hover and Go to Definition for macro arguments, including format string captures, and semantic highlighting for captured names.
-
#267 — Consistent analysis for shared files: Files included by multiple Cargo targets now use a single target's analysis context, avoiding inconsistent merged results and redundant work.