summaryrefslogtreecommitdiff
path: root/scalaworker
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-02-17 11:53:48 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-02-17 11:53:48 -0800
commit865045540bd80bebb1655005abf32bc089c33895 (patch)
tree694178964ec1f8f8af821f854655865cd9cd8612 /scalaworker
parent92edcae5094e52783f825021e4172a6b072300e0 (diff)
parent4cae6ff8a1111bb6c4bc6a44e67bd0affdbb9792 (diff)
downloadmill-865045540bd80bebb1655005abf32bc089c33895.tar.gz
mill-865045540bd80bebb1655005abf32bc089c33895.tar.bz2
mill-865045540bd80bebb1655005abf32bc089c33895.zip
Merge branch '130'
Diffstat (limited to 'scalaworker')
-rw-r--r--scalaworker/src/mill/scalaworker/ScalaWorker.scala16
1 files changed, 16 insertions, 0 deletions
diff --git a/scalaworker/src/mill/scalaworker/ScalaWorker.scala b/scalaworker/src/mill/scalaworker/ScalaWorker.scala
index 5b5808cb..7929d7c0 100644
--- a/scalaworker/src/mill/scalaworker/ScalaWorker.scala
+++ b/scalaworker/src/mill/scalaworker/ScalaWorker.scala
@@ -99,6 +99,22 @@ class ScalaWorker(ctx0: mill.util.Ctx,
compiledDest
}
+
+
+ def discoverMainClasses(compilationResult: CompilationResult)(implicit ctx: mill.util.Ctx): Seq[String] = {
+ def toScala[A](o: Optional[A]): Option[A] = if (o.isPresent) Some(o.get) else None
+
+ toScala(FileAnalysisStore.binary(compilationResult.analysisFile.toIO).get())
+ .map(_.getAnalysis)
+ .flatMap{
+ case analysis: Analysis =>
+ Some(analysis.infos.allInfos.values.map(_.getMainClasses).flatten.toSeq.sorted)
+ case _ =>
+ None
+ }
+ .getOrElse(Seq.empty[String])
+ }
+
def compileScala(scalaVersion: String,
sources: Agg[Path],
compileBridgeSources: Agg[Path],