Explorar el Código

add gen_class_init

Simon Krajewski hace 11 años
padre
commit
1143567032
Se han modificado 1 ficheros con 13 adiciones y 1 borrados
  1. 13 1
      genpy.ml

+ 13 - 1
genpy.ml

@@ -1670,6 +1670,17 @@ module Generator = struct
 		in
 		ctx.static_inits <- f :: ctx.static_inits
 
+	let gen_class_init ctx c =
+		match c.cl_init with
+			| None ->
+				()
+			| Some e ->
+				let f = fun () ->
+					let e = transform_expr e in
+					spr_line ctx (texpr_str e (Printer.create_context ""));
+				in
+				ctx.static_inits <- f :: ctx.static_inits
+
 	let gen_class ctx c =
 		gen_pre_code_meta ctx c.cl_meta;
 		print ctx "# print %s.%s\n" (s_type_path c.cl_module.m_path) (snd c.cl_path);
@@ -1704,7 +1715,8 @@ module Generator = struct
 			gen_class_metadata ctx c p;
 			gen_class_empty_constructor ctx p c.cl_ordered_fields;
 			gen_class_statics ctx c p;
-		end
+		end;
+		gen_class_init ctx c
 
 	let gen_enum ctx en =
 		let mt = (t_infos (TEnumDecl en)) in