@@ -434,8 +434,7 @@ class TypeComparer(initctx: Context) extends DotClass with ConstraintHandling {
434
434
(tp2.variance > 0 && tp1.variance >= 0 || (lo2 eq NothingType ) || isSubType(lo2, lo1)) &&
435
435
(tp2.variance < 0 && tp1.variance <= 0 || (hi2 eq AnyType ) || isSubType(hi1, hi2))
436
436
case tp1 : ClassInfo =>
437
- val tt = tp1.typeRef
438
- isSubType(lo2, tt) && isSubType(tt, hi2)
437
+ tp2 contains tp1
439
438
case _ =>
440
439
false
441
440
}
@@ -1063,13 +1062,13 @@ class TypeComparer(initctx: Context) extends DotClass with ConstraintHandling {
1063
1062
case tp1 : TypeBounds =>
1064
1063
tp2 match {
1065
1064
case tp2 : TypeBounds => tp1 & tp2
1066
- case tp2 : ClassInfo if tp1 contains tp2.typeRef => tp2
1065
+ case tp2 : ClassInfo if tp1 contains tp2 => tp2
1067
1066
case _ => mergeConflict(tp1, tp2)
1068
1067
}
1069
1068
case tp1 : ClassInfo =>
1070
1069
tp2 match {
1071
1070
case tp2 : ClassInfo if tp1.cls eq tp2.cls => tp1.derivedClassInfo(tp1.prefix & tp2.prefix)
1072
- case tp2 : TypeBounds if tp2 contains tp1.typeRef => tp1
1071
+ case tp2 : TypeBounds if tp2 contains tp1 => tp1
1073
1072
case _ => mergeConflict(tp1, tp2)
1074
1073
}
1075
1074
case tp1 @ MethodType (names1, formals1) =>
@@ -1122,13 +1121,13 @@ class TypeComparer(initctx: Context) extends DotClass with ConstraintHandling {
1122
1121
case tp1 : TypeBounds =>
1123
1122
tp2 match {
1124
1123
case tp2 : TypeBounds => tp1 | tp2
1125
- case tp2 : ClassInfo if tp1 contains tp2.typeRef => tp1
1124
+ case tp2 : ClassInfo if tp1 contains tp2 => tp1
1126
1125
case _ => mergeConflict(tp1, tp2)
1127
1126
}
1128
1127
case tp1 : ClassInfo =>
1129
1128
tp2 match {
1130
1129
case tp2 : ClassInfo if tp1.cls eq tp2.cls => tp1.derivedClassInfo(tp1.prefix | tp2.prefix)
1131
- case tp2 : TypeBounds if tp2 contains tp1.typeRef => tp2
1130
+ case tp2 : TypeBounds if tp2 contains tp1 => tp2
1132
1131
case _ => mergeConflict(tp1, tp2)
1133
1132
}
1134
1133
case tp1 @ MethodType (names1, formals1) =>
0 commit comments