[FIR] Make FirDeclaration an abstract class

This commit is contained in:
Dmitriy Novozhilov
2021-06-20 15:23:25 +03:00
parent b3e5c6e079
commit 1324e9223f
142 changed files with 997 additions and 758 deletions
@@ -18,14 +18,14 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
sealed interface FirAnnotatedDeclaration<E : FirAnnotatedDeclaration<E>> : FirDeclaration<E>, FirAnnotationContainer {
override val source: FirSourceElement?
override val symbol: FirBasedSymbol<E>
override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
override val annotations: List<FirAnnotationCall>
sealed class FirAnnotatedDeclaration<E : FirAnnotatedDeclaration<E>> : FirDeclaration<E>(), FirAnnotationContainer {
abstract override val source: FirSourceElement?
abstract override val symbol: FirBasedSymbol<E>
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
abstract override val annotations: List<FirAnnotationCall>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitAnnotatedDeclaration(this, data)
@@ -33,7 +33,7 @@ sealed interface FirAnnotatedDeclaration<E : FirAnnotatedDeclaration<E>> : FirDe
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformAnnotatedDeclaration(this, data) as E
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirAnnotatedDeclaration<E>
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirAnnotatedDeclaration<E>
}
@@ -14,7 +14,9 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
/*
@@ -31,6 +33,9 @@ abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>(), FirTy
abstract override val annotations: List<FirAnnotationCall>
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
@@ -72,6 +77,8 @@ abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>(), FirTy
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
@@ -19,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirAnonymousInitializer : FirPureAbstractElement(), FirDeclaration<FirAnonymousInitializer>, FirControlFlowGraphOwner {
abstract class FirAnonymousInitializer : FirDeclaration<FirAnonymousInitializer>(), FirControlFlowGraphOwner {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -18,16 +18,16 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
sealed interface FirCallableDeclaration<E : FirCallableDeclaration<E>> : FirTypedDeclaration<E> {
override val source: FirSourceElement?
override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
override val annotations: List<FirAnnotationCall>
override val returnTypeRef: FirTypeRef
val receiverTypeRef: FirTypeRef?
override val symbol: FirCallableSymbol<E>
sealed class FirCallableDeclaration<E : FirCallableDeclaration<E>> : FirTypedDeclaration<E>() {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
abstract override val annotations: List<FirAnnotationCall>
abstract override val returnTypeRef: FirTypeRef
abstract val receiverTypeRef: FirTypeRef?
abstract override val symbol: FirCallableSymbol<E>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableDeclaration(this, data)
@@ -35,15 +35,15 @@ sealed interface FirCallableDeclaration<E : FirCallableDeclaration<E>> : FirType
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformCallableDeclaration(this, data) as E
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<E>
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<E>
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<E>
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<E>
fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<E>
abstract fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration<E>
}
@@ -20,20 +20,20 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
sealed interface FirCallableMemberDeclaration<E : FirCallableMemberDeclaration<E>> : FirCallableDeclaration<E>, FirMemberDeclaration<E> {
override val source: FirSourceElement?
override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
override val annotations: List<FirAnnotationCall>
override val returnTypeRef: FirTypeRef
override val receiverTypeRef: FirTypeRef?
override val symbol: FirCallableSymbol<E>
override val typeParameters: List<FirTypeParameterRef>
override val status: FirDeclarationStatus
val containerSource: DeserializedContainerSource?
val dispatchReceiverType: ConeKotlinType?
sealed class FirCallableMemberDeclaration<E : FirCallableMemberDeclaration<E>> : FirCallableDeclaration<E>(), FirStatusOwner {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
abstract override val annotations: List<FirAnnotationCall>
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val symbol: FirCallableSymbol<E>
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract val containerSource: DeserializedContainerSource?
abstract val dispatchReceiverType: ConeKotlinType?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableMemberDeclaration(this, data)
@@ -41,19 +41,19 @@ sealed interface FirCallableMemberDeclaration<E : FirCallableMemberDeclaration<E
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformCallableMemberDeclaration(this, data) as E
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration<E>
}
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirStatement
@@ -19,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
sealed class FirClassLikeDeclaration<E : FirClassLikeDeclaration<E>> : FirPureAbstractElement(), FirAnnotatedDeclaration<E>, FirStatement {
sealed class FirClassLikeDeclaration<E : FirClassLikeDeclaration<E>> : FirAnnotatedDeclaration<E>(), FirStatement {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirConstructor : FirFunction<FirConstructor>(), FirCallableMemberDeclaration<FirConstructor>, FirTypeParameterRefsOwner {
abstract class FirConstructor : FirFunction<FirConstructor>(), FirTypeParameterRefsOwner {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -32,11 +32,11 @@ abstract class FirConstructor : FirFunction<FirConstructor>(), FirCallableMember
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val annotations: List<FirAnnotationCall>
abstract override val symbol: FirConstructorSymbol
abstract val delegatedConstructor: FirDelegatedConstructorCall?
@@ -67,10 +67,10 @@ abstract class FirConstructor : FirFunction<FirConstructor>(), FirCallableMember
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirConstructor
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructor
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirConstructor
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructor
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirConstructor
abstract fun <D> transformDelegatedConstructor(transformer: FirTransformer<D>, data: D): FirConstructor
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.visitors.*
@@ -16,13 +17,13 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
sealed interface FirDeclaration<E : FirDeclaration<E>> : FirElement {
override val source: FirSourceElement?
val symbol: FirBasedSymbol<E>
val moduleData: FirModuleData
val resolvePhase: FirResolvePhase
val origin: FirDeclarationOrigin
val attributes: FirDeclarationAttributes
sealed class FirDeclaration<E : FirDeclaration<E>> : FirPureAbstractElement(), FirElement {
abstract override val source: FirSourceElement?
abstract val symbol: FirBasedSymbol<E>
abstract val moduleData: FirModuleData
abstract val resolvePhase: FirResolvePhase
abstract val origin: FirDeclarationOrigin
abstract val attributes: FirDeclarationAttributes
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitDeclaration(this, data)
@@ -30,5 +31,5 @@ sealed interface FirDeclaration<E : FirDeclaration<E>> : FirElement {
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformDeclaration(this, data) as E
fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
}
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDeclaration<FirEnumEntry> {
abstract class FirEnumEntry : FirVariable<FirEnumEntry>() {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -31,6 +31,10 @@ abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDecl
abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val name: Name
abstract override val symbol: FirVariableSymbol<FirEnumEntry>
abstract override val initializer: FirExpression?
@@ -41,10 +45,6 @@ abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDecl
abstract override val getter: FirPropertyAccessor?
abstract override val setter: FirPropertyAccessor?
abstract override val annotations: List<FirAnnotationCall>
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitEnumEntry(this, data)
@@ -64,6 +64,10 @@ abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDecl
abstract override fun <D> transformReceiverTypeRef(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> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntry
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirEnumEntry
@@ -74,9 +78,5 @@ 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
}
@@ -14,7 +14,9 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
/*
@@ -22,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirErrorFunction : FirFunction<FirErrorFunction>(), FirDiagnosticHolder, FirTypeParametersOwner {
abstract class FirErrorFunction : FirFunction<FirErrorFunction>(), FirDiagnosticHolder {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -31,6 +33,9 @@ abstract class FirErrorFunction : FirFunction<FirErrorFunction>(), FirDiagnostic
abstract override val annotations: List<FirAnnotationCall>
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
@@ -62,6 +67,8 @@ abstract class FirErrorFunction : FirFunction<FirErrorFunction>(), FirDiagnostic
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorFunction
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorFunction
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirErrorFunction
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirErrorFunction
@@ -14,8 +14,10 @@ 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.FirErrorPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
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.*
/*
@@ -23,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnosticHolder, FirTypeParametersOwner {
abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnosticHolder {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -31,6 +33,10 @@ abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnostic
abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
@@ -41,7 +47,6 @@ abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnostic
abstract override val setter: FirPropertyAccessor?
abstract override val annotations: List<FirAnnotationCall>
abstract override val diagnostic: ConeDiagnostic
abstract override val typeParameters: List<FirTypeParameter>
abstract override val symbol: FirErrorPropertySymbol
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitErrorProperty(this, data)
@@ -62,6 +67,10 @@ abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnostic
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorProperty
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorProperty
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorProperty
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirErrorProperty
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirErrorProperty
@@ -72,7 +81,5 @@ 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
}
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCallableMemberDeclaration<FirField> {
abstract class FirField : FirVariable<FirField>() {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -31,6 +31,10 @@ abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCa
abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val name: Name
abstract override val symbol: FirVariableSymbol<FirField>
abstract override val initializer: FirExpression?
@@ -41,10 +45,6 @@ abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCa
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?
abstract override val dispatchReceiverType: ConeKotlinType?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitField(this, data)
@@ -64,6 +64,10 @@ abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCa
abstract override fun <D> transformReceiverTypeRef(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> transformInitializer(transformer: FirTransformer<D>, data: D): FirField
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField
@@ -74,9 +78,5 @@ 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
}
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
@@ -19,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirFile : FirPureAbstractElement(), FirAnnotatedDeclaration<FirFile> {
abstract class FirFile : FirAnnotatedDeclaration<FirFile>() {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.FirTargetElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -15,7 +14,9 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
/*
@@ -23,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
sealed class FirFunction<E : FirFunction<E>> : FirPureAbstractElement(), FirCallableDeclaration<E>, FirTargetElement, FirTypeParameterRefsOwner, FirControlFlowGraphOwner, FirStatement {
sealed class FirFunction<E : FirFunction<E>> : FirCallableMemberDeclaration<E>(), FirTargetElement, FirControlFlowGraphOwner, FirStatement {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -33,6 +34,9 @@ sealed class FirFunction<E : FirFunction<E>> : FirPureAbstractElement(), FirCall
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val symbol: FirFunctionSymbol<E>
abstract val valueParameters: List<FirValueParameter>
@@ -64,6 +68,8 @@ sealed class FirFunction<E : FirFunction<E>> : FirPureAbstractElement(), FirCall
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirFunction<E>
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirFunction<E>
abstract fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirFunction<E>
abstract fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirFunction<E>
@@ -1,44 +0,0 @@
/*
* 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
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
sealed interface FirMemberDeclaration<E : FirMemberDeclaration<E>> : FirAnnotatedDeclaration<E>, FirTypeParameterRefsOwner {
override val source: FirSourceElement?
override val symbol: FirBasedSymbol<E>
override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
override val annotations: List<FirAnnotationCall>
override val typeParameters: List<FirTypeParameterRef>
val status: FirDeclarationStatus
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitMemberDeclaration(this, data)
@Suppress("UNCHECKED_CAST")
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformMemberDeclaration(this, data) as E
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirMemberDeclaration<E>
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirMemberDeclaration<E>
fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirMemberDeclaration<E>
}
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner, FirControlFlowGraphOwner, FirCallableMemberDeclaration<FirProperty> {
abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner, FirControlFlowGraphOwner {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -33,6 +33,9 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
@@ -42,14 +45,11 @@ 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 dispatchReceiverType: ConeKotlinType?
abstract override val symbol: FirPropertySymbol
abstract val backingFieldSymbol: FirBackingFieldSymbol
abstract val isLocal: Boolean
abstract override val status: FirDeclarationStatus
abstract override val typeParameters: List<FirTypeParameter>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitProperty(this, data)
@@ -71,6 +71,8 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirProperty
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirProperty
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirProperty
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirProperty
@@ -83,7 +85,5 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirProperty
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirProperty
abstract override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirProperty
}
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirPropertyAccessor : FirFunction<FirPropertyAccessor>(), FirCallableMemberDeclaration<FirPropertyAccessor>, FirContractDescriptionOwner, FirTypeParametersOwner {
abstract class FirPropertyAccessor : FirFunction<FirPropertyAccessor>(), FirContractDescriptionOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -31,12 +31,12 @@ abstract class FirPropertyAccessor : FirFunction<FirPropertyAccessor>(), FirCall
abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
abstract override val contractDescription: FirContractDescription
abstract override val symbol: FirPropertyAccessorSymbol
abstract val isGetter: Boolean
@@ -68,12 +68,12 @@ abstract class FirPropertyAccessor : FirFunction<FirPropertyAccessor>(), FirCall
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
abstract override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
@@ -22,19 +22,19 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirRegularClass : FirMemberDeclaration<FirRegularClass>, FirTypeParameterRefsOwner, FirControlFlowGraphOwner, FirClass<FirRegularClass>() {
abstract class FirRegularClass : FirClass<FirRegularClass>(), FirStatusOwner, FirControlFlowGraphOwner {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
abstract override val annotations: List<FirAnnotationCall>
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val classKind: ClassKind
abstract override val declarations: List<FirDeclaration<*>>
abstract override val annotations: List<FirAnnotationCall>
abstract override val scopeProvider: FirScopeProvider
abstract override val status: FirDeclarationStatus
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract val name: Name
abstract override val symbol: FirRegularClassSymbol
abstract val companionObject: FirRegularClass?
@@ -53,14 +53,14 @@ abstract class FirRegularClass : FirMemberDeclaration<FirRegularClass>, FirTypeP
abstract override fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>)
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> transformDeclarations(transformer: FirTransformer<D>, data: D): FirRegularClass
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirRegularClass
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirRegularClass
abstract fun <D> transformCompanionObject(transformer: FirTransformer<D>, data: D): FirRegularClass
abstract override fun <D> transformSuperTypeRefs(transformer: FirTransformer<D>, data: D): FirRegularClass
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirSimpleFunction : FirFunction<FirSimpleFunction>(), FirCallableMemberDeclaration<FirSimpleFunction>, FirContractDescriptionOwner, FirTypeParametersOwner {
abstract class FirSimpleFunction : FirFunction<FirSimpleFunction>(), FirContractDescriptionOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -32,12 +32,12 @@ abstract class FirSimpleFunction : FirFunction<FirSimpleFunction>(), FirCallable
abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
abstract override val contractDescription: FirContractDescription
abstract val name: Name
abstract override val symbol: FirNamedFunctionSymbol
@@ -68,12 +68,12 @@ abstract class FirSimpleFunction : FirFunction<FirSimpleFunction>(), FirCallable
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirSimpleFunction
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirSimpleFunction
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirSimpleFunction
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirSimpleFunction
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirSimpleFunction
abstract override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirSimpleFunction
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirSimpleFunction
@@ -0,0 +1,31 @@
/*
* 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
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
sealed interface FirStatusOwner : FirTypeParameterRefsOwner {
override val source: FirSourceElement?
override val typeParameters: List<FirTypeParameterRef>
val status: FirDeclarationStatus
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitStatusOwner(this, data)
@Suppress("UNCHECKED_CAST")
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformStatusOwner(this, data) as E
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirStatusOwner
fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirStatusOwner
}
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirTypeAlias : FirClassLikeDeclaration<FirTypeAlias>(), FirMemberDeclaration<FirTypeAlias>, FirTypeParametersOwner {
abstract class FirTypeAlias : FirClassLikeDeclaration<FirTypeAlias>(), FirStatusOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
@@ -21,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirTypeParameter : FirPureAbstractElement(), FirTypeParameterRef, FirAnnotatedDeclaration<FirTypeParameter> {
abstract class FirTypeParameter : FirTypeParameterRef, FirAnnotatedDeclaration<FirTypeParameter>() {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -18,15 +18,15 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
sealed interface FirTypedDeclaration<E : FirTypedDeclaration<E>> : FirAnnotatedDeclaration<E> {
override val source: FirSourceElement?
override val symbol: FirBasedSymbol<E>
override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes
override val annotations: List<FirAnnotationCall>
val returnTypeRef: FirTypeRef
sealed class FirTypedDeclaration<E : FirTypedDeclaration<E>> : FirAnnotatedDeclaration<E>() {
abstract override val source: FirSourceElement?
abstract override val symbol: FirBasedSymbol<E>
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
abstract override val annotations: List<FirAnnotationCall>
abstract val returnTypeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypedDeclaration(this, data)
@@ -34,11 +34,11 @@ sealed interface FirTypedDeclaration<E : FirTypedDeclaration<E>> : FirAnnotatedD
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformTypedDeclaration(this, data) as E
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
abstract fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypedDeclaration<E>
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypedDeclaration<E>
fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirTypedDeclaration<E>
abstract fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirTypedDeclaration<E>
}
@@ -13,8 +13,10 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
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.*
/*
@@ -30,6 +32,10 @@ abstract class FirValueParameter : FirVariable<FirValueParameter>(), FirControlF
abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val name: Name
abstract override val symbol: FirVariableSymbol<FirValueParameter>
abstract override val initializer: FirExpression?
@@ -66,6 +72,10 @@ abstract class FirValueParameter : FirVariable<FirValueParameter>(), FirControlF
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirValueParameter
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirValueParameter
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirValueParameter
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirValueParameter
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirValueParameter
@@ -7,15 +7,16 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement
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.expressions.FirStatement
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
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.*
/*
@@ -23,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
sealed class FirVariable<E : FirVariable<E>> : FirPureAbstractElement(), FirCallableDeclaration<E>, FirAnnotatedDeclaration<E>, FirStatement {
sealed class FirVariable<E : FirVariable<E>> : FirCallableMemberDeclaration<E>(), FirStatement {
abstract override val source: FirSourceElement?
abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase
@@ -31,6 +32,10 @@ sealed class FirVariable<E : FirVariable<E>> : FirPureAbstractElement(), FirCall
abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract val name: Name
abstract override val symbol: FirVariableSymbol<E>
abstract val initializer: FirExpression?
@@ -60,6 +65,10 @@ sealed class FirVariable<E : FirVariable<E>> : FirPureAbstractElement(), FirCall
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirVariable<E>
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirVariable<E>
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirVariable<E>
abstract fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirVariable<E>
abstract fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirVariable<E>
@@ -40,14 +40,14 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder {
abstract override var attributes: FirDeclarationAttributes
abstract override val annotations: MutableList<FirAnnotationCall>
abstract override var returnTypeRef: FirTypeRef
abstract override var status: FirDeclarationStatus
abstract override var containerSource: DeserializedContainerSource?
abstract override var dispatchReceiverType: ConeKotlinType?
abstract override val valueParameters: MutableList<FirValueParameter>
abstract override var body: FirBlock?
abstract var receiverTypeRef: FirTypeRef?
abstract val typeParameters: MutableList<FirTypeParameterRef>
abstract var controlFlowGraphReference: FirControlFlowGraphReference?
abstract var status: FirDeclarationStatus
abstract var containerSource: DeserializedContainerSource?
abstract var dispatchReceiverType: ConeKotlinType?
abstract var symbol: FirConstructorSymbol
abstract var delegatedConstructor: FirDelegatedConstructorCall?
override fun build(): FirConstructor
@@ -15,19 +15,23 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.InlineStatus
import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
/*
* This file was generated automatically
@@ -43,6 +47,8 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override lateinit var returnTypeRef: FirTypeRef
var receiverTypeRef: FirTypeRef? = null
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeKotlinType? = null
var controlFlowGraphReference: FirControlFlowGraphReference? = null
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null
@@ -63,6 +69,8 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
annotations,
returnTypeRef,
receiverTypeRef,
containerSource,
dispatchReceiverType,
controlFlowGraphReference,
valueParameters,
body,
@@ -83,6 +91,13 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
set(_) {
throw IllegalStateException()
}
@Deprecated("Modification of 'status' has no impact for FirAnonymousFunctionBuilder", level = DeprecationLevel.HIDDEN)
override var status: FirDeclarationStatus
get() = throw IllegalStateException()
set(_) {
throw IllegalStateException()
}
}
@OptIn(ExperimentalContracts::class)
@@ -44,10 +44,10 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
override lateinit var returnTypeRef: FirTypeRef
override var receiverTypeRef: FirTypeRef? = null
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override lateinit var status: FirDeclarationStatus
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeKotlinType? = null
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override lateinit var symbol: FirConstructorSymbol
override var delegatedConstructor: FirDelegatedConstructorCall? = null
@@ -63,10 +63,10 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
returnTypeRef,
receiverTypeRef,
typeParameters,
valueParameters,
status,
containerSource,
dispatchReceiverType,
valueParameters,
annotations,
symbol,
delegatedConstructor,
@@ -105,10 +105,10 @@ inline fun buildConstructorCopy(original: FirConstructor, init: FirConstructorBu
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.typeParameters.addAll(original.typeParameters)
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.status = original.status
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.symbol = original.symbol
copyBuilder.delegatedConstructor = original.delegatedConstructor
@@ -12,18 +12,23 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
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.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultSetterValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
/*
* This file was generated automatically
@@ -39,6 +44,8 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
lateinit var returnTypeRef: FirTypeRef
var receiverTypeRef: FirTypeRef? = null
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
lateinit var symbol: FirVariableSymbol<FirValueParameter>
var initializer: FirExpression? = null
var delegate: FirExpression? = null
@@ -62,6 +69,8 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
attributes,
returnTypeRef,
receiverTypeRef,
containerSource,
dispatchReceiverType,
symbol,
initializer,
delegate,
@@ -41,14 +41,14 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
lateinit var returnTypeRef: FirTypeRef
lateinit var name: Name
lateinit var symbol: FirVariableSymbol<FirEnumEntry>
var initializer: FirExpression? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
lateinit var status: FirDeclarationStatus
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
lateinit var name: Name
lateinit var symbol: FirVariableSymbol<FirEnumEntry>
var initializer: FirExpression? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override fun build(): FirEnumEntry {
return FirEnumEntryImpl(
@@ -58,14 +58,14 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
origin,
attributes,
returnTypeRef,
name,
symbol,
initializer,
annotations,
typeParameters,
status,
containerSource,
dispatchReceiverType,
name,
symbol,
initializer,
annotations,
)
}
@@ -12,19 +12,23 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
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.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirErrorFunctionImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
/*
* This file was generated automatically
@@ -39,10 +43,11 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
val valueParameters: MutableList<FirValueParameter> = mutableListOf()
lateinit var diagnostic: ConeDiagnostic
lateinit var symbol: FirErrorFunctionSymbol
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
override fun build(): FirErrorFunction {
return FirErrorFunctionImpl(
@@ -52,10 +57,11 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
origin,
attributes,
annotations,
containerSource,
dispatchReceiverType,
valueParameters,
diagnostic,
symbol,
typeParameters,
)
}
@@ -12,20 +12,24 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
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.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
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.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.impl.FirErrorPropertyImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
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.FirErrorPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
/*
* This file was generated automatically
@@ -39,10 +43,11 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
lateinit var name: Name
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
lateinit var diagnostic: ConeDiagnostic
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
lateinit var symbol: FirErrorPropertySymbol
override fun build(): FirErrorProperty {
@@ -52,10 +57,11 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
resolvePhase,
origin,
attributes,
containerSource,
dispatchReceiverType,
name,
annotations,
diagnostic,
typeParameters,
symbol,
)
}
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
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.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -43,15 +43,15 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
open lateinit var returnTypeRef: FirTypeRef
open val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
open lateinit var status: FirDeclarationStatus
open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeKotlinType? = null
open lateinit var name: Name
open lateinit var symbol: FirVariableSymbol<FirField>
open var initializer: FirExpression? = null
open var isVar: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
open val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
open lateinit var status: FirDeclarationStatus
open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeKotlinType? = null
@OptIn(FirImplementationDetail::class)
override fun build(): FirField {
@@ -62,15 +62,15 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
origin,
attributes,
returnTypeRef,
typeParameters,
status,
containerSource,
dispatchReceiverType,
name,
symbol,
initializer,
isVar,
annotations,
typeParameters,
status,
containerSource,
dispatchReceiverType,
)
}
@@ -11,14 +11,17 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
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.FirDeclarationStatus
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.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
/*
* This file was generated automatically
@@ -34,6 +37,9 @@ interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuil
abstract override var attributes: FirDeclarationAttributes
abstract override val annotations: MutableList<FirAnnotationCall>
abstract var returnTypeRef: FirTypeRef
abstract var status: FirDeclarationStatus
abstract var containerSource: DeserializedContainerSource?
abstract var dispatchReceiverType: ConeKotlinType?
abstract val valueParameters: MutableList<FirValueParameter>
abstract var body: FirBlock?
override fun build(): FirFunction<*>
@@ -44,10 +44,10 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
override lateinit var returnTypeRef: FirTypeRef
override var receiverTypeRef: FirTypeRef? = null
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override lateinit var status: FirDeclarationStatus
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeKotlinType? = null
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override lateinit var symbol: FirConstructorSymbol
override var delegatedConstructor: FirDelegatedConstructorCall? = null
@@ -63,10 +63,10 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
returnTypeRef,
receiverTypeRef,
typeParameters,
valueParameters,
status,
containerSource,
dispatchReceiverType,
valueParameters,
annotations,
symbol,
delegatedConstructor,
@@ -45,11 +45,11 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override lateinit var returnTypeRef: FirTypeRef
override lateinit var status: FirDeclarationStatus
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeKotlinType? = null
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null
lateinit var status: FirDeclarationStatus
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
var contractDescription: FirContractDescription = FirEmptyContractDescription
lateinit var symbol: FirPropertyAccessorSymbol
var isGetter: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
@@ -65,11 +65,11 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
origin,
attributes,
returnTypeRef,
valueParameters,
body,
status,
containerSource,
dispatchReceiverType,
valueParameters,
body,
contractDescription,
symbol,
isGetter,
@@ -100,11 +100,11 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body
copyBuilder.status = original.status
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body
copyBuilder.contractDescription = original.contractDescription
copyBuilder.symbol = original.symbol
copyBuilder.isGetter = original.isGetter
@@ -46,6 +46,9 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
lateinit var returnTypeRef: FirTypeRef
var receiverTypeRef: FirTypeRef? = null
lateinit var status: FirDeclarationStatus
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
lateinit var name: Name
var initializer: FirExpression? = null
var delegate: FirExpression? = null
@@ -54,12 +57,9 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
var getter: FirPropertyAccessor? = null
var setter: FirPropertyAccessor? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
lateinit var symbol: FirPropertySymbol
var isLocal: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
lateinit var status: FirDeclarationStatus
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
override fun build(): FirProperty {
return FirPropertyImpl(
@@ -70,6 +70,9 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
attributes,
returnTypeRef,
receiverTypeRef,
status,
containerSource,
dispatchReceiverType,
name,
initializer,
delegate,
@@ -78,12 +81,9 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
getter,
setter,
annotations,
typeParameters,
containerSource,
dispatchReceiverType,
symbol,
isLocal,
status,
typeParameters,
)
}
@@ -110,6 +110,9 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.status = original.status
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.name = original.name
copyBuilder.initializer = original.initializer
copyBuilder.delegate = original.delegate
@@ -118,11 +121,8 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
copyBuilder.getter = original.getter
copyBuilder.setter = original.setter
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.typeParameters.addAll(original.typeParameters)
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.symbol = original.symbol
copyBuilder.isLocal = original.isLocal
copyBuilder.status = original.status
copyBuilder.typeParameters.addAll(original.typeParameters)
return copyBuilder.apply(init).build()
}
@@ -41,12 +41,12 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
open lateinit var status: FirDeclarationStatus
override lateinit var classKind: ClassKind
override val declarations: MutableList<FirDeclaration<*>> = mutableListOf()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override lateinit var scopeProvider: FirScopeProvider
open lateinit var status: FirDeclarationStatus
open lateinit var name: Name
open lateinit var symbol: FirRegularClassSymbol
open var companionObject: FirRegularClass? = null
@@ -59,12 +59,12 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu
resolvePhase,
origin,
attributes,
annotations,
typeParameters,
status,
classKind,
declarations,
annotations,
scopeProvider,
status,
name,
symbol,
companionObject,
@@ -93,12 +93,12 @@ inline fun buildRegularClassCopy(original: FirRegularClass, init: FirRegularClas
copyBuilder.resolvePhase = original.resolvePhase
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.typeParameters.addAll(original.typeParameters)
copyBuilder.status = original.status
copyBuilder.classKind = original.classKind
copyBuilder.declarations.addAll(original.declarations)
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.scopeProvider = original.scopeProvider
copyBuilder.status = original.status
copyBuilder.name = original.name
copyBuilder.symbol = original.symbol
copyBuilder.companionObject = original.companionObject
@@ -46,11 +46,11 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override lateinit var returnTypeRef: FirTypeRef
open var receiverTypeRef: FirTypeRef? = null
override lateinit var status: FirDeclarationStatus
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeKotlinType? = null
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null
open lateinit var status: FirDeclarationStatus
open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeKotlinType? = null
open var contractDescription: FirContractDescription = FirEmptyContractDescription
open lateinit var name: Name
open lateinit var symbol: FirNamedFunctionSymbol
@@ -66,11 +66,11 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
attributes,
returnTypeRef,
receiverTypeRef,
valueParameters,
body,
status,
containerSource,
dispatchReceiverType,
valueParameters,
body,
contractDescription,
name,
symbol,
@@ -102,11 +102,11 @@ inline fun buildSimpleFunctionCopy(original: FirSimpleFunction, init: FirSimpleF
copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body
copyBuilder.status = original.status
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body
copyBuilder.contractDescription = original.contractDescription
copyBuilder.name = original.name
copyBuilder.symbol = original.symbol
@@ -12,18 +12,23 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
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.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
/*
* This file was generated automatically
@@ -38,6 +43,8 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
open lateinit var origin: FirDeclarationOrigin
open var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
open lateinit var returnTypeRef: FirTypeRef
open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeKotlinType? = null
open lateinit var name: Name
open lateinit var symbol: FirVariableSymbol<FirValueParameter>
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
@@ -54,6 +61,8 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
origin,
attributes,
returnTypeRef,
containerSource,
dispatchReceiverType,
name,
symbol,
annotations,
@@ -86,6 +95,8 @@ inline fun buildValueParameterCopy(original: FirValueParameter, init: FirValuePa
copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.name = original.name
copyBuilder.symbol = original.symbol
copyBuilder.annotations.addAll(original.annotations)
@@ -12,15 +12,19 @@ import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.InlineStatus
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
/*
@@ -36,6 +40,8 @@ internal class FirAnonymousFunctionImpl(
override val annotations: MutableList<FirAnnotationCall>,
override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override var controlFlowGraphReference: FirControlFlowGraphReference?,
override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?,
@@ -48,6 +54,7 @@ internal class FirAnonymousFunctionImpl(
override var typeRef: FirTypeRef,
) : FirAnonymousFunction() {
override var resolvePhase: FirResolvePhase = FirResolvePhase.DECLARATIONS
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
init {
symbol.bind(this)
@@ -57,6 +64,7 @@ internal class FirAnonymousFunctionImpl(
annotations.forEach { it.accept(visitor, data) }
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
status.accept(visitor, data)
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data)
@@ -69,6 +77,7 @@ internal class FirAnonymousFunctionImpl(
transformAnnotations(transformer, data)
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
transformStatus(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data)
transformBody(transformer, data)
@@ -93,6 +102,11 @@ internal class FirAnonymousFunctionImpl(
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
valueParameters.transformInplace(transformer, data)
return this
@@ -38,10 +38,10 @@ internal class FirConstructorImpl(
override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?,
override val typeParameters: MutableList<FirTypeParameterRef>,
override val valueParameters: MutableList<FirValueParameter>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val valueParameters: MutableList<FirValueParameter>,
override val annotations: MutableList<FirAnnotationCall>,
override val symbol: FirConstructorSymbol,
override var delegatedConstructor: FirDelegatedConstructorCall?,
@@ -58,9 +58,9 @@ internal class FirConstructorImpl(
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data)
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
delegatedConstructor?.accept(visitor, data)
body?.accept(visitor, data)
@@ -70,9 +70,9 @@ internal class FirConstructorImpl(
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data)
transformStatus(transformer, data)
transformAnnotations(transformer, data)
transformDelegatedConstructor(transformer, data)
transformBody(transformer, data)
@@ -94,13 +94,13 @@ internal class FirConstructorImpl(
return this
}
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
valueParameters.transformInplace(transformer, data)
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
status = status.transform(transformer, data)
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
valueParameters.transformInplace(transformer, data)
return this
}
@@ -9,16 +9,21 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
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.*
/*
@@ -34,6 +39,8 @@ internal class FirDefaultSetterValueParameter(
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val symbol: FirVariableSymbol<FirValueParameter>,
override var initializer: FirExpression?,
override var delegate: FirExpression?,
@@ -48,6 +55,8 @@ internal class FirDefaultSetterValueParameter(
override val isNoinline: Boolean,
override val isVararg: Boolean,
) : FirValueParameter() {
override val typeParameters: List<FirTypeParameterRef> get() = emptyList()
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
override val name: Name = Name.identifier("value")
override var controlFlowGraphReference: FirControlFlowGraphReference? = null
@@ -59,6 +68,7 @@ internal class FirDefaultSetterValueParameter(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
status.accept(visitor, data)
initializer?.accept(visitor, data)
delegate?.accept(visitor, data)
getter?.accept(visitor, data)
@@ -71,6 +81,7 @@ internal class FirDefaultSetterValueParameter(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
transformStatus(transformer, data)
transformInitializer(transformer, data)
transformDelegate(transformer, data)
transformGetter(transformer, data)
@@ -89,6 +100,15 @@ internal class FirDefaultSetterValueParameter(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
status = status.transform(transformer, data)
return this
}
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
initializer = initializer?.transform(transformer, data)
return this
@@ -36,14 +36,14 @@ internal class FirEnumEntryImpl(
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
override val name: Name,
override val symbol: FirVariableSymbol<FirEnumEntry>,
override var initializer: FirExpression?,
override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val name: Name,
override val symbol: FirVariableSymbol<FirEnumEntry>,
override var initializer: FirExpression?,
override val annotations: MutableList<FirAnnotationCall>,
) : FirEnumEntry() {
override val receiverTypeRef: FirTypeRef? get() = null
override val delegate: FirExpression? get() = null
@@ -60,17 +60,17 @@ internal class FirEnumEntryImpl(
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)
initializer?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
transformReturnTypeRef(transformer, data)
transformInitializer(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
transformInitializer(transformer, data)
transformOtherChildren(transformer, data)
return this
}
@@ -84,6 +84,16 @@ 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.transform(transformer, data)
return this
}
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
initializer = initializer?.transform(transformer, data)
return this
@@ -106,16 +116,6 @@ 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.transform(transformer, data)
return this
}
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
transformAnnotations(transformer, data)
return this
@@ -9,17 +9,21 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
/*
@@ -34,15 +38,18 @@ internal class FirErrorFunctionImpl(
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override val annotations: MutableList<FirAnnotationCall>,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val valueParameters: MutableList<FirValueParameter>,
override val diagnostic: ConeDiagnostic,
override val symbol: FirErrorFunctionSymbol,
override val typeParameters: MutableList<FirTypeParameter>,
) : FirErrorFunction() {
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, null, diagnostic)
override val receiverTypeRef: FirTypeRef? get() = null
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
override var controlFlowGraphReference: FirControlFlowGraphReference? = null
override val body: FirBlock? get() = null
override val typeParameters: List<FirTypeParameter> get() = emptyList()
init {
symbol.bind(this)
@@ -51,17 +58,17 @@ internal class FirErrorFunctionImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
returnTypeRef.accept(visitor, data)
status.accept(visitor, data)
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
typeParameters.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
transformAnnotations(transformer, data)
transformReturnTypeRef(transformer, data)
transformStatus(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data)
transformTypeParameters(transformer, data)
return this
}
@@ -79,6 +86,11 @@ internal class FirErrorFunctionImpl(
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
valueParameters.transformInplace(transformer, data)
return this
@@ -89,7 +101,6 @@ internal class FirErrorFunctionImpl(
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
typeParameters.transformInplace(transformer, data)
return this
}
@@ -9,18 +9,22 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
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.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
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.FirErrorPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
/*
@@ -34,14 +38,17 @@ internal class FirErrorPropertyImpl(
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val name: Name,
override val annotations: MutableList<FirAnnotationCall>,
override val diagnostic: ConeDiagnostic,
override val typeParameters: MutableList<FirTypeParameter>,
override val symbol: FirErrorPropertySymbol,
) : FirErrorProperty() {
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, null, diagnostic)
override val receiverTypeRef: FirTypeRef? get() = null
override val typeParameters: List<FirTypeParameterRef> get() = emptyList()
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
override val initializer: FirExpression? get() = null
override val delegate: FirExpression? get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirErrorProperty>? get() = null
@@ -57,13 +64,13 @@ internal class FirErrorPropertyImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
status.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
typeParameters.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
transformReturnTypeRef(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
transformOtherChildren(transformer, data)
return this
}
@@ -77,6 +84,15 @@ internal class FirErrorPropertyImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
return this
}
@@ -98,11 +114,6 @@ 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)
return this
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
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.FirTypeParameterRef
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
@@ -37,15 +37,15 @@ class FirFieldImpl @FirImplementationDetail constructor(
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val name: Name,
override val symbol: FirVariableSymbol<FirField>,
override var initializer: FirExpression?,
override val isVar: Boolean,
override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
) : FirField() {
override val receiverTypeRef: FirTypeRef? get() = null
override val delegate: FirExpression? get() = null
@@ -61,17 +61,17 @@ class FirFieldImpl @FirImplementationDetail constructor(
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)
initializer?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFieldImpl {
transformReturnTypeRef(transformer, data)
transformInitializer(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
transformInitializer(transformer, data)
transformOtherChildren(transformer, data)
return this
}
@@ -85,6 +85,16 @@ class FirFieldImpl @FirImplementationDetail constructor(
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.transform(transformer, data)
return this
}
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirFieldImpl {
initializer = initializer?.transform(transformer, data)
return this
@@ -107,16 +117,6 @@ class FirFieldImpl @FirImplementationDetail constructor(
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.transform(transformer, data)
return this
}
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirFieldImpl {
transformAnnotations(transformer, data)
return this
@@ -38,10 +38,10 @@ internal class FirPrimaryConstructor(
override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?,
override val typeParameters: MutableList<FirTypeParameterRef>,
override val valueParameters: MutableList<FirValueParameter>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val valueParameters: MutableList<FirValueParameter>,
override val annotations: MutableList<FirAnnotationCall>,
override val symbol: FirConstructorSymbol,
override var delegatedConstructor: FirDelegatedConstructorCall?,
@@ -58,9 +58,9 @@ internal class FirPrimaryConstructor(
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data)
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
delegatedConstructor?.accept(visitor, data)
body?.accept(visitor, data)
@@ -70,9 +70,9 @@ internal class FirPrimaryConstructor(
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data)
transformStatus(transformer, data)
transformAnnotations(transformer, data)
transformDelegatedConstructor(transformer, data)
transformBody(transformer, data)
@@ -94,13 +94,13 @@ internal class FirPrimaryConstructor(
return this
}
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
valueParameters.transformInplace(transformer, data)
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
status = status.transform(transformer, data)
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
status = status.transform(transformer, data)
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
valueParameters.transformInplace(transformer, data)
return this
}
@@ -38,11 +38,11 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?,
override var contractDescription: FirContractDescription,
override val symbol: FirPropertyAccessorSymbol,
override val isGetter: Boolean,
@@ -59,10 +59,10 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
status.accept(visitor, data)
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data)
status.accept(visitor, data)
contractDescription.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
typeParameters.forEach { it.accept(visitor, data) }
@@ -70,10 +70,10 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
transformReturnTypeRef(transformer, data)
transformStatus(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data)
transformBody(transformer, data)
transformStatus(transformer, data)
transformContractDescription(transformer, data)
transformAnnotations(transformer, data)
transformTypeParameters(transformer, data)
@@ -89,6 +89,11 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
valueParameters.transformInplace(transformer, data)
return this
@@ -99,11 +104,6 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
contractDescription = contractDescription.transform(transformer, data)
return this
@@ -39,6 +39,9 @@ internal class FirPropertyImpl(
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val name: Name,
override var initializer: FirExpression?,
override var delegate: FirExpression?,
@@ -47,12 +50,9 @@ 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 dispatchReceiverType: ConeKotlinType?,
override val symbol: FirPropertySymbol,
override val isLocal: Boolean,
override var status: FirDeclarationStatus,
override val typeParameters: MutableList<FirTypeParameter>,
) : FirProperty() {
override val isVal: Boolean get() = !isVar
override var controlFlowGraphReference: FirControlFlowGraphReference? = null
@@ -67,25 +67,25 @@ internal class FirPropertyImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
status.accept(visitor, data)
initializer?.accept(visitor, data)
delegate?.accept(visitor, data)
getter?.accept(visitor, data)
setter?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
typeParameters.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
status.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
transformStatus(transformer, data)
transformInitializer(transformer, data)
transformDelegate(transformer, data)
transformGetter(transformer, data)
transformSetter(transformer, data)
transformTypeParameters(transformer, data)
transformStatus(transformer, data)
transformOtherChildren(transformer, data)
return this
}
@@ -100,6 +100,11 @@ internal class FirPropertyImpl(
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
initializer = initializer?.transform(transformer, data)
return this
@@ -130,11 +135,6 @@ internal class FirPropertyImpl(
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
@@ -34,12 +34,12 @@ internal class FirRegularClassImpl(
override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus,
override val classKind: ClassKind,
override val declarations: MutableList<FirDeclaration<*>>,
override val annotations: MutableList<FirAnnotationCall>,
override val scopeProvider: FirScopeProvider,
override var status: FirDeclarationStatus,
override val name: Name,
override val symbol: FirRegularClassSymbol,
override var companionObject: FirRegularClass?,
@@ -53,42 +53,42 @@ internal class FirRegularClassImpl(
}
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
typeParameters.forEach { it.accept(visitor, data) }
declarations.forEach { it.accept(visitor, data) }
annotations.forEach { it.accept(visitor, data) }
status.accept(visitor, data)
controlFlowGraphReference?.accept(visitor, data)
declarations.forEach { it.accept(visitor, data) }
superTypeRefs.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
transformAnnotations(transformer, data)
transformTypeParameters(transformer, data)
transformDeclarations(transformer, data)
transformAnnotations(transformer, data)
transformStatus(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformDeclarations(transformer, data)
companionObject = declarations.asSequence().filterIsInstance<FirRegularClass>().firstOrNull { it.status.isCompanion }
transformSuperTypeRefs(transformer, data)
return this
}
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
annotations.transformInplace(transformer, data)
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.transform(transformer, data)
override fun <D> transformDeclarations(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
declarations.transformInplace(transformer, data)
return this
}
override fun <D> transformDeclarations(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
declarations.transformInplace(transformer, data)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
annotations.transformInplace(transformer, data)
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
status = status.transform(transformer, data)
return this
}
@@ -38,11 +38,11 @@ internal class FirSimpleFunctionImpl(
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?,
override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?,
override var contractDescription: FirContractDescription,
override val name: Name,
override val symbol: FirNamedFunctionSymbol,
@@ -58,10 +58,10 @@ internal class FirSimpleFunctionImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
status.accept(visitor, data)
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data)
status.accept(visitor, data)
contractDescription.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
typeParameters.forEach { it.accept(visitor, data) }
@@ -70,10 +70,10 @@ internal class FirSimpleFunctionImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
transformStatus(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data)
transformBody(transformer, data)
transformStatus(transformer, data)
transformContractDescription(transformer, data)
transformAnnotations(transformer, data)
transformTypeParameters(transformer, data)
@@ -90,6 +90,11 @@ internal class FirSimpleFunctionImpl(
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
valueParameters.transformInplace(transformer, data)
return this
@@ -100,11 +105,6 @@ internal class FirSimpleFunctionImpl(
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
contractDescription = contractDescription.transform(transformer, data)
return this
@@ -9,16 +9,21 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
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.*
/*
@@ -33,6 +38,8 @@ internal class FirValueParameterImpl(
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val name: Name,
override val symbol: FirVariableSymbol<FirValueParameter>,
override val annotations: MutableList<FirAnnotationCall>,
@@ -42,6 +49,8 @@ internal class FirValueParameterImpl(
override val isVararg: Boolean,
) : FirValueParameter() {
override val receiverTypeRef: FirTypeRef? get() = null
override val typeParameters: List<FirTypeParameterRef> get() = emptyList()
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
override val initializer: FirExpression? get() = null
override val delegate: FirExpression? get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirValueParameter>? get() = null
@@ -58,6 +67,7 @@ internal class FirValueParameterImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
status.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
defaultValue?.accept(visitor, data)
@@ -65,6 +75,7 @@ internal class FirValueParameterImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
transformReturnTypeRef(transformer, data)
transformStatus(transformer, data)
transformOtherChildren(transformer, data)
return this
}
@@ -78,6 +89,15 @@ internal class FirValueParameterImpl(
return this
}
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
return this
}
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
status = status.transform(transformer, data)
return this
}
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
return this
}
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirStatusOwner
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirVariable
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
@@ -223,8 +223,8 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformElement(typeParametersOwner, data)
}
open fun <E : FirMemberDeclaration<E>> transformMemberDeclaration(memberDeclaration: FirMemberDeclaration<E>, data: D): FirMemberDeclaration<E> {
return transformElement(memberDeclaration, data)
open fun transformStatusOwner(statusOwner: FirStatusOwner, data: D): FirStatusOwner {
return transformElement(statusOwner, data)
}
open fun <E : FirCallableMemberDeclaration<E>> transformCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration<E>, data: D): FirCallableMemberDeclaration<E> {
@@ -735,8 +735,8 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformTypeParametersOwner(typeParametersOwner, data)
}
final override fun <E : FirMemberDeclaration<E>> visitMemberDeclaration(memberDeclaration: FirMemberDeclaration<E>, data: D): FirMemberDeclaration<E> {
return transformMemberDeclaration(memberDeclaration, data)
final override fun visitStatusOwner(statusOwner: FirStatusOwner, data: D): FirStatusOwner {
return transformStatusOwner(statusOwner, data)
}
final override fun <E : FirCallableMemberDeclaration<E>> visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration<E>, data: D): FirCallableMemberDeclaration<E> {
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirStatusOwner
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirVariable
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
@@ -182,7 +182,7 @@ abstract class FirVisitor<out R, in D> {
open fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): R = visitElement(typeParametersOwner, data)
open fun <E : FirMemberDeclaration<E>> visitMemberDeclaration(memberDeclaration: FirMemberDeclaration<E>, data: D): R = visitElement(memberDeclaration, data)
open fun visitStatusOwner(statusOwner: FirStatusOwner, data: D): R = visitElement(statusOwner, data)
open fun <E : FirCallableMemberDeclaration<E>> visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration<E>, data: D): R = visitElement(callableMemberDeclaration, data)
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirStatusOwner
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirVariable
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
@@ -222,8 +222,8 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(typeParametersOwner)
}
open fun <E : FirMemberDeclaration<E>> visitMemberDeclaration(memberDeclaration: FirMemberDeclaration<E>) {
visitElement(memberDeclaration)
open fun visitStatusOwner(statusOwner: FirStatusOwner) {
visitElement(statusOwner)
}
open fun <E : FirCallableMemberDeclaration<E>> visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration<E>) {
@@ -734,8 +734,8 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitTypeParametersOwner(typeParametersOwner)
}
final override fun <E : FirMemberDeclaration<E>> visitMemberDeclaration(memberDeclaration: FirMemberDeclaration<E>, data: Nothing?) {
visitMemberDeclaration(memberDeclaration)
final override fun visitStatusOwner(statusOwner: FirStatusOwner, data: Nothing?) {
visitStatusOwner(statusOwner)
}
final override fun <E : FirCallableMemberDeclaration<E>> visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration<E>, data: Nothing?) {
@@ -194,6 +194,10 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
print(")")
}
fun renderAnnotations(annotationContainer: FirAnnotationContainer) {
annotationContainer.annotations.renderAnnotations()
}
private fun List<FirAnnotationCall>.renderAnnotations() {
if (!mode.renderAnnotation) return
for (annotation in this) {
@@ -211,10 +215,10 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
}
override fun <F : FirCallableDeclaration<F>> visitCallableDeclaration(callableDeclaration: FirCallableDeclaration<F>) {
if (callableDeclaration is FirMemberDeclaration<*>) {
visitMemberDeclaration(callableDeclaration)
callableDeclaration.annotations.renderAnnotations()
if (callableDeclaration is FirStatusOwner) {
visitStatusOwner(callableDeclaration)
} else {
callableDeclaration.annotations.renderAnnotations()
visitTypedDeclaration(callableDeclaration)
}
val receiverType = callableDeclaration.receiverTypeRef
@@ -268,7 +272,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
return itself + "[${effectiveVisibility.name}]"
}
private fun FirMemberDeclaration<*>.modalityAsString(): String {
private fun FirStatusOwner.modalityAsString(): String {
return modality?.name?.toLowerCaseAsciiOnly() ?: run {
if (this is FirCallableMemberDeclaration<*> && this.isOverride) {
"open?"
@@ -298,87 +302,86 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
typeParameterRef.symbol.fir.accept(this)
}
override fun <E : FirMemberDeclaration<E>> visitMemberDeclaration(memberDeclaration: FirMemberDeclaration<E>) {
memberDeclaration.annotations.renderAnnotations()
if (memberDeclaration !is FirProperty || !memberDeclaration.isLocal) {
override fun visitStatusOwner(statusOwner: FirStatusOwner) {
if (statusOwner !is FirProperty || !statusOwner.isLocal) {
// we can't access session.effectiveVisibilityResolver from here!
// print(memberDeclaration.visibility.asString(memberDeclaration.getEffectiveVisibility(...)) + " ")
print(memberDeclaration.visibility.asString() + " ")
print(memberDeclaration.modalityAsString() + " ")
print(statusOwner.visibility.asString() + " ")
print(statusOwner.modalityAsString() + " ")
}
if (memberDeclaration.isExpect) {
if (statusOwner.isExpect) {
print("expect ")
}
if (memberDeclaration.isActual) {
if (statusOwner.isActual) {
print("actual ")
}
if (memberDeclaration.isExternal) {
if (statusOwner.isExternal) {
print("external ")
}
if (memberDeclaration.isOverride) {
if (statusOwner.isOverride) {
print("override ")
}
if (memberDeclaration.isStatic) {
if (statusOwner.isStatic) {
print("static ")
}
if (memberDeclaration.isInner) {
if (statusOwner.isInner) {
print("inner ")
}
// `companion/data/fun` modifiers are only valid for FirRegularClass, but we render them to make sure they are not
// incorrectly loaded for other declarations during deserialization.
if (memberDeclaration.status.isCompanion) {
if (statusOwner.status.isCompanion) {
print("companion ")
}
if (memberDeclaration.status.isData) {
if (statusOwner.status.isData) {
print("data ")
}
// All Java interfaces are considered `fun` (functional interfaces) for resolution purposes
// (see JavaSymbolProvider.createFirJavaClass). Don't render `fun` for Java interfaces; it's not a modifier in Java.
val isJavaInterface =
memberDeclaration is FirRegularClass && memberDeclaration.classKind == ClassKind.INTERFACE && memberDeclaration.isJava
if (memberDeclaration.status.isFun && !isJavaInterface) {
statusOwner is FirRegularClass && statusOwner.classKind == ClassKind.INTERFACE && statusOwner.isJava
if (statusOwner.status.isFun && !isJavaInterface) {
print("fun ")
}
if (memberDeclaration.isInline) {
if (statusOwner.isInline) {
print("inline ")
}
if (memberDeclaration.isOperator) {
if (statusOwner.isOperator) {
print("operator ")
}
if (memberDeclaration.isInfix) {
if (statusOwner.isInfix) {
print("infix ")
}
if (memberDeclaration.isTailRec) {
if (statusOwner.isTailRec) {
print("tailrec ")
}
if (memberDeclaration.isSuspend) {
if (statusOwner.isSuspend) {
print("suspend ")
}
if (memberDeclaration.isConst) {
if (statusOwner.isConst) {
print("const ")
}
if (memberDeclaration.isLateInit) {
if (statusOwner.isLateInit) {
print("lateinit ")
}
visitDeclaration(memberDeclaration)
when (memberDeclaration) {
visitDeclaration(statusOwner as FirDeclaration<*>)
when (statusOwner) {
is FirClassLikeDeclaration<*> -> {
if (memberDeclaration is FirRegularClass) {
print(" " + memberDeclaration.name)
if (statusOwner is FirRegularClass) {
print(" " + statusOwner.name)
}
if (memberDeclaration is FirTypeAlias) {
print(" " + memberDeclaration.name)
if (statusOwner is FirTypeAlias) {
print(" " + statusOwner.name)
}
memberDeclaration.typeParameters.renderTypeParameters()
statusOwner.typeParameters.renderTypeParameters()
}
is FirCallableDeclaration<*> -> {
// Name is handled by visitCallableDeclaration
if (memberDeclaration.typeParameters.isNotEmpty()) {
if (statusOwner.typeParameters.isNotEmpty()) {
print(" ")
memberDeclaration.typeParameters.renderTypeParameters()
statusOwner.typeParameters.renderTypeParameters()
}
}
}
@@ -466,7 +469,8 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
}
override fun visitRegularClass(regularClass: FirRegularClass) {
visitMemberDeclaration(regularClass)
regularClass.annotations.renderAnnotations()
visitStatusOwner(regularClass)
renderSupertypes(regularClass)
regularClass.declarations.renderDeclarations()
}
@@ -643,7 +647,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
override fun visitTypeAlias(typeAlias: FirTypeAlias) {
typeAlias.annotations.renderAnnotations()
visitMemberDeclaration(typeAlias)
visitStatusOwner(typeAlias)
print(" = ")
typeAlias.expandedTypeRef.accept(this)
println()
@@ -43,7 +43,6 @@ inline val FirClass<*>.isInterface: Boolean
inline val FirClass<*>.isEnumClass: Boolean
get() = classKind == ClassKind.ENUM_CLASS
inline val FirRegularClass.modality get() = status.modality
inline val FirRegularClass.isSealed get() = status.modality == Modality.SEALED
inline val FirRegularClass.isAbstract get() = status.modality == Modality.ABSTRACT
inline val FirRegularClass.isFun get() = status.isFun
@@ -53,46 +52,45 @@ inline val FirRegularClass.isData get() = status.isData
inline val FirRegularClass.canHaveAbstractDeclaration: Boolean
get() = isAbstract || isSealed || isEnumClass
inline val FirMemberDeclaration<*>.modality get() = status.modality
inline val FirMemberDeclaration<*>.isAbstract get() = status.modality == Modality.ABSTRACT
inline val FirMemberDeclaration<*>.isOpen get() = status.modality == Modality.OPEN
inline val FirMemberDeclaration<*>.isFinal: Boolean
inline val FirStatusOwner.modality get() = status.modality
inline val FirStatusOwner.isAbstract get() = status.modality == Modality.ABSTRACT
inline val FirStatusOwner.isOpen get() = status.modality == Modality.OPEN
inline val FirStatusOwner.isFinal: Boolean
get() {
// member with unspecified modality is final
val modality = status.modality ?: return true
return modality == Modality.FINAL
}
inline val FirMemberDeclaration<*>.visibility: Visibility get() = status.visibility
inline val FirMemberDeclaration<*>.effectiveVisibility: EffectiveVisibility
inline val FirStatusOwner.visibility: Visibility get() = status.visibility
inline val FirStatusOwner.effectiveVisibility: EffectiveVisibility
get() = (status as? FirResolvedDeclarationStatus)?.effectiveVisibility
?: error("Effective visibility for ${render(FirRenderer.RenderMode.NoBodies)} must be resolved")
inline val FirMemberDeclaration<*>.allowsToHaveFakeOverride: Boolean
inline val FirStatusOwner.allowsToHaveFakeOverride: Boolean
get() = !Visibilities.isPrivate(visibility) && visibility != Visibilities.InvisibleFake
inline val FirMemberDeclaration<*>.isActual get() = status.isActual
inline val FirMemberDeclaration<*>.isExpect get() = status.isExpect
inline val FirMemberDeclaration<*>.isInner get() = status.isInner
inline val FirMemberDeclaration<*>.isStatic get() = status.isStatic
inline val FirMemberDeclaration<*>.isOverride: Boolean get() = status.isOverride
inline val FirMemberDeclaration<*>.isOperator: Boolean get() = status.isOperator
inline val FirMemberDeclaration<*>.isInfix: Boolean get() = status.isInfix
inline val FirMemberDeclaration<*>.isInline: Boolean get() = status.isInline
inline val FirMemberDeclaration<*>.isTailRec: Boolean get() = status.isTailRec
inline val FirMemberDeclaration<*>.isExternal: Boolean get() = status.isExternal
inline val FirMemberDeclaration<*>.isSuspend: Boolean get() = status.isSuspend
inline val FirMemberDeclaration<*>.isConst: Boolean get() = status.isConst
inline val FirMemberDeclaration<*>.isLateInit: Boolean get() = status.isLateInit
inline val FirMemberDeclaration<*>.isFromSealedClass: Boolean get() = status.isFromSealedClass
inline val FirMemberDeclaration<*>.isFromEnumClass: Boolean get() = status.isFromEnumClass
inline val FirMemberDeclaration<*>.isFun: Boolean get() = status.isFun
inline val FirStatusOwner.isActual: Boolean get() = status.isActual
inline val FirStatusOwner.isExpect: Boolean get() = status.isExpect
inline val FirStatusOwner.isInner: Boolean get() = status.isInner
inline val FirStatusOwner.isStatic: Boolean get() = status.isStatic
inline val FirStatusOwner.isOverride: Boolean get() = status.isOverride
inline val FirStatusOwner.isOperator: Boolean get() = status.isOperator
inline val FirStatusOwner.isInfix: Boolean get() = status.isInfix
inline val FirStatusOwner.isInline: Boolean get() = status.isInline
inline val FirStatusOwner.isTailRec: Boolean get() = status.isTailRec
inline val FirStatusOwner.isExternal: Boolean get() = status.isExternal
inline val FirStatusOwner.isSuspend: Boolean get() = status.isSuspend
inline val FirStatusOwner.isConst: Boolean get() = status.isConst
inline val FirStatusOwner.isLateInit: Boolean get() = status.isLateInit
inline val FirStatusOwner.isFromSealedClass: Boolean get() = status.isFromSealedClass
inline val FirStatusOwner.isFromEnumClass: Boolean get() = status.isFromEnumClass
inline val FirStatusOwner.isFun: Boolean get() = status.isFun
inline val FirFunction<*>.hasBody get() = body != null
inline val FirPropertyAccessor.modality get() = status.modality
inline val FirPropertyAccessor.visibility get() = status.visibility
inline val FirPropertyAccessor.isInline get() = status.isInline
inline val FirPropertyAccessor.isExternal get() = status.isExternal
inline val FirPropertyAccessor.hasBody get() = body != null
@@ -190,7 +188,7 @@ var FirRegularClass.moduleName: String? by FirDeclarationDataRegistry.data(Modul
var FirTypeAlias.sourceElement: SourceElement? by FirDeclarationDataRegistry.data(SourceElementKey)
val FirMemberDeclaration<*>.containerSource: SourceElement?
val FirStatusOwner.containerSource: SourceElement?
get() = when (this) {
is FirCallableMemberDeclaration<*> -> containerSource
is FirRegularClass -> sourceElement
@@ -9,10 +9,10 @@ import org.jetbrains.kotlin.fir.render
import org.jetbrains.kotlin.fir.types.FirTypeRefComparator
import org.jetbrains.kotlin.name.Name
object FirMemberDeclarationComparator : Comparator<FirMemberDeclaration<*>> {
object FirMemberDeclarationComparator : Comparator<FirStatusOwner> {
// Comparing different kinds of callable members by assigning distinct priorities to those members.
object TypeAndNameComparator : Comparator<FirMemberDeclaration<*>> {
private val FirMemberDeclaration<*>.priority: Int
object TypeAndNameComparator : Comparator<FirStatusOwner> {
private val FirStatusOwner.priority: Int
get() = when (this) {
is FirEnumEntry -> 7
is FirConstructor -> 6
@@ -21,9 +21,11 @@ object FirMemberDeclarationComparator : Comparator<FirMemberDeclaration<*>> {
is FirFunction<*> -> 3
is FirClass<*> -> 2
is FirTypeAlias -> 1
is FirErrorProperty -> 0
is FirValueParameter -> 0
}
private val FirMemberDeclaration<*>.name: Name
private val FirStatusOwner.name: Name
get() = when (this) {
is FirCallableMemberDeclaration<*> ->
this.symbol.callableId.callableName
@@ -33,7 +35,7 @@ object FirMemberDeclarationComparator : Comparator<FirMemberDeclaration<*>> {
this.name
}
override fun compare(a: FirMemberDeclaration<*>, b: FirMemberDeclaration<*>): Int {
override fun compare(a: FirStatusOwner, b: FirStatusOwner): Int {
val priorityDiff = a.priority - b.priority
if (priorityDiff != 0) {
return priorityDiff
@@ -50,7 +52,7 @@ object FirMemberDeclarationComparator : Comparator<FirMemberDeclaration<*>> {
}
}
override fun compare(a: FirMemberDeclaration<*>, b: FirMemberDeclaration<*>): Int {
override fun compare(a: FirStatusOwner, b: FirStatusOwner): Int {
if (a is FirCallableMemberDeclaration<*> && b is FirCallableMemberDeclaration<*>) {
return FirCallableMemberDeclarationComparator.compare(a, b)
}
@@ -41,14 +41,14 @@ abstract class FirDefaultPropertyAccessor(
origin,
FirDeclarationAttributes(),
propertyTypeRef,
valueParameters,
body = null,
status = if (effectiveVisibility == null)
FirDeclarationStatusImpl(visibility, Modality.FINAL)
else
FirResolvedDeclarationStatusImpl(visibility, Modality.FINAL, effectiveVisibility),
containerSource = null,
dispatchReceiverType = null,
valueParameters,
body = null,
contractDescription = FirEmptyContractDescription,
symbol,
isGetter,
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.descriptors.EffectiveVisibility
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
@@ -16,6 +17,14 @@ class FirResolvedDeclarationStatusImpl(
override val effectiveVisibility: EffectiveVisibility
) : FirDeclarationStatusImpl(visibility, modality), FirResolvedDeclarationStatus {
companion object {
val DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS = FirResolvedDeclarationStatusImpl(
Visibilities.Public,
Modality.FINAL,
EffectiveVisibility.Public
)
}
internal constructor(
visibility: Visibility,
modality: Modality,
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.symbols.impl
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.declarations.FirFunction
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirStatusOwner
import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.name.CallableId
@@ -18,7 +18,7 @@ abstract class FirCallableSymbol<D : FirCallableDeclaration<D>> : FirBasedSymbol
override fun toString(): String = "${this::class.simpleName} $callableId"
}
val FirCallableSymbol<*>.isStatic: Boolean get() = (fir as? FirMemberDeclaration<*>)?.status?.isStatic == true
val FirCallableSymbol<*>.isStatic: Boolean get() = (fir as? FirStatusOwner)?.status?.isStatic == true
val FirCallableSymbol<*>.isExtension: Boolean
get() = when (fir) {
@@ -35,26 +35,26 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val typeParameter = element("TypeParameter", Declaration, typeParameterRef, annotatedDeclaration)
val typeParameterRefsOwner = sealedElement("TypeParameterRefsOwner", Declaration)
val typeParametersOwner = sealedElement("TypeParametersOwner", Declaration, typeParameterRefsOwner)
val memberDeclaration = sealedElement("MemberDeclaration", Declaration, annotatedDeclaration, typeParameterRefsOwner)
val callableMemberDeclaration = sealedElement("CallableMemberDeclaration", Declaration, callableDeclaration, memberDeclaration)
val statusOwner = sealedElement("StatusOwner", Declaration, typeParameterRefsOwner)
val callableMemberDeclaration = sealedElement("CallableMemberDeclaration", Declaration, callableDeclaration, statusOwner)
val variable = sealedElement("Variable", Declaration, callableDeclaration, annotatedDeclaration, statement)
val variable = sealedElement("Variable", Declaration, callableMemberDeclaration, statement)
val valueParameter = element("ValueParameter", Declaration, variable, controlFlowGraphOwner)
val property = element("Property", Declaration, variable, typeParametersOwner, controlFlowGraphOwner, callableMemberDeclaration)
val field = element("Field", Declaration, variable, typeParametersOwner, callableMemberDeclaration)
val enumEntry = element("EnumEntry", Declaration, variable, callableMemberDeclaration)
val property = element("Property", Declaration, variable, typeParametersOwner, controlFlowGraphOwner)
val field = element("Field", Declaration, variable)
val enumEntry = element("EnumEntry", Declaration, variable)
val classLikeDeclaration = sealedElement("ClassLikeDeclaration", Declaration, annotatedDeclaration, statement)
val klass = sealedElement("Class", Declaration, classLikeDeclaration, statement, typeParameterRefsOwner)
val regularClass = element("RegularClass", Declaration, memberDeclaration, typeParameterRefsOwner, controlFlowGraphOwner, klass)
val typeAlias = element("TypeAlias", Declaration, classLikeDeclaration, memberDeclaration, typeParametersOwner)
val regularClass = element("RegularClass", Declaration, klass, statusOwner, controlFlowGraphOwner)
val typeAlias = element("TypeAlias", Declaration, classLikeDeclaration, statusOwner, typeParametersOwner)
val function = sealedElement("Function", Declaration, callableDeclaration, targetElement, typeParameterRefsOwner, controlFlowGraphOwner, statement)
val function = sealedElement("Function", Declaration, callableMemberDeclaration, targetElement, controlFlowGraphOwner, statement)
val contractDescriptionOwner = sealedElement("ContractDescriptionOwner", Declaration)
val simpleFunction = element("SimpleFunction", Declaration, function, callableMemberDeclaration, contractDescriptionOwner, typeParametersOwner)
val propertyAccessor = element("PropertyAccessor", Declaration, function, callableMemberDeclaration, contractDescriptionOwner, typeParametersOwner)
val constructor = element("Constructor", Declaration, function, callableMemberDeclaration, typeParameterRefsOwner)
val simpleFunction = element("SimpleFunction", Declaration, function, contractDescriptionOwner, typeParametersOwner)
val propertyAccessor = element("PropertyAccessor", Declaration, function, contractDescriptionOwner, typeParametersOwner)
val constructor = element("Constructor", Declaration, function, typeParameterRefsOwner)
val file = element("File", Declaration, annotatedDeclaration)
val anonymousFunction = element("AnonymousFunction", Declaration, function, typeParametersOwner)
@@ -103,8 +103,8 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val arraySetCall = element("AugmentedArraySetCall", Expression, statement)
val classReferenceExpression = element("ClassReferenceExpression", Expression, expression)
val errorExpression = element("ErrorExpression", Expression, expression, diagnosticHolder)
val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder, typeParametersOwner)
val errorProperty = element("ErrorProperty", Declaration, variable, diagnosticHolder, typeParametersOwner)
val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder)
val errorProperty = element("ErrorProperty", Declaration, variable, diagnosticHolder)
val qualifiedAccessExpression = element("QualifiedAccessExpression", Expression, expression, qualifiedAccess)
val functionCall = element("FunctionCall", Expression, qualifiedAccessExpression, call)
val implicitInvokeCall = element("ImplicitInvokeCall", Expression, functionCall)
@@ -500,6 +500,30 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
}
noImpl(argumentList)
val implementationsWithoutStatusAndTypeParameters = listOf(
"FirAnonymousFunctionImpl",
"FirValueParameterImpl",
"FirDefaultSetterValueParameter",
"FirErrorPropertyImpl",
"FirErrorFunctionImpl"
)
configureFieldInAllImplementations(
"status",
implementationPredicate = { it.type in implementationsWithoutStatusAndTypeParameters }
) {
default(it, "FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS")
useTypes(resolvedDeclarationStatusImplType)
}
configureFieldInAllImplementations(
"typeParameters",
implementationPredicate = { it.type != "FirAnonymousFunctionImpl" && it.type in implementationsWithoutStatusAndTypeParameters }
) {
defaultEmptyList(it)
useTypes(resolvedDeclarationStatusImplType)
}
}
private fun configureAllImplementations() {
@@ -13,7 +13,7 @@ import java.io.File
fun main(args: Array<String>) {
val generationPath = args.firstOrNull()?.let { File(it) }
?: File("compiler/fir/tree/gen").absoluteFile
?: File("../../tree/gen").canonicalFile
NodeConfigurator.configureFields()
detectBaseTransformerTypes(FirTreeBuilder)
@@ -82,6 +82,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+field("resolvePhase", resolvePhaseType, withReplace = true).apply { isMutable = true }
+field("origin", declarationOriginType)
+field("attributes", declarationAttributesType)
shouldBeAbstractClass()
}
annotatedDeclaration.configure {
@@ -105,14 +106,13 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
callableMemberDeclaration.configure {
withArg("E", "FirCallableMemberDeclaration<E>")
parentArg(callableDeclaration, "E", "E")
parentArg(memberDeclaration, "E", "E")
+field("containerSource", type(DeserializedContainerSource::class), nullable = true)
+field("dispatchReceiverType", coneKotlinTypeType, nullable = true)
}
function.configure {
withArg("E", "FirFunction<E>")
parentArg(callableDeclaration, "E", "E")
parentArg(callableMemberDeclaration, "E", "E")
+symbol("FirFunctionSymbol", "E")
+fieldList(valueParameter, withReplace = true).withTransform()
+body(nullable = true, withReplace = true).withTransform()
@@ -124,10 +124,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+typeParameters
}
memberDeclaration.configure {
withArg("E", "FirMemberDeclaration<E>")
parentArg(annotatedDeclaration, "E", "E")
+typeParameterRefs
statusOwner.configure {
+status.withTransform()
}
@@ -269,7 +266,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
regularClass.configure {
parentArg(klass, "E", regularClass)
parentArg(memberDeclaration, "E", regularClass)
+name
+symbol("FirRegularClassSymbol")
+field("companionObject", regularClass, nullable = true).withTransform()
@@ -289,7 +285,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
typeAlias.configure {
+typeParameters
parentArg(classLikeDeclaration, "E", typeAlias)
parentArg(memberDeclaration, "E", typeAlias)
+name
+symbol("FirTypeAliasSymbol")
+field("expandedTypeRef", typeRef, withReplace = true).withTransform()
@@ -327,7 +322,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
simpleFunction.configure {
parentArg(function, "E", simpleFunction)
parentArg(callableMemberDeclaration, "E", simpleFunction)
+name
+symbol("FirNamedFunctionSymbol")
+annotations
@@ -340,16 +334,14 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
property.configure {
parentArg(variable, "E", property)
parentArg(callableMemberDeclaration, "E", property)
+symbol("FirPropertySymbol")
+field("backingFieldSymbol", backingFieldSymbolType)
+booleanField("isLocal")
+status
+typeParameters
}
propertyAccessor.configure {
parentArg(function, "E", propertyAccessor)
parentArg(callableMemberDeclaration, "E", propertyAccessor)
+symbol("FirPropertyAccessorSymbol")
+booleanField("isGetter")
+booleanField("isSetter")
@@ -374,7 +366,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
constructor.configure {
parentArg(function, "E", constructor)
parentArg(callableMemberDeclaration, "E", constructor)
+annotations
+symbol("FirConstructorSymbol")
+field("delegatedConstructor", delegatedConstructorCall, nullable = true).withTransform()
@@ -397,8 +388,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
variable.configure {
withArg("E", variable)
parentArg(callableDeclaration, "E", "E")
parentArg(annotatedDeclaration, "E", "E")
parentArg(callableMemberDeclaration, "E", "E")
+name
+symbol("FirVariableSymbol", "E")
+initializer.withTransform().withReplace()
@@ -418,12 +408,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
enumEntry.configure {
parentArg(variable, "E", enumEntry)
parentArg(callableMemberDeclaration, "E", enumEntry)
}
field.configure {
parentArg(variable, "E", field)
parentArg(callableMemberDeclaration, "E", field)
}
anonymousInitializer.configure {
@@ -91,3 +91,5 @@ val exhaustivenessStatusType = generatedType("expressions", "ExhaustivenessStatu
val callableReferenceMappedArgumentsType = type("fir.resolve.calls", "CallableReferenceMappedArguments")
val functionCallOrigin = type("fir.expressions", "FirFunctionCallOrigin")
val resolvedDeclarationStatusImplType = type("fir.declarations.impl", "FirResolvedDeclarationStatusImpl")
@@ -76,6 +76,10 @@ abstract class AbstractFieldConfigurator<T : AbstractFirTreeBuilder>(private val
fun shouldBeAnInterface() {
element.kind = Implementation.Kind.Interface
}
fun shouldBeAbstractClass() {
element.kind = Implementation.Kind.AbstractClass
}
}
fun Element.configure(block: ConfigureContext.() -> Unit) {
@@ -74,13 +74,13 @@ class Implementation(val element: Element, val name: String?) : FieldContainer,
val fieldsWithoutDefault by lazy { allFields.filter { it.defaultValueInImplementation == null } }
val fieldsWithDefault by lazy { allFields.filter { it.defaultValueInImplementation != null } }
enum class Kind(val title: String, val hasLeafBuilder: Boolean) {
Interface("interface", false),
FinalClass("class", true),
OpenClass("open class", true),
AbstractClass("abstract class", false),
SealedClass("sealed class", false),
SealedInterface("sealed interface", false),
Object("object", false)
enum class Kind(val title: String, val hasLeafBuilder: Boolean, val isInterface: Boolean) {
Interface("interface", hasLeafBuilder = false, isInterface = true),
FinalClass("class", hasLeafBuilder = true, isInterface = false),
OpenClass("open class", hasLeafBuilder = true, isInterface = false),
AbstractClass("abstract class", hasLeafBuilder = false, isInterface = false),
SealedClass("sealed class", hasLeafBuilder = false, isInterface = false),
SealedInterface("sealed interface", hasLeafBuilder = false, isInterface = true),
Object("object", hasLeafBuilder = false, isInterface = false),
}
}
@@ -11,6 +11,17 @@ import org.jetbrains.kotlin.fir.tree.generator.model.Implementation
import org.jetbrains.kotlin.fir.tree.generator.model.ImplementationWithArg
import org.jetbrains.kotlin.fir.tree.generator.model.KindOwner
/*
* Assume that we have element `E` with parents `P1, P2`
*
* Introduce variables E, P1, P2. If variable `X` is true then `X` is class, otherwise it is interface
*
* Build 2SAT function for it: (E || !P1) && (E || !P2) && (!P1 || !P2)
* Simple explanation:
* if `P1` is a class then `E` also should be a class
* if `P1` is a class then `P2` can not be a class (because both of them a parents of E`
*/
fun configureInterfacesAndAbstractClasses(builder: AbstractFirTreeBuilder) {
val elements = collectElements(builder)
val elementMapping = ElementMapping(elements)
@@ -21,7 +32,7 @@ fun configureInterfacesAndAbstractClasses(builder: AbstractFirTreeBuilder) {
updateSealedKinds(elements)
}
private class ElementMapping(elements: Collection<KindOwner>) {
private class ElementMapping(val elements: Collection<KindOwner>) {
private val varToElements: Map<Int, KindOwner> = elements.mapIndexed { index, element -> 2 * index to element.origin }.toMap() +
elements.mapIndexed { index, element -> 2 * index + 1 to element }.toMap()
private val elementsToVar: Map<KindOwner, Int> = elements.mapIndexed { index, element -> element.origin to index }.toMap()
@@ -89,17 +100,38 @@ private fun updateSealedKinds(elements: Collection<KindOwner>) {
}
private fun processRequirementsFromConfig(solution: MutableList<Boolean>, elementMapping: ElementMapping) {
fun processParents(element: KindOwner) {
fun forceParentsToBeInterfaces(element: KindOwner) {
val origin = element.origin
solution[elementMapping[origin]] = false
origin.allParents.forEach { processParents(it) }
val index = elementMapping[origin]
if (!solution[index]) return
solution[index] = false
origin.allParents.forEach { forceParentsToBeInterfaces(it) }
}
fun forceInheritorsToBeClasses(element: KindOwner) {
val queue = ArrayDeque<KindOwner>()
queue.add(element)
while (queue.isNotEmpty()) {
val e = queue.removeFirst().origin
val index = elementMapping[e]
if (solution[index]) continue
solution[index] = true
for (inheritor in elementMapping.elements) {
if (e in inheritor.allParents.map { it.origin }) {
queue.add(inheritor)
}
}
}
}
for (index in solution.indices) {
val element = elementMapping[index * 2]
if (element.kind != Implementation.Kind.Interface) continue
if (!solution[index]) continue
processParents(element)
val kind = element.kind ?: continue
if (kind.isInterface) {
forceParentsToBeInterfaces(element)
} else {
forceInheritorsToBeClasses(element)
}
}
}