From a1e00ed9f1f30ad4048ae0b04a632e35b95301a9 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 11 May 2017 20:35:02 +0300 Subject: [PATCH] Don't suggest "if to ?." without else when used in expression position --- .../intentions/IfThenToSafeAccessIntention.kt | 6 ++++-- .../ifThenToSafeAccess/noElseBlockAsExpression.kt | 14 ++++++++++++++ .../idea/intentions/IntentionTestGenerated.java | 6 ++++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 idea/testData/intentions/branched/ifThenToSafeAccess/noElseBlockAsExpression.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/IfThenToSafeAccessIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/IfThenToSafeAccessIntention.kt index 224a72b95ba..fc36e6cf532 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/IfThenToSafeAccessIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/IfThenToSafeAccessIntention.kt @@ -18,13 +18,13 @@ package org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions import com.intellij.codeInspection.ProblemHighlightType import com.intellij.openapi.editor.Editor -import com.intellij.psi.PsiElement import org.jetbrains.kotlin.idea.core.replaced import org.jetbrains.kotlin.idea.inspections.IntentionBasedInspection import org.jetbrains.kotlin.idea.intentions.SelfTargetingOffsetIndependentIntention import org.jetbrains.kotlin.idea.intentions.branchedTransformations.* import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression class IfThenToSafeAccessInspection : IntentionBasedInspection(IfThenToSafeAccessIntention::class) { override fun inspectionTarget(element: KtIfExpression) = element.ifKeyword @@ -70,7 +70,9 @@ class IfThenToSafeAccessIntention : SelfTargetingOffsetIndependentIntention) { + foo.length + } +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 836d6500d2b..c445dd0583d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -1838,6 +1838,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest { doTest(fileName); } + @TestMetadata("noElseBlockAsExpression.kt") + public void testNoElseBlockAsExpression() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/ifThenToSafeAccess/noElseBlockAsExpression.kt"); + doTest(fileName); + } + @TestMetadata("noNullInCondition.kt") public void testNoNullInCondition() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/ifThenToSafeAccess/noNullInCondition.kt");