blob: 605503d3776dd13f381665a3f209c0f1e535b03f (
plain) (
tree)
|
|
import scala.language.dynamics
object Test {
implicit class DynamicValue[T](val value: T) extends AnyVal with Dynamic {
def applyDynamic(name: String)(args: Any*) = println(s"""$this.$name(${args mkString ", "})""")
override def toString = "" + value
}
implicit class DynamicValue2[T](val value: T) extends Dynamic {
def applyDynamic(name: String)(args: Any*) = println(s"""$this.$name(${args mkString ", "})""")
override def toString = "" + value
}
def f[T](x: DynamicValue[T]) = x.dingo("bippy", 5)
def g[T](x: DynamicValue2[T]) = x.dingo("bippy", 5)
def main(args: Array[String]): Unit = {
f(())
f(List(1, 2, 3))
g(())
g(List(1, 2, 3))
}
}
|