summaryrefslogtreecommitdiff
path: root/test/files/neg/t6355.check
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-02-12 11:05:14 -0800
committerPaul Phillips <paulp@improving.org>2013-02-12 11:05:14 -0800
commitc26cc531f655cfa5b27ffb8ab25adc7ffb97aa71 (patch)
tree9c3559d40b7ea6135c39085b19b6c2702e8625d2 /test/files/neg/t6355.check
parent0c59fc9a1416cf5c45699111e8857adb03f7f0d4 (diff)
downloadscala-c26cc531f655cfa5b27ffb8ab25adc7ffb97aa71.tar.gz
scala-c26cc531f655cfa5b27ffb8ab25adc7ffb97aa71.tar.bz2
scala-c26cc531f655cfa5b27ffb8ab25adc7ffb97aa71.zip
SI-6355, weakend implementation restriction on applyDynamic.
I realized one can successfully call an overloaded applyDynamic, under conditions such as these: def applyDynamic[T1](m: String)(x1: T1): Any = 1 def applyDynamic[T1, T2](m: String)(x: T1, y: T2): Any = 2 def applyDynamic[T1, T2, T3](m: String)(x: T1, y: T2, z: T3): Any = 3 So I weakened the overloading restriction to allow overloading if each method has a distinct number of type parameters. This very likely still allows the creation of uncallable overloads, but an overly restrictive rule is worse. If the overload cannot be called, it will still be discovered at the call site.
Diffstat (limited to 'test/files/neg/t6355.check')
-rw-r--r--test/files/neg/t6355.check7
1 files changed, 5 insertions, 2 deletions
diff --git a/test/files/neg/t6355.check b/test/files/neg/t6355.check
index c1fa147f52..607829d99a 100644
--- a/test/files/neg/t6355.check
+++ b/test/files/neg/t6355.check
@@ -1,4 +1,7 @@
-t6355.scala:12: error: implementation restriction: applyDynamic cannot be overloaded
+t6355.scala:12: error: implementation restriction: applyDynamic cannot be overloaded except by methods with different numbers of type parameters, e.g. applyDynamic[T1](method: String)(arg: T1) and applyDynamic[T1, T2](method: String)(arg1: T1, arg2: T2)
def applyDynamic(name: String)(x: Int): Int = 2
^
-one error found
+t6355.scala:18: error: implementation restriction: applyDynamic cannot be overloaded except by methods with different numbers of type parameters, e.g. applyDynamic[T1](method: String)(arg: T1) and applyDynamic[T1, T2](method: String)(arg1: T1, arg2: T2)
+ def applyDynamic[T1, T2](name: String)(x: String, y: T1, z: T2): Int = 3
+ ^
+two errors found