diff options
author | Martin Odersky <odersky@gmail.com> | 2015-04-06 13:26:07 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-04-07 23:53:59 +0200 |
commit | 3b53a8300f09c11a9fc889dbe59061a6941d21cc (patch) | |
tree | c77b258f5195c95f0dc7f335666677b935edcd33 /src/dotty/tools/dotc/printing/PlainPrinter.scala | |
parent | 26881a91ca838708329f6ebdb82b603823a0ad25 (diff) | |
download | dotty-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.scala | 4 |
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 |