Skip to content

Commit 0e1e72a

Browse files
committed
Remove dependencies field of CrateMetadata
It is always identical to the list of values in cnum_map.
1 parent aff1f2a commit 0e1e72a

File tree

3 files changed

+10
-14
lines changed

3 files changed

+10
-14
lines changed

compiler/rustc_metadata/src/creader.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,7 @@ impl CStore {
719719
self.used_extern_options.insert(name);
720720
match self.maybe_resolve_crate(tcx, name, dep_kind, origin) {
721721
Ok(cnum) => {
722-
self.set_used_recursively(tcx, cnum);
722+
self.set_used_recursively(cnum);
723723
Some(cnum)
724724
}
725725
Err(err) => {

compiler/rustc_metadata/src/rmeta/decoder.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,6 @@ pub(crate) struct CrateMetadata {
116116
/// Maps crate IDs as they are were seen from this crate's compilation sessions into
117117
/// IDs as they are seen from the current compilation session.
118118
cnum_map: CrateNumMap,
119-
/// Same ID set as `cnum_map` plus maybe some injected crates like panic runtime.
120-
dependencies: Vec<CrateNum>,
121119
/// How to link (or not link) this crate to the currently compiled crate.
122120
dep_kind: CrateDepKind,
123121
/// Filesystem location of this crate.
@@ -1897,7 +1895,6 @@ impl CrateMetadata {
18971895
.collect();
18981896
let alloc_decoding_state =
18991897
AllocDecodingState::new(root.interpret_alloc_index.decode(&blob).collect());
1900-
let dependencies = cnum_map.iter().copied().collect();
19011898

19021899
// Pre-decode the DefPathHash->DefIndex table. This is a cheap operation
19031900
// that does not copy any data. It just does some data verification.
@@ -1915,7 +1912,6 @@ impl CrateMetadata {
19151912
alloc_decoding_state,
19161913
cnum,
19171914
cnum_map,
1918-
dependencies,
19191915
dep_kind,
19201916
source: Arc::new(source),
19211917
private_dep,
@@ -1941,7 +1937,7 @@ impl CrateMetadata {
19411937
}
19421938

19431939
pub(crate) fn dependencies(&self) -> impl Iterator<Item = CrateNum> {
1944-
self.dependencies.iter().copied()
1940+
self.cnum_map.iter().copied()
19451941
}
19461942

19471943
pub(crate) fn target_modifiers(&self) -> TargetModifiers {

compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -623,15 +623,15 @@ impl CStore {
623623
self.get_crate_data(cnum).get_proc_macro_quoted_span(tcx, id)
624624
}
625625

626-
pub fn set_used_recursively(&mut self, tcx: TyCtxt<'_>, cnum: CrateNum) {
626+
pub fn set_used_recursively(&mut self, cnum: CrateNum) {
627627
let cmeta = self.get_crate_data_mut(cnum);
628628
if !cmeta.used {
629629
cmeta.used = true;
630-
let dependencies = mem::take(&mut cmeta.dependencies);
631-
for &dep_cnum in &dependencies {
632-
self.set_used_recursively(tcx, dep_cnum);
630+
let cnum_map = mem::take(&mut cmeta.cnum_map);
631+
for &dep_cnum in cnum_map.iter() {
632+
self.set_used_recursively(dep_cnum);
633633
}
634-
self.get_crate_data_mut(cnum).dependencies = dependencies;
634+
self.get_crate_data_mut(cnum).cnum_map = cnum_map;
635635
}
636636
}
637637

@@ -663,11 +663,11 @@ impl CStore {
663663
if cmeta.update_extern_crate_diagnostics(extern_crate) {
664664
// Propagate the extern crate info to dependencies if it was updated.
665665
let extern_crate = ExternCrate { dependency_of: cnum, ..extern_crate };
666-
let dependencies = mem::take(&mut cmeta.dependencies);
667-
for &dep_cnum in &dependencies {
666+
let cnum_map = mem::take(&mut cmeta.cnum_map);
667+
for &dep_cnum in cnum_map.iter() {
668668
self.update_transitive_extern_crate_diagnostics(dep_cnum, extern_crate);
669669
}
670-
self.get_crate_data_mut(cnum).dependencies = dependencies;
670+
self.get_crate_data_mut(cnum).cnum_map = cnum_map;
671671
}
672672
}
673673
}

0 commit comments

Comments
 (0)