aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Typer.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/typer/Typer.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index 17c77be89..f961a4544 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -1072,8 +1072,16 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
}
}
- def adaptToArgs(wtp: Type, pt: FunProto) = wtp match {
- case _: MethodType | _: PolyType => tree
+ def adaptToArgs(wtp: Type, pt: FunProto): Tree = wtp match {
+ case _: MethodType | _: PolyType =>
+ def isUnary = wtp.firstParamTypes match {
+ case ptype :: Nil => !ptype.isRepeatedParam
+ case _ => false
+ }
+ if (pt.args.lengthCompare(1) > 0 && isUnary && ctx.canAutoTuple)
+ adaptToArgs(wtp, pt.tupled)
+ else
+ tree
case _ => tryInsertApply(tree, pt) {
val more = tree match {
case Apply(_, _) => " more"