FIR: fix some errors in local variable assignment analyzer
* wrong method was called from FirDataFlowAnalyzer.exitFunctionCall; * map from function to affected properties should be keyed by symbol, not FirFunction, as the latter may change; * arguments of `return` and assignment statements should be visited, as they may contain lambdas.
This commit is contained in:
@@ -20,8 +20,8 @@ fun case_2() {
|
||||
var x: Int? = 10
|
||||
var y = { x = null }
|
||||
if (x != null) {
|
||||
val z = case_2(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int? & kotlin.Int")!>x<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>z<!>
|
||||
val z = case_2(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>x<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>z<!>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ fun case_4(x: Int) = ""
|
||||
fun case_4(x: Int?) = 10
|
||||
fun case_4(y: Case4) {
|
||||
if (y.x != null) {
|
||||
val z = case_4(y.x)
|
||||
val z = case_4(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>y.x<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>z<!>
|
||||
}
|
||||
}
|
||||
@@ -61,7 +61,7 @@ fun case_5(x: Int) = ""
|
||||
fun case_5(x: Int?) = 10
|
||||
fun case_5(y: Case4) {
|
||||
if (y.x != null) {
|
||||
val z = case_5(y.x)
|
||||
val z = case_5(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>y.x<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>z<!>
|
||||
}
|
||||
}
|
||||
@@ -75,7 +75,7 @@ fun case_6(x: Int) = ""
|
||||
fun case_6(x: Int?) = 10
|
||||
fun case_6(y: Case4) {
|
||||
if (y.x != null) {
|
||||
val z = case_6(y.x)
|
||||
val z = case_6(<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>y.x<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>z<!>
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user