X-Git-Url: http://git.megacz.com/?p=org.ibex.classgen.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fclassgen%2FType.java;h=44e6476869d6794e3cefe094a4b35c03c8f4c0bc;hp=6e20f672dcf80c339379c032a6f3825a336230e8;hb=5d8b492b2c284a96c9055a8d89bfac5bec7d09d5;hpb=0b535cb6b45f0d8a1d43eee75a3fe187ed383ef8 diff --git a/src/org/ibex/classgen/Type.java b/src/org/ibex/classgen/Type.java index 6e20f67..44e6476 100644 --- a/src/org/ibex/classgen/Type.java +++ b/src/org/ibex/classgen/Type.java @@ -97,9 +97,22 @@ public abstract class Type implements CGConst { public boolean isClass() { return true; } public static Type.Class instance(String className) { return (Type.Class)Type.fromDescriptor("L"+className.replace('.', '/')+";"); } - //public boolean extendsOrImplements(Type.Class c, Context cx) { } + public boolean extendsOrImplements(Type.Class c, Context cx) { + if (this==c) return true; + if (this==OBJECT) return false; + ClassFile cf = cx.resolve(getName()); + if (cf==null) { + System.err.println("warning: could not resolve class " + getName()); + return false; + } + if (cf.superType == c) return true; + for(int i=0; i