diff options
author | Jakob Odersky <jakob@driver.xyz> | 2018-02-14 18:11:03 -0800 |
---|---|---|
committer | Jakob Odersky <jakob@driver.xyz> | 2018-02-14 18:11:03 -0800 |
commit | 7aac5f023cfdfbd1439eb3347f4135043c3977d5 (patch) | |
tree | 45c9ff8859f3473988b112b28dc50cfd3e96bda3 | |
parent | 1ce2bd92361468c272a2cc31172ca175cc7b537b (diff) | |
download | sbt-settings-7aac5f023cfdfbd1439eb3347f4135043c3977d5.tar.gz sbt-settings-7aac5f023cfdfbd1439eb3347f4135043c3977d5.tar.bz2 sbt-settings-7aac5f023cfdfbd1439eb3347f4135043c3977d5.zip |
Add fatal warnings checking that doesn't consider deprecations
-rw-r--r-- | src/main/scala/xyz.driver.sbt/FatalWarnings.scala | 31 | ||||
-rw-r--r-- | src/main/scala/xyz.driver.sbt/SbtSettings.scala | 1 |
2 files changed, 31 insertions, 1 deletions
diff --git a/src/main/scala/xyz.driver.sbt/FatalWarnings.scala b/src/main/scala/xyz.driver.sbt/FatalWarnings.scala new file mode 100644 index 0000000..b7fc585 --- /dev/null +++ b/src/main/scala/xyz.driver.sbt/FatalWarnings.scala @@ -0,0 +1,31 @@ +package xyz.driver.sbt + +import sbt.{Def, _} +import sbt.Keys._ +import xsbti.compile.CompileAnalysis + +import scala.collection.JavaConverters._ + +object FatalWarnings extends AutoPlugin { + + override def requires = plugins.JvmPlugin + override def trigger = allRequirements + + override def projectSettings: Seq[Def.Setting[_]] = Seq( + compile in Compile := { + val compiled: CompileAnalysis = (compile in Compile).value + val problems = compiled.readSourceInfos().getAllSourceInfos.asScala.flatMap { + case (_, info) => + info.getReportedProblems + } + + val deprecationsOnly = problems.forall { problem => + problem.message().contains("is deprecated") + } + + if (!deprecationsOnly) sys.error("Fatal warnings: some warnings other than deprecations were found.") + compiled + } + ) + +} diff --git a/src/main/scala/xyz.driver.sbt/SbtSettings.scala b/src/main/scala/xyz.driver.sbt/SbtSettings.scala index d888e53..45228f7 100644 --- a/src/main/scala/xyz.driver.sbt/SbtSettings.scala +++ b/src/main/scala/xyz.driver.sbt/SbtSettings.scala @@ -84,7 +84,6 @@ object SbtSettings extends AutoPlugin { val scalacLintingSettings = Seq( scalacOptions ++= { Seq( - "-Xfatal-warnings", "-Xlint:_,-unused,-missing-interpolator", "-Ywarn-numeric-widen", "-Ywarn-dead-code", |