summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-10-23 05:45:33 -0700
committerJason Zaugg <jzaugg@gmail.com>2013-10-23 05:45:33 -0700
commit9c1021270ab55f31dd1c680ed51b9aed4c531e1a (patch)
treeb739b90462572f4a3159a357ef342bd76391f948
parente6a5e692f58892dcf080fb3fe4fc4f8100e63301 (diff)
parent2bfe0e797c2b9c57277475c9296e36cbf868b7db (diff)
downloadscala-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.scala28
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] = {