diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeValInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeValInspection.kt index 0f2097ddc43..672fe39c1e9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeValInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/CanBeValInspection.kt @@ -83,7 +83,7 @@ class CanBeValInspection : AbstractKotlinInspection() { val writeInstructions = pseudocode.collectWriteInstructions(descriptor) if (writeInstructions.isEmpty()) return false // incorrect code - do not report - return writeInstructions.none { canReach(it, writeInstructions) } + return writeInstructions.none { it.owner !== pseudocode || canReach(it, writeInstructions) } } } diff --git a/idea/testData/inspections/canBeVal/lambdaInitialization.kt b/idea/testData/inspections/canBeVal/lambdaInitialization.kt new file mode 100644 index 00000000000..83989ea2fd1 --- /dev/null +++ b/idea/testData/inspections/canBeVal/lambdaInitialization.kt @@ -0,0 +1,9 @@ +fun run(f: () -> Unit) = f() + +fun foo() { + var a: Int + + run { + a = 20 + } +} \ No newline at end of file