From 347d51c90e346b1b0f8768d528275de23a30d291 Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Wed, 22 Nov 2023 14:28:15 +0100 Subject: [PATCH] KTIJ-27879 [AA] Enforce lazy resolve of code fragments in ContextCollector Without it, the lazy body of code fragment is not properly resolved and cannot be analyzed Use the correct function from `BodyResolveContext` to take the scopes from code fragment into account ^KTIJ-27879 Fixed --- .../analysis/low/level/api/fir/util/ContextCollector.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt index 8c1cb1c0e32..eb726bdd07b 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt @@ -332,6 +332,14 @@ private class ContextCollectorVisitor( } } + override fun visitCodeFragment(codeFragment: FirCodeFragment) { + codeFragment.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) + + context.withCodeFragment(codeFragment, holder) { + super.visitCodeFragment(codeFragment) + } + } + override fun visitAnnotationCall(annotationCall: FirAnnotationCall) { dumpContext(annotationCall, ContextKind.SELF)