[LL FIR] drop isScriptDependentDeclaration

Now this property is redundant

^KT-65344
This commit is contained in:
Dmitrii Gridin
2024-02-05 14:31:52 +01:00
committed by Space Team
parent 4f0bc86ad4
commit 348c9664c1
6 changed files with 10 additions and 38 deletions
@@ -11,14 +11,12 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirLibraryOrLi
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirElementFinder
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.getContainingFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isLocalForLazyResolutionPurposes
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isScriptDependentDeclaration
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.unwrapCopy
import org.jetbrains.kotlin.analysis.project.structure.DanglingFileResolutionMode
import org.jetbrains.kotlin.analysis.project.structure.KtDanglingFileModule
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
@@ -355,11 +353,6 @@ private fun FirDeclaration.scriptDesignation(): FirDesignation? {
val firFile = firScriptSymbol.fir.getContainingFile() ?: return null
FirDesignation(path = listOf(firFile), target = firScriptSymbol.fir)
}
isScriptDependentDeclaration -> {
val firFile = getContainingFile() ?: return null
val firScript = firFile.declarations.singleOrNull() as? FirScript ?: return null
FirDesignation(path = listOf(firFile), target = firScript)
}
else -> null
}
}
@@ -1,5 +1,5 @@
/*
* 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.
*/
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isElementWhichShouldBeResolvedAsPartOfScript
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isScriptDependentDeclaration
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirElementWithResolveState
import org.jetbrains.kotlin.fir.declarations.*
@@ -81,10 +80,7 @@ internal object LLFirPhaseUpdater {
private object PhaseUpdatingTransformer : FirVisitor<Unit, FirResolvePhase>() {
override fun visitElement(element: FirElement, data: FirResolvePhase) {
if (element is FirElementWithResolveState) {
if (element.resolvePhase >= data &&
element !is FirDefaultPropertyAccessor &&
!(element is FirDeclaration && element.isScriptDependentDeclaration)
) return
if (element.resolvePhase >= data && element !is FirDefaultPropertyAccessor) return
@OptIn(ResolveStateAccess::class)
element.resolveState = data.asResolveState()
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodie
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeprecationProviderIsResolved
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isScriptDependentDeclaration
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
import org.jetbrains.kotlin.fir.FirAnnotationContainer
import org.jetbrains.kotlin.fir.FirElementWithResolveState
@@ -318,8 +317,6 @@ private fun FirAnnotationContainer.hasAnnotationsToResolve(): Boolean {
is FirProperty -> this.getter?.hasAnnotationsToResolve() == true ||
this.setter?.hasAnnotationsToResolve() == true ||
this.backingField?.hasAnnotationsToResolve() == true
is FirScript -> declarations.any { it.isScriptDependentDeclaration && it.hasAnnotationsToResolve() }
else -> false
}
}
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockPro
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.LLFirDeclarationModificationService
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkReturnTypeRefIsResolved
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isScriptDependentDeclaration
import org.jetbrains.kotlin.fir.FirElementWithResolveState
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.declarations.*
@@ -199,12 +198,6 @@ internal class LLFirImplicitBodyTargetResolver(
}
}
target is FirScript -> {
if (target.declarations.any { it.isScriptDependentDeclaration }) {
resolve(target, BodyStateKeepers.SCRIPT)
}
}
target is FirRegularClass ||
target is FirTypeAlias ||
target is FirFile ||
@@ -213,7 +206,8 @@ internal class LLFirImplicitBodyTargetResolver(
target is FirDanglingModifierList ||
target is FirFileAnnotationsContainer ||
target is FirEnumEntry ||
target is FirErrorProperty
target is FirErrorProperty ||
target is FirScript
-> {
// No implicit bodies here
}
@@ -1,5 +1,5 @@
/*
* 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.
*/
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.getNonLoc
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.isAutonomousDeclaration
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirProvider
import org.jetbrains.kotlin.analysis.utils.printer.parentOfType
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.psi
@@ -229,10 +228,7 @@ internal inline fun FirDeclaration.forEachDeclaration(action: (FirDeclaration) -
}
}
internal val FirDeclaration.isElementWhichShouldBeResolvedAsPartOfScript: Boolean get() = this is FirAnonymousInitializer || isScriptDependentDeclaration
internal val FirDeclaration.isScriptDependentDeclaration: Boolean
get() = false
internal val FirDeclaration.isElementWhichShouldBeResolvedAsPartOfScript: Boolean get() = this is FirAnonymousInitializer
/**
* Some "local" declarations are not local from the lazy resolution perspective.
@@ -245,11 +241,8 @@ internal val FirCallableSymbol<*>.isLocalForLazyResolutionPurposes: Boolean
else -> callableId.isLocal || fir.status.visibility == Visibilities.Local
}
internal inline fun FirScript.forEachDependentDeclaration(action: (FirDeclaration) -> Unit) {
for (declaration in declarations) {
if (declaration is FirAnonymousInitializer || !declaration.isScriptDependentDeclaration) continue
action(declaration)
}
internal inline fun FirScript.forEachDependentDeclaration(@Suppress("unused") action: (FirDeclaration) -> Unit) {
}
val PsiElement.parentsWithSelfCodeFragmentAware: Sequence<PsiElement>
@@ -1,5 +1,5 @@
/*
* 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.
*/
@@ -114,8 +114,7 @@ internal fun checkStatementsAreResolved(script: FirScript) {
}
}
for (declaration in script.declarations) {
if (declaration.isScriptDependentDeclaration) {
} else if (declaration is FirAnonymousInitializer) {
if (declaration is FirAnonymousInitializer) {
declaration.body?.statements?.filterIsInstance<FirExpression>()?.forEach(::checkExpression)
}
}