inheritance tests

This commit is contained in:
Dima Granetchi
2014-11-15 15:21:11 +02:00
parent c43e4a08a2
commit 7eba4bf7e9
3 changed files with 38 additions and 32 deletions
+7 -6
View File
@@ -32,7 +32,7 @@ class Bind {
@:noUsing macro static public function unbindAll(object:ExprOf<IBindable>):Expr {
return internalUnbindAll(object);
}
}
#if macro
@@ -94,13 +94,14 @@ class Bind {
}
public static function isBindable(classType:ClassType):Bool {
if (classType.module == "bindx.IBindable" && classType.name == "IBindable")
return true;
var t = classType;
while (t != null) {
for (it in t.interfaces) {
var t = it.t.get();
if (t.module == "bindx.IBindable" && t.name == "IBindable")
return true;
}
for (it in t.interfaces)
if (isBindable(it.t.get()))
return true;
t = t.superClass != null ? t.superClass.t.get() : null;
}
return false;