diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-18 02:58:41 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-18 03:08:30 -0800 |
commit | 1dc8f54edab2b964e6e71970d56c46e5da5d7bdb (patch) | |
tree | 4873d14994374b4249cc6a173dd6bf7021649f3d /scalaplugin | |
parent | f5224324f20e7720e01a2f59b43f4151fac0c899 (diff) | |
download | mill-1dc8f54edab2b964e6e71970d56c46e5da5d7bdb.tar.gz mill-1dc8f54edab2b964e6e71970d56c46e5da5d7bdb.tar.bz2 mill-1dc8f54edab2b964e6e71970d56c46e5da5d7bdb.zip |
Extract out shared `Hierarchy.traverse` function for walking `Hierarchy` tree
Diffstat (limited to 'scalaplugin')
-rw-r--r-- | scalaplugin/src/main/scala/mill/scalaplugin/GenIdea.scala | 18 | ||||
-rw-r--r-- | scalaplugin/src/main/scala/mill/scalaplugin/ScalaModule.scala | 2 |
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 |