[Wasm] Fix overriding external fun with default parameters (Fix KT-56976)

This commit is contained in:
Svyatoslav Kuzmich
2023-02-27 08:56:39 +01:00
committed by Space Team
parent 564d44b16d
commit 3c35328c09
2 changed files with 42 additions and 0 deletions
@@ -476,6 +476,18 @@ class ComplexExternalDeclarationsUsageLowering(val context: WasmBackendContext)
}
private fun numDefaultParametersForExternalFunction(function: IrFunction): Int {
if (function is IrSimpleFunction) {
// Default parameters can be in overridden external functions
val numDefaultParametersInOverrides =
function.overriddenSymbols.maxOfOrNull {
numDefaultParametersForExternalFunction(it.owner)
} ?: 0
if (numDefaultParametersInOverrides > 0) {
return numDefaultParametersInOverrides
}
}
val firstDefaultParameterIndex: Int? =
function.valueParameters.firstOrNull { it.defaultValue != null }?.index