Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/base-db/src/input.rs')
-rw-r--r--crates/base-db/src/input.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/crates/base-db/src/input.rs b/crates/base-db/src/input.rs
index dfd0b2abc3..a153e7f36c 100644
--- a/crates/base-db/src/input.rs
+++ b/crates/base-db/src/input.rs
@@ -417,6 +417,11 @@ impl CrateGraph {
Ok(())
}
+ pub fn duplicate(&mut self, id: CrateId) -> CrateId {
+ let data = self[id].clone();
+ self.arena.alloc(data)
+ }
+
pub fn add_dep(
&mut self,
from: CrateId,
@@ -612,6 +617,12 @@ impl ops::Index<CrateId> for CrateGraph {
}
}
+impl ops::IndexMut<CrateId> for CrateGraph {
+ fn index_mut(&mut self, crate_id: CrateId) -> &mut CrateData {
+ &mut self.arena[crate_id]
+ }
+}
+
impl CrateData {
fn add_dep(&mut self, dep: Dependency) {
self.dependencies.push(dep)