From 4ec6dca8c3432339620bbc6298fdf75a4b930fb4 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Fri, 15 Dec 2017 17:41:32 -0800 Subject: First pass at using a compiler plugin to remove the need for the `override` keyword when overriding a field within a `mill.Module` This only applies to `mill.Module`s, not overrides elsewhere which still require the keyword. `mill.Module`s tend to have lots and lots of overriding, so the keyword is basically noise. Also includes the necessary build changes to enable the locally-built Scalac plugin when compiling the test suite. Note that no changes are necessary for the executable assembly, because the `scalac-plugin.xml` will be included in the assembly and get picked up by the Ammonite scalac plugin classloader automatically --- .../test/scala/mill/scalaplugin/AcyclicTests.scala | 6 +++--- .../scala/mill/scalaplugin/BetterFilesTests.scala | 18 +++++++++--------- .../scala/mill/scalaplugin/HelloWorldTests.scala | 6 +++--- .../src/test/scala/mill/scalaplugin/JawnTests.scala | 20 ++++++++++---------- 4 files changed, 25 insertions(+), 25 deletions(-) (limited to 'scalaplugin') diff --git a/scalaplugin/src/test/scala/mill/scalaplugin/AcyclicTests.scala b/scalaplugin/src/test/scala/mill/scalaplugin/AcyclicTests.scala index f233fdf1..185cffc8 100644 --- a/scalaplugin/src/test/scala/mill/scalaplugin/AcyclicTests.scala +++ b/scalaplugin/src/test/scala/mill/scalaplugin/AcyclicTests.scala @@ -17,12 +17,12 @@ object AcyclicBuild{ def version = "0.1.7" def scalaVersion = crossVersion - override def ivyDeps = Seq( + def ivyDeps = Seq( Dep.Java("org.scala-lang", "scala-compiler", scalaVersion()) ) object test extends this.Tests{ - override def forkWorkingDir = pwd/'scalaplugin/'src/'test/'resource/'acyclic - override def ivyDeps = Seq( + def forkWorkingDir = pwd/'scalaplugin/'src/'test/'resource/'acyclic + def ivyDeps = Seq( Dep("com.lihaoyi", "utest", "0.6.0") ) def testFramework = "utest.runner.Framework" diff --git a/scalaplugin/src/test/scala/mill/scalaplugin/BetterFilesTests.scala b/scalaplugin/src/test/scala/mill/scalaplugin/BetterFilesTests.scala index c59beca4..f4247094 100644 --- a/scalaplugin/src/test/scala/mill/scalaplugin/BetterFilesTests.scala +++ b/scalaplugin/src/test/scala/mill/scalaplugin/BetterFilesTests.scala @@ -11,7 +11,7 @@ import mill.util.JsonFormatters._ object BetterFilesBuild{ trait BetterFilesModule extends SbtScalaModule{ outer => def scalaVersion = "2.12.4" - override def scalacOptions = Seq( + def scalacOptions = Seq( "-deprecation", // Emit warning and location for usages of deprecated APIs. "-encoding", "utf-8", // Specify character encoding used by source files. "-explaintypes", // Explain type errors in more detail. @@ -60,10 +60,10 @@ object BetterFilesBuild{ ) override def javacOptions = Seq("-source", "1.8", "-target", "1.8", "-Xlint") object test extends this.Tests{ - override def projectDeps = + def projectDeps = if (this == Core.test) Seq(Core) else Seq(outer, Core.test) - override def ivyDeps = Seq(Dep("org.scalatest", "scalatest", "3.0.4")) + def ivyDeps = Seq(Dep("org.scalatest", "scalatest", "3.0.4")) def testFramework = "org.scalatest.tools.Framework" } } @@ -71,19 +71,19 @@ object BetterFilesBuild{ def basePath = BetterFilesTests.srcPath/"core" } object Akka extends BetterFilesModule{ - override def projectDeps = Seq(Core) + def projectDeps = Seq(Core) def basePath = BetterFilesTests.srcPath/"akka" - override def ivyDeps = Seq(Dep("com.typesafe.akka", "akka-actor", "2.5.6")) + def ivyDeps = Seq(Dep("com.typesafe.akka", "akka-actor", "2.5.6")) } object ShapelessScanner extends BetterFilesModule{ - override def projectDeps = Seq(Core) + def projectDeps = Seq(Core) def basePath = BetterFilesTests.srcPath/"shapeless" - override def ivyDeps = Seq(Dep("com.chuusai", "shapeless", "2.3.2")) + def ivyDeps = Seq(Dep("com.chuusai", "shapeless", "2.3.2")) } object Benchmarks extends BetterFilesModule{ - override def projectDeps = Seq(Core) + def projectDeps = Seq(Core) def basePath = BetterFilesTests.srcPath/"benchmarks" - override def ivyDeps = Seq( + def ivyDeps = Seq( Dep.Java("commons-io", "commons-io", "2.5") // "fastjavaio" % "fastjavaio" % "1.0" from "https://github.com/williamfiset/FastJavaIO/releases/download/v1.0/fastjavaio.jar" ) diff --git a/scalaplugin/src/test/scala/mill/scalaplugin/HelloWorldTests.scala b/scalaplugin/src/test/scala/mill/scalaplugin/HelloWorldTests.scala index 6e52b5ca..239f6871 100644 --- a/scalaplugin/src/test/scala/mill/scalaplugin/HelloWorldTests.scala +++ b/scalaplugin/src/test/scala/mill/scalaplugin/HelloWorldTests.scala @@ -18,15 +18,15 @@ trait HelloWorldModule extends ScalaModule { object HelloWorld extends HelloWorldModule object HelloWorldWithMain extends HelloWorldModule { - override def mainClass = Some("Main") + def mainClass = Some("Main") } object HelloWorldWarnUnused extends HelloWorldModule { - override def scalacOptions = T(Seq("-Ywarn-unused")) + def scalacOptions = T(Seq("-Ywarn-unused")) } object HelloWorldFatalWarnings extends HelloWorldModule { - override def scalacOptions = T(Seq("-Ywarn-unused", "-Xfatal-warnings")) + def scalacOptions = T(Seq("-Ywarn-unused", "-Xfatal-warnings")) } object HelloWorldTests extends TestSuite { diff --git a/scalaplugin/src/test/scala/mill/scalaplugin/JawnTests.scala b/scalaplugin/src/test/scala/mill/scalaplugin/JawnTests.scala index b48fd853..0d876660 100644 --- a/scalaplugin/src/test/scala/mill/scalaplugin/JawnTests.scala +++ b/scalaplugin/src/test/scala/mill/scalaplugin/JawnTests.scala @@ -14,15 +14,15 @@ object JawnBuild{ class Jawn(crossVersion: String) extends Module{ trait JawnModule extends SbtScalaModule{ outer => def scalaVersion = crossVersion - override def scalacOptions = Seq( + def scalacOptions = Seq( "-deprecation", "-optimize", "-unchecked" ) def testProjectDeps: Seq[TestScalaModule] = Nil object test extends this.Tests{ - override def projectDeps = super.projectDeps ++ testProjectDeps - override def ivyDeps = Seq( + def projectDeps = super.projectDeps ++ testProjectDeps + def ivyDeps = Seq( Dep("org.scalatest", "scalatest", "3.0.3"), Dep("org.scalacheck", "scalacheck", "1.13.5") ) @@ -33,25 +33,25 @@ object JawnBuild{ def basePath = JawnTests.srcPath/"parser" } object Util extends JawnModule{ - override def projectDeps = Seq(Parser) - override def testProjectDeps = Seq(Parser.test) + def projectDeps = Seq(Parser) + def testProjectDeps = Seq(Parser.test) def basePath = JawnTests.srcPath/"util" } object Ast extends JawnModule{ - override def projectDeps = Seq(Parser, Util) - override def testProjectDeps = Seq(Parser.test, Util.test) + def projectDeps = Seq(Parser, Util) + def testProjectDeps = Seq(Parser.test, Util.test) def basePath = JawnTests.srcPath/"ast" } class Support(name: String, ivyDeps0: Dep*) extends JawnModule{ - override def projectDeps = Seq[ScalaModule](Parser) + def projectDeps = Seq[ScalaModule](Parser) def basePath = JawnTests.srcPath/"support"/"argonaut" - override def ivyDeps = ivyDeps0 + def ivyDeps = ivyDeps0 } object Argonaut extends Support("argonaut", Dep("io.argonaut", "argonaut", "6.2")) object Json4s extends Support("json4s", Dep("org.json4s", "json4s-ast", "3.5.2")) object Play extends Support("play"){ - override def ivyDeps = mill.T{ + def ivyDeps = mill.T{ scalaBinaryVersion() match{ case "2.10" => Seq(Dep("com.typesafe.play", "play-json", "2.4.11")) case "2.11" => Seq(Dep("com.typesafe.play", "play-json", "2.5.15")) -- cgit v1.2.3