Create node for FirEnumEntry
This commit is contained in:
committed by
Mikhail Glukhikh
parent
13132e69a3
commit
c6e28537ff
@@ -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<FirEnumEntry>, FirCallableMemberDeclaration<FirEnumEntry> {
|
||||||
|
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<FirEnumEntry>
|
||||||
|
abstract override val initializer: FirExpression?
|
||||||
|
abstract override val delegate: FirExpression?
|
||||||
|
abstract override val delegateFieldSymbol: FirDelegateFieldSymbol<FirEnumEntry>?
|
||||||
|
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<FirAnnotationCall>
|
||||||
|
abstract override val typeParameters: List<FirTypeParameter>
|
||||||
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitEnumEntry(this, data)
|
||||||
|
|
||||||
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
|
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
|
abstract override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
|
abstract override fun <D> transformSetter(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
|
||||||
|
}
|
||||||
@@ -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<FirEnumEntry>,
|
||||||
|
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<FirEnumEntry>? 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<FirAnnotationCall> = mutableListOf()
|
||||||
|
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
||||||
|
override var containerSource: DeserializedContainerSource? = null
|
||||||
|
|
||||||
|
init {
|
||||||
|
symbol.bind(this)
|
||||||
|
delegateFieldSymbol?.bind(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, 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 <D> transformChildren(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
|
transformReturnTypeRef(transformer, data)
|
||||||
|
transformInitializer(transformer, data)
|
||||||
|
transformStatus(transformer, data)
|
||||||
|
transformOtherChildren(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
|
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
|
initializer = initializer?.transformSingle(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformSetter(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
|
status = status.transformSingle(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, 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
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.declarations.FirVariable
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirField
|
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.FirClassLikeDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
@@ -237,6 +238,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformElement(field, data)
|
return transformElement(field, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun transformEnumEntry(enumEntry: FirEnumEntry, data: D): CompositeTransformResult<FirDeclaration> {
|
||||||
|
return transformElement(enumEntry, data)
|
||||||
|
}
|
||||||
|
|
||||||
open fun <F : FirClassLikeDeclaration<F>> transformClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>, data: D): CompositeTransformResult<FirStatement> {
|
open fun <F : FirClassLikeDeclaration<F>> transformClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>, data: D): CompositeTransformResult<FirStatement> {
|
||||||
return transformElement(classLikeDeclaration, data)
|
return transformElement(classLikeDeclaration, data)
|
||||||
}
|
}
|
||||||
@@ -689,6 +694,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformField(field, data)
|
return transformField(field, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): CompositeTransformResult<FirDeclaration> {
|
||||||
|
return transformEnumEntry(enumEntry, data)
|
||||||
|
}
|
||||||
|
|
||||||
final override fun <F : FirClassLikeDeclaration<F>> visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>, data: D): CompositeTransformResult<FirStatement> {
|
final override fun <F : FirClassLikeDeclaration<F>> visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>, data: D): CompositeTransformResult<FirStatement> {
|
||||||
return transformClassLikeDeclaration(classLikeDeclaration, data)
|
return transformClassLikeDeclaration(classLikeDeclaration, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.declarations.FirVariable
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirField
|
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.FirClassLikeDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
@@ -181,6 +182,8 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
|
|
||||||
open fun visitField(field: FirField, data: D): R = visitElement(field, data)
|
open fun visitField(field: FirField, data: D): R = visitElement(field, data)
|
||||||
|
|
||||||
|
open fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): R = visitElement(enumEntry, data)
|
||||||
|
|
||||||
open fun <F : FirClassLikeDeclaration<F>> visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>, data: D): R = visitElement(classLikeDeclaration, data)
|
open fun <F : FirClassLikeDeclaration<F>> visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>, data: D): R = visitElement(classLikeDeclaration, data)
|
||||||
|
|
||||||
open fun <F : FirClass<F>> visitClass(klass: FirClass<F>, data: D): R = visitElement(klass, data)
|
open fun <F : FirClass<F>> visitClass(klass: FirClass<F>, data: D): R = visitElement(klass, data)
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.fir.declarations.FirVariable
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirField
|
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.FirClassLikeDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
@@ -235,6 +236,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitElement(field)
|
visitElement(field)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun visitEnumEntry(enumEntry: FirEnumEntry) {
|
||||||
|
visitElement(enumEntry)
|
||||||
|
}
|
||||||
|
|
||||||
open fun <F : FirClassLikeDeclaration<F>> visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>) {
|
open fun <F : FirClassLikeDeclaration<F>> visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>) {
|
||||||
visitElement(classLikeDeclaration)
|
visitElement(classLikeDeclaration)
|
||||||
}
|
}
|
||||||
@@ -687,6 +692,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitField(field)
|
visitField(field)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun visitEnumEntry(enumEntry: FirEnumEntry, data: Nothing?) {
|
||||||
|
visitEnumEntry(enumEntry)
|
||||||
|
}
|
||||||
|
|
||||||
final override fun <F : FirClassLikeDeclaration<F>> visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>, data: Nothing?) {
|
final override fun <F : FirClassLikeDeclaration<F>> visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration<F>, data: Nothing?) {
|
||||||
visitClassLikeDeclaration(classLikeDeclaration)
|
visitClassLikeDeclaration(classLikeDeclaration)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -40,6 +40,8 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
val valueParameter = element("ValueParameter", Declaration, variable)
|
val valueParameter = element("ValueParameter", Declaration, variable)
|
||||||
val property = element("Property", Declaration, variable, controlFlowGraphOwner, typeParametersOwner, callableMemberDeclaration)
|
val property = element("Property", Declaration, variable, controlFlowGraphOwner, typeParametersOwner, callableMemberDeclaration)
|
||||||
val field = element("Field", Declaration, variable, callableMemberDeclaration)
|
val field = element("Field", Declaration, variable, callableMemberDeclaration)
|
||||||
|
val enumEntry = element("EnumEntry", Declaration, variable, callableMemberDeclaration)
|
||||||
|
|
||||||
val classLikeDeclaration = element("ClassLikeDeclaration", Declaration, declaration, statement, symbolOwner)
|
val classLikeDeclaration = element("ClassLikeDeclaration", Declaration, declaration, statement, symbolOwner)
|
||||||
val klass = element("Class", Declaration, classLikeDeclaration, statement, annotationContainer)
|
val klass = element("Class", Declaration, classLikeDeclaration, statement, annotationContainer)
|
||||||
val regularClass = element("RegularClass", Declaration, memberDeclaration, typeParametersOwner, klass)
|
val regularClass = element("RegularClass", Declaration, memberDeclaration, typeParametersOwner, klass)
|
||||||
|
|||||||
+6
@@ -273,6 +273,12 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
|||||||
defaultNull("delegateFieldSymbol", "receiverTypeRef", "initializer", "delegate", "getter", "setter", withGetter = true)
|
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) {
|
impl(namedArgumentExpression) {
|
||||||
default("typeRef") {
|
default("typeRef") {
|
||||||
delegate = "expression"
|
delegate = "expression"
|
||||||
|
|||||||
+5
@@ -343,6 +343,11 @@ object NodeConfigurator : AbstractFieldConfigurator() {
|
|||||||
needTransformOtherChildren()
|
needTransformOtherChildren()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enumEntry.configure {
|
||||||
|
parentArg(variable, "F", enumEntry)
|
||||||
|
parentArg(callableMemberDeclaration, "F", enumEntry)
|
||||||
|
}
|
||||||
|
|
||||||
field.configure {
|
field.configure {
|
||||||
parentArg(variable, "F", field)
|
parentArg(variable, "F", field)
|
||||||
parentArg(callableMemberDeclaration, "F", field)
|
parentArg(callableMemberDeclaration, "F", field)
|
||||||
|
|||||||
Reference in New Issue
Block a user