diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2017-10-22 16:31:07 -0700 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2017-10-22 16:31:07 -0700 |
commit | 58daff70ac26cab4833ed4b5e57e13f60f440bc0 (patch) | |
tree | c5c474ad91838082b99a8560f44a5581b1110bab /src/main/scala | |
parent | 73ba1b6134b4171719283812cbea66784acbbd9c (diff) | |
download | mill-58daff70ac26cab4833ed4b5e57e13f60f440bc0.tar.gz mill-58daff70ac26cab4833ed4b5e57e13f60f440bc0.tar.bz2 mill-58daff70ac26cab4833ed4b5e57e13f60f440bc0.zip |
Add simple unit tests for `topoSortedTransitiveTargets`
Diffstat (limited to 'src/main/scala')
-rw-r--r-- | src/main/scala/forge/Evaluator.scala | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/main/scala/forge/Evaluator.scala b/src/main/scala/forge/Evaluator.scala index c6658ece..d2fdcb53 100644 --- a/src/main/scala/forge/Evaluator.scala +++ b/src/main/scala/forge/Evaluator.scala @@ -12,7 +12,7 @@ class Evaluator(workspacePath: jnio.Path, /** * Takes the given targets, finds */ - def prepareTransitiveTargets(sourceTargets: Seq[Target[_]]) = { + def topoSortedTransitiveTargets(sourceTargets: Seq[Target[_]]) = { val transitiveTargetSet = mutable.Set.empty[Target[_]] def rec(t: Target[_]): Unit = { if (transitiveTargetSet.contains(t)) () // do nothing @@ -33,18 +33,16 @@ class Evaluator(workspacePath: jnio.Path, val sortedClusters = Tarjans(numberedEdges) val nonTrivialClusters = sortedClusters.filter(_.length > 1) assert(nonTrivialClusters.isEmpty, nonTrivialClusters) - (transitiveTargets, sortedClusters.flatten) + sortedClusters.flatten.map(transitiveTargets) } def apply[T](t: Target[T]) (implicit enclosing: Enclosing): T = { jnio.Files.createDirectories(workspacePath) - val (transitiveTargets, sortedTargetIndices) = prepareTransitiveTargets(Seq(t)) + val sortedTargets = topoSortedTransitiveTargets(Seq(t)) val results = mutable.Map.empty[Target[_], Any] - for (index <- sortedTargetIndices){ - - val target = transitiveTargets(index) + for (target <- sortedTargets){ val inputResults = target.inputs.map(results) val targetDestPath = target.defCtx.staticEnclosing match{ |