From e59427edab40662b2734ffb2943f1d9a168e6250 Mon Sep 17 00:00:00 2001 From: kenji tomita Date: Sat, 18 Aug 2018 14:55:35 +0900 Subject: [PATCH] Fix false positive for if-else --- .../idea/inspections/RedundantSemicolonInspection.kt | 3 +++ .../testData/inspectionsLocal/redundantSemicolon/ifElse.kt | 7 +++++++ .../idea/inspections/LocalInspectionTestGenerated.java | 5 +++++ 3 files changed, 15 insertions(+) create mode 100644 idea/testData/inspectionsLocal/redundantSemicolon/ifElse.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantSemicolonInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantSemicolonInspection.kt index be9ee3845c0..d3fd3316ef6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantSemicolonInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantSemicolonInspection.kt @@ -23,6 +23,7 @@ import com.intellij.psi.PsiComment import com.intellij.psi.PsiElement import com.intellij.psi.PsiElementVisitor import com.intellij.psi.PsiWhiteSpace +import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.kdoc.psi.api.KDoc import org.jetbrains.kotlin.lexer.KtModifierKeywordToken import org.jetbrains.kotlin.lexer.KtTokens @@ -58,6 +59,8 @@ class RedundantSemicolonInspection : AbstractKotlinInspection(), CleanupLocalIns return false } + if (semicolon.prevLeaf()?.node?.elementType == KtNodeTypes.ELSE) return false + if (semicolon.parent is KtEnumEntry) return false (semicolon.parent.parent as? KtClass)?.let { diff --git a/idea/testData/inspectionsLocal/redundantSemicolon/ifElse.kt b/idea/testData/inspectionsLocal/redundantSemicolon/ifElse.kt new file mode 100644 index 00000000000..0ea92072a36 --- /dev/null +++ b/idea/testData/inspectionsLocal/redundantSemicolon/ifElse.kt @@ -0,0 +1,7 @@ +// PROBLEM: none +// WITH_RUNTIME + +fun test() { + if (true) println("hello") else; + println("hi") +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index f3e61fc2f61..19fecfea053 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -4181,6 +4181,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { public void testCompanionWithName() throws Exception { runTest("idea/testData/inspectionsLocal/redundantSemicolon/companionWithName.kt"); } + + @TestMetadata("ifElse.kt") + public void testIfElse() throws Exception { + runTest("idea/testData/inspectionsLocal/redundantSemicolon/ifElse.kt"); + } } @TestMetadata("idea/testData/inspectionsLocal/redundantSetter")