diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/branchedTransformations/IfThenToElvisInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/branchedTransformations/IfThenToElvisInspection.kt index a648047f4a1..e6e0cbf98ac 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/branchedTransformations/IfThenToElvisInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/branchedTransformations/IfThenToElvisInspection.kt @@ -25,8 +25,9 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getType import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import javax.swing.JComponent -class IfThenToElvisInspection( - @JvmField var highlightStatement: Boolean = false +class IfThenToElvisInspection @JvmOverloads constructor( + @JvmField var highlightStatement: Boolean = false, + private val inlineWithPrompt: Boolean = true ) : AbstractApplicabilityBasedInspection(KtIfExpression::class.java) { override fun inspectionText(element: KtIfExpression): String = KotlinBundle.message("if.then.foldable.to") @@ -41,7 +42,7 @@ class IfThenToElvisInspection( ProblemHighlightType.INFORMATION override fun applyTo(element: KtIfExpression, project: Project, editor: Editor?) { - convert(element, editor) + convert(element, editor, inlineWithPrompt) } override fun inspectionHighlightRangeInElement(element: KtIfExpression) = element.fromIfKeywordToRightParenthesisTextRangeInThis() @@ -53,7 +54,7 @@ class IfThenToElvisInspection( companion object { val INTENTION_TEXT get() = KotlinBundle.message("replace.if.expression.with.elvis.expression") - fun convert(element: KtIfExpression, editor: Editor?) { + fun convert(element: KtIfExpression, editor: Editor?, inlineWithPrompt: Boolean) { val ifThenToSelectData = element.buildSelectTransformationData() ?: return val factory = KtPsiFactory(element) @@ -79,7 +80,7 @@ class IfThenToElvisInspection( } if (editor != null) { - elvis.inlineLeftSideIfApplicableWithPrompt(editor) + elvis.inlineLeftSideIfApplicable(editor, inlineWithPrompt) with(IfThenToSafeAccessInspection) { (elvis.left as? KtSafeQualifiedExpression)?.renameLetParameter(editor) } diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/branchedTransformations/IfThenToSafeAccessInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/branchedTransformations/IfThenToSafeAccessInspection.kt index be9dfb22c56..05f118e5434 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/branchedTransformations/IfThenToSafeAccessInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/branchedTransformations/IfThenToSafeAccessInspection.kt @@ -24,7 +24,8 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression import org.jetbrains.kotlin.resolve.calls.callUtil.getType -class IfThenToSafeAccessInspection : AbstractApplicabilityBasedInspection(KtIfExpression::class.java) { +class IfThenToSafeAccessInspection @JvmOverloads constructor(private val inlineWithPrompt: Boolean = true) : + AbstractApplicabilityBasedInspection(KtIfExpression::class.java) { override fun isApplicable(element: KtIfExpression): Boolean = isApplicableTo(element, expressionShouldBeStable = true) @@ -42,7 +43,7 @@ class IfThenToSafeAccessInspection : AbstractApplicabilityBasedInspection IfThenToSafeAccessInspection.convert(ifExpr, editor) } + { ifExpr, _, editor -> IfThenToSafeAccessInspection.convert(ifExpr, editor, inlineWithPrompt = true) } ), createQuickFix( ifExpression, { IfThenToElvisInspection.INTENTION_TEXT }, { IfThenToElvisInspection.isApplicableTo(it, expressionShouldBeStable = false) }, - { ifExpr, _, editor -> IfThenToElvisInspection.convert(ifExpr, editor) } + { ifExpr, _, editor -> IfThenToElvisInspection.convert(ifExpr, editor, inlineWithPrompt = true) } ) ) } diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/J2kPostProcessor.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/J2kPostProcessor.kt index ea63234e172..02313f1acfe 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/J2kPostProcessor.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/J2kPostProcessor.kt @@ -223,8 +223,8 @@ private val inspectionLikePostProcessingGroup = it ) as KtReturnExpression).returnedExpression.isTrivialStatementBody() }, - inspectionBasedProcessing(IfThenToSafeAccessInspection(), writeActionNeeded = false), - inspectionBasedProcessing(IfThenToElvisInspection(highlightStatement = true), writeActionNeeded = false), + inspectionBasedProcessing(IfThenToSafeAccessInspection(inlineWithPrompt = false), writeActionNeeded = false), + inspectionBasedProcessing(IfThenToElvisInspection(highlightStatement = true, inlineWithPrompt = false), writeActionNeeded = false), inspectionBasedProcessing(SimplifyNegatedBinaryExpressionInspection()), inspectionBasedProcessing(ReplaceGetOrSetInspection()), intentionBasedProcessing(ObjectLiteralToLambdaIntention(), writeActionNeeded = true),