Graph<Module> () { return GraphGenerator.generate(CachingSemiGraph.cache(new InboundSemiGraph<>() { @NotNull @Override public Collection<Module> getNodes() { return Arrays.asList(getModules()); } @NotNull @Override public Iterator<Module> getIn(Module m) { Module[] dependentModules = getModifiableRootModel(m).getModuleDependencies(true); return Arrays.asList(dependentModules).iterator(); } })); }