diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-07 21:10:06 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-07 21:11:03 -0800 |
commit | ee080e63971399ceb22fd8f059a97e956d9f0dcb (patch) | |
tree | aa4ce5a9b6647835fbdae11266621f13d24dcfcb /core/src/main/scala/forge/discover | |
parent | ca02aef2c98079c695fa616c75ab05a693c9d512 (diff) | |
download | mill-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')
-rw-r--r-- | core/src/main/scala/forge/discover/Router.scala | 7 |
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 } ) """ |