in core/src/main/java/com/spotify/missinglink/ClassLoader.java [89:109]
public static DeclaredClass load(InputStream in) throws IOException {
ClassNode classNode = readClassNode(in);
Set<ClassTypeDescriptor> parents = readParents(classNode);
Set<DeclaredField> declaredFields = readDeclaredFields(classNode);
Map<MethodDescriptor, DeclaredMethod> declaredMethods = new HashMap<>();
Set<ClassTypeDescriptor> loadedClasses = new HashSet<>();
for (MethodNode method : classNode.methods) {
analyseMethod(classNode.name, method, declaredMethods, loadedClasses);
}
return new DeclaredClassBuilder()
.className(TypeDescriptors.fromClassName(classNode.name))
.methods(declaredMethods)
.parents(parents)
.loadedClasses(loadedClasses)
.fields(declaredFields)
.build();
}