JS: fix explicit cross-module SAM constructor calls

This commit is contained in:
Anton Bannykh
2020-06-05 11:52:13 +03:00
parent 489290263f
commit bd2a0563ad
3 changed files with 22 additions and 4 deletions
@@ -197,12 +197,14 @@ object ConstructorCallCase : FunctionCallCase() {
private inline fun FunctionCallInfo.doTranslate(
getArguments: CallArgumentTranslator.ArgumentsInfo.() -> List<JsExpression>
): JsExpression {
val functionRef = ReferenceTranslator.translateAsValueReference(callableDescriptor, context)
if (callableDescriptor is SamConstructorDescriptor) {
(callableDescriptor as? SamConstructorDescriptor)?.baseDescriptorForSynthetic?.let { funInterface ->
val functionRef = ReferenceTranslator.translateAsTypeReference(funInterface, context)
return JsNew(functionRef, argumentsInfo.getArguments())
}
val functionRef = ReferenceTranslator.translateAsValueReference(callableDescriptor, context)
val invocationArguments = mutableListOf<JsExpression>()
val constructorDescriptor = callableDescriptor as ClassConstructorDescriptor