summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/transform/UnCurry.scala10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/UnCurry.scala b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
index aa3086c05b..bbb457b12e 100644
--- a/src/compiler/scala/tools/nsc/transform/UnCurry.scala
+++ b/src/compiler/scala/tools/nsc/transform/UnCurry.scala
@@ -434,10 +434,12 @@ abstract class UnCurry extends InfoTransform with TypingTransformers with ast.Tr
else
if (tree.tpe.typeSymbol isSubClass TraversableClass) tree // @PP: I suspect this should be SeqClass
else arrayToSequence(tree, varargsElemType)
- } else {
- val tree = mkArrayValue(args drop (formals.length - 1), varargsElemType)
- if (isJava || inPattern) tree
- else arrayToSequence(tree, varargsElemType)
+ }
+ else {
+ def mkArray = mkArrayValue(args drop (formals.length - 1), varargsElemType)
+ if (isJava || inPattern) mkArray
+ else if (args.isEmpty) gen.mkNil // avoid needlessly double-wrapping an empty argument list
+ else arrayToSequence(mkArray, varargsElemType)
}
atPhase(phase.next) {