Explorar o código

add test (closes #4426)

Simon Krajewski %!s(int64=10) %!d(string=hai) anos
pai
achega
dc6a2a7f45
Modificáronse 1 ficheiros con 50 adicións e 0 borrados
  1. 50 0
      tests/unit/src/unit/issues/Issue4426.hx

+ 50 - 0
tests/unit/src/unit/issues/Issue4426.hx

@@ -0,0 +1,50 @@
+package unit.issues;
+
+private class Vector2Base {
+	public var x:Float;
+	public var y:Float;
+
+	public inline function new(x:Float, y:Float) {
+		this.x = x;
+		this.y = y;
+	}
+
+	public function toString() {
+        return '($x, $y)';
+    }
+}
+
+@:forward(x, y)
+private abstract Vector2(Vector2Base) from Vector2Base to Vector2Base {
+
+    public inline function new(x:Float = 0.0, y:Float = 0.0) {
+        this = new Vector2Base(x, y);
+    }
+
+    @:op(A + B)
+	public static inline function Add(a:Vector2, b:Vector2):Vector2
+    {
+        return new Vector2(a.x + b.x, a.y + b.y);
+    }
+}
+
+private class Transform {
+    public var position(default, set):Vector2 = new Vector2(0.0, 0.0);
+
+    public function new() {
+    }
+
+   	function set_position(newPosition:Vector2):Vector2 {
+		position = newPosition;
+        return position;
+    }
+}
+
+class Issue4426 extends Test {
+	function test() {
+		var transform = new Transform();
+        transform.position += new Vector2(1.0, 0.0);
+        feq(1., transform.position.x);
+        feq(0., transform.position.y);
+	}
+}