@@ -325,7 +325,7 @@ class TypeComparer(initctx: Context) extends ConstraintHandling {
325325 true
326326 }
327327 def compareTypeParamRef =
328- ctx.mode.is( Mode . TypevarsMissContext ) ||
328+ assumedTrue(tp1 ) ||
329329 isSubTypeWhenFrozen(bounds(tp1).hi, tp2) || {
330330 if (canConstrain(tp1) && ! approx.high)
331331 addConstraint(tp1, tp2, fromBelow = false ) && flagNothingBound
@@ -428,7 +428,7 @@ class TypeComparer(initctx: Context) extends ConstraintHandling {
428428 thirdTryNamed(tp2)
429429 case tp2 : TypeParamRef =>
430430 def compareTypeParamRef =
431- (ctx.mode is Mode . TypevarsMissContext ) || {
431+ assumedTrue(tp2 ) || {
432432 val alwaysTrue =
433433 // The following condition is carefully formulated to catch all cases
434434 // where the subtype relation is true without needing to add a constraint
@@ -787,9 +787,8 @@ class TypeComparer(initctx: Context) extends ConstraintHandling {
787787 tl => tparams1.map(tparam => tl.integrate(tparams, tparam.paramInfo).bounds),
788788 tl => tp1base.tycon.appliedTo(args1.take(lengthDiff) ++
789789 tparams1.indices.toList.map(tl.paramRefs(_))))
790- (ctx.mode.is(Mode .TypevarsMissContext ) ||
791- tryInstantiate(tycon2, tycon1.ensureLambdaSub)) &&
792- recur(tp1, tycon1.appliedTo(args2))
790+ (assumedTrue(tycon2) || tryInstantiate(tycon2, tycon1.ensureLambdaSub)) &&
791+ recur(tp1, tycon1.appliedTo(args2))
793792 }
794793 }
795794 case _ => false
0 commit comments