summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandar Prokopec <axel22@gmail.com>2012-05-02 20:05:48 +0200
committerAleksandar Prokopec <axel22@gmail.com>2012-05-02 20:05:48 +0200
commitbafe68e569f6d01d18a4d80da16443f66e372126 (patch)
tree1b929115cb33e7ba4b5cbd8a479cbbc1f4312426
parentc34916864f76023a78dab94cd6cc542d6b50eb96 (diff)
downloadscala-bafe68e569f6d01d18a4d80da16443f66e372126.tar.gz
scala-bafe68e569f6d01d18a4d80da16443f66e372126.tar.bz2
scala-bafe68e569f6d01d18a4d80da16443f66e372126.zip
Test cases for si-4536.
-rw-r--r--test/files/run/t4536.check8
-rw-r--r--test/files/run/t4536.scala46
2 files changed, 54 insertions, 0 deletions
diff --git a/test/files/run/t4536.check b/test/files/run/t4536.check
new file mode 100644
index 0000000000..0c5a72ada7
--- /dev/null
+++ b/test/files/run/t4536.check
@@ -0,0 +1,8 @@
+cls: bar
+obj: foo
+obj: bar
+cls: bar
+obj: bar
+trait: pili
+trait: mili
+trait: foo \ No newline at end of file
diff --git a/test/files/run/t4536.scala b/test/files/run/t4536.scala
new file mode 100644
index 0000000000..acd91deb7f
--- /dev/null
+++ b/test/files/run/t4536.scala
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+object dynamicObject extends Dynamic {
+ def applyDynamic(m: String)() = println("obj: " + m);
+ this.foo()
+}
+
+
+class dynamicClass extends Dynamic {
+ def applyDynamic(m: String)() = println("cls: " + m);
+ this.bar()
+ dynamicObject.bar()
+}
+
+
+abstract class dynamicAbstractClass extends Dynamic {
+ def applyDynamic(m: String)(args: Any*): Unit
+ this.pili(1, new dynamicClass, "hello");
+}
+
+
+trait dynamicTrait extends Dynamic {
+ def applyDynamic(m: String)(args: Any*) = println("trait: " + m);
+ def two = 2
+ this.mili(1,2,3)
+ two
+}
+
+
+object dynamicMixin extends dynamicAbstractClass with dynamicTrait {
+ this.foo(None)
+}
+
+
+object Test {
+
+ def main(args: Array[String]) {
+ val cls = new dynamicClass
+ dynamicMixin
+ }
+
+}