in javac-ast-extension/src/org/jetbrains/jps/javac/ast/api/JavacFileData.java [132:152]
private static JavacDef readJavacDef(@NotNull DataInput in) throws IOException {
final byte marker = in.readByte();
switch (marker) {
case CLASS_MARKER:
final int supersSize = in.readInt();
JavacRef[] superClasses = new JavacRef[supersSize];
for (int i = 0; i < supersSize; i++) {
superClasses[i] = readJavacRef(in);
}
return new JavacDef.JavacClassDef(readJavacRef(in), superClasses);
case FUN_EXPR_MARKER:
return new JavacDef.JavacFunExprDef(readJavacRef(in));
case METHOD_MARKER:
JavacRef retType = readJavacRef(in);
byte dimension = in.readByte();
boolean isStatic = in.readBoolean();
return new JavacDef.JavacMemberDef(readJavacRef(in), retType, dimension, isStatic);
default:
throw new IllegalStateException("unknown marker " + marker);
}
}