private void populateParentToChildLookup(@Nonnull ClassInfo info, @Nonnull Set<ClassInfo> visited) {
		// Since we have observed this class to exist, we will remove the "stub" placeholder for this name.
		stubs.remove(info.getName());

		// Skip if already visited
		if (!visited.add(info))
			return;

		// Skip module classes
		if (info.hasModuleModifier())
			return;

		// Add direct parent
		String name = info.getName();
		InheritanceVertex vertex = getVertex(name);
		if (vertex != null)
			vertex.clearCachedVertices();

		String superName = info.getSuperName();
		if (superName != null) {
			populateParentToChildLookup(name, superName);

			// Visit parent
			InheritanceVertex superVertex = getVertex(superName);
			if (superVertex != null && !superVertex.isJavaLangObject() && !superVertex.isLoop())
				populateParentToChildLookup(superVertex.getValue(), visited);
		}

		// Add direct interfaces
		for (String itf : info.getInterfaces()) {
			populateParentToChildLookup(name, itf);

			// Visit interfaces
			InheritanceVertex interfaceVertex = getVertex(itf);
			if (interfaceVertex != null)
				populateParentToChildLookup(interfaceVertex.getValue(), visited);
		}
	}
Populate all references from the given child class to its parents.

@param info
		Child class.
@param visited
		Classes already visited in population.
recaf-core/src/main/java/software/coley/recaf/services/inheritance/InheritanceGraph.java