From c6e28537ff471bd03b05d2c1e16ddd3c0d0d7cb0 Mon Sep 17 00:00:00 2001 From: "simon.ogorodnik" Date: Mon, 30 Dec 2019 13:47:38 +0300 Subject: [PATCH] Create node for FirEnumEntry --- .../kotlin/fir/declarations/FirEnumEntry.kt | 60 ++++++++++ .../fir/declarations/impl/FirEnumEntryImpl.kt | 112 ++++++++++++++++++ .../kotlin/fir/visitors/FirTransformer.kt | 9 ++ .../kotlin/fir/visitors/FirVisitor.kt | 3 + .../kotlin/fir/visitors/FirVisitorVoid.kt | 9 ++ .../fir/tree/generator/FirTreeBuilder.kt | 2 + .../generator/ImplementationConfigurator.kt | 6 + .../fir/tree/generator/NodeConfigurator.kt | 5 + 8 files changed, 206 insertions(+) create mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt create mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt new file mode 100644 index 00000000000..fb6ad0b331c --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt @@ -0,0 +1,60 @@ +/* + * Copyright 2010-2020 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 + +import org.jetbrains.kotlin.fir.FirPureAbstractElement +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall +import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol +import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +abstract class FirEnumEntry : FirPureAbstractElement(), FirVariable, FirCallableMemberDeclaration { + abstract override val source: FirSourceElement? + abstract override val session: FirSession + abstract override val resolvePhase: FirResolvePhase + abstract override val returnTypeRef: FirTypeRef + abstract override val receiverTypeRef: FirTypeRef? + abstract override val name: Name + abstract override val symbol: FirVariableSymbol + abstract override val initializer: FirExpression? + abstract override val delegate: FirExpression? + abstract override val delegateFieldSymbol: FirDelegateFieldSymbol? + abstract override val isVar: Boolean + abstract override val isVal: Boolean + abstract override val getter: FirPropertyAccessor? + abstract override val setter: FirPropertyAccessor? + abstract override val annotations: List + abstract override val typeParameters: List + abstract override val status: FirDeclarationStatus + abstract override val containerSource: DeserializedContainerSource? + + override fun accept(visitor: FirVisitor, data: D): R = visitor.visitEnumEntry(this, data) + + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirEnumEntry + + abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirEnumEntry + + abstract override fun transformInitializer(transformer: FirTransformer, data: D): FirEnumEntry + + abstract override fun transformGetter(transformer: FirTransformer, data: D): FirEnumEntry + + abstract override fun transformSetter(transformer: FirTransformer, data: D): FirEnumEntry + + abstract override fun transformStatus(transformer: FirTransformer, data: D): FirEnumEntry + + abstract override fun transformOtherChildren(transformer: FirTransformer, data: D): FirEnumEntry +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt new file mode 100644 index 00000000000..1862aeb6f7d --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt @@ -0,0 +1,112 @@ +/* + * Copyright 2010-2020 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.impl + +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus +import org.jetbrains.kotlin.fir.declarations.FirEnumEntry +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.expressions.FirAnnotationCall +import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement +import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol +import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +class FirEnumEntryImpl( + override val source: FirSourceElement?, + override val session: FirSession, + override var returnTypeRef: FirTypeRef, + override val name: Name, + override val symbol: FirVariableSymbol, + override var initializer: FirExpression?, + override var status: FirDeclarationStatus +) : FirEnumEntry(), FirAbstractAnnotatedElement { + override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR + override val receiverTypeRef: FirTypeRef? get() = null + override val delegate: FirExpression? get() = null + override val delegateFieldSymbol: FirDelegateFieldSymbol? get() = null + override val isVar: Boolean get() = false + override val isVal: Boolean get() = true + override val getter: FirPropertyAccessor? get() = null + override val setter: FirPropertyAccessor? get() = null + override val annotations: MutableList = mutableListOf() + override val typeParameters: MutableList = mutableListOf() + override var containerSource: DeserializedContainerSource? = null + + init { + symbol.bind(this) + delegateFieldSymbol?.bind(this) + } + + override fun acceptChildren(visitor: FirVisitor, data: D) { + returnTypeRef.accept(visitor, data) + initializer?.accept(visitor, data) + annotations.forEach { it.accept(visitor, data) } + typeParameters.forEach { it.accept(visitor, data) } + status.accept(visitor, data) + } + + override fun transformChildren(transformer: FirTransformer, data: D): FirEnumEntryImpl { + transformReturnTypeRef(transformer, data) + transformInitializer(transformer, data) + transformStatus(transformer, data) + transformOtherChildren(transformer, data) + return this + } + + override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirEnumEntryImpl { + returnTypeRef = returnTypeRef.transformSingle(transformer, data) + return this + } + + override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirEnumEntryImpl { + return this + } + + override fun transformInitializer(transformer: FirTransformer, data: D): FirEnumEntryImpl { + initializer = initializer?.transformSingle(transformer, data) + return this + } + + override fun transformGetter(transformer: FirTransformer, data: D): FirEnumEntryImpl { + return this + } + + override fun transformSetter(transformer: FirTransformer, data: D): FirEnumEntryImpl { + return this + } + + override fun transformStatus(transformer: FirTransformer, data: D): FirEnumEntryImpl { + status = status.transformSingle(transformer, data) + return this + } + + override fun transformOtherChildren(transformer: FirTransformer, data: D): FirEnumEntryImpl { + annotations.transformInplace(transformer, data) + typeParameters.transformInplace(transformer, data) + return this + } + + override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) { + resolvePhase = newResolvePhase + } + + override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) { + returnTypeRef = newReturnTypeRef + } +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt index c5be21b0d7b..54f036902bd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirField +import org.jetbrains.kotlin.fir.declarations.FirEnumEntry import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass @@ -237,6 +238,10 @@ abstract class FirTransformer : FirVisitor { + return transformElement(enumEntry, data) + } + open fun > transformClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): CompositeTransformResult { return transformElement(classLikeDeclaration, data) } @@ -689,6 +694,10 @@ abstract class FirTransformer : FirVisitor { + return transformEnumEntry(enumEntry, data) + } + final override fun > visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): CompositeTransformResult { return transformClassLikeDeclaration(classLikeDeclaration, data) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt index 381ef012219..93b1122f706 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirField +import org.jetbrains.kotlin.fir.declarations.FirEnumEntry import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass @@ -181,6 +182,8 @@ abstract class FirVisitor { open fun visitField(field: FirField, data: D): R = visitElement(field, data) + open fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): R = visitElement(enumEntry, data) + open fun > visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): R = visitElement(classLikeDeclaration, data) open fun > visitClass(klass: FirClass, data: D): R = visitElement(klass, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt index 134a57e19bc..f21e687e687 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirField +import org.jetbrains.kotlin.fir.declarations.FirEnumEntry import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass @@ -235,6 +236,10 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(field) } + open fun visitEnumEntry(enumEntry: FirEnumEntry) { + visitElement(enumEntry) + } + open fun > visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration) { visitElement(classLikeDeclaration) } @@ -687,6 +692,10 @@ abstract class FirVisitorVoid : FirVisitor() { visitField(field) } + final override fun visitEnumEntry(enumEntry: FirEnumEntry, data: Nothing?) { + visitEnumEntry(enumEntry) + } + final override fun > visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: Nothing?) { visitClassLikeDeclaration(classLikeDeclaration) } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt index 637f216747f..39013b215aa 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt @@ -40,6 +40,8 @@ object FirTreeBuilder : AbstractFirTreeBuilder() { val valueParameter = element("ValueParameter", Declaration, variable) val property = element("Property", Declaration, variable, controlFlowGraphOwner, typeParametersOwner, callableMemberDeclaration) val field = element("Field", Declaration, variable, callableMemberDeclaration) + val enumEntry = element("EnumEntry", Declaration, variable, callableMemberDeclaration) + val classLikeDeclaration = element("ClassLikeDeclaration", Declaration, declaration, statement, symbolOwner) val klass = element("Class", Declaration, classLikeDeclaration, statement, annotationContainer) val regularClass = element("RegularClass", Declaration, memberDeclaration, typeParametersOwner, klass) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt index be7d47afcd8..d46dbc72d96 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt @@ -273,6 +273,12 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() defaultNull("delegateFieldSymbol", "receiverTypeRef", "initializer", "delegate", "getter", "setter", withGetter = true) } + impl(enumEntry) { + defaultTrue("isVal", withGetter = true) + defaultFalse("isVar", withGetter = true) + defaultNull("delegateFieldSymbol", "receiverTypeRef", "delegate", "getter", "setter", withGetter = true) + } + impl(namedArgumentExpression) { default("typeRef") { delegate = "expression" diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index 01551f900f0..ce6c1054d48 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -343,6 +343,11 @@ object NodeConfigurator : AbstractFieldConfigurator() { needTransformOtherChildren() } + enumEntry.configure { + parentArg(variable, "F", enumEntry) + parentArg(callableMemberDeclaration, "F", enumEntry) + } + field.configure { parentArg(variable, "F", field) parentArg(callableMemberDeclaration, "F", field)