Support subject variable in specialized code generators for 'when'

This commit is contained in:
Dmitry Petrov
2018-06-09 17:00:25 +03:00
parent 3528405666
commit 34b76a3718
17 changed files with 427 additions and 20 deletions
@@ -0,0 +1,22 @@
// WITH_RUNTIME
val String.name get() = this
fun List<String>.normalize(): List<String> {
val list = ArrayList<String>(this.size)
for (str in this) {
when (str.name) {
"." -> {}
".." -> if (!list.isEmpty() && list.last().name != "..") list.removeAt(list.size - 1) else list.add(str)
else -> list.add(str)
}
}
return list
}
fun box(): String {
val xs = listOf("a", "b", ".", "..").normalize()
if (xs != listOf("a")) return "Fail: $xs"
return "OK"
}