@@ -690,31 +690,14 @@ class TypeComparer(initctx: Context) extends DotClass {
690
690
def compareRefined : Boolean = tp1.widen match {
691
691
case tp1 @ RefinedType (parent1, name1) if name1 == name2 && name1.isTypeName =>
692
692
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) && {
695
695
val saved = pendingRefinedBases
696
696
try {
697
697
addPendingName(name1, tp1, tp2)
698
698
isSubType(parent1, parent2)
699
699
} finally pendingRefinedBases = saved
700
700
}
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
- }
718
701
case _ =>
719
702
compareRefinedSlow
720
703
}
0 commit comments