aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/acyclicGraph.ml11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/acyclicGraph.ml b/lib/acyclicGraph.ml
index 82accd4c99..8da09dc98a 100644
--- a/lib/acyclicGraph.ml
+++ b/lib/acyclicGraph.ml
@@ -359,13 +359,16 @@ module Make (Point:Point) = struct
let ltle =
let fold acc n =
let fold u strict acc =
- if strict then PMap.add u strict acc
- else if PMap.mem u acc then acc
- else PMap.add u false acc
+ match PMap.find u acc with
+ | true -> acc
+ | false -> if strict then PMap.add u true acc else acc
+ | exception Not_found -> PMap.add u strict acc
in
PMap.fold fold n.ltle acc
in
- List.fold_left fold PMap.empty to_merge
+ match to_merge with
+ | [] -> assert false
+ | hd :: tl -> List.fold_left fold hd.ltle tl
in
let ltle, _ = clean_ltle g ltle in
let fold accu a =