FastVirtualCallConsumer getVirtualCallConsumer(MethodReference method) { return virtualCallConsumers.computeIfAbsent(method, key -> { FastVirtualCallConsumer consumer = new FastVirtualCallConsumer(instancesNode, key.getDescriptor(), this); defer(() -> { getSubtypeNode(method.getClassName()).addConsumer(consumer); }); return consumer; }); }
if (cls != null) { if (cls.getParent() != null) { node.connect(getSubtypeNode(prefix + cls.getParent().replace('.', '/') + ";")); } else { node.connect(getSubtypeNode("java.lang.Object")); node.connect(getSubtypeNode(prefix + itf.replace('.', '/') + ";")); node.connect(getSubtypeNode("java.lang.Object")); if (cls != null) { if (cls.getParent() != null) { node.connect(getSubtypeNode(cls.getParent())); node.connect(getSubtypeNode(itf));
public FastDependencyAnalyzer(ClassReaderSource classSource, ClassLoader classLoader, ServiceRepository services, Diagnostics diagnostics) { super(classSource, classLoader, services, diagnostics); instancesNode = new DependencyNode(this, null); classesNode = new DependencyNode(this, null); instancesNode.addConsumer(type -> { getSubtypeNode(type.getName()).propagate(type); }); }