Merge pull request #7783 from Friendseeker/bump-ci-JDK-21-2

[2.x] Bump CI to JDK 21
This commit is contained in:
eugene yokota 2024-10-20 01:19:40 -04:00 committed by GitHub
commit 16f93c543a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
46 changed files with 123 additions and 112 deletions

View File

@ -13,23 +13,23 @@ jobs:
matrix:
include:
- os: ubuntu-20.04
java: 17
java: 21
distribution: temurin
jobtype: 1
- os: ubuntu-latest
java: 11
java: 21
distribution: temurin
jobtype: 2
- os: ubuntu-latest
java: 11
java: 21
distribution: temurin
jobtype: 3
- os: ubuntu-latest
java: 11
java: 21
distribution: temurin
jobtype: 4
- os: ubuntu-latest
java: 17
java: 21
distribution: temurin
jobtype: 5
- os: ubuntu-latest

View File

@ -18,9 +18,9 @@ The `develop` branch represents sbt 2.x, the next major sbt series.
Next minor branch is where new features should be added as long as it is binary compatible with sbt 1.x.
The `stable` branch represents the current stable sbt release. Only bug fixes are back-ported to the stable branch.
### Note on supported JDK version for the SBT build
### Note on supported JDK version for the sbt build
The SBT build itself currently doesn't support any JDK beyond version 17. You will run into deprecation warnings (which would become build errors due to build configuration) if you use any later JDK version to build SBT.
The sbt build itself currently doesn't support any JDK beyond version 21. You may run into deprecation warnings (which would become build errors due to build configuration) if you use any later JDK version to build sbt.
If you're using Metals as IDE, also check the `Java Version` setting. The default at the time of writing this is `17`, but this may change in the future, or you may have set it to a later version yourself. (Be aware that Metals may download a JDK in the background if you haven't switch to a local JDK matching the version before changing this setting. Also, this setting is currently only available as a `User` setting, so you can't set it for a single workspace. Don't forget to switch back if you need to for other projects).

View File

@ -1480,6 +1480,7 @@ lazy val lmCoursier = project
Mima.lmCoursierFilters,
lmCoursierDependencies,
Compile / sourceGenerators += Utils.dataclassGen(lmCoursierDefinitions).taskValue,
Compile / scalacOptions --= Seq("-Xfatal-warnings"),
)
.dependsOn(
// We depend on lmIvy rather than just lmCore to handle the ModuleDescriptor
@ -1496,6 +1497,7 @@ lazy val lmCoursierShaded = project
Mima.lmCoursierFilters,
Mima.lmCoursierShadedFilters,
Compile / sources := (lmCoursier / Compile / sources).value,
Compile / scalacOptions --= Seq("-Xfatal-warnings"),
lmCoursierDependencies,
autoScalaLibrary := false,
libraryDependencies ++= Seq(

View File

@ -23,9 +23,16 @@ object ErrorHandling {
try {
Right(f)
} catch {
case ex @ (_: Exception | _: StackOverflowError) => Left(ex)
case err @ (_: ThreadDeath | _: VirtualMachineError) => throw err
case x: Throwable => Left(x)
case ex @ (_: Exception | _: StackOverflowError) =>
Left(ex)
case err: VirtualMachineError =>
throw err
case err if err.getClass.getName == "java.lang.ThreadDeath" =>
// ThreadDeath is deprecated
// https://bugs.openjdk.org/browse/JDK-8289610
throw err
case x: Throwable =>
Left(x)
}
def convert[T](f: => T): Either[Exception, T] =

View File

@ -2,6 +2,6 @@ import sbt.nio.file.Glob
Global / cacheStores := Seq.empty
name := "compile-clean"
scalaVersion := "2.12.17"
scalaVersion := "2.12.20"
Compile / cleanKeepGlobs +=
Glob(target.value) / RecursiveGlob / "X.class"

View File

@ -1,17 +1,17 @@
$ touch target/out/jvm/scala-2.12.17/compile-clean/backend/cant-touch-this
$ touch target/out/jvm/scala-2.12.20/compile-clean/backend/cant-touch-this
> Test/compile
$ exists target/out/jvm/scala-2.12.17/compile-clean/backend/A.class
$ exists target/out/jvm/scala-2.12.17/compile-clean/backend/X.class
$ exists target/out/jvm/scala-2.12.17/compile-clean/test-backend/B.class
$ exists target/out/jvm/scala-2.12.20/compile-clean/backend/A.class
$ exists target/out/jvm/scala-2.12.20/compile-clean/backend/X.class
$ exists target/out/jvm/scala-2.12.20/compile-clean/test-backend/B.class
> Test/clean
$ exists target/out/jvm/scala-2.12.17/compile-clean/backend/cant-touch-this
$ exists target/out/jvm/scala-2.12.17/compile-clean/backend/A.class
$ exists target/out/jvm/scala-2.12.17/compile-clean/backend/X.class
$ absent target/out/jvm/scala-2.12.17/compile-clean/test-backend/B.class
$ exists target/out/jvm/scala-2.12.20/compile-clean/backend/cant-touch-this
$ exists target/out/jvm/scala-2.12.20/compile-clean/backend/A.class
$ exists target/out/jvm/scala-2.12.20/compile-clean/backend/X.class
$ absent target/out/jvm/scala-2.12.20/compile-clean/test-backend/B.class
> Compile/clean
$ exists target/out/jvm/scala-2.12.17/compile-clean/backend/cant-touch-this
$ absent target/out/jvm/scala-2.12.17/compile-clean/backend/A.class
$ exists target/out/jvm/scala-2.12.17/compile-clean/backend/X.class
$ exists target/out/jvm/scala-2.12.20/compile-clean/backend/cant-touch-this
$ absent target/out/jvm/scala-2.12.20/compile-clean/backend/A.class
$ exists target/out/jvm/scala-2.12.20/compile-clean/backend/X.class

View File

@ -1,14 +1,14 @@
scalaVersion := "2.12.19"
scalaVersion := "2.12.20"
lazy val core = project
.settings(
crossScalaVersions := Seq("2.12.19", "3.0.2", "3.1.2")
crossScalaVersions := Seq("2.12.20", "3.3.1", "3.5.1")
)
lazy val subproj = project
.dependsOn(core)
.settings(
crossScalaVersions := Seq("2.12.19", "3.1.2"),
crossScalaVersions := Seq("2.12.20", "3.5.1"),
// a random library compiled against Scala 3.1
libraryDependencies += "org.http4s" %% "http4s-core" % "0.23.12"
libraryDependencies += "org.http4s" %% "http4s-core" % "0.23.28"
)

View File

@ -1,19 +1,19 @@
> ++3.0.2 packageBin
> ++3.3.1 packageBin
$ exists target/out/jvm/scala-3.0.2/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.1.2/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.0.2/subproj/subproj_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.1.2/subproj/subproj_3-0.1.0-SNAPSHOT.jar
$ exists target/out/jvm/scala-3.3.1/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.5.1/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.3.1/subproj/subproj_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.5.1/subproj/subproj_3-0.1.0-SNAPSHOT.jar
> clean
-$ exists target/out/jvm/scala-3.0.2/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.1.2/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.0.2/subproj/subproj_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.1.2/subproj/subproj_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.3.1/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.5.1/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.3.1/subproj/subproj_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.5.1/subproj/subproj_3-0.1.0-SNAPSHOT.jar
> ++3.1.2 packageBin
> ++3.5.1 packageBin
-$ exists target/out/jvm/scala-3.0.2/core/core_3-0.1.0-SNAPSHOT.jar
$ exists target/out/jvm/scala-3.1.2/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.0.2/subproj/subproj_3-0.1.0-SNAPSHOT.jar
$ exists target/out/jvm/scala-3.1.2/subproj/subproj_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.3.1/core/core_3-0.1.0-SNAPSHOT.jar
$ exists target/out/jvm/scala-3.5.1/core/core_3-0.1.0-SNAPSHOT.jar
-$ exists target/out/jvm/scala-3.3.1/subproj/subproj_3-0.1.0-SNAPSHOT.jar
$ exists target/out/jvm/scala-3.5.1/subproj/subproj_3-0.1.0-SNAPSHOT.jar

View File

@ -1,4 +1,4 @@
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"
val dependency = project.settings(exportJars := true)
val descendant = project

View File

@ -1,4 +1,4 @@
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"
ThisBuild / turbo := true
resolvers += "Local Maven" at (baseDirectory.value / "libraries" / "foo" / "ivy").toURI.toURL.toString

View File

@ -1,4 +1,4 @@
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"
val test = (project in file(".")).settings(
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.7" % Test

View File

@ -1,4 +1,4 @@
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"
val dependency = project.settings(exportJars := true)
val descendant = project

View File

@ -1,7 +1,7 @@
TaskKey[Unit]("checkJavaFailures") := {
val reporter = savedReporter.value
val ignore = (Compile / compile).failure.value
val ps = reporter.problems
val ps = reporter.problems.filter(_.severity() != xsbti.Severity.Info)
assert(!ps.isEmpty, "Failed to report any problems!")
// First error should be on a specific line/file
val first = ps(0)

View File

@ -1,6 +1,6 @@
lazy val use = project
.dependsOn(RootProject(file("def")) % Configurations.CompilerPlugin)
.settings(
scalaVersion := "2.12.17",
scalaVersion := "2.12.20",
autoCompilerPlugins := true
)

View File

@ -1,4 +1,4 @@
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"
def configIvyScala =
scalaModuleInfo ~= (_ map (_ withCheckExplicit false))

View File

@ -1,16 +1,24 @@
import scala.quoted.* // imports Quotes, Expr
package scala.collection {
object Exp:
// added in 2.13.10, not available in 2.13.8
def m(i: Int) = IterableOnce.checkArraySizeWithinVMLimit(i)
package scala.collection.immutable {
object Exp {
// Access RedBlackTree.validate and Tree class added in Scala 2.13.13
// Scala 3.3.4 uses Scala 2.13.14 library
// Scala 3.3.2 uses Scala 2.13.12 library
// Hence RedBlackTree.validate is available in 3.3.4 but not in 3.3.2
// c.c. https://mvnrepository.com/artifact/org.scala-lang/scala3-library_3/3.3.2
// c.c. https://mvnrepository.com/artifact/org.scala-lang/scala3-library_3/3.3.4
def validateTree[A](tree: RedBlackTree.Tree[A, _])(implicit ordering: Ordering[A]): tree.type = {
RedBlackTree.validate(tree)
}
}
}
object Mac:
inline def inspect(inline x: Any): Any = ${ inspectCode('x) }
def inspectCode(x: Expr[Any])(using Quotes): Expr[Any] =
scala.collection.Exp.m(42)
scala.collection.immutable.Exp.validateTree(null)(null)
println(x.show)
x

View File

@ -1,26 +1,26 @@
import sbt.librarymanagement.InclExclRule
lazy val a = project.settings(
scalaVersion := "2.13.6",
scalaVersion := "2.13.11",
libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value,
TaskKey[Unit]("checkLibs") := checkLibs("2.13.6", (Compile/dependencyClasspath).value, ".*scala-(library|reflect).*"),
TaskKey[Unit]("checkLibs") := checkLibs("2.13.11", (Compile/dependencyClasspath).value, ".*scala-(library|reflect).*"),
)
lazy val b = project.dependsOn(a).settings(
scalaVersion := "2.13.8",
TaskKey[Unit]("checkLibs") := checkLibs("2.13.8", (Compile/dependencyClasspath).value, ".*scala-(library|reflect).*"),
scalaVersion := "2.13.12",
TaskKey[Unit]("checkLibs") := checkLibs("2.13.12", (Compile/dependencyClasspath).value, ".*scala-(library|reflect).*"),
)
lazy val a3 = project.settings(
scalaVersion := "3.2.2", // 2.13.10 library
scalaVersion := "3.3.4", // 2.13.14 library
)
lazy val b3 = project.dependsOn(a3).settings(
scalaVersion := "3.2.0", // 2.13.8 library
scalaVersion := "3.3.2", // 2.13.12 library
TaskKey[Unit]("checkScala") := {
val i = scalaInstance.value
i.libraryJars.filter(_.toString.contains("scala-library")).toList match {
case List(l) => assert(l.toString.contains("2.13.10"), i.toString)
case List(l) => assert(l.toString.contains("2.13.14"), i.toString)
}
assert(i.compilerJars.filter(_.toString.contains("scala-library")).isEmpty, i.toString)
assert(i.otherJars.filter(_.toString.contains("scala-library")).isEmpty, i.toString)

View File

@ -2,17 +2,17 @@
> b/checkLibs
> b/runBlock
$ exists s2.13.8.txt
$ delete s2.13.8.txt
$ exists s2.13.12.txt
$ delete s2.13.12.txt
# don't crash when expanding the macro
> b3/runBlock
$ exists s2.13.10.txt
$ delete s2.13.10.txt
$ exists s2.13.14.txt
$ delete s2.13.14.txt
> b3/checkScala
# without the default `csrSameVersions`, scala-reflect in b stays at 2.13.6
# without the default `csrSameVersions`, scala-reflect in b stays at 2.13.11
> set b/csrSameVersions := Nil
> b/update
-> b/checkLibs

View File

@ -1,4 +1,4 @@
val scala3Version = "3.0.1-RC1-bin-20210525-8f3fdf5-NIGHTLY"
val scala3Version = "3.3.4"
enablePlugins(ScalaJSPlugin)

View File

@ -1 +1 @@
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.5.1")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.17.0")

View File

@ -1,15 +1,15 @@
ThisBuild / scalaVersion := "2.13.12"
ThisBuild / scalaVersion := "2.13.15"
ThisBuild / scalacOptions += "-Ytasty-reader"
lazy val scala3code = project
.enablePlugins(ScalaJSPlugin)
.settings(scalaVersion := "3.1.3")
.settings(scalaVersion := "3.3.4")
lazy val app = project
.enablePlugins(ScalaJSPlugin)
.dependsOn(scala3code)
.settings(
libraryDependencies ~= (_.filterNot(_.name.contains("scalajs-compiler"))),
addCompilerPlugin("org.scala-js" % "scalajs-compiler_2.13.8" % scalaJSVersion),
addCompilerPlugin("org.scala-js" % "scalajs-compiler_2.13.15" % scalaJSVersion),
scalaJSUseMainModuleInitializer := true,
)

View File

@ -1 +1 @@
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.10.1")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.17.0")

View File

@ -1,7 +1,7 @@
ThisBuild / scalaVersion := "3.1.3"
ThisBuild / scalaVersion := "3.3.4"
ThisBuild / scalacOptions += "-Ytasty-reader"
lazy val scala213 = "2.13.12"
lazy val scala213 = "2.13.15"
lazy val root = (project in file("."))
.aggregate(fooApp, fooCore, barApp, barCore)

View File

@ -1 +1 @@
ThisBuild / scalaVersion := "3.1.3"
ThisBuild / scalaVersion := "3.3.4"

View File

@ -1,4 +1,4 @@
ThisBuild / scalaVersion := "2.13.1"
ThisBuild / scalaVersion := "2.13.15"
lazy val root = (project in file("."))
.aggregate(macroProvider, macroClient)

View File

@ -1 +1 @@
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.0.0")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.17.0")

View File

@ -10,7 +10,7 @@ ivyPaths := {
lazy val config12 = ConfigAxis("Config1_2", "config1.2")
lazy val config13 = ConfigAxis("Config1_3", "config1.3")
lazy val scala212 = "2.12.10"
lazy val scala212 = "2.12.20"
lazy val scala211 = "2.11.12"
lazy val core = (projectMatrix in file("core"))

View File

@ -10,7 +10,7 @@ ivyPaths := {
lazy val config12 = ConfigAxis("Config1_2", "-config1.2")
lazy val config13 = ConfigAxis("Config1_3", "-config1.3")
lazy val scala212 = "2.12.10"
lazy val scala212 = "2.12.20"
lazy val app = (projectMatrix in file("app"))
.settings(

View File

@ -8,7 +8,7 @@ ThisBuild / ivyPaths := {
}
publish / skip := true
lazy val scala212 = "2.12.10"
lazy val scala212 = "2.12.20"
lazy val check = taskKey[Unit]("")

View File

@ -1,5 +1,5 @@
> compile
$ exists target/out/jvm/scala-2.12.10/domain/backend/a/DataType.class
$ exists target/out/jvm/scala-2.12.20/domain/backend/a/DataType.class
> check

View File

@ -1,5 +1,5 @@
lazy val scala213 = "2.13.3"
lazy val scala212 = "2.12.12"
lazy val scala213 = "2.13.15"
lazy val scala212 = "2.12.20"
lazy val check = taskKey[Unit]("")
lazy val root = (project in file("."))

View File

@ -1,6 +1,6 @@
> compile
$ exists target/out/jvm/scala-2.13.3/core/backend/a/Core.class
$ exists target/out/jvm/scala-2.12.12/core/backend/a/Core.class
$ exists target/out/jvm/scala-2.13.15/core/backend/a/Core.class
$ exists target/out/jvm/scala-2.12.20/core/backend/a/Core.class
> core2_13/check

View File

@ -1,4 +1,4 @@
lazy val scala213 = "2.13.3"
lazy val scala213 = "2.13.15"
lazy val scala3 = "3.4.2"
lazy val check = taskKey[Unit]("")

View File

@ -1,6 +1,6 @@
> compile
$ exists target/out/jvm/scala-2.13.3/core/backend/a/Core.class
$ exists target/out/jvm/scala-2.13.15/core/backend/a/Core.class
$ exists target/out/jvm/scala-3.4.2/core/backend/a/Core.class
> core/check

View File

@ -1,3 +1,3 @@
scalaVersion := "3.0.0-RC2-bin-20210328-cca5f8f-NIGHTLY"
scalaVersion := "3.3.4"
name := "foo"
version := "1.0.0"

View File

@ -1,7 +1,7 @@
> compile
$ exists target/scala-3.0.0-RC2-bin-20210328-cca5f8f-NIGHTLY/classes/Foo$.class
$ exists target/scala-3.3.4/classes/Foo$.class
> package
$ exists target/scala-3.0.0-RC2-bin-20210328-cca5f8f-NIGHTLY/foo_3.0.0-RC2-1.0.0.jar
$ exists target/scala-3.3.4/foo_3-1.0.0.jar

View File

@ -1,15 +1,15 @@
ThisBuild / scalaVersion := "2.13.6"
ThisBuild / scalaVersion := "2.13.15"
ThisBuild / scalacOptions += "-Ytasty-reader"
lazy val scala3code = project
.enablePlugins(ScalaJSPlugin)
.settings(scalaVersion := "3.0.0")
.settings(scalaVersion := "3.3.4")
lazy val app = project
.enablePlugins(ScalaJSPlugin)
.dependsOn(scala3code)
.settings(
scalaVersion := "2.13.6",
scalaVersion := "2.13.15",
scalacOptions += "-Ytasty-reader",
scalaJSUseMainModuleInitializer := true
)

View File

@ -1 +1 @@
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.6.0")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.17.0")

View File

@ -1,6 +1,6 @@
ThisBuild / scalaVersion := "3.0.0"
ThisBuild / scalaVersion := "3.3.4"
lazy val scala213 = "2.13.6"
lazy val scala213 = "2.13.15"
lazy val root = (project in file("."))
.aggregate(fooApp, fooCore, barApp, barCore)

View File

@ -1,6 +1,6 @@
# This tests that this sbt scripted plugin can launch the previous one
> ^^0.13.18
> ^^1.10.1
$ copy-file changes/A.scala src/sbt-test/a/b/A.scala
> scripted

View File

@ -7,7 +7,7 @@ lazy val assertAbsolutePathConversion = taskKey[Unit]("checks source mappers con
lazy val assertVirtualFile = taskKey[Unit]("checks source mappers handle virtual files")
lazy val resetMessages = taskKey[Unit]("empties the messages list")
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"
lazy val root = (project in file("."))
.settings(

View File

@ -1,2 +1,2 @@
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"

View File

@ -1,6 +1,6 @@
import sbt.internal.inc.Analysis
name := "test"
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"
TaskKey[Unit]("checkSame") := ((Configurations.Compile / compile) map {
case analysis: Analysis =>

View File

@ -1,2 +1,2 @@
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"

View File

@ -1,2 +1,2 @@
ThisBuild / scalaVersion := "2.12.17"
ThisBuild / scalaVersion := "2.12.20"

View File

@ -16,11 +16,8 @@ class ZincComponentCompilerSpec extends IvyBridgeProviderSpecification {
val scala2106 = "2.10.6"
val scala2118 = "2.11.8"
val scala21111 = "2.11.11"
val scala2121 = "2.12.1"
val scala2122 = "2.12.2"
val scala2123 = "2.12.3"
val scala2130 = "2.13.0"
val scala2131 = "2.13.1"
val scala21220 = "2.12.20"
val scala21311 = "2.13.11"
def isJava8: Boolean = sys.props("java.specification.version") == "1.8"
@ -40,14 +37,11 @@ class ZincComponentCompilerSpec extends IvyBridgeProviderSpecification {
} else ()
}
it should "compile the bridge for Scala 2.12.2" in { implicit td =>
IO.withTemporaryDirectory(t => getCompilerBridge(t, logger, scala2121) should exist)
IO.withTemporaryDirectory(t => getCompilerBridge(t, logger, scala2122) should exist)
IO.withTemporaryDirectory(t => getCompilerBridge(t, logger, scala2123) should exist)
it should "compile the bridge for Scala 2.12.20" in { implicit td =>
IO.withTemporaryDirectory(t => getCompilerBridge(t, logger, scala21220) should exist)
}
it should "compile the bridge for Scala 2.13" in { implicit td =>
IO.withTemporaryDirectory(t => getCompilerBridge(t, logger, scala2130) should exist)
IO.withTemporaryDirectory(t => getCompilerBridge(t, logger, scala2131) should exist)
it should "compile the bridge for Scala 2.13.11" in { implicit td =>
IO.withTemporaryDirectory(t => getCompilerBridge(t, logger, scala21311) should exist)
}
}