diff --git a/main-settings/src/main/scala/sbt/std/TaskMacro.scala b/main-settings/src/main/scala/sbt/std/TaskMacro.scala index 650914c7a..198b4adb1 100644 --- a/main-settings/src/main/scala/sbt/std/TaskMacro.scala +++ b/main-settings/src/main/scala/sbt/std/TaskMacro.scala @@ -450,6 +450,7 @@ object TaskMacro { def expand(nme: String, tpe: Type, tree: Tree): Converted[c.type] = nme match { case WrapInitTaskName => Converted.Success(wrapInitTask(tree)(c.WeakTypeTag(tpe))) + case WrapPreviousName => Converted.Success(wrapInitTask(tree)(c.WeakTypeTag(tpe))) case ParserInput.WrapInitName => Converted.Success(wrapInitParser(tree)(c.WeakTypeTag(tpe))) case WrapInitInputName => Converted.Success(wrapInitInput(tree)(c.WeakTypeTag(tpe))) case WrapInputName => Converted.Success(wrapInput(tree)(c.WeakTypeTag(tpe))) diff --git a/sbt/src/sbt-test/actions/previous-in-input-task/build.sbt b/sbt/src/sbt-test/actions/previous-in-input-task/build.sbt new file mode 100644 index 000000000..a7e169d7e --- /dev/null +++ b/sbt/src/sbt-test/actions/previous-in-input-task/build.sbt @@ -0,0 +1,10 @@ +import sjsonnew.BasicJsonProtocol._ + +val cacheTask = taskKey[Int]("task") +cacheTask := 1 + +val checkTask = inputKey[Unit]("validate that the correct value is set by cacheTask") +checkTask := { + val expected = Def.spaceDelimited("").parsed.head.toInt + assert(cacheTask.previous.getOrElse(0) == expected) +} \ No newline at end of file diff --git a/sbt/src/sbt-test/actions/previous-in-input-task/test b/sbt/src/sbt-test/actions/previous-in-input-task/test new file mode 100644 index 000000000..1b7969eea --- /dev/null +++ b/sbt/src/sbt-test/actions/previous-in-input-task/test @@ -0,0 +1,5 @@ +> checkTask 0 + +> cacheTask + +> checkTask 1 \ No newline at end of file