private def processDependencies[D, F]()

in extractor-legacy-0.13/src/main/scala/org/jetbrains/sbt/extractors/DependenciesExtractor.scala [169:189]


  private def processDependencies[D, F](
    dependencies: Seq[(D, Seq[Configuration])]
  )(mapToTargetType: ((D, Seq[Configuration])) => F): Dependencies[F] = {
    val productionDependencies = mutable.Map.empty[D, Seq[Configuration]]
    val testDependencies = mutable.Map.empty[D, Seq[Configuration]]

    def updateDependenciesInProductionAndTest(project: D, configsForProduction: Seq[Configuration], configsForTest: Seq[Configuration]): Unit = {
      Seq((productionDependencies, configsForProduction), (testDependencies, configsForTest))
        .filterNot(_._2.isEmpty)
        .foreach { case(dependencies, configs) =>
          val existingConfigurations = dependencies.getOrElse(project, Seq.empty)
          dependencies.update(project, existingConfigurations ++ configs)
        }
    }

    dependencies.foreach { case(dependency, configurations) =>
      val cs = splitConfigurationsToDifferentSourceSets(configurations)
      updateDependenciesInProductionAndTest(dependency, cs.forProduction, cs.forTest)
    }
    Dependencies(productionDependencies.toSeq.map(mapToTargetType), testDependencies.toSeq.map(mapToTargetType))
  }