summaryrefslogtreecommitdiff
path: root/test/files/run/t5733.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2012-12-05 06:52:40 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2012-12-05 06:52:40 -0800
commitedbcc64483ac0009eeeb58fe31e57a411da9e4c6 (patch)
tree2e436216e6838dc5efe33c73c0669fb534235e3c /test/files/run/t5733.scala
parentfd57069a3a49de1757a518b573a0cd8cb98bbbd5 (diff)
parenta6941944bf80f660722e9151801776715c3e4ab5 (diff)
downloadscala-edbcc64483ac0009eeeb58fe31e57a411da9e4c6.tar.gz
scala-edbcc64483ac0009eeeb58fe31e57a411da9e4c6.tar.bz2
scala-edbcc64483ac0009eeeb58fe31e57a411da9e4c6.zip
Merge pull request #1681 from paulp/issue/6731
Fix for SI-6731, dropped trees in selectDynamic.
Diffstat (limited to 'test/files/run/t5733.scala')
-rw-r--r--test/files/run/t5733.scala53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/files/run/t5733.scala b/test/files/run/t5733.scala
new file mode 100644
index 0000000000..360264e4ed
--- /dev/null
+++ b/test/files/run/t5733.scala
@@ -0,0 +1,53 @@
+import scala.language.dynamics
+
+object A extends Dynamic {
+ var a = "a"
+
+ def selectDynamic(method:String): String = a
+
+ def updateDynamic(method:String)(v:String) { a = v }
+}
+
+class B extends Dynamic {
+ var b = "b"
+
+ def selectDynamic(method:String): String = b
+
+ def updateDynamic(method:String)(v:String) { b = v }
+}
+
+object Test extends App {
+ assert( A.foo == "a" )
+ assert( A.bar == "a" )
+ A.aaa = "aaa"
+ assert( A.bar == "aaa" )
+
+ val b = new B
+ assert( b.foo == "b" )
+ assert( b.bar == "b" )
+ b.bbb = "bbb"
+ assert( b.bar == "bbb" )
+
+ {
+ println("Running ABTest asserts")
+ A.a = "a"
+ (new ABTest).test()
+ }
+
+ println("Done")
+}
+
+class ABTest {
+ def test() {
+ assert( A.foo == "a" )
+ assert( A.bar == "a" )
+ A.aaa = "aaa"
+ assert( A.bar == "aaa" )
+
+ val b = new B
+ assert( b.foo == "b" )
+ assert( b.bar == "b" )
+ b.bbb = "bbb"
+ assert( b.bar == "bbb" )
+ }
+}