[JS IR] Fix external vararg if its argument is suspend call

- Fix KT-47811
This commit is contained in:
Roman Artemev
2021-09-24 21:05:51 +07:00
committed by TeamCityServer
parent 6efba76a06
commit 623f273251
@@ -219,18 +219,20 @@ private class VarargTransformer(
} }
private fun transformFunctionAccessExpression(expression: IrFunctionAccessExpression): IrExpression { private fun transformFunctionAccessExpression(expression: IrFunctionAccessExpression): IrExpression {
expression.transformChildrenVoid()
if (expression.symbol.owner.isExternal) { if (expression.symbol.owner.isExternal) {
for (i in 0 until expression.valueArgumentsCount) { for (i in 0 until expression.valueArgumentsCount) {
val parameter = expression.symbol.owner.valueParameters[i] val parameter = expression.symbol.owner.valueParameters[i]
val varargElementType = parameter.varargElementType val varargElementType = parameter.varargElementType
if (varargElementType != null) { if (varargElementType != null) {
(expression.getValueArgument(i) as IrVararg?)?.let { (expression.getValueArgument(i) as? IrVararg)?.let {
externalVarargs.add(it) externalVarargs.add(it)
} }
} }
} }
} }
expression.transformChildrenVoid()
val size = expression.valueArgumentsCount val size = expression.valueArgumentsCount
for (i in 0 until size) { for (i in 0 until size) {