Browse Source

[jvm] don't rely on etype for invoke calls

closes #9491
Simon Krajewski 5 years ago
parent
commit
bab59f949c
2 changed files with 15 additions and 1 deletions
  1. 1 1
      src/generators/genjvm.ml
  2. 14 0
      tests/unit/src/unit/issues/Issue9491.hx

+ 1 - 1
src/generators/genjvm.ml

@@ -1386,7 +1386,7 @@ class texpr_to_jvm gctx (jc : JvmClass.builder) (jm : JvmMethod.builder) (return
 			(* Don't use call_arguments here because we don't have to cast. *)
 			let tl = List.map (fun e ->
 				self#texpr rvalue_any e;
-				jsignature_of_type gctx e.etype
+				code#get_stack#top
 			) el in
 			let _,tr = self#get_argument_signatures t el in
 			let meth = gctx.typed_functions#register_signature tl tr in

+ 14 - 0
tests/unit/src/unit/issues/Issue9491.hx

@@ -0,0 +1,14 @@
+package unit.issues;
+
+class Issue9491 extends unit.Test {
+	function test() {
+		var first = (arg) -> {
+			return "";
+		};
+
+		var second = (firstArg : String, secondArg = 0) -> {
+			return first(secondArg);
+		};
+		eq("", second(""));
+	}
+}