@@ -129,25 +129,24 @@ class Bridges(root: ClassSymbol, thisPhase: DenotTransformer)(using Context) {
129129 assert(ctx.typer.isInstanceOf [Erasure .Typer ])
130130 ctx.typer.typed(untpd.cpy.Apply (ref)(ref, args), member.info.finalResultType)
131131 else
132- val defn .ContextFunctionType (argTypes, resType, erasedParams) = tp : @ unchecked
133- val anonFun = newAnonFun(ctx.owner,
134- MethodType (
135- argTypes.zip(erasedParams.padTo(argTypes.length, false ))
136- .flatMap((t, e) => if e then None else Some (t)),
137- resType),
138- coord = ctx.owner.coord)
132+ val mtWithoutErasedParams = atPhase(erasurePhase) {
133+ val defn .ContextFunctionType (argTypes, resType, erasedParams) = tp.dealias: @ unchecked
134+ val paramInfos = argTypes.zip(erasedParams).collect { case (argType, erased) if ! erased => argType }
135+ MethodType (paramInfos, resType)
136+ }
137+ val anonFun = newAnonFun(ctx.owner, mtWithoutErasedParams, coord = ctx.owner.coord)
139138 anonFun.info = transformInfo(anonFun, anonFun.info)
140139
141140 def lambdaBody (refss : List [List [Tree ]]) =
142141 val refs :: Nil = refss : @ unchecked
143142 val expandedRefs = refs.map(_.withSpan(ctx.owner.span.endPos)) match
144143 case (bunchedParam @ Ident (nme.ALLARGS )) :: Nil =>
145- argTypes .indices.toList.map(n =>
144+ mtWithoutErasedParams.paramInfos .indices.toList.map(n =>
146145 bunchedParam
147146 .select(nme.primitive.arrayApply)
148147 .appliedTo(Literal (Constant (n))))
149148 case refs1 => refs1
150- expand(args ::: expandedRefs, resType, n - 1 )(using ctx.withOwner(anonFun))
149+ expand(args ::: expandedRefs, mtWithoutErasedParams. resType, n - 1 )(using ctx.withOwner(anonFun))
151150
152151 val unadapted = Closure (anonFun, lambdaBody)
153152 cpy.Block (unadapted)(unadapted.stats,
0 commit comments