X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fibex%2Fclassgen%2FType.java;h=28c30dd85e9fb7f11df35cabb627ca6d488fd356;hb=8e8d0c0cb581b3589370e13b31102d94013d9d9d;hp=9e30f196109fcdb677e5b5da216028045751eecb;hpb=f66abe529719f8fb7cc27c7ddbdbf7bad70c49c7;p=org.ibex.classgen.git diff --git a/src/org/ibex/classgen/Type.java b/src/org/ibex/classgen/Type.java index 9e30f19..28c30dd 100644 --- a/src/org/ibex/classgen/Type.java +++ b/src/org/ibex/classgen/Type.java @@ -85,7 +85,7 @@ public abstract class Type implements CGConst { public Type.Array asArray() { return this; } public boolean isArray() { return true; } public String toString() { return base.toString() + "[]"; } - public Type getElementType() { return Type.fromDescriptor(getDescriptor().substring(0, getDescriptor().length()-1)); } + public Type getElementType() { return base; } } public static class Class extends Type.Ref { @@ -115,7 +115,7 @@ public abstract class Type implements CGConst { return p == -1 ? descriptor.substring(1,descriptor.length()-1) : descriptor.substring(p+1,descriptor.length()-1); } private static String _initHelper(String s) { - if (!s.startsWith("L") || !s.endsWith(";")) throw new Error("invalid"); + if (!s.startsWith("L") || !s.endsWith(";")) throw new Error("invalid: " + s); return s; } String[] components() { @@ -205,6 +205,7 @@ public abstract class Type implements CGConst { } public boolean isConstructor() { return getName().equals(""); } public boolean isClassInitializer() { return getName().equals(""); } + public String toString() { StringBuffer sb = new StringBuffer(); if (name.equals("")) sb.append("static "); @@ -242,6 +243,7 @@ public abstract class Type implements CGConst { super(flags, attrs); if ((flags & ~VALID_METHOD_FLAGS) != 0) throw new IllegalArgumentException("invalid flags"); } + public boolean isConcrete() { return !isAbstract() && !isNative() /*FIXME: !inAnInterface*/; } public void toString(StringBuffer sb, String constructorName) { int flags = getFlags(); sb.append(" ").append(ClassFile.flagsToString(flags,false));