@@ -1691,7 +1691,7 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling
1691
1691
def paramBounds (tparam : Symbol ): TypeBounds =
1692
1692
tparam.info.substApprox(tparams2.asInstanceOf [List [Symbol ]], args2).bounds
1693
1693
1694
- /** Test all arguments. Hard argument tests (according to isHard ) are deferred in
1694
+ /** Test all arguments. Incomplete argument tests (according to isIncomplete ) are deferred in
1695
1695
* the first run and picked up in the second.
1696
1696
*/
1697
1697
def recurArgs (args1 : List [Type ], args2 : List [Type ], tparams2 : List [ParamInfo ],
@@ -1714,8 +1714,8 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling
1714
1714
* comparison will instantiate or constrain type variables first.
1715
1715
*/
1716
1716
def isIncomplete (arg1 : Type , arg2 : Type ): Boolean =
1717
- val arg1d = arg1.stripped
1718
- val arg2d = arg2.stripped
1717
+ val arg1d = arg1.strippedDealias
1718
+ val arg2d = arg2.strippedDealias
1719
1719
(v >= 0 ) && (arg1d.isInstanceOf [AndType ] || arg2d.isInstanceOf [OrType ])
1720
1720
||
1721
1721
(v <= 0 ) && (arg1d.isInstanceOf [OrType ] || arg2d.isInstanceOf [AndType ])
@@ -1810,7 +1810,7 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling
1810
1810
val rest1 = args1.tail
1811
1811
if ! canDefer
1812
1812
|| rest1.isEmpty && deferred1.isEmpty
1813
- // skip the hardness test if this is the last argument and no previous arguments were hard
1813
+ // skip the incompleteness test if this is the last argument and no previous argument tests were incomplete
1814
1814
|| ! isIncomplete(arg1, arg2)
1815
1815
then
1816
1816
isSubArg(arg1, arg2)
0 commit comments