Prechádzať zdrojové kódy

[hxb] fix TCast(e,Some md)

Rudy Ges 2 rokov pred
rodič
commit
313d84e6a7

+ 4 - 6
src/compiler/hxb/hxbReader.ml

@@ -606,12 +606,10 @@ class hxb_reader
 			| 123 -> TTypeExpr (TTypeDecl self#read_typedef_ref)
 			| 124 -> TCast(self#read_texpr,None)
 			| 125 ->
-				let _e1 = self#read_texpr in
-				let _path = self#read_path in
-				(* TODO retrieve md from path *)
-				(* TCast(e1,Some path) *)
-				Printf.eprintf "  %s TCast\n" todo;
-				assert false
+				let e1 = self#read_texpr in
+				let (pack,mname,tname) = self#read_full_path in
+				let md = resolve_type pack mname tname in
+				TCast(e1,Some md)
 			| 126 ->
 				let c = self#read_class_ref in
 				let tl = self#read_types in

+ 3 - 1
src/compiler/hxb/hxbWriter.ml

@@ -676,7 +676,9 @@ class ['a] hxb_writer
 			| TCast(e1,Some md) ->
 				chunk#write_byte 125;
 				loop e1;
-				self#write_path (t_infos md).mt_path
+				let infos = t_infos md in
+				let m = infos.mt_module in
+				self#write_full_path (fst m.m_path) (snd m.m_path) (snd infos.mt_path);
 			| TNew(c,tl,el) ->
 				chunk#write_byte 126;
 				self#write_class_ref c;