diff options
author | Martin Odersky <odersky@gmail.com> | 2015-07-22 16:03:14 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-09-18 18:12:17 +0200 |
commit | 5ee7b9ed189d77fbf864c5558841f53750db2c30 (patch) | |
tree | 83693e4696eefaacceb85603dcde71c2b250e113 | |
parent | d1cd3d738213c08242cae66623edba8e0102574c (diff) | |
download | dotty-5ee7b9ed189d77fbf864c5558841f53750db2c30.tar.gz dotty-5ee7b9ed189d77fbf864c5558841f53750db2c30.tar.bz2 dotty-5ee7b9ed189d77fbf864c5558841f53750db2c30.zip |
Avoid orphan RefinedThis types in glb/lub.
-rw-r--r-- | src/dotty/tools/dotc/core/TypeComparer.scala | 4 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/tasty/TreePickler.scala | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/TypeComparer.scala b/src/dotty/tools/dotc/core/TypeComparer.scala index c9b1e8794..fce803c56 100644 --- a/src/dotty/tools/dotc/core/TypeComparer.scala +++ b/src/dotty/tools/dotc/core/TypeComparer.scala @@ -929,7 +929,7 @@ class TypeComparer(initctx: Context) extends DotClass with ConstraintHandling { tp1.derivedRefinedType( tp1.parent & tp2.parent, tp1.refinedName, - tp1.refinedInfo & tp2.refinedInfo) + tp1.refinedInfo & tp2.refinedInfo.substRefinedThis(tp2, RefinedThis(tp1))) case _ => NoType } @@ -995,7 +995,7 @@ class TypeComparer(initctx: Context) extends DotClass with ConstraintHandling { tp1.derivedRefinedType( tp1.parent | tp2.parent, tp1.refinedName, - tp1.refinedInfo | tp2.refinedInfo) + tp1.refinedInfo | tp2.refinedInfo.substRefinedThis(tp2, RefinedThis(tp1))) case _ => NoType } diff --git a/src/dotty/tools/dotc/core/tasty/TreePickler.scala b/src/dotty/tools/dotc/core/tasty/TreePickler.scala index d50817b60..58697c196 100644 --- a/src/dotty/tools/dotc/core/tasty/TreePickler.scala +++ b/src/dotty/tools/dotc/core/tasty/TreePickler.scala @@ -201,7 +201,7 @@ class TreePickler(pickler: TastyPickler) { case tpe: RefinedThis => writeByte(REFINEDthis) val binderAddr = pickledTypes.get(tpe.binder) - assert(binderAddr != null) + assert(binderAddr != null, tpe.binder) writeRef(binderAddr.asInstanceOf[Addr]) case tpe: SkolemType => pickleType(tpe.info) |