mirror of https://github.com/sbt/sbt.git
Fixes contains bug
Ref https://github.com/scala/bug/issues/10831 Ref https://github.com/sbt/sbt/pull/4139#commitcomment-29633458
This commit is contained in:
parent
18602c521d
commit
439e67c8c4
|
|
@ -161,7 +161,8 @@ private[sbt] object CrossJava {
|
||||||
case Some(v) =>
|
case Some(v) =>
|
||||||
projectJavaVersions flatMap {
|
projectJavaVersions flatMap {
|
||||||
case (proj, versions) =>
|
case (proj, versions) =>
|
||||||
if (versions.isEmpty || versions.contains(v)) Vector(proj -> versions)
|
if (versions.isEmpty || versions.contains[String](v.toString))
|
||||||
|
Vector(proj -> versions)
|
||||||
else Vector()
|
else Vector()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -184,7 +185,7 @@ private[sbt] object CrossJava {
|
||||||
|
|
||||||
val filterKeys: Set[AttributeKey[_]] = Set(javaHome).map(_.key)
|
val filterKeys: Set[AttributeKey[_]] = Set(javaHome).map(_.key)
|
||||||
|
|
||||||
val projectsContains: Reference => Boolean = projects.map(_._1).toSet.contains
|
val projectsContains: Reference => Boolean = projects.map(_._1).toSet[Reference].contains(_)
|
||||||
|
|
||||||
// Filter out any old javaHome version settings that were added, this is just for hygiene.
|
// Filter out any old javaHome version settings that were added, this is just for hygiene.
|
||||||
val filteredRawAppend = session.rawAppend.filter(_.key match {
|
val filteredRawAppend = session.rawAppend.filter(_.key match {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
import complete.DefaultParsers._
|
||||||
|
|
||||||
|
val check = inputKey[Unit]("Runs the check")
|
||||||
|
|
||||||
|
lazy val root = (project in file("."))
|
||||||
|
.settings(
|
||||||
|
ThisBuild / scalaVersion := "2.12.6",
|
||||||
|
crossJavaVersions := List("1.8", "10"),
|
||||||
|
|
||||||
|
// read out.txt and see if it starts with the passed in number
|
||||||
|
check := {
|
||||||
|
val arg1: Int = (Space ~> NatBasic).parsed
|
||||||
|
file("out.txt") match {
|
||||||
|
case out if out.exists =>
|
||||||
|
IO.readLines(out).headOption match {
|
||||||
|
case Some(v) if v startsWith arg1.toString => ()
|
||||||
|
case Some(v) if v startsWith s"1.$arg1" => ()
|
||||||
|
case x => sys.error(s"unexpected value: $x")
|
||||||
|
}
|
||||||
|
case out => sys.error(s"$out doesn't exist")
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
Compile / run / fork := true,
|
||||||
|
)
|
||||||
|
|
@ -4,3 +4,12 @@
|
||||||
> java++ 10!
|
> java++ 10!
|
||||||
> run
|
> run
|
||||||
> check 10
|
> check 10
|
||||||
|
|
||||||
|
# test safe switching
|
||||||
|
$ copy-file changes/build.sbt build.sbt
|
||||||
|
$ delete out.txt
|
||||||
|
> reload
|
||||||
|
> clean
|
||||||
|
> java++ 10
|
||||||
|
> run
|
||||||
|
> check 10
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue