summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMiles Sabin <miles@milessabin.com>2010-02-23 21:59:14 +0000
committerMiles Sabin <miles@milessabin.com>2010-02-23 21:59:14 +0000
commit145b61f50bc6713c4e107176c076610b2ae3fac1 (patch)
tree2c2bab537b4e1c564b19f6ae39fe4d0f388fd3ad /src
parent3f9364fc49c537d4195b0f75a83442951b2a659a (diff)
downloadscala-145b61f50bc6713c4e107176c076610b2ae3fac1.tar.gz
scala-145b61f50bc6713c4e107176c076610b2ae3fac1.tar.bz2
scala-145b61f50bc6713c4e107176c076610b2ae3fac1.zip
Improved fix for #2767. Review by community.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala10
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
}