Skip to content

Commit 78680ac

Browse files
committed
Pass all-targets for build scripts in more cli commands
Without this, build scripts don't run for tests and as such any proc-macros in dev-deps fail to resolve
1 parent 316a15c commit 78680ac

File tree

7 files changed

+30
-12
lines changed

7 files changed

+30
-12
lines changed

src/tools/rust-analyzer/crates/project-model/src/workspace.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ impl fmt::Debug for ProjectWorkspace {
109109
ProjectWorkspaceKind::Cargo {
110110
cargo,
111111
error: _,
112-
build_scripts: _,
112+
build_scripts,
113113
rustc,
114114
cargo_config_extra_env,
115115
} => f
@@ -126,6 +126,7 @@ impl fmt::Debug for ProjectWorkspace {
126126
.field("toolchain", &toolchain)
127127
.field("data_layout", &target_layout)
128128
.field("cargo_config_extra_env", &cargo_config_extra_env)
129+
.field("build_scripts", &build_scripts.error().unwrap_or("ok"))
129130
.finish(),
130131
ProjectWorkspaceKind::Json(project) => {
131132
let mut debug_struct = f.debug_struct("Json");

src/tools/rust-analyzer/crates/rust-analyzer/src/cli/analysis_stats.rs

+2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ impl flags::AnalysisStats {
6464
true => None,
6565
false => Some(RustLibSource::Discover),
6666
},
67+
all_targets: true,
6768
..Default::default()
6869
};
6970
let no_progress = &|_| ();
@@ -343,6 +344,7 @@ impl flags::AnalysisStats {
343344
true => None,
344345
false => Some(RustLibSource::Discover),
345346
},
347+
all_targets: true,
346348
..Default::default()
347349
};
348350

src/tools/rust-analyzer/crates/rust-analyzer/src/cli/diagnostics.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ impl flags::Diagnostics {
2424
handle.join()
2525
}
2626
fn run_(self) -> anyhow::Result<()> {
27-
let cargo_config =
28-
CargoConfig { sysroot: Some(RustLibSource::Discover), ..Default::default() };
27+
let cargo_config = CargoConfig {
28+
sysroot: Some(RustLibSource::Discover),
29+
all_targets: true,
30+
..Default::default()
31+
};
2932
let with_proc_macro_server = if let Some(p) = &self.proc_macro_srv {
3033
let path = vfs::AbsPathBuf::assert_utf8(std::env::current_dir()?.join(p));
3134
ProcMacroServerChoice::Explicit(path)

src/tools/rust-analyzer/crates/rust-analyzer/src/cli/lsif.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,12 @@ impl LsifManager<'_> {
273273

274274
impl flags::Lsif {
275275
pub fn run(self) -> anyhow::Result<()> {
276-
eprintln!("Generating LSIF started...");
277276
let now = Instant::now();
278-
let cargo_config =
279-
&CargoConfig { sysroot: Some(RustLibSource::Discover), ..Default::default() };
277+
let cargo_config = &CargoConfig {
278+
sysroot: Some(RustLibSource::Discover),
279+
all_targets: true,
280+
..Default::default()
281+
};
280282
let no_progress = &|_| ();
281283
let load_cargo_config = LoadCargoConfig {
282284
load_out_dirs_from_check: true,
@@ -285,6 +287,7 @@ impl flags::Lsif {
285287
};
286288
let path = AbsPathBuf::assert_utf8(env::current_dir()?.join(self.path));
287289
let root = ProjectManifest::discover_single(&path)?;
290+
eprintln!("Generating LSIF for project at {root}");
288291
let mut workspace = ProjectWorkspace::load(root, cargo_config, no_progress)?;
289292

290293
let build_scripts = workspace.run_build_scripts(cargo_config, no_progress)?;

src/tools/rust-analyzer/crates/rust-analyzer/src/cli/run_tests.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@ use crate::cli::{flags, full_name_of_item, Result};
1313

1414
impl flags::RunTests {
1515
pub fn run(self) -> Result<()> {
16-
let cargo_config =
17-
CargoConfig { sysroot: Some(RustLibSource::Discover), ..Default::default() };
16+
let cargo_config = CargoConfig {
17+
sysroot: Some(RustLibSource::Discover),
18+
all_targets: true,
19+
..Default::default()
20+
};
1821
let load_cargo_config = LoadCargoConfig {
1922
load_out_dirs_from_check: true,
2023
with_proc_macro_server: ProcMacroServerChoice::Sysroot,

src/tools/rust-analyzer/crates/rust-analyzer/src/cli/rustc_tests.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,11 @@ impl Tester {
6767
path.push("ra-rustc-test.rs");
6868
let tmp_file = AbsPathBuf::try_from(Utf8PathBuf::from_path_buf(path).unwrap()).unwrap();
6969
std::fs::write(&tmp_file, "")?;
70-
let cargo_config =
71-
CargoConfig { sysroot: Some(RustLibSource::Discover), ..Default::default() };
70+
let cargo_config = CargoConfig {
71+
sysroot: Some(RustLibSource::Discover),
72+
all_targets: true,
73+
..Default::default()
74+
};
7275

7376
let sysroot = Sysroot::discover(tmp_file.parent().unwrap(), &cargo_config.extra_env);
7477
let data_layout = target_data_layout::get(

src/tools/rust-analyzer/crates/rust-analyzer/src/cli/ssr.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@ use crate::cli::flags;
1010

1111
impl flags::Ssr {
1212
pub fn run(self) -> anyhow::Result<()> {
13-
let cargo_config =
14-
CargoConfig { sysroot: Some(RustLibSource::Discover), ..Default::default() };
13+
let cargo_config = CargoConfig {
14+
sysroot: Some(RustLibSource::Discover),
15+
all_targets: true,
16+
..Default::default()
17+
};
1518
let load_cargo_config = LoadCargoConfig {
1619
load_out_dirs_from_check: true,
1720
with_proc_macro_server: ProcMacroServerChoice::Sysroot,

0 commit comments

Comments
 (0)