From 75868d5f5242162bc5f1a06ab4b2179726ac1c3a Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 4 Aug 2023 02:22:22 +0900 Subject: [PATCH] [LL API] Preserve the original 'FirCodeFragment' after in-body change --- .../file/structure/FileStructureElement.kt | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/FileStructureElement.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/FileStructureElement.kt index a235427815e..eb8299eb3e1 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/FileStructureElement.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/FileStructureElement.kt @@ -147,26 +147,8 @@ internal class ReanalyzableCodeFragmentStructureElement( override val timestamp = psi.modificationStamp override fun reanalyze(): ReanalyzableStructureElement { - val originalCodeFragment = firSymbol.fir - val originalDesignation = originalCodeFragment.collectDesignation() - - firFile.transformDeclarations(object : FirTransformer() { - override fun transformElement(element: E, data: Nothing?): E = element - - override fun transformCodeFragment(codeFragment: FirCodeFragment, data: Nothing?): FirCodeFragment { - return RawFirNonLocalDeclarationBuilder.build( - session = originalCodeFragment.moduleData.session, - scopeProvider = originalCodeFragment.moduleData.session.kotlinScopeProvider, - designation = originalDesignation, - rootNonLocalDeclaration = psi, - ) as FirCodeFragment - } - }, null) - - val newCodeFragment = firFile.codeFragment - newCodeFragment.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) - - return ReanalyzableCodeFragmentStructureElement(firFile, psi, newCodeFragment.symbol, moduleComponents) + firSymbol.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) + return ReanalyzableCodeFragmentStructureElement(firFile, psi, firSymbol, moduleComponents) } }