Fixed First/Second dependency problem in presentation compiler.

git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@24024 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
This commit is contained in:
odersky 2011-01-19 15:33:57 +00:00
parent 5746dfc0b5
commit 2899fd0d26
3 changed files with 6 additions and 7 deletions

View File

@ -197,12 +197,12 @@ self =>
logreplay("atnode", nodeWithWork()) match {
case Some(id) =>
debugLog("some work at node "+id+" current = "+nodesSeen)
assert(id >= nodesSeen)
// assert(id >= nodesSeen)
moreWorkAtNode = id
case None =>
}
if (nodesSeen == moreWorkAtNode) {
if (nodesSeen >= moreWorkAtNode) {
if (logreplay("cancelled", pendingResponse.isCancelled)) {
throw CancelException
}

View File

@ -17,7 +17,6 @@ class PresentationCompilerThread(var compiler: Global, threadId: Int) extends Th
while (true) {
compiler.log.logreplay("wait for more work", { compiler.scheduler.waitForMoreWork(); true })
compiler.pollForWork(compiler.NoPosition)
compiler.debugLog("got more work")
while (compiler.outOfDate) {
try {
compiler.backgroundCompile()
@ -50,4 +49,4 @@ class PresentationCompilerThread(var compiler: Global, threadId: Int) extends Th
compiler = null
}
}
}
}

View File

@ -3777,7 +3777,7 @@ A type's typeSymbol should never be inspected directly.
if (rebind0 == NoSymbol) {
if (sym.isAliasType) throw missingAliasException
if (settings.debug.value) println(pre+"."+sym+" does no longer exist, phase = "+phase)
throw new MissingTypeControl // For build manager purposes
throw new MissingTypeControl // For build manager and presentation compiler purposes
//assert(false, pre+"."+sym+" does no longer exist, phase = "+phase)
}
/** The two symbols have the same fully qualified name */
@ -3816,7 +3816,7 @@ A type's typeSymbol should never be inspected directly.
if (sym1 == sym) tp else ThisType(sym1)
} catch {
case ex: MissingTypeControl =>
NoType
tp
}
case SingleType(pre, sym) =>
if (sym.isPackage) tp
@ -3839,7 +3839,7 @@ A type's typeSymbol should never be inspected directly.
case ex: MissingAliasControl =>
apply(tp.dealias)
case _: MissingTypeControl =>
NoType
tp
}
}
case MethodType(params, restp) =>