Merge pull request #6481 from adpi2/backport-mk-scala-instance

Backport #6480: Expose makeScalaInstance publicly
This commit is contained in:
eugene yokota 2021-05-02 20:50:46 -04:00 committed by GitHub
commit ccca321a0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 10 deletions

View File

@ -35,7 +35,7 @@ import sbt.Scope.{ GlobalScope, ThisScope, fillTaskAxis }
import sbt.coursierint._
import sbt.internal.CommandStrings.ExportStream
import sbt.internal._
import sbt.internal.classpath.{ AlternativeZincUtil, ClassLoaderCache }
import sbt.internal.classpath.AlternativeZincUtil
import sbt.internal.inc.JavaInterfaceUtil._
import sbt.internal.inc.classpath.{ ClasspathFilter, ClasspathUtil }
import sbt.internal.inc.{ CompileOutput, MappedFileConverter, Stamps, ZincLmUtil, ZincUtil }
@ -1077,13 +1077,12 @@ object Defaults extends BuildCommon {
val libraryJars = allJars.filter(_.getName == "scala-library.jar")
allJars.filter(_.getName == "scala-compiler.jar") match {
case Array(compilerJar) if libraryJars.nonEmpty =>
val cache = state.value.extendedClassLoaderCache
mkScalaInstance(
makeScalaInstance(
version,
libraryJars,
allJars,
Seq.empty,
cache,
state.value,
scalaInstanceTopLoader.value
)
case _ => ScalaInstance(version, scalaProvider)
@ -1135,21 +1134,21 @@ object Defaults extends BuildCommon {
.flatMap(_.artifacts.map(_._2))
val libraryJars = ScalaArtifacts.libraryIds(sv).map(file)
mkScalaInstance(
makeScalaInstance(
sv,
libraryJars,
allCompilerJars,
allDocJars,
state.value.extendedClassLoaderCache,
state.value,
scalaInstanceTopLoader.value,
)
}
private[this] def mkScalaInstance(
private def makeScalaInstance(
version: String,
libraryJars: Array[File],
allCompilerJars: Seq[File],
allDocJars: Seq[File],
classLoaderCache: ClassLoaderCache,
state: State,
topLoader: ClassLoader,
): ScalaInstance = {
// Scala 2.10 shades jline in the console so we need to make sure that it loads a compatible
@ -1162,6 +1161,7 @@ object Defaults extends BuildCommon {
}
else topLoader
val classLoaderCache = state.extendedClassLoaderCache
val compilerJars = allCompilerJars.filterNot(libraryJars.contains).distinct.toArray
val docJars = allDocJars
.filterNot(jar => libraryJars.contains(jar) || compilerJars.contains(jar))
@ -1196,12 +1196,12 @@ object Defaults extends BuildCommon {
case a: AutoCloseable => a.close()
case _ =>
}
mkScalaInstance(
makeScalaInstance(
dummy.version,
dummy.libraryJars,
dummy.compilerJars,
dummy.allJars,
state.value.extendedClassLoaderCache,
state.value,
scalaInstanceTopLoader.value,
)
}