summaryrefslogtreecommitdiff
path: root/core/src/main/scala/forge/discover/Router.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-11-07 21:10:06 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2017-11-07 21:11:03 -0800
commitee080e63971399ceb22fd8f059a97e956d9f0dcb (patch)
treeaa4ce5a9b6647835fbdae11266621f13d24dcfcb /core/src/main/scala/forge/discover/Router.scala
parentca02aef2c98079c695fa616c75ab05a693c9d512 (diff)
downloadmill-ee080e63971399ceb22fd8f059a97e956d9f0dcb.tar.gz
mill-ee080e63971399ceb22fd8f059a97e956d9f0dcb.tar.bz2
mill-ee080e63971399ceb22fd8f059a97e956d9f0dcb.zip
- Allow main methods to return `Target[T]`s, so they can then be evaled by an external `Evaluator` that has the `Discovered` mapping available
- Basic integration tests for `T.command` entrypoint running in the `JavaCompilerJarTests` suite
Diffstat (limited to 'core/src/main/scala/forge/discover/Router.scala')
-rw-r--r--core/src/main/scala/forge/discover/Router.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/core/src/main/scala/forge/discover/Router.scala b/core/src/main/scala/forge/discover/Router.scala
index 3d054e29..afb526c7 100644
--- a/core/src/main/scala/forge/discover/Router.scala
+++ b/core/src/main/scala/forge/discover/Router.scala
@@ -1,6 +1,7 @@
package forge.discover
import ammonite.main.Compat
+import forge.define.Target
import sourcecode.Compat.Context
import scala.annotation.StaticAnnotation
@@ -56,8 +57,8 @@ object Router{
argSignatures: Seq[ArgSig[T]],
doc: Option[String],
varargs: Boolean,
- invoke0: (T, Map[String, String], Seq[String]) => Result[Any]){
- def invoke(target: T, groupedArgs: Seq[(String, Option[String])]): Result[Any] = {
+ invoke0: (T, Map[String, String], Seq[String]) => Result[Target[Any]]){
+ def invoke(target: T, groupedArgs: Seq[(String, Option[String])]): Result[Target[Any]] = {
var remainingArgSignatures = argSignatures.toList
@@ -375,7 +376,7 @@ class Router [C <: Context](val c: C) {
forge.discover.Router.validate(Seq(..$readArgs)) match{
case forge.discover.Router.Result.Success(List(..$argNames)) =>
forge.discover.Router.Result.Success($arg.${meth.name.toTermName}(..$argNameCasts))
- case x => x
+ case x: forge.discover.Router.Result.Error => x
}
)
"""