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:
committed by
Michael Bogdanov
parent
96308aa14e
commit
35cda83c8f
@@ -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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user