diff options
author | Miles Sabin <miles@milessabin.com> | 2010-02-23 21:59:14 +0000 |
---|---|---|
committer | Miles Sabin <miles@milessabin.com> | 2010-02-23 21:59:14 +0000 |
commit | 145b61f50bc6713c4e107176c076610b2ae3fac1 (patch) | |
tree | 2c2bab537b4e1c564b19f6ae39fe4d0f388fd3ad | |
parent | 3f9364fc49c537d4195b0f75a83442951b2a659a (diff) | |
download | scala-145b61f50bc6713c4e107176c076610b2ae3fac1.tar.gz scala-145b61f50bc6713c4e107176c076610b2ae3fac1.tar.bz2 scala-145b61f50bc6713c4e107176c076610b2ae3fac1.zip |
Improved fix for #2767. Review by community.
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 0b8d119289..0f038cbf22 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -3513,10 +3513,6 @@ trait Typers { self: Analyzer => if (qual1 ne qual) return typed(treeCopy.Select(tree, qual1, name), mode, pt) } - if (!reallyExists(sym) && currentRun.compileSourceFor(qual, name)) { - return typedSelect(qual, name) - } - if (!reallyExists(sym)) { if (settings.debug.value) Console.err.println("qual = "+qual+":"+qual.tpe+"\nSymbol="+qual.tpe.termSymbol+"\nsymbol-info = "+qual.tpe.termSymbol.info+"\nscope-id = "+qual.tpe.termSymbol.info.decls.hashCode()+"\nmembers = "+qual.tpe.members+"\nname = "+name+"\nfound = "+sym+"\nowner = "+context.enclClass.owner) @@ -3603,6 +3599,8 @@ trait Typers { self: Analyzer => } while (defSym == NoSymbol && cx != NoContext) { + if (currentRun.compileSourceFor(context.asInstanceOf[analyzer.Context], name)) + assert(true) pre = cx.enclClass.prefix defEntry = cx.scope.lookupEntry(name) if ((defEntry ne null) && qualifies(defEntry.sym)) { @@ -3678,9 +3676,7 @@ trait Typers { self: Analyzer => if (!(shortenImports && qual0.symbol.isPackage)) // optimization: don't write out package prefixes qual = atPos(tree.pos.focusStart)(resetPos(qual0.duplicate)) pre = qual.tpe - } else if (currentRun.compileSourceFor(context.asInstanceOf[analyzer.Context], name)) - return typedIdent(name) - else { + } else { if (settings.debug.value) { log(context.imports)//debug } |