[LL FIR] drop forEachDependentDeclaration
Now this function is redundant ^KT-65344
This commit is contained in:
committed by
Space Team
parent
5de5f70ec9
commit
697f1477fd
-5
@@ -12,7 +12,6 @@ import kotlinx.collections.immutable.toPersistentList
|
||||
import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignation
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.withFirDesignationEntry
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.builder.PsiRawFirBuilder
|
||||
import org.jetbrains.kotlin.fir.contracts.FirRawContractDescription
|
||||
@@ -668,10 +667,6 @@ private object FirTargetLazyAnnotationCalculatorTransformer : FirLazyAnnotationT
|
||||
|
||||
override fun transformScript(script: FirScript, data: FirLazyAnnotationTransformerData): FirScript {
|
||||
script.transformAnnotations(this, data)
|
||||
script.forEachDependentDeclaration {
|
||||
it.transformSingle(this, data)
|
||||
}
|
||||
|
||||
return script
|
||||
}
|
||||
|
||||
|
||||
-2
@@ -5,7 +5,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.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||
@@ -64,7 +63,6 @@ internal object LLFirPhaseUpdater {
|
||||
}
|
||||
|
||||
when (element) {
|
||||
is FirScript -> element.forEachDependentDeclaration { updatePhaseForNonLocals(it, newPhase, isTargetDeclaration = false) }
|
||||
is FirFunction -> element.valueParameters.forEach { updatePhaseForNonLocals(it, newPhase, isTargetDeclaration = false) }
|
||||
is FirProperty -> {
|
||||
element.getter?.let { updatePhaseForNonLocals(it, newPhase, isTargetDeclaration = false) }
|
||||
|
||||
+1
-11
@@ -12,7 +12,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.AnnotationVisitorVoid
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkAnnotationsAreResolved
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
@@ -193,16 +192,7 @@ private class LLFirAnnotationArgumentsTargetResolver(
|
||||
}
|
||||
}
|
||||
|
||||
target is FirScript -> {
|
||||
target.transformAnnotations(transformer.declarationsTransformer, ResolutionMode.ContextIndependent)
|
||||
transformer.declarationsTransformer.withScript(target) {
|
||||
target.forEachDependentDeclaration {
|
||||
it.transformSingle(transformer, ResolutionMode.ContextIndependent)
|
||||
}
|
||||
|
||||
target
|
||||
}
|
||||
}
|
||||
target is FirScript -> target.transformAnnotations(transformer.declarationsTransformer, ResolutionMode.ContextIndependent)
|
||||
target.isRegularDeclarationWithAnnotation -> target.transformSingle(transformer, ResolutionMode.ContextIndependent)
|
||||
target is FirCodeFragment || target is FirFile -> {}
|
||||
else -> throwUnexpectedFirElementError(target)
|
||||
|
||||
-7
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockPro
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator
|
||||
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.utils.errors.requireIsInstance
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||
@@ -244,8 +243,6 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver(
|
||||
target.setter?.let(::publishResult)
|
||||
target.backingField?.let(::publishResult)
|
||||
}
|
||||
|
||||
is FirScript -> target.forEachDependentDeclaration(::publishResult)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -268,10 +265,6 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver(
|
||||
setter?.annotationsForTransformationTo(map)
|
||||
backingField?.annotationsForTransformationTo(map)
|
||||
}
|
||||
|
||||
is FirScript -> {
|
||||
forEachDependentDeclaration { it.annotationsForTransformationTo(map) }
|
||||
}
|
||||
}
|
||||
|
||||
if (annotations.isEmpty()) return
|
||||
|
||||
+1
-17
@@ -10,13 +10,11 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirEle
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
|
||||
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.fir.FirElementWithResolveState
|
||||
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.isCopyCreatedInScope
|
||||
import org.jetbrains.kotlin.fir.resolve.ResolutionMode
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector
|
||||
@@ -27,7 +25,6 @@ import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
||||
import org.jetbrains.kotlin.fir.util.setMultimapOf
|
||||
import org.jetbrains.kotlin.fir.utils.exceptions.withFirEntry
|
||||
import org.jetbrains.kotlin.fir.utils.exceptions.withFirSymbolEntry
|
||||
import org.jetbrains.kotlin.fir.visitors.transformSingle
|
||||
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
|
||||
import org.jetbrains.kotlin.utils.exceptions.requireWithAttachment
|
||||
|
||||
@@ -227,20 +224,7 @@ internal class LLFirImplicitBodyTargetResolver(
|
||||
}
|
||||
|
||||
override fun rawResolve(target: FirElementWithResolveState) {
|
||||
when {
|
||||
target is FirScript -> {
|
||||
transformer.declarationsTransformer.withScript(target) {
|
||||
target.forEachDependentDeclaration {
|
||||
it.transformSingle(transformer, ResolutionMode.ContextIndependent)
|
||||
}
|
||||
|
||||
target
|
||||
}
|
||||
}
|
||||
|
||||
else -> super.rawResolve(target)
|
||||
}
|
||||
|
||||
super.rawResolve(target)
|
||||
LLFirDeclarationModificationService.bodyResolved(target, resolverPhase)
|
||||
}
|
||||
}
|
||||
|
||||
-8
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirResolveT
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirPhaseUpdater
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkPhase
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
|
||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
@@ -54,7 +53,6 @@ internal abstract class LLFirLazyResolver(val resolverPhase: FirResolvePhase) {
|
||||
checkFunctionParametersAreResolved(target)
|
||||
checkVariableSubDeclarationsAreResolved(target)
|
||||
checkTypeParametersAreResolved(target)
|
||||
checkScriptDependentDeclarationsAreResolved(target)
|
||||
}
|
||||
|
||||
private fun checkVariableSubDeclarationsAreResolved(declaration: FirDeclaration) {
|
||||
@@ -81,10 +79,4 @@ internal abstract class LLFirLazyResolver(val resolverPhase: FirResolvePhase) {
|
||||
checkIsResolved(parameter)
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkScriptDependentDeclarationsAreResolved(declaration: FirDeclaration) {
|
||||
if (declaration !is FirScript) return
|
||||
|
||||
declaration.forEachDependentDeclaration(::checkIsResolved)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-3
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.tryCollectDesignation
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeclarationStatusIsResolved
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
|
||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
@@ -189,8 +188,7 @@ private class LLFirStatusTargetResolver(
|
||||
override fun doLazyResolveUnderLock(target: FirElementWithResolveState) {
|
||||
when (target) {
|
||||
is FirRegularClass -> error("should be resolved in doResolveWithoutLock")
|
||||
// It is fine to call status transformer under lock, because declarations can't have a containing class
|
||||
is FirScript -> target.forEachDependentDeclaration { it.transformSingle(transformer, data = null) }
|
||||
is FirScript -> {}
|
||||
else -> target.transformSingle(transformer, data = null)
|
||||
}
|
||||
}
|
||||
|
||||
-2
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkReceiverTypeRef
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkReturnTypeRefIsResolved
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkTypeRefIsResolved
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
|
||||
@@ -181,7 +180,6 @@ private class LLFirTypeTargetResolver(
|
||||
private fun resolveScriptTypes(firScript: FirScript) {
|
||||
firScript.annotations.forEach { it.accept(transformer, null) }
|
||||
firScript.contextReceivers.forEach { it.accept(transformer, null) }
|
||||
firScript.forEachDependentDeclaration { it.accept(transformer, null) }
|
||||
}
|
||||
|
||||
private fun resolveClassTypes(firClass: FirRegularClass) {
|
||||
|
||||
-5
@@ -5,13 +5,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.transformers
|
||||
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isLocalForLazyResolutionPurposes
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataKey
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataRegistry
|
||||
import org.jetbrains.kotlin.fir.declarations.FirScript
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
|
||||
@@ -70,9 +68,6 @@ internal fun FirBasedSymbol<*>.cannotResolveAnnotationsOnDemand(): Boolean {
|
||||
internal fun FirDeclaration.forEachDeclarationWhichCanHavePostponedSymbols(action: (FirCallableDeclaration) -> Unit) {
|
||||
when (this) {
|
||||
is FirCallableDeclaration -> action(this)
|
||||
is FirScript -> forEachDependentDeclaration {
|
||||
it.forEachDeclarationWhichCanHavePostponedSymbols(action)
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
-4
@@ -241,10 +241,6 @@ internal val FirCallableSymbol<*>.isLocalForLazyResolutionPurposes: Boolean
|
||||
else -> callableId.isLocal || fir.status.visibility == Visibilities.Local
|
||||
}
|
||||
|
||||
internal inline fun FirScript.forEachDependentDeclaration(@Suppress("unused") action: (FirDeclaration) -> Unit) {
|
||||
|
||||
}
|
||||
|
||||
val PsiElement.parentsWithSelfCodeFragmentAware: Sequence<PsiElement>
|
||||
get() = generateSequence(this) { element ->
|
||||
when (element) {
|
||||
|
||||
Reference in New Issue
Block a user