private static List<VirtualFile> descriptorFiles(VirtualFile root, boolean checkAttribute, boolean filter) {
    List<VirtualFile> results = new SmartList<>();

    ContainerUtil.addIfNotNull(results, root.findChild(PsiJavaModule.MODULE_INFO_CLS_FILE));

    VirtualFile versionsDir = root.findFileByRelativePath("META-INF/versions");
    if (versionsDir != null && (!checkAttribute || isMultiReleaseJar(root))) {
      VirtualFile[] versions = versionsDir.getChildren();
      if (filter) {
        versions = Stream.of(versions).filter(d -> version(d) >= 9).toArray(VirtualFile[]::new);
      }
      Arrays.sort(versions, JavaModuleNameIndex::compareVersions);
      for (VirtualFile version : versions) {
        ContainerUtil.addIfNotNull(results, version.findChild(PsiJavaModule.MODULE_INFO_CLS_FILE));
      }
    }

    return results;
  }
private static List<VirtualFile> descriptorFiles(VirtualFile root, boolean checkAttribute, boolean filter)