|
@@ -35,12 +35,16 @@ class hxb_reader
|
|
val mutable field_type_parameters = Array.make 0 (mk_type_param "" t_dynamic None)
|
|
val mutable field_type_parameters = Array.make 0 (mk_type_param "" t_dynamic None)
|
|
val mutable local_type_parameters = DynArray.create ()
|
|
val mutable local_type_parameters = DynArray.create ()
|
|
|
|
|
|
|
|
+ method resolve_type pack mname tname =
|
|
|
|
+ try resolve_type pack mname tname with
|
|
|
|
+ | Not_found -> error (Printf.sprintf "Cannot resolve type %s" (s_type_path ((pack @ [mname]),tname)))
|
|
|
|
+
|
|
val mutable tvoid = None
|
|
val mutable tvoid = None
|
|
method get_tvoid =
|
|
method get_tvoid =
|
|
match tvoid with
|
|
match tvoid with
|
|
| Some tvoid -> tvoid
|
|
| Some tvoid -> tvoid
|
|
| None ->
|
|
| None ->
|
|
- let t = type_of_module_type (resolve_type [] "StdTypes" "Void") in
|
|
|
|
|
|
+ let t = type_of_module_type (self#resolve_type [] "StdTypes" "Void") in
|
|
tvoid <- Some t;
|
|
tvoid <- Some t;
|
|
t
|
|
t
|
|
|
|
|
|
@@ -980,7 +984,7 @@ class hxb_reader
|
|
| 125 ->
|
|
| 125 ->
|
|
let e1 = self#read_texpr in
|
|
let e1 = self#read_texpr in
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
- let md = resolve_type pack mname tname in
|
|
|
|
|
|
+ let md = self#resolve_type pack mname tname in
|
|
TCast(e1,Some md)
|
|
TCast(e1,Some md)
|
|
| 126 ->
|
|
| 126 ->
|
|
let c = self#read_class_ref in
|
|
let c = self#read_class_ref in
|
|
@@ -1344,7 +1348,7 @@ class hxb_reader
|
|
classes <- (Array.init l (fun i ->
|
|
classes <- (Array.init l (fun i ->
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
(* Printf.eprintf " Read clsr %d of %d for %s\n" i (l-1) (s_type_path ((pack @ [mname]),tname)); *)
|
|
(* Printf.eprintf " Read clsr %d of %d for %s\n" i (l-1) (s_type_path ((pack @ [mname]),tname)); *)
|
|
- match resolve_type pack mname tname with
|
|
|
|
|
|
+ match self#resolve_type pack mname tname with
|
|
| TClassDecl c ->
|
|
| TClassDecl c ->
|
|
(* Printf.eprintf " Resolved %d = %s with %d fields and %d statics\n" i (s_type_path c.cl_path) (List.length c.cl_ordered_fields) (List.length c.cl_ordered_statics); *)
|
|
(* Printf.eprintf " Resolved %d = %s with %d fields and %d statics\n" i (s_type_path c.cl_path) (List.length c.cl_ordered_fields) (List.length c.cl_ordered_statics); *)
|
|
c
|
|
c
|
|
@@ -1357,7 +1361,7 @@ class hxb_reader
|
|
abstracts <- (Array.init l (fun i ->
|
|
abstracts <- (Array.init l (fun i ->
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
(* Printf.eprintf " Read absr %d of %d for abstract %s\n" i l tname; *)
|
|
(* Printf.eprintf " Read absr %d of %d for abstract %s\n" i l tname; *)
|
|
- match resolve_type pack mname tname with
|
|
|
|
|
|
+ match self#resolve_type pack mname tname with
|
|
| TAbstractDecl a ->
|
|
| TAbstractDecl a ->
|
|
a
|
|
a
|
|
| _ ->
|
|
| _ ->
|
|
@@ -1369,7 +1373,7 @@ class hxb_reader
|
|
enums <- (Array.init l (fun i ->
|
|
enums <- (Array.init l (fun i ->
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
(* Printf.eprintf " Read enmr %d of %d for enum %s\n" i l tname; *)
|
|
(* Printf.eprintf " Read enmr %d of %d for enum %s\n" i l tname; *)
|
|
- match resolve_type pack mname tname with
|
|
|
|
|
|
+ match self#resolve_type pack mname tname with
|
|
| TEnumDecl en ->
|
|
| TEnumDecl en ->
|
|
en
|
|
en
|
|
| _ ->
|
|
| _ ->
|
|
@@ -1381,7 +1385,7 @@ class hxb_reader
|
|
typedefs <- (Array.init l (fun i ->
|
|
typedefs <- (Array.init l (fun i ->
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
let (pack,mname,tname) = self#read_full_path in
|
|
(* Printf.eprintf " Read tpdr %d of %d for typedef %s\n" i l (s_type_path ((pack @ [mname]), tname)); *)
|
|
(* Printf.eprintf " Read tpdr %d of %d for typedef %s\n" i l (s_type_path ((pack @ [mname]), tname)); *)
|
|
- match resolve_type pack mname tname with
|
|
|
|
|
|
+ match self#resolve_type pack mname tname with
|
|
| TTypeDecl tpd ->
|
|
| TTypeDecl tpd ->
|
|
tpd
|
|
tpd
|
|
| _ ->
|
|
| _ ->
|