Skip to content

Commit

Permalink
javabootclasspath supersedes jrt
Browse files Browse the repository at this point in the history
  • Loading branch information
som-snytt committed Mar 6, 2023
1 parent 44c6006 commit a1fed90
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions src/compiler/scala/tools/util/PathResolver.scala
Expand Up @@ -211,22 +211,21 @@ final class PathResolver(settings: Settings, closeableRegistry: CloseableRegistr

private val classPathFactory = new ClassPathFactory(settings, closeableRegistry)

import PathResolver.{ AsLines, Defaults, ppcp }
import PathResolver.{AsLines, Defaults, ppcp}

private def cmdLineOrElse(name: String, alt: String) = {
(commandLineFor(name) match {
case Some("") => None
case x => x
}) getOrElse alt
}
private def cmdLineOrElse(name: String, alt: String) =
commandLineFor(name) match {
case Some("") | None => alt
case Some(x) => x
}

private def commandLineFor(s: String): Option[String] = condOpt(s) {
case "javabootclasspath" => settings.javabootclasspath.value
case "javaextdirs" => settings.javaextdirs.value
case "bootclasspath" => settings.bootclasspath.value
case "extdirs" => settings.extdirs.value
case "classpath" | "cp" => settings.classpath.value
case "sourcepath" => settings.sourcepath.value
case "javabootclasspath" => settings.javabootclasspath.value
case "javaextdirs" => settings.javaextdirs.value
case "bootclasspath" => settings.bootclasspath.value
case "extdirs" => settings.extdirs.value
case "classpath" | "cp" => settings.classpath.value
case "sourcepath" => settings.sourcepath.value
}

/** Calculated values based on any given command line options, falling back on
Expand Down Expand Up @@ -258,8 +257,10 @@ final class PathResolver(settings: Settings, closeableRegistry: CloseableRegistr

// Assemble the elements!
def basis = List[Iterable[ClassPath]](
jrt, // 0. The Java 9+ classpath (backed by the ct.sym or jrt:/ virtual system, if available)
classesInPath(javaBootClassPath), // 1. The Java bootstrap class path.
if (!settings.javabootclasspath.isSetByUser)
jrt // 0. The Java 9+ classpath (backed by the ct.sym or jrt:/ virtual system, if available)
else
classesInPath(javaBootClassPath), // 1. The Java bootstrap class path.
contentsOfDirsInPath(javaExtDirs), // 2. The Java extension class path.
classesInExpandedPath(javaUserClassPath), // 3. The Java application class path.
classesInPath(scalaBootClassPath), // 4. The Scala boot class path.
Expand Down

0 comments on commit a1fed90

Please sign in to comment.