[FIR] Resolve elvis call as special synthetic call
Before that commit we desugared `a ?: b` as
when (val elvis = a) {
null -> b
else -> elvis
}
It was incorrect, because `a` should be resolved in dependent mode,
but when it was `elvis` initializer it was resolved in independent
mode, so we can't infer type for `a` in some complex cases
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
fun <T: Any, K: Any> case_1(x: T?, y: K?) {
|
||||
x as T
|
||||
y as K
|
||||
val z = <!DEBUG_INFO_EXPRESSION_TYPE("T?!! & T?")!>x<!> ?: <!DEBUG_INFO_EXPRESSION_TYPE("K?!!")!>y<!>
|
||||
val z = <!DEBUG_INFO_EXPRESSION_TYPE("T?!! & T?")!>x<!> ?: <!DEBUG_INFO_EXPRESSION_TYPE("K?!! & K?")!>y<!>
|
||||
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("T?!! & T?")!>x<!>.equals(10)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any")!>z<!>
|
||||
|
||||
Reference in New Issue
Block a user