diff options
author | Vlad Ureche <vlad.ureche@epfl.ch> | 2011-08-19 21:23:21 +0000 |
---|---|---|
committer | Vlad Ureche <vlad.ureche@epfl.ch> | 2011-08-19 21:23:21 +0000 |
commit | 63f072fe9be341f2acac5609d7657bf2b444ceb6 (patch) | |
tree | 132625684725e2407d48c099566d8366d40bc541 /src/compiler/scala/tools/nsc/backend/icode/ICodeCheckers.scala | |
parent | 64a2e3074ee5b2cc67776227451ad120746eb156 (diff) | |
download | scala-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.scala | 10 |
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 |