@@ -225,10 +225,10 @@ class ExtractAPI[GlobalType <: CallbackGlobal](val global: GlobalType,
225225
226226 def build (t : Type , typeParams : Array [xsbti.api.TypeParameter ], valueParameters : List [xsbti.api.ParameterList ]): List [xsbti.api.Def ] =
227227 {
228- def parameterList (syms : List [Symbol ]): xsbti.api.ParameterList =
228+ def parameterList (syms : List [Symbol ], erase : Boolean = false ): xsbti.api.ParameterList =
229229 {
230230 val isImplicitList = syms match { case head :: _ => isImplicit(head); case _ => false }
231- new xsbti.api.ParameterList (syms.map(parameterS).toArray, isImplicitList)
231+ new xsbti.api.ParameterList (syms.map(parameterS(erase) ).toArray, isImplicitList)
232232 }
233233 t match {
234234 case PolyType (typeParams0, base) =>
@@ -249,7 +249,7 @@ class ExtractAPI[GlobalType <: CallbackGlobal](val global: GlobalType,
249249 build(resultType, typeParams, parameterList(params) :: valueParameters)
250250 val afterErasure =
251251 if (inspectPostErasure)
252- build(resultType, typeParams, global exitingPostErasure ( parameterList(mType.params) :: valueParameters) )
252+ build(resultType, typeParams, parameterList(mType.params, erase = true ) :: valueParameters)
253253 else
254254 Nil
255255
@@ -277,7 +277,7 @@ class ExtractAPI[GlobalType <: CallbackGlobal](val global: GlobalType,
277277 val beforeErasure = makeDef(processType(in, dropConst(returnType)))
278278 val afterErasure =
279279 if (inspectPostErasure) {
280- val erasedReturn = dropConst(global exitingPostErasure viewer(in).memberInfo(s)) map {
280+ val erasedReturn = dropConst(global.transformedType( viewer(in).memberInfo(s) )) map {
281281 case MethodType (_, r) => r
282282 case other => other
283283 }
@@ -287,8 +287,10 @@ class ExtractAPI[GlobalType <: CallbackGlobal](val global: GlobalType,
287287 beforeErasure :: afterErasure
288288 }
289289 }
290- def parameterS (s : Symbol ): xsbti.api.MethodParameter =
291- makeParameter(simpleName(s), s.info, s.info.typeSymbol, s)
290+ def parameterS (erase : Boolean )(s : Symbol ): xsbti.api.MethodParameter = {
291+ val tp = if (erase) global.transformedType(s.info) else s.info
292+ makeParameter(simpleName(s), tp, tp.typeSymbol, s)
293+ }
292294
293295 // paramSym is only for 2.8 and is to determine if the parameter has a default
294296 def makeParameter (name : String , tpe : Type , ts : Symbol , paramSym : Symbol ): xsbti.api.MethodParameter =
0 commit comments