aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/printing/PlainPrinter.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-06-05 18:49:36 +0200
committerMartin Odersky <odersky@gmail.com>2015-06-06 11:05:27 +0200
commit080ed2f3d8b5d8fd249691aacc0fe4f9596bb772 (patch)
tree1fac280aa6832c115037e04178d791cc92f9de25 /src/dotty/tools/dotc/printing/PlainPrinter.scala
parenteaf3095494af2b0ea028452450a6af44e27f5284 (diff)
downloaddotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.tar.gz
dotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.tar.bz2
dotty-080ed2f3d8b5d8fd249691aacc0fe4f9596bb772.zip
Split RefinedThis and SkolemType
SkolemTypes need to behave differently form RefinedThis types in TypeMap and TypeAccumulator. For skolem types these should follow through to the underlying type. For RefinedThis types, these need to do nothing, in order not to start an infinite recursion.
Diffstat (limited to 'src/dotty/tools/dotc/printing/PlainPrinter.scala')
-rw-r--r--src/dotty/tools/dotc/printing/PlainPrinter.scala9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/printing/PlainPrinter.scala b/src/dotty/tools/dotc/printing/PlainPrinter.scala
index 12c94677f..de1a439cf 100644
--- a/src/dotty/tools/dotc/printing/PlainPrinter.scala
+++ b/src/dotty/tools/dotc/printing/PlainPrinter.scala
@@ -228,11 +228,10 @@ class PlainPrinter(_ctx: Context) extends Printer {
toText(value)
case MethodParam(mt, idx) =>
nameString(mt.paramNames(idx))
- case sk: SkolemType =>
- sk.binder match {
- case rt: RefinedType => s"${nameString(rt.typeSymbol)}{...}.this"
- case _ => "<skolem>"
- }
+ case tp: RefinedThis =>
+ s"${nameString(tp.binder.typeSymbol)}{...}.this"
+ case tp: SkolemType =>
+ "<skolem>" // !!! todo refine with unique identifier.
}
}