@@ -616,13 +616,11 @@ class CheckCaptures extends Recheck, SymTransformer:
616
616
curEnv = Env (curEnv.owner, nestedInOwner = true , CaptureSet .Var (), isBoxed = false , if boxed then null else curEnv)
617
617
618
618
try
619
- val (eargs, eres) = expected.dealias match
619
+ val (eargs, eres) = expected.dealias.stripCapturing match
620
620
case defn.FunctionOf (eargs, eres, _, _) => (eargs, eres)
621
- case expected => expected.stripped match
622
- case expected : MethodType => (expected.paramInfos, expected.resType)
623
- case expected @ RefinedType (_, _, rinfo : MethodType ) if defn.isFunctionType(expected) => (rinfo.paramInfos, rinfo.resType)
624
- case _ =>
625
- (aargs.map(_ => WildcardType ), WildcardType )
621
+ case expected : MethodType => (expected.paramInfos, expected.resType)
622
+ case expected @ RefinedType (_, _, rinfo : MethodType ) if defn.isFunctionType(expected) => (rinfo.paramInfos, rinfo.resType)
623
+ case _ => (aargs.map(_ => WildcardType ), WildcardType )
626
624
val aargs1 = aargs.zipWithConserve(eargs) { (aarg, earg) => adapt(aarg, earg, ! covariant) }
627
625
val ares1 = adapt(ares, eres, covariant)
628
626
@@ -647,6 +645,7 @@ class CheckCaptures extends Recheck, SymTransformer:
647
645
try
648
646
val eres = expected.dealias.stripCapturing match
649
647
case RefinedType (_, _, rinfo : PolyType ) => rinfo.resType
648
+ case expected : PolyType => expected.resType
650
649
case _ => WildcardType
651
650
652
651
val ares1 = adapt(ares, eres, covariant)
0 commit comments