From 3ea1a937c06f5b6338d6bc99c14963e7bd3e48f2 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 14 Nov 2018 14:22:54 +0300 Subject: [PATCH] New J2K: Place else case in the end in switch statement conversion --- .../kotlin/j2k/conversions/SwitchStatementConversion.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/SwitchStatementConversion.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/SwitchStatementConversion.kt index 4c0d175213d..464a4338545 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/SwitchStatementConversion.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/conversions/SwitchStatementConversion.kt @@ -25,11 +25,14 @@ class SwitchStatementConversion(private val context: ConversionContext) : Recurs case.label.detach(case) } } - val cases = switchCasesToWhenCases(element.cases) + val cases = switchCasesToWhenCases(element.cases).moveElseCaseToTheEnd() val whenStatement = JKKtWhenStatementImpl(element.expression, cases) return recurse(whenStatement) } + private fun List.moveElseCaseToTheEnd(): List = + sortedBy { it.labels.any { it is JKKtElseWhenLabel } } + private fun switchCasesToWhenCases(cases: List): List = if (cases.isEmpty()) emptyList() else {