diff --git a/compiler/fir/analysis-tests/testData/resolve/cfa/reassignOfNonMemberProperty_lateInitialization.fir.txt b/compiler/fir/analysis-tests/testData/resolve/cfa/reassignOfNonMemberProperty_lateInitialization.fir.txt index 9ae7e321020..e6a1987a053 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfa/reassignOfNonMemberProperty_lateInitialization.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/cfa/reassignOfNonMemberProperty_lateInitialization.fir.txt @@ -18,6 +18,12 @@ FILE: reassignOfNonMemberProperty_lateInitialization.kt this@R|/Some|.R|/Some.x| = String(ok) this@R|/Some|.R|/Some.x| = String(error) this@R|/Some|.R|/z| = String(error) + local final fun foo(): R|kotlin/Unit| { + this@R|/Some|.R|/Some.x| = String(error) + this@R|/Some|.R|/Some.y| = String(error) + this@R|/Some|.R|/z| = String(error) + } + } public final val a: R|kotlin/String| = this@R|/Some|.R|kotlin/run|( = run@fun R|Some|.(): R|kotlin/String| { diff --git a/compiler/fir/analysis-tests/testData/resolve/cfa/reassignOfNonMemberProperty_lateInitialization.kt b/compiler/fir/analysis-tests/testData/resolve/cfa/reassignOfNonMemberProperty_lateInitialization.kt index 0fd4fdf1bd0..f573b2bc7c3 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfa/reassignOfNonMemberProperty_lateInitialization.kt +++ b/compiler/fir/analysis-tests/testData/resolve/cfa/reassignOfNonMemberProperty_lateInitialization.kt @@ -12,6 +12,12 @@ class Some { x = "ok" x = "error" z = "error" + + fun foo() { + x = "error" // VAL_REASSIGNMENT also ok (or even better?) + y = "error" + z = "error" + } } val a: String = run { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt index 98dec4910c9..dabd55efa6e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt @@ -152,7 +152,7 @@ class ControlFlowGraphBuilder { else -> throw IllegalArgumentException("Unknown function: ${function.render()}") } - val localFunctionNode = runIf(function.symbol.callableId.isLocal && bodyBuildingMode) { + val localFunctionNode = runIf(function is FirSimpleFunction && function.isLocal && bodyBuildingMode) { createLocalFunctionDeclarationNode(function).also { addNewSimpleNode(it) } } val enterNode = enterGraph(function, name, ControlFlowGraph.Kind.Function) {