diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-10-09 08:35:12 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-10-09 08:35:12 +0000 |
commit | 6fb95453d130c5423f0cc2c8b5a6e7108aa4b253 (patch) | |
tree | a89ed600c7e2f8cb4ceda014ad796135a757bad4 | |
parent | 054c404c03847d205dc67668ac34b1d722e1f414 (diff) | |
download | scala-6fb95453d130c5423f0cc2c8b5a6e7108aa4b253.tar.gz scala-6fb95453d130c5423f0cc2c8b5a6e7108aa4b253.tar.bz2 scala-6fb95453d130c5423f0cc2c8b5a6e7108aa4b253.zip |
merging msil (r19001) compiler changes to trunk
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala | 8 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/TailCalls.scala | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala index a94d4c100a..2163940ea5 100644 --- a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala +++ b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala @@ -1214,7 +1214,13 @@ abstract class GenMSIL extends SubComponent { needAdditionalRet = false - val currentLineNr = instr.pos.line + val currentLineNr = try { + instr.pos.line + } catch { + case _: UnsupportedOperationException => + log("Warning: wrong position in: " + method) + lastLineNr + } if (currentLineNr != lastLineNr) { mcode.setPosition(currentLineNr) diff --git a/src/compiler/scala/tools/nsc/transform/TailCalls.scala b/src/compiler/scala/tools/nsc/transform/TailCalls.scala index 5a26f22db9..95643e5fd4 100644 --- a/src/compiler/scala/tools/nsc/transform/TailCalls.scala +++ b/src/compiler/scala/tools/nsc/transform/TailCalls.scala @@ -192,7 +192,7 @@ abstract class TailCalls extends Transform } ) - if (!isTransformed && tailrecRequired(dd)) + if (!forMSIL && !isTransformed && tailrecRequired(dd)) unit.error(dd.pos, "could not optimize @tailrec annotated method") log("Leaving DefDef: " + name) |