瀏覽代碼

inherit tm_modifiers too

Simon Krajewski 1 年之前
父節點
當前提交
59a8e55def
共有 2 個文件被更改,包括 24 次插入0 次删除
  1. 3 0
      src/core/tUnification.ml
  2. 21 0
      tests/unit/src/unit/issues/Issue11851.hx

+ 3 - 0
src/core/tUnification.ml

@@ -249,6 +249,9 @@ module Monomorph = struct
 			| None ->
 				List.iter (add_down_constraint m2) m.tm_down_constraints;
 				List.iter (add_up_constraint m2) m.tm_up_constraints;
+				List.iter (fun modi ->
+					add_modifier m2 modi
+				) m.tm_modifiers;
 				do_bind m t;
 			| Some t ->
 				bind m t

+ 21 - 0
tests/unit/src/unit/issues/Issue11851.hx

@@ -0,0 +1,21 @@
+package unit.issues;
+
+class Issue11851 extends Test {
+	function test() {
+		var o = {arr: [{foo: 1, bar: 42}]};
+		var arr = Reflect.field(o, "arr");
+
+		var buf = new StringBuf();
+		function append(s:Dynamic) {
+			buf.add(s);
+			buf.add(" ");
+		}
+
+		for (i in 0...arr.length) {
+			append(arr[i].foo);
+			append(arr[i].bar); // fails too
+			append(arr[0].bar == null ? 42 : arr[0].bar);
+		}
+		eq("1 42 42 ", buf.toString());
+	}
+}