summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala
diff options
context:
space:
mode:
authorVlad Ureche <vlad.ureche@epfl.ch>2011-08-19 21:23:21 +0000
committerVlad Ureche <vlad.ureche@epfl.ch>2011-08-19 21:23:21 +0000
commit63f072fe9be341f2acac5609d7657bf2b444ceb6 (patch)
tree132625684725e2407d48c099566d8366d40bc541 /src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala
parent64a2e3074ee5b2cc67776227451ad120746eb156 (diff)
downloadscala-63f072fe9be341f2acac5609d7657bf2b444ceb6.tar.gz
scala-63f072fe9be341f2acac5609d7657bf2b444ceb6.tar.bz2
scala-63f072fe9be341f2acac5609d7657bf2b444ceb6.zip
[recommit] Backend optimization: Inline excepti...
[recommit] Backend optimization: Inline exception handlers. Review by dragos.
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala b/src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala
index 7c24c6338b..8f7fdab64c 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala
@@ -217,7 +217,13 @@ abstract class ICodeCheckers {
throw new CheckerException(incompatibleString)
}
else {
- val newStack = new TypeStack((s1.types, s2.types).zipped map lub)
+ val newStack: TypeStack = try {
+ new TypeStack((s1.types, s2.types).zipped map lub)
+ } catch {
+ case t: Exception =>
+ checkerDebug(t.toString + ": " + s1.types.toString + " vs " + s2.types.toString)
+ new TypeStack(s1.types)
+ }
if (newStack.isEmpty || s1.types == s2.types) () // not interesting to report
else checkerDebug("Checker created new stack:\n (%s, %s) => %s".format(s1, s2, newStack))
@@ -705,7 +711,7 @@ abstract class ICodeCheckers {
//////////////// Error reporting /////////////////////////
def icodeError(msg: String) {
- ICodeCheckers.this.global.globalError(
+ ICodeCheckers.this.global.warning(
"!! ICode checker fatality in " + method +
"\n at: " + basicBlock.fullString +
"\n error message: " + msg