diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt index 29419e354d5..a50d29e6045 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt @@ -498,6 +498,8 @@ class ExpressionsConverter( } it.replaceExplicitReceiver(firReceiver) + + @OptIn(FirImplementationDetail::class) it.replaceSource(dotQualifiedExpression.toFirSourceElement()) } return firSelector diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index be67afd9b7d..f2cce52e12f 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -1993,6 +1993,8 @@ class RawFirBuilder( } firSelector.replaceExplicitReceiver(receiver) + + @OptIn(FirImplementationDetail::class) firSelector.replaceSource(expression.toFirSourceElement()) } return firSelector diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt index c0fd29a9c52..1aee65d79b2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -42,6 +43,7 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() { abstract fun replaceHasQuestionMarkAtLHS(newHasQuestionMarkAtLHS: Boolean) + @FirImplementationDetail abstract override fun replaceSource(newSource: FirSourceElement?) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirCallableReferenceAccess diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt index 95e929c0567..f5b91d6d9f8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -41,6 +42,7 @@ abstract class FirComponentCall : FirFunctionCall() { abstract override fun replaceCalleeReference(newCalleeReference: FirReference) + @FirImplementationDetail abstract override fun replaceSource(newSource: FirSourceElement?) abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt index cf44f6b4c07..f46d777d0e0 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -40,6 +41,7 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() { abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) + @FirImplementationDetail abstract override fun replaceSource(newSource: FirSourceElement?) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirExpressionWithSmartcast diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt index 511eaea3cb6..3f2420445c8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -42,6 +43,7 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall { abstract override fun replaceCalleeReference(newCalleeReference: FirReference) + @FirImplementationDetail abstract override fun replaceSource(newSource: FirSourceElement?) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirFunctionCall diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt index 70fe6dd9342..59e166494a3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -42,6 +43,7 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() { abstract override fun replaceCalleeReference(newCalleeReference: FirReference) + @FirImplementationDetail abstract override fun replaceSource(newSource: FirSourceElement?) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirImplicitInvokeCall diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt index 410452e42f7..aa571e11e78 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -32,6 +33,7 @@ interface FirQualifiedAccess : FirResolvable, FirStatement { fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) + @FirImplementationDetail fun replaceSource(newSource: FirSourceElement?) override fun transformCalleeReference(transformer: FirTransformer, data: D): FirQualifiedAccess diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt index 9eba04f55b0..947b0007711 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -36,6 +37,7 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirQualifiedAcces abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) + @FirImplementationDetail abstract override fun replaceSource(newSource: FirSourceElement?) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirQualifiedAccessExpression diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt index 291822148ca..da34ebaba72 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -39,6 +40,7 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() { abstract override fun replaceCalleeReference(newCalleeReference: FirReference) + @FirImplementationDetail abstract override fun replaceSource(newSource: FirSourceElement?) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirThisReceiverExpression diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt index e494b2fca48..bed598584bb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -35,6 +36,7 @@ abstract class FirVariableAssignment : FirPureAbstractElement(), FirQualifiedAcc abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) + @FirImplementationDetail abstract override fun replaceSource(newSource: FirSourceElement?) abstract override fun transformCalleeReference(transformer: FirTransformer, data: D): FirVariableAssignment diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt index 1132ceb9685..9b114c5c20e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.builder import kotlin.contracts.* +import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt index 18ae06dc664..2b3e024bf41 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.builder import kotlin.contracts.* +import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt index 0166c4ceea7..582729f9290 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.builder import kotlin.contracts.* +import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt index 5a6d34b6a84..f69fcaf6015 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.builder import kotlin.contracts.* +import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVariableAssignmentBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVariableAssignmentBuilder.kt index 7e10444ac7f..85a1d99b6ba 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVariableAssignmentBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVariableAssignmentBuilder.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.builder import kotlin.contracts.* +import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt index 1be77f717e3..0aa39b8bda2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -116,6 +117,7 @@ internal class FirCallableReferenceAccessImpl( hasQuestionMarkAtLHS = newHasQuestionMarkAtLHS } + @FirImplementationDetail override fun replaceSource(newSource: FirSourceElement?) { source = newSource } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt index 08b4112b2a6..12cfb143737 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt @@ -122,6 +122,7 @@ internal class FirComponentCallImpl( replaceCalleeReference(newCalleeReference) } + @FirImplementationDetail override fun replaceSource(newSource: FirSourceElement?) { source = newSource } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt index fdddbed00fd..e20ae165932 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt @@ -120,6 +120,7 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor( replaceCalleeReference(newCalleeReference) } + @FirImplementationDetail override fun replaceSource(newSource: FirSourceElement?) { source = newSource } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt index 5358ee0e776..da3fc3f72d2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -121,6 +122,7 @@ internal class FirImplicitInvokeCallImpl( replaceCalleeReference(newCalleeReference) } + @FirImplementationDetail override fun replaceSource(newSource: FirSourceElement?) { source = newSource } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt index 8ccfb8ff8da..3495551d65c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -105,6 +106,7 @@ internal class FirQualifiedAccessExpressionImpl( explicitReceiver = newExplicitReceiver } + @FirImplementationDetail override fun replaceSource(newSource: FirSourceElement?) { source = newSource } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt index 266b0f7a42c..a7458dea533 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -113,6 +114,7 @@ internal class FirThisReceiverExpressionImpl( replaceCalleeReference(newCalleeReference) } + @FirImplementationDetail override fun replaceSource(newSource: FirSourceElement?) { source = newSource } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt index c84c3916d2a..35a6708a23f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail /* * This file was generated automatically @@ -111,6 +112,7 @@ internal class FirVariableAssignmentImpl( explicitReceiver = newExplicitReceiver } + @FirImplementationDetail override fun replaceSource(newSource: FirSourceElement?) { source = newSource } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt index fa91ec35b86..b7844ffd1f3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.expressions.impl +import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -84,6 +85,7 @@ internal class FirExpressionWithSmartcastImpl( override fun replaceTypeRef(newTypeRef: FirTypeRef) {} + @FirImplementationDetail override fun replaceSource(newSource: FirSourceElement?) { } } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/element.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/element.kt index 5f4b0afb2ac..5bee9be927d 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/element.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/element.kt @@ -89,6 +89,9 @@ fun SmartPrinter.printElement(element: Element) { fun Field.replaceDeclaration(override: Boolean, overridenType: Importable? = null, forceNullable: Boolean = false) { println() + if (name == "source") { + println("@FirImplementationDetail") + } abstract() if (override) print("override ") println(replaceFunctionDeclaration(overridenType, forceNullable)) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/implementation.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/implementation.kt index 50ee479f9d3..8042135f0bf 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/implementation.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/implementation.kt @@ -313,6 +313,9 @@ fun SmartPrinter.printImplementation(implementation: Implementation) { body: () -> Unit, ) { println() + if (field.name == "source") { + println("@FirImplementationDetail") + } abstract() print("override ${field.replaceFunctionDeclaration(overridenType, forceNullable)}") if (isInterface || isAbstract) { diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/utils.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/utils.kt index 2a2c1947e75..f30fc6a191f 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/utils.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/printer/utils.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder import org.jetbrains.kotlin.fir.tree.generator.firImplementationDetailType import org.jetbrains.kotlin.fir.tree.generator.model.* import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType -import org.jetbrains.kotlin.utils.addToStdlib.runIf import java.io.File class GeneratedFile(val file: File, val newText: String) @@ -71,7 +70,11 @@ private fun Element.collectImportsInternal(base: List, kind: ImportKind) allFields.flatMap { it.overridenTypes.mapNotNull { it.fullQualifiedName } } + allFields.flatMap { it.arguments.mapNotNull { it.fullQualifiedName } } + typeArguments.flatMap { it.upperBounds.mapNotNull { it.fullQualifiedName } } - return fqns.filterRedundantImports(packageName, kind) + val result = fqns.filterRedundantImports(packageName, kind) + if (allFields.any { it.name == "source" && it.withReplace }) { + return (result + "org.jetbrains.kotlin.fir.FirImplementationDetail").distinct() + } + return result } private fun List.filterRedundantImports(