summaryrefslogtreecommitdiff
path: root/compiler/Translate.ml
diff options
context:
space:
mode:
authorSon Ho2023-10-23 17:29:15 +0200
committerSon Ho2023-10-23 17:29:15 +0200
commitc486bd0675f489c5ac917749a68e2c71b55041ae (patch)
treeed79812911a9f2921d0409548bf67b83d9b047b7 /compiler/Translate.ml
parent838cc86cb2efc8fb64a94a94b58b82d66844e7e4 (diff)
Make progress on handling the builtins
Diffstat (limited to 'compiler/Translate.ml')
-rw-r--r--compiler/Translate.ml9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/Translate.ml b/compiler/Translate.ml
index 15297770..0871a305 100644
--- a/compiler/Translate.ml
+++ b/compiler/Translate.ml
@@ -731,8 +731,13 @@ let export_functions_group (fmt : Format.formatter) (config : gen_config)
let export_trait_decl (fmt : Format.formatter) (_config : gen_config)
(ctx : gen_ctx) (trait_decl_id : Pure.trait_decl_id) : unit =
let trait_decl = T.TraitDeclId.Map.find trait_decl_id ctx.trans_trait_decls in
- let ctx = { ctx with trait_decl_id = Some trait_decl.def_id } in
- Extract.extract_trait_decl ctx fmt trait_decl
+ (* Check if the trait declaration is builtin, in which case we ignore it *)
+ let open ExtractBuiltin in
+ let sname = name_to_simple_name trait_decl.name in
+ if SimpleNameMap.find_opt sname (builtin_trait_decls_map ()) = None then
+ let ctx = { ctx with trait_decl_id = Some trait_decl.def_id } in
+ Extract.extract_trait_decl ctx fmt trait_decl
+ else ()
(** Export a trait implementation. *)
let export_trait_impl (fmt : Format.formatter) (_config : gen_config)