From 2b621869fc4d54a7ba27086bd12317e95b3d8207 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 8 May 2014 21:54:04 -0400 Subject: [PATCH] Check for object autoImport in auto plugins. Fixes #1314 --- main/src/main/scala/sbt/Plugins.scala | 4 ++-- sbt/src/sbt-test/project/auto-plugins/build.sbt | 2 ++ sbt/src/sbt-test/project/auto-plugins/project/Q.scala | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/main/src/main/scala/sbt/Plugins.scala b/main/src/main/scala/sbt/Plugins.scala index 9738ed053..9b10a326f 100644 --- a/main/src/main/scala/sbt/Plugins.scala +++ b/main/src/main/scala/sbt/Plugins.scala @@ -319,9 +319,9 @@ ${listConflicts(conflicting)}""") val hasGetterOpt = catching(classOf[ScalaReflectionException]) opt { im.symbol.asType.toType.declaration(ru.newTermName("autoImport")) match { case ru.NoSymbol => false - case sym => sym.asTerm.isGetter + case sym => sym.asTerm.isGetter || sym.asTerm.isModule } } hasGetterOpt getOrElse false - } + } } diff --git a/sbt/src/sbt-test/project/auto-plugins/build.sbt b/sbt/src/sbt-test/project/auto-plugins/build.sbt index bb3ec3b44..66c2e96ac 100644 --- a/sbt/src/sbt-test/project/auto-plugins/build.sbt +++ b/sbt/src/sbt-test/project/auto-plugins/build.sbt @@ -33,6 +33,8 @@ check := { same(optInValue, " Q S R", "del in projE in q") } +keyTest := "foo" + def same[T](actual: T, expected: T, label: String) { assert(actual == expected, s"Expected '$expected' for `$label`, got '$actual'") } diff --git a/sbt/src/sbt-test/project/auto-plugins/project/Q.scala b/sbt/src/sbt-test/project/auto-plugins/project/Q.scala index f135d444b..bf05e6062 100644 --- a/sbt/src/sbt-test/project/auto-plugins/project/Q.scala +++ b/sbt/src/sbt-test/project/auto-plugins/project/Q.scala @@ -28,6 +28,10 @@ object X extends AutoPlugin { object D extends AutoPlugin { override def requires: Plugins = E override def trigger = allRequirements + + object autoImport { + lazy val keyTest = settingKey[String]("Another demo setting.") + } } object Q extends AutoPlugin