[JS IR] Consider erasing type parameters in return type in js signatures

This commit is contained in:
Ilya Goncharov
2021-12-09 17:46:08 +03:00
committed by Space
parent 4f1a10d72e
commit 6adcbe081e
11 changed files with 67 additions and 2 deletions
@@ -31,7 +31,7 @@ class JsBridgesConstruction(context: JsIrBackendContext) : BridgesConstruction<J
function.valueParameters.map { it.type.eraseGenerics(context.irBuiltIns) },
function.returnType.takeIf {
it.getJsInlinedClass() != null || it.isUnit()
}
}?.eraseGenerics(context.irBuiltIns)
)
}
@@ -132,7 +132,7 @@ fun jsFunctionSignature(declaration: IrFunction, context: JsIrBackendContext): S
// Return type is only used in signature for inline class and Unit types because
// they are binary incompatible with supertypes.
if (context.inlineClassesUtils.isTypeInlined(it) || it.isUnit()) {
nameBuilder.append("_ret$${it.asString()}")
nameBuilder.append("_ret$${it.eraseGenerics(context.irBuiltIns).asString()}")
}
}