diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index 0f5c8bd64eb..2519f87d0da 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeStubDiagnostic import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.buildResolvedReifiedParameterReference +import org.jetbrains.kotlin.fir.expressions.impl.FirQualifiedAccessExpressionImpl import org.jetbrains.kotlin.fir.references.* import org.jetbrains.kotlin.fir.references.builder.buildBackingFieldReference import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference @@ -268,7 +269,8 @@ class FirCallResolver( nonFatalDiagnostics = extractNonFatalDiagnostics( nameReference.source, qualifiedAccess.explicitReceiver, - referencedSymbol + referencedSymbol, + (qualifiedAccess as? FirQualifiedAccessExpressionImpl)?.nonFatalDiagnostics ) ) } @@ -294,12 +296,27 @@ class FirCallResolver( private fun extractNonFatalDiagnostics( source: FirSourceElement?, explicitReceiver: FirExpression?, - symbol: FirClassLikeSymbol<*> + symbol: FirClassLikeSymbol<*>, + extraNotFatalDiagnostics: List? ): List { val prevDiagnostics = (explicitReceiver as? FirResolvedQualifier)?.nonFatalDiagnostics ?: emptyList() - return symbol.fir.deprecation?.forUseSite()?.let { - prevDiagnostics + ConeDeprecated(source, symbol, it) - } ?: prevDiagnostics + var result: MutableList? = null + + val deprecation = symbol.fir.deprecation?.forUseSite() + if (deprecation != null) { + result = mutableListOf() + result.addAll(prevDiagnostics) + result.add(ConeDeprecated(source, symbol, deprecation)) + } + if (extraNotFatalDiagnostics != null && extraNotFatalDiagnostics.isNotEmpty()) { + if (result == null) { + result = mutableListOf() + result.addAll(prevDiagnostics) + } + result.addAll(extraNotFatalDiagnostics) + } + + return result?.toList() ?: prevDiagnostics } fun resolveCallableReference( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt index 87bba3095ad..efd5e75473e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt @@ -9,6 +9,7 @@ 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 +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -42,6 +43,7 @@ class FirIntegerOperatorCall @FirImplementationDetail constructor( explicitReceiver, dispatchReceiver, extensionReceiver, + mutableListOf(), argumentList, calleeReference, FirFunctionCallOrigin.Operator 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 16742d4d3b1..5f123d7ded5 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 @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -27,6 +28,7 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression + abstract override val nonFatalDiagnostics: List abstract override val calleeReference: FirNamedReference abstract val hasQuestionMarkAtLHS: Boolean 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 f4eefe07757..238cab062e0 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 @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -26,6 +27,7 @@ abstract class FirComponentCall : FirFunctionCall() { abstract override val typeArguments: List abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression + abstract override val nonFatalDiagnostics: List abstract override val argumentList: FirArgumentList abstract override val calleeReference: FirNamedReference abstract override val origin: FirFunctionCallOrigin 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 733c3e7a8d9..a8bcd90299e 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 @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -29,6 +30,7 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression + abstract override val nonFatalDiagnostics: List abstract val originalExpression: FirQualifiedAccessExpression abstract val typesFromSmartCast: Collection abstract val originalType: FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcastToNull.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcastToNull.kt index 813e65a7538..167280223c8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcastToNull.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcastToNull.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -29,6 +30,7 @@ abstract class FirExpressionWithSmartcastToNull : FirExpressionWithSmartcast() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression + abstract override val nonFatalDiagnostics: List abstract override val isStable: Boolean abstract override val originalExpression: FirQualifiedAccessExpression abstract override val typesFromSmartCast: Collection 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 e52460a7162..eb3a95bfb36 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 @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -27,6 +28,7 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression + abstract override val nonFatalDiagnostics: List abstract override val argumentList: FirArgumentList abstract override val calleeReference: FirNamedReference abstract val origin: FirFunctionCallOrigin 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 f2b8eb07658..faacb4f7390 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 @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -27,6 +28,7 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression + abstract override val nonFatalDiagnostics: List abstract override val argumentList: FirArgumentList abstract override val calleeReference: FirNamedReference abstract override val origin: FirFunctionCallOrigin 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 266e410008e..7f3a39cb5a0 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 @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -27,6 +28,7 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirQualifiedAcces abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression + abstract val nonFatalDiagnostics: List override fun accept(visitor: FirVisitor, data: D): R = visitor.visitQualifiedAccessExpression(this, data) 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 ea37c0b4a07..29e529c9248 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 @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -27,6 +28,7 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression + abstract override val nonFatalDiagnostics: List abstract override val calleeReference: FirThisReference override fun accept(visitor: FirVisitor, data: D): R = visitor.visitThisReceiverExpression(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt index 2f2c029fead..7222b38150d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.builder import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.FirBuilderDsl +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -34,6 +35,7 @@ interface FirAbstractFunctionCallBuilder : FirQualifiedAccessBuilder, FirCallBui abstract override var source: FirSourceElement? abstract override var argumentList: FirArgumentList abstract var typeRef: FirTypeRef + abstract val nonFatalDiagnostics: MutableList abstract var calleeReference: FirNamedReference abstract var origin: FirFunctionCallOrigin override fun build(): FirFunctionCall 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 91080b3f078..8c5f95034e1 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 @@ -10,6 +10,7 @@ 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 +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -38,6 +39,7 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotati override var explicitReceiver: FirExpression? = null override var dispatchReceiver: FirExpression = FirNoReceiverExpression override var extensionReceiver: FirExpression = FirNoReceiverExpression + val nonFatalDiagnostics: MutableList = mutableListOf() lateinit var calleeReference: FirNamedReference var hasQuestionMarkAtLHS: Boolean = false @@ -50,6 +52,7 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotati explicitReceiver, dispatchReceiver, extensionReceiver, + nonFatalDiagnostics, calleeReference, hasQuestionMarkAtLHS, ) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt index cd30c70ab7a..dc9513e662b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt @@ -10,6 +10,7 @@ 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 +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirComponentCall @@ -41,6 +42,7 @@ class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, F val typeArguments: MutableList = mutableListOf() var dispatchReceiver: FirExpression = FirNoReceiverExpression var extensionReceiver: FirExpression = FirNoReceiverExpression + val nonFatalDiagnostics: MutableList = mutableListOf() override var argumentList: FirArgumentList = FirEmptyArgumentList lateinit var explicitReceiver: FirExpression var componentIndex: Int by kotlin.properties.Delegates.notNull() @@ -52,6 +54,7 @@ class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, F typeArguments, dispatchReceiver, extensionReceiver, + nonFatalDiagnostics, argumentList, explicitReceiver, componentIndex, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt index 5904dbc73a6..8f2c535da01 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt @@ -10,6 +10,7 @@ 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 +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList @@ -41,6 +42,7 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio override var explicitReceiver: FirExpression? = null override var dispatchReceiver: FirExpression = FirNoReceiverExpression override var extensionReceiver: FirExpression = FirNoReceiverExpression + override val nonFatalDiagnostics: MutableList = mutableListOf() override var argumentList: FirArgumentList = FirEmptyArgumentList override lateinit var calleeReference: FirNamedReference override var origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Regular @@ -55,6 +57,7 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio explicitReceiver, dispatchReceiver, extensionReceiver, + nonFatalDiagnostics, argumentList, calleeReference, origin, 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 9c7c164f27d..b0a281a803d 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 @@ -10,6 +10,7 @@ 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 +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList @@ -40,6 +41,7 @@ open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnn override var explicitReceiver: FirExpression? = null override var dispatchReceiver: FirExpression = FirNoReceiverExpression override var extensionReceiver: FirExpression = FirNoReceiverExpression + override val nonFatalDiagnostics: MutableList = mutableListOf() override var argumentList: FirArgumentList = FirEmptyArgumentList override lateinit var calleeReference: FirNamedReference @@ -51,6 +53,7 @@ open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnn explicitReceiver, dispatchReceiver, extensionReceiver, + nonFatalDiagnostics, argumentList, calleeReference, ) 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 5157e4c9375..f75597facc2 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 @@ -10,6 +10,7 @@ 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 +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression @@ -38,7 +39,9 @@ class FirQualifiedAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnota override var explicitReceiver: FirExpression? = null override var dispatchReceiver: FirExpression = FirNoReceiverExpression override var extensionReceiver: FirExpression = FirNoReceiverExpression + val nonFatalDiagnostics: MutableList = mutableListOf() + @OptIn(FirImplementationDetail::class) override fun build(): FirQualifiedAccessExpression { return FirQualifiedAccessExpressionImpl( source, @@ -49,6 +52,7 @@ class FirQualifiedAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnota explicitReceiver, dispatchReceiver, extensionReceiver, + nonFatalDiagnostics, ) } 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 eaad5e4a7be..5d01efe3721 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 @@ -10,6 +10,7 @@ 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 +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression @@ -35,6 +36,7 @@ class FirThisReceiverExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotatio override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override val typeArguments: MutableList = mutableListOf() + val nonFatalDiagnostics: MutableList = mutableListOf() lateinit var calleeReference: FirThisReference override fun build(): FirThisReceiverExpression { @@ -43,6 +45,7 @@ class FirThisReceiverExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotatio typeRef, annotations, typeArguments, + nonFatalDiagnostics, calleeReference, ) } 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 cd25654506d..62d62e09fd1 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 @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -29,6 +30,7 @@ internal class FirCallableReferenceAccessImpl( override var explicitReceiver: FirExpression?, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, + override val nonFatalDiagnostics: MutableList, override var calleeReference: FirNamedReference, override var hasQuestionMarkAtLHS: Boolean, ) : FirCallableReferenceAccess() { 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 5cd609def35..0f08bdb84de 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 @@ -7,6 +7,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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirComponentCall @@ -33,6 +34,7 @@ internal class FirComponentCallImpl( override val typeArguments: MutableList, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, + override val nonFatalDiagnostics: MutableList, override var argumentList: FirArgumentList, override var explicitReceiver: FirExpression, override val componentIndex: Int, 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 df0bb963cd5..d2dac90de0f 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 @@ -7,6 +7,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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -31,6 +32,7 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor( override var explicitReceiver: FirExpression?, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, + override val nonFatalDiagnostics: MutableList, override var argumentList: FirArgumentList, override var calleeReference: FirNamedReference, override val origin: FirFunctionCallOrigin, 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 64fb7c66003..bf2cff2c20b 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 @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -31,6 +32,7 @@ internal class FirImplicitInvokeCallImpl( override var explicitReceiver: FirExpression?, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, + override val nonFatalDiagnostics: MutableList, override var argumentList: FirArgumentList, override var calleeReference: FirNamedReference, ) : FirImplicitInvokeCall() { 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 f27d5785213..685b5739d64 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 @@ -5,7 +5,9 @@ package org.jetbrains.kotlin.fir.expressions.impl +import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression @@ -13,14 +15,13 @@ 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 * DO NOT MODIFY IT MANUALLY */ -internal class FirQualifiedAccessExpressionImpl( +class FirQualifiedAccessExpressionImpl @FirImplementationDetail constructor( override var source: FirSourceElement?, override var typeRef: FirTypeRef, override val annotations: MutableList, @@ -29,6 +30,7 @@ internal class FirQualifiedAccessExpressionImpl( override var explicitReceiver: FirExpression?, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, + override val nonFatalDiagnostics: MutableList, ) : FirQualifiedAccessExpression() { override fun acceptChildren(visitor: FirVisitor, data: D) { typeRef.accept(visitor, data) 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 e5b3ed386c7..41ea1b23ab7 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 @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.expressions.impl import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression @@ -27,6 +28,7 @@ internal class FirThisReceiverExpressionImpl( override var typeRef: FirTypeRef, override val annotations: MutableList, override val typeArguments: MutableList, + override val nonFatalDiagnostics: MutableList, override var calleeReference: FirThisReference, ) : FirThisReceiverExpression() { override var explicitReceiver: FirExpression? = null diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastBuilder.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastBuilder.kt index faa0b3f8c65..175052ffa1d 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastBuilder.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastBuilder.kt @@ -19,7 +19,7 @@ class FirExpressionWithSmartcastBuilder { lateinit var smartcastStability: SmartcastStability fun build(): FirExpressionWithSmartcast { - return FirExpressionWithSmartcastImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability) + return FirExpressionWithSmartcastImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability, listOf()) } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastToNullBuilder.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastToNullBuilder.kt index 4d3df9a28b6..6cb615e68c9 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastToNullBuilder.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastToNullBuilder.kt @@ -19,7 +19,7 @@ class FirExpressionWithSmartcastToNullBuilder { lateinit var smartcastStability: SmartcastStability fun build(): FirExpressionWithSmartcastToNull { - return FirExpressionWithSmartcastToNullImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability) + return FirExpressionWithSmartcastToNullImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability, listOf()) } } 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 25496b9e79e..edc0938f1f9 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 @@ -7,6 +7,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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast @@ -25,7 +26,8 @@ internal class FirExpressionWithSmartcastImpl( override var originalExpression: FirQualifiedAccessExpression, override val smartcastType: FirTypeRef, override val typesFromSmartCast: Collection, - override val smartcastStability: SmartcastStability + override val smartcastStability: SmartcastStability, + override val nonFatalDiagnostics: List ) : FirExpressionWithSmartcast() { init { assert(originalExpression.typeRef is FirResolvedTypeRef) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastToNullImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastToNullImpl.kt index 2d02bac758c..b1ad023319b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastToNullImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastToNullImpl.kt @@ -7,6 +7,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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull @@ -25,7 +26,8 @@ class FirExpressionWithSmartcastToNullImpl( override var originalExpression: FirQualifiedAccessExpression, override val smartcastType: FirTypeRef, override val typesFromSmartCast: Collection, - override val smartcastStability: SmartcastStability + override val smartcastStability: SmartcastStability, + override val nonFatalDiagnostics: List ) : FirExpressionWithSmartcastToNull() { init { assert(originalExpression.typeRef is FirResolvedTypeRef) 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 d89e15173a0..61057ba69d7 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 @@ -168,7 +168,9 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() default("origin", "FirFunctionCallOrigin.Operator") } - impl(qualifiedAccessExpression) + impl(qualifiedAccessExpression) { + publicImplementation() + } noImpl(expressionWithSmartcast) noImpl(expressionWithSmartcastToNull) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index 25b0d84f81d..de123f11938 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -192,6 +192,10 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild +field("source", sourceElementType, nullable = true, withReplace = true) } + qualifiedAccessExpression.configure { + +fieldList("nonFatalDiagnostics", coneDiagnosticType) + } + constExpression.configure { withArg("T") +field("kind", constKindType.withArgs("T"), withReplace = true)