Skip to content

Commit 1b8f032

Browse files
committed
Attempt to simplify graph logic
1 parent eab765f commit 1b8f032

File tree

1 file changed

+3
-7
lines changed

1 file changed

+3
-7
lines changed

chalk-solve/src/coherence.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,19 +108,15 @@ where
108108
fn build_specialization_forest(&self) -> Result<Graph<ImplId<I>, ()>, CoherenceError<I>> {
109109
let mut forest = DiGraph::new();
110110

111-
let node_impls: Vec<ImplId<_>> = forest.raw_nodes().iter().map(|x| x.weight).collect();
112-
113111
// Find all specializations (implemented in coherence/solve)
114112
// Record them in the forest by adding an edge from the less special
115113
// to the more special.
116114
self.visit_specializations_of_trait(|less_special, more_special| {
117115
// Check so that we never add multiple nodes with the same ImplId.
118-
if !node_impls.contains(&less_special) && !node_impls.contains(&more_special) {
119-
let l = forest.add_node(less_special);
120-
let m = forest.add_node(more_special);
116+
let l = forest.add_node(less_special);
117+
let m = forest.add_node(more_special);
121118

122-
forest.add_edge(l, m, ());
123-
}
119+
forest.update_edge(l, m, ());
124120
})?;
125121

126122
Ok(forest)

0 commit comments

Comments
 (0)