Iterator<ModuleSourceSet> (final ModuleSourceSet n) { ModuleRootModel model = provider.getRootModel(n.getModule()); OrderEnumerator enumerator = model.orderEntries().compileOnly(); if (n.getType() == ModuleSourceSet.Type.PRODUCTION) { enumerator = enumerator.productionOnly(); } final List<ModuleSourceSet> deps = new ArrayList<>(); enumerator.forEachModule(module -> { deps.add(new ModuleSourceSet(module, n.getType())); return true; }); if (n.getType() == ModuleSourceSet.Type.TEST) { deps.add(new ModuleSourceSet(n.getModule(), ModuleSourceSet.Type.PRODUCTION)); } return deps.iterator(); }