Bladeren bron

use Type._enumParameters on HL (close #10699)

Nicolas Cannasse 3 jaren geleden
bovenliggende
commit
7dc9272865
1 gewijzigde bestanden met toevoegingen van 14 en 0 verwijderingen
  1. 14 0
      std/haxe/ds/EnumValueMap.hx

+ 14 - 0
std/haxe/ds/EnumValueMap.hx

@@ -33,11 +33,25 @@ class EnumValueMap<K:EnumValue, V> extends haxe.ds.BalancedTree<K, V> implements
 		var d = k1.getIndex() - k2.getIndex();
 		if (d != 0)
 			return d;
+		#if hl
+		var a1 = @:privateAccess Type._enumParameters(k1);
+		var a2 = @:privateAccess Type._enumParameters(k2);
+		var ld = a1.length - a2.length;
+		if (ld != 0)
+			return ld;
+		for (i in 0...a1.length) {
+			var d = compareArg(a1[i], a2[i]);
+			if (d != 0)
+				return d;
+		}
+		return 0;
+		#else
 		var p1 = k1.getParameters();
 		var p2 = k2.getParameters();
 		if (p1.length == 0 && p2.length == 0)
 			return 0;
 		return compareArgs(p1, p2);
+		#end
 	}
 
 	function compareArgs(a1:Array<Dynamic>, a2:Array<Dynamic>):Int {