diff options
author | Martin Odersky <odersky@gmail.com> | 2014-06-13 09:36:47 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-06-13 09:36:47 +0200 |
commit | cfd13f731c6757005379c5ad5ad51abfe3282215 (patch) | |
tree | fe760e4b53fd1e2a11b239ec1fe2435d0da5822a | |
parent | 9a6a4e8ca400835643e839cd98bb5581cbf97ab9 (diff) | |
download | dotty-cfd13f731c6757005379c5ad5ad51abfe3282215.tar.gz dotty-cfd13f731c6757005379c5ad5ad51abfe3282215.tar.bz2 dotty-cfd13f731c6757005379c5ad5ad51abfe3282215.zip |
Fix to printing type parameters.
Printing a type parameter reference `A#T` now only reduces to `T` if
`A` is some `B.this.type`.
-rw-r--r-- | src/dotty/tools/dotc/core/transform/Erasure.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/printing/RefinedPrinter.scala | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/transform/Erasure.scala b/src/dotty/tools/dotc/core/transform/Erasure.scala index f2e3355fb..da14f72d1 100644 --- a/src/dotty/tools/dotc/core/transform/Erasure.scala +++ b/src/dotty/tools/dotc/core/transform/Erasure.scala @@ -247,7 +247,7 @@ class Erasure(isJava: Boolean, isSemi: Boolean, isConstructor: Boolean, wildcard sigName(tp.optBounds) case _ => val erased = this(tp) - assert(erased ne tp) + assert(erased ne tp, tp) sigName(erased) } } diff --git a/src/dotty/tools/dotc/printing/RefinedPrinter.scala b/src/dotty/tools/dotc/printing/RefinedPrinter.scala index eb6b151b4..1fc6fbee0 100644 --- a/src/dotty/tools/dotc/printing/RefinedPrinter.scala +++ b/src/dotty/tools/dotc/printing/RefinedPrinter.scala @@ -110,9 +110,9 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) { } case tp: TypeRef => if ((tp.symbol is TypeParam | TypeArgument) && !ctx.phase.erasedTypes) { - return tp.info match { - case TypeAlias(hi) => toText(hi) - case _ => nameString(tp.symbol) + tp.info match { + case TypeAlias(hi) => return toText(hi) + case _ => if (tp.prefix.isInstanceOf[ThisType]) return nameString(tp.symbol) } } else if (tp.symbol.isAnonymousClass) |