mirror of https://github.com/sbt/sbt.git
Merge remote-tracking branch 'benjy/sourceinfos' into 0.13
This commit is contained in:
commit
6f2b4eaa8c
|
|
@ -27,12 +27,13 @@ object SourceInfos
|
||||||
val emptyInfo: SourceInfo = makeInfo(Nil, Nil)
|
val emptyInfo: SourceInfo = makeInfo(Nil, Nil)
|
||||||
def makeInfo(reported: Seq[Problem], unreported: Seq[Problem]): SourceInfo =
|
def makeInfo(reported: Seq[Problem], unreported: Seq[Problem]): SourceInfo =
|
||||||
new MSourceInfo(reported, unreported)
|
new MSourceInfo(reported, unreported)
|
||||||
|
def merge(infos: Traversable[SourceInfos]): SourceInfos = (SourceInfos.empty /: infos)(_ ++ _)
|
||||||
}
|
}
|
||||||
private final class MSourceInfos(val allInfos: Map[File, SourceInfo]) extends SourceInfos
|
private final class MSourceInfos(val allInfos: Map[File, SourceInfo]) extends SourceInfos
|
||||||
{
|
{
|
||||||
def ++(o: SourceInfos) = new MSourceInfos(allInfos ++ o.allInfos)
|
def ++(o: SourceInfos) = new MSourceInfos(allInfos ++ o.allInfos)
|
||||||
def --(sources: Iterable[File]) = new MSourceInfos(allInfos -- sources)
|
def --(sources: Iterable[File]) = new MSourceInfos(allInfos -- sources)
|
||||||
def groupBy[K](f: (File) => K): Map[K, SourceInfos] = allInfos.groupBy(item => f(item._1)) map { group => (group._1, new MSourceInfos(group._2)) }
|
def groupBy[K](f: File => K): Map[K, SourceInfos] = allInfos groupBy (x => f(x._1)) map { x => (x._1, new MSourceInfos(x._2)) }
|
||||||
def add(file: File, info: SourceInfo) = new MSourceInfos(allInfos + ((file, info)))
|
def add(file: File, info: SourceInfo) = new MSourceInfos(allInfos + ((file, info)))
|
||||||
def get(file:File) = allInfos.getOrElse(file, SourceInfos.emptyInfo)
|
def get(file:File) = allInfos.getOrElse(file, SourceInfos.emptyInfo)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue