Browse Source

remove redundancy, more cleanup

frabbit 11 years ago
parent
commit
d588f1ae12
2 changed files with 7 additions and 49 deletions
  1. 1 1
      std/python/Boot.hx
  2. 6 48
      std/python/_std/Type.hx

+ 1 - 1
std/python/Boot.hx

@@ -423,7 +423,7 @@ import math as _hx_math
 			if (builtinHasAttr(c, "_hx_super")) {
 				return Syntax.field(c, "_hx_super");
 			}
-			return Syntax.arrayAccess(Syntax.field("c", "__bases__"), 0);
+			return null;
 		} catch (e:Dynamic) {
 
 		}

+ 6 - 48
std/python/_std/Type.hx

@@ -68,18 +68,7 @@ enum ValueType {
 	}
 
 	public static function getSuperClass( c : Class<Dynamic> ) : Class<Dynamic> {
-		if( c == null )
-			return null;
-
-		try {
-			if (Builtin.hasattr(c, "_hx_super")) {
-				return Syntax.field(c, "_hx_super");
-			}
-			return null;
-		} catch (e:Dynamic) {
-
-		}
-		return null;
+		return python.Boot.getSuperClass(c);
 
 	}
 
@@ -199,42 +188,11 @@ enum ValueType {
 	}
 
 	public static function getInstanceFields( c : Class<Dynamic> ) : Array<String> {
-		var f = if (Builtin.hasattr(c, "_hx_fields")) {
-			var x:Array<String> = Syntax.field(c, "_hx_fields");
-			var x2:Array<String> = Syntax.field(c, "_hx_methods");
-			x.concat(x2);
-		} else {
-			[];
-		}
-
-		var sc = getSuperClass(c);
-
-		if (sc == null) {
-			return f;
-		} else {
-			var scArr = getInstanceFields(sc);
-			var scMap = [for (f in scArr) f => f];
-			var res = [];
-			for (f1 in f) {
-				if (!scMap.exists(f1)) {
-					scArr.push(f1);
-				}
-			}
-
-			return scArr;
-		}
-
-
-		//return throw "getInstanceFields not implemented";
+		return python.Boot.getInstanceFields(c);
 	}
 
 	public static function getClassFields( c : Class<Dynamic> ) : Array<String> {
-		if (Builtin.hasattr(c, "_hx_statics")) {
-			var x:Array<String> = Syntax.field(c, "_hx_statics");
-			return x.copy();
-		} else {
-			return [];
-		}
+		return python.Boot.getClassFields(c);
 	}
 
 	public static function getEnumConstructs( e : Enum<Dynamic> ) : Array<String> {
@@ -305,15 +263,15 @@ enum ValueType {
 	}
 
 	public static inline function enumConstructor( e : EnumValue ) : String {
-		return (cast e:EnumImpl).tag;
+		return asEnumImpl(e).tag;
 	}
 
 	public static inline function enumParameters( e : EnumValue ) : Array<Dynamic> {
-		return (cast e:EnumImpl).params;
+		return asEnumImpl(e).params;
 	}
 
 	public static inline function enumIndex( e : EnumValue ) : Int {
-		return (cast e:EnumImpl).index;
+		return asEnumImpl(e).index;
 	}
 
 	public static function allEnums<T>( e : Enum<T> ) : Array<T>