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 /src/main/scala/xyz.driver.sbt/FatalWarnings.scala | |
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
Diffstat (limited to 'src/main/scala/xyz.driver.sbt/FatalWarnings.scala')
-rw-r--r-- | src/main/scala/xyz.driver.sbt/FatalWarnings.scala | 31 |
1 files changed, 31 insertions, 0 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 + } + ) + +} |