diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-10-08 09:01:49 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-10-08 09:01:49 +0200 |
commit | 00c9c164f57223738789bdfd14959367a39c8d32 (patch) | |
tree | e7ce492913cf06ae771e65cf17f237be37e1b760 /test/files/neg/sammy_wrong_arity.scala | |
parent | 67062db57c1abef88e0049dac5d82d4f13375a48 (diff) | |
download | scala-00c9c164f57223738789bdfd14959367a39c8d32.tar.gz scala-00c9c164f57223738789bdfd14959367a39c8d32.tar.bz2 scala-00c9c164f57223738789bdfd14959367a39c8d32.zip |
Don't pursue SAM translation after an arity mismatch.
Before this change:
scala> trait T { def apply(a: Int): Int }
defined trait T
scala> ((x: Int, y: Int) => 0): T
<console>:9: error: object creation impossible, since method apply in trait T of type (a: Int)Int is not defined
((x: Int, y: Int) => 0): T
^
After the change, these cases report the same errors as they do
*without* -Xexperimental.
Diffstat (limited to 'test/files/neg/sammy_wrong_arity.scala')
-rw-r--r-- | test/files/neg/sammy_wrong_arity.scala | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/files/neg/sammy_wrong_arity.scala b/test/files/neg/sammy_wrong_arity.scala new file mode 100644 index 0000000000..d03d266a0b --- /dev/null +++ b/test/files/neg/sammy_wrong_arity.scala @@ -0,0 +1,22 @@ +trait T0 { def ap(): Int } +trait T1 { def ap(a: Any): Int } +trait T2 { def ap(a: Any, b: Any): Int } + +class Test { + (() => 0): T1 + ((x: Any) => 0): T2 + + ((x: Any) => 0): T0 + ((x: Any) => 0): T2 + + ((x: Any, y: Any) => 0): T0 + ((x: Any, y: Any) => 0): T1 + + ((x) => 0): T2 + + ((x) => 0): T0 + ((x) => 0): T2 + + ((x, y) => 0): T0 + ((x, y) => 0): T1 +} |