Skip to content

Commit 9333e77

Browse files
author
Aggelos Biboudis
authored
Merge pull request #5696 from dotty-staging/improve-quote-printer
Print quotes with ' rather than Expr.apply
2 parents 0b5d67f + bb50f8b commit 9333e77

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

compiler/src/dotty/tools/dotc/printing/RefinedPrinter.scala

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,8 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
318318
if (name.isTypeName) typeText(txt)
319319
else txt
320320
case tree @ Select(qual, name) =>
321-
if (qual.isType) toTextLocal(qual) ~ "#" ~ typeText(toText(name))
321+
if (tree.hasType && tree.symbol == defn.QuotedExpr_~ || tree.symbol == defn.QuotedType_~) keywordStr("~(") ~ toTextLocal(qual) ~ keywordStr(")")
322+
else if (qual.isType) toTextLocal(qual) ~ "#" ~ typeText(toText(name))
322323
else toTextLocal(qual) ~ ("." ~ nameIdText(tree) provided name != nme.CONSTRUCTOR)
323324
case tree: This =>
324325
optDotPrefix(tree) ~ keywordStr("this") ~ idText(tree)
@@ -329,6 +330,10 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
329330
changePrec (GlobalPrec) {
330331
keywordStr("throw ") ~ toText(args.head)
331332
}
333+
else if (fun.hasType && fun.symbol == defn.QuotedExpr_apply)
334+
keywordStr("'{") ~ toTextGlobal(args, ", ") ~ keywordStr("}")
335+
else if (fun.hasType && fun.symbol == defn.QuotedType_apply)
336+
keywordStr("'[") ~ toTextGlobal(args, ", ") ~ keywordStr("]")
332337
else
333338
toTextLocal(fun) ~ "(" ~ toTextGlobal(args, ", ") ~ ")"
334339
case tree: TypeApply =>
@@ -558,7 +563,7 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
558563
keywordStr("try ") ~ toText(expr) ~ " " ~ keywordStr("catch") ~ " {" ~ toText(handler) ~ "}" ~ optText(finalizer)(keywordStr(" finally ") ~ _)
559564
}
560565
case Quote(tree) =>
561-
if (tree.isType) "'[" ~ toTextGlobal(tree) ~ "]" else "'(" ~ toTextGlobal(tree) ~ ")"
566+
if (tree.isType) keywordStr("'[") ~ toTextGlobal(tree) ~ keywordStr("]") else keywordStr("'{") ~ toTextGlobal(tree) ~ keywordStr("}")
562567
case Thicket(trees) =>
563568
"Thicket {" ~~ toTextGlobal(trees, "\n") ~~ "}"
564569
case _ =>

0 commit comments

Comments
 (0)