summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAleksandar Prokopec <axel22@gmail.com>2012-08-17 10:55:14 +0200
committerPaul Phillips <paulp@improving.org>2012-08-17 06:40:01 -0700
commitfaa114e2fb6003031efa2cdd56a32a3c44aa71fb (patch)
tree7af367d2bc0c484eaf09ea8e79bd61551669122d /test
parent5a8dfad583b825158cf0abdae5d73a4a7f8cd997 (diff)
downloadscala-faa114e2fb6003031efa2cdd56a32a3c44aa71fb.tar.gz
scala-faa114e2fb6003031efa2cdd56a32a3c44aa71fb.tar.bz2
scala-faa114e2fb6003031efa2cdd56a32a3c44aa71fb.zip
Fixes SI-6236.
In separate compilation runs, the static field symbol in the companion class of an object was not being recreated. Given that the singleton object was compiled separately, the static field symbol will be recreated on demand.
Diffstat (limited to 'test')
-rw-r--r--test/files/run/static-annot/field.scala13
-rw-r--r--test/files/run/t6236.check2
-rw-r--r--test/files/run/t6236/file_1.scala9
-rw-r--r--test/files/run/t6236/file_2.scala10
4 files changed, 32 insertions, 2 deletions
diff --git a/test/files/run/static-annot/field.scala b/test/files/run/static-annot/field.scala
index a7d8158321..8408a51800 100644
--- a/test/files/run/static-annot/field.scala
+++ b/test/files/run/static-annot/field.scala
@@ -23,8 +23,10 @@ class Foo
trait Check {
def checkStatic(cls: Class[_]) {
cls.getDeclaredFields.find(_.getName == "bar") match {
- case Some(f) => assert(Modifier.isStatic(f.getModifiers), "no static modifier")
- case None => assert(false, "no static field bar in class")
+ case Some(f) =>
+ assert(Modifier.isStatic(f.getModifiers), "no static modifier")
+ case None =>
+ assert(false, "no static field bar in class")
}
}
@@ -170,6 +172,10 @@ object Foo7 {
@static val bar = "string"
}
class AndHisFriend
+
+ object AndHisLonelyFriend {
+ @static val bar = "another"
+ }
}
@@ -177,6 +183,9 @@ object Test7 extends Check {
def test() {
checkStatic(classOf[Foo7.AndHisFriend])
assert(Foo7.AndHisFriend.bar == "string")
+
+ checkStatic(Class.forName("Foo7$AndHisLonelyFriend"))
+ assert(Foo7.AndHisLonelyFriend.bar == "another")
}
}
diff --git a/test/files/run/t6236.check b/test/files/run/t6236.check
new file mode 100644
index 0000000000..a0a2e88d0a
--- /dev/null
+++ b/test/files/run/t6236.check
@@ -0,0 +1,2 @@
+353
+353 \ No newline at end of file
diff --git a/test/files/run/t6236/file_1.scala b/test/files/run/t6236/file_1.scala
new file mode 100644
index 0000000000..92d22799fc
--- /dev/null
+++ b/test/files/run/t6236/file_1.scala
@@ -0,0 +1,9 @@
+
+
+package p {
+ object y {
+ object x {
+ @scala.annotation.static val foo: Int = 353
+ }
+ }
+}
diff --git a/test/files/run/t6236/file_2.scala b/test/files/run/t6236/file_2.scala
new file mode 100644
index 0000000000..51823004ca
--- /dev/null
+++ b/test/files/run/t6236/file_2.scala
@@ -0,0 +1,10 @@
+
+
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ println(p.y.x.foo)
+ println(p.y.x.foo)
+ }
+}
+