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.scala26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/dotty/tools/dotc/printing/RefinedPrinter.scala b/src/dotty/tools/dotc/printing/RefinedPrinter.scala
index 6076ca787..d9e248e40 100644
--- a/src/dotty/tools/dotc/printing/RefinedPrinter.scala
+++ b/src/dotty/tools/dotc/printing/RefinedPrinter.scala
@@ -180,7 +180,8 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
def annotText(tree: untpd.Tree): Text = "@" ~ constrText(tree) // DD
- def useSymbol = ctx.isAfterTyper(ctx.phase) && tree.hasType && tree.symbol.exists
+ def useSymbol =
+ tree.hasType && tree.symbol.exists && ctx.settings.YprintSyms.value
def modText(mods: untpd.Modifiers, kw: String): Text = { // DD
val suppressKw = if (ownerIsClass) mods is ParamAndLocal else mods is Param
@@ -209,6 +210,9 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
if (ctx.settings.uniqid.value && tree.hasType && tree.symbol.exists) s"#${tree.symbol.id}" else ""
}
+ def nameIdText(tree: untpd.NameTree): Text =
+ toText(tree.name) ~ idText(tree)
+
import untpd._
var txt: Text = tree match {
@@ -219,8 +223,8 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
case tp: NamedType if name != nme.WILDCARD => toTextPrefix(tp.prefix) ~ selectionString(tp)
case _ => toText(name)
}
- case Select(qual, name) =>
- toTextLocal(qual) ~ ("." ~ toText(name) provided name != nme.CONSTRUCTOR)
+ case tree @ Select(qual, name) =>
+ toTextLocal(qual) ~ ("." ~ nameIdText(tree) provided name != nme.CONSTRUCTOR)
case This(name) =>
optDotPrefix(name) ~ "this" ~ idText(tree)
case Super(This(name), mix) =>
@@ -297,15 +301,15 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
toTextLocal(extractor) ~
"(" ~ toTextGlobal(patterns, ", ") ~ ")" ~
("(" ~ toTextGlobal(implicits, ", ") ~ ")" provided implicits.nonEmpty)
- case ValDef(mods, name, tpt, rhs) =>
+ case tree @ ValDef(mods, name, tpt, rhs) =>
dclTextOr {
- modText(mods, if (mods is Mutable) "var" else "val") ~~ toText(name) ~
+ modText(mods, if (mods is Mutable) "var" else "val") ~~ nameIdText(tree) ~
optAscription(tpt)
} ~ optText(rhs)(" = " ~ _)
- case DefDef(mods, name, tparams, vparamss, tpt, rhs) =>
+ case tree @ DefDef(mods, name, tparams, vparamss, tpt, rhs) =>
atOwner(tree) {
dclTextOr {
- val first = modText(mods, "def") ~~ toText(name) ~ tparamsText(tparams)
+ val first = modText(mods, "def") ~~ nameIdText(tree) ~ tparamsText(tparams)
addVparamssText(first, vparamss) ~ optAscription(tpt)
} ~ optText(rhs)(" = " ~ _)
}
@@ -314,11 +318,11 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
def typeDefText(rhsText: Text) =
dclTextOr {
val rhsText1 = if (tree.hasType) toText(tree.symbol.info) else rhsText
- modText(mods, "type") ~~ toText(name) ~ tparamsText(tree.tparams) ~ rhsText1
+ modText(mods, "type") ~~ nameIdText(tree) ~ tparamsText(tree.tparams) ~ rhsText1
}
rhs match {
case impl: Template =>
- modText(mods, if (mods is Trait) "trait" else "class") ~~ toText(name) ~~ idText(tree) ~ toText(impl) ~
+ modText(mods, if (mods is Trait) "trait" else "class") ~~ nameIdText(tree) ~ toText(impl) ~
(if (tree.hasType && ctx.settings.verbose.value) s"[decls = ${tree.symbol.info.decls}]" else "")
case rhs: TypeBoundsTree =>
typeDefText(toText(rhs))
@@ -367,9 +371,9 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
"<empty>"
case TypedSplice(t) =>
toText(t)
- case ModuleDef(mods, name, impl) =>
+ case tree @ ModuleDef(mods, name, impl) =>
atOwner(tree) {
- modText(mods, "object") ~~ toText(name) ~ toText(impl)
+ modText(mods, "object") ~~ nameIdText(tree) ~ toText(impl)
}
case SymbolLit(str) =>
"'" + str