diff --git a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/replaceWith/DeprecatedSymbolUsageFixBase.kt b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/replaceWith/DeprecatedSymbolUsageFixBase.kt index 0de35e72496f..d8e54fde80d7 100644 --- a/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/replaceWith/DeprecatedSymbolUsageFixBase.kt +++ b/plugins/kotlin/code-insight/fixes-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/replaceWith/DeprecatedSymbolUsageFixBase.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.idea.k2.refactoring.inline.codeInliner.ClassUsageRep import org.jetbrains.kotlin.idea.k2.refactoring.inline.codeInliner.CodeToInlineBuilder import org.jetbrains.kotlin.idea.quickfix.replaceWith.ReplaceWithData import org.jetbrains.kotlin.idea.refactoring.inline.codeInliner.CodeToInline +import org.jetbrains.kotlin.idea.refactoring.inline.codeInliner.MutableCodeToInline import org.jetbrains.kotlin.idea.refactoring.inline.codeInliner.UsageReplacementStrategy import org.jetbrains.kotlin.idea.refactoring.inline.codeInliner.buildCodeToInline import org.jetbrains.kotlin.idea.references.mainReference @@ -175,7 +176,9 @@ abstract class DeprecatedSymbolUsageFixBase( val expression = psiFactory.createExpressionCodeFragment(replaceWith.pattern, context).getContentElement() ?: return null - return buildCodeToInline(target, expression, false, null, CodeToInlineBuilder(original = target)) + return buildCodeToInline(target, expression, false, null, object : CodeToInlineBuilder(original = target) { + override fun saveComments(codeToInline: MutableCodeToInline, contextDeclaration: KtDeclaration) {} + }) } } } diff --git a/plugins/kotlin/idea/tests/testData/quickfix/deprecatedSymbolUsage/argumentSideEffects/complexExpressionNotUsed1.kt b/plugins/kotlin/idea/tests/testData/quickfix/deprecatedSymbolUsage/argumentSideEffects/complexExpressionNotUsed1.kt index b097af58d3ef..c5c25c362000 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/deprecatedSymbolUsage/argumentSideEffects/complexExpressionNotUsed1.kt +++ b/plugins/kotlin/idea/tests/testData/quickfix/deprecatedSymbolUsage/argumentSideEffects/complexExpressionNotUsed1.kt @@ -2,6 +2,7 @@ @Deprecated("", ReplaceWith("newFun()")) fun oldFun(p: Int) { + /** some comments */ newFun() } diff --git a/plugins/kotlin/idea/tests/testData/quickfix/deprecatedSymbolUsage/argumentSideEffects/complexExpressionNotUsed1.kt.after b/plugins/kotlin/idea/tests/testData/quickfix/deprecatedSymbolUsage/argumentSideEffects/complexExpressionNotUsed1.kt.after index 986ed39ada5f..c539b478a394 100644 --- a/plugins/kotlin/idea/tests/testData/quickfix/deprecatedSymbolUsage/argumentSideEffects/complexExpressionNotUsed1.kt.after +++ b/plugins/kotlin/idea/tests/testData/quickfix/deprecatedSymbolUsage/argumentSideEffects/complexExpressionNotUsed1.kt.after @@ -2,6 +2,7 @@ @Deprecated("", ReplaceWith("newFun()")) fun oldFun(p: Int) { + /** some comments */ newFun() } diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.common/src/org/jetbrains/kotlin/idea/refactoring/inline/codeInliner/AbstractCodeToInlineBuilder.kt b/plugins/kotlin/refactorings/kotlin.refactorings.common/src/org/jetbrains/kotlin/idea/refactoring/inline/codeInliner/AbstractCodeToInlineBuilder.kt index c8e844ea1409..a3ef0a28a9c1 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.common/src/org/jetbrains/kotlin/idea/refactoring/inline/codeInliner/AbstractCodeToInlineBuilder.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.common/src/org/jetbrains/kotlin/idea/refactoring/inline/codeInliner/AbstractCodeToInlineBuilder.kt @@ -13,7 +13,7 @@ abstract class AbstractCodeToInlineBuilder( protected val fallbackToSuperCall: Boolean = false, ) { protected val psiFactory = KtPsiFactory(project) - protected fun saveComments(codeToInline: MutableCodeToInline, contextDeclaration: KtDeclaration) { + protected open fun saveComments(codeToInline: MutableCodeToInline, contextDeclaration: KtDeclaration) { val bodyBlockExpression = contextDeclaration.safeAs()?.bodyBlockExpression if (bodyBlockExpression != null) addCommentHoldersForStatements(codeToInline, bodyBlockExpression) } diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/inline/codeInliner/CodeToInlineBuilder.kt b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/inline/codeInliner/CodeToInlineBuilder.kt index de98a8578254..fa227265a784 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/inline/codeInliner/CodeToInlineBuilder.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/inline/codeInliner/CodeToInlineBuilder.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.idea.refactoring.inline.codeInliner.AbstractCodeToIn import org.jetbrains.kotlin.idea.refactoring.inline.codeInliner.MutableCodeToInline import org.jetbrains.kotlin.psi.* -class CodeToInlineBuilder( +open class CodeToInlineBuilder( private val original: KtDeclaration, fallbackToSuperCall: Boolean = false ) : AbstractCodeToInlineBuilder(original.project, original, fallbackToSuperCall) { @@ -33,17 +33,14 @@ class CodeToInlineBuilder( val codeToInline = MutableCodeToInline( mainExpression, - originalDeclaration, + original, statementsBefore.toMutableList(), mutableSetOf(), alwaysKeepMainExpression, extraComments = null, ) - if (originalDeclaration != null) { - saveComments(codeToInline, originalDeclaration!!) - } - + saveComments(codeToInline, original) insertExplicitTypeArguments(codeToInline) removeContracts(codeToInline) encodeInternalReferences(codeToInline, original)