Преглед изворни кода

[jvm] please our Dynamic overlords

closes #8872
Simon Krajewski пре 5 година
родитељ
комит
d2bba9a4cd
2 измењених фајлова са 15 додато и 5 уклоњено
  1. 2 5
      src/generators/genjvm.ml
  2. 13 0
      tests/unit/src/unit/issues/Issue8872.hx

+ 2 - 5
src/generators/genjvm.ml

@@ -577,11 +577,8 @@ class texpr_to_jvm gctx (jc : JvmClass.builder) (jm : JvmMethod.builder) (return
 	method expect_reference_type = jm#expect_reference_type
 
 	method cast t =
-		if follow t != t_dynamic then begin
-			let vt = self#vtype t in
-			jm#cast vt
-		end else
-			self#expect_reference_type
+		let vt = self#vtype t in
+		jm#cast vt
 
 	method cast_expect ret t = match ret with
 		| RValue (Some jsig) -> jm#cast jsig

+ 13 - 0
tests/unit/src/unit/issues/Issue8872.hx

@@ -0,0 +1,13 @@
+package unit.issues;
+
+class Issue8872 extends unit.Test {
+	function test() {
+		var d:Array<Dynamic> = [];
+		d.push(getTrue() ? (0 : Dynamic) : ("foo" : Dynamic));
+		eq(0, d[0]);
+	}
+
+	static function getTrue() {
+		return true;
+	}
+}