summaryrefslogtreecommitdiff
path: root/test/files/pos/t7296.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-01-19 00:43:15 +0100
committerJason Zaugg <jzaugg@gmail.com>2013-03-25 08:59:18 +0100
commit844cef628c809de24d908b9a51760ff33d0db345 (patch)
tree9bbd9db91a7082c98bfacc058b70b0e8ae2c1aa1 /test/files/pos/t7296.scala
parentad79d74deef6e624aa7048543207ec97810f07f5 (diff)
downloadscala-844cef628c809de24d908b9a51760ff33d0db345.tar.gz
scala-844cef628c809de24d908b9a51760ff33d0db345.tar.bz2
scala-844cef628c809de24d908b9a51760ff33d0db345.zip
SI-7296 Remove arity limit for case classes
When venturing above the pre-ordained limit of twenty two, `Companion extends FunctionN` and `Companion.unapply` are sacrificed. But oh-so-many other case class features work perfectly: equality/hashing/stringification, the apply method, and even pattern matching (which already bypasses unapply.) There was some understandable fear of the piecemeal when I tabled this idea on scala-internals [1]. But I'd like to persist as this limit is a needless source of pain for anyone using case classes to bind to database, XML or JSON schemata. [1] https://groups.google.com/forum/#!topic/scala-internals/RRu5bppi16Y
Diffstat (limited to 'test/files/pos/t7296.scala')
-rw-r--r--test/files/pos/t7296.scala6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/files/pos/t7296.scala b/test/files/pos/t7296.scala
new file mode 100644
index 0000000000..0c078d3657
--- /dev/null
+++ b/test/files/pos/t7296.scala
@@ -0,0 +1,6 @@
+object Test {
+ type A = Int
+ // Emits the implementation restriction but then proceeds to crash
+ // when creating the Foo.unapply.
+ case class Foo(a: A, b: A, c: A, d: A, e: A, f: A, g: A, h: A, i: A, j: A, k: A, l: A, m: A, n: A, o: A, p: A, q: A, r: A, s: A, t: A, u: A, v: A, w: A, x: A, y: A, Z: A)
+}