Convert "lift return / assignment" intentions into a single inspection

Also includes minor test fix, related to KT-14900
This commit is contained in:
Mikhail Glukhikh
2017-06-27 13:01:33 +03:00
committed by Mikhail Glukhikh
parent 8f33bd0768
commit 2d1abda9a1
91 changed files with 373 additions and 480 deletions
@@ -0,0 +1,14 @@
<html>
<body>
This inspection reports if and when statements that can be converted to expressions
by lifting return or assignment out. Typical example:
<code><pre>
<b>fun</b> foo(arg: Boolean): String {
<b>when</b> (arg) {
<b>true</b> -> <b>return</b> "Truth"
<b>false</b> -> <b>return</b> "Falsehood"
}
}
</pre></code>
</body>
</html>
@@ -1,5 +0,0 @@
res = if (ok) {
"ok"
} else {
"failed"
}
@@ -1,5 +0,0 @@
if (ok) {
res = "ok"
} else {
res = "failed"
}
@@ -1,5 +0,0 @@
return if (ok) {
"ok"
} else {
"failed"
}
@@ -1,5 +0,0 @@
if (ok) {
return "ok"
} else {
return "failed"
}
@@ -1,5 +0,0 @@
res = when (n) {
1 -> "one"
2 -> "two"
else -> "many"
}
@@ -1,5 +0,0 @@
when (n) {
1 -> res = "one"
2 -> res = "two"
else -> res = "many"
}
@@ -1,5 +0,0 @@
return when (n) {
1 -> "one"
2 -> "two"
else -> "many"
}
@@ -1,5 +0,0 @@
when (n) {
1 -> return "one"
2 -> return "two"
else -> return "many"
}
@@ -1,5 +0,0 @@
res = if (ok) {
"ok"
} else {
"failed"
}
@@ -1,5 +0,0 @@
if (ok) {
res = "ok"
} else {
res = "failed"
}
@@ -1,5 +0,0 @@
<html>
<body>
This intention converts 'if' expression where each branch is terminated with assignment into a single assignment with 'if' expression as a right-hand side
</body>
</html>
@@ -1,5 +0,0 @@
return if (ok) {
"ok"
} else {
"failed"
}
@@ -1,5 +0,0 @@
if (ok) {
return "ok"
} else {
return "failed"
}
@@ -1,5 +0,0 @@
<html>
<body>
This intention converts 'if' expression where each branch is terminated with 'return' into a single 'return' with 'if' expression as a right-hand side
</body>
</html>
@@ -1,5 +0,0 @@
res = when (n) {
1 -> "one"
2 -> "two"
else -> "many"
}
@@ -1,5 +0,0 @@
when (n) {
1 -> res = "one"
2 -> res = "two"
else -> res = "many"
}
@@ -1,5 +0,0 @@
<html>
<body>
This intention converts 'when' expression where each branch is terminated with assignment into a single assignment with 'when' expression as right-hand side
</body>
</html>
@@ -1,5 +0,0 @@
return when (n) {
1 -> "one"
2 -> "two"
else -> "many"
}
@@ -1,5 +0,0 @@
when (n) {
1 -> return "one"
2 -> return "two"
else -> return "many"
}
@@ -1,5 +0,0 @@
<html>
<body>
This intention converts 'when' expression where each branch is terminated with 'return' into a single 'return' with 'when' expression as a right-hand side
</body>
</html>
+9 -20
View File
@@ -858,11 +858,6 @@
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToAssignmentIntention</className>
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.intentions.conventionNameCalls.ReplaceGetOrSetIntention</className>
<category>Kotlin</category>
@@ -893,21 +888,6 @@
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention</className>
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldWhenToAssignmentIntention</className>
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldWhenToReturnIntention</className>
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.UnfoldAssignmentToIfIntention</className>
<category>Kotlin</category>
@@ -2380,6 +2360,15 @@
language="kotlin"
/>
<localInspection implementationClass="org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection"
displayName="Return or assignment can be lifted out"
groupPath="Kotlin"
groupName="Style issues"
enabledByDefault="true"
level="WEAK WARNING"
language="kotlin"
/>
<referenceImporter implementation="org.jetbrains.kotlin.idea.quickfix.KotlinReferenceImporter"/>
<fileType.fileViewProviderFactory filetype="KJSM" implementationClass="com.intellij.psi.ClassFileViewProviderFactory"/>
@@ -0,0 +1,82 @@
/*
* Copyright 2010-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.inspections
import com.intellij.codeInspection.*
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.BranchedFoldingUtils
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtIfExpression
import org.jetbrains.kotlin.psi.KtVisitorVoid
import org.jetbrains.kotlin.psi.KtWhenExpression
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
class LiftReturnOrAssignmentInspection : AbstractKotlinInspection() {
override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean, session: LocalInspectionToolSession) =
object : KtVisitorVoid() {
private fun visitIfOrWhen(expression: KtExpression, keyword: PsiElement) {
if (BranchedFoldingUtils.canFoldToReturn(expression)) {
holder.registerProblem(
keyword,
"Return can be lifted out of '${keyword.text}'",
ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
LiftReturnOutFix(keyword.text)
)
}
else if (BranchedFoldingUtils.canFoldToAssignment(expression)) {
holder.registerProblem(
keyword,
"Assignment can be lifted out of '${keyword.text}'",
ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
LiftAssignmentOutFix(keyword.text)
)
}
}
override fun visitIfExpression(expression: KtIfExpression) {
super.visitIfExpression(expression)
visitIfOrWhen(expression, expression.ifKeyword)
}
override fun visitWhenExpression(expression: KtWhenExpression) {
super.visitWhenExpression(expression)
visitIfOrWhen(expression, expression.whenKeyword)
}
}
private class LiftReturnOutFix (private val keyword: String) : LocalQuickFix {
override fun getName() = "Lift return out of '$keyword'"
override fun getFamilyName() = name
override fun applyFix(project: Project, descriptor: ProblemDescriptor) {
BranchedFoldingUtils.foldToReturn(descriptor.psiElement.getParentOfType(true)!!)
}
}
private class LiftAssignmentOutFix (private val keyword: String) : LocalQuickFix {
override fun getName() = "Lift assignment out of '$keyword'"
override fun getFamilyName() = name
override fun applyFix(project: Project, descriptor: ProblemDescriptor) {
BranchedFoldingUtils.foldToAssignment(descriptor.psiElement.getParentOfType(true)!!)
}
}
}
@@ -1,36 +0,0 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.util.TextRange
import org.jetbrains.kotlin.idea.intentions.SelfTargetingRangeIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.BranchedFoldingUtils
import org.jetbrains.kotlin.psi.KtIfExpression
class FoldIfToAssignmentIntention : SelfTargetingRangeIntention<KtIfExpression>(
KtIfExpression::class.java,
"Lift assignment out of 'if' expression"
) {
override fun applicabilityRange(element: KtIfExpression): TextRange? {
return if (BranchedFoldingUtils.canFoldToAssignment(element)) element.ifKeyword.textRange else null
}
override fun applyTo(element: KtIfExpression, editor: Editor?) {
BranchedFoldingUtils.foldToAssignment(element)
}
}
@@ -1,36 +0,0 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.util.TextRange
import org.jetbrains.kotlin.idea.intentions.SelfTargetingRangeIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.BranchedFoldingUtils
import org.jetbrains.kotlin.psi.KtWhenExpression
class FoldWhenToAssignmentIntention : SelfTargetingRangeIntention<KtWhenExpression>(
KtWhenExpression::class.java,
"Lift assignment out of 'when' expression"
) {
override fun applicabilityRange(element: KtWhenExpression): TextRange? {
return if (BranchedFoldingUtils.canFoldToAssignment(element)) element.whenKeyword.textRange else null
}
override fun applyTo(element: KtWhenExpression, editor: Editor?) {
BranchedFoldingUtils.foldToAssignment(element)
}
}
@@ -1,37 +0,0 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.util.TextRange
import org.jetbrains.kotlin.idea.intentions.SelfTargetingRangeIntention
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.BranchedFoldingUtils
import org.jetbrains.kotlin.psi.KtWhenExpression
class FoldWhenToReturnIntention : SelfTargetingRangeIntention<KtWhenExpression>(
KtWhenExpression::class.java,
"Lift return out of 'when' expression"
) {
override fun applicabilityRange(element: KtWhenExpression): TextRange? {
return if (BranchedFoldingUtils.canFoldToReturn(element)) element.whenKeyword.textRange else null
}
override fun applyTo(element: KtWhenExpression, editor: Editor?) {
BranchedFoldingUtils.foldToReturn(element)
}
}
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun test(n: Int) {
var a: String = ""
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun test(n: Int) {
val a: String
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun <T> doSomething(a: T) {}
fun test(n: Int): String {
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun test(s: String): Int {
var n: Int = 1;
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun test(n: Int): String {
var res: String = ""
var res2: String = ""
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun <T> doSomething(a: T) {}
fun test(n: Int): String {
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun <T> doSomething(a: T) {}
fun test(n: Int): String {
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun test(n: Int): String {
<caret>if (n == 1)
@@ -1,5 +1,3 @@
// IS_APPLICABLE: false
fun test(n: Int): String {
val a: String
<caret>if (n == 1)
@@ -0,0 +1,10 @@
fun test(n: Int): String {
val a: String
a = if (n == 1)
return "one"
else if (n == 2)
return "two"
else
"three"
return a
}
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun <T> doSomething(a: T) {}
fun test(n: Int): String {
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun <T> doSomething(a: T) {}
fun test(n: Int): String {
@@ -1,4 +1,4 @@
// IS_APPLICABLE: false
// PROBLEM: none
fun <T> doSomething(a: T) {}
fun test(n: Int): String {
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection
@@ -1 +0,0 @@
org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToAssignmentIntention
@@ -1 +0,0 @@
org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention
@@ -1 +0,0 @@
org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldWhenToAssignmentIntention
@@ -1 +0,0 @@
org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldWhenToReturnIntention
@@ -396,6 +396,249 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest {
}
}
@TestMetadata("idea/testData/inspectionsLocal/liftOut")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class LiftOut extends AbstractLocalInspectionTest {
public void testAllFilesPresentInLiftOut() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/inspectionsLocal/liftOut"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class IfToAssignment extends AbstractLocalInspectionTest {
public void testAllFilesPresentInIfToAssignment() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/inspectionsLocal/liftOut/ifToAssignment"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("cascadeIf.kt")
public void testCascadeIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/cascadeIf.kt");
doTest(fileName);
}
@TestMetadata("ifElseIf.kt")
public void testIfElseIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIf.kt");
doTest(fileName);
}
@TestMetadata("ifElseIfElse.kt")
public void testIfElseIfElse() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIfElse.kt");
doTest(fileName);
}
@TestMetadata("ifElseifElseInconsistent.kt")
public void testIfElseifElseInconsistent() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseifElseInconsistent.kt");
doTest(fileName);
}
@TestMetadata("innerIfTransformed.kt")
public void testInnerIfTransformed() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/innerIfTransformed.kt");
doTest(fileName);
}
@TestMetadata("simpleIf.kt")
public void testSimpleIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIf.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithAugmentedAssignment.kt")
public void testSimpleIfWithAugmentedAssignment() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithAugmentedAssignment.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithBlocks.kt")
public void testSimpleIfWithBlocks() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithBlocks.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithShadowedVar.kt")
public void testSimpleIfWithShadowedVar() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithShadowedVar.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithUnmatchedAssignmentOps.kt")
public void testSimpleIfWithUnmatchedAssignmentOps() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithUnmatchedAssignments.kt")
public void testSimpleIfWithUnmatchedAssignments() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithUnmatchedAssignments.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithoutElse.kt")
public void testSimpleIfWithoutElse() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithoutElse.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithoutTerminatingAssignment.kt")
public void testSimpleIfWithoutTerminatingAssignment() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/inspectionsLocal/liftOut/ifToReturn")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class IfToReturn extends AbstractLocalInspectionTest {
public void testAllFilesPresentInIfToReturn() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/inspectionsLocal/liftOut/ifToReturn"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("cascadeIf.kt")
public void testCascadeIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToReturn/cascadeIf.kt");
doTest(fileName);
}
@TestMetadata("ifElseIf.kt")
public void testIfElseIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIf.kt");
doTest(fileName);
}
@TestMetadata("ifElseIfElse.kt")
public void testIfElseIfElse() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElse.kt");
doTest(fileName);
}
@TestMetadata("ifElseIfElseInconsistent.kt")
public void testIfElseIfElseInconsistent() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElseInconsistent.kt");
doTest(fileName);
}
@TestMetadata("innerIfTransformed.kt")
public void testInnerIfTransformed() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToReturn/innerIfTransformed.kt");
doTest(fileName);
}
@TestMetadata("simpleIf.kt")
public void testSimpleIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIf.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithBlocks.kt")
public void testSimpleIfWithBlocks() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIfWithBlocks.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class WhenToAssignment extends AbstractLocalInspectionTest {
public void testAllFilesPresentInWhenToAssignment() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/inspectionsLocal/liftOut/whenToAssignment"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("cascadeWhen.kt")
public void testCascadeWhen() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment/cascadeWhen.kt");
doTest(fileName);
}
@TestMetadata("innerWhenTransformed.kt")
public void testInnerWhenTransformed() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment/innerWhenTransformed.kt");
doTest(fileName);
}
@TestMetadata("insideLoop.kt")
public void testInsideLoop() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment/insideLoop.kt");
doTest(fileName);
}
@TestMetadata("simpleWhen.kt")
public void testSimpleWhen() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhen.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithBlocks.kt")
public void testSimpleWhenWithBlocks() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithBlocks.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithShadowedVar.kt")
public void testSimpleWhenWithShadowedVar() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithShadowedVar.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithUnmatchedAssignments.kt")
public void testSimpleWhenWithUnmatchedAssignments() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithoutTerminatingAssignment.kt")
public void testSimpleWhenWithoutTerminatingAssignment() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/inspectionsLocal/liftOut/whenToReturn")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class WhenToReturn extends AbstractLocalInspectionTest {
public void testAllFilesPresentInWhenToReturn() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/inspectionsLocal/liftOut/whenToReturn"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("cascadeWhen.kt")
public void testCascadeWhen() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToReturn/cascadeWhen.kt");
doTest(fileName);
}
@TestMetadata("innerWhenTransformed.kt")
public void testInnerWhenTransformed() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToReturn/innerWhenTransformed.kt");
doTest(fileName);
}
@TestMetadata("insideLoop.kt")
public void testInsideLoop() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToReturn/insideLoop.kt");
doTest(fileName);
}
@TestMetadata("simpleWhen.kt")
public void testSimpleWhen() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhen.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithBlocks.kt")
public void testSimpleWhenWithBlocks() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhenWithBlocks.kt");
doTest(fileName);
}
}
}
@TestMetadata("idea/testData/inspectionsLocal/moveSuspiciousCallableReferenceIntoParentheses")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -967,144 +967,6 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/branched/folding"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("idea/testData/intentions/branched/folding/ifToAssignment")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class IfToAssignment extends AbstractIntentionTest {
public void testAllFilesPresentInIfToAssignment() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/branched/folding/ifToAssignment"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("cascadeIf.kt")
public void testCascadeIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/cascadeIf.kt");
doTest(fileName);
}
@TestMetadata("ifElseIf.kt")
public void testIfElseIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/ifElseIf.kt");
doTest(fileName);
}
@TestMetadata("ifElseIfElse.kt")
public void testIfElseIfElse() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/ifElseIfElse.kt");
doTest(fileName);
}
@TestMetadata("ifElseifElseInconsistent.kt")
public void testIfElseifElseInconsistent() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/ifElseifElseInconsistent.kt");
doTest(fileName);
}
@TestMetadata("innerIfTransformed.kt")
public void testInnerIfTransformed() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/innerIfTransformed.kt");
doTest(fileName);
}
@TestMetadata("simpleIf.kt")
public void testSimpleIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/simpleIf.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithAugmentedAssignment.kt")
public void testSimpleIfWithAugmentedAssignment() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithAugmentedAssignment.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithBlocks.kt")
public void testSimpleIfWithBlocks() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithBlocks.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithShadowedVar.kt")
public void testSimpleIfWithShadowedVar() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithShadowedVar.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithUnmatchedAssignmentOps.kt")
public void testSimpleIfWithUnmatchedAssignmentOps() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithUnmatchedAssignments.kt")
public void testSimpleIfWithUnmatchedAssignments() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithUnmatchedAssignments.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithoutElse.kt")
public void testSimpleIfWithoutElse() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithoutElse.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithoutTerminatingAssignment.kt")
public void testSimpleIfWithoutTerminatingAssignment() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/intentions/branched/folding/ifToReturn")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class IfToReturn extends AbstractIntentionTest {
public void testAllFilesPresentInIfToReturn() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/branched/folding/ifToReturn"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("cascadeIf.kt")
public void testCascadeIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToReturn/cascadeIf.kt");
doTest(fileName);
}
@TestMetadata("ifElseIf.kt")
public void testIfElseIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToReturn/ifElseIf.kt");
doTest(fileName);
}
@TestMetadata("ifElseIfElse.kt")
public void testIfElseIfElse() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElse.kt");
doTest(fileName);
}
@TestMetadata("ifElseIfElseInconsistent.kt")
public void testIfElseIfElseInconsistent() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElseInconsistent.kt");
doTest(fileName);
}
@TestMetadata("innerIfTransformed.kt")
public void testInnerIfTransformed() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToReturn/innerIfTransformed.kt");
doTest(fileName);
}
@TestMetadata("simpleIf.kt")
public void testSimpleIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToReturn/simpleIf.kt");
doTest(fileName);
}
@TestMetadata("simpleIfWithBlocks.kt")
public void testSimpleIfWithBlocks() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/ifToReturn/simpleIfWithBlocks.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/intentions/branched/folding/ifToReturnAsymmetrically")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -1131,102 +993,6 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
doTest(fileName);
}
}
@TestMetadata("idea/testData/intentions/branched/folding/whenToAssignment")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class WhenToAssignment extends AbstractIntentionTest {
public void testAllFilesPresentInWhenToAssignment() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/branched/folding/whenToAssignment"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("cascadeWhen.kt")
public void testCascadeWhen() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToAssignment/cascadeWhen.kt");
doTest(fileName);
}
@TestMetadata("innerWhenTransformed.kt")
public void testInnerWhenTransformed() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToAssignment/innerWhenTransformed.kt");
doTest(fileName);
}
@TestMetadata("insideLoop.kt")
public void testInsideLoop() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToAssignment/insideLoop.kt");
doTest(fileName);
}
@TestMetadata("simpleWhen.kt")
public void testSimpleWhen() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToAssignment/simpleWhen.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithBlocks.kt")
public void testSimpleWhenWithBlocks() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithBlocks.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithShadowedVar.kt")
public void testSimpleWhenWithShadowedVar() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithShadowedVar.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithUnmatchedAssignments.kt")
public void testSimpleWhenWithUnmatchedAssignments() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithoutTerminatingAssignment.kt")
public void testSimpleWhenWithoutTerminatingAssignment() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/intentions/branched/folding/whenToReturn")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class WhenToReturn extends AbstractIntentionTest {
public void testAllFilesPresentInWhenToReturn() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/branched/folding/whenToReturn"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("cascadeWhen.kt")
public void testCascadeWhen() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToReturn/cascadeWhen.kt");
doTest(fileName);
}
@TestMetadata("innerWhenTransformed.kt")
public void testInnerWhenTransformed() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToReturn/innerWhenTransformed.kt");
doTest(fileName);
}
@TestMetadata("insideLoop.kt")
public void testInsideLoop() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToReturn/insideLoop.kt");
doTest(fileName);
}
@TestMetadata("simpleWhen.kt")
public void testSimpleWhen() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToReturn/simpleWhen.kt");
doTest(fileName);
}
@TestMetadata("simpleWhenWithBlocks.kt")
public void testSimpleWhenWithBlocks() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/branched/folding/whenToReturn/simpleWhenWithBlocks.kt");
doTest(fileName);
}
}
}
@TestMetadata("idea/testData/intentions/branched/ifThenToDoubleBang")