diff --git a/generators/org/jetbrains/jet/generators/tests/GenerateTests.java b/generators/org/jetbrains/jet/generators/tests/GenerateTests.java index 25e534362f2..ed3cde6478f 100644 --- a/generators/org/jetbrains/jet/generators/tests/GenerateTests.java +++ b/generators/org/jetbrains/jet/generators/tests/GenerateTests.java @@ -313,7 +313,12 @@ public class GenerateTests { testModel("idea/testData/codeInsight/codeTransformations/branched/unfolding/assignmentToIf", "doTestUnfoldAssignmentToIf"), testModel("idea/testData/codeInsight/codeTransformations/branched/unfolding/assignmentToWhen", "doTestUnfoldAssignmentToWhen"), testModel("idea/testData/codeInsight/codeTransformations/branched/unfolding/returnToIf", "doTestUnfoldReturnToIf"), - testModel("idea/testData/codeInsight/codeTransformations/branched/unfolding/returnToWhen", "doTestUnfoldReturnToWhen") + testModel("idea/testData/codeInsight/codeTransformations/branched/unfolding/returnToWhen", "doTestUnfoldReturnToWhen"), + testModel("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen", "doTestIfToWhen"), + testModel("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf", "doTestWhenToIf"), + testModel("idea/testData/codeInsight/codeTransformations/branched/when/flatten", "doTestFlattenWhen"), + testModel("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject", "doTestIntroduceWhenSubject"), + testModel("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject", "doTestEliminateWhenSubject") ); generateTest( diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithEqualityTests.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithEqualityTests.kt new file mode 100644 index 00000000000..47fca307d3c --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithEqualityTests.kt @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if (n == 0) + "zero" + else if (n == 1) + "one" + else if (n == 2) + "two" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithEqualityTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithEqualityTests.kt.after new file mode 100644 index 00000000000..37e018ca2c2 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithEqualityTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n == 0 -> "zero" + n == 1 -> "one" + n == 2 -> "two" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithIs.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithIs.kt new file mode 100644 index 00000000000..af99f2543d2 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithIs.kt @@ -0,0 +1,9 @@ +fun test(obj: Any): String { + return if (obj is String) + "string" + else if (obj is Int) + "int" + else if (obj is Class<*>) + "class" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithIs.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithIs.kt.after new file mode 100644 index 00000000000..3fd81cd40a8 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithIs.kt.after @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when { + obj is String -> "string" + obj is Int -> "int" + obj is Class<*> -> "class" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithMultiConditions.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithMultiConditions.kt new file mode 100644 index 00000000000..1b1e1a0b2b8 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithMultiConditions.kt @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if ((n < 0) || (n > 1000)) + "unknown" + else if (n <= 10) + "small" + else if (n <= 100) + "average" + else "big" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithMultiConditions.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithMultiConditions.kt.after new file mode 100644 index 00000000000..c734c5f8f3b --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithMultiConditions.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n < 0, n > 1000 -> "unknown" + n <= 10 -> "small" + n <= 100 -> "average" + else -> "big" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeIs.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeIs.kt new file mode 100644 index 00000000000..0fbe8294ffb --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeIs.kt @@ -0,0 +1,9 @@ +fun test(obj: Any): String { + return if (obj !is Iterable<*>) + "not iterable" + else if (obj !is Collection<*>) + "not collection" + else if (obj !is MutableCollection<*>) + "not mutable collection" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeIs.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeIs.kt.after new file mode 100644 index 00000000000..163677dcb22 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeIs.kt.after @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when { + obj !is Iterable<*> -> "not iterable" + obj !is Collection<*> -> "not collection" + obj !is MutableCollection<*> -> "not mutable collection" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeRangeTests.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeRangeTests.kt new file mode 100644 index 00000000000..9e02b8d24f7 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeRangeTests.kt @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if (n !in 0..1000) + "unknown" + else if (n !in 0..100) + "big" + else if (n !in 0..10) + "average" + else "small" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeRangeTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeRangeTests.kt.after new file mode 100644 index 00000000000..6216fc2f79e --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeRangeTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n !in 0..1000 -> "unknown" + n !in 0..100 -> "big" + n !in 0..10 -> "average" + else -> "small" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTests.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTests.kt new file mode 100644 index 00000000000..d2d1cb0f735 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTests.kt @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if (n in 0..10) + "small" + else if (n in 10..100) + "average" + else if (n in 100..1000) + "big" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTests.kt.after new file mode 100644 index 00000000000..f47641c76dc --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n in 0..10 -> "small" + n in 10..100 -> "average" + n in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndMultiConditions.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndMultiConditions.kt new file mode 100644 index 00000000000..41ed971402b --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndMultiConditions.kt @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if ((n in 0..5) || (n in 5..10)) + "small" + else if ((n in 10..50) || (n in 50..100)) + "average" + else if ((n in 100..500) || (n in 500..1000)) + "big" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndMultiConditions.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndMultiConditions.kt.after new file mode 100644 index 00000000000..aa84b8524a0 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndMultiConditions.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n in 0..5, n in 5..10 -> "small" + n in 10..50, n in 50..100 -> "average" + n in 100..500, n in 500..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndUnparenthesizedMultiConditions.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndUnparenthesizedMultiConditions.kt new file mode 100644 index 00000000000..41ed971402b --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndUnparenthesizedMultiConditions.kt @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if ((n in 0..5) || (n in 5..10)) + "small" + else if ((n in 10..50) || (n in 50..100)) + "average" + else if ((n in 100..500) || (n in 500..1000)) + "big" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndUnparenthesizedMultiConditions.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndUnparenthesizedMultiConditions.kt.after new file mode 100644 index 00000000000..aa84b8524a0 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndUnparenthesizedMultiConditions.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n in 0..5, n in 5..10 -> "small" + n in 10..50, n in 50..100 -> "average" + n in 100..500, n in 500..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithEqualityTests.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithEqualityTests.kt new file mode 100644 index 00000000000..dba5a8e64d6 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithEqualityTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + 0 -> "zero" + 1 -> "one" + 2 -> "two" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithEqualityTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithEqualityTests.kt.after new file mode 100644 index 00000000000..47fca307d3c --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithEqualityTests.kt.after @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if (n == 0) + "zero" + else if (n == 1) + "one" + else if (n == 2) + "two" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithMultiConditions.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithMultiConditions.kt new file mode 100644 index 00000000000..c734c5f8f3b --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithMultiConditions.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n < 0, n > 1000 -> "unknown" + n <= 10 -> "small" + n <= 100 -> "average" + else -> "big" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithMultiConditions.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithMultiConditions.kt.after new file mode 100644 index 00000000000..1b1e1a0b2b8 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithMultiConditions.kt.after @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if ((n < 0) || (n > 1000)) + "unknown" + else if (n <= 10) + "small" + else if (n <= 100) + "average" + else "big" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativePatterns.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativePatterns.kt new file mode 100644 index 00000000000..aed8e7af095 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativePatterns.kt @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when (obj) { + !is Iterable<*> -> "not iterable" + !is Collection<*> -> "not collection" + !is MutableCollection<*> -> "not mutable collection" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativePatterns.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativePatterns.kt.after new file mode 100644 index 00000000000..0fbe8294ffb --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativePatterns.kt.after @@ -0,0 +1,9 @@ +fun test(obj: Any): String { + return if (obj !is Iterable<*>) + "not iterable" + else if (obj !is Collection<*>) + "not collection" + else if (obj !is MutableCollection<*>) + "not mutable collection" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativeRangeTests.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativeRangeTests.kt new file mode 100644 index 00000000000..22365e82db6 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativeRangeTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + !in 0..1000 -> "unknown" + !in 0..100 -> "big" + !in 0..10 -> "average" + else -> "small" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativeRangeTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativeRangeTests.kt.after new file mode 100644 index 00000000000..9e02b8d24f7 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativeRangeTests.kt.after @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if (n !in 0..1000) + "unknown" + else if (n !in 0..100) + "big" + else if (n !in 0..10) + "average" + else "small" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithPatterns.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithPatterns.kt new file mode 100644 index 00000000000..e2902c7666b --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithPatterns.kt @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when (obj) { + is String -> "string" + is Int -> "int" + is Class<*> -> "class" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithPatterns.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithPatterns.kt.after new file mode 100644 index 00000000000..af99f2543d2 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithPatterns.kt.after @@ -0,0 +1,9 @@ +fun test(obj: Any): String { + return if (obj is String) + "string" + else if (obj is Int) + "int" + else if (obj is Class<*>) + "class" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTests.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTests.kt new file mode 100644 index 00000000000..67f8dd5e022 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + in 0..10 -> "small" + in 10..100 -> "average" + in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTests.kt.after new file mode 100644 index 00000000000..d2d1cb0f735 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTests.kt.after @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if (n in 0..10) + "small" + else if (n in 10..100) + "average" + else if (n in 100..1000) + "big" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTestsAndMultiConditions.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTestsAndMultiConditions.kt new file mode 100644 index 00000000000..88b38a37492 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTestsAndMultiConditions.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + in 0..5, in 5..10 -> "small" + in 10..50, in 50..100 -> "average" + in 100..500, in 500..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTestsAndMultiConditions.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTestsAndMultiConditions.kt.after new file mode 100644 index 00000000000..41ed971402b --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTestsAndMultiConditions.kt.after @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if ((n in 0..5) || (n in 5..10)) + "small" + else if ((n in 10..50) || (n in 50..100)) + "average" + else if ((n in 100..500) || (n in 500..1000)) + "big" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithoutSubject.kt b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithoutSubject.kt new file mode 100644 index 00000000000..f47641c76dc --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithoutSubject.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n in 0..10 -> "small" + n in 10..100 -> "average" + n in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithoutSubject.kt.after b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithoutSubject.kt.after new file mode 100644 index 00000000000..d2d1cb0f735 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithoutSubject.kt.after @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return if (n in 0..10) + "small" + else if (n in 10..100) + "average" + else if (n in 100..1000) + "big" + else "unknown" +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithEqualityTests.kt b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithEqualityTests.kt new file mode 100644 index 00000000000..dba5a8e64d6 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithEqualityTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + 0 -> "zero" + 1 -> "one" + 2 -> "two" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithEqualityTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithEqualityTests.kt.after new file mode 100644 index 00000000000..37e018ca2c2 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithEqualityTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n == 0 -> "zero" + n == 1 -> "one" + n == 2 -> "two" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativePatterns.kt b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativePatterns.kt new file mode 100644 index 00000000000..aed8e7af095 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativePatterns.kt @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when (obj) { + !is Iterable<*> -> "not iterable" + !is Collection<*> -> "not collection" + !is MutableCollection<*> -> "not mutable collection" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativePatterns.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativePatterns.kt.after new file mode 100644 index 00000000000..163677dcb22 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativePatterns.kt.after @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when { + obj !is Iterable<*> -> "not iterable" + obj !is Collection<*> -> "not collection" + obj !is MutableCollection<*> -> "not mutable collection" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativeRangeTests.kt b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativeRangeTests.kt new file mode 100644 index 00000000000..22365e82db6 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativeRangeTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + !in 0..1000 -> "unknown" + !in 0..100 -> "big" + !in 0..10 -> "average" + else -> "small" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativeRangeTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativeRangeTests.kt.after new file mode 100644 index 00000000000..6216fc2f79e --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativeRangeTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n !in 0..1000 -> "unknown" + n !in 0..100 -> "big" + n !in 0..10 -> "average" + else -> "small" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithPatterns.kt b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithPatterns.kt new file mode 100644 index 00000000000..e2902c7666b --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithPatterns.kt @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when (obj) { + is String -> "string" + is Int -> "int" + is Class<*> -> "class" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithPatterns.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithPatterns.kt.after new file mode 100644 index 00000000000..3fd81cd40a8 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithPatterns.kt.after @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when { + obj is String -> "string" + obj is Int -> "int" + obj is Class<*> -> "class" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTests.kt b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTests.kt new file mode 100644 index 00000000000..67f8dd5e022 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + in 0..10 -> "small" + in 10..100 -> "average" + in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTests.kt.after new file mode 100644 index 00000000000..f47641c76dc --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n in 0..10 -> "small" + n in 10..100 -> "average" + n in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTestsAndMultiConditions.kt b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTestsAndMultiConditions.kt new file mode 100644 index 00000000000..88b38a37492 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTestsAndMultiConditions.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + in 0..5, in 5..10 -> "small" + in 10..50, in 50..100 -> "average" + in 100..500, in 500..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTestsAndMultiConditions.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTestsAndMultiConditions.kt.after new file mode 100644 index 00000000000..aa84b8524a0 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTestsAndMultiConditions.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n in 0..5, n in 5..10 -> "small" + n in 10..50, n in 50..100 -> "average" + n in 100..500, n in 500..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithoutSubject.kt b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithoutSubject.kt new file mode 100644 index 00000000000..c6c5e2c9fab --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithoutSubject.kt @@ -0,0 +1,9 @@ +//IS_APPLICABLE: false +fun test(n: Int): String { + return when { + n in 0..10 -> "small" + n in 10..100 -> "average" + n in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithSubject.kt b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithSubject.kt new file mode 100644 index 00000000000..ffb69fa9e71 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithSubject.kt @@ -0,0 +1,11 @@ +fun test(n: Int): String { + return when(n) { + in 0..10 -> "small" + in 10..100 -> "average" + else -> when(n) { + in 100..1000 -> "big" + in 1000..10000 -> "very big" + else -> "unknown" + } + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithSubject.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithSubject.kt.after new file mode 100644 index 00000000000..99a3e1ae2ef --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithSubject.kt.after @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return when (n) { + in 0..10 -> "small" + in 10..100 -> "average" + in 100..1000 -> "big" + in 1000..10000 -> "very big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithUnmatchedSubjects.kt b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithUnmatchedSubjects.kt new file mode 100644 index 00000000000..0238e6d6da6 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithUnmatchedSubjects.kt @@ -0,0 +1,12 @@ +//IS_APPLICABLE: false +fun test(n: Int): String { + return when(n) { + in 0..10 -> "small" + in 10..100 -> "average" + else -> when { + n in 100..1000 -> "big" + n in 1000..10000 -> "very big" + else -> "unknown" + } + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithoutSubject.kt b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithoutSubject.kt new file mode 100644 index 00000000000..bf5d3160bd2 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithoutSubject.kt @@ -0,0 +1,11 @@ +fun test(n: Int): String { + return when { + n in 0..10 -> "small" + n in 10..100 -> "average" + else -> when { + n in 100..1000 -> "big" + n in 1000..10000 -> "very big" + else -> "unknown" + } + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithoutSubject.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithoutSubject.kt.after new file mode 100644 index 00000000000..0347610dae6 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithoutSubject.kt.after @@ -0,0 +1,9 @@ +fun test(n: Int): String { + return when { + n in 0..10 -> "small" + n in 10..100 -> "average" + n in 100..1000 -> "big" + n in 1000..10000 -> "very big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithEqualityTests.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithEqualityTests.kt new file mode 100644 index 00000000000..37e018ca2c2 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithEqualityTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n == 0 -> "zero" + n == 1 -> "one" + n == 2 -> "two" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithEqualityTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithEqualityTests.kt.after new file mode 100644 index 00000000000..dba5a8e64d6 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithEqualityTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + 0 -> "zero" + 1 -> "one" + 2 -> "two" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativePatterns.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativePatterns.kt new file mode 100644 index 00000000000..163677dcb22 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativePatterns.kt @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when { + obj !is Iterable<*> -> "not iterable" + obj !is Collection<*> -> "not collection" + obj !is MutableCollection<*> -> "not mutable collection" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativePatterns.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativePatterns.kt.after new file mode 100644 index 00000000000..aed8e7af095 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativePatterns.kt.after @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when (obj) { + !is Iterable<*> -> "not iterable" + !is Collection<*> -> "not collection" + !is MutableCollection<*> -> "not mutable collection" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativeRangeTests.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativeRangeTests.kt new file mode 100644 index 00000000000..6216fc2f79e --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativeRangeTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n !in 0..1000 -> "unknown" + n !in 0..100 -> "big" + n !in 0..10 -> "average" + else -> "small" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativeRangeTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativeRangeTests.kt.after new file mode 100644 index 00000000000..22365e82db6 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativeRangeTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + !in 0..1000 -> "unknown" + !in 0..100 -> "big" + !in 0..10 -> "average" + else -> "small" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNondivisibleConditions.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNondivisibleConditions.kt new file mode 100644 index 00000000000..6f2669017f5 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNondivisibleConditions.kt @@ -0,0 +1,9 @@ +//IS_APPLICABLE: false +fun test(n: Int): String { + return when { + n in 0..10 -> "small" + n >= 10 && n <= 100 -> "average" + n < 0, n > 1000 -> "unknown" + else -> "big" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithPatterns.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithPatterns.kt new file mode 100644 index 00000000000..3fd81cd40a8 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithPatterns.kt @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when { + obj is String -> "string" + obj is Int -> "int" + obj is Class<*> -> "class" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithPatterns.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithPatterns.kt.after new file mode 100644 index 00000000000..e2902c7666b --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithPatterns.kt.after @@ -0,0 +1,8 @@ +fun test(obj: Any): String { + return when (obj) { + is String -> "string" + is Int -> "int" + is Class<*> -> "class" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTests.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTests.kt new file mode 100644 index 00000000000..f47641c76dc --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTests.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n in 0..10 -> "small" + n in 10..100 -> "average" + n in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTests.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTests.kt.after new file mode 100644 index 00000000000..67f8dd5e022 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTests.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + in 0..10 -> "small" + in 10..100 -> "average" + in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTestsAndMultiConditions.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTestsAndMultiConditions.kt new file mode 100644 index 00000000000..aa84b8524a0 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTestsAndMultiConditions.kt @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when { + n in 0..5, n in 5..10 -> "small" + n in 10..50, n in 50..100 -> "average" + n in 100..500, n in 500..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTestsAndMultiConditions.kt.after b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTestsAndMultiConditions.kt.after new file mode 100644 index 00000000000..88b38a37492 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTestsAndMultiConditions.kt.after @@ -0,0 +1,8 @@ +fun test(n: Int): String { + return when (n) { + in 0..5, in 5..10 -> "small" + in 10..50, in 50..100 -> "average" + in 100..500, in 500..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithSubject.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithSubject.kt new file mode 100644 index 00000000000..2aaf349558d --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithSubject.kt @@ -0,0 +1,9 @@ +//IS_APPLICABLE: false +fun test(n: Int): String { + return when(n) { + in 0..10 -> "small" + in 10..100 -> "average" + in 100..1000 -> "big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithUnmatchedCandidateSubjects.kt b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithUnmatchedCandidateSubjects.kt new file mode 100644 index 00000000000..1077ec19255 --- /dev/null +++ b/idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithUnmatchedCandidateSubjects.kt @@ -0,0 +1,9 @@ +//IS_APPLICABLE: false +fun test(n: Int): String { + return when { + n in 0..10 -> "n is small" + n/10 in 0..10 -> "m is average" + n/100 in 0..10 -> "n is big" + else -> "unknown" + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/codeTransformations/AbstractCodeTransformationTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/codeTransformations/AbstractCodeTransformationTest.java index b838ac1dcf7..c0db705a380 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/codeTransformations/AbstractCodeTransformationTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/codeTransformations/AbstractCodeTransformationTest.java @@ -62,6 +62,26 @@ public abstract class AbstractCodeTransformationTest extends LightCodeInsightTes doTest(path, new UnfoldBranchedExpressionIntention.UnfoldReturnToWhenIntention()); } + public void doTestIfToWhen(@NotNull String path) throws Exception { + doTest(path, new IfToWhenIntention()); + } + + public void doTestWhenToIf(@NotNull String path) throws Exception { + doTest(path, new WhenToIfIntention()); + } + + public void doTestFlattenWhen(@NotNull String path) throws Exception { + doTest(path, new FlattenWhenIntention()); + } + + public void doTestIntroduceWhenSubject(@NotNull String path) throws Exception { + doTest(path, new IntroduceWhenSubjectIntention()); + } + + public void doTestEliminateWhenSubject(@NotNull String path) throws Exception { + doTest(path, new EliminateWhenSubjectIntention()); + } + public void doTestRemoveUnnecessaryParentheses(@NotNull String path) throws Exception { doTest(path, new RemoveUnnecessaryParenthesesIntention()); } diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/codeTransformations/CodeTransformationsTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/codeTransformations/CodeTransformationsTestGenerated.java index 4ec4671eee3..71da5f98dfc 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/codeTransformations/CodeTransformationsTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/codeTransformations/CodeTransformationsTestGenerated.java @@ -30,7 +30,7 @@ import org.jetbrains.jet.plugin.codeInsight.codeTransformations.AbstractCodeTran /** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@InnerTestClasses({CodeTransformationsTestGenerated.IfToAssignment.class, CodeTransformationsTestGenerated.IfToReturn.class, CodeTransformationsTestGenerated.IfToReturnAsymmetrically.class, CodeTransformationsTestGenerated.WhenToAssignment.class, CodeTransformationsTestGenerated.WhenToReturn.class, CodeTransformationsTestGenerated.AssignmentToIf.class, CodeTransformationsTestGenerated.AssignmentToWhen.class, CodeTransformationsTestGenerated.ReturnToIf.class, CodeTransformationsTestGenerated.ReturnToWhen.class}) +@InnerTestClasses({CodeTransformationsTestGenerated.IfToAssignment.class, CodeTransformationsTestGenerated.IfToReturn.class, CodeTransformationsTestGenerated.IfToReturnAsymmetrically.class, CodeTransformationsTestGenerated.WhenToAssignment.class, CodeTransformationsTestGenerated.WhenToReturn.class, CodeTransformationsTestGenerated.AssignmentToIf.class, CodeTransformationsTestGenerated.AssignmentToWhen.class, CodeTransformationsTestGenerated.ReturnToIf.class, CodeTransformationsTestGenerated.ReturnToWhen.class, CodeTransformationsTestGenerated.IfToWhen.class, CodeTransformationsTestGenerated.WhenToIf.class, CodeTransformationsTestGenerated.Flatten.class, CodeTransformationsTestGenerated.IntroduceSubject.class, CodeTransformationsTestGenerated.EliminateSubject.class}) public class CodeTransformationsTestGenerated extends AbstractCodeTransformationTest { @TestMetadata("idea/testData/codeInsight/codeTransformations/branched/folding/ifToAssignment") public static class IfToAssignment extends AbstractCodeTransformationTest { @@ -299,6 +299,221 @@ public class CodeTransformationsTestGenerated extends AbstractCodeTransformation } + @TestMetadata("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen") + public static class IfToWhen extends AbstractCodeTransformationTest { + public void testAllFilesPresentInIfToWhen() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("ifWithEqualityTests.kt") + public void testIfWithEqualityTests() throws Exception { + doTestIfToWhen("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithEqualityTests.kt"); + } + + @TestMetadata("ifWithIs.kt") + public void testIfWithIs() throws Exception { + doTestIfToWhen("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithIs.kt"); + } + + @TestMetadata("ifWithMultiConditions.kt") + public void testIfWithMultiConditions() throws Exception { + doTestIfToWhen("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithMultiConditions.kt"); + } + + @TestMetadata("ifWithNegativeIs.kt") + public void testIfWithNegativeIs() throws Exception { + doTestIfToWhen("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeIs.kt"); + } + + @TestMetadata("ifWithNegativeRangeTests.kt") + public void testIfWithNegativeRangeTests() throws Exception { + doTestIfToWhen("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithNegativeRangeTests.kt"); + } + + @TestMetadata("ifWithRangeTests.kt") + public void testIfWithRangeTests() throws Exception { + doTestIfToWhen("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTests.kt"); + } + + @TestMetadata("ifWithRangeTestsAndMultiConditions.kt") + public void testIfWithRangeTestsAndMultiConditions() throws Exception { + doTestIfToWhen("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndMultiConditions.kt"); + } + + @TestMetadata("ifWithRangeTestsAndUnparenthesizedMultiConditions.kt") + public void testIfWithRangeTestsAndUnparenthesizedMultiConditions() throws Exception { + doTestIfToWhen("idea/testData/codeInsight/codeTransformations/branched/ifWhen/ifToWhen/ifWithRangeTestsAndUnparenthesizedMultiConditions.kt"); + } + + } + + @TestMetadata("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf") + public static class WhenToIf extends AbstractCodeTransformationTest { + public void testAllFilesPresentInWhenToIf() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("whenWithEqualityTests.kt") + public void testWhenWithEqualityTests() throws Exception { + doTestWhenToIf("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithEqualityTests.kt"); + } + + @TestMetadata("whenWithMultiConditions.kt") + public void testWhenWithMultiConditions() throws Exception { + doTestWhenToIf("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithMultiConditions.kt"); + } + + @TestMetadata("whenWithNegativePatterns.kt") + public void testWhenWithNegativePatterns() throws Exception { + doTestWhenToIf("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativePatterns.kt"); + } + + @TestMetadata("whenWithNegativeRangeTests.kt") + public void testWhenWithNegativeRangeTests() throws Exception { + doTestWhenToIf("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithNegativeRangeTests.kt"); + } + + @TestMetadata("whenWithPatterns.kt") + public void testWhenWithPatterns() throws Exception { + doTestWhenToIf("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithPatterns.kt"); + } + + @TestMetadata("whenWithRangeTests.kt") + public void testWhenWithRangeTests() throws Exception { + doTestWhenToIf("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTests.kt"); + } + + @TestMetadata("whenWithRangeTestsAndMultiConditions.kt") + public void testWhenWithRangeTestsAndMultiConditions() throws Exception { + doTestWhenToIf("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithRangeTestsAndMultiConditions.kt"); + } + + @TestMetadata("whenWithoutSubject.kt") + public void testWhenWithoutSubject() throws Exception { + doTestWhenToIf("idea/testData/codeInsight/codeTransformations/branched/ifWhen/whenToIf/whenWithoutSubject.kt"); + } + + } + + @TestMetadata("idea/testData/codeInsight/codeTransformations/branched/when/flatten") + public static class Flatten extends AbstractCodeTransformationTest { + public void testAllFilesPresentInFlatten() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/codeInsight/codeTransformations/branched/when/flatten"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("flattenWithSubject.kt") + public void testFlattenWithSubject() throws Exception { + doTestFlattenWhen("idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithSubject.kt"); + } + + @TestMetadata("flattenWithUnmatchedSubjects.kt") + public void testFlattenWithUnmatchedSubjects() throws Exception { + doTestFlattenWhen("idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithUnmatchedSubjects.kt"); + } + + @TestMetadata("flattenWithoutSubject.kt") + public void testFlattenWithoutSubject() throws Exception { + doTestFlattenWhen("idea/testData/codeInsight/codeTransformations/branched/when/flatten/flattenWithoutSubject.kt"); + } + + } + + @TestMetadata("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject") + public static class IntroduceSubject extends AbstractCodeTransformationTest { + public void testAllFilesPresentInIntroduceSubject() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("whenWithEqualityTests.kt") + public void testWhenWithEqualityTests() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithEqualityTests.kt"); + } + + @TestMetadata("whenWithNegativePatterns.kt") + public void testWhenWithNegativePatterns() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativePatterns.kt"); + } + + @TestMetadata("whenWithNegativeRangeTests.kt") + public void testWhenWithNegativeRangeTests() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNegativeRangeTests.kt"); + } + + @TestMetadata("whenWithNondivisibleConditions.kt") + public void testWhenWithNondivisibleConditions() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithNondivisibleConditions.kt"); + } + + @TestMetadata("whenWithPatterns.kt") + public void testWhenWithPatterns() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithPatterns.kt"); + } + + @TestMetadata("whenWithRangeTests.kt") + public void testWhenWithRangeTests() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTests.kt"); + } + + @TestMetadata("whenWithRangeTestsAndMultiConditions.kt") + public void testWhenWithRangeTestsAndMultiConditions() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithRangeTestsAndMultiConditions.kt"); + } + + @TestMetadata("whenWithSubject.kt") + public void testWhenWithSubject() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithSubject.kt"); + } + + @TestMetadata("whenWithUnmatchedCandidateSubjects.kt") + public void testWhenWithUnmatchedCandidateSubjects() throws Exception { + doTestIntroduceWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/introduceSubject/whenWithUnmatchedCandidateSubjects.kt"); + } + + } + + @TestMetadata("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject") + public static class EliminateSubject extends AbstractCodeTransformationTest { + public void testAllFilesPresentInEliminateSubject() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("whenWithEqualityTests.kt") + public void testWhenWithEqualityTests() throws Exception { + doTestEliminateWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithEqualityTests.kt"); + } + + @TestMetadata("whenWithNegativePatterns.kt") + public void testWhenWithNegativePatterns() throws Exception { + doTestEliminateWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativePatterns.kt"); + } + + @TestMetadata("whenWithNegativeRangeTests.kt") + public void testWhenWithNegativeRangeTests() throws Exception { + doTestEliminateWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithNegativeRangeTests.kt"); + } + + @TestMetadata("whenWithPatterns.kt") + public void testWhenWithPatterns() throws Exception { + doTestEliminateWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithPatterns.kt"); + } + + @TestMetadata("whenWithRangeTests.kt") + public void testWhenWithRangeTests() throws Exception { + doTestEliminateWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTests.kt"); + } + + @TestMetadata("whenWithRangeTestsAndMultiConditions.kt") + public void testWhenWithRangeTestsAndMultiConditions() throws Exception { + doTestEliminateWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithRangeTestsAndMultiConditions.kt"); + } + + @TestMetadata("whenWithoutSubject.kt") + public void testWhenWithoutSubject() throws Exception { + doTestEliminateWhenSubject("idea/testData/codeInsight/codeTransformations/branched/when/eliminateSubject/whenWithoutSubject.kt"); + } + + } + public static Test suite() { TestSuite suite = new TestSuite("CodeTransformationsTestGenerated"); suite.addTestSuite(IfToAssignment.class); @@ -310,6 +525,11 @@ public class CodeTransformationsTestGenerated extends AbstractCodeTransformation suite.addTestSuite(AssignmentToWhen.class); suite.addTestSuite(ReturnToIf.class); suite.addTestSuite(ReturnToWhen.class); + suite.addTestSuite(IfToWhen.class); + suite.addTestSuite(WhenToIf.class); + suite.addTestSuite(Flatten.class); + suite.addTestSuite(IntroduceSubject.class); + suite.addTestSuite(EliminateSubject.class); return suite; } }