[LL FIR] drop isScriptDependentDeclaration
Now this property is redundant ^KT-65344
This commit is contained in:
committed by
Space Team
parent
4f0bc86ad4
commit
348c9664c1
-7
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
+2
-6
@@ -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()
|
||||
|
||||
-3
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
+2
-8
@@ -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
|
||||
}
|
||||
|
||||
+4
-11
@@ -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>
|
||||
|
||||
+2
-3
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user