diff options
author | Martin Odersky <odersky@gmail.com> | 2006-10-06 13:23:24 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2006-10-06 13:23:24 +0000 |
commit | 5a4c34e338f5704bfaf60c1849aa55930f706b51 (patch) | |
tree | aa2db20dbeefe50fd566b397f0627b812e33372d /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 137654bb3e0a4ca4ae9f73378f73a0a6772fe607 (diff) | |
download | scala-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.scala | 7 |
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) } |