summaryrefslogtreecommitdiff
path: root/test/files/run/t5733.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2012-12-05 17:54:47 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2012-12-05 17:54:47 -0800
commit9547753a80fab450c842cb4a9a8296aa41875ff3 (patch)
tree637acdd45dbf93ba87ae6cb67d4237da652ac8c1 /test/files/run/t5733.scala
parent4b2330b3d3db4263a8b1e19b792596dd60d79045 (diff)
parentc42c1742e26dc47f940e4003e4ca25e8c738796d (diff)
downloadscala-9547753a80fab450c842cb4a9a8296aa41875ff3.tar.gz
scala-9547753a80fab450c842cb4a9a8296aa41875ff3.tar.bz2
scala-9547753a80fab450c842cb4a9a8296aa41875ff3.zip
Merge pull request #1716 from paulp/merge-2.10
Merged 2.10.0/x into master.
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" )
+ }
+}