@Override
	public Iterable<JavaFileObject> list(@Nonnull Location location, @Nonnull String packageName,
										 @Nonnull Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException {
		Iterable<JavaFileObject> list = super.list(location, packageName, kinds, recurse);
		if (StandardLocation.CLASS_PATH.equals(location) && kinds.contains(JavaFileObject.Kind.CLASS)) {
			String formatted = packageName.isEmpty() ? "" : packageName.replace('.', '/') + '/';
			Predicate<String> check;
			if (recurse) {
				check = name -> name.startsWith(formatted);
			} else {
				check = name -> name.startsWith(formatted) &&
						name.indexOf('/', formatted.length()) == -1;
			}
			return () -> new ClassPathIterator(list.iterator(), virtualClasspath.stream()
					.flatMap(resource -> resource.getJvmClassBundle().entrySet().stream())
					.filter(entry -> check.test(entry.getKey()))
					.<JavaFileObject>map(entry -> new ResourceVirtualJavaFileObject(entry.getKey(),
							entry.getValue().getBytecode(), JavaFileObject.Kind.CLASS))
					.iterator());
		}
		return list;
	}
@param unitMap
		Class input map.
@param virtualClasspath
		In-memory classpath.
@param fallback
		Fallback manager.
recaf-core/src/main/java/software/coley/recaf/services/compile/VirtualFileManager.java