@@ -616,13 +616,11 @@ class CheckCaptures extends Recheck, SymTransformer:
616616 curEnv = Env (curEnv.owner, nestedInOwner = true , CaptureSet .Var (), isBoxed = false , if boxed then null else curEnv)
617617
618618 try
619- val (eargs, eres) = expected.dealias match
619+ val (eargs, eres) = expected.dealias.stripCapturing match
620620 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 )
626624 val aargs1 = aargs.zipWithConserve(eargs) { (aarg, earg) => adapt(aarg, earg, ! covariant) }
627625 val ares1 = adapt(ares, eres, covariant)
628626
@@ -647,6 +645,7 @@ class CheckCaptures extends Recheck, SymTransformer:
647645 try
648646 val eres = expected.dealias.stripCapturing match
649647 case RefinedType (_, _, rinfo : PolyType ) => rinfo.resType
648+ case expected : PolyType => expected.resType
650649 case _ => WildcardType
651650
652651 val ares1 = adapt(ares, eres, covariant)
0 commit comments