From ec3cfdefcb03160fc961dd25ef6c5c822b20b423 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Mon, 23 Oct 2023 18:19:58 +0200 Subject: [PATCH] [LL FIR] add missing file node to control flow graph The file ^KT-62834 Fixed --- .../transformers/LLFirAbstractBodyTargetResolver.kt | 10 ++++++++-- .../api/fir/transformers/LLFirBodyLazyResolver.kt | 1 + .../fir/transformers/LLFirImplicitTypesLazyResolver.kt | 1 + compiler/testData/codegen/box/smartCasts/kt44814.kt | 1 - 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAbstractBodyTargetResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAbstractBodyTargetResolver.kt index 7556bb7c04c..f9e5dc8abca 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAbstractBodyTargetResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAbstractBodyTargetResolver.kt @@ -50,11 +50,17 @@ internal abstract class LLFirAbstractBodyTargetResolver( } override fun withScript(firScript: FirScript, action: () -> Unit) { - transformer.context.withScript(firScript, transformer.components, action) + transformer.declarationsTransformer?.withScript(firScript) { + action() + firScript + } } override fun withFile(firFile: FirFile, action: () -> Unit) { - transformer.context.withFile(firFile, transformer.components, action) + transformer.declarationsTransformer?.withFile(firFile) { + action() + firFile + } } @Deprecated("Should never be called directly, only for override purposes, please use withRegularClass", level = DeprecationLevel.ERROR) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt index d52ae744b33..e83950257e3 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt @@ -104,6 +104,7 @@ private class LLFirBodyTargetResolver( firResolveContextCollector = firResolveContextCollector, ) { override val preserveCFGForClasses: Boolean get() = false + override val buildCfgForFiles: Boolean get() = false } override fun doResolveWithoutLock(target: FirElementWithResolveState): Boolean { diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt index 722dde93381..7bb8a2365b8 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt @@ -65,6 +65,7 @@ internal class LLFirImplicitBodyTargetResolver( returnTypeCalculator = createReturnTypeCalculator(firResolveContextCollector = firResolveContextCollector), ) { override val preserveCFGForClasses: Boolean get() = false + override val buildCfgForFiles: Boolean get() = false } override fun doLazyResolveUnderLock(target: FirElementWithResolveState) { diff --git a/compiler/testData/codegen/box/smartCasts/kt44814.kt b/compiler/testData/codegen/box/smartCasts/kt44814.kt index f9e125e9cab..efab025c5a8 100644 --- a/compiler/testData/codegen/box/smartCasts/kt44814.kt +++ b/compiler/testData/codegen/box/smartCasts/kt44814.kt @@ -3,7 +3,6 @@ // DUMP_IR // DUMP_CFG // RENDERER_CFG_LEVELS -// MUTE_LL_FIR: KT-62834 class FlyweightCapableTreeStructure