-
Notifications
You must be signed in to change notification settings - Fork 2k
Description
After rust-lang/rust bumped its bootstrap compiler to 1.95.0-beta.1 in rust-lang/rust#153462, I found myself suddenly unable to use rust-analyzer on my rust-lang/rust checkout. Instead I started seeing errors like this:
2026-03-08T14:27:57.13764+11:00 WARN `cargo metadata` failed and returning succeeded result with `--no-deps` error=`cargo metadata` exited with an error: error: unexpected argument '--lockfile-path' found
tip: a similar argument exists: '--locked'
Usage: cargo metadata --format-version <VERSION> --manifest-path <PATH> --filter-platform <TRIPLE> --locked
For more information, try '--help'.
Stack backtrace:
0: std::backtrace::Backtrace::create
1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
2: project_model::cargo_workspace::FetchMetadata::exec
3: std::sys::backtrace::__rust_begin_short_backtrace
4: core::ops::function::FnOnce::call_once{{vtable.shim}}
5: std::sys::thread::unix::Thread::new::thread_start
6: __pthread_joiner_wake
This is surprising, because up-to-date versions of rust-analyzer contain code to specifically not pass --lockfile-path to cargo 1.95 or later.
I was able to work around the problem locally by changing "rust-analyzer.server.extraEnv" from "RUSTUP_TOOLCHAIN": "stage0" to "nightly", which has a cargo version number of cargo 1.96.0-nightly.
The fact that this workaround is effective suggests to me that there's something wrong with how rust-analyzer is detecting cargo 1.95, because it seems to be detecting cargo 1.96 without issue.
However, I was unable to determine why rust-analyzer thinks that cargo 1.95.0-beta.1 supports --lockfile-path.
Name: rust-analyzer
Id: rust-lang.rust-analyzer
Description: Rust language support for Visual Studio Code
Version: 0.3.2811
Publisher: The Rust Programming Language
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer