Make the TaskLinterDSL warn by default

I am generally of the opinion that a linter should not abort progress by
default. I do, however, think that it should be on by default, making
warn a happy compromise.
This commit is contained in:
Ethan Atkins 2018-12-11 18:16:10 -08:00
parent 32792f2b9d
commit d42b3ee2fd
2 changed files with 28 additions and 14 deletions

View File

@ -40,29 +40,29 @@ package sbt.dsl
* } * }
* }}} * }}}
* To make this work, the instances are all defined as implicit case objects. Moreover, the * To make this work, the instances are all defined as implicit case objects. Moreover, the
* the [[LinterLevel.Abort]] setting is made default by placing [[LinterLevel.Warn]] and * the [[LinterLevel.Warn]] setting is made default by placing [[LinterLevel.Abort]] and
* [[LinterLevel.Ignore]] in the [[LinterLevelLowPriority]] trait that the [[LinterLevel]] * [[LinterLevel.Ignore]] in the [[LinterLevelLowPriority]] trait that the [[LinterLevel]]
* companion object extends. * companion object extends.
*/ */
sealed trait LinterLevel sealed trait LinterLevel
object LinterLevel extends LinterLevelLowPriority { object LinterLevel extends LinterLevelLowPriority {
/**
* Abort the macro expansion if any linter check fails.
*/
implicit case object Abort extends LinterLevel
}
private[dsl] trait LinterLevelLowPriority {
/**
* Do not perform any linting.
*/
implicit case object Ignore extends LinterLevel
/** /**
* Apply the linter but print warnings instead of aborting macro expansion when linter violations * Apply the linter but print warnings instead of aborting macro expansion when linter violations
* are found. * are found.
*/ */
implicit case object Warn extends LinterLevel implicit case object Warn extends LinterLevel
} }
private[dsl] trait LinterLevelLowPriority {
/**
* Abort the macro expansion if any linter check fails.
*/
implicit case object Abort extends LinterLevel
/**
* Do not perform any linting.
*/
implicit case object Ignore extends LinterLevel
}

View File

@ -39,6 +39,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|val barNeg = taskKey[String]("") |val barNeg = taskKey[String]("")
@ -59,6 +60,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|val barNeg = taskKey[String]("") |val barNeg = taskKey[String]("")
@ -78,6 +80,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|val barNeg = taskKey[String]("") |val barNeg = taskKey[String]("")
@ -103,6 +106,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|val barNeg = taskKey[String]("") |val barNeg = taskKey[String]("")
@ -132,6 +136,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|val barNeg = taskKey[String]("") |val barNeg = taskKey[String]("")
@ -155,6 +160,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|val barNeg = taskKey[String]("") |val barNeg = taskKey[String]("")
@ -176,6 +182,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|val barNeg = taskKey[String]("") |val barNeg = taskKey[String]("")
@ -196,6 +203,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|var condition = true |var condition = true
@ -215,6 +223,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
|val barNeg = taskKey[String]("") |val barNeg = taskKey[String]("")
@ -235,6 +244,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg = taskKey[String]("") |val fooNeg = taskKey[String]("")
| |
@ -252,6 +262,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg2 = taskKey[String]("") |val fooNeg2 = taskKey[String]("")
| |
@ -269,6 +280,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg2 = taskKey[String]("") |val fooNeg2 = taskKey[String]("")
| |
@ -289,6 +301,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg3 = taskKey[String]("") |val fooNeg3 = taskKey[String]("")
|def avoidDCE = {println(""); ""} |def avoidDCE = {println(""); ""}
@ -308,6 +321,7 @@ class TaskNegSpec extends FunSuite {
""" """
|import sbt._ |import sbt._
|import sbt.Def._ |import sbt.Def._
|import sbt.dsl.LinterLevel.Abort
| |
|val fooNeg4 = taskKey[String]("") |val fooNeg4 = taskKey[String]("")
| |