diff options
Diffstat (limited to 'tests/run/t4536.scala')
-rw-r--r-- | tests/run/t4536.scala | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/run/t4536.scala b/tests/run/t4536.scala new file mode 100644 index 000000000..89a93a5e0 --- /dev/null +++ b/tests/run/t4536.scala @@ -0,0 +1,42 @@ +import scala.language.dynamics + +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 + } + +} |