diff options
author | Paul Phillips <paulp@improving.org> | 2009-10-07 03:00:43 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-10-07 03:00:43 +0000 |
commit | a6f19f5d97b0a4708d769dd3baa9aeb346d3a918 (patch) | |
tree | 876a466d21eeae794988e7bbf93ea25d379b568f /src | |
parent | 4a6c3da399756720b124eaa209ed34e36c394600 (diff) | |
download | scala-a6f19f5d97b0a4708d769dd3baa9aeb346d3a918.tar.gz scala-a6f19f5d97b0a4708d769dd3baa9aeb346d3a918.tar.bz2 scala-a6f19f5d97b0a4708d769dd3baa9aeb346d3a918.zip |
"Fix" and test case for #1333.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Namers.scala | 9 |
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)) } |