2
0
Эх сурвалжийг харах

[php7] maintain statics initialization order (fixes #6070)

Alexander Kuzmenko 8 жил өмнө
parent
commit
2cdb34cd3a

+ 2 - 2
src/generators/genphp7.ml

@@ -3304,7 +3304,7 @@ class class_builder ctx (cls:tclass) =
 				)
 				cls.cl_statics;
 			(* `static var` initialization *)
-			let write_var_initialization _ field =
+			let write_var_initialization field =
 				let write_assign expr =
 					self#write_indentation;
 					self#write ("self::$" ^ (field_name field) ^ " = ");
@@ -3333,7 +3333,7 @@ class class_builder ctx (cls:tclass) =
 					self#write ";\n"
 				end
 			in
-			PMap.iter write_var_initialization cls.cl_statics
+			List.iter write_var_initialization cls.cl_ordered_statics
 		(**
 			Writes single field to output buffer.
 		*)

+ 10 - 0
tests/unit/src/unit/issues/Issue6070.hx

@@ -0,0 +1,10 @@
+package unit.issues;
+
+class Issue6070 extends unit.Test {
+	static var C = ["1", "2"];
+	static var B = C.concat(["3", "4"]);
+
+	function test():Void {
+		eq("1234", B.join(""));
+	}
+}