Refined merging logic #KT-5844 Fixed

If merging primitives of different integral types (e.g. I and Z) return
INT.
Else return UNINITIALIZED_VALUE
This commit is contained in:
Denis Zharkov
2014-08-21 09:09:48 +04:00
committed by Michael Bogdanov
parent 96308aa14e
commit 35cda83c8f
4 changed files with 53 additions and 12 deletions
@@ -0,0 +1,28 @@
import kotlin.test.assertEquals
fun test1() {
val u = when (true) {
true -> 42
else -> 1.0
}
assertEquals(42, u)
}
fun test2() {
val u = 1L.let {
when (it) {
is Long -> if (it.toLong() == 2L) it.toLong() else it * 2L // CompilationException
else -> it.toDouble()
}
}
assertEquals(2L, u)
}
fun box(): String {
test1()
test2()
return "OK"
}