summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorMiles Sabin <miles@milessabin.com>2009-06-01 13:16:13 +0000
committerMiles Sabin <miles@milessabin.com>2009-06-01 13:16:13 +0000
commit26e953fc6b6295be28e3dc6558c3d76270bae877 (patch)
tree934705c895b2aa1cbd013d27e392988b5edb1e05 /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parentc7aa8f5778d682f169e1943330e97b7d38a41f2e (diff)
downloadscala-26e953fc6b6295be28e3dc6558c3d76270bae877.tar.gz
scala-26e953fc6b6295be28e3dc6558c3d76270bae877.tar.bz2
scala-26e953fc6b6295be28e3dc6558c3d76270bae877.zip
Unpositionable children don't contribute to par...
Unpositionable children don't contribute to parents position; the typechecker shouldn't swallow interactive control exceptions.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 4e4f75a4cb..02f6d20522 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -3708,6 +3708,8 @@ trait Typers { self: Analyzer =>
* @return ...
*/
def typed(tree: Tree, mode: Int, pt: Type): Tree = {
+ import scala.tools.nsc.interactive.CompilerControl
+
def dropExistential(tp: Type): Type = tp match {
case ExistentialType(tparams, tpe) =>
if (settings.debug.value) println("drop ex "+tree+" "+tp)
@@ -3738,6 +3740,7 @@ trait Typers { self: Analyzer =>
if (phase.id == currentRun.typerPhase.id) signalDone(context.asInstanceOf[analyzer.Context], tree, result)
result
} catch {
+ case ex: CompilerControl#FreshRunReq => throw ex
case ex: TypeError =>
tree.tpe = null
//Console.println("caught "+ex+" in typed");//DEBUG