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
@@ -1,7 +1,3 @@
|
||||
// Even before any IR lowerings, the type of `when` is determined to be
|
||||
// Unit even though the outer `if` still returns `Int?`. This results
|
||||
// in a ClassCastException when that Unit is converted into a Number.
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
fun test(
|
||||
b: Boolean,
|
||||
i: Int
|
||||
|
||||
Reference in New Issue
Block a user