From a76c5d66eb1ec94aa9c71b2725e3fdefa1f220f4 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 19 Apr 2021 20:41:48 +0200 Subject: [PATCH] FIR: introduce FirDeclarationBuilder as a base class for all FIR declaration builders --- .../fir/java/declarations/FirJavaMethod.kt | 2 +- .../builder/FirAbstractConstructorBuilder.kt | 4 +-- .../builder/FirAnonymousFunctionBuilder.kt | 7 +++++ .../builder/FirAnonymousInitializerBuilder.kt | 15 +++++----- .../builder/FirAnonymousObjectBuilder.kt | 5 ++-- .../declarations/builder/FirClassBuilder.kt | 11 ++++--- .../builder/FirDeclarationBuilder.kt | 30 +++++++++++++++++++ .../declarations/builder/FirFieldBuilder.kt | 11 +++---- .../builder/FirFunctionBuilder.kt | 11 ++++--- .../builder/FirPropertyAccessorBuilder.kt | 2 +- .../builder/FirPropertyBuilder.kt | 11 +++---- .../builder/FirRegularClassBuilder.kt | 2 +- .../builder/FirSimpleFunctionBuilder.kt | 2 +- .../builder/FirTypeAliasBuilder.kt | 11 +++---- .../fir/tree/generator/BuilderConfigurator.kt | 11 +++++++ 15 files changed, 97 insertions(+), 38 deletions(-) create mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDeclarationBuilder.kt diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt index c46a339cba7..b8450c41e19 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt @@ -195,7 +195,7 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder, lateinit var visibility: Visibility var modality: Modality? = null var isStatic: Boolean by Delegates.notNull() - var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES + override var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES lateinit var annotationBuilder: () -> List @Deprecated("Modification of 'origin' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt index 8ae86779a2d..65fdb8553d1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt @@ -34,14 +34,14 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ @FirBuilderDsl interface FirAbstractConstructorBuilder : FirFunctionBuilder { abstract override var source: FirSourceElement? - abstract override val annotations: MutableList abstract override var session: FirSession + abstract override var resolvePhase: FirResolvePhase abstract override var origin: FirDeclarationOrigin abstract override var attributes: FirDeclarationAttributes + abstract override val annotations: MutableList abstract override var returnTypeRef: FirTypeRef abstract override val valueParameters: MutableList abstract override var body: FirBlock? - abstract var resolvePhase: FirResolvePhase abstract var receiverTypeRef: FirTypeRef? abstract val typeParameters: MutableList abstract var controlFlowGraphReference: FirControlFlowGraphReference? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt index 031afb5e3c5..be03fea0426 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt @@ -77,6 +77,13 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu ) } + + @Deprecated("Modification of 'resolvePhase' has no impact for FirAnonymousFunctionBuilder", level = DeprecationLevel.HIDDEN) + override var resolvePhase: FirResolvePhase + get() = throw IllegalStateException() + set(_) { + throw IllegalStateException() + } } @OptIn(ExperimentalContracts::class) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt index 3f3534183f7..05363147bb4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousInitializerImpl import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference @@ -25,16 +26,16 @@ import org.jetbrains.kotlin.fir.visitors.* */ @FirBuilderDsl -class FirAnonymousInitializerBuilder { - var source: FirSourceElement? = null - lateinit var session: FirSession - var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR - lateinit var origin: FirDeclarationOrigin - var attributes: FirDeclarationAttributes = FirDeclarationAttributes() +class FirAnonymousInitializerBuilder : FirDeclarationBuilder { + override var source: FirSourceElement? = null + override lateinit var session: FirSession + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override lateinit var origin: FirDeclarationOrigin + override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var body: FirBlock? = null var symbol: FirAnonymousInitializerSymbol = FirAnonymousInitializerSymbol() - fun build(): FirAnonymousInitializer { + override fun build(): FirAnonymousInitializer { return FirAnonymousInitializerImpl( source, session, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt index 7ecc59c9f44..0a575f9b53d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder +import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousObjectImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder @@ -34,10 +35,10 @@ import org.jetbrains.kotlin.fir.visitors.* */ @FirBuilderDsl -class FirAnonymousObjectBuilder : FirClassBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder { +class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder { override var source: FirSourceElement? = null override lateinit var session: FirSession - var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override lateinit var origin: FirDeclarationOrigin override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val typeParameters: MutableList = mutableListOf() diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt index 1b2ecf687ff..64a87edcbcf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt @@ -14,7 +14,9 @@ import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef +import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -26,12 +28,13 @@ import org.jetbrains.kotlin.fir.visitors.* */ @FirBuilderDsl -interface FirClassBuilder : FirAnnotationContainerBuilder { +interface FirClassBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder { abstract override var source: FirSourceElement? + abstract override var session: FirSession + abstract override var resolvePhase: FirResolvePhase + abstract override var origin: FirDeclarationOrigin + abstract override var attributes: FirDeclarationAttributes abstract override val annotations: MutableList - abstract var session: FirSession - abstract var origin: FirDeclarationOrigin - abstract var attributes: FirDeclarationAttributes abstract val typeParameters: MutableList abstract var classKind: ClassKind abstract val superTypeRefs: MutableList diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDeclarationBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDeclarationBuilder.kt new file mode 100644 index 00000000000..8257e233438 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDeclarationBuilder.kt @@ -0,0 +1,30 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.declarations.builder + +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.builder.FirBuilderDsl +import org.jetbrains.kotlin.fir.declarations.FirDeclaration +import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes +import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +@FirBuilderDsl +interface FirDeclarationBuilder { + abstract var source: FirSourceElement? + abstract var session: FirSession + abstract var resolvePhase: FirResolvePhase + abstract var origin: FirDeclarationOrigin + abstract var attributes: FirDeclarationAttributes + fun build(): FirDeclaration +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt index e2434d5ce6e..61611b74225 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.declarations.FirField import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeParameter +import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -35,12 +36,12 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ */ @FirBuilderDsl -open class FirFieldBuilder : FirAnnotationContainerBuilder { +open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder { override var source: FirSourceElement? = null - open lateinit var session: FirSession - open var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR - open lateinit var origin: FirDeclarationOrigin - open var attributes: FirDeclarationAttributes = FirDeclarationAttributes() + override lateinit var session: FirSession + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override lateinit var origin: FirDeclarationOrigin + override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() open lateinit var returnTypeRef: FirTypeRef open lateinit var name: Name open lateinit var symbol: FirVariableSymbol diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt index 648c16db9c4..0fe0d90734c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt @@ -12,7 +12,9 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirFunction +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirValueParameter +import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -24,12 +26,13 @@ import org.jetbrains.kotlin.fir.visitors.* */ @FirBuilderDsl -interface FirFunctionBuilder : FirAnnotationContainerBuilder { +interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder { abstract override var source: FirSourceElement? + abstract override var session: FirSession + abstract override var resolvePhase: FirResolvePhase + abstract override var origin: FirDeclarationOrigin + abstract override var attributes: FirDeclarationAttributes abstract override val annotations: MutableList - abstract var session: FirSession - abstract var origin: FirDeclarationOrigin - abstract var attributes: FirDeclarationAttributes abstract var returnTypeRef: FirTypeRef abstract val valueParameters: MutableList abstract var body: FirBlock? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt index e950c607417..36240157be4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt @@ -41,7 +41,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBuilder { override var source: FirSourceElement? = null override lateinit var session: FirSession - var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override lateinit var origin: FirDeclarationOrigin override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override lateinit var returnTypeRef: FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt index 38b4ce18516..628ac0f7383 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeParameter +import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall @@ -37,12 +38,12 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ */ @FirBuilderDsl -class FirPropertyBuilder : FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { +class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { override var source: FirSourceElement? = null - lateinit var session: FirSession - var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR - lateinit var origin: FirDeclarationOrigin - var attributes: FirDeclarationAttributes = FirDeclarationAttributes() + override lateinit var session: FirSession + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override lateinit var origin: FirDeclarationOrigin + override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() lateinit var returnTypeRef: FirTypeRef var receiverTypeRef: FirTypeRef? = null lateinit var name: Name diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt index 7ce1818fdac..4f1849280e2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt @@ -38,7 +38,7 @@ import org.jetbrains.kotlin.name.Name open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBuilder, FirAnnotationContainerBuilder { override var source: FirSourceElement? = null override lateinit var session: FirSession - open var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override lateinit var origin: FirDeclarationOrigin override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val annotations: MutableList = mutableListOf() diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt index f4ffe1ba34f..d9c66697449 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt @@ -41,7 +41,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { override var source: FirSourceElement? = null override lateinit var session: FirSession - open var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override lateinit var origin: FirDeclarationOrigin override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override lateinit var returnTypeRef: FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt index 7a129a48833..a28d66233bb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeAlias import org.jetbrains.kotlin.fir.declarations.FirTypeParameter +import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirTypeAliasImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall @@ -30,12 +31,12 @@ import org.jetbrains.kotlin.name.Name */ @FirBuilderDsl -class FirTypeAliasBuilder : FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { +class FirTypeAliasBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { override var source: FirSourceElement? = null - lateinit var session: FirSession - var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR - lateinit var origin: FirDeclarationOrigin - var attributes: FirDeclarationAttributes = FirDeclarationAttributes() + override lateinit var session: FirSession + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override lateinit var origin: FirDeclarationOrigin + override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() lateinit var status: FirDeclarationStatus override val typeParameters: MutableList = mutableListOf() lateinit var name: Name diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt index 803a2afcaaf..f0bc0ff77d6 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt @@ -11,6 +11,10 @@ import org.jetbrains.kotlin.fir.tree.generator.util.traverseParents object BuilderConfigurator : AbstractBuilderConfigurator(FirTreeBuilder) { fun configureBuilders() = with(firTreeBuilder) { + val declarationBuilder by builder { + fields from declaration + } + val annotationContainerBuilder by builder { fields from annotationContainer } @@ -28,6 +32,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree } val classBuilder by builder { + parents += declarationBuilder parents += annotationContainerBuilder fields from klass without listOf("symbol", "resolvePhase") } @@ -53,6 +58,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree } val functionBuilder by builder { + parents += declarationBuilder parents += annotationContainerBuilder fields from function without listOf("symbol", "resolvePhase", "controlFlowGraphReference", "receiverTypeRef", "typeParameters") } @@ -86,15 +92,18 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree } builder(field) { + parents += declarationBuilder default("resolvePhase", "FirResolvePhase.DECLARATIONS") openBuilder() } builder(anonymousObject) { + parents += declarationBuilder parents += classBuilder } builder(typeAlias) { + parents += declarationBuilder parents += typeParametersOwnerBuilder withCopy() } @@ -180,6 +189,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree } builder(property) { + parents += declarationBuilder parents += typeParametersOwnerBuilder defaultNull("getter", "setter", "containerSource", "delegateFieldSymbol") default("resolvePhase", "FirResolvePhase.RAW_FIR") @@ -289,6 +299,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree } builder(anonymousInitializer) { + parents += declarationBuilder default("symbol", "FirAnonymousInitializerSymbol()") }