diff --git a/main/src/main/scala/sbt/EvaluateTask.scala b/main/src/main/scala/sbt/EvaluateTask.scala index 9597732d4..e29009836 100644 --- a/main/src/main/scala/sbt/EvaluateTask.scala +++ b/main/src/main/scala/sbt/EvaluateTask.scala @@ -90,7 +90,7 @@ final object EvaluateTaskConfig { // Returns the default force garbage collection flag, // as specified by system properties. private[sbt] def defaultForceGarbageCollection: Boolean = - sys.props.get("sbt.task.forcegc").map(java.lang.Boolean.parseBoolean).getOrElse(true) + sys.props.get("sbt.task.forcegc").map(java.lang.Boolean.parseBoolean).getOrElse(false) /** Pulls in the old configuration format. */ def apply(old: EvaluateConfig): EvaluateTaskConfig = { object AdaptedTaskConfig extends EvaluateTaskConfig { 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 783e455ce..8819060f1 100644 --- a/sbt/src/sbt-test/project/auto-plugins/build.sbt +++ b/sbt/src/sbt-test/project/auto-plugins/build.sbt @@ -46,6 +46,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 40a4598ff..afdf64b78 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 diff --git a/src/sphinx/Community/Changes.rst b/src/sphinx/Community/Changes.rst index 0212c01ca..d5787f15c 100644 --- a/src/sphinx/Community/Changes.rst +++ b/src/sphinx/Community/Changes.rst @@ -14,6 +14,8 @@ Changes - ``testResultLogger`` is now configured. - sbt-server hooks for task cancellation. - Add ``JUnitXmlReportPlugin`` which generates junit-xml-reports for all tests. +- Fixes auto plugins not detecting ``object autoImport``. (gh-1314) +- Optionally enable forced garbage collection after tasks (``-Dsbt.task.forcegc=true``). 0.13.1 to 0.13.2