Explorar o código

Filter out __Anon, Class and Enum fields

Hugh Sanderson %!s(int64=15) %!d(string=hai) anos
pai
achega
b516ac0df1
Modificáronse 1 ficheiros con 9 adicións e 2 borrados
  1. 9 2
      std/Type.hx

+ 9 - 2
std/Type.hx

@@ -70,7 +70,14 @@ class Type {
 			else
 				return __call__("_hx_ttype", c);
 		#elseif cpp
-			return untyped o.__GetClass();
+			if (o==null || !Reflect.isObject(o))  return null;
+			var c = o.__GetClass();
+			switch(c.toString())
+			{
+				case "__Anon" : return null;
+				case "Class" : return null;
+			}
+			return c;
 		#else
 			return null;
 		#end
@@ -107,7 +114,7 @@ class Type {
 			else
 				return __php__("_hx_ttype(get_class($o))");
 		#elseif cpp
-			if(!o.__IsEnum())
+			if(o.__GetClass()!=Enum)
 				return null;
 			return o;
 		#else