aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2018-02-14 18:11:03 -0800
committerJakob Odersky <jakob@driver.xyz>2018-02-14 18:11:03 -0800
commit7aac5f023cfdfbd1439eb3347f4135043c3977d5 (patch)
tree45c9ff8859f3473988b112b28dc50cfd3e96bda3
parent1ce2bd92361468c272a2cc31172ca175cc7b537b (diff)
downloadsbt-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.scala31
-rw-r--r--src/main/scala/xyz.driver.sbt/SbtSettings.scala1
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",