diff options
author | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2010-10-12 12:31:35 +0000 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2010-10-12 12:31:35 +0000 |
commit | b7efe9089062fd3908c07f19ee16a4ec39afdbb8 (patch) | |
tree | fcb6dd375a183f3d65354562ff4f2786b0237092 | |
parent | b33c2c37a4c6b76136b68f754516fbb78481599b (diff) | |
download | scala-b7efe9089062fd3908c07f19ee16a4ec39afdbb8.tar.gz scala-b7efe9089062fd3908c07f19ee16a4ec39afdbb8.tar.bz2 scala-b7efe9089062fd3908c07f19ee16a4ec39afdbb8.zip |
Closes #2333. Review by dragos
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/UnCurry.scala | 3 | ||||
-rw-r--r-- | test/files/run/t2333.scala | 16 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/UnCurry.scala b/src/compiler/scala/tools/nsc/transform/UnCurry.scala index 4901ca4d70..6532aaaa2d 100644 --- a/src/compiler/scala/tools/nsc/transform/UnCurry.scala +++ b/src/compiler/scala/tools/nsc/transform/UnCurry.scala @@ -596,7 +596,8 @@ abstract class UnCurry extends InfoTransform with TypingTransformers { case Assign(Select(_, _), _) => withNeedLift(true) { super.transform(tree) } - case Assign(lhs, _) if lhs.symbol.owner != currentMethod => + + case Assign(lhs, _) if lhs.symbol.owner != currentMethod || lhs.symbol.hasFlag(LAZY | ACCESSOR) => withNeedLift(true) { super.transform(tree) } case Try(block, catches, finalizer) => diff --git a/test/files/run/t2333.scala b/test/files/run/t2333.scala new file mode 100644 index 0000000000..da43386572 --- /dev/null +++ b/test/files/run/t2333.scala @@ -0,0 +1,16 @@ +class A { + def whatever() { + lazy val a = 1 + lazy val b = try { 2 } catch { case _ => 0 } + a + b + + } +} + +object Test { + def main(a: Array[String]) { + val a = new A + a.whatever + } +}
\ No newline at end of file |