[FIR] Introduce type parameter ref in generated tree

This commit is contained in:
simon.ogorodnik
2020-04-09 21:36:36 +03:00
parent 0f7a9c44b4
commit 7c56209cef
59 changed files with 382 additions and 94 deletions
@@ -22,14 +22,13 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpression() { abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpression(), FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val annotations: List<FirAnnotationCall> abstract override val annotations: List<FirAnnotationCall>
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameter>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference abstract override val controlFlowGraphReference: FirControlFlowGraphReference
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock? abstract override val body: FirBlock?
@@ -38,6 +37,7 @@ abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpr
abstract val label: FirLabel? abstract val label: FirLabel?
abstract val invocationKind: InvocationKind? abstract val invocationKind: InvocationKind?
abstract val isLambda: Boolean abstract val isLambda: Boolean
abstract override val typeParameters: List<FirTypeParameter>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitAnonymousFunction(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitAnonymousFunction(this, data)
@@ -25,6 +25,7 @@ abstract class FirAnonymousObject : FirClass<FirAnonymousObject>, FirExpression(
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val classKind: ClassKind abstract override val classKind: ClassKind
abstract override val superTypeRefs: List<FirTypeRef> abstract override val superTypeRefs: List<FirTypeRef>
abstract override val declarations: List<FirDeclaration> abstract override val declarations: List<FirDeclaration>
@@ -26,7 +26,7 @@ interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : Fi
override val returnTypeRef: FirTypeRef override val returnTypeRef: FirTypeRef
override val receiverTypeRef: FirTypeRef? override val receiverTypeRef: FirTypeRef?
override val symbol: FirCallableSymbol<F> override val symbol: FirCallableSymbol<F>
override val typeParameters: List<FirTypeParameter> override val typeParameters: List<FirTypeParameterRef>
override val status: FirDeclarationStatus override val status: FirDeclarationStatus
val containerSource: DeserializedContainerSource? val containerSource: DeserializedContainerSource?
@@ -21,10 +21,11 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
interface FirClass<F : FirClass<F>> : FirClassLikeDeclaration<F>, FirStatement, FirAnnotationContainer { interface FirClass<F : FirClass<F>> : FirClassLikeDeclaration<F>, FirStatement, FirAnnotationContainer, FirTypeParameterRefsOwner {
override val source: FirSourceElement? override val source: FirSourceElement?
override val session: FirSession override val session: FirSession
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val typeParameters: List<FirTypeParameterRef>
override val symbol: FirClassSymbol<F> override val symbol: FirClassSymbol<F>
val classKind: ClassKind val classKind: ClassKind
val superTypeRefs: List<FirTypeRef> val superTypeRefs: List<FirTypeRef>
@@ -22,13 +22,13 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirConstructor : FirPureAbstractElement(), FirFunction<FirConstructor>, FirCallableMemberDeclaration<FirConstructor> { abstract class FirConstructor : FirPureAbstractElement(), FirFunction<FirConstructor>, FirCallableMemberDeclaration<FirConstructor>, FirTypeParameterRefsOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameter> abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference abstract override val controlFlowGraphReference: FirControlFlowGraphReference
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
@@ -37,7 +37,7 @@ abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDecl
abstract override val getter: FirPropertyAccessor? abstract override val getter: FirPropertyAccessor?
abstract override val setter: FirPropertyAccessor? abstract override val setter: FirPropertyAccessor?
abstract override val annotations: List<FirAnnotationCall> abstract override val annotations: List<FirAnnotationCall>
abstract override val typeParameters: List<FirTypeParameter> abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
@@ -22,19 +22,19 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction<FirErrorFunction>, FirDiagnosticHolder { abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction<FirErrorFunction>, FirDiagnosticHolder, FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val annotations: List<FirAnnotationCall> abstract override val annotations: List<FirAnnotationCall>
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameter>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference abstract override val controlFlowGraphReference: FirControlFlowGraphReference
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock? abstract override val body: FirBlock?
abstract override val diagnostic: ConeDiagnostic abstract override val diagnostic: ConeDiagnostic
abstract override val symbol: FirErrorFunctionSymbol abstract override val symbol: FirErrorFunctionSymbol
abstract override val typeParameters: List<FirTypeParameter>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitErrorFunction(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitErrorFunction(this, data)
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirField : FirVariable<FirField>(), FirCallableMemberDeclaration<FirField> { abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCallableMemberDeclaration<FirField> {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
@@ -22,14 +22,14 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTargetElement, FirAnnotationContainer, FirTypeParametersOwner, FirStatement { interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTargetElement, FirAnnotationContainer, FirTypeParameterRefsOwner, FirStatement {
override val source: FirSourceElement? override val source: FirSourceElement?
override val session: FirSession override val session: FirSession
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val annotations: List<FirAnnotationCall> override val annotations: List<FirAnnotationCall>
override val returnTypeRef: FirTypeRef override val returnTypeRef: FirTypeRef
override val receiverTypeRef: FirTypeRef? override val receiverTypeRef: FirTypeRef?
override val typeParameters: List<FirTypeParameter> override val typeParameters: List<FirTypeParameterRef>
val controlFlowGraphReference: FirControlFlowGraphReference val controlFlowGraphReference: FirControlFlowGraphReference
override val symbol: FirFunctionSymbol<F> override val symbol: FirFunctionSymbol<F>
val valueParameters: List<FirValueParameter> val valueParameters: List<FirValueParameter>
@@ -21,7 +21,7 @@ interface FirMemberDeclaration : FirDeclaration, FirAnnotationContainer {
override val session: FirSession override val session: FirSession
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val annotations: List<FirAnnotationCall> override val annotations: List<FirAnnotationCall>
val typeParameters: List<FirTypeParameter> val typeParameters: List<FirTypeParameterRef>
val status: FirDeclarationStatus val status: FirDeclarationStatus
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitMemberDeclaration(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitMemberDeclaration(this, data)
@@ -21,13 +21,12 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPropertyAccessor>, FirContractDescriptionOwner { abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPropertyAccessor>, FirContractDescriptionOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameter>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference abstract override val controlFlowGraphReference: FirControlFlowGraphReference
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock? abstract override val body: FirBlock?
@@ -37,6 +36,7 @@ abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPr
abstract val isSetter: Boolean abstract val isSetter: Boolean
abstract val status: FirDeclarationStatus abstract val status: FirDeclarationStatus
abstract override val annotations: List<FirAnnotationCall> abstract override val annotations: List<FirAnnotationCall>
abstract override val typeParameters: List<FirTypeParameter>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitPropertyAccessor(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitPropertyAccessor(this, data)
@@ -22,12 +22,12 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration, FirTypeParametersOwner, FirClass<FirRegularClass> { abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration, FirTypeParameterRefsOwner, FirClass<FirRegularClass> {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val annotations: List<FirAnnotationCall> abstract override val annotations: List<FirAnnotationCall>
abstract override val typeParameters: List<FirTypeParameter> abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val classKind: ClassKind abstract override val classKind: ClassKind
abstract override val declarations: List<FirDeclaration> abstract override val declarations: List<FirDeclaration>
@@ -27,7 +27,7 @@ abstract class FirSealedClass : FirRegularClass() {
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val annotations: List<FirAnnotationCall> abstract override val annotations: List<FirAnnotationCall>
abstract override val typeParameters: List<FirTypeParameter> abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val classKind: ClassKind abstract override val classKind: ClassKind
abstract override val declarations: List<FirDeclaration> abstract override val declarations: List<FirDeclaration>
@@ -23,13 +23,12 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimpleFunction>, FirCallableMemberDeclaration<FirSimpleFunction>, FirContractDescriptionOwner { abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimpleFunction>, FirCallableMemberDeclaration<FirSimpleFunction>, FirContractDescriptionOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val typeParameters: List<FirTypeParameter>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference abstract override val controlFlowGraphReference: FirControlFlowGraphReference
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock? abstract override val body: FirBlock?
@@ -39,6 +38,7 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimp
abstract val name: Name abstract val name: Name
abstract override val symbol: FirFunctionSymbol<FirSimpleFunction> abstract override val symbol: FirFunctionSymbol<FirSimpleFunction>
abstract override val annotations: List<FirAnnotationCall> abstract override val annotations: List<FirAnnotationCall>
abstract override val typeParameters: List<FirTypeParameter>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitSimpleFunction(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitSimpleFunction(this, data)
@@ -23,8 +23,8 @@ abstract class FirTypeAlias : FirPureAbstractElement(), FirClassLikeDeclaration<
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val typeParameters: List<FirTypeParameter>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val typeParameters: List<FirTypeParameter>
abstract val name: Name abstract val name: Name
abstract override val symbol: FirTypeAliasSymbol abstract override val symbol: FirTypeAliasSymbol
abstract val expandedTypeRef: FirTypeRef abstract val expandedTypeRef: FirTypeRef
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
abstract class FirTypeParameter : FirPureAbstractElement(), FirDeclaration, FirSymbolOwner<FirTypeParameter>, FirAnnotationContainer { abstract class FirTypeParameter : FirPureAbstractElement(), FirTypeParameterRef, FirDeclaration, FirSymbolOwner<FirTypeParameter>, FirAnnotationContainer {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val session: FirSession abstract override val session: FirSession
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
@@ -0,0 +1,23 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
interface FirTypeParameterRef : FirElement {
override val source: FirSourceElement?
val symbol: FirTypeParameterSymbol
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeParameterRef(this, data)
}
@@ -0,0 +1,22 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
interface FirTypeParameterRefsOwner : FirElement {
override val source: FirSourceElement?
val typeParameters: List<FirTypeParameterRef>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeParameterRefsOwner(this, data)
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.visitors.* import org.jetbrains.kotlin.fir.visitors.*
@@ -14,9 +13,9 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY * DO NOT MODIFY IT MANUALLY
*/ */
interface FirTypeParametersOwner : FirElement { interface FirTypeParametersOwner : FirTypeParameterRefsOwner {
override val source: FirSourceElement? override val source: FirSourceElement?
val typeParameters: List<FirTypeParameter> override val typeParameters: List<FirTypeParameter>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeParametersOwner(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeParametersOwner(this, data)
} }
@@ -13,9 +13,9 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirClassBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder
import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterRefsOwnerBuilder
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
@@ -30,15 +30,15 @@ import org.jetbrains.kotlin.name.Name
*/ */
@FirBuilderDsl @FirBuilderDsl
interface AbstractFirRegularClassBuilder : FirClassBuilder, FirTypeParametersOwnerBuilder { interface AbstractFirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBuilder {
abstract override var source: FirSourceElement? abstract override var source: FirSourceElement?
abstract override val annotations: MutableList<FirAnnotationCall> abstract override val annotations: MutableList<FirAnnotationCall>
abstract override var session: FirSession abstract override var session: FirSession
abstract override val typeParameters: MutableList<FirTypeParameterRef>
abstract override var classKind: ClassKind abstract override var classKind: ClassKind
abstract override val superTypeRefs: MutableList<FirTypeRef> abstract override val superTypeRefs: MutableList<FirTypeRef>
abstract override val declarations: MutableList<FirDeclaration> abstract override val declarations: MutableList<FirDeclaration>
abstract override var scopeProvider: FirScopeProvider abstract override var scopeProvider: FirScopeProvider
abstract override val typeParameters: MutableList<FirTypeParameter>
abstract var resolvePhase: FirResolvePhase abstract var resolvePhase: FirResolvePhase
abstract var status: FirDeclarationStatus abstract var status: FirDeclarationStatus
abstract var name: Name abstract var name: Name
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -34,11 +34,11 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder {
abstract override val annotations: MutableList<FirAnnotationCall> abstract override val annotations: MutableList<FirAnnotationCall>
abstract override var session: FirSession abstract override var session: FirSession
abstract override var returnTypeRef: FirTypeRef abstract override var returnTypeRef: FirTypeRef
abstract override val typeParameters: MutableList<FirTypeParameter>
abstract override val valueParameters: MutableList<FirValueParameter> abstract override val valueParameters: MutableList<FirValueParameter>
abstract override var body: FirBlock? abstract override var body: FirBlock?
abstract var resolvePhase: FirResolvePhase abstract var resolvePhase: FirResolvePhase
abstract var receiverTypeRef: FirTypeRef? abstract var receiverTypeRef: FirTypeRef?
abstract val typeParameters: MutableList<FirTypeParameterRef>
abstract var controlFlowGraphReference: FirControlFlowGraphReference abstract var controlFlowGraphReference: FirControlFlowGraphReference
abstract var status: FirDeclarationStatus abstract var status: FirDeclarationStatus
abstract var containerSource: DeserializedContainerSource? abstract var containerSource: DeserializedContainerSource?
@@ -40,7 +40,6 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
override val annotations: MutableList<FirAnnotationCall> = mutableListOf() override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
var receiverTypeRef: FirTypeRef? = null var receiverTypeRef: FirTypeRef? = null
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null override var body: FirBlock? = null
@@ -49,6 +48,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
var label: FirLabel? = null var label: FirLabel? = null
var invocationKind: InvocationKind? = null var invocationKind: InvocationKind? = null
var isLambda: Boolean by kotlin.properties.Delegates.notNull<Boolean>() var isLambda: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
override fun build(): FirAnonymousFunction { override fun build(): FirAnonymousFunction {
return FirAnonymousFunctionImpl( return FirAnonymousFunctionImpl(
@@ -57,7 +57,6 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
annotations, annotations,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
typeParameters,
controlFlowGraphReference, controlFlowGraphReference,
valueParameters, valueParameters,
body, body,
@@ -66,6 +65,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
label, label,
invocationKind, invocationKind,
isLambda, isLambda,
typeParameters,
) )
} }
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousObjectImpl import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousObjectImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -36,6 +37,7 @@ class FirAnonymousObjectBuilder : FirClassBuilder, FirAnnotationContainerBuilder
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var session: FirSession override lateinit var session: FirSession
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override lateinit var classKind: ClassKind override lateinit var classKind: ClassKind
override val superTypeRefs: MutableList<FirTypeRef> = mutableListOf() override val superTypeRefs: MutableList<FirTypeRef> = mutableListOf()
override val declarations: MutableList<FirDeclaration> = mutableListOf() override val declarations: MutableList<FirDeclaration> = mutableListOf()
@@ -49,6 +51,7 @@ class FirAnonymousObjectBuilder : FirClassBuilder, FirAnnotationContainerBuilder
source, source,
session, session,
resolvePhase, resolvePhase,
typeParameters,
classKind, classKind,
superTypeRefs, superTypeRefs,
declarations, declarations,
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -27,6 +28,7 @@ interface FirClassBuilder : FirAnnotationContainerBuilder {
abstract override var source: FirSourceElement? abstract override var source: FirSourceElement?
abstract override val annotations: MutableList<FirAnnotationCall> abstract override val annotations: MutableList<FirAnnotationCall>
abstract var session: FirSession abstract var session: FirSession
abstract val typeParameters: MutableList<FirTypeParameterRef>
abstract var classKind: ClassKind abstract var classKind: ClassKind
abstract val superTypeRefs: MutableList<FirTypeRef> abstract val superTypeRefs: MutableList<FirTypeRef>
abstract val declarations: MutableList<FirDeclaration> abstract val declarations: MutableList<FirDeclaration>
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.AbstractFirRegularClassBuilder import org.jetbrains.kotlin.fir.declarations.builder.AbstractFirRegularClassBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirClassImpl import org.jetbrains.kotlin.fir.declarations.impl.FirClassImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -38,7 +38,7 @@ open class FirClassImplBuilder : AbstractFirRegularClassBuilder, FirAnnotationCo
override lateinit var session: FirSession override lateinit var session: FirSession
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override val annotations: MutableList<FirAnnotationCall> = mutableListOf() override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf() override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override lateinit var classKind: ClassKind override lateinit var classKind: ClassKind
override val declarations: MutableList<FirDeclaration> = mutableListOf() override val declarations: MutableList<FirDeclaration> = mutableListOf()
@@ -0,0 +1,42 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.impl.FirConstructedClassTypeParameterRef
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
@FirBuilderDsl
class FirConstructedClassTypeParameterRefBuilder {
var source: FirSourceElement? = null
lateinit var symbol: FirTypeParameterSymbol
fun build(): FirTypeParameterRef {
return FirConstructedClassTypeParameterRef(
source,
symbol,
)
}
}
@OptIn(ExperimentalContracts::class)
inline fun buildConstructedClassTypeParameterRef(init: FirConstructedClassTypeParameterRefBuilder.() -> Unit): FirTypeParameterRef {
contract {
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
}
return FirConstructedClassTypeParameterRefBuilder().apply(init).build()
}
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.builder.FirAbstractConstructorBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirAbstractConstructorBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirConstructorImpl import org.jetbrains.kotlin.fir.declarations.impl.FirConstructorImpl
@@ -39,7 +39,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
override var receiverTypeRef: FirTypeRef? = null override var receiverTypeRef: FirTypeRef? = null
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf() override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirEnumEntry import org.jetbrains.kotlin.fir.declarations.FirEnumEntry
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirEnumEntryImpl import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -40,7 +40,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
lateinit var symbol: FirVariableSymbol<FirEnumEntry> lateinit var symbol: FirVariableSymbol<FirEnumEntry>
var initializer: FirExpression? = null var initializer: FirExpression? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf() override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
val typeParameters: MutableList<FirTypeParameter> = mutableListOf() val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
lateinit var status: FirDeclarationStatus lateinit var status: FirDeclarationStatus
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
@@ -36,10 +36,10 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
lateinit var session: FirSession lateinit var session: FirSession
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override val annotations: MutableList<FirAnnotationCall> = mutableListOf() override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
val valueParameters: MutableList<FirValueParameter> = mutableListOf() val valueParameters: MutableList<FirValueParameter> = mutableListOf()
lateinit var diagnostic: ConeDiagnostic lateinit var diagnostic: ConeDiagnostic
lateinit var symbol: FirErrorFunctionSymbol lateinit var symbol: FirErrorFunctionSymbol
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
override fun build(): FirErrorFunction { override fun build(): FirErrorFunction {
return FirErrorFunctionImpl( return FirErrorFunctionImpl(
@@ -47,10 +47,10 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
session, session,
resolvePhase, resolvePhase,
annotations, annotations,
typeParameters,
valueParameters, valueParameters,
diagnostic, diagnostic,
symbol, symbol,
typeParameters,
) )
} }
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirFunction
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirBlock
@@ -28,7 +27,6 @@ interface FirFunctionBuilder : FirAnnotationContainerBuilder {
abstract override val annotations: MutableList<FirAnnotationCall> abstract override val annotations: MutableList<FirAnnotationCall>
abstract var session: FirSession abstract var session: FirSession
abstract var returnTypeRef: FirTypeRef abstract var returnTypeRef: FirTypeRef
abstract val typeParameters: MutableList<FirTypeParameter>
abstract val valueParameters: MutableList<FirValueParameter> abstract val valueParameters: MutableList<FirValueParameter>
abstract var body: FirBlock? abstract var body: FirBlock?
override fun build(): FirFunction<*> override fun build(): FirFunction<*>
@@ -0,0 +1,42 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.impl.FirOuterClassTypeParameterRef
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
@FirBuilderDsl
class FirOuterClassTypeParameterRefBuilder {
var source: FirSourceElement? = null
lateinit var symbol: FirTypeParameterSymbol
fun build(): FirTypeParameterRef {
return FirOuterClassTypeParameterRef(
source,
symbol,
)
}
}
@OptIn(ExperimentalContracts::class)
inline fun buildOuterClassTypeParameterRef(init: FirOuterClassTypeParameterRefBuilder.() -> Unit): FirTypeParameterRef {
contract {
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
}
return FirOuterClassTypeParameterRefBuilder().apply(init).build()
}
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.builder.FirAbstractConstructorBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirAbstractConstructorBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor
@@ -39,7 +39,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
override var receiverTypeRef: FirTypeRef? = null override var receiverTypeRef: FirTypeRef? = null
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf() override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
@@ -40,13 +40,13 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
override lateinit var session: FirSession override lateinit var session: FirSession
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null override var body: FirBlock? = null
lateinit var symbol: FirPropertyAccessorSymbol lateinit var symbol: FirPropertyAccessorSymbol
var isGetter: Boolean by kotlin.properties.Delegates.notNull<Boolean>() var isGetter: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
lateinit var status: FirDeclarationStatus lateinit var status: FirDeclarationStatus
override val annotations: MutableList<FirAnnotationCall> = mutableListOf() override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
override fun build(): FirPropertyAccessor { override fun build(): FirPropertyAccessor {
@@ -55,13 +55,13 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
session, session,
resolvePhase, resolvePhase,
returnTypeRef, returnTypeRef,
typeParameters,
valueParameters, valueParameters,
body, body,
symbol, symbol,
isGetter, isGetter,
status, status,
annotations, annotations,
typeParameters,
) )
} }
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirSealedClass import org.jetbrains.kotlin.fir.declarations.FirSealedClass
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.builder.AbstractFirRegularClassBuilder import org.jetbrains.kotlin.fir.declarations.builder.AbstractFirRegularClassBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirSealedClassImpl import org.jetbrains.kotlin.fir.declarations.impl.FirSealedClassImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -40,7 +40,7 @@ class FirSealedClassBuilder : AbstractFirRegularClassBuilder, FirAnnotationConta
override lateinit var session: FirSession override lateinit var session: FirSession
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override val annotations: MutableList<FirAnnotationCall> = mutableListOf() override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf() override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override lateinit var classKind: ClassKind override lateinit var classKind: ClassKind
override val declarations: MutableList<FirDeclaration> = mutableListOf() override val declarations: MutableList<FirDeclaration> = mutableListOf()
@@ -43,7 +43,6 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
open var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR open var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
open var receiverTypeRef: FirTypeRef? = null open var receiverTypeRef: FirTypeRef? = null
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null override var body: FirBlock? = null
open lateinit var status: FirDeclarationStatus open lateinit var status: FirDeclarationStatus
@@ -51,6 +50,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
open lateinit var name: Name open lateinit var name: Name
open lateinit var symbol: FirFunctionSymbol<FirSimpleFunction> open lateinit var symbol: FirFunctionSymbol<FirSimpleFunction>
override val annotations: MutableList<FirAnnotationCall> = mutableListOf() override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
override fun build(): FirSimpleFunction { override fun build(): FirSimpleFunction {
@@ -60,7 +60,6 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
resolvePhase, resolvePhase,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
typeParameters,
valueParameters, valueParameters,
body, body,
status, status,
@@ -68,6 +67,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
name, name,
symbol, symbol,
annotations, annotations,
typeParameters,
) )
} }
@@ -32,8 +32,8 @@ class FirTypeAliasBuilder : FirTypeParametersOwnerBuilder, FirAnnotationContaine
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
lateinit var session: FirSession lateinit var session: FirSession
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
lateinit var status: FirDeclarationStatus lateinit var status: FirDeclarationStatus
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
lateinit var name: Name lateinit var name: Name
lateinit var symbol: FirTypeAliasSymbol lateinit var symbol: FirTypeAliasSymbol
lateinit var expandedTypeRef: FirTypeRef lateinit var expandedTypeRef: FirTypeRef
@@ -44,8 +44,8 @@ class FirTypeAliasBuilder : FirTypeParametersOwnerBuilder, FirAnnotationContaine
source, source,
session, session,
resolvePhase, resolvePhase,
typeParameters,
status, status,
typeParameters,
name, name,
symbol, symbol,
expandedTypeRef, expandedTypeRef,
@@ -0,0 +1,25 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations.builder
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
@FirBuilderDsl
interface FirTypeParameterRefsOwnerBuilder {
abstract var source: FirSourceElement?
abstract val typeParameters: MutableList<FirTypeParameterRef>
fun build(): FirTypeParameterRefsOwner
}
@@ -31,7 +31,6 @@ internal class FirAnonymousFunctionImpl(
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override val typeParameters: MutableList<FirTypeParameter>,
override var controlFlowGraphReference: FirControlFlowGraphReference, override var controlFlowGraphReference: FirControlFlowGraphReference,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?, override var body: FirBlock?,
@@ -40,6 +39,7 @@ internal class FirAnonymousFunctionImpl(
override var label: FirLabel?, override var label: FirLabel?,
override var invocationKind: InvocationKind?, override var invocationKind: InvocationKind?,
override val isLambda: Boolean, override val isLambda: Boolean,
override val typeParameters: MutableList<FirTypeParameter>,
) : FirAnonymousFunction() { ) : FirAnonymousFunction() {
override var resolvePhase: FirResolvePhase = FirResolvePhase.DECLARATIONS override var resolvePhase: FirResolvePhase = FirResolvePhase.DECLARATIONS
@@ -51,24 +51,24 @@ internal class FirAnonymousFunctionImpl(
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
controlFlowGraphReference.accept(visitor, data) controlFlowGraphReference.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data) body?.accept(visitor, data)
typeRef.accept(visitor, data) typeRef.accept(visitor, data)
label?.accept(visitor, data) label?.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data) transformReceiverTypeRef(transformer, data)
typeParameters.transformInplace(transformer, data)
transformControlFlowGraphReference(transformer, data) transformControlFlowGraphReference(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
body = body?.transformSingle(transformer, data) body = body?.transformSingle(transformer, data)
typeRef = typeRef.transformSingle(transformer, data) typeRef = typeRef.transformSingle(transformer, data)
label = label?.transformSingle(transformer, data) label = label?.transformSingle(transformer, data)
typeParameters.transformInplace(transformer, data)
return this return this
} }
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference
@@ -28,6 +29,7 @@ internal class FirAnonymousObjectImpl(
override val source: FirSourceElement?, override val source: FirSourceElement?,
override val session: FirSession, override val session: FirSession,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val typeParameters: MutableList<FirTypeParameterRef>,
override val classKind: ClassKind, override val classKind: ClassKind,
override val superTypeRefs: MutableList<FirTypeRef>, override val superTypeRefs: MutableList<FirTypeRef>,
override val declarations: MutableList<FirDeclaration>, override val declarations: MutableList<FirDeclaration>,
@@ -43,6 +45,7 @@ internal class FirAnonymousObjectImpl(
} }
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeParameters.forEach { it.accept(visitor, data) }
superTypeRefs.forEach { it.accept(visitor, data) } superTypeRefs.forEach { it.accept(visitor, data) }
declarations.forEach { it.accept(visitor, data) } declarations.forEach { it.accept(visitor, data) }
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
@@ -51,6 +54,7 @@ internal class FirAnonymousObjectImpl(
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnonymousObjectImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnonymousObjectImpl {
typeParameters.transformInplace(transformer, data)
superTypeRefs.transformInplace(transformer, data) superTypeRefs.transformInplace(transformer, data)
declarations.transformInplace(transformer, data) declarations.transformInplace(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirAnnotationCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference
@@ -32,7 +32,7 @@ internal class FirClassImpl(
override val session: FirSession, override val session: FirSession,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>, override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override val classKind: ClassKind, override val classKind: ClassKind,
override val declarations: MutableList<FirDeclaration>, override val declarations: MutableList<FirDeclaration>,
@@ -0,0 +1,28 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
internal class FirConstructedClassTypeParameterRef(
override val source: FirSourceElement?,
override val symbol: FirTypeParameterSymbol,
) : FirPureAbstractElement(), FirTypeParameterRef {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirConstructedClassTypeParameterRef {
return this
}
}
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirBlock
@@ -33,7 +33,7 @@ internal class FirConstructorImpl(
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override val typeParameters: MutableList<FirTypeParameter>, override val typeParameters: MutableList<FirTypeParameterRef>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirEnumEntry import org.jetbrains.kotlin.fir.declarations.FirEnumEntry
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
@@ -35,7 +35,7 @@ internal class FirEnumEntryImpl(
override val symbol: FirVariableSymbol<FirEnumEntry>, override val symbol: FirVariableSymbol<FirEnumEntry>,
override var initializer: FirExpression?, override var initializer: FirExpression?,
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>, override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
) : FirEnumEntry() { ) : FirEnumEntry() {
@@ -31,10 +31,10 @@ internal class FirErrorFunctionImpl(
override val session: FirSession, override val session: FirSession,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override val diagnostic: ConeDiagnostic, override val diagnostic: ConeDiagnostic,
override val symbol: FirErrorFunctionSymbol, override val symbol: FirErrorFunctionSymbol,
override val typeParameters: MutableList<FirTypeParameter>,
) : FirErrorFunction() { ) : FirErrorFunction() {
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, diagnostic) override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, diagnostic)
override val receiverTypeRef: FirTypeRef? get() = null override val receiverTypeRef: FirTypeRef? get() = null
@@ -48,17 +48,17 @@ internal class FirErrorFunctionImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
controlFlowGraphReference.accept(visitor, data) controlFlowGraphReference.accept(visitor, data)
valueParameters.forEach { it.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 { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
typeParameters.transformInplace(transformer, data)
transformControlFlowGraphReference(transformer, data) transformControlFlowGraphReference(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
typeParameters.transformInplace(transformer, data)
return this return this
} }
@@ -0,0 +1,28 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
internal class FirOuterClassTypeParameterRef(
override val source: FirSourceElement?,
override val symbol: FirTypeParameterSymbol,
) : FirPureAbstractElement(), FirTypeParameterRef {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirOuterClassTypeParameterRef {
return this
}
}
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase 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.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirBlock
@@ -33,7 +33,7 @@ internal class FirPrimaryConstructor(
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override val typeParameters: MutableList<FirTypeParameter>, override val typeParameters: MutableList<FirTypeParameterRef>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
@@ -34,13 +34,13 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override val session: FirSession, override val session: FirSession,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override val typeParameters: MutableList<FirTypeParameter>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?, override var body: FirBlock?,
override val symbol: FirPropertyAccessorSymbol, override val symbol: FirPropertyAccessorSymbol,
override val isGetter: Boolean, override val isGetter: Boolean,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>,
) : FirPropertyAccessor() { ) : FirPropertyAccessor() {
override val receiverTypeRef: FirTypeRef? get() = null override val receiverTypeRef: FirTypeRef? get() = null
override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference
@@ -53,24 +53,24 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
controlFlowGraphReference.accept(visitor, data) controlFlowGraphReference.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data) body?.accept(visitor, data)
contractDescription.accept(visitor, data) contractDescription.accept(visitor, data)
status.accept(visitor, data) status.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
typeParameters.forEach { it.accept(visitor, data) }
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
typeParameters.transformInplace(transformer, data)
transformControlFlowGraphReference(transformer, data) transformControlFlowGraphReference(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
body = body?.transformSingle(transformer, data) body = body?.transformSingle(transformer, data)
transformContractDescription(transformer, data) transformContractDescription(transformer, data)
transformStatus(transformer, data) transformStatus(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
return this return this
} }
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirSealedClass import org.jetbrains.kotlin.fir.declarations.FirSealedClass
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.FirAnnotationCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference
@@ -34,7 +34,7 @@ internal class FirSealedClassImpl(
override val session: FirSession, override val session: FirSession,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>, override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override val classKind: ClassKind, override val classKind: ClassKind,
override val declarations: MutableList<FirDeclaration>, override val declarations: MutableList<FirDeclaration>,
@@ -36,7 +36,6 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor(
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override val typeParameters: MutableList<FirTypeParameter>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?, override var body: FirBlock?,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
@@ -44,6 +43,7 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor(
override val name: Name, override val name: Name,
override val symbol: FirFunctionSymbol<FirSimpleFunction>, override val symbol: FirFunctionSymbol<FirSimpleFunction>,
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>,
) : FirSimpleFunction() { ) : FirSimpleFunction() {
override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference
override var contractDescription: FirContractDescription = FirEmptyContractDescription override var contractDescription: FirContractDescription = FirEmptyContractDescription
@@ -55,25 +55,25 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
controlFlowGraphReference.accept(visitor, data) controlFlowGraphReference.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data) body?.accept(visitor, data)
status.accept(visitor, data) status.accept(visitor, data)
contractDescription.accept(visitor, data) contractDescription.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
typeParameters.forEach { it.accept(visitor, data) }
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data) transformReceiverTypeRef(transformer, data)
typeParameters.transformInplace(transformer, data)
transformControlFlowGraphReference(transformer, data) transformControlFlowGraphReference(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
body = body?.transformSingle(transformer, data) body = body?.transformSingle(transformer, data)
transformStatus(transformer, data) transformStatus(transformer, data)
transformContractDescription(transformer, data) transformContractDescription(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
typeParameters.transformInplace(transformer, data)
return this return this
} }
@@ -26,8 +26,8 @@ internal class FirTypeAliasImpl(
override val source: FirSourceElement?, override val source: FirSourceElement?,
override val session: FirSession, override val session: FirSession,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val typeParameters: MutableList<FirTypeParameter>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override val typeParameters: MutableList<FirTypeParameter>,
override val name: Name, override val name: Name,
override val symbol: FirTypeAliasSymbol, override val symbol: FirTypeAliasSymbol,
override var expandedTypeRef: FirTypeRef, override var expandedTypeRef: FirTypeRef,
@@ -38,15 +38,15 @@ internal class FirTypeAliasImpl(
} }
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data) status.accept(visitor, data)
typeParameters.forEach { it.accept(visitor, data) }
expandedTypeRef.accept(visitor, data) expandedTypeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirTypeAliasImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirTypeAliasImpl {
typeParameters.transformInplace(transformer, data)
transformStatus(transformer, data) transformStatus(transformer, data)
typeParameters.transformInplace(transformer, data)
expandedTypeRef = expandedTypeRef.transformSingle(transformer, data) expandedTypeRef = expandedTypeRef.transformSingle(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
return this return this
@@ -23,7 +23,9 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter 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.FirTypeParametersOwner
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
@@ -199,10 +201,18 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformElement(callableDeclaration, data) return transformElement(callableDeclaration, data)
} }
open fun transformTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): CompositeTransformResult<FirTypeParameterRef> {
return transformElement(typeParameterRef, data)
}
open fun transformTypeParameter(typeParameter: FirTypeParameter, data: D): CompositeTransformResult<FirDeclaration> { open fun transformTypeParameter(typeParameter: FirTypeParameter, data: D): CompositeTransformResult<FirDeclaration> {
return transformElement(typeParameter, data) return transformElement(typeParameter, data)
} }
open fun transformTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): CompositeTransformResult<FirTypeParameterRefsOwner> {
return transformElement(typeParameterRefsOwner, data)
}
open fun transformTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): CompositeTransformResult<FirTypeParametersOwner> { open fun transformTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): CompositeTransformResult<FirTypeParametersOwner> {
return transformElement(typeParametersOwner, data) return transformElement(typeParametersOwner, data)
} }
@@ -659,10 +669,18 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformCallableDeclaration(callableDeclaration, data) return transformCallableDeclaration(callableDeclaration, data)
} }
final override fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): CompositeTransformResult<FirTypeParameterRef> {
return transformTypeParameterRef(typeParameterRef, data)
}
final override fun visitTypeParameter(typeParameter: FirTypeParameter, data: D): CompositeTransformResult<FirDeclaration> { final override fun visitTypeParameter(typeParameter: FirTypeParameter, data: D): CompositeTransformResult<FirDeclaration> {
return transformTypeParameter(typeParameter, data) return transformTypeParameter(typeParameter, data)
} }
final override fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): CompositeTransformResult<FirTypeParameterRefsOwner> {
return transformTypeParameterRefsOwner(typeParameterRefsOwner, data)
}
final override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): CompositeTransformResult<FirTypeParametersOwner> { final override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): CompositeTransformResult<FirTypeParametersOwner> {
return transformTypeParametersOwner(typeParametersOwner, data) return transformTypeParametersOwner(typeParametersOwner, data)
} }
@@ -23,7 +23,9 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter 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.FirTypeParametersOwner
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
@@ -163,8 +165,12 @@ abstract class FirVisitor<out R, in D> {
open fun <F : FirCallableDeclaration<F>> visitCallableDeclaration(callableDeclaration: FirCallableDeclaration<F>, data: D): R = visitElement(callableDeclaration, data) open fun <F : FirCallableDeclaration<F>> visitCallableDeclaration(callableDeclaration: FirCallableDeclaration<F>, data: D): R = visitElement(callableDeclaration, data)
open fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): R = visitElement(typeParameterRef, data)
open fun visitTypeParameter(typeParameter: FirTypeParameter, data: D): R = visitElement(typeParameter, data) open fun visitTypeParameter(typeParameter: FirTypeParameter, data: D): R = visitElement(typeParameter, data)
open fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): R = visitElement(typeParameterRefsOwner, data)
open fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): R = visitElement(typeParametersOwner, data) open fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): R = visitElement(typeParametersOwner, data)
open fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration, data: D): R = visitElement(memberDeclaration, data) open fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration, data: D): R = visitElement(memberDeclaration, data)
@@ -23,7 +23,9 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter 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.FirTypeParametersOwner
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
@@ -197,10 +199,18 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(callableDeclaration) visitElement(callableDeclaration)
} }
open fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef) {
visitElement(typeParameterRef)
}
open fun visitTypeParameter(typeParameter: FirTypeParameter) { open fun visitTypeParameter(typeParameter: FirTypeParameter) {
visitElement(typeParameter) visitElement(typeParameter)
} }
open fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner) {
visitElement(typeParameterRefsOwner)
}
open fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner) { open fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner) {
visitElement(typeParametersOwner) visitElement(typeParametersOwner)
} }
@@ -657,10 +667,18 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitCallableDeclaration(callableDeclaration) visitCallableDeclaration(callableDeclaration)
} }
final override fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: Nothing?) {
visitTypeParameterRef(typeParameterRef)
}
final override fun visitTypeParameter(typeParameter: FirTypeParameter, data: Nothing?) { final override fun visitTypeParameter(typeParameter: FirTypeParameter, data: Nothing?) {
visitTypeParameter(typeParameter) visitTypeParameter(typeParameter)
} }
final override fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: Nothing?) {
visitTypeParameterRefsOwner(typeParameterRefsOwner)
}
final override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: Nothing?) { final override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: Nothing?) {
visitTypeParametersOwner(typeParametersOwner) visitTypeParametersOwner(typeParametersOwner)
} }
@@ -26,6 +26,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
fields from typeParametersOwner fields from typeParametersOwner
} }
val typeParameterRefsOwnerBuilder by builder {
fields from typeParameterRefsOwner
}
val classBuilder by builder { val classBuilder by builder {
parents += annotationContainerBuilder parents += annotationContainerBuilder
fields from klass without listOf("symbol", "resolvePhase") fields from klass without listOf("symbol", "resolvePhase")
@@ -33,7 +37,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
val regularClassBuilder by builder("AbstractFirRegularClassBuilder") { val regularClassBuilder by builder("AbstractFirRegularClassBuilder") {
parents += classBuilder parents += classBuilder
parents += typeParametersOwnerBuilder parents += typeParameterRefsOwnerBuilder
fields from regularClass fields from regularClass
} }
@@ -51,7 +55,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
val functionBuilder by builder { val functionBuilder by builder {
parents += annotationContainerBuilder parents += annotationContainerBuilder
fields from function without listOf("symbol", "resolvePhase", "controlFlowGraphReference", "receiverTypeRef") fields from function without listOf("symbol", "resolvePhase", "controlFlowGraphReference", "receiverTypeRef", "typeParameters")
} }
val loopJumpBuilder by builder { val loopJumpBuilder by builder {
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.declarationStatus
import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.expression import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.expression
import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.reference import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.reference
import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.typeParameter import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.typeParameter
import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.typeParameterRef
import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.typeProjection import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.typeProjection
import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.typeRef import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.typeRef
import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.valueParameter import org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.valueParameter
@@ -59,7 +60,9 @@ object FieldSets {
val valueParameters = fieldList(valueParameter) val valueParameters = fieldList(valueParameter)
val typeParameters = fieldList(typeParameter) val typeParameters = fieldList("typeParameters", typeParameter)
val typeParameterRefs = fieldList("typeParameters", typeParameterRef)
val name = field(nameType) val name = field(nameType)
@@ -29,32 +29,34 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val anonymousInitializer = element("AnonymousInitializer", Declaration, declaration, symbolOwner) val anonymousInitializer = element("AnonymousInitializer", Declaration, declaration, symbolOwner)
val typedDeclaration = element("TypedDeclaration", Declaration, declaration, annotationContainer) val typedDeclaration = element("TypedDeclaration", Declaration, declaration, annotationContainer)
val callableDeclaration = element("CallableDeclaration", Declaration, typedDeclaration, symbolOwner) val callableDeclaration = element("CallableDeclaration", Declaration, typedDeclaration, symbolOwner)
val typeParameter = element("TypeParameter", Declaration, declaration, symbolOwner, annotationContainer) val typeParameterRef = element("TypeParameterRef", Declaration)
val typeParametersOwner = element("TypeParametersOwner", Declaration) val typeParameter = element("TypeParameter", Declaration, typeParameterRef, declaration, symbolOwner, annotationContainer)
val typeParameterRefsOwner = element("TypeParameterRefsOwner", Declaration)
val typeParametersOwner = element("TypeParametersOwner", Declaration, typeParameterRefsOwner)
val memberDeclaration = element("MemberDeclaration", Declaration, declaration, annotationContainer) val memberDeclaration = element("MemberDeclaration", Declaration, declaration, annotationContainer)
val callableMemberDeclaration = element("CallableMemberDeclaration", Declaration, callableDeclaration, memberDeclaration) val callableMemberDeclaration = element("CallableMemberDeclaration", Declaration, callableDeclaration, memberDeclaration)
val variable = element("Variable", Declaration, callableDeclaration, declaration, statement) val variable = element("Variable", Declaration, callableDeclaration, declaration, statement)
val valueParameter = element("ValueParameter", Declaration, variable) val valueParameter = element("ValueParameter", Declaration, variable)
val property = element("Property", Declaration, variable, typeParametersOwner, callableMemberDeclaration) val property = element("Property", Declaration, variable, typeParametersOwner, callableMemberDeclaration)
val field = element("Field", Declaration, variable, callableMemberDeclaration) val field = element("Field", Declaration, variable, typeParametersOwner, callableMemberDeclaration)
val enumEntry = element("EnumEntry", Declaration, variable, callableMemberDeclaration) val enumEntry = element("EnumEntry", Declaration, variable, callableMemberDeclaration)
val classLikeDeclaration = element("ClassLikeDeclaration", Declaration, declaration, statement, symbolOwner) val classLikeDeclaration = element("ClassLikeDeclaration", Declaration, declaration, statement, symbolOwner)
val klass = element("Class", Declaration, classLikeDeclaration, statement, annotationContainer) val klass = element("Class", Declaration, classLikeDeclaration, statement, annotationContainer, typeParameterRefsOwner)
val regularClass = element("RegularClass", Declaration, memberDeclaration, typeParametersOwner, klass) val regularClass = element("RegularClass", Declaration, memberDeclaration, typeParameterRefsOwner, klass)
val sealedClass = element("SealedClass", Declaration, regularClass) val sealedClass = element("SealedClass", Declaration, regularClass)
val typeAlias = element("TypeAlias", Declaration, classLikeDeclaration, memberDeclaration, typeParametersOwner) val typeAlias = element("TypeAlias", Declaration, classLikeDeclaration, memberDeclaration, typeParametersOwner)
val function = element("Function", Declaration, callableDeclaration, targetElement, annotationContainer, typeParametersOwner, statement) val function = element("Function", Declaration, callableDeclaration, targetElement, annotationContainer, typeParameterRefsOwner, statement)
val contractDescriptionOwner = element("ContractDescriptionOwner", Declaration) val contractDescriptionOwner = element("ContractDescriptionOwner", Declaration)
val simpleFunction = element("SimpleFunction", Declaration, function, callableMemberDeclaration, contractDescriptionOwner) val simpleFunction = element("SimpleFunction", Declaration, function, callableMemberDeclaration, contractDescriptionOwner, typeParametersOwner)
val propertyAccessor = element("PropertyAccessor", Declaration, function, contractDescriptionOwner) val propertyAccessor = element("PropertyAccessor", Declaration, function, contractDescriptionOwner, typeParametersOwner)
val constructor = element("Constructor", Declaration, function, callableMemberDeclaration) val constructor = element("Constructor", Declaration, function, callableMemberDeclaration, typeParameterRefsOwner)
val file = element("File", Declaration, annotationContainer, declaration) val file = element("File", Declaration, annotationContainer, declaration)
val anonymousFunction = element("AnonymousFunction", Declaration, function, expression) val anonymousFunction = element("AnonymousFunction", Declaration, function, expression, typeParametersOwner)
val anonymousObject = element("AnonymousObject", Declaration, klass, expression) val anonymousObject = element("AnonymousObject", Declaration, klass, expression)
val diagnosticHolder = element("DiagnosticHolder", Diagnostics) val diagnosticHolder = element("DiagnosticHolder", Diagnostics)
@@ -92,7 +94,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val arraySetCall = element("AugmentedArraySetCall", Expression, statement) val arraySetCall = element("AugmentedArraySetCall", Expression, statement)
val classReferenceExpression = element("ClassReferenceExpression", Expression, expression) val classReferenceExpression = element("ClassReferenceExpression", Expression, expression)
val errorExpression = element("ErrorExpression", Expression, expression, diagnosticHolder) val errorExpression = element("ErrorExpression", Expression, expression, diagnosticHolder)
val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder) val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder, typeParametersOwner)
val qualifiedAccessExpression = element("QualifiedAccessExpression", Expression, expression, qualifiedAccess) val qualifiedAccessExpression = element("QualifiedAccessExpression", Expression, expression, qualifiedAccess)
val functionCall = element("FunctionCall", Expression, qualifiedAccessExpression, call) val functionCall = element("FunctionCall", Expression, qualifiedAccessExpression, call)
val delegatedConstructorCall = element("DelegatedConstructorCall", Expression, resolvable, call) val delegatedConstructorCall = element("DelegatedConstructorCall", Expression, resolvable, call)
@@ -31,6 +31,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
} }
} }
impl(typeParameterRef, "FirOuterClassTypeParameterRef")
impl(typeParameterRef, "FirConstructedClassTypeParameterRef")
noImpl(declarationStatus) noImpl(declarationStatus)
noImpl(resolvedDeclarationStatus) noImpl(resolvedDeclarationStatus)
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.tree.generator.FieldSets.superTypeRefs
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.symbol import org.jetbrains.kotlin.fir.tree.generator.FieldSets.symbol
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.symbolWithPackage import org.jetbrains.kotlin.fir.tree.generator.FieldSets.symbolWithPackage
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.typeArguments import org.jetbrains.kotlin.fir.tree.generator.FieldSets.typeArguments
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.typeParameterRefs
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.typeParameters import org.jetbrains.kotlin.fir.tree.generator.FieldSets.typeParameters
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.typeRefField import org.jetbrains.kotlin.fir.tree.generator.FieldSets.typeRefField
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.valueParameters import org.jetbrains.kotlin.fir.tree.generator.FieldSets.valueParameters
@@ -48,10 +49,18 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+symbolWithPackage("fir.symbols", "AbstractFirBasedSymbol", "E") +symbolWithPackage("fir.symbols", "AbstractFirBasedSymbol", "E")
} }
typeParameterRef.configure {
+symbol(typeParameterSymbolType.type)
}
typeParametersOwner.configure { typeParametersOwner.configure {
+typeParameters +typeParameters
} }
typeParameterRefsOwner.configure {
+typeParameterRefs
}
resolvable.configure { resolvable.configure {
+field("calleeReference", reference).withTransform() +field("calleeReference", reference).withTransform()
} }
@@ -94,10 +103,11 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
errorFunction.configure { errorFunction.configure {
parentArg(function, "F", errorFunction) parentArg(function, "F", errorFunction)
+symbol("FirErrorFunctionSymbol") +symbol("FirErrorFunctionSymbol")
+typeParameters
} }
memberDeclaration.configure { memberDeclaration.configure {
+typeParameters +typeParameterRefs
+status.withTransform() +status.withTransform()
} }
@@ -245,6 +255,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
} }
typeAlias.configure { typeAlias.configure {
+typeParameters
parentArg(classLikeDeclaration, "F", typeAlias) parentArg(classLikeDeclaration, "F", typeAlias)
+name +name
+symbol("FirTypeAliasSymbol") +symbol("FirTypeAliasSymbol")
@@ -260,6 +271,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
isMutable = true isMutable = true
} }
+booleanField("isLambda") +booleanField("isLambda")
+typeParameters
} }
typeParameter.configure { typeParameter.configure {
@@ -278,6 +290,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+name +name
+symbol("FirFunctionSymbol<FirSimpleFunction>") +symbol("FirFunctionSymbol<FirSimpleFunction>")
+annotations +annotations
+typeParameters
} }
contractDescriptionOwner.configure { contractDescriptionOwner.configure {
@@ -302,6 +315,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+booleanField("isSetter") +booleanField("isSetter")
+status.withTransform() +status.withTransform()
+annotations +annotations
+typeParameters
} }
declarationStatus.configure { declarationStatus.configure {
@@ -97,10 +97,13 @@ fun SmartPrinter.printImplementation(implementation: Implementation) {
} }
} }
element.allFields.filter { it.type.contains("Symbol") && it !is FieldList } element.allFields.filter { it.type.contains("Symbol") && it !is FieldList }
.takeIf { .takeIf {
it.isNotEmpty() && !isInterface && !isAbstract && it.isNotEmpty() && !isInterface && !isAbstract &&
!element.type.contains("Reference") && !element.type.contains("ResolvedQualifier") !element.type.contains("Reference")
&& !element.type.contains("ResolvedQualifier")
&& !element.type.endsWith("Ref")
} }
?.let { symbolFields -> ?.let { symbolFields ->
println("init {") println("init {")