diff --git a/main-settings/src/main/scala/sbt/std/InputConvert.scala b/main-settings/src/main/scala/sbt/std/InputConvert.scala index 9b185c3c0..ca0ec290c 100644 --- a/main-settings/src/main/scala/sbt/std/InputConvert.scala +++ b/main-settings/src/main/scala/sbt/std/InputConvert.scala @@ -73,7 +73,7 @@ object InitParserConvert extends Convert { case _ => Converted.NotApplicable[c.type] } - private def wrap[T](c: blackbox.Context)(tree: c.Tree): Converted[c.type] = { + private def wrap[T: c.WeakTypeTag](c: blackbox.Context)(tree: c.Tree): Converted[c.type] = { val e = c.Expr[State => Parser[T]](tree) val t = c.universe.reify { Def.valueStrict[State => Parser[T]](e.splice) } Converted.Success[c.type](t.tree) diff --git a/sbt/src/sbt-test/actions/input-task-dyn/Bar.scala b/sbt/src/sbt-test/actions/input-task-dyn/Bar.scala new file mode 100644 index 000000000..75d1e1195 --- /dev/null +++ b/sbt/src/sbt-test/actions/input-task-dyn/Bar.scala @@ -0,0 +1,5 @@ +object Bar { + def main(args: Array[String]): Unit = { + println("Bar: " + args.toList.toString) + } +} diff --git a/sbt/src/sbt-test/actions/input-task-dyn/Foo.scala b/sbt/src/sbt-test/actions/input-task-dyn/Foo.scala new file mode 100644 index 000000000..e7c14d665 --- /dev/null +++ b/sbt/src/sbt-test/actions/input-task-dyn/Foo.scala @@ -0,0 +1,5 @@ +object Foo { + def main(args: Array[String]): Unit = { + println("Foo: " + args.toList.toString) + } +} diff --git a/sbt/src/sbt-test/actions/input-task-dyn/build.sbt b/sbt/src/sbt-test/actions/input-task-dyn/build.sbt new file mode 100644 index 000000000..8ceb394d3 --- /dev/null +++ b/sbt/src/sbt-test/actions/input-task-dyn/build.sbt @@ -0,0 +1,18 @@ +import complete.Parser + +// http://www.scala-sbt.org/0.13/docs/Input-Tasks.html + +val runFoo = inputKey[Unit]("Runs Foo with passed arguments") +val check = taskKey[Unit]("") + +lazy val root = (project in file(".")). + settings( + name := "run-test", + runFoo := Def.inputTaskDyn { + val args = Def.spaceDelimited().parsed + (runMain in Compile).toTask(s" Foo " + args.mkString(" ")) + }.evaluated, + check := { + val x = runFoo.toTask(" hi ho").value + } + ) diff --git a/sbt/src/sbt-test/actions/input-task-dyn/test b/sbt/src/sbt-test/actions/input-task-dyn/test new file mode 100644 index 000000000..15675b169 --- /dev/null +++ b/sbt/src/sbt-test/actions/input-task-dyn/test @@ -0,0 +1 @@ +> check