diff --git a/main-settings/src/test/scala/sbt/std/TaskPosSpec.scala b/main-settings/src/test/scala/sbt/std/TaskPosSpec.scala index 9206ff749..17bc85a9f 100644 --- a/main-settings/src/test/scala/sbt/std/TaskPosSpec.scala +++ b/main-settings/src/test/scala/sbt/std/TaskPosSpec.scala @@ -27,6 +27,30 @@ class TaskPosSpec { } } + locally { + import sbt._ + import sbt.Def._ + val foo = taskKey[String]("") + var condition = true + val baz = Def.task[String] { + val fooAnon = () => foo.value: @sbtUnchecked + if (condition) fooAnon() + else fooAnon() + } + } + + locally { + import sbt._ + import sbt.Def._ + val foo = taskKey[String]("") + var condition = true + val baz = Def.task[String] { + val fooAnon = () => (foo.value: @sbtUnchecked) + "" + if (condition) fooAnon() + else fooAnon() + } + } + locally { import sbt._ import sbt.Def._ @@ -77,6 +101,18 @@ class TaskPosSpec { } } + locally { + // missing .value error should not happen inside task dyn + import sbt._ + import sbt.Def._ + val foo = taskKey[String]("") + val avoidDCE = "" + val baz = Def.task[String] { + foo: @sbtUnchecked + avoidDCE + } + } + locally { import sbt._ import sbt.Def._