summaryrefslogtreecommitdiff
path: root/scalaplugin/src/main
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-11-18 02:58:41 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2017-11-18 03:08:30 -0800
commit1dc8f54edab2b964e6e71970d56c46e5da5d7bdb (patch)
tree4873d14994374b4249cc6a173dd6bf7021649f3d /scalaplugin/src/main
parentf5224324f20e7720e01a2f59b43f4151fac0c899 (diff)
downloadmill-1dc8f54edab2b964e6e71970d56c46e5da5d7bdb.tar.gz
mill-1dc8f54edab2b964e6e71970d56c46e5da5d7bdb.tar.bz2
mill-1dc8f54edab2b964e6e71970d56c46e5da5d7bdb.zip
Extract out shared `Hierarchy.traverse` function for walking `Hierarchy` tree
Diffstat (limited to 'scalaplugin/src/main')
-rw-r--r--scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala18
-rw-r--r--scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala2
2 files changed, 8 insertions, 12 deletions
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala b/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
index a2f6a8b1..9b120c7e 100644
--- a/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
+++ b/scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala
@@ -1,7 +1,7 @@
package mill.scalaplugin
import ammonite.ops._
-import mill.discover.{Discovered, Hierarchy}
+import mill.discover.{Discovered, Mirror}
import mill.eval.{Evaluator, PathRef}
import mill.util.OSet
@@ -19,20 +19,16 @@ object GenIdea {
def xmlFileLayout[T: Discovered](obj: T): Seq[(RelPath, scala.xml.Node)] = {
val discovered = implicitly[Discovered[T]]
- def rec(x: Hierarchy[T]): Seq[(Seq[String], ScalaModule)] = {
- val node = x.node(obj)
- val self = node match{
- case m: ScalaModule => Seq(x.path -> m)
- case _ => Nil
- }
-
- self ++ x.children.flatMap(rec)
- }
val mapping = Discovered.mapping(obj)(discovered)
val workspacePath = pwd / 'out
val evaluator = new Evaluator(workspacePath, mapping)
- val modules = rec(discovered.hierarchy)
+ val modules = Mirror.traverse(discovered.mirror){ (h, p) =>
+ h.node(obj) match {
+ case m: ScalaModule => Seq(p -> m)
+ case _ => Nil
+ }
+ }
val resolved = for((path, mod) <- modules) yield {
val Seq(resolvedCp: Seq[PathRef], resolvedSrcs: Seq[PathRef]) =
evaluator.evaluate(OSet(mod.externalCompileDepClasspath, mod.externalCompileDepSources))
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala b/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala
index f5c895bb..a99cf71b 100644
--- a/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala
+++ b/scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala
@@ -7,7 +7,7 @@ import ammonite.ops._
import coursier.{Cache, Fetch, MavenRepository, Repository, Resolution}
import mill.define.Task
import mill.define.Task.Module
-import mill.discover.{Discovered, Hierarchy}
+import mill.discover.{Discovered, Mirror}
import mill.eval.{Evaluator, PathRef}
import mill.modules.Jvm.{createJar, createAssembly}
import mill.util.OSet