if (outer == 0) { in.skip(4); return; }
if (outer == 0) { in.skip(4); continue; }
    public void readAttribute(Symbol sym, Type type, int attr, int attrLen) {        switch (attr) {        // class attributes            case SCALA_ATTR:                try {                    UnPickle.parse(parser.global, in.nextBytes(attrLen), sym);                    return;                } catch (UnPickle.BadSignature exception) {                    throw new RuntimeException(exception.getMessage());                }            case INNERCLASSES_ATTR:                int n = in.nextChar();                //System.out.println(sym + " has " + n + " innerclass entries");                for (int i = 0; i < n; i++) {                    int inner = in.nextChar();                    if (inner == 0) { in.skip(6); return; }                    int outer = in.nextChar();                    if (outer == 0) { in.skip(4); return; }                    int name = in.nextChar();                    if (name == 0) { in.skip(2); return; }                    int flags = in.nextChar();                    if ((flags & JAVA_ACC_STATIC) == 0) return;                    if ((flags & (JAVA_ACC_PUBLIC | JAVA_ACC_PROTECTED)) == 0) return;                    if (pool.getClass(outer) != sym) return;                    Symbol alias = sym.linkedModule().moduleClass().newTypeAlias(                        Position.NOPOS,                        0,                        pool.getName(name).toTypeName(),                        parser.make.classType(pool.getClass(inner)));                    parser.statics.enterNoHide(alias);                }                //in.skip(attrLen);                return;        // method attributes            case CODE_ATTR:                in.skip(attrLen);                return;            case EXCEPTIONS_ATTR:                //int nexceptions = in.nextChar();                //Type[] thrown = new Type[nexceptions];                //for (int j = 0; j < nexceptions; j++)                //    thrown[j] = make.classType(reader.readClassName(in.nextChar()));                //((MethodType)def.type).thrown = thrown;                in.skip(attrLen);                return;            case LINE_NUM_TABLE_ATTR:                in.skip(attrLen);                return;            case LOCAL_VAR_TABLE_ATTR:                in.skip(attrLen);                return;        // general attributes            case SYNTHETIC_ATTR:                sym.flags |= Modifiers.SYNTHETIC;                return;            case BRIDGE_ATTR:                sym.flags |= Modifiers.BRIDGE;                return;            case DEPRECATED_ATTR:                sym.flags |= Modifiers.DEPRECATED;                return;            case CONSTANT_VALUE_ATTR:            	AConstant constant = pool.getConstantValue(in.nextChar());                switch (constant) {                case INT(int value):                    Definitions definitions = parser.global.definitions;                    Symbol base = sym.getType().symbol();                    if (base == definitions.INT_CLASS) break;                    if (base == definitions.CHAR_CLASS)                        constant = AConstant.CHAR((char)value);                    else if (base == definitions.SHORT_CLASS)                        constant = AConstant.SHORT((short)value);                    else if (base == definitions.BYTE_CLASS)                        constant = AConstant.BYTE((byte)value);                    else                        constant = AConstant.BOOLEAN(value != 0);                }            	sym.setInfo(parser.make.constantType(constant));                return;            case META_ATTR:                //System.out.println("parsing meta data for " + sym);                String meta = pool.getString(in.nextChar()).trim();                sym.setInfo(                    new MetaParser(meta, tvars, sym, type).parse());                return;       		case JACO_ATTR:       		    // this attribute is present in all PiCo generated classfiles       		    int mods = in.nextChar();     			mods |= (in.nextChar() << 16);     			boolean algebraicClass = (mods & 0x00100000) != 0;     			boolean caseClass = (mods & 0x00200000) != 0;     			if (caseClass)     			    sym.flags |= Modifiers.CASE | Modifiers.JAVA;				in.skip(attrLen - 4);                return;            default:                in.skip(attrLen);                return;        }    }