[FIR] Add transformTypeParameters to FirTypeParameterRefsOwner

This commit is contained in:
Dmitriy Novozhilov
2020-07-14 12:32:55 +03:00
parent 4083111dab
commit 9e94189852
40 changed files with 154 additions and 28 deletions
@@ -80,7 +80,7 @@ class FirJavaClass @FirImplementationDetail internal constructor(
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirJavaClass {
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
transformDeclarations(transformer, data)
status = status.transformSingle(transformer, data)
transformSuperTypeRefs(transformer, data)
@@ -115,6 +115,11 @@ class FirJavaClass @FirImplementationDetail internal constructor(
override fun <D> transformCompanionObject(transformer: FirTransformer<D>, data: D): FirJavaClass {
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirRegularClass {
typeParameters.transformInplace(transformer, data)
return this
}
}
@FirBuilderDsl
@@ -88,7 +88,7 @@ class FirJavaConstructor @FirImplementationDetail constructor(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirJavaConstructor {
transformReturnTypeRef(transformer, data)
transformControlFlowGraphReference(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
transformValueParameters(transformer, data)
status = status.transformSingle(transformer, data)
transformAnnotations(transformer, data)
@@ -117,6 +117,11 @@ class FirJavaConstructor @FirImplementationDetail constructor(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirJavaConstructor {
typeParameters.transformInplace(transformer, data)
return this
}
override var containerSource: DeserializedContainerSource? = null
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
@@ -72,7 +72,6 @@ class FirJavaField @FirImplementationDetail constructor(
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirField {
transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
return this
}
@@ -92,6 +91,7 @@ class FirJavaField @FirImplementationDetail constructor(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirJavaField {
transformReturnTypeRef(transformer, data)
transformTypeParameters(transformer, data)
transformOtherChildren(transformer, data)
return this
}
@@ -110,6 +110,11 @@ class FirJavaField @FirImplementationDetail constructor(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirField {
typeParameters.transformInplace(transformer, data)
return this
}
override val delegate: FirExpression?
get() = null
@@ -224,7 +224,8 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
if (property.delegateFieldSymbol != null) {
replacePropertyReferenceTypeInDelegateAccessors(property)
}
property.transformOtherChildren(transformer, ResolutionMode.ContextIndependent)
property.transformTypeParameters(transformer, ResolutionMode.ContextIndependent)
.transformOtherChildren(transformer, ResolutionMode.ContextIndependent)
}
override fun transformWrappedDelegateExpression(
@@ -259,6 +260,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
val resolutionMode = withExpectedType(variable.returnTypeRef)
variable.transformInitializer(transformer, resolutionMode)
.transformDelegate(transformer, resolutionMode)
.transformTypeParameters(transformer, resolutionMode)
.transformOtherChildren(transformer, resolutionMode)
.transformInitializer(integerLiteralTypeApproximator, null)
if (variable.initializer != null) {
@@ -277,6 +279,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
return transformReturnTypeRef(transformer, data)
.transformInitializer(transformer, data)
.transformDelegate(transformer, data)
.transformTypeParameters(transformer, data)
.transformOtherChildren(transformer, data)
}
@@ -66,4 +66,6 @@ abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpr
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
}
@@ -45,6 +45,8 @@ abstract class FirAnonymousObject : FirClass<FirAnonymousObject>, FirControlFlow
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirAnonymousObject
abstract override fun <D> transformSuperTypeRefs(transformer: FirTransformer<D>, data: D): FirAnonymousObject
abstract override fun <D> transformDeclarations(transformer: FirTransformer<D>, data: D): FirAnonymousObject
@@ -46,5 +46,7 @@ interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : Fi
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<F>
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<F>
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<F>
}
@@ -40,6 +40,8 @@ interface FirClass<F : FirClass<F>> : FirClassLikeDeclaration<F>, FirStatement,
fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>)
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirClass<F>
fun <D> transformSuperTypeRefs(transformer: FirTransformer<D>, data: D): FirClass<F>
fun <D> transformDeclarations(transformer: FirTransformer<D>, data: D): FirClass<F>
@@ -55,6 +55,8 @@ abstract class FirConstructor : FirPureAbstractElement(), FirFunction<FirConstru
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirConstructor
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirConstructor
abstract override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirConstructor
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructor
@@ -65,6 +65,8 @@ abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDecl
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirEnumEntry
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirEnumEntry
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirEnumEntry
abstract override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirEnumEntry
@@ -59,4 +59,6 @@ abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction<FirError
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirErrorFunction
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirErrorFunction
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorFunction
}
@@ -65,5 +65,7 @@ abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnostic
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirErrorProperty
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorProperty
abstract override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirErrorProperty
}
@@ -65,6 +65,8 @@ abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCa
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirField
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirField
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirField
abstract override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirField
@@ -52,6 +52,8 @@ interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTarget
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirFunction<F>
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirFunction<F>
override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirFunction<F>
fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirFunction<F>
@@ -15,14 +15,14 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
interface FirMemberDeclaration : FirAnnotatedDeclaration {
interface FirMemberDeclaration : FirAnnotatedDeclaration, FirTypeParameterRefsOwner {
override val source: FirSourceElement?
override val session: FirSession
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
override val annotations: List<FirAnnotationCall>
val typeParameters: List<FirTypeParameterRef>
override val typeParameters: List<FirTypeParameterRef>
val status: FirDeclarationStatus
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitMemberDeclaration(this, data)
@@ -31,5 +31,7 @@ interface FirMemberDeclaration : FirAnnotatedDeclaration {
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirMemberDeclaration
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirMemberDeclaration
fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirMemberDeclaration
}
@@ -40,12 +40,12 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
abstract override val getter: FirPropertyAccessor?
abstract override val setter: FirPropertyAccessor?
abstract override val annotations: List<FirAnnotationCall>
abstract override val typeParameters: List<FirTypeParameter>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference
abstract override val containerSource: DeserializedContainerSource?
abstract override val symbol: FirPropertySymbol
abstract val backingFieldSymbol: FirBackingFieldSymbol
abstract val isLocal: Boolean
abstract override val typeParameters: List<FirTypeParameter>
abstract override val status: FirDeclarationStatus
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitProperty(this, data)
@@ -70,6 +70,8 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirProperty
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirProperty
abstract override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirProperty
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirProperty
@@ -67,4 +67,6 @@ abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPr
abstract fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
}
@@ -49,6 +49,8 @@ abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration,
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirRegularClass
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirRegularClass
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirRegularClass
abstract override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirRegularClass
@@ -69,4 +69,6 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimp
abstract override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirSimpleFunction
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirSimpleFunction
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirSimpleFunction
}
@@ -40,5 +40,7 @@ abstract class FirTypeAlias : FirPureAbstractElement(), FirClassLikeDeclaration<
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirTypeAlias
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirTypeAlias
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypeAlias
}
@@ -19,4 +19,6 @@ interface FirTypeParameterRefsOwner : FirElement {
val typeParameters: List<FirTypeParameterRef>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeParameterRefsOwner(this, data)
fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirTypeParameterRefsOwner
}
@@ -18,4 +18,6 @@ interface FirTypeParametersOwner : FirTypeParameterRefsOwner {
override val typeParameters: List<FirTypeParameter>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeParametersOwner(this, data)
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirTypeParametersOwner
}
@@ -52,10 +52,10 @@ class FirPropertyBuilder : FirTypeParametersOwnerBuilder, FirAnnotationContainer
var getter: FirPropertyAccessor? = null
var setter: FirPropertyAccessor? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
var containerSource: DeserializedContainerSource? = null
lateinit var symbol: FirPropertySymbol
var isLocal: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
lateinit var status: FirDeclarationStatus
override fun build(): FirProperty {
@@ -74,10 +74,10 @@ class FirPropertyBuilder : FirTypeParametersOwnerBuilder, FirAnnotationContainer
getter,
setter,
annotations,
typeParameters,
containerSource,
symbol,
isLocal,
typeParameters,
status,
)
}
@@ -72,7 +72,7 @@ internal class FirAnonymousFunctionImpl(
transformBody(transformer, data)
typeRef = typeRef.transformSingle(transformer, data)
label = label?.transformSingle(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
return this
}
@@ -106,6 +106,11 @@ internal class FirAnonymousFunctionImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
@@ -58,7 +58,7 @@ internal class FirAnonymousObjectImpl(
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnonymousObjectImpl {
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
transformSuperTypeRefs(transformer, data)
transformDeclarations(transformer, data)
transformAnnotations(transformer, data)
@@ -67,6 +67,11 @@ internal class FirAnonymousObjectImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirAnonymousObjectImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformSuperTypeRefs(transformer: FirTransformer<D>, data: D): FirAnonymousObjectImpl {
superTypeRefs.transformInplace(transformer, data)
return this
@@ -68,7 +68,7 @@ internal class FirConstructorImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
transformControlFlowGraphReference(transformer, data)
transformValueParameters(transformer, data)
transformStatus(transformer, data)
@@ -88,6 +88,11 @@ internal class FirConstructorImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data)
return this
@@ -67,6 +67,7 @@ internal class FirEnumEntryImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
transformReturnTypeRef(transformer, data)
transformInitializer(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
transformOtherChildren(transformer, data)
return this
@@ -103,6 +104,11 @@ internal class FirEnumEntryImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
status = status.transformSingle(transformer, data)
return this
@@ -110,7 +116,6 @@ internal class FirEnumEntryImpl(
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
return this
}
@@ -62,7 +62,7 @@ internal class FirErrorFunctionImpl(
transformReturnTypeRef(transformer, data)
transformControlFlowGraphReference(transformer, data)
transformValueParameters(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
return this
}
@@ -94,6 +94,11 @@ internal class FirErrorFunctionImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
@@ -63,6 +63,7 @@ internal class FirErrorPropertyImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
transformReturnTypeRef(transformer, data)
transformTypeParameters(transformer, data)
transformOtherChildren(transformer, data)
return this
}
@@ -97,9 +98,13 @@ internal class FirErrorPropertyImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
return this
}
@@ -65,6 +65,7 @@ internal class FirFieldImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFieldImpl {
transformReturnTypeRef(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
transformOtherChildren(transformer, data)
return this
@@ -100,6 +101,11 @@ internal class FirFieldImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirFieldImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirFieldImpl {
status = status.transformSingle(transformer, data)
return this
@@ -107,7 +113,6 @@ internal class FirFieldImpl(
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirFieldImpl {
transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
return this
}
@@ -68,7 +68,7 @@ internal class FirPrimaryConstructor(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
transformControlFlowGraphReference(transformer, data)
transformValueParameters(transformer, data)
transformStatus(transformer, data)
@@ -88,6 +88,11 @@ internal class FirPrimaryConstructor(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data)
return this
@@ -73,7 +73,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
transformContractDescription(transformer, data)
transformStatus(transformer, data)
transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
return this
}
@@ -116,6 +116,11 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
@@ -46,10 +46,10 @@ internal class FirPropertyImpl(
override var getter: FirPropertyAccessor?,
override var setter: FirPropertyAccessor?,
override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>,
override val containerSource: DeserializedContainerSource?,
override val symbol: FirPropertySymbol,
override val isLocal: Boolean,
override val typeParameters: MutableList<FirTypeParameter>,
override var status: FirDeclarationStatus,
) : FirProperty() {
override val attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -71,8 +71,8 @@ internal class FirPropertyImpl(
getter?.accept(visitor, data)
setter?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
controlFlowGraphReference.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
controlFlowGraphReference.accept(visitor, data)
status.accept(visitor, data)
}
@@ -83,6 +83,7 @@ internal class FirPropertyImpl(
transformDelegate(transformer, data)
transformGetter(transformer, data)
transformSetter(transformer, data)
transformTypeParameters(transformer, data)
transformControlFlowGraphReference(transformer, data)
transformStatus(transformer, data)
transformOtherChildren(transformer, data)
@@ -124,6 +125,11 @@ internal class FirPropertyImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data)
return this
@@ -136,7 +142,6 @@ internal class FirPropertyImpl(
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
return this
}
@@ -64,7 +64,7 @@ internal class FirRegularClassImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
transformControlFlowGraphReference(transformer, data)
transformDeclarations(transformer, data)
@@ -78,6 +78,11 @@ internal class FirRegularClassImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
status = status.transformSingle(transformer, data)
return this
@@ -76,7 +76,7 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor(
transformStatus(transformer, data)
transformContractDescription(transformer, data)
transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
return this
}
@@ -120,6 +120,11 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
@@ -51,7 +51,7 @@ internal class FirTypeAliasImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirTypeAliasImpl {
transformStatus(transformer, data)
typeParameters.transformInplace(transformer, data)
transformTypeParameters(transformer, data)
expandedTypeRef = expandedTypeRef.transformSingle(transformer, data)
transformAnnotations(transformer, data)
return this
@@ -62,6 +62,11 @@ internal class FirTypeAliasImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirTypeAliasImpl {
typeParameters.transformInplace(transformer, data)
return this
}
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypeAliasImpl {
annotations.transformInplace(transformer, data)
return this
@@ -127,6 +127,10 @@ class FirSyntheticProperty(
throw AssertionError("Transformation of synthetic property isn't supported")
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirProperty {
throw AssertionError("Transformation of synthetic property isn't supported")
}
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
@@ -113,6 +113,10 @@ class FirSyntheticPropertyAccessor(
throw AssertionError("Transformation of synthetic property accessor isn't supported")
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirPropertyAccessor {
throw AssertionError("Transformation of synthetic property accessor isn't supported")
}
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
throw AssertionError("Mutation of synthetic property accessor isn't supported")
}
@@ -36,7 +36,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val typeParameter = element("TypeParameter", Declaration, typeParameterRef, annotatedDeclaration, symbolOwner)
val typeParameterRefsOwner = element("TypeParameterRefsOwner", Declaration)
val typeParametersOwner = element("TypeParametersOwner", Declaration, typeParameterRefsOwner)
val memberDeclaration = element("MemberDeclaration", Declaration, annotatedDeclaration)
val memberDeclaration = element("MemberDeclaration", Declaration, annotatedDeclaration, typeParameterRefsOwner)
val callableMemberDeclaration = element("CallableMemberDeclaration", Declaration, callableDeclaration, memberDeclaration)
val variable = element("Variable", Declaration, callableDeclaration, annotatedDeclaration, statement)
@@ -55,11 +55,11 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
}
typeParametersOwner.configure {
+typeParameters
+typeParameters.withTransform()
}
typeParameterRefsOwner.configure {
+typeParameterRefs
+typeParameterRefs.withTransform()
}
resolvable.configure {
@@ -307,7 +307,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+symbol("FirPropertySymbol")
+field("backingFieldSymbol", backingFieldSymbolType)
+booleanField("isLocal")
+typeParameters
+status
}