mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 20:42:04 +00:00
Handle dev-dependency cycles
This commit is contained in:
parent
980c75bc91
commit
a4c7a87755
3 changed files with 772 additions and 555 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue