2
0
Эх сурвалжийг харах

[java/cs] Do not normalize all abstracts

Rather, only follow the multitype ones

Closes #6635
Caue Waneck 7 жил өмнө
parent
commit
0c8ce47bb0

+ 1 - 1
src/codegen/gencommon/normalize.ml

@@ -49,7 +49,7 @@ let rec filter_param t =
 		TAbstract(a, List.map filter_param tl)
 	| TAbstract({a_path = [],"Null"} as a,[t]) ->
 		TAbstract(a,[filter_param t])
-	| TAbstract(a,tl) when not (Meta.has Meta.CoreType a.a_meta) ->
+	| TAbstract(a,tl) when (Meta.has Meta.MultiType a.a_meta) ->
 		filter_param (Abstract.get_underlying_type a tl)
 	| TAbstract(a,tl) ->
 		TAbstract(a, List.map filter_param tl)

+ 23 - 0
tests/unit/src/unit/issues/Issue6635.hx

@@ -0,0 +1,23 @@
+package unit.issues;
+
+class Issue6635 extends Test
+{
+  public function test()
+  {
+    var t = Main.main();
+  }
+}
+
+@:keep private abstract A<V>(String) {}
+
+private typedef S = {a:A<Int>};
+
+@:keep private class Main {
+	function new(s:S) {}
+
+	static function getS():S return null;
+
+	public static function main() {
+		return new Main(getS());
+	}
+}