summaryrefslogtreecommitdiff
path: root/bytecomp/translclass.ml
diff options
context:
space:
mode:
Diffstat (limited to 'bytecomp/translclass.ml')
-rw-r--r--bytecomp/translclass.ml8
1 files changed, 7 insertions, 1 deletions
diff --git a/bytecomp/translclass.ml b/bytecomp/translclass.ml
index 03f575920d..e71e77fa7c 100644
--- a/bytecomp/translclass.ml
+++ b/bytecomp/translclass.ml
@@ -195,7 +195,8 @@ let rec build_object_init cl_table obj params inh_init obj_init cl =
build_object_init cl_table obj (vals @ params) inh_init obj_init cl
in
(inh_init, Translcore.transl_let rec_flag defs obj_init)
- | Tcl_constraint (cl, _, _vals, _pub_meths, _concr_meths) ->
+ | Tcl_open (_, _, _, _, cl)
+ | Tcl_constraint (cl, _, _, _, _) ->
build_object_init cl_table obj params inh_init obj_init cl
let rec build_object_init_0 cl_table params cl copy_env subst_env top ids =
@@ -386,6 +387,8 @@ let rec build_class_init cla cstr super inh_init cl_init msubst top cl =
Lsequence(mkappl (oo_prim "narrow", narrow_args),
cl_init))
end
+ | Tcl_open (_, _, _, _, cl) ->
+ build_class_init cla cstr super inh_init cl_init msubst top cl
let rec build_class_lets cl ids =
match cl.cl_desc with
@@ -407,6 +410,7 @@ let rec get_class_meths cl =
| Tcl_fun (_, _, _, cl, _)
| Tcl_let (_, _, _, cl)
| Tcl_apply (cl, _)
+ | Tcl_open (_, _, _, _, cl)
| Tcl_constraint (cl, _, _, _, _) -> get_class_meths cl
(*
@@ -452,6 +456,8 @@ let rec transl_class_rebind obj_init cl vf =
in
check_constraint cl.cl_type;
(path, obj_init)
+ | Tcl_open (_, _, _, _, cl) ->
+ transl_class_rebind obj_init cl vf
let rec transl_class_rebind_0 self obj_init cl vf =
match cl.cl_desc with