psi2ir: keep the type of when when possible
Ideally, the type of `IrWhen` should be provided by type inference for a consistent behavior. `USED_AS_EXPRESSION` from CFG isn't always consistent with type inference, unfortunately. The behavior is now aligned with `if`. The type of `when` is kept when it *can* be an expression, instead of whether it is used or not.
This commit is contained in:
committed by
max-kammerer
parent
cd651be461
commit
1b4d26e490
@@ -0,0 +1,10 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
fun test(b: Boolean, i: Int) {
|
||||
if (b) {
|
||||
when (i) {
|
||||
0 -> 1
|
||||
else -> null
|
||||
}
|
||||
} else null
|
||||
}
|
||||
Reference in New Issue
Block a user