From cdd2e72cdf72558a02b70e6130a9ecac363e6920 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Tue, 4 Dec 2012 13:08:49 -0500 Subject: [PATCH] move top-level settingKey,taskKey,inputKey objects to Def and package object avoids class file name collision on case insensitive filesystem --- main/settings/Def.scala | 5 +++++ main/settings/Structure.scala | 13 ------------- main/settings/src/test/scala/UsageTest.scala | 1 + sbt/package.scala | 5 +++++ 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/main/settings/Def.scala b/main/settings/Def.scala index 6c49012e3..3589dedaa 100644 --- a/main/settings/Def.scala +++ b/main/settings/Def.scala @@ -64,6 +64,11 @@ object Def extends Init[Scope] with TaskMacroExtra // be used in the inputTask macro as an input with an ultimate result of type T implicit def parserInitToInput[T](p: Initialize[Parser[T]]): InitParserInput[T] = ??? implicit def parserInitStateToInput[T](p: Initialize[State => Parser[T]]): StateParserInput[T] = ??? + + import language.experimental.macros + def settingKey[T](description: String): SettingKey[T] = macro std.KeyMacro.settingKeyImpl[T] + def taskKey[T](description: String): TaskKey[T] = macro std.KeyMacro.taskKeyImpl[T] + def inputKey[T](description: String): TaskKey[T] = macro std.KeyMacro.taskKeyImpl[T] } // these need to be mixed into the sbt package object because the target doesn't involve Initialize or anything in Def trait TaskMacroExtra diff --git a/main/settings/Structure.scala b/main/settings/Structure.scala index 2d360cda7..f08d915d8 100644 --- a/main/settings/Structure.scala +++ b/main/settings/Structure.scala @@ -500,16 +500,3 @@ object SettingKey def local[T: Manifest]: SettingKey[T] = apply[T](AttributeKey.local[T]) } - -object settingKey -{ - def apply[T](description: String): SettingKey[T] = macro std.KeyMacro.settingKeyImpl[T] -} -object taskKey -{ - def apply[T](description: String): TaskKey[T] = macro std.KeyMacro.taskKeyImpl[T] -} -object inputKey -{ - def apply[T](description: String): TaskKey[T] = macro std.KeyMacro.taskKeyImpl[T] -} diff --git a/main/settings/src/test/scala/UsageTest.scala b/main/settings/src/test/scala/UsageTest.scala index e9484cc10..ae3380ec4 100644 --- a/main/settings/src/test/scala/UsageTest.scala +++ b/main/settings/src/test/scala/UsageTest.scala @@ -21,6 +21,7 @@ package std object Assign { import java.io.File + import Def.{inputKey,settingKey,taskKey} import Def.{Initialize,macroValueT,parserToInput} // import UseTask.{x,y,z,a,set,plain} diff --git a/sbt/package.scala b/sbt/package.scala index a0e1da127..cf99aea6e 100644 --- a/sbt/package.scala +++ b/sbt/package.scala @@ -50,4 +50,9 @@ package object sbt extends sbt.std.TaskExtra with sbt.Types with sbt.ProcessExtr // final val System = C.System final val Optional = C.Optional def config(s: String): Configuration = Configurations.config(s) + + import language.experimental.macros + def settingKey[T](description: String): SettingKey[T] = macro std.KeyMacro.settingKeyImpl[T] + def taskKey[T](description: String): TaskKey[T] = macro std.KeyMacro.taskKeyImpl[T] + def inputKey[T](description: String): TaskKey[T] = macro std.KeyMacro.taskKeyImpl[T] }