summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Namers.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-10-07 03:00:43 +0000
committerPaul Phillips <paulp@improving.org>2009-10-07 03:00:43 +0000
commita6f19f5d97b0a4708d769dd3baa9aeb346d3a918 (patch)
tree876a466d21eeae794988e7bbf93ea25d379b568f /src/compiler/scala/tools/nsc/typechecker/Namers.scala
parent4a6c3da399756720b124eaa209ed34e36c394600 (diff)
downloadscala-a6f19f5d97b0a4708d769dd3baa9aeb346d3a918.tar.gz
scala-a6f19f5d97b0a4708d769dd3baa9aeb346d3a918.tar.bz2
scala-a6f19f5d97b0a4708d769dd3baa9aeb346d3a918.zip
"Fix" and test case for #1333.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Namers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 7a94f95d52..9128b4ed29 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -1085,8 +1085,13 @@ trait Namers { self: Analyzer =>
* @param namer is the namer of the module class (the comp. obj)
*/
def addApplyUnapply(cdef: ClassDef, namer: Namer) {
- if (!(cdef.symbol hasFlag ABSTRACT))
- namer.enterSyntheticSym(caseModuleApplyMeth(cdef))
+ if (!(cdef.symbol hasFlag ABSTRACT)) {
+ val applyMethod = caseModuleApplyMeth(cdef)
+ if (applyMethod.vparamss.size > 2)
+ context.error(cdef.symbol.pos, "case classes limited by implementation: maximum of 2 constructor parameter lists.")
+
+ namer.enterSyntheticSym(applyMethod)
+ }
namer.enterSyntheticSym(caseModuleUnapplyMeth(cdef))
}