private def allModulesWithDocs: Seq[ModuleReportAdapter] = projects.flatMap()

in extractor/src/main/scala/org/jetbrains/sbt/extractors/RepositoryExtractor.scala [27:52]


  private def allModulesWithDocs: Seq[ModuleReportAdapter] = projects.flatMap(moduleWithDoc)

  private def moduleWithDoc(projectRef: ProjectRef): Seq[ModuleReportAdapter] = {

    val modulesWithoutDocs = getModulesForProject(projectRef, updateReports)

    val modulesWithDocs = updateClassifiersReports.map { updateClassifiersReportsFn =>
      def onlySourcesAndDocs(artifacts: Seq[(Artifact, File)]): Seq[(Artifact, File)] =
        artifacts.collect { case (a, f) if a.`type` == Artifact.DocType || a.`type` == Artifact.SourceType => (a, f) }

      val docModules = getModulesForProject(projectRef, updateClassifiersReportsFn)

      val docModulesByModuleId = docModules
        .groupBy(_.moduleId)
        .map { case (moduleId, reports) =>
          moduleId -> reports.flatMap(r => onlySourcesAndDocs(r.artifacts))
        }

      modulesWithoutDocs.map { report =>
        val matchingDocs = docModulesByModuleId.getOrElse(report.moduleId, Seq.empty)
        ModuleReportAdapter(report.moduleId, report.artifacts ++ matchingDocs)
      }
    }

    modulesWithDocs.getOrElse(modulesWithoutDocs)
  }