diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-10-23 05:45:33 -0700 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-10-23 05:45:33 -0700 |
commit | 9c1021270ab55f31dd1c680ed51b9aed4c531e1a (patch) | |
tree | b739b90462572f4a3159a357ef342bd76391f948 | |
parent | e6a5e692f58892dcf080fb3fe4fc4f8100e63301 (diff) | |
parent | 2bfe0e797c2b9c57277475c9296e36cbf868b7db (diff) | |
download | scala-9c1021270ab55f31dd1c680ed51b9aed4c531e1a.tar.gz scala-9c1021270ab55f31dd1c680ed51b9aed4c531e1a.tar.bz2 scala-9c1021270ab55f31dd1c680ed51b9aed4c531e1a.zip |
Merge pull request #3052 from som-snytt/issue/6026-javap-loading
SI-6026 REPL checks for javap before tools.jar
-rw-r--r-- | src/compiler/scala/tools/nsc/interpreter/ILoop.scala | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/compiler/scala/tools/nsc/interpreter/ILoop.scala b/src/compiler/scala/tools/nsc/interpreter/ILoop.scala index 6aef72a3b8..ee45dc558a 100644 --- a/src/compiler/scala/tools/nsc/interpreter/ILoop.scala +++ b/src/compiler/scala/tools/nsc/interpreter/ILoop.scala @@ -394,20 +394,24 @@ class ILoop(in0: Option[BufferedReader], protected val out: JPrintWriter) (install map (_.parent) flatMap jarAt) orElse (jdkDir flatMap deeply) } - private def addToolsJarToLoader() = { - val cl = platformTools match { - case Some(tools) => ScalaClassLoader.fromURLs(Seq(tools.toURL), intp.classLoader) - case _ => intp.classLoader - } - if (Javap.isAvailable(cl)) { - repldbg(":javap available.") - cl - } - else { - repldbg(":javap unavailable: no tools.jar at " + jdkHome) + private def addToolsJarToLoader() = ( + if (Javap isAvailable intp.classLoader) { + repldbg(":javap available on interpreter class path.") intp.classLoader + } else { + val cl = platformTools match { + case Some(tools) => ScalaClassLoader.fromURLs(Seq(tools.toURL), intp.classLoader) + case _ => intp.classLoader + } + if (Javap isAvailable cl) { + repldbg(":javap available on extended class path.") + cl + } else { + repldbg(s":javap unavailable: no tools.jar at $jdkHome") + intp.classLoader + } } - } + ) protected def newJavap() = new JavapClass(addToolsJarToLoader(), new IMain.ReplStrippingWriter(intp)) { override def tryClass(path: String): Array[Byte] = { |