diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt index f185d09ad5f..abbb3ce0402 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirFieldBuilder import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.languageVersionSettings +import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -56,7 +57,7 @@ class FirJavaField @FirImplementationDetail constructor( override val getter: FirPropertyAccessor? get() = null override val setter: FirPropertyAccessor? get() = null override val backingField: FirBackingField? = null - + override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null override val origin: FirDeclarationOrigin get() = FirDeclarationOrigin.Java @@ -153,6 +154,8 @@ class FirJavaField @FirImplementationDetail constructor( override fun replaceGetter(newGetter: FirPropertyAccessor?) {} override fun replaceSetter(newSetter: FirPropertyAccessor?) {} + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {} } @FirBuilderDsl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt index 76f1bc54e12..5b9b0f7f5d6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -22,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirField : FirVariable() { +abstract class FirField : FirVariable(), FirControlFlowGraphOwner { abstract override val source: KtSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -44,6 +45,7 @@ abstract class FirField : FirVariable() { abstract override val setter: FirPropertyAccessor? abstract override val backingField: FirBackingField? abstract override val annotations: List + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val symbol: FirFieldSymbol override fun accept(visitor: FirVisitor, data: D): R = visitor.visitField(this, data) @@ -66,6 +68,8 @@ abstract class FirField : FirVariable() { abstract override fun replaceSetter(newSetter: FirPropertyAccessor?) + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) + abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirField abstract override fun transformStatus(transformer: FirTransformer, data: D): FirField diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt index 21b6cc1754a..1202324bbb2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt index d464beea3d4..23cfa8cca65 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -56,6 +57,7 @@ class FirFieldImpl @FirImplementationDetail constructor( override val isVal: Boolean get() = !isVar override val getter: FirPropertyAccessor? get() = null override val setter: FirPropertyAccessor? get() = null + override var controlFlowGraphReference: FirControlFlowGraphReference? = null init { symbol.bind(this) @@ -68,6 +70,7 @@ class FirFieldImpl @FirImplementationDetail constructor( initializer?.accept(visitor, data) backingField?.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } + controlFlowGraphReference?.accept(visitor, data) } override fun transformChildren(transformer: FirTransformer, data: D): FirFieldImpl { @@ -128,6 +131,7 @@ class FirFieldImpl @FirImplementationDetail constructor( override fun transformOtherChildren(transformer: FirTransformer, data: D): FirFieldImpl { transformAnnotations(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) return this } @@ -152,4 +156,8 @@ class FirFieldImpl @FirImplementationDetail constructor( override fun replaceGetter(newGetter: FirPropertyAccessor?) {} override fun replaceSetter(newSetter: FirPropertyAccessor?) {} + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt index cee073e1885..857cf82f2f4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt @@ -160,8 +160,6 @@ abstract class FirDefaultVisitor : FirVisitor() { override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): R = visitTypedDeclaration(callableDeclaration, data) - override fun visitField(field: FirField, data: D): R = visitVariable(field, data) - override fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): R = visitVariable(enumEntry, data) override fun visitFile(file: FirFile, data: D): R = visitDeclaration(file, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt index 71ef15f2def..287587f7f6f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt @@ -160,8 +160,6 @@ abstract class FirDefaultVisitorVoid : FirVisitorVoid() { override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) = visitTypedDeclaration(callableDeclaration) - override fun visitField(field: FirField) = visitVariable(field) - override fun visitEnumEntry(enumEntry: FirEnumEntry) = visitVariable(enumEntry) override fun visitFile(file: FirFile) = visitDeclaration(file) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt index 3ff1d4362ff..5cdf5e88708 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt @@ -39,7 +39,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() { val variable by sealedElement(Declaration, callableDeclaration, statement) val valueParameter by element(Declaration, variable, controlFlowGraphOwner) val property by element(Declaration, variable, typeParametersOwner, controlFlowGraphOwner) - val field by element(Declaration, variable) + val field by element(Declaration, variable, controlFlowGraphOwner) val enumEntry by element(Declaration, variable) val classLikeDeclaration by sealedElement(Declaration, memberDeclaration, statement)