summaryrefslogtreecommitdiff
path: root/compiler/Translate.ml
diff options
context:
space:
mode:
authorSon Ho2022-11-09 22:03:04 +0100
committerSon HO2022-11-10 11:35:30 +0100
commit4ec8646c1bf426c848e8057cdf7c248df6999523 (patch)
tree2b5312e198167ef3a1797c1f338bfc511518a106 /compiler/Translate.ml
parent98ecc4763beb6c6213b26f4ddeb4d7850f8a7c08 (diff)
Make a minor cleanup
Diffstat (limited to '')
-rw-r--r--compiler/Translate.ml20
1 files changed, 4 insertions, 16 deletions
diff --git a/compiler/Translate.ml b/compiler/Translate.ml
index 453e02db..e943c78a 100644
--- a/compiler/Translate.ml
+++ b/compiler/Translate.ml
@@ -134,7 +134,6 @@ let translate_function_to_pure (trans_ctx : trans_ctx)
in
(* We need to initialize the input/output variables *)
- let num_forward_inputs = List.length fdef.signature.inputs in
let add_forward_inputs input_svs ctx =
match fdef.body with
| None -> ctx
@@ -189,23 +188,12 @@ let translate_function_to_pure (trans_ctx : trans_ctx)
RegularFunIdMap.find (A.Regular def_id, Some back_id) fun_sigs
in
(* We need to ignore the forward inputs, and the state input (if there is) *)
- let fun_info =
- SymbolicToPure.get_fun_effect_info fun_context.fun_infos
- (A.Regular def_id) (Some back_id)
- in
let backward_inputs =
+ let sg = backward_sg.sg in
(* We need to ignore the forward state and the backward state *)
- (* TODO: this is ad-hoc and error-prone. We should group all this
- * information in the signature information. *)
- let fwd_state_n = if fun_info.stateful_group then 1 else 0 in
- let num_forward_inputs = num_forward_inputs + fwd_state_n in
- let back_state_n = if fun_info.stateful then 1 else 0 in
- let num_back_inputs =
- List.length backward_sg.sg.inputs
- - num_forward_inputs - back_state_n
- in
- Collections.List.subslice backward_sg.sg.inputs num_forward_inputs
- num_back_inputs
+ let num_forward_inputs = sg.info.num_fwd_inputs_with_state in
+ let num_back_inputs = Option.get sg.info.num_back_inputs_no_state in
+ Collections.List.subslice sg.inputs num_forward_inputs num_back_inputs
in
(* As we forbid nested borrows, the additional inputs for the backward
* functions come from the borrows in the return value of the rust function: