[JS IR] Take default params into account for calculating an IC hash
^KT-54895 Fixed
This commit is contained in:
committed by
Space Team
parent
f7063555ca
commit
f4b5f5ff5d
+8
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.CrossModuleReferences
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.IrTypeParametersContainer
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.util.DumpIrTreeVisitor
|
||||
@@ -110,6 +111,13 @@ internal fun IrSymbol.irSymbolHashForIC() = HashCalculatorForIC().also {
|
||||
it.update(typeParameter.symbol.toString())
|
||||
}
|
||||
}
|
||||
(owner as? IrFunction)?.let { irFunction ->
|
||||
it.updateForEach(irFunction.valueParameters) { functionParam ->
|
||||
// symbol rendering doesn't print default params information
|
||||
// it is important to understand if default params were added or removed
|
||||
it.update(functionParam.defaultValue?.let { 1 } ?: 0)
|
||||
}
|
||||
}
|
||||
}.finalize()
|
||||
|
||||
internal fun String.stringHashForIC() = HashCalculatorForIC().also { it.update(this) }.finalize()
|
||||
|
||||
Reference in New Issue
Block a user