in tools/rust_analyzer/aquery.rs [204:311]
fn consolidate_lib_then_test_specs() {
let crate_specs = vec![
CrateSpec {
crate_id: "ID-mylib.rs".into(),
display_name: "mylib".into(),
edition: "2018".into(),
root_module: "mylib.rs".into(),
is_workspace_member: true,
deps: BTreeSet::from(["ID-lib_dep.rs".into()]),
proc_macro_dylib_path: None,
source: None,
cfg: vec!["test".into(), "debug_assertions".into()],
env: BTreeMap::new(),
target: "x86_64-unknown-linux-gnu".into(),
crate_type: "rlib".into(),
},
CrateSpec {
crate_id: "ID-extra_test_dep.rs".into(),
display_name: "extra_test_dep".into(),
edition: "2018".into(),
root_module: "extra_test_dep.rs".into(),
is_workspace_member: true,
deps: BTreeSet::new(),
proc_macro_dylib_path: None,
source: None,
cfg: vec!["test".into(), "debug_assertions".into()],
env: BTreeMap::new(),
target: "x86_64-unknown-linux-gnu".into(),
crate_type: "rlib".into(),
},
CrateSpec {
crate_id: "ID-lib_dep.rs".into(),
display_name: "lib_dep".into(),
edition: "2018".into(),
root_module: "lib_dep.rs".into(),
is_workspace_member: true,
deps: BTreeSet::new(),
proc_macro_dylib_path: None,
source: None,
cfg: vec!["test".into(), "debug_assertions".into()],
env: BTreeMap::new(),
target: "x86_64-unknown-linux-gnu".into(),
crate_type: "rlib".into(),
},
CrateSpec {
crate_id: "ID-mylib.rs".into(),
display_name: "mylib_test".into(),
edition: "2018".into(),
root_module: "mylib.rs".into(),
is_workspace_member: true,
deps: BTreeSet::from(["ID-extra_test_dep.rs".into()]),
proc_macro_dylib_path: None,
source: None,
cfg: vec!["test".into(), "debug_assertions".into()],
env: BTreeMap::new(),
target: "x86_64-unknown-linux-gnu".into(),
crate_type: "bin".into(),
},
];
assert_eq!(
consolidate_crate_specs(crate_specs).unwrap(),
BTreeSet::from([
CrateSpec {
crate_id: "ID-mylib.rs".into(),
display_name: "mylib".into(),
edition: "2018".into(),
root_module: "mylib.rs".into(),
is_workspace_member: true,
deps: BTreeSet::from(["ID-lib_dep.rs".into(), "ID-extra_test_dep.rs".into()]),
proc_macro_dylib_path: None,
source: None,
cfg: vec!["test".into(), "debug_assertions".into()],
env: BTreeMap::new(),
target: "x86_64-unknown-linux-gnu".into(),
crate_type: "rlib".into(),
},
CrateSpec {
crate_id: "ID-extra_test_dep.rs".into(),
display_name: "extra_test_dep".into(),
edition: "2018".into(),
root_module: "extra_test_dep.rs".into(),
is_workspace_member: true,
deps: BTreeSet::new(),
proc_macro_dylib_path: None,
source: None,
cfg: vec!["test".into(), "debug_assertions".into()],
env: BTreeMap::new(),
target: "x86_64-unknown-linux-gnu".into(),
crate_type: "rlib".into(),
},
CrateSpec {
crate_id: "ID-lib_dep.rs".into(),
display_name: "lib_dep".into(),
edition: "2018".into(),
root_module: "lib_dep.rs".into(),
is_workspace_member: true,
deps: BTreeSet::new(),
proc_macro_dylib_path: None,
source: None,
cfg: vec!["test".into(), "debug_assertions".into()],
env: BTreeMap::new(),
target: "x86_64-unknown-linux-gnu".into(),
crate_type: "rlib".into(),
},
])
);
}