Ver código fonte

[java] Properly cast TNull. Closes #3306

Cauê Waneck 11 anos atrás
pai
commit
1da7759a32
3 arquivos alterados com 21 adições e 9 exclusões
  1. 2 2
      genjava.ml
  2. 0 7
      tests/unit/compile-java.hxml
  3. 19 0
      tests/unit/issues/Issue3306.hx

+ 2 - 2
genjava.ml

@@ -1197,9 +1197,9 @@ let configure gen =
 								| TEnum({ e_path = ([], "Bool") }, [])
 								| TAbstract ({ a_path = ([], "Bool") },[]) -> write w "false"
 								| TAbstract _ when like_int e.etype ->
-									expr_s w { e with eexpr = TConst(TInt Int32.zero) }
+									expr_s w (mk_cast e.etype { e with eexpr = TConst(TInt Int32.zero) })
 								| TAbstract _ when like_float e.etype ->
-									expr_s w { e with eexpr = TConst(TFloat "0.0") }
+									expr_s w (mk_cast e.etype { e with eexpr = TConst(TFloat "0.0") } )
 								| t -> write w ("null") )
 						| TThis -> write w "this"
 						| TSuper -> write w "super")

+ 0 - 7
tests/unit/compile-java.hxml

@@ -7,10 +7,3 @@ compile-each.hxml
 -main unit.Test
 -java java
 -java-lib native_java/native.jar
-
---next
-
-compile-each.hxml
--main unit.Test
--java java
--java-lib native_java/obj

+ 19 - 0
tests/unit/issues/Issue3306.hx

@@ -0,0 +1,19 @@
+package unit.issues;
+
+#if (java || cs)
+typedef Float32 = Single;
+
+class Issue3306 extends Test {
+	function test() {
+		var iw:Float32 = 0.0;
+		var iw2:Float32;
+		if (iw > 10)
+			iw2 = 2;
+		else
+			iw2 = 3;
+		eq(iw,0);
+		eq(iw2,3);
+	}
+}
+
+#end