[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.FirElementFinder
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.getContainingFile
|
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.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.low.level.api.fir.util.unwrapCopy
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.DanglingFileResolutionMode
|
import org.jetbrains.kotlin.analysis.project.structure.DanglingFileResolutionMode
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtDanglingFileModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtDanglingFileModule
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError
|
import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError
|
||||||
import org.jetbrains.kotlin.builtins.StandardNames
|
import org.jetbrains.kotlin.builtins.StandardNames
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
||||||
@@ -355,11 +353,6 @@ private fun FirDeclaration.scriptDesignation(): FirDesignation? {
|
|||||||
val firFile = firScriptSymbol.fir.getContainingFile() ?: return null
|
val firFile = firScriptSymbol.fir.getContainingFile() ?: return null
|
||||||
FirDesignation(path = listOf(firFile), target = firScriptSymbol.fir)
|
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
|
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.
|
* 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.forEachDependentDeclaration
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isElementWhichShouldBeResolvedAsPartOfScript
|
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.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
@@ -81,10 +80,7 @@ internal object LLFirPhaseUpdater {
|
|||||||
private object PhaseUpdatingTransformer : FirVisitor<Unit, FirResolvePhase>() {
|
private object PhaseUpdatingTransformer : FirVisitor<Unit, FirResolvePhase>() {
|
||||||
override fun visitElement(element: FirElement, data: FirResolvePhase) {
|
override fun visitElement(element: FirElement, data: FirResolvePhase) {
|
||||||
if (element is FirElementWithResolveState) {
|
if (element is FirElementWithResolveState) {
|
||||||
if (element.resolvePhase >= data &&
|
if (element.resolvePhase >= data && element !is FirDefaultPropertyAccessor) return
|
||||||
element !is FirDefaultPropertyAccessor &&
|
|
||||||
!(element is FirDeclaration && element.isScriptDependentDeclaration)
|
|
||||||
) return
|
|
||||||
|
|
||||||
@OptIn(ResolveStateAccess::class)
|
@OptIn(ResolveStateAccess::class)
|
||||||
element.resolveState = data.asResolveState()
|
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.sessions.llFirSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeprecationProviderIsResolved
|
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.forEachDependentDeclaration
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isScriptDependentDeclaration
|
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
||||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||||
@@ -318,8 +317,6 @@ private fun FirAnnotationContainer.hasAnnotationsToResolve(): Boolean {
|
|||||||
is FirProperty -> this.getter?.hasAnnotationsToResolve() == true ||
|
is FirProperty -> this.getter?.hasAnnotationsToResolve() == true ||
|
||||||
this.setter?.hasAnnotationsToResolve() == true ||
|
this.setter?.hasAnnotationsToResolve() == true ||
|
||||||
this.backingField?.hasAnnotationsToResolve() == true
|
this.backingField?.hasAnnotationsToResolve() == true
|
||||||
|
|
||||||
is FirScript -> declarations.any { it.isScriptDependentDeclaration && it.hasAnnotationsToResolve() }
|
|
||||||
else -> false
|
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.file.structure.LLFirDeclarationModificationService
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkReturnTypeRefIsResolved
|
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.forEachDependentDeclaration
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isScriptDependentDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||||
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
|
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
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 FirRegularClass ||
|
||||||
target is FirTypeAlias ||
|
target is FirTypeAlias ||
|
||||||
target is FirFile ||
|
target is FirFile ||
|
||||||
@@ -213,7 +206,8 @@ internal class LLFirImplicitBodyTargetResolver(
|
|||||||
target is FirDanglingModifierList ||
|
target is FirDanglingModifierList ||
|
||||||
target is FirFileAnnotationsContainer ||
|
target is FirFileAnnotationsContainer ||
|
||||||
target is FirEnumEntry ||
|
target is FirEnumEntry ||
|
||||||
target is FirErrorProperty
|
target is FirErrorProperty ||
|
||||||
|
target is FirScript
|
||||||
-> {
|
-> {
|
||||||
// No implicit bodies here
|
// 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.
|
* 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.element.builder.isAutonomousDeclaration
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
|
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.low.level.api.fir.providers.LLFirProvider
|
||||||
import org.jetbrains.kotlin.analysis.utils.printer.parentOfType
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.psi
|
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.isElementWhichShouldBeResolvedAsPartOfScript: Boolean get() = this is FirAnonymousInitializer
|
||||||
|
|
||||||
internal val FirDeclaration.isScriptDependentDeclaration: Boolean
|
|
||||||
get() = false
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Some "local" declarations are not local from the lazy resolution perspective.
|
* 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
|
else -> callableId.isLocal || fir.status.visibility == Visibilities.Local
|
||||||
}
|
}
|
||||||
|
|
||||||
internal inline fun FirScript.forEachDependentDeclaration(action: (FirDeclaration) -> Unit) {
|
internal inline fun FirScript.forEachDependentDeclaration(@Suppress("unused") action: (FirDeclaration) -> Unit) {
|
||||||
for (declaration in declarations) {
|
|
||||||
if (declaration is FirAnonymousInitializer || !declaration.isScriptDependentDeclaration) continue
|
|
||||||
action(declaration)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val PsiElement.parentsWithSelfCodeFragmentAware: Sequence<PsiElement>
|
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.
|
* 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) {
|
for (declaration in script.declarations) {
|
||||||
if (declaration.isScriptDependentDeclaration) {
|
if (declaration is FirAnonymousInitializer) {
|
||||||
} else if (declaration is FirAnonymousInitializer) {
|
|
||||||
declaration.body?.statements?.filterIsInstance<FirExpression>()?.forEach(::checkExpression)
|
declaration.body?.statements?.filterIsInstance<FirExpression>()?.forEach(::checkExpression)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user