summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/transform/UnCurry.scala15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/UnCurry.scala b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
index 1b48b9a978..ddc14cd95b 100644
--- a/src/compiler/scala/tools/nsc/transform/UnCurry.scala
+++ b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
@@ -720,13 +720,14 @@ abstract class UnCurry extends InfoTransform with TypingTransformers with ast.Tr
* If the repeated params exist, it saves them into the `repeatedParams` map,
* which is used later.
*/
- private def saveRepeatedParams(dd: DefDef) {
- val allparams = dd.vparamss.flatten
- val reps = allparams.filter(p => isRepeatedParamType(p.symbol.tpe))
- if (reps.isEmpty)
- unit.error(dd.symbol.pos, "A method without repeated parameters cannot be annotated with the `varargs` annotation.")
- else repeatedParams.put(dd.symbol, reps)
- }
+ private def saveRepeatedParams(dd: DefDef): Unit =
+ if (dd.symbol.isConstructor) unit.error(dd.symbol.pos, "A constructor cannot be annotated with a `varargs` annotation.") else {
+ val allparams = dd.vparamss.flatten
+ val reps = allparams.filter(p => isRepeatedParamType(p.symbol.tpe))
+ if (reps.isEmpty)
+ unit.error(dd.symbol.pos, "A method without repeated parameters cannot be annotated with the `varargs` annotation.")
+ else repeatedParams.put(dd.symbol, reps)
+ }
/* Called during post transform, after the method argument lists have been flattened.
* It looks for the method in the `repeatedParams` map, and generates a Java-style