summaryrefslogtreecommitdiff
path: root/test/files/run/t6353.scala
diff options
context:
space:
mode:
authoramin <nada.amin@epfl.ch>2012-09-17 01:12:13 +0200
committeramin <nada.amin@epfl.ch>2012-09-17 01:38:33 +0200
commitdbe7ef94dd5ea031b1d9e65a6843ff2ff5b28fe5 (patch)
treeb09f683a2d11c7a7d1961b8bb83cc1446b47814e /test/files/run/t6353.scala
parent112009844bb184acfeaef0435e142a3cfd5a895b (diff)
downloadscala-dbe7ef94dd5ea031b1d9e65a6843ff2ff5b28fe5.tar.gz
scala-dbe7ef94dd5ea031b1d9e65a6843ff2ff5b28fe5.tar.bz2
scala-dbe7ef94dd5ea031b1d9e65a6843ff2ff5b28fe5.zip
Fixed SI-6353: applyDynamic with sugared applications
- Accept sugared applications such as x(1) if x implements Dynamic, so x(1) gets re-written to x.apply(1). - When picking a dynamic rewrite for x.apply(1), favor applyDynamic instead of the default selectDynamic.
Diffstat (limited to 'test/files/run/t6353.scala')
-rw-r--r--test/files/run/t6353.scala12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/files/run/t6353.scala b/test/files/run/t6353.scala
new file mode 100644
index 0000000000..112241a3c4
--- /dev/null
+++ b/test/files/run/t6353.scala
@@ -0,0 +1,12 @@
+import language.dynamics
+
+object Test extends App {
+ val x = new X(3)
+ val y = x(9)
+ class X(i: Int) extends Dynamic {
+ def applyDynamic(name: String)(in: Int): Int = {
+ println(s"applyDynamic($name)($in)")
+ i + in
+ }
+ }
+}