New J2K: Place else case in the end in switch statement conversion

This commit is contained in:
Ilya Kirillov
2018-11-14 14:22:54 +03:00
committed by Ilya Kirillov
parent 115fe2cb88
commit 3ea1a937c0
@@ -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<JKKtWhenCase>.moveElseCaseToTheEnd(): List<JKKtWhenCase> =
sortedBy { it.labels.any { it is JKKtElseWhenLabel } }
private fun switchCasesToWhenCases(cases: List<JKJavaSwitchCase>): List<JKKtWhenCase> =
if (cases.isEmpty()) emptyList()
else {