summaryrefslogtreecommitdiff
path: root/test/files/run/t3038.scala
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-11-02 00:15:16 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-11-02 00:15:16 +0000
commitbcfe76ee680852c66781882d70ac02bd76e09ac9 (patch)
tree72d8a56d40bec04f0290a9909a6cff384d1ff4fb /test/files/run/t3038.scala
parentb80f27780458da880d47392e4ac747d196af355e (diff)
downloadscala-bcfe76ee680852c66781882d70ac02bd76e09ac9.tar.gz
scala-bcfe76ee680852c66781882d70ac02bd76e09ac9.tar.bz2
scala-bcfe76ee680852c66781882d70ac02bd76e09ac9.zip
Added separate bitmaps for private and transien...
Added separate bitmaps for private and transient lazy vals. Closes #3038, #1573. Review by dragos. I had to fix a couple of initialization issues that checkinit forced me to do and that weren't a problem before because the bitmap was serialized even for @transitive. For that I needed to change the setters in checkinit so that they also update the bitmap.
Diffstat (limited to 'test/files/run/t3038.scala')
-rw-r--r--test/files/run/t3038.scala68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/files/run/t3038.scala b/test/files/run/t3038.scala
new file mode 100644
index 0000000000..cf26001beb
--- /dev/null
+++ b/test/files/run/t3038.scala
@@ -0,0 +1,68 @@
+class A {
+ private lazy val a1 = "a1"
+ object B
+ private lazy val a2 = "a2"
+
+
+ @transient lazy val a3 = "a3"
+ @transient private lazy val a4 = "a4"
+ @transient lazy val a5 = "a5"
+ @transient private lazy val a6 = "a6"
+
+ final val a7 = "a7"
+ private final val a8 = "a8"
+ @transient final val a9 = "a9"
+
+
+
+
+ def run = {
+ println(a1)
+ B
+ println(a2)
+ println(a3)
+ println(a4)
+ println(a5)
+ println(a6)
+ println(a7)
+ println(a8)
+ println(a9)
+ }
+}
+
+class C extends A {
+ private lazy val c1 = "c1"
+ lazy val c2 = "c2"
+
+ private lazy val c3 = "c3"
+
+ @transient lazy val c4 = "c4"
+ @transient private lazy val c5 = "c5"
+ @transient lazy val c6 = "c6"
+ @transient private lazy val c7 = "c7"
+ lazy val c8 = "c8"
+
+ final val c9 = "c9"
+ private final val c10 = "c10"
+
+
+
+ override def run = {
+ super.run
+ println(c1)
+ println(c2)
+ println(c3)
+ println(c4)
+ println(c5)
+ println(c6)
+ println(c7)
+ println(c8)
+ println(c9)
+ println(c10)
+ }
+}
+
+object Test extends Application {
+ (new C).run
+}
+