Auto merge of #16911 - Veykril:rustc-crates, r=Veykril
fix: Fix projects depending on `rustc_private` hanging If loading the root fails, we'll hang up in this loop as we never inserted the entry that asserts we already visited a package. This fixes that Fixes https://github.com/rust-lang/rust-analyzer/issues/16902
This commit is contained in:
commit
a3d96253a9
@ -1250,6 +1250,7 @@ fn handle_rustc_crates(
|
|||||||
let kind @ TargetKind::Lib { is_proc_macro } = rustc_workspace[tgt].kind else {
|
let kind @ TargetKind::Lib { is_proc_macro } = rustc_workspace[tgt].kind else {
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
|
let pkg_crates = &mut rustc_pkg_crates.entry(pkg).or_insert_with(Vec::new);
|
||||||
if let Some(file_id) = load(&rustc_workspace[tgt].root) {
|
if let Some(file_id) = load(&rustc_workspace[tgt].root) {
|
||||||
let crate_id = add_target_crate_root(
|
let crate_id = add_target_crate_root(
|
||||||
crate_graph,
|
crate_graph,
|
||||||
@ -1268,7 +1269,7 @@ fn handle_rustc_crates(
|
|||||||
if let Some(proc_macro) = libproc_macro {
|
if let Some(proc_macro) = libproc_macro {
|
||||||
add_proc_macro_dep(crate_graph, crate_id, proc_macro, is_proc_macro);
|
add_proc_macro_dep(crate_graph, crate_id, proc_macro, is_proc_macro);
|
||||||
}
|
}
|
||||||
rustc_pkg_crates.entry(pkg).or_insert_with(Vec::new).push(crate_id);
|
pkg_crates.push(crate_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user