summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-10-06 13:23:24 +0000
committerMartin Odersky <odersky@gmail.com>2006-10-06 13:23:24 +0000
commit5a4c34e338f5704bfaf60c1849aa55930f706b51 (patch)
treeaa2db20dbeefe50fd566b397f0627b812e33372d /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parent137654bb3e0a4ca4ae9f73378f73a0a6772fe607 (diff)
downloadscala-5a4c34e338f5704bfaf60c1849aa55930f706b51.tar.gz
scala-5a4c34e338f5704bfaf60c1849aa55930f706b51.tar.bz2
scala-5a4c34e338f5704bfaf60c1849aa55930f706b51.zip
fixed bug764.
cleaned up error diagnostics in interpreter.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index b9a664e753..087f5c485f 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -146,8 +146,7 @@ trait Typers requires Analyzer {
val pos = if (ex.pos == NoPos) pos0 else ex.pos
ex match {
case CyclicReference(sym, info: TypeCompleter) =>
- context.unit.error(
- pos,
+ val msg =
info.tree match {
case ValDef(_, _, tpt, _) if (tpt.tpe == null) =>
"recursive "+sym+" needs type"
@@ -156,7 +155,9 @@ trait Typers requires Analyzer {
else "recursive ")+sym+" needs result type"
case _ =>
ex.getMessage()
- })
+ }
+ if (context.retyping) context.error(pos, msg)
+ else context.unit.error(pos, msg)
case _ =>
context.error(pos, ex)
}