[FIR] Remove extension status transformation from status resolve
This commit is contained in:
+6
-21
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.declarations.*
|
|||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||||
import org.jetbrains.kotlin.fir.extensions.oldExtensionsService
|
|
||||||
import org.jetbrains.kotlin.fir.extensions.statusTransformerExtensions
|
import org.jetbrains.kotlin.fir.extensions.statusTransformerExtensions
|
||||||
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
|
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
|
||||||
import org.jetbrains.kotlin.fir.visitors.compose
|
import org.jetbrains.kotlin.fir.visitors.compose
|
||||||
@@ -78,14 +77,12 @@ class FirStatusResolveTransformer(
|
|||||||
|
|
||||||
override fun transformTypeAlias(typeAlias: FirTypeAlias, data: FirDeclarationStatus?): CompositeTransformResult<FirDeclaration> {
|
override fun transformTypeAlias(typeAlias: FirTypeAlias, data: FirDeclarationStatus?): CompositeTransformResult<FirDeclaration> {
|
||||||
typeAlias.typeParameters.forEach { transformDeclaration(it, data) }
|
typeAlias.typeParameters.forEach { transformDeclaration(it, data) }
|
||||||
val status = prepareStatus(typeAlias, typeAlias.status)
|
typeAlias.transformStatus(this, typeAlias.resolveStatus(typeAlias.status, containingClass, isLocal = false))
|
||||||
typeAlias.transformStatus(this, typeAlias.resolveStatus(status, containingClass, isLocal = false))
|
|
||||||
return transformDeclaration(typeAlias, data)
|
return transformDeclaration(typeAlias, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformRegularClass(regularClass: FirRegularClass, data: FirDeclarationStatus?): CompositeTransformResult<FirStatement> {
|
override fun transformRegularClass(regularClass: FirRegularClass, data: FirDeclarationStatus?): CompositeTransformResult<FirStatement> {
|
||||||
val status = prepareStatus(regularClass, regularClass.status)
|
regularClass.transformStatus(this, regularClass.resolveStatus(regularClass.status, containingClass, isLocal = false))
|
||||||
regularClass.transformStatus(this, regularClass.resolveStatus(status, containingClass, isLocal = false))
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
return storeClass(regularClass) {
|
return storeClass(regularClass) {
|
||||||
regularClass.typeParameters.forEach { it.transformSingle(this, data) }
|
regularClass.typeParameters.forEach { it.transformSingle(this, data) }
|
||||||
@@ -107,8 +104,7 @@ class FirStatusResolveTransformer(
|
|||||||
propertyAccessor: FirPropertyAccessor,
|
propertyAccessor: FirPropertyAccessor,
|
||||||
data: FirDeclarationStatus?
|
data: FirDeclarationStatus?
|
||||||
): CompositeTransformResult<FirStatement> {
|
): CompositeTransformResult<FirStatement> {
|
||||||
val status = prepareStatus(propertyAccessor, propertyAccessor.status)
|
propertyAccessor.transformStatus(this, propertyAccessor.resolveStatus(propertyAccessor.status, containingClass, isLocal = false))
|
||||||
propertyAccessor.transformStatus(this, propertyAccessor.resolveStatus(status, containingClass, isLocal = false))
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
return transformDeclaration(propertyAccessor, data) as CompositeTransformResult<FirStatement>
|
return transformDeclaration(propertyAccessor, data) as CompositeTransformResult<FirStatement>
|
||||||
}
|
}
|
||||||
@@ -117,8 +113,7 @@ class FirStatusResolveTransformer(
|
|||||||
constructor: FirConstructor,
|
constructor: FirConstructor,
|
||||||
data: FirDeclarationStatus?
|
data: FirDeclarationStatus?
|
||||||
): CompositeTransformResult<FirDeclaration> {
|
): CompositeTransformResult<FirDeclaration> {
|
||||||
val status = prepareStatus(constructor, constructor.status)
|
constructor.transformStatus(this, constructor.resolveStatus(constructor.status, containingClass, isLocal = false))
|
||||||
constructor.transformStatus(this, constructor.resolveStatus(status, containingClass, isLocal = false))
|
|
||||||
return transformDeclaration(constructor, data)
|
return transformDeclaration(constructor, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,8 +121,7 @@ class FirStatusResolveTransformer(
|
|||||||
simpleFunction: FirSimpleFunction,
|
simpleFunction: FirSimpleFunction,
|
||||||
data: FirDeclarationStatus?
|
data: FirDeclarationStatus?
|
||||||
): CompositeTransformResult<FirDeclaration> {
|
): CompositeTransformResult<FirDeclaration> {
|
||||||
val status = prepareStatus(simpleFunction, simpleFunction.status)
|
simpleFunction.transformStatus(this, simpleFunction.resolveStatus(simpleFunction.status, containingClass, isLocal = false))
|
||||||
simpleFunction.transformStatus(this, simpleFunction.resolveStatus(status, containingClass, isLocal = false))
|
|
||||||
return transformDeclaration(simpleFunction, data)
|
return transformDeclaration(simpleFunction, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,8 +129,7 @@ class FirStatusResolveTransformer(
|
|||||||
property: FirProperty,
|
property: FirProperty,
|
||||||
data: FirDeclarationStatus?
|
data: FirDeclarationStatus?
|
||||||
): CompositeTransformResult<FirDeclaration> {
|
): CompositeTransformResult<FirDeclaration> {
|
||||||
val status = prepareStatus(property, property.status)
|
property.transformStatus(this, property.resolveStatus(property.status, containingClass, isLocal = false))
|
||||||
property.transformStatus(this, property.resolveStatus(status, containingClass, isLocal = false))
|
|
||||||
return transformDeclaration(property, data)
|
return transformDeclaration(property, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,14 +155,6 @@ class FirStatusResolveTransformer(
|
|||||||
override fun transformBlock(block: FirBlock, data: FirDeclarationStatus?): CompositeTransformResult<FirStatement> {
|
override fun transformBlock(block: FirBlock, data: FirDeclarationStatus?): CompositeTransformResult<FirStatement> {
|
||||||
return block.compose()
|
return block.compose()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun <D> prepareStatus(declaration: D, status: FirDeclarationStatus): FirDeclarationStatus where D : FirDeclaration, D : FirAnnotationContainer {
|
|
||||||
var result = status
|
|
||||||
session.oldExtensionsService.statusTransformerExtensions.forDeclaration(declaration, classes).forEach {
|
|
||||||
result = it.transformStatus(declaration, status)
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val <F : FirClass<F>> FirClass<F>.effectiveVisibility: FirEffectiveVisibility
|
private val <F : FirClass<F>> FirClass<F>.effectiveVisibility: FirEffectiveVisibility
|
||||||
|
|||||||
Reference in New Issue
Block a user