diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-30 16:05:46 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-30 16:05:46 -0800 |
commit | 62681e191a101213a6af65bb88d77230f1f5d663 (patch) | |
tree | 0981586d45880072ab0de63778fd1be7b6cec77d | |
parent | ccd7abe897ab23056e6bf66f02c279647dfe3a57 (diff) | |
parent | d3f3394fbdfbc82111b9aff71f0e32e2ad578d98 (diff) | |
download | scala-62681e191a101213a6af65bb88d77230f1f5d663.tar.gz scala-62681e191a101213a6af65bb88d77230f1f5d663.tar.bz2 scala-62681e191a101213a6af65bb88d77230f1f5d663.zip |
Merge pull request #2007 from retronym/backport/1021
[backport] Fix for SI-6154, VerifyError originating in uncurry.
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/UnCurry.scala | 2 | ||||
-rw-r--r-- | test/files/run/t6154.check | 1 | ||||
-rw-r--r-- | test/files/run/t6154.scala | 10 |
3 files changed, 12 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/UnCurry.scala b/src/compiler/scala/tools/nsc/transform/UnCurry.scala index c07177ec10..f338e390bb 100644 --- a/src/compiler/scala/tools/nsc/transform/UnCurry.scala +++ b/src/compiler/scala/tools/nsc/transform/UnCurry.scala @@ -627,7 +627,7 @@ abstract class UnCurry extends InfoTransform } } - case Assign(Select(_, _), _) => + case Assign(_: RefTree, _) => withNeedLift(true) { super.transform(tree) } case Assign(lhs, _) if lhs.symbol.owner != currentMethod || lhs.symbol.hasFlag(LAZY | ACCESSOR) => diff --git a/test/files/run/t6154.check b/test/files/run/t6154.check new file mode 100644 index 0000000000..9766475a41 --- /dev/null +++ b/test/files/run/t6154.check @@ -0,0 +1 @@ +ok diff --git a/test/files/run/t6154.scala b/test/files/run/t6154.scala new file mode 100644 index 0000000000..02ef62905f --- /dev/null +++ b/test/files/run/t6154.scala @@ -0,0 +1,10 @@ +object Test { + def foo(a: Int) { + var bar: Int = 0 + bar = try { 0 } catch { case ex: Throwable => 0 } + new { foo(bar) } + } + + def main(args: Array[String]): Unit = + try foo(0) catch { case _: java.lang.StackOverflowError => println("ok") } +} |