Bläddra i källkod

skip constant/empty __init__

Nicolas Cannasse 15 år sedan
förälder
incheckning
66454b66b1
2 ändrade filer med 5 tillägg och 1 borttagningar
  1. 1 0
      doc/CHANGES.txt
  2. 4 1
      typeload.ml

+ 1 - 0
doc/CHANGES.txt

@@ -14,6 +14,7 @@
 	flash9 : only init dynamic methods if not already defined (in subclass)
 	flash9 : only init dynamic methods if not already defined (in subclass)
 	std : added haxe.SHA1
 	std : added haxe.SHA1
 	compiler : added TCast, allow cast optimization on flash9/cpp
 	compiler : added TCast, allow cast optimization on flash9/cpp
+	as3 : fixed Std.__init__ generating 'null'
 
 
 2010-01-09: 2.05
 2010-01-09: 2.05
 	js : added js.Scroll
 	js : added js.Scroll

+ 4 - 1
typeload.ml

@@ -665,7 +665,10 @@ let init_class ctx c p herits fields =
 					tf_type = ret;
 					tf_type = ret;
 					tf_expr = e;
 					tf_expr = e;
 				} in
 				} in
-				if stat && name = "__init__" then c.cl_init <- Some e;
+				if stat && name = "__init__" then 
+					(match e.eexpr with
+					| TBlock [] | TBlock [{ eexpr = TConst _ }] | TConst _ | TObjectDecl [] -> ()
+					| _ -> c.cl_init <- Some e);
 				cf.cf_expr <- Some (mk (TFunction f) t p);
 				cf.cf_expr <- Some (mk (TFunction f) t p);
 				t
 				t
 			) in
 			) in