aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeComparer.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-11-16 09:54:10 +0100
committerMartin Odersky <odersky@gmail.com>2015-11-17 21:30:21 +0100
commit7c6870e4d5ac3a9206aed16633c5f0a92fc97b5d (patch)
treed1041bdd526ad8d8aaf89748d4f5a7f9626dbd7e /src/dotty/tools/dotc/core/TypeComparer.scala
parentbd76fbaec088de73deeb443681071bd311624dc1 (diff)
downloaddotty-7c6870e4d5ac3a9206aed16633c5f0a92fc97b5d.tar.gz
dotty-7c6870e4d5ac3a9206aed16633c5f0a92fc97b5d.tar.bz2
dotty-7c6870e4d5ac3a9206aed16633c5f0a92fc97b5d.zip
Compensate for getter transform in isSubType test
Getters transform `T` to `=> T`. This means that `=> T <: T` might need to be true after getters. Observed in the wild tree checking t938.scala after getters.
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeComparer.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeComparer.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/TypeComparer.scala b/src/dotty/tools/dotc/core/TypeComparer.scala
index 2045de3ce..66965f427 100644
--- a/src/dotty/tools/dotc/core/TypeComparer.scala
+++ b/src/dotty/tools/dotc/core/TypeComparer.scala
@@ -488,6 +488,9 @@ class TypeComparer(initctx: Context) extends DotClass with ConstraintHandling {
case _ => tp2 isRef ObjectClass
}
compareJavaArray
+ case tp1: ExprType if ctx.phase.id >= ctx.gettersPhase.id =>
+ // getters might have converted T to => T, need to compensate.
+ isSubType(tp1.widenExpr, tp2)
case _ =>
false
}