diff options
Diffstat (limited to 'compiler/SynthesizeSymbolic.ml')
-rw-r--r-- | compiler/SynthesizeSymbolic.ml | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/compiler/SynthesizeSymbolic.ml b/compiler/SynthesizeSymbolic.ml index 8c06717a..976b781d 100644 --- a/compiler/SynthesizeSymbolic.ml +++ b/compiler/SynthesizeSymbolic.ml @@ -163,10 +163,22 @@ let synthesize_forward_end (ctx : Contexts.eval_ctx) let synthesize_loop (loop_id : V.LoopId.id) (input_svalues : V.symbolic_value list) - (fresh_svalues : V.SymbolicValueId.Set.t) (end_expr : expression option) - (loop_expr : expression option) : expression option = + (fresh_svalues : V.SymbolicValueId.Set.t) + (rg_to_given_back_tys : + (T.RegionId.Set.t * T.rty list) T.RegionGroupId.Map.t) + (end_expr : expression option) (loop_expr : expression option) : + expression option = match (end_expr, loop_expr) with | None, None -> None | Some end_expr, Some loop_expr -> - Some (Loop { loop_id; input_svalues; fresh_svalues; end_expr; loop_expr }) + Some + (Loop + { + loop_id; + input_svalues; + fresh_svalues; + rg_to_given_back_tys; + end_expr; + loop_expr; + }) | _ -> raise (Failure "Unreachable") |