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.rs | 11 |
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) |