diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2012-07-08 16:56:13 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2012-07-08 16:56:13 -0700 |
commit | f82a1d122cb20dc9924f80ebcc9d31da46bd4f29 (patch) | |
tree | f1c8e1065f234c816216624ea564f7a0f3e0242e /src/compiler | |
parent | 97a88cc3956414c898c4dab27f32cd7a9a367e3f (diff) | |
parent | a3fe989833cc482dbae04a2e2f822a74cad67a36 (diff) | |
download | scala-f82a1d122cb20dc9924f80ebcc9d31da46bd4f29.tar.gz scala-f82a1d122cb20dc9924f80ebcc9d31da46bd4f29.tar.bz2 scala-f82a1d122cb20dc9924f80ebcc9d31da46bd4f29.zip |
Merge pull request #843 from scalamacros/ticket/6036
SI-6036 yet again makes sense of magic symbols
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/reflect/makro/runtime/Mirrors.scala | 9 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/compiler/scala/reflect/makro/runtime/Mirrors.scala b/src/compiler/scala/reflect/makro/runtime/Mirrors.scala index 79fa07fdb4..ec970ee696 100644 --- a/src/compiler/scala/reflect/makro/runtime/Mirrors.scala +++ b/src/compiler/scala/reflect/makro/runtime/Mirrors.scala @@ -24,11 +24,14 @@ trait Mirrors { else NoSymbol } + private lazy val libraryClasspathLoader: ClassLoader = { + val classpath = platform.classPath.asURLs + ScalaClassLoader.fromURLs(classpath) + } + private def isJavaClass(path: String): Boolean = try { - val classpath = platform.classPath.asURLs - var classLoader = ScalaClassLoader.fromURLs(classpath) - Class.forName(path, true, classLoader) + Class.forName(path, true, libraryClasspathLoader) true } catch { case (_: ClassNotFoundException) | (_: NoClassDefFoundError) | (_: IncompatibleClassChangeError) => diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index ccd346e72d..6aa93f9cec 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -4431,7 +4431,7 @@ trait Typers extends Modes with Adaptations with Tags { if (!qual.tpe.widen.isErroneous) { if ((mode & QUALmode) != 0) { - val lastTry = missingHook(qual.tpe.typeSymbol, name) + val lastTry = rootMirror.missingHook(qual.tpe.typeSymbol, name) if (lastTry != NoSymbol) return typed1(tree setSymbol lastTry, mode, pt) } NotAMemberError(tree, qual, name) @@ -4673,7 +4673,7 @@ trait Typers extends Modes with Adaptations with Tags { log("Allowing empty package member " + name + " due to settings.") else { if ((mode & QUALmode) != 0) { - val lastTry = missingHook(rootMirror.RootClass, name) + val lastTry = rootMirror.missingHook(rootMirror.RootClass, name) if (lastTry != NoSymbol) return typed1(tree setSymbol lastTry, mode, pt) } if (settings.debug.value) { |