minor: rename FirScript.statements do declarations...
to simplify the following commit that actually convert the types and wrap statements into blocks.
This commit is contained in:
committed by
Space Team
parent
a29a7e6307
commit
c9aee5bf09
+1
-2
@@ -67,7 +67,6 @@ import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
|
||||
import java.util.Arrays
|
||||
|
||||
internal class KtFirReferenceShortener(
|
||||
override val analysisSession: KtFirAnalysisSession,
|
||||
@@ -433,7 +432,7 @@ private class CollectingVisitor(private val collector: ElementsToShortenCollecto
|
||||
}
|
||||
|
||||
override fun visitScript(script: FirScript) {
|
||||
script.statements.forEach {
|
||||
script.declarations.forEach {
|
||||
it.accept(this)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ internal class KtFirResultPropertySymbolPointer(private val scriptPointer: KtSym
|
||||
scriptPointer.restoreSymbol()?.firSymbol?.fir as? FirScript
|
||||
} ?: return null
|
||||
|
||||
val lastProperty = script.statements.lastOrNull() as? FirProperty ?: return null
|
||||
val lastProperty = script.declarations.lastOrNull() as? FirProperty ?: return null
|
||||
if (lastProperty.origin !is FirDeclarationOrigin.ScriptCustomization.ResultProperty) return null
|
||||
return analysisSession.firSymbolBuilder.variableLikeBuilder.buildPropertySymbol(lastProperty.symbol) as? KtKotlinPropertySymbol
|
||||
}
|
||||
|
||||
+6
-6
@@ -364,9 +364,9 @@ object LowLevelFirApiFacadeForResolveOnAir {
|
||||
* We assume that [newScript] has the same declarations as [originalScript]
|
||||
*/
|
||||
private fun restoreOriginalDeclarationsInScript(originalScript: FirScript, newScript: FirScript) {
|
||||
val updatedStatements = ArrayList<FirStatement>(newScript.statements.size)
|
||||
val originalDeclarations = originalScript.statements.iterator()
|
||||
for (recreatedStatement in newScript.statements) {
|
||||
val updatedStatements = ArrayList<FirStatement>(newScript.declarations.size)
|
||||
val originalDeclarations = originalScript.declarations.iterator()
|
||||
for (recreatedStatement in newScript.declarations) {
|
||||
updatedStatements += if (recreatedStatement.isScriptStatement) {
|
||||
recreatedStatement
|
||||
} else {
|
||||
@@ -379,12 +379,12 @@ object LowLevelFirApiFacadeForResolveOnAir {
|
||||
scriptDeclarationInconsistencyError(originalScript, newScript)
|
||||
}
|
||||
|
||||
newScript.replaceStatements(updatedStatements)
|
||||
newScript.replaceDeclarations(updatedStatements)
|
||||
}
|
||||
|
||||
private fun scriptDeclarationInconsistencyError(originalScript: FirScript, newScript: FirScript): Nothing {
|
||||
val originalDeclarations = originalScript.statements.filterNot(FirStatement::isScriptStatement)
|
||||
val newDeclarations = newScript.statements.filterNot(FirStatement::isScriptStatement)
|
||||
val originalDeclarations = originalScript.declarations.filterNot(FirStatement::isScriptStatement)
|
||||
val newDeclarations = newScript.declarations.filterNot(FirStatement::isScriptStatement)
|
||||
errorWithAttachment("New script has ${if (newDeclarations.size > originalDeclarations.size) "more" else "less"} declarations") {
|
||||
withFirEntry("originalScript", originalScript)
|
||||
withFirEntry("newScript", newScript)
|
||||
|
||||
+1
-1
@@ -141,7 +141,7 @@ internal class RootScriptStructureElement(
|
||||
internal fun <T, R> visitScriptDependentElements(script: FirScript, visitor: FirVisitor<T, R>, data: R) {
|
||||
script.annotations.forEach { it.accept(visitor, data) }
|
||||
script.contextReceivers.forEach { it.accept(visitor, data) }
|
||||
script.statements.forEach {
|
||||
script.declarations.forEach {
|
||||
if (it.isScriptStatement) {
|
||||
it.accept(visitor, data)
|
||||
}
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ internal object FirLazyBodiesCalculator {
|
||||
|
||||
fun createStatementsForScript(script: FirScript): List<FirStatement> {
|
||||
val newScript = revive<FirScript>(FirDesignation(emptyList(), script))
|
||||
return newScript.statements
|
||||
return newScript.declarations
|
||||
}
|
||||
|
||||
fun needCalculatingAnnotationCall(firAnnotationCall: FirAnnotationCall): Boolean =
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ internal object LLFirPhaseUpdater {
|
||||
is FirAnonymousInitializer -> target.body?.accept(PhaseUpdatingTransformer, newPhase)
|
||||
is FirScript -> {
|
||||
target.parameters.forEach { it.accept(PhaseUpdatingTransformer, newPhase) }
|
||||
for (statement in target.statements) {
|
||||
for (statement in target.declarations) {
|
||||
if (!statement.isScriptStatement) continue
|
||||
statement.accept(PhaseUpdatingTransformer, newPhase)
|
||||
}
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ internal abstract class LLFirAbstractBodyTargetResolver(
|
||||
protected fun resolveScript(script: FirScript) {
|
||||
transformer.declarationsTransformer?.withScript(script) {
|
||||
script.parameters.forEach { it.transformSingle(transformer, ResolutionMode.ContextIndependent) }
|
||||
script.transformStatements(
|
||||
script.transformDeclarations(
|
||||
transformer = object : FirTransformer<Any?>() {
|
||||
override fun <E : FirElement> transformElement(element: E, data: Any?): E {
|
||||
if (element !is FirStatement || !element.isScriptStatement) return element
|
||||
|
||||
+3
-3
@@ -291,11 +291,11 @@ private class LLFirBodyTargetResolver(
|
||||
|
||||
internal object BodyStateKeepers {
|
||||
val SCRIPT: StateKeeper<FirScript, FirDesignationWithFile> = stateKeeper { script, designation ->
|
||||
val oldStatements = script.statements
|
||||
val oldStatements = script.declarations
|
||||
if (oldStatements.none { it.isScriptStatement } || script.isCertainlyResolved) return@stateKeeper
|
||||
|
||||
add(RESULT_PROPERTY, designation)
|
||||
add(FirScript::statements, FirScript::replaceStatements) {
|
||||
add(FirScript::declarations, FirScript::replaceDeclarations) {
|
||||
val recreatedStatements = FirLazyBodiesCalculator.createStatementsForScript(script)
|
||||
requireSameSize(oldStatements, recreatedStatements)
|
||||
|
||||
@@ -447,7 +447,7 @@ private fun StateKeeperScope<FirFunction, FirDesignationWithFile>.preserveContra
|
||||
}
|
||||
}
|
||||
|
||||
private fun FirScript.findResultProperty(): FirProperty? = statements.findIsInstanceAnd<FirProperty> {
|
||||
private fun FirScript.findResultProperty(): FirProperty? = declarations.findIsInstanceAnd<FirProperty> {
|
||||
it.origin == FirDeclarationOrigin.ScriptCustomization.ResultProperty
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -321,7 +321,7 @@ private fun FirAnnotationContainer.hasAnnotationsToResolve(): Boolean {
|
||||
this.setter?.hasAnnotationsToResolve() == true ||
|
||||
this.backingField?.hasAnnotationsToResolve() == true
|
||||
|
||||
is FirScript -> statements.any { it.isScriptDependentDeclaration && it.hasAnnotationsToResolve() }
|
||||
is FirScript -> declarations.any { it.isScriptDependentDeclaration && it.hasAnnotationsToResolve() }
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -168,7 +168,7 @@ internal class LLFirImplicitBodyTargetResolver(
|
||||
}
|
||||
|
||||
is FirScript -> {
|
||||
if (target.statements.any { it.isScriptDependentDeclaration }) {
|
||||
if (target.declarations.any { it.isScriptDependentDeclaration }) {
|
||||
resolve(target, BodyStateKeepers.SCRIPT)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -97,7 +97,7 @@ internal object FirElementFinder {
|
||||
}
|
||||
|
||||
subDeclaration is FirScript -> {
|
||||
val scriptDeclarations = subDeclaration.statements.asSequence().filterIsInstance<FirDeclaration>()
|
||||
val scriptDeclarations = subDeclaration.declarations.asSequence().filterIsInstance<FirDeclaration>()
|
||||
if (find(scriptDeclarations.asIterable(), classIdPathIndex)) {
|
||||
return true
|
||||
}
|
||||
|
||||
+3
-3
@@ -60,7 +60,7 @@ internal fun KtDeclaration.findSourceNonLocalFirDeclaration(firFile: FirFile, pr
|
||||
return@findSourceNonLocalFirDeclarationByProvider firScript?.takeIf { it.psi == declaration }
|
||||
}
|
||||
|
||||
firScript?.statements?.filterIsInstance<FirDeclaration>()
|
||||
firScript?.declarations?.filterIsInstance<FirDeclaration>()
|
||||
} else {
|
||||
firFile.declarations
|
||||
}
|
||||
@@ -211,7 +211,7 @@ val FirDeclaration.isGeneratedDeclaration
|
||||
get() = realPsi == null
|
||||
|
||||
internal inline fun FirScript.forEachDeclaration(action: (FirDeclaration) -> Unit) {
|
||||
for (statement in statements) {
|
||||
for (statement in declarations) {
|
||||
if (statement.isScriptStatement) continue
|
||||
action(statement as FirDeclaration)
|
||||
}
|
||||
@@ -242,7 +242,7 @@ internal val FirStatement.isScriptDependentDeclaration: Boolean
|
||||
get() = this is FirDeclaration && origin == FirDeclarationOrigin.ScriptCustomization.ResultProperty
|
||||
|
||||
internal inline fun FirScript.forEachDependentDeclaration(action: (FirDeclaration) -> Unit) {
|
||||
for (statement in statements) {
|
||||
for (statement in declarations) {
|
||||
if (statement !is FirDeclaration || !statement.isScriptDependentDeclaration) continue
|
||||
action(statement)
|
||||
}
|
||||
|
||||
+1
-1
@@ -108,7 +108,7 @@ internal fun checkBodyIsResolved(function: FirFunction) {
|
||||
}
|
||||
|
||||
internal fun checkStatementsAreResolved(script: FirScript) {
|
||||
for (statement in script.statements) {
|
||||
for (statement in script.declarations) {
|
||||
if (statement.isScriptStatement && statement is FirExpression) {
|
||||
checkExpressionTypeIsResolved(statement.coneTypeOrNull, "script statement", script) {
|
||||
withFirEntry("expression", statement)
|
||||
|
||||
+1
-1
@@ -91,7 +91,7 @@ abstract class AbstractFirLazyDeclarationResolveTestCase : AbstractLowLevelApiLa
|
||||
val (classSymbol, declarations) = when (symbol) {
|
||||
is FirClassSymbol -> symbol to symbol.declarationSymbols
|
||||
is FirScriptSymbol -> {
|
||||
symbol to symbol.fir.let { it.parameters + it.statements }.mapNotNull { (it as? FirDeclaration)?.symbol }
|
||||
symbol to symbol.fir.let { it.parameters + it.declarations }.mapNotNull { (it as? FirDeclaration)?.symbol }
|
||||
}
|
||||
|
||||
else -> error("Unknown container: ${symbol::class.simpleName}")
|
||||
|
||||
Reference in New Issue
Block a user