aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/printing/RefinedPrinter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/printing/RefinedPrinter.scala')
-rw-r--r--src/dotty/tools/dotc/printing/RefinedPrinter.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/printing/RefinedPrinter.scala b/src/dotty/tools/dotc/printing/RefinedPrinter.scala
index b4221d7eb..3636731aa 100644
--- a/src/dotty/tools/dotc/printing/RefinedPrinter.scala
+++ b/src/dotty/tools/dotc/printing/RefinedPrinter.scala
@@ -241,8 +241,14 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
changePrec(InfixPrec) { toText(name) ~ " @ " ~ toText(body) }
case Alternative(trees) =>
changePrec(OrPrec) { toText(trees, " | ") }
- case UnApply(fun, args) =>
- toTextLocal(fun) ~ "(" ~ toTextGlobal(args, ", ") ~ ")"
+ case UnApply(fun, implicits, patterns) =>
+ val extractor = fun match {
+ case Select(extractor, nme.unapply) => extractor
+ case _ => fun
+ }
+ toTextLocal(extractor) ~
+ "(" ~ toTextGlobal(patterns, ", ") ~ ")" ~
+ ("(" ~ toTextGlobal(implicits, ", ") ~ ")" provided implicits.nonEmpty)
case ValDef(mods, name, tpt, rhs) =>
modText(mods, if (mods is Mutable) "var" else "val") ~~ toText(name) ~
optAscription(tpt) ~ optText(rhs)(" = " ~ _)