[kotlin] k2: change signature: perform optimizations on non-physical psi

^KTIJ-29091 fixed

GitOrigin-RevId: c9419cf1aa10a317babd9e202cff872785e5e1e8
This commit is contained in:
Anna Kozlova
2024-03-21 11:08:46 +00:00
committed by intellij-monorepo-bot
parent 2304b862c9
commit 0af674fc07
@@ -152,16 +152,18 @@ internal class KotlinChangeSignatureDialog(
parameterInfo.setType((parameter.typeCodeFragment as KtTypeCodeFragment).getCanonicalText(forPreview))
val codeFragment = parameter.defaultValueCodeFragment as KtExpressionCodeFragment
val defaultExpressionText = (parameter.defaultValueCodeFragment as KtExpressionCodeFragment).getContentElement()?.text
if (!forPreview) AddQualifiersUtil.addQualifiersRecursively(codeFragment)
val defaultExpression = defaultExpressionText?.let { KtPsiFactory.contextual(callable).createExpression(defaultExpressionText) }
if (!forPreview && defaultExpression != null) AddQualifiersUtil.addQualifiersRecursively(defaultExpression)
val oldDefaultValue = parameterInfo.defaultValueForCall
if (codeFragment.text != (if (oldDefaultValue != null) oldDefaultValue.text else "")) {
parameterInfo.defaultValueForCall = codeFragment.getContentElement()
if ((defaultExpression?.text ?: "") != (if (oldDefaultValue != null) oldDefaultValue.text else "")) {
parameterInfo.defaultValueForCall = defaultExpression
}
if (parameter.parameter.defaultValueAsDefaultParameter) {
parameterInfo.defaultValue = codeFragment.getContentElement()
parameterInfo.defaultValue = defaultExpression
}
parameterInfo
}