From b208f4727592e266d91e0d30f9520ff953921448 Mon Sep 17 00:00:00 2001 From: Benjy Date: Thu, 10 Oct 2013 14:19:24 -0700 Subject: [PATCH] Add a merge method to Compilations. Also fixed a cut-n-paste mishap in Relations. --- compile/inc/src/main/scala/sbt/inc/Compilations.scala | 1 + compile/inc/src/main/scala/sbt/inc/Relations.scala | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/compile/inc/src/main/scala/sbt/inc/Compilations.scala b/compile/inc/src/main/scala/sbt/inc/Compilations.scala index 86ab145d2..038984429 100644 --- a/compile/inc/src/main/scala/sbt/inc/Compilations.scala +++ b/compile/inc/src/main/scala/sbt/inc/Compilations.scala @@ -12,6 +12,7 @@ trait Compilations { object Compilations { val empty: Compilations = new MCompilations(Seq.empty) def make(s: Seq[Compilation]): Compilations = new MCompilations(s) + def merge(s: Traversable[Compilations]): Compilations = make((s flatMap { _.allCompilations }).toSeq.distinct) } private final class MCompilations(val allCompilations: Seq[Compilation]) extends Compilations { diff --git a/compile/inc/src/main/scala/sbt/inc/Relations.scala b/compile/inc/src/main/scala/sbt/inc/Relations.scala index 6814fe6f0..56d661845 100644 --- a/compile/inc/src/main/scala/sbt/inc/Relations.scala +++ b/compile/inc/src/main/scala/sbt/inc/Relations.scala @@ -217,12 +217,12 @@ private class MRelations(val srcProd: Relation[File, File], val binaryDep: Relat def groupBy[K](f: File => K): Map[K, Relations] = { type MapRel[T] = Map[K, Relation[File, T]] - def outerJoin(srcProdMap: MapRel[File], binaryDepMap: MapRel[File], direct: Map[K, RSource], inherited: Map[K, RSource], + def outerJoin(srcProdMap: MapRel[File], binaryDepMap: MapRel[File], direct: Map[K, Source], inherited: Map[K, Source], classesMap: MapRel[String]): Map[K, Relations] = { def kRelations(k: K): Relations = { def get[T](m: Map[K, Relation[File, T]]) = Relations.getOrEmpty(m, k) - def getSrc(m: Map[K, RSource]): RSource = m.getOrElse(k, Relations.emptySource) + def getSrc(m: Map[K, Source]): Source = m.getOrElse(k, Relations.emptySource) new MRelations( get(srcProdMap), get(binaryDepMap), getSrc(direct), getSrc(inherited), get(classesMap) ) } val keys = (srcProdMap.keySet ++ binaryDepMap.keySet ++ direct.keySet ++ inherited.keySet ++ classesMap.keySet).toList