summaryrefslogtreecommitdiff
path: root/compiler/InterpreterLoopsJoinCtxs.ml
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/InterpreterLoopsJoinCtxs.ml')
-rw-r--r--compiler/InterpreterLoopsJoinCtxs.ml11
1 files changed, 5 insertions, 6 deletions
diff --git a/compiler/InterpreterLoopsJoinCtxs.ml b/compiler/InterpreterLoopsJoinCtxs.ml
index 5b9022b2..81e5004f 100644
--- a/compiler/InterpreterLoopsJoinCtxs.ml
+++ b/compiler/InterpreterLoopsJoinCtxs.ml
@@ -280,7 +280,7 @@ let reduce_ctx (span : Meta.span) (loop_id : LoopId.id) (old_ids : ids_sets)
(* TODO Adapt and comment *)
let collapse_ctx (span : Meta.span) (loop_id : LoopId.id)
- (merge_funs : merge_duplicates_funcs option) (old_ids : ids_sets)
+ (merge_funs : merge_duplicates_funcs) (old_ids : ids_sets)
(ctx0 : eval_ctx) : eval_ctx =
(* Debug *)
log#ldebug
@@ -337,7 +337,7 @@ let collapse_ctx (span : Meta.span) (loop_id : LoopId.id)
(* Explore all the *new* abstractions, and compute various maps *)
let explore (abs : abs) = is_fresh_abs_id abs.abs_id in
let ids_maps =
- compute_abs_borrows_loans_maps span (merge_funs = None) explore env
+ compute_abs_borrows_loans_maps span false explore env
in
let {
abs_ids;
@@ -353,8 +353,7 @@ let collapse_ctx (span : Meta.span) (loop_id : LoopId.id)
(* Change the merging behaviour depending on the input parameters *)
let abs_to_borrows, loan_to_abs =
- if merge_funs <> None then (abs_to_borrows_loans, borrow_loan_to_abs)
- else (abs_to_borrows, loan_to_abs)
+ (abs_to_borrows_loans, borrow_loan_to_abs)
in
(* Merge the abstractions together *)
@@ -412,7 +411,7 @@ let collapse_ctx (span : Meta.span) (loop_id : LoopId.id)
(* Update the environment - pay attention to the order: we
we merge [abs_id1] *into* [abs_id0] *)
let nctx, abs_id =
- merge_into_abstraction span abs_kind can_end merge_funs
+ merge_into_abstraction span abs_kind can_end (Some merge_funs)
!ctx abs_id1 abs_id0
in
ctx := nctx;
@@ -566,7 +565,7 @@ let merge_into_abstraction (span : Meta.span) (loop_id : LoopId.id)
let collapse_ctx_with_merge (span : Meta.span) (loop_id : LoopId.id)
(old_ids : ids_sets) (ctx : eval_ctx) : eval_ctx =
let merge_funs = mk_collapse_ctx_merge_duplicate_funs span loop_id ctx in
- try collapse_ctx span loop_id (Some merge_funs) old_ids ctx
+ try collapse_ctx span loop_id merge_funs old_ids ctx
with ValueMatchFailure _ -> craise __FILE__ __LINE__ span "Unexpected"
let join_ctxs (span : Meta.span) (loop_id : LoopId.id) (fixed_ids : ids_sets)