From 57b1b5baa973fce19a7c1327714c400dbc6cd06f Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 8 Feb 2017 01:58:24 -0500 Subject: [PATCH] Remove sbt.syntax --- MIGRATION.md | 9 +-- .../main/scala/sbt/internal/BuildUtil.scala | 2 +- sbt/src/main/scala/AllSyntax.scala | 17 ++++++ sbt/src/main/scala/package.scala | 46 +++++++++++++- sbt/src/main/scala/syntax.scala | 60 ------------------- .../actions/aggregate/project/Marker.scala | 2 +- .../compile-time-only/changes/A1.scala | 2 +- .../compile-time-only/changes/A3.scala | 2 +- .../completions/project/FooPlugin.scala | 1 - .../src/main/scala/sbt/TestPlugin.scala | 1 - .../project/auto-import/project/P.scala | 2 +- .../project/TestP.scala | 2 +- .../auto-plugins-nested/project/Q.scala | 2 +- .../project/auto-plugins/project/A.scala | 2 +- .../project/auto-plugins/project/Q.scala | 2 +- .../binary-plugin/changes/define/A.scala | 2 +- .../binary-plugin/changes/define/D.scala | 2 +- .../project/DatabasePlugin.scala | 2 +- .../project/ExtraProjectPluginExample.scala | 2 +- .../project/ExtraProjectPluginExample2.scala | 2 +- .../global-plugin/global/plugins/A.scala | 2 +- .../generator/build.sbt | 2 +- .../project/Common.scala | 2 +- .../src/main/scala/sbt/ScriptedPlugin.scala | 2 - 24 files changed, 80 insertions(+), 90 deletions(-) create mode 100644 sbt/src/main/scala/AllSyntax.scala delete mode 100644 sbt/src/main/scala/syntax.scala diff --git a/MIGRATION.md b/MIGRATION.md index e9e3e026b..eeeef930d 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,7 +1,7 @@ Migration notes =============== -- Build definition is based on Scala 2.11.8 +- Build definition is based on Scala 2.12.1 - Build.scala style builds are gone. Use multi-project `build.sbt`. - `Project(...)` constructor is restricted down to two parameters. Use `project` instead. - `sbt.Plugin` is also gone. Use auto plugins. @@ -13,10 +13,3 @@ Migration notes - Renames early command feature from `--` to `early()`. - Log options `-error`, `-warn`, `-info`, `-debug` are added as shorthand for `"early(error)"` etc. - `sbt.Process` and `sbt.ProcessExtra` are gone. Use `scala.sys.process` instead. - -#### Additional import required - -Implicit conversions are moved to `sbt.syntax`. Add the following imports to auto plugins -or `project/*.scala`. - - import sbt._, syntax._, Keys._ diff --git a/main/src/main/scala/sbt/internal/BuildUtil.scala b/main/src/main/scala/sbt/internal/BuildUtil.scala index 3f9c9e847..624078311 100644 --- a/main/src/main/scala/sbt/internal/BuildUtil.scala +++ b/main/src/main/scala/sbt/internal/BuildUtil.scala @@ -73,7 +73,7 @@ object BuildUtil { } } - def baseImports: Seq[String] = "import scala.xml.{TopScope=>$scope}" :: "import sbt._, Keys._, syntax._" :: Nil + def baseImports: Seq[String] = "import _root_.scala.xml.{TopScope=>$scope}" :: "import _root_.sbt._" :: "import _root_.sbt.Keys._" :: Nil def getImports(unit: BuildUnit): Seq[String] = unit.plugins.detected.imports ++ unit.definitions.dslDefinitions.imports diff --git a/sbt/src/main/scala/AllSyntax.scala b/sbt/src/main/scala/AllSyntax.scala new file mode 100644 index 000000000..2eac995c2 --- /dev/null +++ b/sbt/src/main/scala/AllSyntax.scala @@ -0,0 +1,17 @@ +package sbt + +// Todo share this this io.syntax +private[sbt] trait IOSyntax0 extends IOSyntax1 { + implicit def alternative[A, B](f: A => Option[B]): Alternative[A, B] = + new Alternative[A, B] { + def |(g: A => Option[B]) = + (a: A) => f(a) orElse g(a) + } +} +private[sbt] trait Alternative[A, B] { + def |(g: A => Option[B]): A => Option[B] +} + +private[sbt] trait IOSyntax1 { + implicit def singleFileFinder(file: File): sbt.io.PathFinder = sbt.io.PathFinder(file) +} diff --git a/sbt/src/main/scala/package.scala b/sbt/src/main/scala/package.scala index 71288c370..976bcbae9 100644 --- a/sbt/src/main/scala/package.scala +++ b/sbt/src/main/scala/package.scala @@ -1,4 +1,48 @@ /* sbt -- Simple Build Tool * Copyright 2010, 2011 Mark Harrah */ -package object sbt extends Import +package object sbt extends sbt.IOSyntax0 + with sbt.std.TaskExtra + with sbt.internal.util.Types + with sbt.internal.librarymanagement.impl.DependencyBuilders + with sbt.ProjectExtra + with sbt.internal.librarymanagement.DependencyFilterExtra + with sbt.BuildExtra + with sbt.TaskMacroExtra + with sbt.ScopeFilter.Make + with sbt.BuildSyntax + with sbt.Import { + // IO + def uri(s: String): URI = new URI(s) + def file(s: String): File = new File(s) + def url(s: String): URL = new URL(s) + implicit def fileToRichFile(file: File): sbt.io.RichFile = new sbt.io.RichFile(file) + implicit def filesToFinder(cc: Traversable[File]): sbt.io.PathFinder = sbt.io.PathFinder.strict(cc) + + // others + + object CompileOrder { + val JavaThenScala = xsbti.compile.CompileOrder.JavaThenScala + val ScalaThenJava = xsbti.compile.CompileOrder.ScalaThenJava + val Mixed = xsbti.compile.CompileOrder.Mixed + } + type CompileOrder = xsbti.compile.CompileOrder + + implicit def maybeToOption[S](m: xsbti.Maybe[S]): Option[S] = + if (m.isDefined) Some(m.get) else None + + final val ThisScope = Scope.ThisScope + final val GlobalScope = Scope.GlobalScope + + import sbt.{ Configurations => C } + final val Compile = C.Compile + final val Test = C.Test + final val Runtime = C.Runtime + final val IntegrationTest = C.IntegrationTest + final val Default = C.Default + final val Provided = C.Provided + // java.lang.System is more important, so don't alias this one + // final val System = C.System + final val Optional = C.Optional + def config(s: String): Configuration = C.config(s) +} diff --git a/sbt/src/main/scala/syntax.scala b/sbt/src/main/scala/syntax.scala deleted file mode 100644 index 73e7e3ad0..000000000 --- a/sbt/src/main/scala/syntax.scala +++ /dev/null @@ -1,60 +0,0 @@ -package sbt - -object syntax extends syntax - -abstract class syntax extends IOSyntax0 with sbt.std.TaskExtra with sbt.internal.util.Types - with sbt.internal.librarymanagement.impl.DependencyBuilders with sbt.ProjectExtra - with sbt.internal.librarymanagement.DependencyFilterExtra with sbt.BuildExtra with sbt.TaskMacroExtra - with sbt.ScopeFilter.Make - with sbt.BuildSyntax { - - // IO - def uri(s: String): URI = new URI(s) - def file(s: String): File = new File(s) - def url(s: String): URL = new URL(s) - implicit def fileToRichFile(file: File): sbt.io.RichFile = new sbt.io.RichFile(file) - implicit def filesToFinder(cc: Traversable[File]): sbt.io.PathFinder = sbt.io.PathFinder.strict(cc) - - // others - - object CompileOrder { - val JavaThenScala = xsbti.compile.CompileOrder.JavaThenScala - val ScalaThenJava = xsbti.compile.CompileOrder.ScalaThenJava - val Mixed = xsbti.compile.CompileOrder.Mixed - } - type CompileOrder = xsbti.compile.CompileOrder - - implicit def maybeToOption[S](m: xsbti.Maybe[S]): Option[S] = - if (m.isDefined) Some(m.get) else None - - final val ThisScope = Scope.ThisScope - final val GlobalScope = Scope.GlobalScope - - import sbt.{ Configurations => C } - final val Compile = C.Compile - final val Test = C.Test - final val Runtime = C.Runtime - final val IntegrationTest = C.IntegrationTest - final val Default = C.Default - final val Provided = C.Provided - // java.lang.System is more important, so don't alias this one - // final val System = C.System - final val Optional = C.Optional - def config(s: String): Configuration = C.config(s) -} - -// Todo share this this io.syntax -private[sbt] trait IOSyntax0 extends IOSyntax1 { - implicit def alternative[A, B](f: A => Option[B]): Alternative[A, B] = - new Alternative[A, B] { - def |(g: A => Option[B]) = - (a: A) => f(a) orElse g(a) - } -} -private[sbt] trait Alternative[A, B] { - def |(g: A => Option[B]): A => Option[B] -} - -private[sbt] trait IOSyntax1 { - implicit def singleFileFinder(file: File): sbt.io.PathFinder = sbt.io.PathFinder(file) -} diff --git a/sbt/src/sbt-test/actions/aggregate/project/Marker.scala b/sbt/src/sbt-test/actions/aggregate/project/Marker.scala index fa10c0bc4..ad1697df4 100644 --- a/sbt/src/sbt-test/actions/aggregate/project/Marker.scala +++ b/sbt/src/sbt-test/actions/aggregate/project/Marker.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ import Def.Initialize object Marker extends AutoPlugin { diff --git a/sbt/src/sbt-test/actions/compile-time-only/changes/A1.scala b/sbt/src/sbt-test/actions/compile-time-only/changes/A1.scala index d83a42865..0975dfda7 100644 --- a/sbt/src/sbt-test/actions/compile-time-only/changes/A1.scala +++ b/sbt/src/sbt-test/actions/compile-time-only/changes/A1.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ import Def.Initialize import complete.{DefaultParsers, Parser} diff --git a/sbt/src/sbt-test/actions/compile-time-only/changes/A3.scala b/sbt/src/sbt-test/actions/compile-time-only/changes/A3.scala index 8a4a3a849..83a45ead8 100644 --- a/sbt/src/sbt-test/actions/compile-time-only/changes/A3.scala +++ b/sbt/src/sbt-test/actions/compile-time-only/changes/A3.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ import Def.Initialize import complete.{DefaultParsers, Parser} diff --git a/sbt/src/sbt-test/actions/completions/project/FooPlugin.scala b/sbt/src/sbt-test/actions/completions/project/FooPlugin.scala index 092417875..4bef386d9 100644 --- a/sbt/src/sbt-test/actions/completions/project/FooPlugin.scala +++ b/sbt/src/sbt-test/actions/completions/project/FooPlugin.scala @@ -1,5 +1,4 @@ import sbt._ -import syntax._ object FooPlugin extends AutoPlugin { override def trigger = noTrigger diff --git a/sbt/src/sbt-test/compiler-project/semantic-errors/project/src/main/scala/sbt/TestPlugin.scala b/sbt/src/sbt-test/compiler-project/semantic-errors/project/src/main/scala/sbt/TestPlugin.scala index 4f3746d3e..53bed2c8a 100644 --- a/sbt/src/sbt-test/compiler-project/semantic-errors/project/src/main/scala/sbt/TestPlugin.scala +++ b/sbt/src/sbt-test/compiler-project/semantic-errors/project/src/main/scala/sbt/TestPlugin.scala @@ -1,6 +1,5 @@ package sbt -import sbt.syntax._ import sbt.Keys._ import xsbti.{Position, Severity} diff --git a/sbt/src/sbt-test/project/auto-import/project/P.scala b/sbt/src/sbt-test/project/auto-import/project/P.scala index 0ff8fbd51..70e309a38 100644 --- a/sbt/src/sbt-test/project/auto-import/project/P.scala +++ b/sbt/src/sbt-test/project/auto-import/project/P.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._ +import sbt._ object Q extends AutoPlugin { override val requires = plugins.JvmPlugin diff --git a/sbt/src/sbt-test/project/auto-plugins-default-requires-jvmplugin/project/TestP.scala b/sbt/src/sbt-test/project/auto-plugins-default-requires-jvmplugin/project/TestP.scala index e54d62d71..c52417af9 100644 --- a/sbt/src/sbt-test/project/auto-plugins-default-requires-jvmplugin/project/TestP.scala +++ b/sbt/src/sbt-test/project/auto-plugins-default-requires-jvmplugin/project/TestP.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object TestP extends AutoPlugin { override def projectSettings: Seq[Setting[_]] = Seq( diff --git a/sbt/src/sbt-test/project/auto-plugins-nested/project/Q.scala b/sbt/src/sbt-test/project/auto-plugins-nested/project/Q.scala index 19af35308..b7deb8b58 100644 --- a/sbt/src/sbt-test/project/auto-plugins-nested/project/Q.scala +++ b/sbt/src/sbt-test/project/auto-plugins-nested/project/Q.scala @@ -1,5 +1,5 @@ package sbttest -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object Imports { object A extends AutoPlugin diff --git a/sbt/src/sbt-test/project/auto-plugins/project/A.scala b/sbt/src/sbt-test/project/auto-plugins/project/A.scala index 7871676de..b11319afe 100644 --- a/sbt/src/sbt-test/project/auto-plugins/project/A.scala +++ b/sbt/src/sbt-test/project/auto-plugins/project/A.scala @@ -1,7 +1,7 @@ // no package // plugins declared within no package should be visible to other plugins in the _root_ package -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object TopLevelImports { lazy val topLevelDemo = settingKey[String]("A top level demo setting.") 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 091e812d6..05c877b5d 100644 --- a/sbt/src/sbt-test/project/auto-plugins/project/Q.scala +++ b/sbt/src/sbt-test/project/auto-plugins/project/Q.scala @@ -1,6 +1,6 @@ package sbttest // you need package http://stackoverflow.com/questions/9822008/ - import sbt._, syntax._, Keys._ + import sbt._, Keys._ import java.util.concurrent.atomic.{AtomicInteger => AInt} object A extends AutoPlugin { override def requires: Plugins = empty } diff --git a/sbt/src/sbt-test/project/binary-plugin/changes/define/A.scala b/sbt/src/sbt-test/project/binary-plugin/changes/define/A.scala index f003b8da5..2966e091c 100644 --- a/sbt/src/sbt-test/project/binary-plugin/changes/define/A.scala +++ b/sbt/src/sbt-test/project/binary-plugin/changes/define/A.scala @@ -1,6 +1,6 @@ package sbttest // you need package http://stackoverflow.com/questions/9822008/ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object C extends AutoPlugin { object autoImport { diff --git a/sbt/src/sbt-test/project/binary-plugin/changes/define/D.scala b/sbt/src/sbt-test/project/binary-plugin/changes/define/D.scala index 1b21ad9dd..7490579a8 100644 --- a/sbt/src/sbt-test/project/binary-plugin/changes/define/D.scala +++ b/sbt/src/sbt-test/project/binary-plugin/changes/define/D.scala @@ -1,6 +1,6 @@ // no package declaration -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object D extends AutoPlugin { object autoImport { diff --git a/sbt/src/sbt-test/project/extra-projects/project/DatabasePlugin.scala b/sbt/src/sbt-test/project/extra-projects/project/DatabasePlugin.scala index 0febc622b..0d7a4163e 100644 --- a/sbt/src/sbt-test/project/extra-projects/project/DatabasePlugin.scala +++ b/sbt/src/sbt-test/project/extra-projects/project/DatabasePlugin.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object DatabasePlugin extends AutoPlugin { override def requires: Plugins = sbt.plugins.JvmPlugin diff --git a/sbt/src/sbt-test/project/extra-projects/project/ExtraProjectPluginExample.scala b/sbt/src/sbt-test/project/extra-projects/project/ExtraProjectPluginExample.scala index 1ebb3d494..0ab386369 100644 --- a/sbt/src/sbt-test/project/extra-projects/project/ExtraProjectPluginExample.scala +++ b/sbt/src/sbt-test/project/extra-projects/project/ExtraProjectPluginExample.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object ExtraProjectPluginExample extends AutoPlugin { override def extraProjects: Seq[Project] = diff --git a/sbt/src/sbt-test/project/extra-projects/project/ExtraProjectPluginExample2.scala b/sbt/src/sbt-test/project/extra-projects/project/ExtraProjectPluginExample2.scala index e74064a4a..dd1682623 100644 --- a/sbt/src/sbt-test/project/extra-projects/project/ExtraProjectPluginExample2.scala +++ b/sbt/src/sbt-test/project/extra-projects/project/ExtraProjectPluginExample2.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object ExtraProjectPluginExample2 extends AutoPlugin { // Enable this plugin by default diff --git a/sbt/src/sbt-test/project/global-plugin/global/plugins/A.scala b/sbt/src/sbt-test/project/global-plugin/global/plugins/A.scala index d22df4753..0ac7f6e66 100644 --- a/sbt/src/sbt-test/project/global-plugin/global/plugins/A.scala +++ b/sbt/src/sbt-test/project/global-plugin/global/plugins/A.scala @@ -1,6 +1,6 @@ package test -import sbt._, syntax._, Keys._ +import sbt._, Keys._ object Global { val x = 3 diff --git a/sbt/src/sbt-test/project/isolated-build-definitions/generator/build.sbt b/sbt/src/sbt-test/project/isolated-build-definitions/generator/build.sbt index 4b1c3536a..cbc8c6c17 100644 --- a/sbt/src/sbt-test/project/isolated-build-definitions/generator/build.sbt +++ b/sbt/src/sbt-test/project/isolated-build-definitions/generator/build.sbt @@ -1,4 +1,4 @@ -lazy val project = (sbt.syntax.project in file(".")). +lazy val project = (sbt.project in file(".")). settings( name := "project", scalaVersion := "2.11.7", diff --git a/sbt/src/sbt-test/project/session-update-from-cmd/project/Common.scala b/sbt/src/sbt-test/project/session-update-from-cmd/project/Common.scala index b744f5c1f..f977fa81a 100644 --- a/sbt/src/sbt-test/project/session-update-from-cmd/project/Common.scala +++ b/sbt/src/sbt-test/project/session-update-from-cmd/project/Common.scala @@ -1,4 +1,4 @@ -import sbt._, syntax._, Keys._ +import sbt._, Keys._ import sbt.internal.SessionSettings diff --git a/scripted/plugin/src/main/scala/sbt/ScriptedPlugin.scala b/scripted/plugin/src/main/scala/sbt/ScriptedPlugin.scala index 546ad73b7..e865b504d 100644 --- a/scripted/plugin/src/main/scala/sbt/ScriptedPlugin.scala +++ b/scripted/plugin/src/main/scala/sbt/ScriptedPlugin.scala @@ -10,8 +10,6 @@ import sbt.internal.inc.classpath.ClasspathUtilities import sbt.internal.inc.ModuleUtilities import java.lang.reflect.Method -import sbt.syntax._ - object ScriptedPlugin extends AutoPlugin { override def requires = plugins.JvmPlugin override def trigger = allRequirements