aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/printing/PlainPrinter.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-04-06 13:26:07 +0200
committerMartin Odersky <odersky@gmail.com>2015-04-07 23:53:59 +0200
commit3b53a8300f09c11a9fc889dbe59061a6941d21cc (patch)
treec77b258f5195c95f0dc7f335666677b935edcd33 /src/dotty/tools/dotc/printing/PlainPrinter.scala
parent26881a91ca838708329f6ebdb82b603823a0ad25 (diff)
downloaddotty-3b53a8300f09c11a9fc889dbe59061a6941d21cc.tar.gz
dotty-3b53a8300f09c11a9fc889dbe59061a6941d21cc.tar.bz2
dotty-3b53a8300f09c11a9fc889dbe59061a6941d21cc.zip
Homogenize #Apply projections.
Simplify fully applied #Apply projections before comparing trees. Such projections are now (correctly) simplified on unpickling but persist in the original tree before pickling. The discrepancy was uncovered by the last commit.
Diffstat (limited to 'src/dotty/tools/dotc/printing/PlainPrinter.scala')
-rw-r--r--src/dotty/tools/dotc/printing/PlainPrinter.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/printing/PlainPrinter.scala b/src/dotty/tools/dotc/printing/PlainPrinter.scala
index 8669db9a0..ce33132ab 100644
--- a/src/dotty/tools/dotc/printing/PlainPrinter.scala
+++ b/src/dotty/tools/dotc/printing/PlainPrinter.scala
@@ -43,7 +43,9 @@ class PlainPrinter(_ctx: Context) extends Printer {
case tp: TypeVar if tp.isInstantiated => homogenize(tp.instanceOpt)
case AndType(tp1, tp2) => homogenize(tp1) & homogenize(tp2)
case OrType(tp1, tp2) => homogenize(tp1) | homogenize(tp2)
- case _ => tp
+ case _ =>
+ val tp1 = tp.simplifyApply
+ if (tp1 eq tp) tp else homogenize(tp1)
}
else tp