From 7b2a66c0069720f76bb3b3b1c417c9589d2a8ddd Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 9 Nov 2017 16:30:34 +0300 Subject: [PATCH] Convert 'simplify when' from intention to inspection Related to KT-20492 --- ...plifyWhenWithBooleanConstantCondition.html | 5 + .../after.kt.template | 1 - .../before.kt.template | 5 - .../description.html | 5 - idea/src/META-INF/plugin.xml | 15 ++- ...WithBooleanConstantConditionInspection.kt} | 58 ++++++++---- .../.inspection | 1 + .../falseAndElse1.kt | 0 .../falseAndElse1.kt.after | 0 .../falseAndElse2.kt | 0 .../falseAndElse2.kt.after | 0 .../falseAndElse3.kt | 0 .../falseAndElse3.kt.after | 0 .../falseOnly1.kt | 0 .../falseOnly1.kt.after | 0 .../falseOnly2.kt | 0 .../falseOnly2.kt.after | 0 .../falseOnly3.kt | 0 .../falseOnly3.kt.after | 0 .../hasSubject.kt | 2 +- .../noBoolean.kt} | 2 +- .../trueIsNotTop1.kt | 0 .../trueIsNotTop1.kt.after | 0 .../trueIsNotTop2.kt | 0 .../trueIsNotTop2.kt.after | 0 .../trueIsNotTop3.kt | 0 .../trueIsNotTop3.kt.after | 0 .../trueIsTop1.kt | 0 .../trueIsTop1.kt.after | 0 .../trueIsTop2.kt | 0 .../trueIsTop2.kt.after | 0 .../trueIsTop3.kt | 2 +- .../trueIsTop3.kt.after | 0 .../.intention | 1 - .../LocalInspectionTestGenerated.java | 93 +++++++++++++++++++ .../intentions/IntentionTestGenerated.java | 93 ------------------- 36 files changed, 150 insertions(+), 133 deletions(-) create mode 100644 idea/resources/inspectionDescriptions/SimplifyWhenWithBooleanConstantCondition.html delete mode 100644 idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/description.html rename idea/src/org/jetbrains/kotlin/idea/{intentions/SimplifyWhenWithBooleanConstantConditionIntention.kt => inspections/SimplifyWhenWithBooleanConstantConditionInspection.kt} (56%) create mode 100644 idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/.inspection rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/hasSubject.kt (83%) rename idea/testData/{intentions/simplifyWhenWithBooleanConstantCondition/noBooolean.kt => inspectionsLocal/simplifyWhenWithBooleanConstantCondition/noBoolean.kt} (82%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt.after (100%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt (88%) rename idea/testData/{intentions => inspectionsLocal}/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt.after (100%) delete mode 100644 idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/.intention diff --git a/idea/resources/inspectionDescriptions/SimplifyWhenWithBooleanConstantCondition.html b/idea/resources/inspectionDescriptions/SimplifyWhenWithBooleanConstantCondition.html new file mode 100644 index 00000000000..82c425baa98 --- /dev/null +++ b/idea/resources/inspectionDescriptions/SimplifyWhenWithBooleanConstantCondition.html @@ -0,0 +1,5 @@ + + +This inspection detects 'when' with 'true' or 'false' branches that can be simplified. + + diff --git a/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/after.kt.template b/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/after.kt.template deleted file mode 100644 index 4d1bebcf094..00000000000 --- a/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/after.kt.template +++ /dev/null @@ -1 +0,0 @@ -val foo = "foo" \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/before.kt.template b/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/before.kt.template deleted file mode 100644 index fdc821e3cce..00000000000 --- a/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -val foo = when { - true -> "foo" - false -> "bar" - else -> "baz" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/description.html b/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/description.html deleted file mode 100644 index 560392f6c09..00000000000 --- a/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/description.html +++ /dev/null @@ -1,5 +0,0 @@ - - -This intention simplifies a when expression that has branch conditions which are true or false - - \ No newline at end of file diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 4a3dbfd7ff7..5190895449a 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -1650,11 +1650,6 @@ Kotlin - - org.jetbrains.kotlin.idea.inspections.SimplifyWhenWithBooleanConstantConditionIntention - Kotlin - - + + + diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/SimplifyWhenWithBooleanConstantConditionIntention.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/SimplifyWhenWithBooleanConstantConditionInspection.kt similarity index 56% rename from idea/src/org/jetbrains/kotlin/idea/intentions/SimplifyWhenWithBooleanConstantConditionIntention.kt rename to idea/src/org/jetbrains/kotlin/idea/inspections/SimplifyWhenWithBooleanConstantConditionInspection.kt index 7f93efd352d..2c6e361bf06 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/SimplifyWhenWithBooleanConstantConditionIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/SimplifyWhenWithBooleanConstantConditionInspection.kt @@ -14,47 +14,64 @@ * limitations under the License. */ -package org.jetbrains.kotlin.idea.intentions +package org.jetbrains.kotlin.idea.inspections -import com.intellij.openapi.editor.Editor -import com.intellij.openapi.util.TextRange +import com.intellij.codeInspection.* +import com.intellij.openapi.project.Project import com.intellij.psi.PsiElement +import com.intellij.psi.PsiElementVisitor import org.jetbrains.kotlin.idea.caches.resolve.analyze -import org.jetbrains.kotlin.idea.inspections.replaceWithBranch import org.jetbrains.kotlin.idea.intentions.loopToCallChain.isFalseConstant import org.jetbrains.kotlin.idea.intentions.loopToCallChain.isTrueConstant -import org.jetbrains.kotlin.psi.KtPsiFactory -import org.jetbrains.kotlin.psi.KtWhenConditionWithExpression -import org.jetbrains.kotlin.psi.KtWhenEntry -import org.jetbrains.kotlin.psi.KtWhenExpression +import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression -class SimplifyWhenWithBooleanConstantConditionIntention : SelfTargetingRangeIntention(KtWhenExpression::class.java, "Simplify when expression") { +class SimplifyWhenWithBooleanConstantConditionInspection : AbstractKotlinInspection() { - override fun applicabilityRange(element: KtWhenExpression): TextRange? { - if (element.closeBrace == null) return null - if (element.subjectExpression != null) return null - if (element.entries.none { it.isTrueConstantCondition() || it.isFalseConstantCondition() }) return null - return element.whenKeyword.textRange + override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession): PsiElementVisitor { + return object : KtVisitorVoid() { + + override fun visitWhenExpression(expression: KtWhenExpression) { + super.visitWhenExpression(expression) + + if (expression.closeBrace == null) return + if (expression.subjectExpression != null) return + if (expression.entries.none { it.isTrueConstantCondition() || it.isFalseConstantCondition() }) return + + holder.registerProblem(expression.whenKeyword, + "This 'when' is simplifiable", + ProblemHighlightType.GENERIC_ERROR_OR_WARNING, + SimplifyWhenFix()) + } + + } } +} - override fun applyTo(element: KtWhenExpression, editor: Editor?) { +private class SimplifyWhenFix : LocalQuickFix { + override fun getName() = "Simplify 'when'" + + override fun getFamilyName() = name + + override fun applyFix(project: Project, descriptor: ProblemDescriptor) { + val element = descriptor.psiElement.getStrictParentOfType() ?: return val closeBrace = element.closeBrace ?: return - val project = editor?.project ?: return val factory = KtPsiFactory(project) val usedAsExpression = element.isUsedAsExpression(element.analyze()) - element.deleteFalseEntry(usedAsExpression) + element.deleteFalseEntries(usedAsExpression) element.replaceTrueEntry(usedAsExpression, closeBrace, factory) } } -private fun KtWhenExpression.deleteFalseEntry(usedAsExpression: Boolean) { +private fun KtWhenExpression.deleteFalseEntries(usedAsExpression: Boolean) { for (entry in entries) { if (entry.isFalseConstantCondition()) { entry.delete() } } + val entries = entries if (entries.isEmpty() && !usedAsExpression) { delete() } @@ -64,6 +81,7 @@ private fun KtWhenExpression.deleteFalseEntry(usedAsExpression: Boolean) { } private fun KtWhenExpression.replaceTrueEntry(usedAsExpression: Boolean, closeBrace: PsiElement, factory: KtPsiFactory) { + val entries = entries val trueIndex = entries.indexOfFirst { it.isTrueConstantCondition() } if (trueIndex == -1) return @@ -74,8 +92,8 @@ private fun KtWhenExpression.replaceTrueEntry(usedAsExpression: Boolean, closeBr } else { val elseEntry = factory.createWhenEntry("else -> ${expression.text}") - for (index in trueIndex until entries.size) { - entries[index].delete() + for (entry in entries.subList(trueIndex, entries.size)) { + entry.delete() } addBefore(elseEntry, closeBrace) } diff --git a/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/.inspection b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/.inspection new file mode 100644 index 00000000000..14038eac486 --- /dev/null +++ b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/.inspection @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.inspections.SimplifyWhenWithBooleanConstantConditionInspection diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/hasSubject.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/hasSubject.kt similarity index 83% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/hasSubject.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/hasSubject.kt index 110f21c6dc9..91d7e518494 100644 --- a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/hasSubject.kt +++ b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/hasSubject.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none // WITH_RUNTIME fun test(b: Boolean) { when(b) { diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/noBooolean.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/noBoolean.kt similarity index 82% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/noBooolean.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/noBoolean.kt index 9bac60bde03..14b18170899 100644 --- a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/noBooolean.kt +++ b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/noBoolean.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none // WITH_RUNTIME fun test(i: Int) { when { diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt similarity index 88% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt index 52d52849bc2..2e9b889b42f 100644 --- a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt +++ b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt @@ -1,6 +1,6 @@ // WITH_RUNTIME fun test() { - when { + when { true -> { println(1) } diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt.after b/idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt.after similarity index 100% rename from idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt.after rename to idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt.after diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/.intention b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/.intention deleted file mode 100644 index aa2d232d6db..00000000000 --- a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/.intention +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.kotlin.idea.intentions.SimplifyWhenWithBooleanConstantConditionIntention diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index c9f69264649..e36c5502cd0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -2250,6 +2250,99 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { } } + @TestMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class SimplifyWhenWithBooleanConstantCondition extends AbstractLocalInspectionTest { + public void testAllFilesPresentInSimplifyWhenWithBooleanConstantCondition() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true); + } + + @TestMetadata("falseAndElse1.kt") + public void testFalseAndElse1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt"); + doTest(fileName); + } + + @TestMetadata("falseAndElse2.kt") + public void testFalseAndElse2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt"); + doTest(fileName); + } + + @TestMetadata("falseAndElse3.kt") + public void testFalseAndElse3() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt"); + doTest(fileName); + } + + @TestMetadata("falseOnly1.kt") + public void testFalseOnly1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt"); + doTest(fileName); + } + + @TestMetadata("falseOnly2.kt") + public void testFalseOnly2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt"); + doTest(fileName); + } + + @TestMetadata("falseOnly3.kt") + public void testFalseOnly3() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt"); + doTest(fileName); + } + + @TestMetadata("hasSubject.kt") + public void testHasSubject() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/hasSubject.kt"); + doTest(fileName); + } + + @TestMetadata("noBoolean.kt") + public void testNoBoolean() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/noBoolean.kt"); + doTest(fileName); + } + + @TestMetadata("trueIsNotTop1.kt") + public void testTrueIsNotTop1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt"); + doTest(fileName); + } + + @TestMetadata("trueIsNotTop2.kt") + public void testTrueIsNotTop2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt"); + doTest(fileName); + } + + @TestMetadata("trueIsNotTop3.kt") + public void testTrueIsNotTop3() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt"); + doTest(fileName); + } + + @TestMetadata("trueIsTop1.kt") + public void testTrueIsTop1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt"); + doTest(fileName); + } + + @TestMetadata("trueIsTop2.kt") + public void testTrueIsTop2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt"); + doTest(fileName); + } + + @TestMetadata("trueIsTop3.kt") + public void testTrueIsTop3() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt"); + doTest(fileName); + } + } + @TestMetadata("idea/testData/inspectionsLocal/unnecessaryVariable") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 6ca00a05e04..19727d6e8fe 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -15216,99 +15216,6 @@ public class IntentionTestGenerated extends AbstractIntentionTest { } } - @TestMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class SimplifyWhenWithBooleanConstantCondition extends AbstractIntentionTest { - public void testAllFilesPresentInSimplifyWhenWithBooleanConstantCondition() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true); - } - - @TestMetadata("falseAndElse1.kt") - public void testFalseAndElse1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt"); - doTest(fileName); - } - - @TestMetadata("falseAndElse2.kt") - public void testFalseAndElse2() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt"); - doTest(fileName); - } - - @TestMetadata("falseAndElse3.kt") - public void testFalseAndElse3() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt"); - doTest(fileName); - } - - @TestMetadata("falseOnly1.kt") - public void testFalseOnly1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt"); - doTest(fileName); - } - - @TestMetadata("falseOnly2.kt") - public void testFalseOnly2() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt"); - doTest(fileName); - } - - @TestMetadata("falseOnly3.kt") - public void testFalseOnly3() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt"); - doTest(fileName); - } - - @TestMetadata("hasSubject.kt") - public void testHasSubject() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/hasSubject.kt"); - doTest(fileName); - } - - @TestMetadata("noBooolean.kt") - public void testNoBooolean() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/noBooolean.kt"); - doTest(fileName); - } - - @TestMetadata("trueIsNotTop1.kt") - public void testTrueIsNotTop1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt"); - doTest(fileName); - } - - @TestMetadata("trueIsNotTop2.kt") - public void testTrueIsNotTop2() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt"); - doTest(fileName); - } - - @TestMetadata("trueIsNotTop3.kt") - public void testTrueIsNotTop3() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt"); - doTest(fileName); - } - - @TestMetadata("trueIsTop1.kt") - public void testTrueIsTop1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt"); - doTest(fileName); - } - - @TestMetadata("trueIsTop2.kt") - public void testTrueIsTop2() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt"); - doTest(fileName); - } - - @TestMetadata("trueIsTop3.kt") - public void testTrueIsTop3() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt"); - doTest(fileName); - } - } - @TestMetadata("idea/testData/intentions/specifyExplicitLambdaSignature") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)