aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/printing/PlainPrinter.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-05-07 18:26:37 +0200
committerSamuel Gruetter <samuel.gruetter@epfl.ch>2014-05-20 13:38:48 +0200
commitf7910005038c188e573e8d1a42ff3e31c69c90c1 (patch)
tree936ade866ca937ae2fda21cbc6187f0dfc34dca9 /src/dotty/tools/dotc/printing/PlainPrinter.scala
parentc2d5246bdb33d60d3eaff62a539d01368124d859 (diff)
downloaddotty-f7910005038c188e573e8d1a42ff3e31c69c90c1.tar.gz
dotty-f7910005038c188e573e8d1a42ff3e31c69c90c1.tar.bz2
dotty-f7910005038c188e573e8d1a42ff3e31c69c90c1.zip
Better printing of anonymous classes.
Used to be just $anon, now is `Ps { ... }`, where `Ps` are the instantiated parents of the anonymous class.
Diffstat (limited to 'src/dotty/tools/dotc/printing/PlainPrinter.scala')
-rw-r--r--src/dotty/tools/dotc/printing/PlainPrinter.scala7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/printing/PlainPrinter.scala b/src/dotty/tools/dotc/printing/PlainPrinter.scala
index 308470885..3a322648a 100644
--- a/src/dotty/tools/dotc/printing/PlainPrinter.scala
+++ b/src/dotty/tools/dotc/printing/PlainPrinter.scala
@@ -251,22 +251,21 @@ class PlainPrinter(_ctx: Context) extends Printer {
case sym: Symbol if !sym.isCompleted => "this: ? =>"
case _ => "this: " ~ atPrec(InfixPrec) { toText(tp.selfType) } ~ " =>"
}
- val parentsText = Text(cparents.map(p =>
- toTextLocal(reconstituteParent(cls, p))), " with ")
val trueDecls = otherDecls.filterNot(treatAsTypeArg)
val declsText =
if (trueDecls.isEmpty || !ctx.settings.debug.value) Text()
else dclsText(trueDecls)
- tparamsText ~ " extends " ~ parentsText ~ "{" ~ selfText ~ declsText ~
+ tparamsText ~ " extends " ~ toTextParents(tp.parents) ~ "{" ~ selfText ~ declsText ~
"} at " ~ preText
case _ =>
": " ~ toTextGlobal(tp)
}
}
+ protected def toTextParents(parents: List[Type]): Text = Text(parents.map(toTextLocal), " with ")
+
protected def treatAsTypeParam(sym: Symbol): Boolean = false
protected def treatAsTypeArg(sym: Symbol): Boolean = false
- protected def reconstituteParent(cls: ClassSymbol, parent: Type): Type = parent
/** String representation of symbol's kind. */
def kindString(sym: Symbol): String = {