Jelajahi Sumber

`(default, null)` is not read-only unfortunately (closes #5558)

Simon Krajewski 9 tahun lalu
induk
melakukan
2da847c6fe
2 mengubah file dengan 20 tambahan dan 1 penghapusan
  1. 1 1
      src/optimization/optimizer.ml
  2. 19 0
      tests/unit/src/unit/issues/Issue5558.hx

+ 1 - 1
src/optimization/optimizer.ml

@@ -247,7 +247,7 @@ let is_read_only_field_access fa = match fa with
 		match cf.cf_kind with
 			| Method MethDynamic -> false
 			| Method _ -> true
-			| Var {v_write = AccNever | AccNo} -> true
+			| Var {v_write = AccNever} -> true
 			| _ -> false
 
 let create_affection_checker () =

+ 19 - 0
tests/unit/src/unit/issues/Issue5558.hx

@@ -0,0 +1,19 @@
+package unit.issues;
+
+private class O {
+    public var f(default,null):Int;
+    public function new() f = 1;
+    public function mutate() f = 2;
+}
+
+class Issue5558 extends unit.Test {
+	function test() {
+        fun(new O());
+    }
+
+    function fun(o:O) {
+        var oldF = o.f;
+        o.mutate();
+        eq(1, oldF);
+    }
+}