@@ -1607,7 +1607,7 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling
16071607 def paramBounds (tparam : Symbol ): TypeBounds =
16081608 tparam.info.substApprox(tparams2.asInstanceOf [List [Symbol ]], args2).bounds
16091609
1610- /** Test all arguments. Hard argument tests (according to isHard ) are deferred in
1610+ /** Test all arguments. Incomplete argument tests (according to isIncomplete ) are deferred in
16111611 * the first run and picked up in the second.
16121612 */
16131613 def recurArgs (args1 : List [Type ], args2 : List [Type ], tparams2 : List [ParamInfo ],
@@ -1630,8 +1630,8 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling
16301630 * comparison will instantiate or constrain type variables first.
16311631 */
16321632 def isIncomplete (arg1 : Type , arg2 : Type ): Boolean =
1633- val arg1d = arg1.stripped
1634- val arg2d = arg2.stripped
1633+ val arg1d = arg1.strippedDealias
1634+ val arg2d = arg2.strippedDealias
16351635 (v >= 0 ) && (arg1d.isInstanceOf [AndType ] || arg2d.isInstanceOf [OrType ])
16361636 ||
16371637 (v <= 0 ) && (arg1d.isInstanceOf [OrType ] || arg2d.isInstanceOf [AndType ])
@@ -1726,7 +1726,7 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling
17261726 val rest1 = args1.tail
17271727 if ! canDefer
17281728 || rest1.isEmpty && deferred1.isEmpty
1729- // skip the hardness test if this is the last argument and no previous arguments were hard
1729+ // skip the incompleteness test if this is the last argument and no previous argument tests were incomplete
17301730 || ! isIncomplete(arg1, arg2)
17311731 then
17321732 isSubArg(arg1, arg2)
0 commit comments