Don't create substituted copy of invoke descriptor with unchanged names

#KT-34919 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-04-04 13:24:28 +03:00
committed by Space
parent 04e8e1b2ad
commit 0ef32e5807
8 changed files with 52 additions and 0 deletions
@@ -85,6 +85,9 @@ class FunctionInvokeDescriptor private constructor(
private fun replaceParameterNames(parameterNames: List<Name?>): FunctionDescriptor {
val indexShift = valueParameters.size - parameterNames.size
assert(indexShift == 0 || indexShift == 1) // indexShift == 1 for extension function type
if (indexShift == 0 && parameterNames.zip(valueParameters).all { (name, parameter) -> name == parameter.name }) {
return this
}
val newValueParameters = valueParameters.map {
var newName = it.name