summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@gmail.com>2012-05-14 10:32:50 +0200
committerHubert Plociniczak <hubert.plociniczak@gmail.com>2012-05-14 10:32:50 +0200
commitefdac16e04bc1cd64113ad22fb4aa8f5191a316f (patch)
treeb302a4f64913a7fa60ff2bd84c4df55b58dc3140
parent97046e6cbe8dfc5d5b672d1a490071b68cbdad9a (diff)
downloadscala-efdac16e04bc1cd64113ad22fb4aa8f5191a316f.tar.gz
scala-efdac16e04bc1cd64113ad22fb4aa8f5191a316f.tar.bz2
scala-efdac16e04bc1cd64113ad22fb4aa8f5191a316f.zip
Closes SI-5796.
-rw-r--r--src/compiler/scala/tools/nsc/transform/LazyVals.scala5
-rw-r--r--test/files/pos/t5796.scala8
2 files changed, 11 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/LazyVals.scala b/src/compiler/scala/tools/nsc/transform/LazyVals.scala
index 2b26f1590d..e8387c80f5 100644
--- a/src/compiler/scala/tools/nsc/transform/LazyVals.scala
+++ b/src/compiler/scala/tools/nsc/transform/LazyVals.scala
@@ -75,7 +75,8 @@ abstract class LazyVals extends Transform with TypingTransformers with ast.TreeD
val stats1 = stats.flatMap(_ match {
case Block(List(d1@DefDef(_, n1, _, _, _, _)), d2@DefDef(_, n2, _, _, _, _)) if (nme.newLazyValSlowComputeName(n2) == n1) =>
List(d1, d2)
- case stat => List(stat)
+ case stat =>
+ List(stat)
})
treeCopy.Block(block1, stats1, expr)
@@ -138,7 +139,7 @@ abstract class LazyVals extends Transform with TypingTransformers with ast.TreeD
case ValDef(_, _, _, _) if !sym.owner.isModule && !sym.owner.isClass =>
deriveValDef(tree) { rhs0 =>
- val rhs = super.transform(rhs0)
+ val rhs = transform(rhs0)
if (LocalLazyValFinder.find(rhs)) typed(addBitmapDefs(sym, rhs)) else rhs
}
diff --git a/test/files/pos/t5796.scala b/test/files/pos/t5796.scala
new file mode 100644
index 0000000000..d05350c535
--- /dev/null
+++ b/test/files/pos/t5796.scala
@@ -0,0 +1,8 @@
+object Bug {
+ def foo() {
+ val v = {
+ lazy val s = 0
+ s
+ }
+ }
+}