[FIR] Move call of status transform extensions to FirStatusResolver
It makes more sense to run status transformer extension right in status resolve stage, because it reduces number of compiler stages
This commit is contained in:
committed by
TeamCityServer
parent
6d42914e56
commit
91624dd841
+1
-1
@@ -24,7 +24,7 @@ class AllOpenStatusTransformer(session: FirSession) : FirStatusTransformerExtens
|
||||
private val ALL_OPEN = FqName("org.jetbrains.kotlin.fir.plugin.AllOpen")
|
||||
}
|
||||
|
||||
override fun transformStatus(declaration: FirDeclaration, owners: List<FirAnnotatedDeclaration>, status: FirDeclarationStatus): FirDeclarationStatus {
|
||||
override fun transformStatus(status: FirDeclarationStatus, declaration: FirAnnotatedDeclaration): FirDeclarationStatus {
|
||||
if (status.modality != null) return status
|
||||
return status.transform(modality = Modality.OPEN)
|
||||
}
|
||||
|
||||
+3
-5
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.expressions.arguments
|
||||
import org.jetbrains.kotlin.fir.extensions.FirStatusTransformerExtension
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.DeclarationPredicate
|
||||
import org.jetbrains.kotlin.fir.extensions.predicate.hasOrUnder
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.extensions.transform
|
||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
@@ -39,11 +40,8 @@ class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerEx
|
||||
private val ProtectedName = Name.identifier("Protected")
|
||||
}
|
||||
|
||||
override fun transformStatus(
|
||||
declaration: FirDeclaration,
|
||||
owners: List<FirAnnotatedDeclaration>,
|
||||
status: FirDeclarationStatus
|
||||
): FirDeclarationStatus {
|
||||
override fun transformStatus(status: FirDeclarationStatus, declaration: FirAnnotatedDeclaration): FirDeclarationStatus {
|
||||
val owners = session.predicateBasedProvider.getOwnersOfDeclaration(declaration) ?: emptyList()
|
||||
val visibility = findVisibility(declaration, owners) ?: return status
|
||||
if (visibility == status.visibility) return status
|
||||
return status.transform(visibility = visibility)
|
||||
|
||||
Reference in New Issue
Block a user