diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ControlFlowAnalysisDiagnosticComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ControlFlowAnalysisDiagnosticComponent.kt index 77b99c327f2..49d8348a8ab 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ControlFlowAnalysisDiagnosticComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ControlFlowAnalysisDiagnosticComponent.kt @@ -27,10 +27,10 @@ class ControlFlowAnalysisDiagnosticComponent(collector: AbstractDiagnosticCollec private fun > visitClass( klass: FirClass, - controlFlowGraphReference: FirControlFlowGraphReference, + controlFlowGraphReference: FirControlFlowGraphReference?, data: CheckerContext ) { - val graph = controlFlowGraphReference.controlFlowGraph ?: return + val graph = controlFlowGraphReference?.controlFlowGraph ?: return runCheck { controlFlowAnalyzer.analyzeClassInitializer(klass, graph, data, it) } @@ -38,7 +38,7 @@ class ControlFlowAnalysisDiagnosticComponent(collector: AbstractDiagnosticCollec // ------------------------------- Property initializer ------------------------------- override fun visitProperty(property: FirProperty, data: CheckerContext) { - val graph = property.controlFlowGraphReference.controlFlowGraph ?: return + val graph = property.controlFlowGraphReference?.controlFlowGraph ?: return runCheck { controlFlowAnalyzer.analyzePropertyInitializer(property, graph, data, it) } @@ -47,7 +47,7 @@ class ControlFlowAnalysisDiagnosticComponent(collector: AbstractDiagnosticCollec // ------------------------------- Function ------------------------------- override fun > visitFunction(function: FirFunction, data: CheckerContext) { - val graph = function.controlFlowGraphReference.controlFlowGraph ?: return + val graph = function.controlFlowGraphReference?.controlFlowGraph ?: return runCheck { controlFlowAnalyzer.analyzeFunction(function, graph, data, it) } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt index 1b5cc9f6b4e..bb5621db260 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirRegularClassBuilder import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.java.JavaTypeParameterStack import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -47,7 +46,7 @@ class FirJavaClass @FirImplementationDetail internal constructor( internal val existingNestedClassifierNames: List ) : FirRegularClass() { override val hasLazyNestedClassifiers: Boolean get() = true - override val controlFlowGraphReference: FirControlFlowGraphReference get() = FirEmptyControlFlowGraphReference + override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null init { symbol.bind(this) @@ -70,6 +69,8 @@ class FirJavaClass @FirImplementationDetail internal constructor( resolvePhase = newResolvePhase } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {} + override fun acceptChildren(visitor: FirVisitor, data: D) { declarations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) } @@ -97,10 +98,6 @@ class FirJavaClass @FirImplementationDetail internal constructor( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirRegularClass { - return this - } - override fun transformAnnotations(transformer: FirTransformer, data: D): FirJavaClass { annotations.transformInplace(transformer, data) return this diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt index f350411121e..550fcf4f991 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.FirTransformer @@ -56,17 +55,13 @@ class FirJavaConstructor @FirImplementationDetail constructor( override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() - override val controlFlowGraphReference: FirControlFlowGraphReference get() = FirEmptyControlFlowGraphReference + override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null override fun transformValueParameters(transformer: FirTransformer, data: D): FirJavaConstructor { valueParameters.transformInplace(transformer, data) return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirJavaConstructor { - return this - } - override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirConstructor { returnTypeRef = returnTypeRef.transformSingle(transformer, data) return this @@ -78,7 +73,7 @@ class FirJavaConstructor @FirImplementationDetail constructor( override fun acceptChildren(visitor: FirVisitor, data: D) { returnTypeRef.accept(visitor, data) - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) typeParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) } status.accept(visitor, data) @@ -87,7 +82,6 @@ class FirJavaConstructor @FirImplementationDetail constructor( override fun transformChildren(transformer: FirTransformer, data: D): FirJavaConstructor { transformReturnTypeRef(transformer, data) - transformControlFlowGraphReference(transformer, data) transformTypeParameters(transformer, data) transformValueParameters(transformer, data) status = status.transformSingle(transformer, data) @@ -134,6 +128,8 @@ class FirJavaConstructor @FirImplementationDetail constructor( } override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {} } @FirBuilderDsl diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt index 3fe0abd63cb..b1fb5a91e15 100644 --- a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt @@ -24,7 +24,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression import org.jetbrains.kotlin.fir.expressions.impl.FirStubStatement -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.references.impl.FirStubReference import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -165,7 +164,7 @@ abstract class AbstractRawFirBuilderTestCase : KtParsingTestCase( private fun throwTwiceVisitingError(element: FirElement) { if (element is FirTypeRef || element is FirNoReceiverExpression || element is FirTypeParameter || - element is FirEmptyContractDescription || element is FirEmptyControlFlowGraphReference || + element is FirEmptyContractDescription || element is FirStubReference || element.isExtensionFunctionAnnotation || element is FirEmptyArgumentList || element is FirStubStatement ) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/CopyUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/CopyUtils.kt index f242be3294a..7221a374a20 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/CopyUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/CopyUtils.kt @@ -68,7 +68,7 @@ fun FirAnonymousFunction.copy( annotations: List = this.annotations, typeRef: FirTypeRef = this.typeRef, label: FirLabel? = this.label, - controlFlowGraphReference: FirControlFlowGraphReference = this.controlFlowGraphReference, + controlFlowGraphReference: FirControlFlowGraphReference? = this.controlFlowGraphReference, invocationKind: EventOccurrencesRange? = this.invocationKind ): FirAnonymousFunction { return buildAnonymousFunction { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNode.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNode.kt index aaa7c8d35fc..60f795f7e80 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNode.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNode.kt @@ -133,7 +133,7 @@ sealed class CFGNodeWithCfgOwner(owner: Contro } val subGraphs: List by lazy { - _subGraphs.also { it.addIfNotNull(fir.controlFlowGraphReference.controlFlowGraph) } + _subGraphs.also { it.addIfNotNull(fir.controlFlowGraphReference?.controlFlowGraph) } } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt index d50bc99db1f..6d1f6f6647e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt @@ -132,7 +132,7 @@ class ControlFlowGraphBuilder { else -> fir.extractArgument() } - val exitNode = function.controlFlowGraphReference.controlFlowGraph?.exitNode + val exitNode = function.controlFlowGraphReference?.controlFlowGraph?.exitNode ?: exitsOfAnonymousFunctions.getValue(function.symbol) return exitNode.previousNodes.mapNotNullTo(mutableSetOf()) { it.extractArgument() as FirStatement? @@ -368,8 +368,8 @@ class ControlFlowGraphBuilder { var prevInitPartNode: CFGNode<*>? = null for (declaration in klass.declarations) { val graph = when (declaration) { - is FirProperty -> declaration.controlFlowGraphReference.controlFlowGraph - is FirAnonymousInitializer -> declaration.controlFlowGraphReference.controlFlowGraph + is FirProperty -> declaration.controlFlowGraphReference?.controlFlowGraph + is FirAnonymousInitializer -> declaration.controlFlowGraphReference?.controlFlowGraph else -> null } ?: continue @@ -430,7 +430,7 @@ class ControlFlowGraphBuilder { fun visitLocalClassFunctions(klass: FirClass<*>, node: CFGNodeWithCfgOwner<*>) { klass.declarations.filterIsInstance>().forEach { function -> - val functionGraph = function.controlFlowGraphReference.controlFlowGraph + val functionGraph = function.controlFlowGraphReference?.controlFlowGraph if (functionGraph != null && functionGraph.owner == null) { addEdge(node, functionGraph.enterNode, preferredKind = EdgeKind.CfgForward) node.addSubGraph(functionGraph) @@ -1115,11 +1115,11 @@ class ControlFlowGraphBuilder { } override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction) { - anonymousFunction.controlFlowGraphReference.accept(this) + anonymousFunction.controlFlowGraphReference?.accept(this) } override fun visitAnonymousObject(anonymousObject: FirAnonymousObject) { - anonymousObject.controlFlowGraphReference.accept(this) + anonymousObject.controlFlowGraphReference?.accept(this) } override fun visitControlFlowGraphReference(controlFlowGraphReference: FirControlFlowGraphReference) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ControlFlowGraphReferenceTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ControlFlowGraphReferenceTransformer.kt deleted file mode 100644 index 4aaaad3b4a3..00000000000 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ControlFlowGraphReferenceTransformer.kt +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2010-2019 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.resolve.transformers - -import org.jetbrains.kotlin.fir.FirElement -import org.jetbrains.kotlin.fir.declarations.FirDeclaration -import org.jetbrains.kotlin.fir.declarations.FirFunction -import org.jetbrains.kotlin.fir.expressions.FirStatement -import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference -import org.jetbrains.kotlin.fir.resolve.dfa.FirControlFlowGraphReferenceImpl -import org.jetbrains.kotlin.fir.resolve.dfa.cfg.ControlFlowGraph -import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult -import org.jetbrains.kotlin.fir.visitors.FirTransformer -import org.jetbrains.kotlin.fir.visitors.compose - -object ControlFlowGraphReferenceTransformer : FirTransformer() { - override fun transformElement(element: E, data: ControlFlowGraph): CompositeTransformResult { - return element.compose() - } - - override fun > transformFunction( - function: FirFunction, - data: ControlFlowGraph - ): CompositeTransformResult { - return (function.transformChildren(this, data) as FirFunction<*>).compose() - } - - override fun transformControlFlowGraphReference( - controlFlowGraphReference: FirControlFlowGraphReference, - data: ControlFlowGraph - ): CompositeTransformResult { - return if (controlFlowGraphReference is FirEmptyControlFlowGraphReference) { - FirControlFlowGraphReferenceImpl(data).compose() - } else { - controlFlowGraphReference.compose() - } - } -} \ No newline at end of file diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index b9b608215cd..bffe4c838ce 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -18,10 +18,10 @@ import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.buildReturnExpression import org.jetbrains.kotlin.fir.expressions.builder.buildUnitExpression import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate import org.jetbrains.kotlin.fir.resolve.calls.ImplicitExtensionReceiverValue +import org.jetbrains.kotlin.fir.resolve.dfa.FirControlFlowGraphReferenceImpl import org.jetbrains.kotlin.fir.resolve.inference.FirDelegatedPropertyInferenceSession import org.jetbrains.kotlin.fir.resolve.inference.extractLambdaInfoFromFunctionalType import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor @@ -149,7 +149,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor } property.replaceResolvePhase(transformerPhase) dataFlowAnalyzer.exitProperty(property)?.let { - property.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, it) + property.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(it)) } property.compose() } @@ -377,7 +377,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor if (notAnalyzed) { if (!implicitTypeOnly) { val controlFlowGraph = dataFlowAnalyzer.exitRegularClass(result) - result.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, controlFlowGraph) + result.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(controlFlowGraph)) } else { dataFlowAnalyzer.exitClass() } @@ -410,9 +410,9 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor var result = withScopesForClass(labelName, anonymousObject, type) { transformDeclarationContent(anonymousObject, data).single as FirAnonymousObject } - if (!implicitTypeOnly && result.controlFlowGraphReference == FirEmptyControlFlowGraphReference) { + if (!implicitTypeOnly && result.controlFlowGraphReference == null) { val graph = dataFlowAnalyzer.exitAnonymousObject(result) - result = result.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, graph) + result.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(graph)) } else { dataFlowAnalyzer.exitClass() } @@ -522,7 +522,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor if (functionIsNotAnalyzed) { val result = it.single as FirFunction<*> val controlFlowGraph = dataFlowAnalyzer.exitFunction(result) - result.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, controlFlowGraph) + result.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(controlFlowGraph)) } } as CompositeTransformResult } @@ -594,7 +594,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor } val graph = dataFlowAnalyzer.exitFunction(constructor) - constructor.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, graph) + constructor.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(graph)) constructor.compose() } } @@ -612,7 +612,8 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor val result = transformDeclarationContent(anonymousInitializer, ResolutionMode.ContextIndependent).single as FirAnonymousInitializer val graph = dataFlowAnalyzer.exitInitBlock(result) - result.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, graph).compose() + result.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(graph)) + result.compose() } } @@ -633,7 +634,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor ).single as FirValueParameter dataFlowAnalyzer.exitValueParameter(result)?.let { graph -> - result.transformControlFlowGraphReference(ControlFlowGraphReferenceTransformer, graph) + result.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(graph)) } return result.compose() diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt index 071317d5395..0f437464fd9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt @@ -31,7 +31,7 @@ abstract class FirAnonymousFunction : FirFunction, FirExpr abstract override val annotations: List abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val controlFlowGraphReference: FirControlFlowGraphReference + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val valueParameters: List abstract override val body: FirBlock? abstract override val typeRef: FirTypeRef @@ -49,6 +49,8 @@ abstract class FirAnonymousFunction : FirFunction, FirExpr abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) + abstract override fun replaceValueParameters(newValueParameters: List) abstract override fun replaceTypeRef(newTypeRef: FirTypeRef) @@ -61,8 +63,6 @@ abstract class FirAnonymousFunction : FirFunction, FirExpr abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirAnonymousFunction - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirAnonymousFunction - abstract override fun transformValueParameters(transformer: FirTransformer, data: D): FirAnonymousFunction abstract override fun transformBody(transformer: FirTransformer, data: D): FirAnonymousFunction diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt index 77fb8abe56a..180c57e1680 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt @@ -25,7 +25,7 @@ abstract class FirAnonymousInitializer : FirPureAbstractElement(), FirDeclaratio abstract override val resolvePhase: FirResolvePhase abstract override val origin: FirDeclarationOrigin abstract override val attributes: FirDeclarationAttributes - abstract override val controlFlowGraphReference: FirControlFlowGraphReference + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract val body: FirBlock? abstract override val symbol: FirAnonymousInitializerSymbol @@ -33,5 +33,5 @@ abstract class FirAnonymousInitializer : FirPureAbstractElement(), FirDeclaratio abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirAnonymousInitializer + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt index 66ef3e03fbc..e7563644672 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt @@ -33,7 +33,7 @@ abstract class FirAnonymousObject : FirClass, FirControlFlow abstract override val declarations: List abstract override val annotations: List abstract override val scopeProvider: FirScopeProvider - abstract override val controlFlowGraphReference: FirControlFlowGraphReference + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val typeRef: FirTypeRef abstract override val symbol: FirAnonymousObjectSymbol @@ -43,6 +43,8 @@ abstract class FirAnonymousObject : FirClass, FirControlFlow abstract override fun replaceSuperTypeRefs(newSuperTypeRefs: List) + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) + abstract override fun replaceTypeRef(newTypeRef: FirTypeRef) abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirAnonymousObject @@ -52,6 +54,4 @@ abstract class FirAnonymousObject : FirClass, FirControlFlow abstract override fun transformDeclarations(transformer: FirTransformer, data: D): FirAnonymousObject abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirAnonymousObject - - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirAnonymousObject } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt index 3467e18e239..3d10652333f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt @@ -31,7 +31,7 @@ abstract class FirConstructor : FirPureAbstractElement(), FirFunction - abstract override val controlFlowGraphReference: FirControlFlowGraphReference + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val valueParameters: List abstract override val status: FirDeclarationStatus abstract override val containerSource: DeserializedContainerSource? @@ -49,6 +49,8 @@ abstract class FirConstructor : FirPureAbstractElement(), FirFunction) abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirConstructor @@ -57,8 +59,6 @@ abstract class FirConstructor : FirPureAbstractElement(), FirFunction transformTypeParameters(transformer: FirTransformer, data: D): FirConstructor - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirConstructor - abstract override fun transformValueParameters(transformer: FirTransformer, data: D): FirConstructor abstract override fun transformStatus(transformer: FirTransformer, data: D): FirConstructor diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirControlFlowGraphOwner.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirControlFlowGraphOwner.kt index 2a000e5f983..5f76d1110f5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirControlFlowGraphOwner.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirControlFlowGraphOwner.kt @@ -17,9 +17,9 @@ import org.jetbrains.kotlin.fir.visitors.* interface FirControlFlowGraphOwner : FirElement { override val source: FirSourceElement? - val controlFlowGraphReference: FirControlFlowGraphReference + val controlFlowGraphReference: FirControlFlowGraphReference? override fun accept(visitor: FirVisitor, data: D): R = visitor.visitControlFlowGraphOwner(this, data) - fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirControlFlowGraphOwner + fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt index 9cd332a5a11..bb98e8d4886 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt @@ -31,7 +31,7 @@ abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val controlFlowGraphReference: FirControlFlowGraphReference + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val valueParameters: List abstract override val body: FirBlock? abstract override val diagnostic: ConeDiagnostic @@ -46,6 +46,8 @@ abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirErrorFunction @@ -54,8 +56,6 @@ abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction transformReceiverTypeRef(transformer: FirTransformer, data: D): FirErrorFunction - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirErrorFunction - abstract override fun transformValueParameters(transformer: FirTransformer, data: D): FirErrorFunction abstract override fun transformBody(transformer: FirTransformer, data: D): FirErrorFunction diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt index f7214e1ee35..fbcf22836c5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt @@ -31,7 +31,7 @@ interface FirFunction> : FirCallableDeclaration, FirTarget override val returnTypeRef: FirTypeRef override val receiverTypeRef: FirTypeRef? override val typeParameters: List - override val controlFlowGraphReference: FirControlFlowGraphReference + override val controlFlowGraphReference: FirControlFlowGraphReference? override val symbol: FirFunctionSymbol val valueParameters: List val body: FirBlock? @@ -44,6 +44,8 @@ interface FirFunction> : FirCallableDeclaration, FirTarget override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) + fun replaceValueParameters(newValueParameters: List) override fun transformAnnotations(transformer: FirTransformer, data: D): FirFunction @@ -54,8 +56,6 @@ interface FirFunction> : FirCallableDeclaration, FirTarget override fun transformTypeParameters(transformer: FirTransformer, data: D): FirFunction - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirFunction - fun transformValueParameters(transformer: FirTransformer, data: D): FirFunction fun transformBody(transformer: FirTransformer, data: D): FirFunction diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt index 0a78b4077f3..504324aeb91 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt @@ -41,7 +41,7 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, abstract override val setter: FirPropertyAccessor? abstract override val annotations: List abstract override val typeParameters: List - abstract override val controlFlowGraphReference: FirControlFlowGraphReference + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val containerSource: DeserializedContainerSource? abstract override val symbol: FirPropertySymbol abstract val backingFieldSymbol: FirBackingFieldSymbol @@ -56,6 +56,8 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirProperty abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirProperty @@ -72,8 +74,6 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirProperty - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirProperty - abstract override fun transformStatus(transformer: FirTransformer, data: D): FirProperty abstract override fun transformOtherChildren(transformer: FirTransformer, data: D): FirProperty diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt index 0cafb8d0a42..1b253e1e2aa 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt @@ -29,7 +29,7 @@ abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction abstract override val body: FirBlock? abstract override val contractDescription: FirContractDescription @@ -48,6 +48,8 @@ abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction) abstract override fun replaceContractDescription(newContractDescription: FirContractDescription) @@ -56,8 +58,6 @@ abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction transformReceiverTypeRef(transformer: FirTransformer, data: D): FirPropertyAccessor - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirPropertyAccessor - abstract override fun transformValueParameters(transformer: FirTransformer, data: D): FirPropertyAccessor abstract override fun transformBody(transformer: FirTransformer, data: D): FirPropertyAccessor diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt index 5d9faff37ea..1bdd29f088f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt @@ -31,7 +31,7 @@ abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration, abstract override val annotations: List abstract override val typeParameters: List abstract override val status: FirDeclarationStatus - abstract override val controlFlowGraphReference: FirControlFlowGraphReference + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val classKind: ClassKind abstract override val declarations: List abstract override val scopeProvider: FirScopeProvider @@ -45,6 +45,8 @@ abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration, abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) + abstract override fun replaceSuperTypeRefs(newSuperTypeRefs: List) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirRegularClass @@ -53,8 +55,6 @@ abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration, abstract override fun transformStatus(transformer: FirTransformer, data: D): FirRegularClass - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirRegularClass - abstract override fun transformDeclarations(transformer: FirTransformer, data: D): FirRegularClass abstract fun transformCompanionObject(transformer: FirTransformer, data: D): FirRegularClass diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt index 5455131edff..8abdc47b7a9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt @@ -31,7 +31,7 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction abstract override val body: FirBlock? abstract override val status: FirDeclarationStatus @@ -50,6 +50,8 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction) abstract override fun replaceContractDescription(newContractDescription: FirContractDescription) @@ -58,8 +60,6 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction transformReceiverTypeRef(transformer: FirTransformer, data: D): FirSimpleFunction - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirSimpleFunction - abstract override fun transformValueParameters(transformer: FirTransformer, data: D): FirSimpleFunction abstract override fun transformBody(transformer: FirTransformer, data: D): FirSimpleFunction diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt index 1b91517e672..465a49835f7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt @@ -39,7 +39,7 @@ abstract class FirValueParameter : FirVariable(), FirControlF abstract override val getter: FirPropertyAccessor? abstract override val setter: FirPropertyAccessor? abstract override val annotations: List - abstract override val controlFlowGraphReference: FirControlFlowGraphReference + abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract val defaultValue: FirExpression? abstract val isCrossinline: Boolean abstract val isNoinline: Boolean @@ -53,6 +53,8 @@ abstract class FirValueParameter : FirVariable(), FirControlF abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirValueParameter abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirValueParameter @@ -67,7 +69,5 @@ abstract class FirValueParameter : FirVariable(), FirControlF abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirValueParameter - abstract override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirValueParameter - abstract override fun transformOtherChildren(transformer: FirTransformer, data: D): FirValueParameter } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt index 452859e5474..31161334698 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt @@ -41,7 +41,7 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder { abstract var resolvePhase: FirResolvePhase abstract var receiverTypeRef: FirTypeRef? abstract val typeParameters: MutableList - abstract var controlFlowGraphReference: FirControlFlowGraphReference + abstract var controlFlowGraphReference: FirControlFlowGraphReference? abstract var status: FirDeclarationStatus abstract var containerSource: DeserializedContainerSource? abstract var symbol: FirConstructorSymbol diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt index a05f418f436..0ab661500ee 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt @@ -24,7 +24,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl @@ -43,7 +42,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu override val annotations: MutableList = mutableListOf() override lateinit var returnTypeRef: FirTypeRef var receiverTypeRef: FirTypeRef? = null - var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + var controlFlowGraphReference: FirControlFlowGraphReference? = null override val valueParameters: MutableList = mutableListOf() override var body: FirBlock? = null override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt index f253f6ba176..06e447ed427 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousInitializerImpl import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousInitializerSymbol import org.jetbrains.kotlin.fir.visitors.* diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt index 2a821ce9b71..c75c0fd0d64 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousObjectImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousObjectSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt index cc140256685..d0228e82f39 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* @@ -72,7 +71,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC @Deprecated("Modification of 'controlFlowGraphReference' has no impact for FirConstructorBuilder", level = DeprecationLevel.HIDDEN) - override var controlFlowGraphReference: FirControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? get() = throw IllegalStateException() set(value) { throw IllegalStateException() diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt index 0b7d268a227..1ea1c14fdc3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt @@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultSetterValueParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt index 4ab54d76c8e..f9ceee03fca 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirErrorFunctionSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt index dbd04c436be..361293149b8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* @@ -72,7 +71,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio @Deprecated("Modification of 'controlFlowGraphReference' has no impact for FirPrimaryConstructorBuilder", level = DeprecationLevel.HIDDEN) - override var controlFlowGraphReference: FirControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? get() = throw IllegalStateException() set(value) { throw IllegalStateException() diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt index d209b9768c5..20ad8fcd160 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt @@ -26,7 +26,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyAccessorImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt index 54ef5fe6975..e84ca26a532 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt index 85d58985a46..2e41a32485d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterRefsOwnerBu import org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt index 0a9bbcc1b7f..5acb705efe1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt @@ -26,7 +26,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt index 83d32b57e55..9b1af7db55e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt index feb0583490c..ca861801eda 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt @@ -34,7 +34,7 @@ internal class FirAnonymousFunctionImpl( override val annotations: MutableList, override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, - override var controlFlowGraphReference: FirControlFlowGraphReference, + override var controlFlowGraphReference: FirControlFlowGraphReference?, override val valueParameters: MutableList, override var body: FirBlock?, override var typeRef: FirTypeRef, @@ -55,7 +55,7 @@ internal class FirAnonymousFunctionImpl( annotations.forEach { it.accept(visitor, data) } returnTypeRef.accept(visitor, data) receiverTypeRef?.accept(visitor, data) - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) valueParameters.forEach { it.accept(visitor, data) } body?.accept(visitor, data) typeRef.accept(visitor, data) @@ -67,7 +67,7 @@ internal class FirAnonymousFunctionImpl( transformAnnotations(transformer, data) transformReturnTypeRef(transformer, data) transformReceiverTypeRef(transformer, data) - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) transformValueParameters(transformer, data) transformBody(transformer, data) typeRef = typeRef.transformSingle(transformer, data) @@ -91,11 +91,6 @@ internal class FirAnonymousFunctionImpl( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirAnonymousFunctionImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformValueParameters(transformer: FirTransformer, data: D): FirAnonymousFunctionImpl { valueParameters.transformInplace(transformer, data) return this @@ -123,6 +118,10 @@ internal class FirAnonymousFunctionImpl( receiverTypeRef = newReceiverTypeRef } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + override fun replaceValueParameters(newValueParameters: List) { valueParameters.clear() valueParameters.addAll(newValueParameters) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt index 8e54d1e8bdc..ee40d515312 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousInitializerSymbol import org.jetbrains.kotlin.fir.visitors.* @@ -31,29 +30,28 @@ internal class FirAnonymousInitializerImpl( override val symbol: FirAnonymousInitializerSymbol, ) : FirAnonymousInitializer() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null init { symbol.bind(this) } override fun acceptChildren(visitor: FirVisitor, data: D) { - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) body?.accept(visitor, data) } override fun transformChildren(transformer: FirTransformer, data: D): FirAnonymousInitializerImpl { - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) body = body?.transformSingle(transformer, data) return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirAnonymousInitializerImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) { resolvePhase = newResolvePhase } + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt index ee94c01f636..0de229e53d0 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt @@ -16,7 +16,6 @@ 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.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousObjectSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -42,7 +41,7 @@ internal class FirAnonymousObjectImpl( override val symbol: FirAnonymousObjectSymbol, ) : FirAnonymousObject() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null init { symbol.bind(this) @@ -53,7 +52,7 @@ internal class FirAnonymousObjectImpl( superTypeRefs.forEach { it.accept(visitor, data) } declarations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) } - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) typeRef.accept(visitor, data) } @@ -62,7 +61,7 @@ internal class FirAnonymousObjectImpl( transformSuperTypeRefs(transformer, data) transformDeclarations(transformer, data) transformAnnotations(transformer, data) - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) typeRef = typeRef.transformSingle(transformer, data) return this } @@ -87,11 +86,6 @@ internal class FirAnonymousObjectImpl( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirAnonymousObjectImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) { resolvePhase = newResolvePhase } @@ -101,6 +95,10 @@ internal class FirAnonymousObjectImpl( superTypeRefs.addAll(newSuperTypeRefs) } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + override fun replaceTypeRef(newTypeRef: FirTypeRef) { typeRef = newTypeRef } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt index 1165e7b83e7..08416413019 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource @@ -46,7 +45,7 @@ internal class FirConstructorImpl( override var body: FirBlock?, ) : FirConstructor() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null override val isPrimary: Boolean get() = false init { @@ -57,7 +56,7 @@ internal class FirConstructorImpl( returnTypeRef.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) } status.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } @@ -69,7 +68,7 @@ internal class FirConstructorImpl( transformReturnTypeRef(transformer, data) transformReceiverTypeRef(transformer, data) transformTypeParameters(transformer, data) - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) transformValueParameters(transformer, data) transformStatus(transformer, data) transformAnnotations(transformer, data) @@ -93,11 +92,6 @@ internal class FirConstructorImpl( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirConstructorImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformValueParameters(transformer: FirTransformer, data: D): FirConstructorImpl { valueParameters.transformInplace(transformer, data) return this @@ -135,6 +129,10 @@ internal class FirConstructorImpl( receiverTypeRef = newReceiverTypeRef } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + override fun replaceValueParameters(newValueParameters: List) { valueParameters.clear() valueParameters.addAll(newValueParameters) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt index 627e2a5ecae..9269c163cec 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -50,7 +49,7 @@ internal class FirDefaultSetterValueParameter( ) : FirValueParameter() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val name: Name = Name.identifier("value") - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null init { symbol.bind(this) @@ -65,7 +64,7 @@ internal class FirDefaultSetterValueParameter( getter?.accept(visitor, data) setter?.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) defaultValue?.accept(visitor, data) } @@ -76,7 +75,6 @@ internal class FirDefaultSetterValueParameter( transformDelegate(transformer, data) transformGetter(transformer, data) transformSetter(transformer, data) - transformControlFlowGraphReference(transformer, data) transformOtherChildren(transformer, data) return this } @@ -116,13 +114,9 @@ internal class FirDefaultSetterValueParameter( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirDefaultSetterValueParameter { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformOtherChildren(transformer: FirTransformer, data: D): FirDefaultSetterValueParameter { transformAnnotations(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) defaultValue = defaultValue?.transformSingle(transformer, data) return this } @@ -138,4 +132,8 @@ internal class FirDefaultSetterValueParameter( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) { receiverTypeRef = newReceiverTypeRef } + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt index af3c52eac30..169c37784f2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirErrorFunctionSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl @@ -42,7 +41,7 @@ internal class FirErrorFunctionImpl( override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, diagnostic) override val receiverTypeRef: FirTypeRef? get() = null - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null override val body: FirBlock? get() = null init { @@ -52,7 +51,7 @@ internal class FirErrorFunctionImpl( override fun acceptChildren(visitor: FirVisitor, data: D) { annotations.forEach { it.accept(visitor, data) } returnTypeRef.accept(visitor, data) - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) valueParameters.forEach { it.accept(visitor, data) } typeParameters.forEach { it.accept(visitor, data) } } @@ -60,7 +59,7 @@ internal class FirErrorFunctionImpl( override fun transformChildren(transformer: FirTransformer, data: D): FirErrorFunctionImpl { transformAnnotations(transformer, data) transformReturnTypeRef(transformer, data) - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) transformValueParameters(transformer, data) transformTypeParameters(transformer, data) return this @@ -80,11 +79,6 @@ internal class FirErrorFunctionImpl( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirErrorFunctionImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformValueParameters(transformer: FirTransformer, data: D): FirErrorFunctionImpl { valueParameters.transformInplace(transformer, data) return this @@ -109,6 +103,10 @@ internal class FirErrorFunctionImpl( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + override fun replaceValueParameters(newValueParameters: List) { valueParameters.clear() valueParameters.addAll(newValueParameters) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt index 995ea1621fa..f28365f8810 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource @@ -46,7 +45,7 @@ internal class FirPrimaryConstructor( override var body: FirBlock?, ) : FirConstructor() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null override val isPrimary: Boolean get() = true init { @@ -57,7 +56,7 @@ internal class FirPrimaryConstructor( returnTypeRef.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) } status.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } @@ -69,7 +68,7 @@ internal class FirPrimaryConstructor( transformReturnTypeRef(transformer, data) transformReceiverTypeRef(transformer, data) transformTypeParameters(transformer, data) - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) transformValueParameters(transformer, data) transformStatus(transformer, data) transformAnnotations(transformer, data) @@ -93,11 +92,6 @@ internal class FirPrimaryConstructor( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirPrimaryConstructor { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformValueParameters(transformer: FirTransformer, data: D): FirPrimaryConstructor { valueParameters.transformInplace(transformer, data) return this @@ -135,6 +129,10 @@ internal class FirPrimaryConstructor( receiverTypeRef = newReceiverTypeRef } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + override fun replaceValueParameters(newValueParameters: List) { valueParameters.clear() valueParameters.addAll(newValueParameters) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt index a93115c2f2f..006b5756c03 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* @@ -47,7 +46,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor( ) : FirPropertyAccessor() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val receiverTypeRef: FirTypeRef? get() = null - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null override val isSetter: Boolean get() = !isGetter init { @@ -56,7 +55,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor( override fun acceptChildren(visitor: FirVisitor, data: D) { returnTypeRef.accept(visitor, data) - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) valueParameters.forEach { it.accept(visitor, data) } body?.accept(visitor, data) contractDescription.accept(visitor, data) @@ -67,7 +66,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor( override fun transformChildren(transformer: FirTransformer, data: D): FirPropertyAccessorImpl { transformReturnTypeRef(transformer, data) - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) transformValueParameters(transformer, data) transformBody(transformer, data) transformContractDescription(transformer, data) @@ -86,11 +85,6 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirPropertyAccessorImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformValueParameters(transformer: FirTransformer, data: D): FirPropertyAccessorImpl { valueParameters.transformInplace(transformer, data) return this @@ -131,6 +125,10 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + override fun replaceValueParameters(newValueParameters: List) { valueParameters.clear() valueParameters.addAll(newValueParameters) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt index d68b685a07a..97f30e49811 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol @@ -54,7 +53,7 @@ internal class FirPropertyImpl( ) : FirProperty() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val isVal: Boolean get() = !isVar - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null override val backingFieldSymbol: FirBackingFieldSymbol = FirBackingFieldSymbol(symbol.callableId) init { @@ -72,7 +71,7 @@ internal class FirPropertyImpl( setter?.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } typeParameters.forEach { it.accept(visitor, data) } - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) status.accept(visitor, data) } @@ -84,7 +83,6 @@ internal class FirPropertyImpl( transformGetter(transformer, data) transformSetter(transformer, data) transformTypeParameters(transformer, data) - transformControlFlowGraphReference(transformer, data) transformStatus(transformer, data) transformOtherChildren(transformer, data) return this @@ -130,11 +128,6 @@ internal class FirPropertyImpl( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirPropertyImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformStatus(transformer: FirTransformer, data: D): FirPropertyImpl { status = status.transformSingle(transformer, data) return this @@ -142,6 +135,7 @@ internal class FirPropertyImpl( override fun transformOtherChildren(transformer: FirTransformer, data: D): FirPropertyImpl { transformAnnotations(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) return this } @@ -156,4 +150,8 @@ internal class FirPropertyImpl( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) { receiverTypeRef = newReceiverTypeRef } + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt index 36d2e627482..543c0cd5fdc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt @@ -17,7 +17,6 @@ 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.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -46,7 +45,7 @@ internal class FirRegularClassImpl( override val superTypeRefs: MutableList, ) : FirRegularClass() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null override val hasLazyNestedClassifiers: Boolean get() = false init { @@ -57,7 +56,7 @@ internal class FirRegularClassImpl( annotations.forEach { it.accept(visitor, data) } typeParameters.forEach { it.accept(visitor, data) } status.accept(visitor, data) - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) declarations.forEach { it.accept(visitor, data) } superTypeRefs.forEach { it.accept(visitor, data) } } @@ -66,7 +65,7 @@ internal class FirRegularClassImpl( transformAnnotations(transformer, data) transformTypeParameters(transformer, data) transformStatus(transformer, data) - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) transformDeclarations(transformer, data) companionObject = declarations.asSequence().filterIsInstance().firstOrNull { it.status.isCompanion } transformSuperTypeRefs(transformer, data) @@ -88,11 +87,6 @@ internal class FirRegularClassImpl( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirRegularClassImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformDeclarations(transformer: FirTransformer, data: D): FirRegularClassImpl { declarations.transformInplace(transformer, data) return this @@ -112,6 +106,10 @@ internal class FirRegularClassImpl( resolvePhase = newResolvePhase } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + override fun replaceSuperTypeRefs(newSuperTypeRefs: List) { superTypeRefs.clear() superTypeRefs.addAll(newSuperTypeRefs) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt index 6b22c1d4210..9b332bf7b92 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt @@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.name.Name @@ -49,7 +48,7 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor( override val typeParameters: MutableList, ) : FirSimpleFunction() { override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null init { symbol.bind(this) @@ -58,7 +57,7 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor( override fun acceptChildren(visitor: FirVisitor, data: D) { returnTypeRef.accept(visitor, data) receiverTypeRef?.accept(visitor, data) - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) valueParameters.forEach { it.accept(visitor, data) } body?.accept(visitor, data) status.accept(visitor, data) @@ -70,7 +69,7 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor( override fun transformChildren(transformer: FirTransformer, data: D): FirSimpleFunctionImpl { transformReturnTypeRef(transformer, data) transformReceiverTypeRef(transformer, data) - transformControlFlowGraphReference(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) transformValueParameters(transformer, data) transformBody(transformer, data) transformStatus(transformer, data) @@ -90,11 +89,6 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirSimpleFunctionImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformValueParameters(transformer: FirTransformer, data: D): FirSimpleFunctionImpl { valueParameters.transformInplace(transformer, data) return this @@ -137,6 +131,10 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor( receiverTypeRef = newReceiverTypeRef } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + override fun replaceValueParameters(newValueParameters: List) { valueParameters.clear() valueParameters.addAll(newValueParameters) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt index 0200a7076ac..c98c5d47117 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -51,7 +50,7 @@ open class FirValueParameterImpl @FirImplementationDetail constructor( override val isVal: Boolean get() = true override val getter: FirPropertyAccessor? get() = null override val setter: FirPropertyAccessor? get() = null - override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override var controlFlowGraphReference: FirControlFlowGraphReference? = null init { symbol.bind(this) @@ -61,13 +60,12 @@ open class FirValueParameterImpl @FirImplementationDetail constructor( override fun acceptChildren(visitor: FirVisitor, data: D) { returnTypeRef.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) defaultValue?.accept(visitor, data) } override fun transformChildren(transformer: FirTransformer, data: D): FirValueParameterImpl { transformReturnTypeRef(transformer, data) - transformControlFlowGraphReference(transformer, data) transformOtherChildren(transformer, data) return this } @@ -102,13 +100,9 @@ open class FirValueParameterImpl @FirImplementationDetail constructor( return this } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirValueParameterImpl { - controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data) - return this - } - override fun transformOtherChildren(transformer: FirTransformer, data: D): FirValueParameterImpl { transformAnnotations(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) defaultValue = defaultValue?.transformSingle(transformer, data) return this } @@ -122,4 +116,8 @@ open class FirValueParameterImpl @FirImplementationDetail constructor( } override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirEmptyControlFlowGraphReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirEmptyControlFlowGraphReference.kt deleted file mode 100644 index 81d9f274e27..00000000000 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirEmptyControlFlowGraphReference.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * 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.references.impl - -import org.jetbrains.kotlin.fir.FirImplementationDetail -import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.visitors.* - -/* - * This file was generated automatically - * DO NOT MODIFY IT MANUALLY - */ - -object FirEmptyControlFlowGraphReference : FirControlFlowGraphReference() { - override val source: FirSourceElement? get() = null - - override fun acceptChildren(visitor: FirVisitor, data: D) {} - - override fun transformChildren(transformer: FirTransformer, data: D): FirEmptyControlFlowGraphReference { - return this - } -} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt index 81fa0003aed..2ec6f000636 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt @@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol @@ -71,7 +70,7 @@ class FirSyntheticProperty( override val containerSource: DeserializedContainerSource? get() = null - override val controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override val controlFlowGraphReference: FirControlFlowGraphReference? = null override val attributes: FirDeclarationAttributes = FirDeclarationAttributes() @@ -95,10 +94,6 @@ class FirSyntheticProperty( throw AssertionError("Transformation of synthetic property isn't supported") } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirSyntheticProperty { - throw AssertionError("Transformation of synthetic property isn't supported") - } - override fun transformStatus(transformer: FirTransformer, data: D): FirSyntheticProperty { throw AssertionError("Transformation of synthetic property isn't supported") } @@ -142,4 +137,8 @@ class FirSyntheticProperty( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) { throw AssertionError("Mutation of synthetic property isn't supported") } + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + throw AssertionError("Mutation of synthetic property isn't supported") + } } \ No newline at end of file diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt index efaf65fbcd0..a50fb3404dc 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt @@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyAccessorImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.FirTransformer @@ -67,13 +66,13 @@ class FirSyntheticPropertyAccessor( bind(this@FirSyntheticPropertyAccessor) } - override val controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference + override val controlFlowGraphReference: FirControlFlowGraphReference? = null override val contractDescription: FirContractDescription = FirEmptyContractDescription override fun acceptChildren(visitor: FirVisitor, data: D) { delegate.accept(visitor, data) - controlFlowGraphReference.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) contractDescription.accept(visitor, data) } @@ -89,10 +88,6 @@ class FirSyntheticPropertyAccessor( throw AssertionError("Transformation of synthetic property accessor isn't supported") } - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirPropertyAccessorImpl { - throw AssertionError("Transformation of synthetic property accessor isn't supported") - } - override fun transformValueParameters(transformer: FirTransformer, data: D): FirPropertyAccessorImpl { throw AssertionError("Transformation of synthetic property accessor isn't supported") } @@ -136,4 +131,8 @@ class FirSyntheticPropertyAccessor( override fun replaceContractDescription(newContractDescription: FirContractDescription) { throw AssertionError("Mutation of synthetic property accessor isn't supported") } + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + throw AssertionError("Mutation of synthetic property accessor isn't supported") + } } \ No newline at end of file diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt index fd07ec7dbce..ce95b204edc 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt @@ -197,9 +197,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree builder(anonymousFunction) { parents += functionBuilder - defaultNull("invocationKind", "label", "body") - default("controlFlowGraphReference", "FirEmptyControlFlowGraphReference") - useTypes(emptyCfgReferenceType) + defaultNull("invocationKind", "label", "body", "controlFlowGraphReference") } builder(propertyAccessor) { diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt index c6c8d4751fd..fb3e33eda4c 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FieldSets.kt @@ -74,7 +74,7 @@ object FieldSets { val status = field("status", declarationStatus) - val controlFlowGraphReferenceField = field("controlFlowGraphReference", controlFlowGraphReference).withTransform() + val controlFlowGraphReferenceField = field("controlFlowGraphReference", controlFlowGraphReference, withReplace = true, nullable = true) val visibility = field(visibilityType) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt index 0c3015caa63..a850f2fc350 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt @@ -370,10 +370,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() impl(superReference, "FirExplicitSuperReference") - impl(controlFlowGraphReference, "FirEmptyControlFlowGraphReference") { - noSource() - kind = Object - } + noImpl(controlFlowGraphReference) impl(resolvedTypeRef) { publicImplementation() @@ -470,10 +467,9 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() private fun configureAllImplementations() { configureFieldInAllImplementations( field = "controlFlowGraphReference", - implementationPredicate = { it.type != "FirAnonymousFunctionImpl"} + implementationPredicate = { it.type != "FirAnonymousFunctionImpl" } ) { - default(it, "FirEmptyControlFlowGraphReference") - useTypes(emptyCfgReferenceType) + defaultNull(it) } val implementationWithConfigurableTypeRef = listOf(