Skip to content

Commit f6ebe1e

Browse files
committed
Take off the training wheels for refined type comparisons.
1 parent 8329573 commit f6ebe1e

File tree

1 file changed

+2
-19
lines changed

1 file changed

+2
-19
lines changed

src/dotty/tools/dotc/core/TypeComparer.scala

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -690,31 +690,14 @@ class TypeComparer(initctx: Context) extends DotClass {
690690
def compareRefined: Boolean = tp1.widen match {
691691
case tp1 @ RefinedType(parent1, name1) if name1 == name2 && name1.isTypeName =>
692692
normalizedInfo(tp1) match {
693-
case bounds1 @ TypeBounds(lo1, hi1) =>
694-
val fastResult = isSubType(bounds1, tp2.refinedInfo) && {
693+
case bounds1 @ TypeBounds(lo1, hi1) if lo1 eq hi1 =>
694+
isSubType(bounds1, tp2.refinedInfo) && {
695695
val saved = pendingRefinedBases
696696
try {
697697
addPendingName(name1, tp1, tp2)
698698
isSubType(parent1, parent2)
699699
} finally pendingRefinedBases = saved
700700
}
701-
if (lo1 eq hi1) fastResult
702-
else {
703-
val slowResult = compareRefinedSlow
704-
if (fastResult != slowResult) {
705-
println(i"!!! difference for $tp1 <: $tp2, fast = $fastResult, ${memberMatches(tp1.member(name1))}, slow = $slowResult ${lo1.getClass} ${hi1.getClass}")
706-
println(TypeComparer.explained(implicit ctx => tp1 <:< parent2))
707-
val tp1r = rebaseQual(tp1, name1)
708-
println(s"rebased = $tp1r / ${narrowRefined(tp1r)}")
709-
val mbr = narrowRefined(tp1r) member name1
710-
println(i"member = $mbr : ${mbr.info} / ${mbr.getClass}")
711-
val mbr2 = (tp1r) member name1
712-
println(i"member = $mbr2 : ${mbr2.info} / ${mbr2.getClass}")
713-
println(TypeComparer.explained(implicit ctx => mbr.info <:< tp2.refinedInfo))
714-
compareRefinedSlow
715-
}
716-
slowResult
717-
}
718701
case _ =>
719702
compareRefinedSlow
720703
}

0 commit comments

Comments
 (0)