Browse Source

[tests] add test for Hashlink Issue 735 (#12028)

* [tests] add test for Hashlink Issue 735

* Seems that lua does not like this test
Yuxiao Mao 6 months ago
parent
commit
6508421115
1 changed files with 38 additions and 0 deletions
  1. 38 0
      tests/unit/src/unit/issues/Issue12028.hx

+ 38 - 0
tests/unit/src/unit/issues/Issue12028.hx

@@ -0,0 +1,38 @@
+package unit.issues;
+
+private typedef StateHandler<T> = {
+    public function onUpdate():T;
+}
+
+class Issue12028 extends Test {
+	#if !lua
+	function testMakeVarArgsInDynamic() {
+		var func = function(args:Array<Dynamic>):String {
+			return args.length >= 1 ? args[0] : "";
+		};
+
+		var f2 = Reflect.makeVarArgs(func);
+		eq("a", f2("a")); // Important for repro
+		eq("b", foo(f2));
+		eq("d", Reflect.callMethod(null, f2, ["d"]));
+	}
+
+	function foo(func:Dynamic) {
+		return func("b", "c");
+	}
+
+	function testVoid2Dyn() {
+		var handlers:StateHandler<Void> = {
+			onUpdate: function():Bool {
+				return true;
+			}
+		}
+		foo2(handlers);
+		noAssert();
+	}
+
+	function foo2<T>(handlers:StateHandler<T>):Null<T> {
+		return handlers.onUpdate();
+	}
+	#end
+}