Salsify the crate graph

I.e. make it not one giant input but multiple, for incrementality and decreased memory usage for Salsa 3 reasons.
This commit is contained in:
Chayim Refael Friedman 2025-01-02 01:45:32 +02:00
parent 44f18c3d05
commit c94e9efbef
108 changed files with 3630 additions and 2512 deletions

View file

@ -452,7 +452,7 @@ pub enum TargetKindData {
}
/// Identifies a crate by position in the crates array.
///
/// This will differ from `CrateId` when multiple `ProjectJson`
/// This will differ from `Crate` when multiple `ProjectJson`
/// workspaces are loaded.
#[derive(Serialize, Deserialize, Debug, Clone, Copy, Eq, PartialEq, Hash)]
#[serde(transparent)]

View file

@ -1,4 +1,4 @@
use base_db::{CrateGraph, ProcMacroPaths};
use base_db::{CrateGraphBuilder, ProcMacroPaths};
use cargo_metadata::Metadata;
use cfg::{CfgAtom, CfgDiff};
use expect_test::{expect_file, ExpectFile};
@ -15,7 +15,7 @@ use crate::{
Sysroot, WorkspaceBuildScripts,
};
fn load_cargo(file: &str) -> (CrateGraph, ProcMacroPaths) {
fn load_cargo(file: &str) -> (CrateGraphBuilder, ProcMacroPaths) {
let project_workspace = load_workspace_from_metadata(file);
to_crate_graph(project_workspace, &mut Default::default())
}
@ -23,7 +23,7 @@ fn load_cargo(file: &str) -> (CrateGraph, ProcMacroPaths) {
fn load_cargo_with_overrides(
file: &str,
cfg_overrides: CfgOverrides,
) -> (CrateGraph, ProcMacroPaths) {
) -> (CrateGraphBuilder, ProcMacroPaths) {
let project_workspace =
ProjectWorkspace { cfg_overrides, ..load_workspace_from_metadata(file) };
to_crate_graph(project_workspace, &mut Default::default())
@ -51,7 +51,7 @@ fn load_workspace_from_metadata(file: &str) -> ProjectWorkspace {
}
}
fn load_rust_project(file: &str) -> (CrateGraph, ProcMacroPaths) {
fn load_rust_project(file: &str) -> (CrateGraphBuilder, ProcMacroPaths) {
let data = get_test_json_file(file);
let project = rooted_project_json(data);
let sysroot = get_fake_sysroot();
@ -142,7 +142,7 @@ fn rooted_project_json(data: ProjectJsonData) -> ProjectJson {
fn to_crate_graph(
project_workspace: ProjectWorkspace,
file_map: &mut FxHashMap<AbsPathBuf, FileId>,
) -> (CrateGraph, ProcMacroPaths) {
) -> (CrateGraphBuilder, ProcMacroPaths) {
project_workspace.to_crate_graph(
&mut {
|path| {
@ -154,7 +154,7 @@ fn to_crate_graph(
)
}
fn check_crate_graph(crate_graph: CrateGraph, expect: ExpectFile) {
fn check_crate_graph(crate_graph: CrateGraphBuilder, expect: ExpectFile) {
let mut crate_graph = format!("{crate_graph:#?}");
replace_root(&mut crate_graph, false);

View file

@ -6,8 +6,9 @@ use std::{collections::VecDeque, fmt, fs, iter, ops::Deref, sync, thread};
use anyhow::Context;
use base_db::{
CrateDisplayName, CrateGraph, CrateId, CrateName, CrateOrigin, Dependency, Env,
LangCrateOrigin, ProcMacroPaths, TargetLayoutLoadResult,
CrateBuilderId, CrateDisplayName, CrateGraphBuilder, CrateName, CrateOrigin,
CrateWorkspaceData, DependencyBuilder, Env, LangCrateOrigin, ProcMacroPaths,
TargetLayoutLoadResult,
};
use cfg::{CfgAtom, CfgDiff, CfgOptions};
use intern::{sym, Symbol};
@ -848,10 +849,14 @@ impl ProjectWorkspace {
&self,
load: FileLoader<'_>,
extra_env: &FxHashMap<String, String>,
) -> (CrateGraph, ProcMacroPaths) {
) -> (CrateGraphBuilder, ProcMacroPaths) {
let _p = tracing::info_span!("ProjectWorkspace::to_crate_graph").entered();
let Self { kind, sysroot, cfg_overrides, rustc_cfg, .. } = self;
let crate_ws_data = Arc::new(CrateWorkspaceData {
toolchain: self.toolchain.clone(),
data_layout: self.target_layout.clone(),
});
let (crate_graph, proc_macros) = match kind {
ProjectWorkspaceKind::Json(project) => project_json_to_crate_graph(
rustc_cfg.clone(),
@ -861,6 +866,7 @@ impl ProjectWorkspace {
extra_env,
cfg_overrides,
self.set_test,
crate_ws_data,
),
ProjectWorkspaceKind::Cargo { cargo, rustc, build_scripts, error: _ } => {
cargo_to_crate_graph(
@ -872,6 +878,7 @@ impl ProjectWorkspace {
cfg_overrides,
build_scripts,
self.set_test,
crate_ws_data,
)
}
ProjectWorkspaceKind::DetachedFile { file, cargo: cargo_script, .. } => {
@ -885,6 +892,7 @@ impl ProjectWorkspace {
cfg_overrides,
build_scripts,
self.set_test,
crate_ws_data,
)
} else {
detached_file_to_crate_graph(
@ -894,6 +902,7 @@ impl ProjectWorkspace {
sysroot,
cfg_overrides,
self.set_test,
crate_ws_data,
)
}
}
@ -959,15 +968,22 @@ fn project_json_to_crate_graph(
extra_env: &FxHashMap<String, String>,
override_cfg: &CfgOverrides,
set_test: bool,
) -> (CrateGraph, ProcMacroPaths) {
let mut res = (CrateGraph::default(), ProcMacroPaths::default());
crate_ws_data: Arc<CrateWorkspaceData>,
) -> (CrateGraphBuilder, ProcMacroPaths) {
let mut res = (CrateGraphBuilder::default(), ProcMacroPaths::default());
let (crate_graph, proc_macros) = &mut res;
let (public_deps, libproc_macro) =
sysroot_to_crate_graph(crate_graph, sysroot, rustc_cfg.clone(), load);
let (public_deps, libproc_macro) = sysroot_to_crate_graph(
crate_graph,
sysroot,
rustc_cfg.clone(),
load,
// FIXME: This looks incorrect but I don't think this matters.
crate_ws_data.clone(),
);
let mut cfg_cache: FxHashMap<&str, Vec<CfgAtom>> = FxHashMap::default();
let idx_to_crate_id: FxHashMap<CrateArrayIdx, CrateId> = project
let idx_to_crate_id: FxHashMap<CrateArrayIdx, _> = project
.crates()
.filter_map(|(idx, krate)| Some((idx, krate, load(&krate.root_module)?)))
.map(
@ -1042,6 +1058,7 @@ fn project_json_to_crate_graph(
},
*is_proc_macro,
proc_macro_cwd.clone(),
crate_ws_data.clone(),
);
debug!(
?crate_graph_crate_id,
@ -1092,12 +1109,19 @@ fn cargo_to_crate_graph(
override_cfg: &CfgOverrides,
build_scripts: &WorkspaceBuildScripts,
set_test: bool,
) -> (CrateGraph, ProcMacroPaths) {
crate_ws_data: Arc<CrateWorkspaceData>,
) -> (CrateGraphBuilder, ProcMacroPaths) {
let _p = tracing::info_span!("cargo_to_crate_graph").entered();
let mut res = (CrateGraph::default(), ProcMacroPaths::default());
let mut res = (CrateGraphBuilder::default(), ProcMacroPaths::default());
let (crate_graph, proc_macros) = &mut res;
let (public_deps, libproc_macro) =
sysroot_to_crate_graph(crate_graph, sysroot, rustc_cfg.clone(), load);
let (public_deps, libproc_macro) = sysroot_to_crate_graph(
crate_graph,
sysroot,
rustc_cfg.clone(),
load,
// FIXME: This looks incorrect but I don't think this causes problems.
crate_ws_data.clone(),
);
let cfg_options = CfgOptions::from_iter(rustc_cfg);
@ -1163,6 +1187,7 @@ fn cargo_to_crate_graph(
name: Symbol::intern(&pkg_data.name),
}
},
crate_ws_data.clone(),
);
if let TargetKind::Lib { .. } = kind {
lib_tgt = Some((crate_id, name.clone()));
@ -1267,6 +1292,8 @@ fn cargo_to_crate_graph(
} else {
rustc_build_scripts
},
// FIXME: This looks incorrect but I don't think this causes problems.
crate_ws_data,
);
}
}
@ -1280,11 +1307,18 @@ fn detached_file_to_crate_graph(
sysroot: &Sysroot,
override_cfg: &CfgOverrides,
set_test: bool,
) -> (CrateGraph, ProcMacroPaths) {
crate_ws_data: Arc<CrateWorkspaceData>,
) -> (CrateGraphBuilder, ProcMacroPaths) {
let _p = tracing::info_span!("detached_file_to_crate_graph").entered();
let mut crate_graph = CrateGraph::default();
let (public_deps, _libproc_macro) =
sysroot_to_crate_graph(&mut crate_graph, sysroot, rustc_cfg.clone(), load);
let mut crate_graph = CrateGraphBuilder::default();
let (public_deps, _libproc_macro) = sysroot_to_crate_graph(
&mut crate_graph,
sysroot,
rustc_cfg.clone(),
load,
// FIXME: This looks incorrect but I don't think this causes problems.
crate_ws_data.clone(),
);
let mut cfg_options = CfgOptions::from_iter(rustc_cfg);
if set_test {
@ -1316,6 +1350,7 @@ fn detached_file_to_crate_graph(
},
false,
None,
crate_ws_data,
);
public_deps.add_to_crate_graph(&mut crate_graph, detached_file_crate);
@ -1323,18 +1358,19 @@ fn detached_file_to_crate_graph(
}
fn handle_rustc_crates(
crate_graph: &mut CrateGraph,
crate_graph: &mut CrateGraphBuilder,
proc_macros: &mut ProcMacroPaths,
pkg_to_lib_crate: &mut FxHashMap<Package, CrateId>,
pkg_to_lib_crate: &mut FxHashMap<Package, CrateBuilderId>,
load: FileLoader<'_>,
rustc_workspace: &CargoWorkspace,
cargo: &CargoWorkspace,
public_deps: &SysrootPublicDeps,
libproc_macro: Option<CrateId>,
pkg_crates: &FxHashMap<Package, Vec<(CrateId, TargetKind)>>,
libproc_macro: Option<CrateBuilderId>,
pkg_crates: &FxHashMap<Package, Vec<(CrateBuilderId, TargetKind)>>,
cfg_options: &CfgOptions,
override_cfg: &CfgOverrides,
build_scripts: &WorkspaceBuildScripts,
crate_ws_data: Arc<CrateWorkspaceData>,
) {
let mut rustc_pkg_crates = FxHashMap::default();
// The root package of the rustc-dev component is rustc_driver, so we match that
@ -1377,6 +1413,7 @@ fn handle_rustc_crates(
&rustc_workspace[tgt].name,
kind,
CrateOrigin::Rustc { name: Symbol::intern(&rustc_workspace[pkg].name) },
crate_ws_data.clone(),
);
pkg_to_lib_crate.insert(pkg, crate_id);
// Add dependencies on core / std / alloc for this crate
@ -1417,7 +1454,7 @@ fn handle_rustc_crates(
// This avoids the situation where `from` depends on e.g. `arrayvec`, but
// `rust_analyzer` thinks that it should use the one from the `rustc_source`
// instead of the one from `crates.io`
if !crate_graph[*from].dependencies.iter().any(|d| d.name == name) {
if !crate_graph[*from].basic.dependencies.iter().any(|d| d.name == name) {
add_dep(crate_graph, *from, name.clone(), to);
}
}
@ -1427,7 +1464,7 @@ fn handle_rustc_crates(
}
fn add_target_crate_root(
crate_graph: &mut CrateGraph,
crate_graph: &mut CrateGraphBuilder,
proc_macros: &mut ProcMacroPaths,
cargo: &CargoWorkspace,
pkg: &PackageData,
@ -1437,7 +1474,8 @@ fn add_target_crate_root(
cargo_name: &str,
kind: TargetKind,
origin: CrateOrigin,
) -> CrateId {
crate_ws_data: Arc<CrateWorkspaceData>,
) -> CrateBuilderId {
let edition = pkg.edition;
let potential_cfg_options = if pkg.features.is_empty() {
None
@ -1474,7 +1512,7 @@ fn add_target_crate_root(
Some(CrateDisplayName::from_canonical_name(cargo_name)),
Some(pkg.version.to_string()),
Arc::new(cfg_options),
potential_cfg_options.map(Arc::new),
potential_cfg_options,
env,
origin,
matches!(kind, TargetKind::Lib { is_proc_macro: true }),
@ -1483,6 +1521,7 @@ fn add_target_crate_root(
} else {
pkg.manifest.parent().to_path_buf()
}),
crate_ws_data,
);
if let TargetKind::Lib { is_proc_macro: true } = kind {
let proc_macro = match build_data {
@ -1503,12 +1542,12 @@ fn add_target_crate_root(
#[derive(Default, Debug)]
struct SysrootPublicDeps {
deps: Vec<(CrateName, CrateId, bool)>,
deps: Vec<(CrateName, CrateBuilderId, bool)>,
}
impl SysrootPublicDeps {
/// Makes `from` depend on the public sysroot crates.
fn add_to_crate_graph(&self, crate_graph: &mut CrateGraph, from: CrateId) {
fn add_to_crate_graph(&self, crate_graph: &mut CrateGraphBuilder, from: CrateBuilderId) {
for (name, krate, prelude) in &self.deps {
add_dep_with_prelude(crate_graph, from, name.clone(), *krate, *prelude, true);
}
@ -1516,10 +1555,10 @@ impl SysrootPublicDeps {
}
fn extend_crate_graph_with_sysroot(
crate_graph: &mut CrateGraph,
mut sysroot_crate_graph: CrateGraph,
crate_graph: &mut CrateGraphBuilder,
mut sysroot_crate_graph: CrateGraphBuilder,
mut sysroot_proc_macros: ProcMacroPaths,
) -> (SysrootPublicDeps, Option<CrateId>) {
) -> (SysrootPublicDeps, Option<CrateBuilderId>) {
let mut pub_deps = vec![];
let mut libproc_macro = None;
let diff = CfgDiff::new(vec![], vec![CfgAtom::Flag(sym::test.clone())]);
@ -1527,11 +1566,11 @@ fn extend_crate_graph_with_sysroot(
// uninject `test` flag so `core` keeps working.
Arc::make_mut(&mut c.cfg_options).apply_diff(diff.clone());
// patch the origin
if c.origin.is_local() {
if c.basic.origin.is_local() {
let lang_crate = LangCrateOrigin::from(
c.display_name.as_ref().map_or("", |it| it.canonical_name().as_str()),
c.extra.display_name.as_ref().map_or("", |it| it.canonical_name().as_str()),
);
c.origin = CrateOrigin::Lang(lang_crate);
c.basic.origin = CrateOrigin::Lang(lang_crate);
match lang_crate {
LangCrateOrigin::Test
| LangCrateOrigin::Alloc
@ -1579,11 +1618,12 @@ fn extend_crate_graph_with_sysroot(
}
fn sysroot_to_crate_graph(
crate_graph: &mut CrateGraph,
crate_graph: &mut CrateGraphBuilder,
sysroot: &Sysroot,
rustc_cfg: Vec<CfgAtom>,
load: FileLoader<'_>,
) -> (SysrootPublicDeps, Option<CrateId>) {
crate_ws_data: Arc<CrateWorkspaceData>,
) -> (SysrootPublicDeps, Option<CrateBuilderId>) {
let _p = tracing::info_span!("sysroot_to_crate_graph").entered();
match sysroot.workspace() {
RustLibSrcWorkspace::Workspace(cargo) => {
@ -1605,6 +1645,7 @@ fn sysroot_to_crate_graph(
},
&WorkspaceBuildScripts::default(),
false,
crate_ws_data,
);
extend_crate_graph_with_sysroot(crate_graph, cg, pm)
@ -1627,6 +1668,7 @@ fn sysroot_to_crate_graph(
..Default::default()
},
false,
crate_ws_data,
);
extend_crate_graph_with_sysroot(crate_graph, cg, pm)
@ -1639,29 +1681,31 @@ fn sysroot_to_crate_graph(
cfg_options.insert_atom(sym::miri.clone());
cfg_options
});
let sysroot_crates: FxHashMap<crate::sysroot::stitched::RustLibSrcCrate, CrateId> =
stitched
.crates()
.filter_map(|krate| {
let file_id = load(&stitched[krate].root)?;
let sysroot_crates: FxHashMap<
crate::sysroot::stitched::RustLibSrcCrate,
CrateBuilderId,
> = stitched
.crates()
.filter_map(|krate| {
let file_id = load(&stitched[krate].root)?;
let display_name =
CrateDisplayName::from_canonical_name(&stitched[krate].name);
let crate_id = crate_graph.add_crate_root(
file_id,
Edition::CURRENT_FIXME,
Some(display_name),
None,
cfg_options.clone(),
None,
Env::default(),
CrateOrigin::Lang(LangCrateOrigin::from(&*stitched[krate].name)),
false,
None,
);
Some((krate, crate_id))
})
.collect();
let display_name = CrateDisplayName::from_canonical_name(&stitched[krate].name);
let crate_id = crate_graph.add_crate_root(
file_id,
Edition::CURRENT_FIXME,
Some(display_name),
None,
cfg_options.clone(),
None,
Env::default(),
CrateOrigin::Lang(LangCrateOrigin::from(&*stitched[krate].name)),
false,
None,
crate_ws_data.clone(),
);
Some((krate, crate_id))
})
.collect();
for from in stitched.crates() {
for &to in stitched[from].deps.iter() {
@ -1691,22 +1735,32 @@ fn sysroot_to_crate_graph(
}
}
fn add_dep(graph: &mut CrateGraph, from: CrateId, name: CrateName, to: CrateId) {
add_dep_inner(graph, from, Dependency::new(name, to))
fn add_dep(
graph: &mut CrateGraphBuilder,
from: CrateBuilderId,
name: CrateName,
to: CrateBuilderId,
) {
add_dep_inner(graph, from, DependencyBuilder::new(name, to))
}
fn add_dep_with_prelude(
graph: &mut CrateGraph,
from: CrateId,
graph: &mut CrateGraphBuilder,
from: CrateBuilderId,
name: CrateName,
to: CrateId,
to: CrateBuilderId,
prelude: bool,
sysroot: bool,
) {
add_dep_inner(graph, from, Dependency::with_prelude(name, to, prelude, sysroot))
add_dep_inner(graph, from, DependencyBuilder::with_prelude(name, to, prelude, sysroot))
}
fn add_proc_macro_dep(crate_graph: &mut CrateGraph, from: CrateId, to: CrateId, prelude: bool) {
fn add_proc_macro_dep(
crate_graph: &mut CrateGraphBuilder,
from: CrateBuilderId,
to: CrateBuilderId,
prelude: bool,
) {
add_dep_with_prelude(
crate_graph,
from,
@ -1717,7 +1771,7 @@ fn add_proc_macro_dep(crate_graph: &mut CrateGraph, from: CrateId, to: CrateId,
);
}
fn add_dep_inner(graph: &mut CrateGraph, from: CrateId, dep: Dependency) {
fn add_dep_inner(graph: &mut CrateGraphBuilder, from: CrateBuilderId, dep: DependencyBuilder) {
if let Err(err) = graph.add_dep(from, dep) {
tracing::warn!("{}", err)
}

View file

@ -1,20 +1,47 @@
{
0: CrateData {
root_file_id: FileId(
1,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
0: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
1,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
canonical_name: "hello-world",
},
),
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
),
},
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -22,7 +49,6 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -44,45 +70,64 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
1: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
2,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
1: CrateData {
root_file_id: FileId(
2,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -90,7 +135,6 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -112,53 +156,64 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
2: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
3,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
2: CrateData {
root_file_id: FileId(
3,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"an_example",
),
canonical_name: "an-example",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"an_example",
),
canonical_name: "an-example",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -166,7 +221,6 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -188,53 +242,64 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
3: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
4,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
3: CrateData {
root_file_id: FileId(
4,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"it",
),
canonical_name: "it",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"it",
),
canonical_name: "it",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -242,7 +307,6 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -264,53 +328,60 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
4: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
5,
),
edition: Edition2015,
dependencies: [],
origin: Library {
repo: Some(
"https://github.com/rust-lang/libc",
),
prelude: true,
sysroot: false,
name: "libc",
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.2.98",
),
),
},
4: CrateData {
root_file_id: FileId(
5,
),
edition: Edition2015,
version: Some(
"0.2.98",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"libc",
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"libc",
),
canonical_name: "libc",
},
),
potential_cfg_options: Some(
CfgOptions(
[
"feature=align",
"feature=const-extern-fn",
"feature=default",
"feature=extra_traits",
"feature=rustc-dep-of-std",
"feature=std",
"feature=use_std",
"true",
],
),
canonical_name: "libc",
},
),
),
},
cfg_options: CfgOptions(
[
"feature=default",
@ -318,20 +389,6 @@
"true",
],
),
potential_cfg_options: Some(
CfgOptions(
[
"feature=align",
"feature=const-extern-fn",
"feature=default",
"feature=extra_traits",
"feature=rustc-dep-of-std",
"feature=std",
"feature=use_std",
"true",
],
),
),
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -353,18 +410,11 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [],
origin: Library {
repo: Some(
"https://github.com/rust-lang/libc",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
name: "libc",
toolchain: None,
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
),
),
},
}

View file

@ -1,20 +1,47 @@
{
0: CrateData {
root_file_id: FileId(
1,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
0: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
1,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
canonical_name: "hello-world",
},
),
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
),
},
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -22,7 +49,6 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -44,45 +70,64 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
1: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
2,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
1: CrateData {
root_file_id: FileId(
2,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -90,7 +135,6 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -112,53 +156,64 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
2: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
3,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
2: CrateData {
root_file_id: FileId(
3,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"an_example",
),
canonical_name: "an-example",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"an_example",
),
canonical_name: "an-example",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -166,7 +221,6 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -188,53 +242,64 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
3: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
4,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
3: CrateData {
root_file_id: FileId(
4,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"it",
),
canonical_name: "it",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"it",
),
canonical_name: "it",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -242,7 +307,6 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -264,53 +328,60 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
4: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
5,
),
edition: Edition2015,
dependencies: [],
origin: Library {
repo: Some(
"https://github.com/rust-lang/libc",
),
prelude: true,
sysroot: false,
name: "libc",
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.2.98",
),
),
},
4: CrateData {
root_file_id: FileId(
5,
),
edition: Edition2015,
version: Some(
"0.2.98",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"libc",
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"libc",
),
canonical_name: "libc",
},
),
potential_cfg_options: Some(
CfgOptions(
[
"feature=align",
"feature=const-extern-fn",
"feature=default",
"feature=extra_traits",
"feature=rustc-dep-of-std",
"feature=std",
"feature=use_std",
"true",
],
),
canonical_name: "libc",
},
),
),
},
cfg_options: CfgOptions(
[
"feature=default",
@ -318,20 +389,6 @@
"true",
],
),
potential_cfg_options: Some(
CfgOptions(
[
"feature=align",
"feature=const-extern-fn",
"feature=default",
"feature=extra_traits",
"feature=rustc-dep-of-std",
"feature=std",
"feature=use_std",
"true",
],
),
),
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -353,18 +410,11 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [],
origin: Library {
repo: Some(
"https://github.com/rust-lang/libc",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
name: "libc",
toolchain: None,
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
),
),
},
}

View file

@ -1,27 +1,53 @@
{
0: CrateData {
root_file_id: FileId(
1,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
0: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
1,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
canonical_name: "hello-world",
},
),
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
),
},
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -43,52 +69,70 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
1: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
2,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
1: CrateData {
root_file_id: FileId(
2,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello-world",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -110,60 +154,70 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
2: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
3,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
2: CrateData {
root_file_id: FileId(
3,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"an_example",
),
canonical_name: "an-example",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"an_example",
),
canonical_name: "an-example",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -185,60 +239,70 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
3: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
4,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"hello_world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"libc",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.1.0",
),
),
},
3: CrateData {
root_file_id: FileId(
4,
),
edition: Edition2018,
version: Some(
"0.1.0",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"it",
),
canonical_name: "it",
},
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"it",
),
canonical_name: "it",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -260,53 +324,60 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
toolchain: None,
},
},
4: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
5,
),
edition: Edition2015,
dependencies: [],
origin: Library {
repo: Some(
"https://github.com/rust-lang/libc",
),
prelude: true,
sysroot: false,
name: "libc",
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"libc",
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
),
prelude: true,
sysroot: false,
},
],
origin: Local {
repo: None,
name: Some(
"hello-world",
),
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$hello-world",
extra: ExtraCrateData {
version: Some(
"0.2.98",
),
),
},
4: CrateData {
root_file_id: FileId(
5,
),
edition: Edition2015,
version: Some(
"0.2.98",
),
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"libc",
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"libc",
),
canonical_name: "libc",
},
),
potential_cfg_options: Some(
CfgOptions(
[
"feature=align",
"feature=const-extern-fn",
"feature=default",
"feature=extra_traits",
"feature=rustc-dep-of-std",
"feature=std",
"feature=use_std",
"true",
],
),
canonical_name: "libc",
},
),
),
},
cfg_options: CfgOptions(
[
"feature=default",
@ -314,20 +385,6 @@
"true",
],
),
potential_cfg_options: Some(
CfgOptions(
[
"feature=align",
"feature=const-extern-fn",
"feature=default",
"feature=extra_traits",
"feature=rustc-dep-of-std",
"feature=std",
"feature=use_std",
"true",
],
),
),
env: Env {
entries: {
"CARGO": "$CARGO$",
@ -349,18 +406,11 @@
"CARGO_PKG_VERSION_PRE": "",
},
},
dependencies: [],
origin: Library {
repo: Some(
"https://github.com/rust-lang/libc",
ws_data: CrateWorkspaceData {
data_layout: Err(
"target_data_layout not loaded",
),
name: "libc",
toolchain: None,
},
is_proc_macro: false,
proc_macro_cwd: Some(
AbsPathBuf(
"$ROOT$.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.98",
),
),
},
}

View file

@ -1,18 +1,38 @@
{
0: CrateData {
root_file_id: FileId(
1,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"alloc",
),
canonical_name: "alloc",
},
),
0: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
1,
),
edition: Edition2021,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(1),
name: CrateName(
"core",
),
prelude: true,
sysroot: false,
},
],
origin: Lang(
Alloc,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"alloc",
),
canonical_name: "alloc",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -20,40 +40,41 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(1),
name: CrateName(
"core",
),
prelude: true,
sysroot: false,
},
],
origin: Lang(
Alloc,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
1: CrateData {
root_file_id: FileId(
2,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"core",
),
canonical_name: "core",
},
),
1: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
2,
),
edition: Edition2021,
dependencies: [],
origin: Lang(
Core,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"core",
),
canonical_name: "core",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -61,31 +82,41 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [],
origin: Lang(
Core,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
2: CrateData {
root_file_id: FileId(
3,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"panic_abort",
),
canonical_name: "panic_abort",
},
),
2: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
3,
),
edition: Edition2021,
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"panic_abort",
),
canonical_name: "panic_abort",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -93,31 +124,41 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
3: CrateData {
root_file_id: FileId(
4,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"panic_unwind",
),
canonical_name: "panic_unwind",
},
),
3: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
4,
),
edition: Edition2021,
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"panic_unwind",
),
canonical_name: "panic_unwind",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -125,31 +166,58 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
4: CrateData {
root_file_id: FileId(
5,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"proc_macro",
),
canonical_name: "proc_macro",
},
),
4: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
5,
),
edition: Edition2021,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(6),
name: CrateName(
"std",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(1),
name: CrateName(
"core",
),
prelude: true,
sysroot: false,
},
],
origin: Lang(
ProcMacro,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"proc_macro",
),
canonical_name: "proc_macro",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -157,48 +225,41 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(6),
name: CrateName(
"std",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(1),
name: CrateName(
"core",
),
prelude: true,
sysroot: false,
},
],
origin: Lang(
ProcMacro,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
5: CrateData {
root_file_id: FileId(
6,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"profiler_builtins",
),
canonical_name: "profiler_builtins",
},
),
5: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
6,
),
edition: Edition2021,
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"profiler_builtins",
),
canonical_name: "profiler_builtins",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -206,31 +267,106 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
6: CrateData {
root_file_id: FileId(
7,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"std",
),
canonical_name: "std",
},
),
6: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
7,
),
edition: Edition2021,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"alloc",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(3),
name: CrateName(
"panic_unwind",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(2),
name: CrateName(
"panic_abort",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(1),
name: CrateName(
"core",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(5),
name: CrateName(
"profiler_builtins",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(9),
name: CrateName(
"unwind",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(7),
name: CrateName(
"std_detect",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateBuilder>(8),
name: CrateName(
"test",
),
prelude: true,
sysroot: false,
},
],
origin: Lang(
Std,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"std",
),
canonical_name: "std",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -238,96 +374,41 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"alloc",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(3),
name: CrateName(
"panic_unwind",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(2),
name: CrateName(
"panic_abort",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(1),
name: CrateName(
"core",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(5),
name: CrateName(
"profiler_builtins",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(9),
name: CrateName(
"unwind",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(7),
name: CrateName(
"std_detect",
),
prelude: true,
sysroot: false,
},
Dependency {
crate_id: Idx::<CrateData>(8),
name: CrateName(
"test",
),
prelude: true,
sysroot: false,
},
],
origin: Lang(
Std,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
7: CrateData {
root_file_id: FileId(
8,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"std_detect",
),
canonical_name: "std_detect",
},
),
7: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
8,
),
edition: Edition2021,
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"std_detect",
),
canonical_name: "std_detect",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -335,31 +416,41 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
8: CrateData {
root_file_id: FileId(
9,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"test",
),
canonical_name: "test",
},
),
8: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
9,
),
edition: Edition2021,
dependencies: [],
origin: Lang(
Test,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"test",
),
canonical_name: "test",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -367,31 +458,41 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [],
origin: Lang(
Test,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
9: CrateData {
root_file_id: FileId(
10,
),
edition: Edition2021,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"unwind",
),
canonical_name: "unwind",
},
),
9: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
10,
),
edition: Edition2021,
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"unwind",
),
canonical_name: "unwind",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"debug_assertions",
@ -399,31 +500,85 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [],
origin: Lang(
Other,
),
is_proc_macro: false,
proc_macro_cwd: None,
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
},
10: CrateData {
root_file_id: FileId(
11,
),
edition: Edition2018,
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
10: CrateBuilder {
basic: CrateData {
root_file_id: FileId(
11,
),
edition: Edition2018,
dependencies: [
Dependency {
crate_id: Idx::<CrateBuilder>(1),
name: CrateName(
"core",
),
prelude: true,
sysroot: true,
},
Dependency {
crate_id: Idx::<CrateBuilder>(0),
name: CrateName(
"alloc",
),
prelude: false,
sysroot: true,
},
Dependency {
crate_id: Idx::<CrateBuilder>(6),
name: CrateName(
"std",
),
prelude: true,
sysroot: true,
},
Dependency {
crate_id: Idx::<CrateBuilder>(8),
name: CrateName(
"test",
),
prelude: false,
sysroot: true,
},
Dependency {
crate_id: Idx::<CrateBuilder>(4),
name: CrateName(
"proc_macro",
),
prelude: false,
sysroot: true,
},
],
origin: Local {
repo: None,
name: Some(
"hello_world",
),
canonical_name: "hello_world",
},
),
is_proc_macro: false,
proc_macro_cwd: None,
},
extra: ExtraCrateData {
version: None,
display_name: Some(
CrateDisplayName {
crate_name: CrateName(
"hello_world",
),
canonical_name: "hello_world",
},
),
potential_cfg_options: None,
},
cfg_options: CfgOptions(
[
"rust_analyzer",
@ -431,59 +586,14 @@
"true",
],
),
potential_cfg_options: None,
env: Env {
entries: {},
},
dependencies: [
Dependency {
crate_id: Idx::<CrateData>(1),
name: CrateName(
"core",
),
prelude: true,
sysroot: true,
},
Dependency {
crate_id: Idx::<CrateData>(0),
name: CrateName(
"alloc",
),
prelude: false,
sysroot: true,
},
Dependency {
crate_id: Idx::<CrateData>(6),
name: CrateName(
"std",
),
prelude: true,
sysroot: true,
},
Dependency {
crate_id: Idx::<CrateData>(8),
name: CrateName(
"test",
),
prelude: false,
sysroot: true,
},
Dependency {
crate_id: Idx::<CrateData>(4),
name: CrateName(
"proc_macro",
),
prelude: false,
sysroot: true,
},
],
origin: Local {
repo: None,
name: Some(
"hello_world",
ws_data: CrateWorkspaceData {
data_layout: Err(
"test has no data layout",
),
toolchain: None,
},
is_proc_macro: false,
proc_macro_cwd: None,
},
}