diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index e1cd4cd8614..dc41c25b70d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -952,7 +952,14 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform ) } } - firstSucceed -> firstResult + firstSucceed -> { + //checking secondResult leave erroneous nodes in dfa graph, + //we add another block so final type of expression will be correct + //todo replace this hack with proper graph cleaning + transformer.components.dataFlowAnalyzer.enterBlock(augmentedArraySetCall.setGetBlock) + transformer.components.dataFlowAnalyzer.exitBlock(augmentedArraySetCall.setGetBlock) + firstResult + } secondSucceed -> secondResult else -> { augmentedArraySetCall.also { diff --git a/compiler/testData/codegen/box/closures/capturedVarsOptimization/capturedInInlineOnlyIndexedCAO.kt b/compiler/testData/codegen/box/closures/capturedVarsOptimization/capturedInInlineOnlyIndexedCAO.kt index 11d2983d00f..44e0531c7b7 100644 --- a/compiler/testData/codegen/box/closures/capturedVarsOptimization/capturedInInlineOnlyIndexedCAO.kt +++ b/compiler/testData/codegen/box/closures/capturedVarsOptimization/capturedInInlineOnlyIndexedCAO.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_RUNTIME class Host(var value: String) {