diff --git a/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/after.kt.template b/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/after.kt.template new file mode 100644 index 00000000000..4d1bebcf094 --- /dev/null +++ b/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/after.kt.template @@ -0,0 +1 @@ +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 new file mode 100644 index 00000000000..fdc821e3cce --- /dev/null +++ b/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/before.kt.template @@ -0,0 +1,5 @@ +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 new file mode 100644 index 00000000000..560392f6c09 --- /dev/null +++ b/idea/resources/intentionDescriptions/SimplifyWhenWithBooleanConstantConditionIntention/description.html @@ -0,0 +1,5 @@ + + +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 5f72346387e..4a3dbfd7ff7 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -1645,12 +1645,17 @@ Kotlin - - org.jetbrains.kotlin.idea.intentions.MoveMemberToTopLevelIntention - Kotlin - + + org.jetbrains.kotlin.idea.intentions.MoveMemberToTopLevelIntention + Kotlin + - + org.jetbrains.kotlin.idea.inspections.SimplifyWhenWithBooleanConstantConditionIntention + Kotlin + + + - + (KtWhenExpression::class.java, "Simplify when expression") { + + 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 applyTo(element: KtWhenExpression, editor: Editor?) { + val closeBrace = element.closeBrace ?: return + val project = editor?.project ?: return + val factory = KtPsiFactory(project) + val usedAsExpression = element.isUsedAsExpression(element.analyze()) + element.deleteFalseEntry(usedAsExpression) + element.replaceTrueEntry(usedAsExpression, closeBrace, factory) + } +} + +private fun KtWhenExpression.deleteFalseEntry(usedAsExpression: Boolean) { + for (entry in entries) { + if (entry.isFalseConstantCondition()) { + entry.delete() + } + } + + if (entries.isEmpty() && !usedAsExpression) { + delete() + } + else if (entries.singleOrNull()?.isElse == true) { + elseExpression?.let { replaceWithBranch(it, usedAsExpression) } + } +} + +private fun KtWhenExpression.replaceTrueEntry(usedAsExpression: Boolean, closeBrace: PsiElement, factory: KtPsiFactory) { + val trueIndex = entries.indexOfFirst { it.isTrueConstantCondition() } + if (trueIndex == -1) return + + val expression = entries[trueIndex].expression ?: return + + if (trueIndex == 0) { + replaceWithBranch(expression, usedAsExpression) + } + else { + val elseEntry = factory.createWhenEntry("else -> ${expression.text}") + for (index in trueIndex until entries.size) { + entries[index].delete() + } + addBefore(elseEntry, closeBrace) + } +} + +private fun KtWhenEntry.isTrueConstantCondition(): Boolean = + (conditions.singleOrNull() as? KtWhenConditionWithExpression)?.expression.isTrueConstant() + +private fun KtWhenEntry.isFalseConstantCondition(): Boolean = + (conditions.singleOrNull() as? KtWhenConditionWithExpression)?.expression.isFalseConstant() \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/.intention b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/.intention new file mode 100644 index 00000000000..aa2d232d6db --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/.intention @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.intentions.SimplifyWhenWithBooleanConstantConditionIntention diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt new file mode 100644 index 00000000000..82a4a53203a --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt @@ -0,0 +1,6 @@ +fun test() { + val x = when { + false -> 1 + else -> 2 + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt.after new file mode 100644 index 00000000000..3c374d17d84 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse1.kt.after @@ -0,0 +1,3 @@ +fun test() { + val x = 2 +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt new file mode 100644 index 00000000000..4bbd4bd15c6 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt @@ -0,0 +1,13 @@ +// WITH_RUNTIME +fun test() { + val x = when { + false -> { + println(1) + 1 + } + else -> { + println(2) + 2 + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt.after new file mode 100644 index 00000000000..005416a1fca --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse2.kt.after @@ -0,0 +1,7 @@ +// WITH_RUNTIME +fun test() { + val x = run { + println(2) + 2 + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt new file mode 100644 index 00000000000..0657dc87899 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt @@ -0,0 +1,11 @@ +// WITH_RUNTIME +fun test() { + when { + false -> { + println(1) + } + else -> { + println(2) + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt.after new file mode 100644 index 00000000000..c6ea574185e --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseAndElse3.kt.after @@ -0,0 +1,4 @@ +// WITH_RUNTIME +fun test() { + println(2) +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt new file mode 100644 index 00000000000..b8e2f570208 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt @@ -0,0 +1,6 @@ +// ERROR: 'when' expression must be exhaustive, add necessary 'else' branch +fun test() { + val x = when { + false -> 1 + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt.after new file mode 100644 index 00000000000..acbfcf99afc --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly1.kt.after @@ -0,0 +1,5 @@ +// ERROR: 'when' expression must be exhaustive, add necessary 'else' branch +fun test() { + val x = when { + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt new file mode 100644 index 00000000000..bc47454860d --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt @@ -0,0 +1,10 @@ +// ERROR: 'when' expression must be exhaustive, add necessary 'else' branch +// WITH_RUNTIME +fun test() { + val x = when { + false -> { + println(1) + 1 + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt.after new file mode 100644 index 00000000000..a88de607cca --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly2.kt.after @@ -0,0 +1,6 @@ +// ERROR: 'when' expression must be exhaustive, add necessary 'else' branch +// WITH_RUNTIME +fun test() { + val x = when { + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt new file mode 100644 index 00000000000..dc1c9611be0 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt @@ -0,0 +1,8 @@ +// WITH_RUNTIME +fun test() { + when { + false -> { + println(1) + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt.after new file mode 100644 index 00000000000..786a2050ab6 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/falseOnly3.kt.after @@ -0,0 +1,3 @@ +// WITH_RUNTIME +fun test() { +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/hasSubject.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/hasSubject.kt new file mode 100644 index 00000000000..110f21c6dc9 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/hasSubject.kt @@ -0,0 +1,8 @@ +// IS_APPLICABLE: false +// WITH_RUNTIME +fun test(b: Boolean) { + when(b) { + true -> println(1) + false -> println(2) + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/noBooolean.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/noBooolean.kt new file mode 100644 index 00000000000..9bac60bde03 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/noBooolean.kt @@ -0,0 +1,8 @@ +// IS_APPLICABLE: false +// WITH_RUNTIME +fun test(i: Int) { + when { + i == 1 -> println(1) + else -> println(2) + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt new file mode 100644 index 00000000000..92aeefcdae6 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt @@ -0,0 +1,8 @@ +fun test(i: Int) { + val x = when { + i == 1 -> 1 + false -> 2 + true -> 3 + else -> 4 + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt.after new file mode 100644 index 00000000000..eb442eec24c --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop1.kt.after @@ -0,0 +1,6 @@ +fun test(i: Int) { + val x = when { + i == 1 -> 1 + else -> 3 + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt new file mode 100644 index 00000000000..cdd3367da6c --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt @@ -0,0 +1,21 @@ +// WITH_RUNTIME +fun test(i: Int) { + val x = when { + i == 1 -> { + println(1) + 1 + } + false -> { + println(2) + 2 + } + true -> { + println(3) + 3 + } + else -> { + println(4) + 4 + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt.after new file mode 100644 index 00000000000..f90a63e82e6 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop2.kt.after @@ -0,0 +1,13 @@ +// WITH_RUNTIME +fun test(i: Int) { + val x = when { + i == 1 -> { + println(1) + 1 + } + else -> { + println(3) + 3 + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt new file mode 100644 index 00000000000..6ddf46f393b --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt @@ -0,0 +1,17 @@ +// WITH_RUNTIME +fun test(i: Int) { + when { + i == 1 -> { + println(1) + } + false -> { + println(2) + } + true -> { + println(3) + } + else -> { + println(4) + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt.after new file mode 100644 index 00000000000..592b66ee64d --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsNotTop3.kt.after @@ -0,0 +1,11 @@ +// WITH_RUNTIME +fun test(i: Int) { + when { + i == 1 -> { + println(1) + } + else -> { + println(3) + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt new file mode 100644 index 00000000000..bbc285f4e03 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt @@ -0,0 +1,6 @@ +fun test() { + val x = when { + true -> 1 + else -> 2 + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt.after new file mode 100644 index 00000000000..0b5c012a3d8 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop1.kt.after @@ -0,0 +1,3 @@ +fun test() { + val x = 1 +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt new file mode 100644 index 00000000000..b04e0f31349 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt @@ -0,0 +1,13 @@ +// WITH_RUNTIME +fun test() { + val x = when { + true -> { + println(1) + 1 + } + else -> { + println(2) + 2 + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt.after new file mode 100644 index 00000000000..727486f03ce --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop2.kt.after @@ -0,0 +1,7 @@ +// WITH_RUNTIME +fun test() { + val x = run { + println(1) + 1 + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt new file mode 100644 index 00000000000..52d52849bc2 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt @@ -0,0 +1,11 @@ +// WITH_RUNTIME +fun test() { + when { + true -> { + println(1) + } + else -> { + println(2) + } + } +} \ No newline at end of file diff --git a/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt.after b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt.after new file mode 100644 index 00000000000..8f3929251e2 --- /dev/null +++ b/idea/testData/intentions/simplifyWhenWithBooleanConstantCondition/trueIsTop3.kt.after @@ -0,0 +1,4 @@ +// WITH_RUNTIME +fun test() { + println(1) +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 19727d6e8fe..6ca00a05e04 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -15216,6 +15216,99 @@ 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)