List<SyntheticLibraryDescriptor> (@NotNull Project project) { List<SyntheticLibraryDescriptor> libraries = new ArrayList<>(); for (AdditionalLibraryRootsProvider provider : AdditionalLibraryRootsProvider.EP_NAME.getExtensionList()) { Set<String> comparisonIds = new HashSet<>(); Collection<SyntheticLibrary> allLibs = provider.getAdditionalProjectLibraries(project); for (SyntheticLibrary library : allLibs) { String id = library.getComparisonId(); if (id != null && !comparisonIds.add(id)) { LOG.error("Multiple libraries have comparison id " + id + ": " + ContainerUtil.filter(allLibs, lib -> id.equals(lib.getComparisonId()))); } libraries.add(new SyntheticLibraryDescriptor(library, provider)); } } return libraries; }