summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2012-07-08 16:56:13 -0700
committerAdriaan Moors <adriaan.moors@epfl.ch>2012-07-08 16:56:13 -0700
commitf82a1d122cb20dc9924f80ebcc9d31da46bd4f29 (patch)
treef1c8e1065f234c816216624ea564f7a0f3e0242e /src/compiler
parent97a88cc3956414c898c4dab27f32cd7a9a367e3f (diff)
parenta3fe989833cc482dbae04a2e2f822a74cad67a36 (diff)
downloadscala-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.scala9
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala4
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) {