diff options
author | Martin Odersky <odersky@gmail.com> | 2016-06-29 19:09:43 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-07-11 13:34:59 +0200 |
commit | 4bf43f82c88dbeb0578e289b37ce1a7580aa22f2 (patch) | |
tree | 41c4483ffcf4e93e8d19f4ec89206a848738eb08 /src/dotty/tools/dotc/printing | |
parent | 178e90e441481364f19163a9dad624a4d859fb1b (diff) | |
download | dotty-4bf43f82c88dbeb0578e289b37ce1a7580aa22f2.tar.gz dotty-4bf43f82c88dbeb0578e289b37ce1a7580aa22f2.tar.bz2 dotty-4bf43f82c88dbeb0578e289b37ce1a7580aa22f2.zip |
Turn on new hk scheme
For the moment under newHK flag.
- avoid crasher in derivedTypeParams (NamedTypes don't always have symbols)
- Revise logic in type comparer for new HK scheme
Diffstat (limited to 'src/dotty/tools/dotc/printing')
-rw-r--r-- | src/dotty/tools/dotc/printing/PlainPrinter.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/printing/RefinedPrinter.scala | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/printing/PlainPrinter.scala b/src/dotty/tools/dotc/printing/PlainPrinter.scala index 59f1608db..20bf8b407 100644 --- a/src/dotty/tools/dotc/printing/PlainPrinter.scala +++ b/src/dotty/tools/dotc/printing/PlainPrinter.scala @@ -50,7 +50,7 @@ class PlainPrinter(_ctx: Context) extends Printer { homogenize(tp1) & homogenize(tp2) case OrType(tp1, tp2) => homogenize(tp1) | homogenize(tp2) - case tp @ TypeRef(_, tpnme.hkApply) => + case tp @ TypeRef(_, tpnme.hkApplyOBS) => val tp1 = tp.reduceProjection if (tp1 eq tp) tp else homogenize(tp1) case tp: LazyRef => diff --git a/src/dotty/tools/dotc/printing/RefinedPrinter.scala b/src/dotty/tools/dotc/printing/RefinedPrinter.scala index 1020468a9..b5bc17c0c 100644 --- a/src/dotty/tools/dotc/printing/RefinedPrinter.scala +++ b/src/dotty/tools/dotc/printing/RefinedPrinter.scala @@ -116,7 +116,8 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) { if (defn.isFunctionClass(cls)) return toTextFunction(args) if (defn.isTupleClass(cls)) return toTextTuple(args) return (toTextLocal(tycon) ~ "[" ~ Text(args map argText, ", ") ~ "]").close - case tp @ TypeLambda(variances, argBoundss, body) => + case tp @ TypeLambda(argBoundss, body) => + val variances = tp.classSymbol.typeParams.map(_.variance) val prefix = ((('X' - 'A') + lambdaNestingLevel) % 26 + 'A').toChar val paramNames = variances.indices.toList.map(prefix.toString + _) val instantiate = new TypeMap { |