Merge pull request #316 from eed3si9n/wip/disabled

Make CrossVersion.Disabled stable
This commit is contained in:
eugene yokota 2019-08-22 13:48:41 -04:00 committed by GitHub
commit 705f64c8a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 84 additions and 3 deletions

View File

@ -100,6 +100,10 @@ lazy val lmCore = (project in file("core"))
scalaCheck % Test,
scalaVerify % Test,
),
libraryDependencies ++= (scalaVersion.value match {
case v if v.startsWith("2.12.") => List(compilerPlugin(silencerPlugin))
case _ => List()
}),
libraryDependencies += scalaXml,
resourceGenerators in Compile += Def
.task(

View File

@ -39,7 +39,7 @@ sealed class Disabled private () extends sbt.librarymanagement.CrossVersion() wi
}
object Disabled extends sbt.librarymanagement.Disabled {
def apply(): Disabled = new Disabled()
def apply(): Disabled = Disabled
}
/**

View File

@ -8,7 +8,11 @@ final case class ScalaVersion(full: String, binary: String)
private[librarymanagement] abstract class CrossVersionFunctions {
/** Compatibility with 0.13 */
final def Disabled = sbt.librarymanagement.Disabled
@deprecated(
"use CrossVersion.disabled instead. prior to sbt 1.3.0, Diabled did not work without apply(). sbt/sbt#4977",
"1.3.0"
)
final val Disabled = sbt.librarymanagement.Disabled
final val Binary = sbt.librarymanagement.Binary
final val Constant = sbt.librarymanagement.Constant
final val Full = sbt.librarymanagement.Full
@ -37,7 +41,7 @@ private[librarymanagement] abstract class CrossVersionFunctions {
def binary: CrossVersion = Binary()
/** Disables cross versioning for a module. */
def disabled: CrossVersion = Disabled
def disabled: CrossVersion = sbt.librarymanagement.Disabled
/** Cross-versions a module with a constant string (typically the binary Scala version). */
def constant(value: String): CrossVersion = Constant(value)

View File

@ -0,0 +1,72 @@
package example.tests
import sbt.librarymanagement.{ CrossVersion, Disabled }
import verify.BasicTestSuite
import com.github.ghik.silencer.silent
@silent
object CrossVersionCompatTest extends BasicTestSuite {
test("CrossVersion.Disabled is typed to be Disabled") {
assert(CrossVersion.Disabled match {
case _: Disabled => true
case _ => false
})
}
test("CrossVersion.Disabled functions as disabled") {
assert(CrossVersion(CrossVersion.disabled, "1.0.0", "1.0") == None)
assert(CrossVersion(CrossVersion.Disabled, "1.0.0", "1.0") == None)
}
test("CrossVersion.Disabled() is typed to be Disabled") {
assert(CrossVersion.Disabled() match {
case _: Disabled => true
case _ => false
})
}
test("CrossVersion.Disabled() functions as disabled") {
assert(CrossVersion(CrossVersion.disabled, "1.0.0", "1.0") == None)
assert(CrossVersion(CrossVersion.Disabled(), "1.0.0", "1.0") == None)
}
test("CrossVersion.Disabled is stable") {
assert(CrossVersion.Disabled match {
case CrossVersion.Disabled => true
case _ => false
})
}
test("sbt.librarymanagement.Disabled is typed to be Disabled") {
assert(Disabled match {
case _: Disabled => true
case _ => false
})
}
test("sbt.librarymanagement.Disabled is stable") {
assert(Disabled match {
case Disabled => true
case _ => false
})
}
test("sbt.librarymanagement.Disabled() is typed to be Disabled") {
assert(Disabled() match {
case _: Disabled => true
case _ => false
})
}
test("CrossVersion.disabled is sbt.librarymanagement.Disabled") {
assert(CrossVersion.disabled == Disabled)
}
test("CrossVersion.Disabled is sbt.librarymanagement.Disabled") {
assert(CrossVersion.Disabled == Disabled)
}
test("CrossVersion.Disabled() is sbt.librarymanagement.Disabled") {
assert(CrossVersion.Disabled() == Disabled)
}
}

View File

@ -61,4 +61,5 @@ object Dependencies {
}
val gigahorseOkhttp = "com.eed3si9n" %% "gigahorse-okhttp" % "0.5.0"
val okhttpUrlconnection = "com.squareup.okhttp3" % "okhttp-urlconnection" % "3.7.0"
val silencerPlugin = "com.github.ghik" %% "silencer-plugin" % "1.4.1"
}