List<Module> (@NotNull Module module) { XmlFile currentModulePluginXml = PluginModuleType.getPluginXml(module); if (currentModulePluginXml != null) { return Collections.singletonList(module); } List<Module> candidateModules = PluginModuleType.getCandidateModules(module); Iterator<Module> it = candidateModules.iterator(); while (it.hasNext()) { Module m = it.next(); if (PluginModuleType.getPluginXml(m) == null) { it.remove(); } } return candidateModules; }