diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileElementFactory.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileElementFactory.kt index 70ca1ec7398..d06478a7833 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileElementFactory.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileElementFactory.kt @@ -21,14 +21,14 @@ internal object FileElementFactory { firFile: FirFile, ): FileStructureElement = when { ktDeclaration is KtNamedFunction && ktDeclaration.name != null && ktDeclaration.hasExplicitTypeOrUnit -> - IncrementallyReanalyzableFunction( + ReanalyzableFunctionStructureElement( firFile, ktDeclaration, (firDeclaration as FirSimpleFunction).symbol, ktDeclaration.modificationStamp ) - else -> NonLocalDeclarationFileStructureElement( + else -> NonReanalyzableDeclarationStructureElement( firFile, firDeclaration, ktDeclaration, @@ -45,6 +45,6 @@ internal object FileElementFactory { else -> false } - val KtNamedFunction.hasExplicitTypeOrUnit + private val KtNamedFunction.hasExplicitTypeOrUnit get() = hasBlockBody() || typeReference != null } \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructure.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructure.kt index c74ed471c86..586b1e8fe9e 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructure.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructure.kt @@ -13,11 +13,8 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver import org.jetbrains.kotlin.idea.fir.low.level.api.providers.firIdeProvider import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration -import org.jetbrains.kotlin.idea.search.getKotlinFqName import org.jetbrains.kotlin.idea.util.getElementTextInContext -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfType import java.util.concurrent.ConcurrentHashMap @@ -97,7 +94,7 @@ internal class FileStructure( FirResolvePhase.IMPORTS, checkPCE = true ) - FileWithoutDeclarationsFileStructureElement( + RootStructureElement( firFile, container, ) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureElement.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureElement.kt index ce9e23a2cbc..ebbc8a6f04e 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureElement.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureElement.kt @@ -64,7 +64,7 @@ internal sealed class ReanalyzableStructureElement : FileStr } } -internal class IncrementallyReanalyzableFunction( +internal class ReanalyzableFunctionStructureElement( override val firFile: FirFile, override val psi: KtNamedFunction, override val firSymbol: FirFunctionSymbol<*>, @@ -90,7 +90,7 @@ internal class IncrementallyReanalyzableFunction( cache: ModuleFileCache, firLazyDeclarationResolver: FirLazyDeclarationResolver, firIdeProvider: FirIdeProvider, - ): IncrementallyReanalyzableFunction { + ): ReanalyzableFunctionStructureElement { val newFunction = firIdeProvider.buildFunctionWithBody(newKtDeclaration) as FirSimpleFunction val originalFunction = firSymbol.fir as FirSimpleFunction @@ -108,7 +108,7 @@ internal class IncrementallyReanalyzableFunction( reresolveFile = true, ) return cache.firFileLockProvider.withReadLock(firFile) { - IncrementallyReanalyzableFunction( + ReanalyzableFunctionStructureElement( firFile, newKtDeclaration, newFunction.symbol, @@ -124,7 +124,7 @@ internal class IncrementallyReanalyzableFunction( } } -internal class NonLocalDeclarationFileStructureElement( +internal class NonReanalyzableDeclarationStructureElement( override val firFile: FirFile, fir: FirDeclaration, override val psi: KtDeclaration, @@ -172,7 +172,7 @@ internal class NonLocalDeclarationFileStructureElement( } -internal data class FileWithoutDeclarationsFileStructureElement( +internal data class RootStructureElement( override val firFile: FirFile, override val psi: KtFile, ) : FileStructureElement() {