@@ -195,7 +195,7 @@ class CheckCaptures extends Recheck, SymTransformer:
195195 capt.println(i " solving $t" )
196196 refs.solve()
197197 traverse(parent)
198- case t @ RefinedType (_, nme.apply, rinfo) if defn.isFunctionType(t ) =>
198+ case t @ defn.RefinedFunctionOf (rinfo ) =>
199199 traverse(rinfo)
200200 case tp : TypeVar =>
201201 case tp : TypeRef =>
@@ -302,8 +302,8 @@ class CheckCaptures extends Recheck, SymTransformer:
302302 t
303303 case _ =>
304304 val t1 = t match
305- case t @ RefinedType (parent, rname, rinfo : MethodType ) if defn.isFunctionType(t ) =>
306- t.derivedRefinedType(parent, rname , this (rinfo))
305+ case t @ defn. RefinedFunctionOf ( rinfo : MethodType ) =>
306+ t.derivedRefinedType(t. parent, t.refinedName , this (rinfo))
307307 case _ =>
308308 mapOver(t)
309309 if variance > 0 then t1
@@ -845,7 +845,7 @@ class CheckCaptures extends Recheck, SymTransformer:
845845 case actual @ AppliedType (tycon, args) if defn.isNonRefinedFunction(actual) =>
846846 adaptFun(actual, args.init, args.last, expected, covariant, insertBox,
847847 (aargs1, ares1) => actual.derivedAppliedType(tycon, aargs1 :+ ares1))
848- case actual @ RefinedType (_, _, rinfo : MethodType ) if defn.isFunctionType(actual ) =>
848+ case actual @ defn. RefinedFunctionOf ( rinfo : MethodType ) =>
849849 // TODO Find a way to combine handling of generic and dependent function types (here and elsewhere)
850850 adaptFun(actual, rinfo.paramInfos, rinfo.resType, expected, covariant, insertBox,
851851 (aargs1, ares1) =>
@@ -855,11 +855,11 @@ class CheckCaptures extends Recheck, SymTransformer:
855855 adaptFun(actual, actual.paramInfos, actual.resType, expected, covariant, insertBox,
856856 (aargs1, ares1) =>
857857 actual.derivedLambdaType(paramInfos = aargs1, resType = ares1))
858- case actual @ RefinedType (p, nme, rinfo : PolyType ) if defn.isFunctionType(actual ) =>
858+ case actual @ defn. RefinedFunctionOf ( rinfo : PolyType ) =>
859859 adaptTypeFun(actual, rinfo.resType, expected, covariant, insertBox,
860860 ares1 =>
861861 val rinfo1 = rinfo.derivedLambdaType(rinfo.paramNames, rinfo.paramInfos, ares1)
862- val actual1 = actual.derivedRefinedType(p, nme , rinfo1)
862+ val actual1 = actual.derivedRefinedType(actual.parent, actual.refinedName , rinfo1)
863863 actual1
864864 )
865865 case _ =>
@@ -1080,7 +1080,7 @@ class CheckCaptures extends Recheck, SymTransformer:
10801080 case CapturingType (parent, refs) =>
10811081 healCaptureSet(refs)
10821082 traverse(parent)
1083- case tp @ RefinedType (parent, rname, rinfo : MethodType ) if defn.isFunctionType(tp ) =>
1083+ case defn. RefinedFunctionOf ( rinfo : MethodType ) =>
10841084 traverse(rinfo)
10851085 case tp : TermLambda =>
10861086 val saved = allowed
0 commit comments