rust-lang / rust-lang/rust-analyzer
RA does not properly update when in a cargo workspace
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 16.9k
- Forks
- 2.2k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 72
Description
rust-analyzer version: 0.4.2790-standalone
rustc version: rustc 1.93.1 (01f6ddf75 2026-02-11)
editor or extension: vscode 1.109.2 RA 0.4.2790 and 0.3.2786
relevant settings:
"rust-analyzer.files.exclude": [
"/target",
"/crates/unnamed_crate",
],
repository link (if public, optional): my main git server is dead due to a hard drive failure so i dont have a repo link available at the moment
code snippet to reproduce:
im not entirely sure what specifically changed, but i have a multi project cargo workspace setup like:
cataclysm: binary depends on nexus and dynamically depends on unnamed_crate via interfaces in nexus
nexus: library depends on nothing
unnamed_crate: library depends on nexus
omnispex: binary depends on nexus
cataclysm is fairly complicated? and uses things like pub use module::*;
telescopically so i can have a different main function based on compile target, but all that was working fine for the past year or so
theres nothing of note in RA logs, i wish i had more information but this issue really is weird, it occurs whenever it feels like it and over the past few years ive been using RA it only happens with cargo workspaces, heres the workspace root Cargo.toml:
[workspace]
resolver = "3"
members = ["crates/*"]
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "unwind"
strip = "debuginfo"
[profile.release.package."*"]
opt-level = 3
codegen-units = 1
strip = "debuginfo"
[profile.dev.package."*"]
opt-level = 3
codegen-units = 1
[profile.wasm-release]
inherits = "release"
opt-level = "z"
strip = true
im at a loss of where to look for more information to help, any suggestions or instructions are welcome, i might be able to put the codebase on github without unnamed_crate, but i can probably leave a substitute in its place if its related to the issue
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reported workspace Cargo.toml and the described cataclysm, nexus, unnamed_crate, and omnispex member/dependency structure. Try to reproduce the intermittent update failure in VS Code with the listed rust-analyzer versions, then inspect the available rust-analyzer logs. Done means identifying a reliable workspace reproduction and confirming that rust-analyzer updates correctly afterward.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 24/100