Jelajahi Sumber

moved on_generate as last type filter

Nicolas Cannasse 14 tahun lalu
induk
melakukan
1a63af744f
3 mengubah file dengan 1 tambahan dan 3 penghapusan
  1. 1 0
      main.ml
  2. 0 1
      typecore.ml
  3. 0 2
      typer.ml

+ 1 - 0
main.ml

@@ -563,6 +563,7 @@ try
 		let filters = (match com.platform with Js | Php | Cpp -> Optimizer.sanitize :: filters | _ -> filters) in
 		let filters = (if not com.foptimize then filters else Optimizer.reduce_expression ctx :: filters) in
 		Codegen.post_process com filters;
+		Common.add_filter com (fun() -> List.iter (Codegen.on_generate ctx) com.types);
 		List.iter (fun f -> f()) (List.rev com.filters);
 		if Common.defined com "dump" then Codegen.dump_types com;
 		(match com.platform with

+ 0 - 1
typecore.ml

@@ -41,7 +41,6 @@ type typer_globals = {
 	do_create : Common.context -> typer;
 	do_macro : typer -> path -> string -> Ast.expr list -> Ast.pos -> Ast.expr option;
 	do_load_module : typer -> path -> pos -> module_def;
-	do_generate : typer -> module_type -> unit;
 	do_optimize : typer -> texpr -> texpr;
 	do_build_instance : typer -> module_type -> pos -> ((string * t) list * path * (t list -> t));
 }

+ 0 - 2
typer.ml

@@ -1718,7 +1718,6 @@ let generate ctx main =
 			prerr_endline ("Warning : maybe loop in static generation of " ^ s_type_path p);
 		| NotYet ->
 			Hashtbl.add states p Generating;
-			ctx.g.do_generate ctx t;
 			let t = (match t with
 			| TClassDecl c ->
 				walk_class p c;
@@ -2076,7 +2075,6 @@ let rec create com =
 			do_create = create;
 			do_macro = type_macro;
 			do_load_module = Typeload.load_module;
-			do_generate = Codegen.on_generate;
 			do_optimize = Optimizer.reduce_expression;
 			do_build_instance = Codegen.build_instance;
 		};