summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-10-22 16:23:13 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2017-10-22 16:23:13 -0700
commit73ba1b6134b4171719283812cbea66784acbbd9c (patch)
tree87c442f91010256297475b80c0a3e522a4112842 /src
parent5ec6a01116f401e84fd3c895c2582acbec3c969c (diff)
downloadmill-73ba1b6134b4171719283812cbea66784acbbd9c.tar.gz
mill-73ba1b6134b4171719283812cbea66784acbbd9c.tar.bz2
mill-73ba1b6134b4171719283812cbea66784acbbd9c.zip
Fix `Evaluator#prepareTransitiveTargets`
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/forge/Evaluator.scala15
-rw-r--r--src/test/scala/forge/ForgeTests.scala18
2 files changed, 16 insertions, 17 deletions
diff --git a/src/main/scala/forge/Evaluator.scala b/src/main/scala/forge/Evaluator.scala
index 9beebe52..c6658ece 100644
--- a/src/main/scala/forge/Evaluator.scala
+++ b/src/main/scala/forge/Evaluator.scala
@@ -12,10 +12,7 @@ class Evaluator(workspacePath: jnio.Path,
/**
* Takes the given targets, finds
*/
- def prepareTransitiveTargets(targets: Seq[Target[_]]) = {
-
- val targetIndices = targets.zipWithIndex.toMap
-
+ def prepareTransitiveTargets(sourceTargets: Seq[Target[_]]) = {
val transitiveTargetSet = mutable.Set.empty[Target[_]]
def rec(t: Target[_]): Unit = {
if (transitiveTargetSet.contains(t)) () // do nothing
@@ -25,11 +22,13 @@ class Evaluator(workspacePath: jnio.Path,
}
}
- targets.foreach(rec)
+ sourceTargets.foreach(rec)
val transitiveTargets = transitiveTargetSet.toVector
+ val targetIndices = transitiveTargets.zipWithIndex.toMap
+
val numberedEdges =
for(i <- transitiveTargets.indices)
- yield targets(i).inputs.map(targetIndices)
+ yield transitiveTargets(i).inputs.map(targetIndices)
val sortedClusters = Tarjans(numberedEdges)
val nonTrivialClusters = sortedClusters.filter(_.length > 1)
@@ -49,9 +48,9 @@ class Evaluator(workspacePath: jnio.Path,
val inputResults = target.inputs.map(results)
val targetDestPath = target.defCtx.staticEnclosing match{
- case Some(enclosing) =>
+ case Some(enclosingStr) =>
val targetDestPath = workspacePath.resolve(
- jnio.Paths.get(enclosing.stripSuffix(enclosingBase.staticEnclosing.getOrElse("")))
+ jnio.Paths.get(enclosingStr.stripSuffix(enclosingBase.staticEnclosing.getOrElse("")))
)
deleteRec(targetDestPath)
targetDestPath
diff --git a/src/test/scala/forge/ForgeTests.scala b/src/test/scala/forge/ForgeTests.scala
index 92ccd112..45d68f1c 100644
--- a/src/test/scala/forge/ForgeTests.scala
+++ b/src/test/scala/forge/ForgeTests.scala
@@ -26,18 +26,18 @@ object ForgeTests extends TestSuite{
val down = noop(noop(up), noop(up))
}
val tests = Tests{
-// 'singleton - {
-// evaluator.apply(Singleton.single)
-// }
+ 'singleton - {
+ evaluator.apply(Singleton.single)
+ }
'pair - {
evaluator.prepareTransitiveTargets(Seq(Pair.down))
}
-// 'diamond - {
-// evaluator.apply(Diamond.down)
-// }
-// 'anonDiamond - {
-// evaluator.apply(AnonymousDiamond.down)
-// }
+ 'diamond - {
+ evaluator.apply(Diamond.down)
+ }
+ 'anonDiamond - {
+ evaluator.apply(AnonymousDiamond.down)
+ }
// 'full - {
// val sourceRoot = Target.path(jnio.Paths.get("src/test/resources/example/src"))
// val resourceRoot = Target.path(jnio.Paths.get("src/test/resources/example/resources"))