From 5a90f0aebdaab1bea251887c70a615181b03b885 Mon Sep 17 00:00:00 2001 From: Sean McDirmid Date: Mon, 21 Aug 2006 10:24:57 +0000 Subject: Enhanced error reporting to not eat stack trace. --- src/compiler/scala/tools/nsc/typechecker/Contexts.scala | 8 ++++++++ src/compiler/scala/tools/nsc/typechecker/Typers.scala | 8 +++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala index 22d792bc4f..b1a4b74133 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala @@ -178,6 +178,14 @@ trait Contexts requires Analyzer { c } + def error(pos : Int, er : Error): Unit = { + val msg = er.getMessage(); + if (reportGeneralErrors) + unit.error(pos, if (checking) "**** ERROR DURING INTERNAL CHECKING ****\n" + msg else msg) + else + throw er; + } + def error(pos: int, msg: String): unit = if (reportGeneralErrors) unit.error(pos, if (checking) "**** ERROR DURING INTERNAL CHECKING ****\n" + msg else msg) diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 2c9797b0dc..7153fa49eb 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -145,7 +145,7 @@ trait Typers requires Analyzer { ex.getMessage() }) case _ => - context.error(pos, ex.getMessage()) + context.error(pos, ex) } } @@ -1786,8 +1786,10 @@ trait Typers requires Analyzer { new Typer(context.make(tree, owner)) /** Types expression or definition `tree' */ - def typed(tree: Tree): Tree = - typed(tree, EXPRmode, WildcardType) + def typed(tree: Tree): Tree = { + val ret = typed(tree, EXPRmode, WildcardType) + ret; + } /** Types expression `tree' with given prototype `pt' */ def typed(tree: Tree, pt: Type): Tree = -- cgit v1.2.3