From f5f3b7fec096562985c9f1b1a5de9586f38dead1 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Tue, 13 Feb 2024 20:27:19 +0100 Subject: [PATCH] [LL FIR] drop unused declarations --- .../level/api/fir/api/DeclarationLockType.kt | 11 ----- .../fir/element/builder/FirElementBuilder.kt | 8 ---- .../file/structure/FileStructureElement.kt | 2 - .../lazy/resolve/FirLazyBodiesCalculator.kt | 8 ---- .../lazy/resolve/NonLocalDeclarationUtils.kt | 43 +------------------ .../api/fir/util/LLFirResolvePhaseChecker.kt | 18 -------- 6 files changed, 1 insertion(+), 89 deletions(-) delete mode 100644 analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/DeclarationLockType.kt delete mode 100644 analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/LLFirResolvePhaseChecker.kt diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/DeclarationLockType.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/DeclarationLockType.kt deleted file mode 100644 index 8db4ef5fff0..00000000000 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/DeclarationLockType.kt +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.api - -enum class DeclarationLockType { - READ_LOCK, - WRITE_LOCK, -} \ No newline at end of file diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt index eb166df8bb0..411362676a7 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt @@ -7,10 +7,8 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder import com.intellij.psi.PsiElement import com.intellij.psi.PsiErrorElement -import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.analysis.api.impl.barebone.annotations.ThreadSafe import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.FileStructureElement import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.FirElementsRecorder import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.declarationCanBeLazilyResolved import org.jetbrains.kotlin.analysis.low.level.api.fir.util.findSourceNonLocalFirDeclaration @@ -293,12 +291,6 @@ internal class FirElementBuilder( private fun FirAnnotationContainer.findAnnotation( annotationEntry: KtAnnotationEntry, ): FirAnnotation? = annotations.find { it.psi == annotationEntry } - - @TestOnly - fun getStructureElementFor(element: KtElement): FileStructureElement { - val fileStructure = moduleComponents.fileStructureCache.getFileStructure(element.containingKtFile) - return fileStructure.getStructureElementFor(element) - } } private fun KtDeclaration.isPartOf(callableDeclaration: KtCallableDeclaration): Boolean = when (this) { 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 44a695650e3..bc11f265abb 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 @@ -27,8 +27,6 @@ internal sealed class FileStructureElement { abstract val diagnostics: FileStructureElementDiagnostics companion object { - val recorder = FirElementsRecorder() - fun recorderFor(fir: FirElement): FirElementsRecorder = when (fir) { is FirFile -> RootStructureElement.Recorder is FirScript -> RootScriptStructureElement.Recorder diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/FirLazyBodiesCalculator.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/FirLazyBodiesCalculator.kt index 59d3e1baa8f..4c6ab9a01bf 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/FirLazyBodiesCalculator.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/FirLazyBodiesCalculator.kt @@ -66,13 +66,6 @@ internal object FirLazyBodiesCalculator { firElement.transformSingle(FirTargetLazyAnnotationCalculatorTransformer, FirLazyAnnotationTransformerData(session)) } - fun calculateCompilerAnnotations(firElement: FirElementWithResolveState) { - firElement.transformSingle( - FirTargetLazyAnnotationCalculatorTransformer, - FirLazyAnnotationTransformerData(firElement.moduleData.session, FirLazyAnnotationTransformerScope.COMPILER_ONLY) - ) - } - fun calculateLazyArgumentsForAnnotation(annotationCall: FirAnnotationCall, session: FirSession): FirArgumentList { require(needCalculatingAnnotationCall(annotationCall)) return createArgumentsForAnnotation(annotationCall, session) @@ -634,7 +627,6 @@ private fun calculateLazyBodyForCodeFragment(designation: FirDesignation) { private enum class FirLazyAnnotationTransformerScope { ALL_ANNOTATIONS, - COMPILER_ONLY; } private data class FirLazyAnnotationTransformerData( diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalDeclarationUtils.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalDeclarationUtils.kt index 7783ea61270..753127c5498 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalDeclarationUtils.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalDeclarationUtils.kt @@ -1,56 +1,15 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve -import org.jetbrains.kotlin.KtFakeSourceElement -import org.jetbrains.kotlin.KtFakeSourceElementKind -import org.jetbrains.kotlin.analysis.utils.printer.parentOfType -import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.psi -import org.jetbrains.kotlin.psi import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject -import org.jetbrains.kotlin.psi.psiUtil.getParentOfType import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment import org.jetbrains.kotlin.utils.exceptions.withPsiEntry -internal fun FirDeclaration.getKtDeclarationForFirElement(): KtDeclaration { - require(this !is FirFile) - - val ktDeclaration = (psi as? KtDeclaration) ?: run { - (source as? KtFakeSourceElement).psi?.parentOfType() - } - check(ktDeclaration is KtDeclaration) { - "FirDeclaration should have a PSI of type KtDeclaration" - } - - val declaration = when (this) { - is FirPropertyAccessor, is FirTypeParameter, is FirValueParameter -> { - when (ktDeclaration) { - is KtPropertyAccessor -> ktDeclaration.property - is KtProperty -> ktDeclaration - is KtParameter, is KtTypeParameter -> { - val containingDeclaration = ktDeclaration.getParentOfType(true) - if (containingDeclaration !is KtPropertyAccessor) containingDeclaration else containingDeclaration.property - } - is KtCallExpression -> { - check(this.source?.kind == KtFakeSourceElementKind.DefaultAccessor) - ((ktDeclaration as? KtCallExpression)?.parent as? KtPropertyDelegate)?.parent as? KtProperty - } - else -> ktDeclaration - } - } - else -> ktDeclaration - } - check(declaration is KtDeclaration) { - "FirDeclaration should have a PSI of type KtDeclaration" - } - return declaration -} - internal fun declarationCanBeLazilyResolved(declaration: KtDeclaration): Boolean = when (declaration) { is KtDestructuringDeclarationEntry, is KtFunctionLiteral, is KtTypeParameter -> false is KtPrimaryConstructor -> (declaration.parent as? KtClassOrObject)?.isLocal == false diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/LLFirResolvePhaseChecker.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/LLFirResolvePhaseChecker.kt deleted file mode 100644 index 43d5fc40c1d..00000000000 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/LLFirResolvePhaseChecker.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.util - -import org.jetbrains.kotlin.fir.declarations.FirDeclaration -import org.jetbrains.kotlin.fir.declarations.FirResolvePhase -import org.jetbrains.kotlin.fir.declarations.resolvePhase - -internal object LLFirResolvePhaseChecker { - fun requireResolvePhase(firDeclaration: FirDeclaration, requiredPhase: FirResolvePhase) { - require(firDeclaration.resolvePhase == FirResolvePhase.BODY_RESOLVE) { - "Required $requiredPhase for $firDeclaration but ${firDeclaration.resolvePhase} found" - } - } -} \ No newline at end of file