From 2d1abda9a12628c0eee4927c38ab6e04df51c764 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 27 Jun 2017 13:01:33 +0300 Subject: [PATCH] Convert "lift return / assignment" intentions into a single inspection Also includes minor test fix, related to KT-14900 --- .../LiftReturnOrAssignment.html | 14 + .../after.kt.template | 5 - .../before.kt.template | 5 - .../after.kt.template | 5 - .../before.kt.template | 5 - .../after.kt.template | 5 - .../before.kt.template | 5 - .../after.kt.template | 5 - .../before.kt.template | 5 - .../after.kt.template | 5 - .../before.kt.template | 5 - .../description.html | 5 - .../FoldIfToReturnIntention/after.kt.template | 5 - .../before.kt.template | 5 - .../FoldIfToReturnIntention/description.html | 5 - .../after.kt.template | 5 - .../before.kt.template | 5 - .../description.html | 5 - .../after.kt.template | 5 - .../before.kt.template | 5 - .../description.html | 5 - idea/src/META-INF/plugin.xml | 29 +-- .../LiftReturnOrAssignmentInspection.kt | 82 ++++++ .../intentions/FoldIfToAssignmentIntention.kt | 36 --- .../FoldWhenToAssignmentIntention.kt | 36 --- .../intentions/FoldWhenToReturnIntention.kt | 37 --- .../liftOut/ifToAssignment/.inspection | 1 + .../liftOut}/ifToAssignment/cascadeIf.kt | 0 .../ifToAssignment/cascadeIf.kt.after | 0 .../liftOut}/ifToAssignment/ifElseIf.kt | 2 +- .../liftOut}/ifToAssignment/ifElseIfElse.kt | 0 .../ifToAssignment/ifElseIfElse.kt.after | 0 .../ifElseifElseInconsistent.kt | 2 +- .../ifToAssignment/innerIfTransformed.kt | 0 .../innerIfTransformed.kt.after | 0 .../liftOut}/ifToAssignment/simpleIf.kt | 0 .../liftOut}/ifToAssignment/simpleIf.kt.after | 0 .../simpleIfWithAugmentedAssignment.kt | 0 .../simpleIfWithAugmentedAssignment.kt.after | 0 .../ifToAssignment/simpleIfWithBlocks.kt | 0 .../simpleIfWithBlocks.kt.after | 0 .../ifToAssignment/simpleIfWithShadowedVar.kt | 2 +- .../simpleIfWithUnmatchedAssignmentOps.kt | 2 +- .../simpleIfWithUnmatchedAssignments.kt | 2 +- .../ifToAssignment/simpleIfWithoutElse.kt | 2 +- .../simpleIfWithoutTerminatingAssignment.kt | 2 +- .../liftOut/ifToReturn/.inspection | 1 + .../liftOut}/ifToReturn/cascadeIf.kt | 0 .../liftOut}/ifToReturn/cascadeIf.kt.after | 0 .../liftOut}/ifToReturn/ifElseIf.kt | 2 +- .../liftOut}/ifToReturn/ifElseIfElse.kt | 0 .../liftOut}/ifToReturn/ifElseIfElse.kt.after | 0 .../ifToReturn/ifElseIfElseInconsistent.kt | 2 - .../ifElseIfElseInconsistent.kt.after | 10 + .../liftOut}/ifToReturn/innerIfTransformed.kt | 0 .../ifToReturn/innerIfTransformed.kt.after | 0 .../liftOut}/ifToReturn/simpleIf.kt | 0 .../liftOut}/ifToReturn/simpleIf.kt.after | 0 .../liftOut}/ifToReturn/simpleIfWithBlocks.kt | 0 .../ifToReturn/simpleIfWithBlocks.kt.after | 0 .../liftOut/whenToAssignment/.inspection | 1 + .../liftOut}/whenToAssignment/cascadeWhen.kt | 0 .../whenToAssignment/cascadeWhen.kt.after | 0 .../whenToAssignment/innerWhenTransformed.kt | 0 .../innerWhenTransformed.kt.after | 0 .../liftOut}/whenToAssignment/insideLoop.kt | 0 .../whenToAssignment/insideLoop.kt.after | 0 .../liftOut}/whenToAssignment/simpleWhen.kt | 0 .../whenToAssignment/simpleWhen.kt.after | 0 .../whenToAssignment/simpleWhenWithBlocks.kt | 0 .../simpleWhenWithBlocks.kt.after | 0 .../simpleWhenWithShadowedVar.kt | 2 +- .../simpleWhenWithUnmatchedAssignments.kt | 2 +- .../simpleWhenWithoutTerminatingAssignment.kt | 2 +- .../liftOut/whenToReturn/.inspection | 1 + .../liftOut}/whenToReturn/cascadeWhen.kt | 0 .../whenToReturn/cascadeWhen.kt.after | 0 .../whenToReturn/innerWhenTransformed.kt | 0 .../innerWhenTransformed.kt.after | 0 .../liftOut}/whenToReturn/insideLoop.kt | 0 .../liftOut}/whenToReturn/insideLoop.kt.after | 0 .../liftOut}/whenToReturn/simpleWhen.kt | 0 .../liftOut}/whenToReturn/simpleWhen.kt.after | 0 .../whenToReturn/simpleWhenWithBlocks.kt | 0 .../simpleWhenWithBlocks.kt.after | 0 .../folding/ifToAssignment/.intention | 1 - .../branched/folding/ifToReturn/.intention | 1 - .../folding/whenToAssignment/.intention | 1 - .../branched/folding/whenToReturn/.intention | 1 - .../LocalInspectionTestGenerated.java | 243 ++++++++++++++++++ .../intentions/IntentionTestGenerated.java | 234 ----------------- 91 files changed, 373 insertions(+), 480 deletions(-) create mode 100644 idea/resources/inspectionDescriptions/LiftReturnOrAssignment.html delete mode 100644 idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToAssignmentIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToAssignmentIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToReturnIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToReturnIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToAssignmentIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToAssignmentIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToReturnIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToReturnIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/description.html delete mode 100644 idea/resources/intentionDescriptions/FoldIfToReturnIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldIfToReturnIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldIfToReturnIntention/description.html delete mode 100644 idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/description.html delete mode 100644 idea/resources/intentionDescriptions/FoldWhenToReturnIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldWhenToReturnIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/FoldWhenToReturnIntention/description.html create mode 100644 idea/src/org/jetbrains/kotlin/idea/inspections/LiftReturnOrAssignmentInspection.kt delete mode 100644 idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldIfToAssignmentIntention.kt delete mode 100644 idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldWhenToAssignmentIntention.kt delete mode 100644 idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldWhenToReturnIntention.kt create mode 100644 idea/testData/inspectionsLocal/liftOut/ifToAssignment/.inspection rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/cascadeIf.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/cascadeIf.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/ifElseIf.kt (83%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/ifElseIfElse.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/ifElseIfElse.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/ifElseifElseInconsistent.kt (87%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/innerIfTransformed.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/innerIfTransformed.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIf.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIf.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithAugmentedAssignment.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithAugmentedAssignment.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithBlocks.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithBlocks.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithShadowedVar.kt (91%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt (85%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithUnmatchedAssignments.kt (88%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithoutElse.kt (88%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt (90%) create mode 100644 idea/testData/inspectionsLocal/liftOut/ifToReturn/.inspection rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/cascadeIf.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/cascadeIf.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/ifElseIf.kt (84%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/ifElseIfElse.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/ifElseIfElse.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/ifElseIfElseInconsistent.kt (87%) create mode 100644 idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElseInconsistent.kt.after rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/innerIfTransformed.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/innerIfTransformed.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/simpleIf.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/simpleIf.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/simpleIfWithBlocks.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/ifToReturn/simpleIfWithBlocks.kt.after (100%) create mode 100644 idea/testData/inspectionsLocal/liftOut/whenToAssignment/.inspection rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/cascadeWhen.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/cascadeWhen.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/innerWhenTransformed.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/innerWhenTransformed.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/insideLoop.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/insideLoop.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/simpleWhen.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/simpleWhen.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/simpleWhenWithBlocks.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/simpleWhenWithBlocks.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/simpleWhenWithShadowedVar.kt (93%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt (93%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt (93%) create mode 100644 idea/testData/inspectionsLocal/liftOut/whenToReturn/.inspection rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/cascadeWhen.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/cascadeWhen.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/innerWhenTransformed.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/innerWhenTransformed.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/insideLoop.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/insideLoop.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/simpleWhen.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/simpleWhen.kt.after (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/simpleWhenWithBlocks.kt (100%) rename idea/testData/{intentions/branched/folding => inspectionsLocal/liftOut}/whenToReturn/simpleWhenWithBlocks.kt.after (100%) delete mode 100644 idea/testData/intentions/branched/folding/ifToAssignment/.intention delete mode 100644 idea/testData/intentions/branched/folding/ifToReturn/.intention delete mode 100644 idea/testData/intentions/branched/folding/whenToAssignment/.intention delete mode 100644 idea/testData/intentions/branched/folding/whenToReturn/.intention diff --git a/idea/resources/inspectionDescriptions/LiftReturnOrAssignment.html b/idea/resources/inspectionDescriptions/LiftReturnOrAssignment.html new file mode 100644 index 00000000000..4f10ebf98d8 --- /dev/null +++ b/idea/resources/inspectionDescriptions/LiftReturnOrAssignment.html @@ -0,0 +1,14 @@ + + +This inspection reports if and when statements that can be converted to expressions +by lifting return or assignment out. Typical example: +
+fun foo(arg: Boolean): String {
+    when (arg) {
+        true -> return "Truth"
+        false -> return "Falsehood"
+    }
+}
+
+ + \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToAssignmentIntention/after.kt.template b/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToAssignmentIntention/after.kt.template deleted file mode 100644 index 81e1d86690b..00000000000 --- a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToAssignmentIntention/after.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -res = if (ok) { - "ok" -} else { - "failed" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToAssignmentIntention/before.kt.template b/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToAssignmentIntention/before.kt.template deleted file mode 100644 index 03c87bc1010..00000000000 --- a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToAssignmentIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -if (ok) { - res = "ok" -} else { - res = "failed" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToReturnIntention/after.kt.template b/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToReturnIntention/after.kt.template deleted file mode 100644 index 0394cfc84c6..00000000000 --- a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToReturnIntention/after.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -return if (ok) { - "ok" -} else { - "failed" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToReturnIntention/before.kt.template b/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToReturnIntention/before.kt.template deleted file mode 100644 index 2cdc1aaaa9f..00000000000 --- a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldIfToReturnIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -if (ok) { - return "ok" -} else { - return "failed" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToAssignmentIntention/after.kt.template b/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToAssignmentIntention/after.kt.template deleted file mode 100644 index 12ecbd93619..00000000000 --- a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToAssignmentIntention/after.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -res = when (n) { - 1 -> "one" - 2 -> "two" - else -> "many" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToAssignmentIntention/before.kt.template b/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToAssignmentIntention/before.kt.template deleted file mode 100644 index a059e3024f7..00000000000 --- a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToAssignmentIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -when (n) { - 1 -> res = "one" - 2 -> res = "two" - else -> res = "many" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToReturnIntention/after.kt.template b/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToReturnIntention/after.kt.template deleted file mode 100644 index ec9b48b8a9b..00000000000 --- a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToReturnIntention/after.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -return when (n) { - 1 -> "one" - 2 -> "two" - else -> "many" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToReturnIntention/before.kt.template b/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToReturnIntention/before.kt.template deleted file mode 100644 index 9ea6721ea13..00000000000 --- a/idea/resources/intentionDescriptions/FoldBranchedExpressionIntentionFoldWhenToReturnIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -when (n) { - 1 -> return "one" - 2 -> return "two" - else -> return "many" -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/after.kt.template b/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/after.kt.template deleted file mode 100644 index 10d7a35ac23..00000000000 --- a/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/after.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -res = if (ok) { - "ok" -} else { - "failed" -} diff --git a/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/before.kt.template b/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/before.kt.template deleted file mode 100644 index 556ea2de7b6..00000000000 --- a/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -if (ok) { - res = "ok" -} else { - res = "failed" -} diff --git a/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/description.html b/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/description.html deleted file mode 100644 index 284d93bc790..00000000000 --- a/idea/resources/intentionDescriptions/FoldIfToAssignmentIntention/description.html +++ /dev/null @@ -1,5 +0,0 @@ - - -This intention converts 'if' expression where each branch is terminated with assignment into a single assignment with 'if' expression as a right-hand side - - diff --git a/idea/resources/intentionDescriptions/FoldIfToReturnIntention/after.kt.template b/idea/resources/intentionDescriptions/FoldIfToReturnIntention/after.kt.template deleted file mode 100644 index d930f801a5f..00000000000 --- a/idea/resources/intentionDescriptions/FoldIfToReturnIntention/after.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -return if (ok) { - "ok" -} else { - "failed" -} diff --git a/idea/resources/intentionDescriptions/FoldIfToReturnIntention/before.kt.template b/idea/resources/intentionDescriptions/FoldIfToReturnIntention/before.kt.template deleted file mode 100644 index ed1dec6fcc2..00000000000 --- a/idea/resources/intentionDescriptions/FoldIfToReturnIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -if (ok) { - return "ok" -} else { - return "failed" -} diff --git a/idea/resources/intentionDescriptions/FoldIfToReturnIntention/description.html b/idea/resources/intentionDescriptions/FoldIfToReturnIntention/description.html deleted file mode 100644 index 74dc1dd7d5c..00000000000 --- a/idea/resources/intentionDescriptions/FoldIfToReturnIntention/description.html +++ /dev/null @@ -1,5 +0,0 @@ - - -This intention converts 'if' expression where each branch is terminated with 'return' into a single 'return' with 'if' expression as a right-hand side - - diff --git a/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/after.kt.template b/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/after.kt.template deleted file mode 100644 index 25effcc8557..00000000000 --- a/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/after.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -res = when (n) { - 1 -> "one" - 2 -> "two" - else -> "many" -} diff --git a/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/before.kt.template b/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/before.kt.template deleted file mode 100644 index 419247f332d..00000000000 --- a/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -when (n) { - 1 -> res = "one" - 2 -> res = "two" - else -> res = "many" -} diff --git a/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/description.html b/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/description.html deleted file mode 100644 index b22cfe66113..00000000000 --- a/idea/resources/intentionDescriptions/FoldWhenToAssignmentIntention/description.html +++ /dev/null @@ -1,5 +0,0 @@ - - -This intention converts 'when' expression where each branch is terminated with assignment into a single assignment with 'when' expression as right-hand side - - diff --git a/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/after.kt.template b/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/after.kt.template deleted file mode 100644 index 7a228b1bf03..00000000000 --- a/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/after.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -return when (n) { - 1 -> "one" - 2 -> "two" - else -> "many" -} diff --git a/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/before.kt.template b/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/before.kt.template deleted file mode 100644 index 993f70971cb..00000000000 --- a/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/before.kt.template +++ /dev/null @@ -1,5 +0,0 @@ -when (n) { - 1 -> return "one" - 2 -> return "two" - else -> return "many" -} diff --git a/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/description.html b/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/description.html deleted file mode 100644 index 846a62ea0bc..00000000000 --- a/idea/resources/intentionDescriptions/FoldWhenToReturnIntention/description.html +++ /dev/null @@ -1,5 +0,0 @@ - - -This intention converts 'when' expression where each branch is terminated with 'return' into a single 'return' with 'when' expression as a right-hand side - - diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 434600efd3e..d563bac8406 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -858,11 +858,6 @@ Kotlin - - org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToAssignmentIntention - Kotlin - - org.jetbrains.kotlin.idea.intentions.conventionNameCalls.ReplaceGetOrSetIntention Kotlin @@ -893,21 +888,6 @@ Kotlin - - org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention - Kotlin - - - - org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldWhenToAssignmentIntention - Kotlin - - - - org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldWhenToReturnIntention - Kotlin - - org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.UnfoldAssignmentToIfIntention Kotlin @@ -2380,6 +2360,15 @@ language="kotlin" /> + + diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/LiftReturnOrAssignmentInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/LiftReturnOrAssignmentInspection.kt new file mode 100644 index 00000000000..5bc50ffa98d --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/LiftReturnOrAssignmentInspection.kt @@ -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)!!) + } + } +} diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldIfToAssignmentIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldIfToAssignmentIntention.kt deleted file mode 100644 index 180b1254d44..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldIfToAssignmentIntention.kt +++ /dev/null @@ -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::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) - } -} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldWhenToAssignmentIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldWhenToAssignmentIntention.kt deleted file mode 100644 index 4df216cf848..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldWhenToAssignmentIntention.kt +++ /dev/null @@ -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::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) - } -} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldWhenToReturnIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldWhenToReturnIntention.kt deleted file mode 100644 index 37c0787b626..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/FoldWhenToReturnIntention.kt +++ /dev/null @@ -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::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) - } -} \ No newline at end of file diff --git a/idea/testData/inspectionsLocal/liftOut/ifToAssignment/.inspection b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/.inspection new file mode 100644 index 00000000000..6440b445789 --- /dev/null +++ b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/.inspection @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/cascadeIf.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/cascadeIf.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/cascadeIf.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/cascadeIf.kt diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/cascadeIf.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/cascadeIf.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/cascadeIf.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/cascadeIf.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/ifElseIf.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIf.kt similarity index 83% rename from idea/testData/intentions/branched/folding/ifToAssignment/ifElseIf.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIf.kt index f1d3fe9609e..b44fa9c1374 100644 --- a/idea/testData/intentions/branched/folding/ifToAssignment/ifElseIf.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIf.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun test(n: Int) { var a: String = "" diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/ifElseIfElse.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIfElse.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/ifElseIfElse.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIfElse.kt diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/ifElseIfElse.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIfElse.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/ifElseIfElse.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseIfElse.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/ifElseifElseInconsistent.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseifElseInconsistent.kt similarity index 87% rename from idea/testData/intentions/branched/folding/ifToAssignment/ifElseifElseInconsistent.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseifElseInconsistent.kt index 878d8bbf7a2..cbdc126cb3d 100644 --- a/idea/testData/intentions/branched/folding/ifToAssignment/ifElseifElseInconsistent.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/ifElseifElseInconsistent.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun test(n: Int) { val a: String diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/innerIfTransformed.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/innerIfTransformed.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/innerIfTransformed.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/innerIfTransformed.kt diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/innerIfTransformed.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/innerIfTransformed.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/innerIfTransformed.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/innerIfTransformed.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIf.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIf.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIf.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIf.kt diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIf.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIf.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIf.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIf.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithAugmentedAssignment.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithAugmentedAssignment.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithAugmentedAssignment.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithAugmentedAssignment.kt diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithAugmentedAssignment.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithAugmentedAssignment.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithAugmentedAssignment.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithAugmentedAssignment.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithBlocks.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithBlocks.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithBlocks.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithBlocks.kt diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithBlocks.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithBlocks.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithBlocks.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithBlocks.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithShadowedVar.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithShadowedVar.kt similarity index 91% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithShadowedVar.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithShadowedVar.kt index 88185ab3d3a..a6ad3c063f8 100644 --- a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithShadowedVar.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithShadowedVar.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun doSomething(a: T) {} fun test(n: Int): String { diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt similarity index 85% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt index e7a6033e708..dc769ef6008 100644 --- a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithUnmatchedAssignmentOps.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun test(s: String): Int { var n: Int = 1; diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithUnmatchedAssignments.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithUnmatchedAssignments.kt similarity index 88% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithUnmatchedAssignments.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithUnmatchedAssignments.kt index 38c0aeabbec..ca41f9edbde 100644 --- a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithUnmatchedAssignments.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithUnmatchedAssignments.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun test(n: Int): String { var res: String = "" var res2: String = "" diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithoutElse.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithoutElse.kt similarity index 88% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithoutElse.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithoutElse.kt index 9e66b34aa9f..9a84bec9c90 100644 --- a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithoutElse.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithoutElse.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun doSomething(a: T) {} fun test(n: Int): String { diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt similarity index 90% rename from idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt rename to idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt index a5994e9529b..d61778356fe 100644 --- a/idea/testData/intentions/branched/folding/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToAssignment/simpleIfWithoutTerminatingAssignment.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun doSomething(a: T) {} fun test(n: Int): String { diff --git a/idea/testData/inspectionsLocal/liftOut/ifToReturn/.inspection b/idea/testData/inspectionsLocal/liftOut/ifToReturn/.inspection new file mode 100644 index 00000000000..6440b445789 --- /dev/null +++ b/idea/testData/inspectionsLocal/liftOut/ifToReturn/.inspection @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection diff --git a/idea/testData/intentions/branched/folding/ifToReturn/cascadeIf.kt b/idea/testData/inspectionsLocal/liftOut/ifToReturn/cascadeIf.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/cascadeIf.kt rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/cascadeIf.kt diff --git a/idea/testData/intentions/branched/folding/ifToReturn/cascadeIf.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToReturn/cascadeIf.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/cascadeIf.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/cascadeIf.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToReturn/ifElseIf.kt b/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIf.kt similarity index 84% rename from idea/testData/intentions/branched/folding/ifToReturn/ifElseIf.kt rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIf.kt index 23a4548eeff..ccbab29cc89 100644 --- a/idea/testData/intentions/branched/folding/ifToReturn/ifElseIf.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIf.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun test(n: Int): String { if (n == 1) diff --git a/idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElse.kt b/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElse.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElse.kt rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElse.kt diff --git a/idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElse.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElse.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElse.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElse.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElseInconsistent.kt b/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElseInconsistent.kt similarity index 87% rename from idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElseInconsistent.kt rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElseInconsistent.kt index ce08edf5cff..6ad82b3a3e3 100644 --- a/idea/testData/intentions/branched/folding/ifToReturn/ifElseIfElseInconsistent.kt +++ b/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElseInconsistent.kt @@ -1,5 +1,3 @@ -// IS_APPLICABLE: false - fun test(n: Int): String { val a: String if (n == 1) diff --git a/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElseInconsistent.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElseInconsistent.kt.after new file mode 100644 index 00000000000..c567a99760c --- /dev/null +++ b/idea/testData/inspectionsLocal/liftOut/ifToReturn/ifElseIfElseInconsistent.kt.after @@ -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 +} \ No newline at end of file diff --git a/idea/testData/intentions/branched/folding/ifToReturn/innerIfTransformed.kt b/idea/testData/inspectionsLocal/liftOut/ifToReturn/innerIfTransformed.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/innerIfTransformed.kt rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/innerIfTransformed.kt diff --git a/idea/testData/intentions/branched/folding/ifToReturn/innerIfTransformed.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToReturn/innerIfTransformed.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/innerIfTransformed.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/innerIfTransformed.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToReturn/simpleIf.kt b/idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIf.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/simpleIf.kt rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIf.kt diff --git a/idea/testData/intentions/branched/folding/ifToReturn/simpleIf.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIf.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/simpleIf.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIf.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToReturn/simpleIfWithBlocks.kt b/idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIfWithBlocks.kt similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/simpleIfWithBlocks.kt rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIfWithBlocks.kt diff --git a/idea/testData/intentions/branched/folding/ifToReturn/simpleIfWithBlocks.kt.after b/idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIfWithBlocks.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/ifToReturn/simpleIfWithBlocks.kt.after rename to idea/testData/inspectionsLocal/liftOut/ifToReturn/simpleIfWithBlocks.kt.after diff --git a/idea/testData/inspectionsLocal/liftOut/whenToAssignment/.inspection b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/.inspection new file mode 100644 index 00000000000..6440b445789 --- /dev/null +++ b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/.inspection @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/cascadeWhen.kt b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/cascadeWhen.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/cascadeWhen.kt rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/cascadeWhen.kt diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/cascadeWhen.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/cascadeWhen.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/cascadeWhen.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/cascadeWhen.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/innerWhenTransformed.kt b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/innerWhenTransformed.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/innerWhenTransformed.kt rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/innerWhenTransformed.kt diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/innerWhenTransformed.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/innerWhenTransformed.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/innerWhenTransformed.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/innerWhenTransformed.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/insideLoop.kt b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/insideLoop.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/insideLoop.kt rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/insideLoop.kt diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/insideLoop.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/insideLoop.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/insideLoop.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/insideLoop.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhen.kt b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhen.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/simpleWhen.kt rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhen.kt diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhen.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhen.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/simpleWhen.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhen.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithBlocks.kt b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithBlocks.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithBlocks.kt rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithBlocks.kt diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithBlocks.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithBlocks.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithBlocks.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithBlocks.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithShadowedVar.kt b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithShadowedVar.kt similarity index 93% rename from idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithShadowedVar.kt rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithShadowedVar.kt index 98e8e4dbab8..57d8c552c7d 100644 --- a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithShadowedVar.kt +++ b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithShadowedVar.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun doSomething(a: T) {} fun test(n: Int): String { diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt similarity index 93% rename from idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt index f37e9167cf0..b8a1fc8f2f3 100644 --- a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt +++ b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithUnmatchedAssignments.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun doSomething(a: T) {} fun test(n: Int): String { diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt similarity index 93% rename from idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt rename to idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt index a9fffea7f17..12eead845a7 100644 --- a/idea/testData/intentions/branched/folding/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt +++ b/idea/testData/inspectionsLocal/liftOut/whenToAssignment/simpleWhenWithoutTerminatingAssignment.kt @@ -1,4 +1,4 @@ -// IS_APPLICABLE: false +// PROBLEM: none fun doSomething(a: T) {} fun test(n: Int): String { diff --git a/idea/testData/inspectionsLocal/liftOut/whenToReturn/.inspection b/idea/testData/inspectionsLocal/liftOut/whenToReturn/.inspection new file mode 100644 index 00000000000..6440b445789 --- /dev/null +++ b/idea/testData/inspectionsLocal/liftOut/whenToReturn/.inspection @@ -0,0 +1 @@ +org.jetbrains.kotlin.idea.inspections.LiftReturnOrAssignmentInspection diff --git a/idea/testData/intentions/branched/folding/whenToReturn/cascadeWhen.kt b/idea/testData/inspectionsLocal/liftOut/whenToReturn/cascadeWhen.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/cascadeWhen.kt rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/cascadeWhen.kt diff --git a/idea/testData/intentions/branched/folding/whenToReturn/cascadeWhen.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToReturn/cascadeWhen.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/cascadeWhen.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/cascadeWhen.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToReturn/innerWhenTransformed.kt b/idea/testData/inspectionsLocal/liftOut/whenToReturn/innerWhenTransformed.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/innerWhenTransformed.kt rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/innerWhenTransformed.kt diff --git a/idea/testData/intentions/branched/folding/whenToReturn/innerWhenTransformed.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToReturn/innerWhenTransformed.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/innerWhenTransformed.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/innerWhenTransformed.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToReturn/insideLoop.kt b/idea/testData/inspectionsLocal/liftOut/whenToReturn/insideLoop.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/insideLoop.kt rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/insideLoop.kt diff --git a/idea/testData/intentions/branched/folding/whenToReturn/insideLoop.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToReturn/insideLoop.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/insideLoop.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/insideLoop.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToReturn/simpleWhen.kt b/idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhen.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/simpleWhen.kt rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhen.kt diff --git a/idea/testData/intentions/branched/folding/whenToReturn/simpleWhen.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhen.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/simpleWhen.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhen.kt.after diff --git a/idea/testData/intentions/branched/folding/whenToReturn/simpleWhenWithBlocks.kt b/idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhenWithBlocks.kt similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/simpleWhenWithBlocks.kt rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhenWithBlocks.kt diff --git a/idea/testData/intentions/branched/folding/whenToReturn/simpleWhenWithBlocks.kt.after b/idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhenWithBlocks.kt.after similarity index 100% rename from idea/testData/intentions/branched/folding/whenToReturn/simpleWhenWithBlocks.kt.after rename to idea/testData/inspectionsLocal/liftOut/whenToReturn/simpleWhenWithBlocks.kt.after diff --git a/idea/testData/intentions/branched/folding/ifToAssignment/.intention b/idea/testData/intentions/branched/folding/ifToAssignment/.intention deleted file mode 100644 index cbc2161d549..00000000000 --- a/idea/testData/intentions/branched/folding/ifToAssignment/.intention +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToAssignmentIntention diff --git a/idea/testData/intentions/branched/folding/ifToReturn/.intention b/idea/testData/intentions/branched/folding/ifToReturn/.intention deleted file mode 100644 index 94d4de3927f..00000000000 --- a/idea/testData/intentions/branched/folding/ifToReturn/.intention +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldIfToReturnIntention diff --git a/idea/testData/intentions/branched/folding/whenToAssignment/.intention b/idea/testData/intentions/branched/folding/whenToAssignment/.intention deleted file mode 100644 index c06272191d9..00000000000 --- a/idea/testData/intentions/branched/folding/whenToAssignment/.intention +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldWhenToAssignmentIntention diff --git a/idea/testData/intentions/branched/folding/whenToReturn/.intention b/idea/testData/intentions/branched/folding/whenToReturn/.intention deleted file mode 100644 index 81d77bdef49..00000000000 --- a/idea/testData/intentions/branched/folding/whenToReturn/.intention +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.FoldWhenToReturnIntention diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index 28bff08c8d2..e9aa900abbe 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -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) diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 805fc13ad5b..54037b30d2d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -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")