From fa76f1b94e1f68d520b02c0dc1072cb73fa9d8be Mon Sep 17 00:00:00 2001 From: Son Ho Date: Tue, 7 Mar 2023 23:31:57 +0100 Subject: Add a special expression for structure creation/update --- compiler/Translate.ml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'compiler/Translate.ml') diff --git a/compiler/Translate.ml b/compiler/Translate.ml index 6bff936b..347052a8 100644 --- a/compiler/Translate.ml +++ b/compiler/Translate.ml @@ -77,11 +77,19 @@ let translate_function_to_pure (trans_ctx : trans_ctx) let fuel, var_counter = Pure.VarId.fresh var_counter in let calls = V.FunCallId.Map.empty in let abstractions = V.AbstractionId.Map.empty in + let recursive_type_decls = + T.TypeDeclId.Set.of_list + (List.filter_map + (fun (tid, g) -> + match g with Charon.GAst.NonRec _ -> None | Rec _ -> Some tid) + (T.TypeDeclId.Map.bindings trans_ctx.type_context.type_decls_groups)) + in let type_context = { - SymbolicToPure.types_infos = type_context.type_infos; + SymbolicToPure.type_infos = type_context.type_infos; llbc_type_decls = type_context.type_decls; type_decls = pure_type_decls; + recursive_decls = recursive_type_decls; } in let fun_context = -- cgit v1.2.3