Bladeren bron

[jvm] fixed `Null<Float> * Int` multiplication
(closes #9870)

Aleksandr Kuzmenko 5 jaren geleden
bovenliggende
commit
eff1844a62
3 gewijzigde bestanden met toevoegingen van 17 en 0 verwijderingen
  1. 1 0
      extra/CHANGES.txt
  2. 2 0
      src/generators/genjvm.ml
  3. 14 0
      tests/unit/src/unit/issues/Issue9870.hx

+ 1 - 0
extra/CHANGES.txt

@@ -14,6 +14,7 @@
 	php : fixed return type of extern definition for `fseek` function
 	cs,java : fixed generation of `@:generic` classes with anonymous functions (#9799)
 	jvm : fixed sending/reading messages with `sys.thread.Threads` for threads created outside of Haxe (#9863)
+	jvm : fixed multiplication of `Null<Float>` and `Int` (#9870)
 	flash : fixed loading swc libraries containing `Vector` without a type parameter (#9805)
 	hl : fixed messages being send to wrong threads with `sendMessage`/`readMessage` in `sys.thread.Thread` (#9875)
 

+ 2 - 0
src/generators/genjvm.ml

@@ -889,6 +889,8 @@ class texpr_to_jvm gctx (jc : JvmClass.builder) (jm : JvmMethod.builder) (return
 		| _,TObject((["java";"lang"],"String"),_) ->
 			string_sig
 		| TLong,_ | _,TLong -> TLong
+		| _,TObject((["java";"lang"],"Double"),_)
+		| TObject((["java";"lang"],"Double"),_),_
 		| TDouble,_ | _,TDouble -> TDouble
 		| TFloat,_ | _,TFloat -> TFloat
 		| TInt,_ | _,TInt -> TInt

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

@@ -0,0 +1,14 @@
+package unit.issues;
+
+import utest.Assert.floatEquals;
+
+class Issue9870 extends unit.Test {
+	function test() {
+		var t:Null<Float> = Math.random();
+		var a = t * 2.0;
+		var b = t * 2;
+		var c = 2 * t;
+		floatEquals(a, b);
+		floatEquals(a, c);
+	}
+}