Skip to content

Commit 37304cd

Browse files
committed
rustc_metadata: Privatize CrateMetadata::dependencies
1 parent 0525cf9 commit 37304cd

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

src/librustc_metadata/creader.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ impl<'a> CrateLoader<'a> {
428428

429429
// Propagate the extern crate info to dependencies.
430430
extern_crate.dependency_of = cnum;
431-
for &dep_cnum in cmeta.dependencies.borrow().iter() {
431+
for &dep_cnum in cmeta.dependencies().iter() {
432432
self.update_extern_crate(dep_cnum, extern_crate, visited);
433433
}
434434
}
@@ -829,7 +829,7 @@ impl<'a> CrateLoader<'a> {
829829
}
830830

831831
info!("injecting a dep from {} to {}", cnum, krate);
832-
data.dependencies.borrow_mut().push(krate);
832+
data.add_dependency(krate);
833833
});
834834
}
835835

src/librustc_metadata/cstore.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ impl CStore {
6666
fn push_dependencies_in_postorder(&self, deps: &mut Vec<CrateNum>, cnum: CrateNum) {
6767
if !deps.contains(&cnum) {
6868
let data = self.get_crate_data(cnum);
69-
for &dep in data.dependencies.borrow().iter() {
69+
for &dep in data.dependencies().iter() {
7070
if dep != cnum {
7171
self.push_dependencies_in_postorder(deps, dep);
7272
}

src/librustc_metadata/rmeta/decoder.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::rmeta::*;
44
use crate::rmeta::table::{FixedSizeEncoding, Table};
55

66
use rustc_index::vec::{Idx, IndexVec};
7-
use rustc_data_structures::sync::{Lrc, Lock, Once, AtomicCell};
7+
use rustc_data_structures::sync::{Lrc, Lock, LockGuard, Once, AtomicCell};
88
use rustc::hir::map::{DefKey, DefPath, DefPathData, DefPathHash};
99
use rustc::hir::map::definitions::DefPathTable;
1010
use rustc::hir;
@@ -97,7 +97,7 @@ crate struct CrateMetadata {
9797
/// IDs as they are seen from the current compilation session.
9898
cnum_map: CrateNumMap,
9999
/// Same ID set as `cnum_map` plus maybe some injected crates like panic runtime.
100-
crate dependencies: Lock<Vec<CrateNum>>,
100+
dependencies: Lock<Vec<CrateNum>>,
101101
/// How to link (or not link) this crate to the currently compiled crate.
102102
crate dep_kind: Lock<DepKind>,
103103
/// Filesystem location of this crate.
@@ -1517,6 +1517,14 @@ impl<'a, 'tcx> CrateMetadata {
15171517

15181518
dep_node_index
15191519
}
1520+
1521+
crate fn dependencies(&self) -> LockGuard<'_, Vec<CrateNum>> {
1522+
self.dependencies.borrow()
1523+
}
1524+
1525+
crate fn add_dependency(&self, cnum: CrateNum) {
1526+
self.dependencies.borrow_mut().push(cnum);
1527+
}
15201528
}
15211529

15221530
// Cannot be implemented on 'ProcMacro', as libproc_macro

0 commit comments

Comments
 (0)