[FIR] Make extensionReceiver and dispatchReceiver nullable

Get rid of FirNoReceiverExpression

^KT-59650 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-08-30 18:50:18 +03:00
committed by Space Team
parent 585c3fe4b5
commit f203681ffa
75 changed files with 292 additions and 320 deletions
@@ -26,8 +26,8 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
abstract override val contextReceiverArguments: List<FirExpression>
abstract override val typeArguments: List<FirTypeProjection>
abstract override val explicitReceiver: FirExpression?
abstract override val dispatchReceiver: FirExpression
abstract override val extensionReceiver: FirExpression
abstract override val dispatchReceiver: FirExpression?
abstract override val extensionReceiver: FirExpression?
abstract override val source: KtSourceElement?
abstract override val nonFatalDiagnostics: List<ConeDiagnostic>
abstract override val calleeReference: FirNamedReference
@@ -49,9 +49,9 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?)
@FirImplementationDetail
abstract override fun replaceSource(newSource: KtSourceElement?)
@@ -25,8 +25,8 @@ abstract class FirComponentCall : FirFunctionCall() {
abstract override val annotations: List<FirAnnotation>
abstract override val contextReceiverArguments: List<FirExpression>
abstract override val typeArguments: List<FirTypeProjection>
abstract override val dispatchReceiver: FirExpression
abstract override val extensionReceiver: FirExpression
abstract override val dispatchReceiver: FirExpression?
abstract override val extensionReceiver: FirExpression?
abstract override val source: KtSourceElement?
abstract override val nonFatalDiagnostics: List<ConeDiagnostic>
abstract override val argumentList: FirArgumentList
@@ -49,9 +49,9 @@ abstract class FirComponentCall : FirFunctionCall() {
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?)
@FirImplementationDetail
abstract override fun replaceSource(newSource: KtSourceElement?)
@@ -23,7 +23,7 @@ abstract class FirDelegatedConstructorCall : FirPureAbstractElement(), FirResolv
abstract override val argumentList: FirArgumentList
abstract override val contextReceiverArguments: List<FirExpression>
abstract val constructedTypeRef: FirTypeRef
abstract val dispatchReceiver: FirExpression
abstract val dispatchReceiver: FirExpression?
abstract override val calleeReference: FirReference
abstract val isThis: Boolean
abstract val isSuper: Boolean
@@ -42,7 +42,7 @@ abstract class FirDelegatedConstructorCall : FirPureAbstractElement(), FirResolv
abstract fun replaceConstructedTypeRef(newConstructedTypeRef: FirTypeRef)
abstract fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
@@ -26,8 +26,8 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
abstract override val contextReceiverArguments: List<FirExpression>
abstract override val typeArguments: List<FirTypeProjection>
abstract override val explicitReceiver: FirExpression?
abstract override val dispatchReceiver: FirExpression
abstract override val extensionReceiver: FirExpression
abstract override val dispatchReceiver: FirExpression?
abstract override val extensionReceiver: FirExpression?
abstract override val source: KtSourceElement?
abstract override val nonFatalDiagnostics: List<ConeDiagnostic>
abstract override val argumentList: FirArgumentList
@@ -50,9 +50,9 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?)
@FirImplementationDetail
abstract override fun replaceSource(newSource: KtSourceElement?)
@@ -26,8 +26,8 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() {
abstract override val contextReceiverArguments: List<FirExpression>
abstract override val typeArguments: List<FirTypeProjection>
abstract override val explicitReceiver: FirExpression?
abstract override val dispatchReceiver: FirExpression
abstract override val extensionReceiver: FirExpression
abstract override val dispatchReceiver: FirExpression?
abstract override val extensionReceiver: FirExpression?
abstract override val source: KtSourceElement?
abstract override val nonFatalDiagnostics: List<ConeDiagnostic>
abstract override val argumentList: FirArgumentList
@@ -50,9 +50,9 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() {
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?)
@FirImplementationDetail
abstract override fun replaceSource(newSource: KtSourceElement?)
@@ -31,8 +31,8 @@ abstract class FirIntegerLiteralOperatorCall : FirFunctionCall() {
abstract override val argumentList: FirArgumentList
abstract override val calleeReference: FirNamedReference
abstract override val origin: FirFunctionCallOrigin
abstract override val dispatchReceiver: FirExpression
abstract override val extensionReceiver: FirExpression
abstract override val dispatchReceiver: FirExpression?
abstract override val extensionReceiver: FirExpression?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitIntegerLiteralOperatorCall(this, data)
@@ -61,9 +61,9 @@ abstract class FirIntegerLiteralOperatorCall : FirFunctionCall() {
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirIntegerLiteralOperatorCall
@@ -22,7 +22,7 @@ abstract class FirMultiDelegatedConstructorCall : FirDelegatedConstructorCall()
abstract override val argumentList: FirArgumentList
abstract override val contextReceiverArguments: List<FirExpression>
abstract override val constructedTypeRef: FirTypeRef
abstract override val dispatchReceiver: FirExpression
abstract override val dispatchReceiver: FirExpression?
abstract override val calleeReference: FirReference
abstract override val isThis: Boolean
abstract override val isSuper: Boolean
@@ -42,7 +42,7 @@ abstract class FirMultiDelegatedConstructorCall : FirDelegatedConstructorCall()
abstract override fun replaceConstructedTypeRef(newConstructedTypeRef: FirTypeRef)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
@@ -26,8 +26,8 @@ abstract class FirPropertyAccessExpression : FirQualifiedAccessExpression() {
abstract override val contextReceiverArguments: List<FirExpression>
abstract override val typeArguments: List<FirTypeProjection>
abstract override val explicitReceiver: FirExpression?
abstract override val dispatchReceiver: FirExpression
abstract override val extensionReceiver: FirExpression
abstract override val dispatchReceiver: FirExpression?
abstract override val extensionReceiver: FirExpression?
abstract override val source: KtSourceElement?
abstract override val nonFatalDiagnostics: List<ConeDiagnostic>
@@ -49,9 +49,9 @@ abstract class FirPropertyAccessExpression : FirQualifiedAccessExpression() {
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?)
@FirImplementationDetail
abstract override fun replaceSource(newSource: KtSourceElement?)
@@ -26,8 +26,8 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirResolvable, Fi
abstract override val contextReceiverArguments: List<FirExpression>
abstract val typeArguments: List<FirTypeProjection>
abstract val explicitReceiver: FirExpression?
abstract val dispatchReceiver: FirExpression
abstract val extensionReceiver: FirExpression
abstract val dispatchReceiver: FirExpression?
abstract val extensionReceiver: FirExpression?
abstract override val source: KtSourceElement?
abstract val nonFatalDiagnostics: List<ConeDiagnostic>
@@ -49,9 +49,9 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirResolvable, Fi
abstract fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract fun replaceExtensionReceiver(newExtensionReceiver: FirExpression)
abstract fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?)
@FirImplementationDetail
abstract fun replaceSource(newSource: KtSourceElement?)
@@ -26,8 +26,8 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
abstract override val contextReceiverArguments: List<FirExpression>
abstract override val typeArguments: List<FirTypeProjection>
abstract override val explicitReceiver: FirExpression?
abstract override val dispatchReceiver: FirExpression
abstract override val extensionReceiver: FirExpression
abstract override val dispatchReceiver: FirExpression?
abstract override val extensionReceiver: FirExpression?
abstract override val source: KtSourceElement?
abstract override val nonFatalDiagnostics: List<ConeDiagnostic>
abstract override val calleeReference: FirThisReference
@@ -49,9 +49,9 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression)
abstract override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression)
abstract override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?)
@FirImplementationDetail
abstract override fun replaceSource(newSource: KtSourceElement?)
@@ -34,8 +34,8 @@ interface FirAbstractFunctionCallBuilder : FirQualifiedAccessExpressionBuilder,
abstract override val contextReceiverArguments: MutableList<FirExpression>
abstract override val typeArguments: MutableList<FirTypeProjection>
abstract override var explicitReceiver: FirExpression?
abstract override var dispatchReceiver: FirExpression
abstract override var extensionReceiver: FirExpression
abstract override var dispatchReceiver: FirExpression?
abstract override var extensionReceiver: FirExpression?
abstract override var source: KtSourceElement?
abstract override val nonFatalDiagnostics: MutableList<ConeDiagnostic>
abstract override var argumentList: FirArgumentList
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.builder.FirQualifiedAccessExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.impl.FirCallableReferenceAccessImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.types.ConeKotlinType
@@ -39,8 +38,8 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessExpressionBuilder, F
override val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
override var explicitReceiver: FirExpression? = null
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
override var extensionReceiver: FirExpression = FirNoReceiverExpression
override var dispatchReceiver: FirExpression? = null
override var extensionReceiver: FirExpression? = null
override var source: KtSourceElement? = null
override val nonFatalDiagnostics: MutableList<ConeDiagnostic> = mutableListOf()
lateinit var calleeReference: FirNamedReference
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.expressions.FirFunctionCallOrigin
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.impl.FirComponentCallImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference
@@ -43,8 +42,8 @@ class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, F
override val annotations: MutableList<FirAnnotation> = mutableListOf()
val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
var dispatchReceiver: FirExpression = FirNoReceiverExpression
var extensionReceiver: FirExpression = FirNoReceiverExpression
var dispatchReceiver: FirExpression? = null
var extensionReceiver: FirExpression? = null
override var source: KtSourceElement? = null
val nonFatalDiagnostics: MutableList<ConeDiagnostic> = mutableListOf()
override var argumentList: FirArgumentList = FirEmptyArgumentList
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
import org.jetbrains.kotlin.fir.expressions.impl.FirDelegatedConstructorCallImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.impl.FirExplicitSuperReference
import org.jetbrains.kotlin.fir.references.impl.FirExplicitThisReference
@@ -38,7 +37,7 @@ class FirDelegatedConstructorCallBuilder : FirCallBuilder, FirAnnotationContaine
override var argumentList: FirArgumentList = FirEmptyArgumentList
val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
lateinit var constructedTypeRef: FirTypeRef
var dispatchReceiver: FirExpression = FirNoReceiverExpression
var dispatchReceiver: FirExpression? = null
lateinit var calleeReference: FirReference
var isThis: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.expressions.FirFunctionCallOrigin
import org.jetbrains.kotlin.fir.expressions.builder.FirAbstractFunctionCallBuilder
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.impl.FirFunctionCallImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.types.ConeKotlinType
@@ -42,8 +41,8 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio
override val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
override var explicitReceiver: FirExpression? = null
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
override var extensionReceiver: FirExpression = FirNoReceiverExpression
override var dispatchReceiver: FirExpression? = null
override var extensionReceiver: FirExpression? = null
override var source: KtSourceElement? = null
override val nonFatalDiagnostics: MutableList<ConeDiagnostic> = mutableListOf()
override var argumentList: FirArgumentList = FirEmptyArgumentList
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.expressions.FirImplicitInvokeCall
import org.jetbrains.kotlin.fir.expressions.builder.FirAbstractFunctionCallBuilder
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.impl.FirImplicitInvokeCallImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.types.ConeKotlinType
@@ -42,8 +41,8 @@ open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnn
override val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
override var explicitReceiver: FirExpression? = null
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
override var extensionReceiver: FirExpression = FirNoReceiverExpression
override var dispatchReceiver: FirExpression? = null
override var extensionReceiver: FirExpression? = null
override var source: KtSourceElement? = null
override val nonFatalDiagnostics: MutableList<ConeDiagnostic> = mutableListOf()
override var argumentList: FirArgumentList = FirEmptyArgumentList
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.expressions.FirIntegerLiteralOperatorCall
import org.jetbrains.kotlin.fir.expressions.builder.FirAbstractFunctionCallBuilder
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.impl.FirIntegerLiteralOperatorCallImpl
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.types.ConeKotlinType
@@ -47,8 +46,8 @@ open class FirIntegerLiteralOperatorCallBuilder : FirAbstractFunctionCallBuilder
override var argumentList: FirArgumentList = FirEmptyArgumentList
override lateinit var calleeReference: FirNamedReference
override lateinit var origin: FirFunctionCallOrigin
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
override var extensionReceiver: FirExpression = FirNoReceiverExpression
override var dispatchReceiver: FirExpression? = null
override var extensionReceiver: FirExpression? = null
override fun build(): FirIntegerLiteralOperatorCall {
return FirIntegerLiteralOperatorCallImpl(
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.builder.FirQualifiedAccessExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.expressions.impl.FirPropertyAccessExpressionImpl
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.types.ConeKotlinType
@@ -39,8 +38,8 @@ class FirPropertyAccessExpressionBuilder : FirQualifiedAccessExpressionBuilder,
override val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
override var explicitReceiver: FirExpression? = null
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
override var extensionReceiver: FirExpression = FirNoReceiverExpression
override var dispatchReceiver: FirExpression? = null
override var extensionReceiver: FirExpression? = null
override var source: KtSourceElement? = null
override val nonFatalDiagnostics: MutableList<ConeDiagnostic> = mutableListOf()
@@ -29,8 +29,8 @@ interface FirQualifiedAccessExpressionBuilder {
abstract val contextReceiverArguments: MutableList<FirExpression>
abstract val typeArguments: MutableList<FirTypeProjection>
abstract var explicitReceiver: FirExpression?
abstract var dispatchReceiver: FirExpression
abstract var extensionReceiver: FirExpression
abstract var dispatchReceiver: FirExpression?
abstract var extensionReceiver: FirExpression?
abstract var source: KtSourceElement?
abstract val nonFatalDiagnostics: MutableList<ConeDiagnostic>
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.builder.FirQualifiedAccessExpressionBuilder
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.expressions.impl.FirThisReceiverExpressionImpl
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.FirThisReference
@@ -65,14 +64,14 @@ class FirThisReceiverExpressionBuilder : FirQualifiedAccessExpressionBuilder, Fi
}
@Deprecated("Modification of 'dispatchReceiver' has no impact for FirThisReceiverExpressionBuilder", level = DeprecationLevel.HIDDEN)
override var dispatchReceiver: FirExpression
override var dispatchReceiver: FirExpression?
get() = throw IllegalStateException()
set(_) {
throw IllegalStateException()
}
@Deprecated("Modification of 'extensionReceiver' has no impact for FirThisReceiverExpressionBuilder", level = DeprecationLevel.HIDDEN)
override var extensionReceiver: FirExpression
override var extensionReceiver: FirExpression?
get() = throw IllegalStateException()
set(_) {
throw IllegalStateException()
@@ -32,8 +32,8 @@ internal class FirCallableReferenceAccessImpl(
override var contextReceiverArguments: MutableOrEmptyList<FirExpression>,
override var typeArguments: MutableOrEmptyList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override var dispatchReceiver: FirExpression?,
override var extensionReceiver: FirExpression?,
override var source: KtSourceElement?,
override var nonFatalDiagnostics: MutableOrEmptyList<ConeDiagnostic>,
override var calleeReference: FirNamedReference,
@@ -45,10 +45,10 @@ internal class FirCallableReferenceAccessImpl(
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver.accept(visitor, data)
dispatchReceiver?.accept(visitor, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver.accept(visitor, data)
extensionReceiver?.accept(visitor, data)
}
calleeReference.accept(visitor, data)
}
@@ -59,10 +59,10 @@ internal class FirCallableReferenceAccessImpl(
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver = extensionReceiver.transform(transformer, data)
extensionReceiver = extensionReceiver?.transform(transformer, data)
}
transformCalleeReference(transformer, data)
return this
@@ -108,11 +108,11 @@ internal class FirCallableReferenceAccessImpl(
explicitReceiver = newExplicitReceiver
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {
dispatchReceiver = newDispatchReceiver
}
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression) {
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?) {
extensionReceiver = newExtensionReceiver
}
@@ -36,8 +36,8 @@ internal class FirComponentCallImpl(
override var annotations: MutableOrEmptyList<FirAnnotation>,
override var contextReceiverArguments: MutableOrEmptyList<FirExpression>,
override var typeArguments: MutableOrEmptyList<FirTypeProjection>,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override var dispatchReceiver: FirExpression?,
override var extensionReceiver: FirExpression?,
override var source: KtSourceElement?,
override var nonFatalDiagnostics: MutableOrEmptyList<ConeDiagnostic>,
override var argumentList: FirArgumentList,
@@ -55,10 +55,10 @@ internal class FirComponentCallImpl(
calleeReference.accept(visitor, data)
explicitReceiver.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver.accept(visitor, data)
dispatchReceiver?.accept(visitor, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver.accept(visitor, data)
extensionReceiver?.accept(visitor, data)
}
}
@@ -70,10 +70,10 @@ internal class FirComponentCallImpl(
transformCalleeReference(transformer, data)
explicitReceiver = explicitReceiver.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver = extensionReceiver.transform(transformer, data)
extensionReceiver = extensionReceiver?.transform(transformer, data)
}
return this
}
@@ -114,11 +114,11 @@ internal class FirComponentCallImpl(
typeArguments = newTypeArguments.toMutableOrEmpty()
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {
dispatchReceiver = newDispatchReceiver
}
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression) {
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?) {
extensionReceiver = newExtensionReceiver
}
@@ -31,7 +31,7 @@ internal class FirDelegatedConstructorCallImpl(
override var argumentList: FirArgumentList,
override var contextReceiverArguments: MutableOrEmptyList<FirExpression>,
override var constructedTypeRef: FirTypeRef,
override var dispatchReceiver: FirExpression,
override var dispatchReceiver: FirExpression?,
override var calleeReference: FirReference,
override val isThis: Boolean,
) : FirDelegatedConstructorCall() {
@@ -60,7 +60,7 @@ internal class FirDelegatedConstructorCallImpl(
}
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirDelegatedConstructorCallImpl {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
return this
}
@@ -85,7 +85,7 @@ internal class FirDelegatedConstructorCallImpl(
constructedTypeRef = newConstructedTypeRef
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {
dispatchReceiver = newDispatchReceiver
}
@@ -34,8 +34,8 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
override var contextReceiverArguments: MutableOrEmptyList<FirExpression>,
override var typeArguments: MutableOrEmptyList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override var dispatchReceiver: FirExpression?,
override var extensionReceiver: FirExpression?,
override var source: KtSourceElement?,
override var nonFatalDiagnostics: MutableOrEmptyList<ConeDiagnostic>,
override var argumentList: FirArgumentList,
@@ -48,10 +48,10 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver.accept(visitor, data)
dispatchReceiver?.accept(visitor, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver.accept(visitor, data)
extensionReceiver?.accept(visitor, data)
}
argumentList.accept(visitor, data)
calleeReference.accept(visitor, data)
@@ -63,10 +63,10 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver = extensionReceiver.transform(transformer, data)
extensionReceiver = extensionReceiver?.transform(transformer, data)
}
argumentList = argumentList.transform(transformer, data)
transformCalleeReference(transformer, data)
@@ -113,11 +113,11 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
explicitReceiver = newExplicitReceiver
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {
dispatchReceiver = newDispatchReceiver
}
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression) {
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?) {
extensionReceiver = newExtensionReceiver
}
@@ -34,8 +34,8 @@ internal class FirImplicitInvokeCallImpl(
override var contextReceiverArguments: MutableOrEmptyList<FirExpression>,
override var typeArguments: MutableOrEmptyList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override var dispatchReceiver: FirExpression?,
override var extensionReceiver: FirExpression?,
override var source: KtSourceElement?,
override var nonFatalDiagnostics: MutableOrEmptyList<ConeDiagnostic>,
override var argumentList: FirArgumentList,
@@ -49,10 +49,10 @@ internal class FirImplicitInvokeCallImpl(
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver.accept(visitor, data)
dispatchReceiver?.accept(visitor, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver.accept(visitor, data)
extensionReceiver?.accept(visitor, data)
}
argumentList.accept(visitor, data)
calleeReference.accept(visitor, data)
@@ -64,10 +64,10 @@ internal class FirImplicitInvokeCallImpl(
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver = extensionReceiver.transform(transformer, data)
extensionReceiver = extensionReceiver?.transform(transformer, data)
}
argumentList = argumentList.transform(transformer, data)
transformCalleeReference(transformer, data)
@@ -114,11 +114,11 @@ internal class FirImplicitInvokeCallImpl(
explicitReceiver = newExplicitReceiver
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {
dispatchReceiver = newDispatchReceiver
}
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression) {
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?) {
extensionReceiver = newExtensionReceiver
}
@@ -39,8 +39,8 @@ internal class FirIntegerLiteralOperatorCallImpl(
override var argumentList: FirArgumentList,
override var calleeReference: FirNamedReference,
override val origin: FirFunctionCallOrigin,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override var dispatchReceiver: FirExpression?,
override var extensionReceiver: FirExpression?,
) : FirIntegerLiteralOperatorCall() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
@@ -48,10 +48,10 @@ internal class FirIntegerLiteralOperatorCallImpl(
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver.accept(visitor, data)
dispatchReceiver?.accept(visitor, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver.accept(visitor, data)
extensionReceiver?.accept(visitor, data)
}
argumentList.accept(visitor, data)
calleeReference.accept(visitor, data)
@@ -63,10 +63,10 @@ internal class FirIntegerLiteralOperatorCallImpl(
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver = extensionReceiver.transform(transformer, data)
extensionReceiver = extensionReceiver?.transform(transformer, data)
}
argumentList = argumentList.transform(transformer, data)
transformCalleeReference(transformer, data)
@@ -94,12 +94,12 @@ internal class FirIntegerLiteralOperatorCallImpl(
}
override fun <D> transformDispatchReceiver(transformer: FirTransformer<D>, data: D): FirIntegerLiteralOperatorCallImpl {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
return this
}
override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirIntegerLiteralOperatorCallImpl {
extensionReceiver = extensionReceiver.transform(transformer, data)
extensionReceiver = extensionReceiver?.transform(transformer, data)
return this
}
@@ -145,11 +145,11 @@ internal class FirIntegerLiteralOperatorCallImpl(
replaceCalleeReference(newCalleeReference)
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {
dispatchReceiver = newDispatchReceiver
}
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression) {
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?) {
extensionReceiver = newExtensionReceiver
}
}
@@ -33,7 +33,7 @@ class FirLazyDelegatedConstructorCall @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> get() = error("FirLazyDelegatedConstructorCall should be calculated before accessing")
override val argumentList: FirArgumentList get() = error("FirLazyDelegatedConstructorCall should be calculated before accessing")
override val contextReceiverArguments: List<FirExpression> get() = error("FirLazyDelegatedConstructorCall should be calculated before accessing")
override val dispatchReceiver: FirExpression get() = error("FirLazyDelegatedConstructorCall should be calculated before accessing")
override val dispatchReceiver: FirExpression? get() = error("FirLazyDelegatedConstructorCall should be calculated before accessing")
override val isSuper: Boolean get() = !isThis
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -70,7 +70,7 @@ class FirLazyDelegatedConstructorCall @FirImplementationDetail constructor(
constructedTypeRef = newConstructedTypeRef
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {}
override fun replaceCalleeReference(newCalleeReference: FirReference) {
calleeReference = newCalleeReference
@@ -33,7 +33,7 @@ class FirMultiDelegatedConstructorCallImpl @FirImplementationDetail constructor(
override val argumentList: FirArgumentList get() = delegatedConstructorCalls.last().argumentList
override val contextReceiverArguments: List<FirExpression> get() = delegatedConstructorCalls.last().contextReceiverArguments
override val constructedTypeRef: FirTypeRef get() = delegatedConstructorCalls.last().constructedTypeRef
override val dispatchReceiver: FirExpression get() = delegatedConstructorCalls.last().dispatchReceiver
override val dispatchReceiver: FirExpression? get() = delegatedConstructorCalls.last().dispatchReceiver
override val calleeReference: FirReference get() = delegatedConstructorCalls.last().calleeReference
override val isThis: Boolean get() = delegatedConstructorCalls.last().isThis
override val isSuper: Boolean get() = !isThis
@@ -72,7 +72,7 @@ class FirMultiDelegatedConstructorCallImpl @FirImplementationDetail constructor(
override fun replaceConstructedTypeRef(newConstructedTypeRef: FirTypeRef) {}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {}
override fun replaceCalleeReference(newCalleeReference: FirReference) {}
@@ -32,8 +32,8 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
override var contextReceiverArguments: MutableOrEmptyList<FirExpression>,
override var typeArguments: MutableOrEmptyList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override var dispatchReceiver: FirExpression?,
override var extensionReceiver: FirExpression?,
override var source: KtSourceElement?,
override var nonFatalDiagnostics: MutableOrEmptyList<ConeDiagnostic>,
) : FirPropertyAccessExpression() {
@@ -44,10 +44,10 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver.accept(visitor, data)
dispatchReceiver?.accept(visitor, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver.accept(visitor, data)
extensionReceiver?.accept(visitor, data)
}
}
@@ -58,10 +58,10 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver = extensionReceiver.transform(transformer, data)
extensionReceiver = extensionReceiver?.transform(transformer, data)
}
return this
}
@@ -110,11 +110,11 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
explicitReceiver = newExplicitReceiver
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {
dispatchReceiver = newDispatchReceiver
}
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression) {
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?) {
extensionReceiver = newExtensionReceiver
}
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.FirThisReference
import org.jetbrains.kotlin.fir.types.ConeKotlinType
@@ -38,8 +37,8 @@ internal class FirThisReceiverExpressionImpl(
override val isImplicit: Boolean,
) : FirThisReceiverExpression() {
override var explicitReceiver: FirExpression? = null
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
override var extensionReceiver: FirExpression = FirNoReceiverExpression
override var dispatchReceiver: FirExpression? = null
override var extensionReceiver: FirExpression? = null
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
@@ -47,10 +46,10 @@ internal class FirThisReceiverExpressionImpl(
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver.accept(visitor, data)
dispatchReceiver?.accept(visitor, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver.accept(visitor, data)
extensionReceiver?.accept(visitor, data)
}
calleeReference.accept(visitor, data)
}
@@ -61,10 +60,10 @@ internal class FirThisReceiverExpressionImpl(
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
dispatchReceiver = dispatchReceiver.transform(transformer, data)
dispatchReceiver = dispatchReceiver?.transform(transformer, data)
}
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
extensionReceiver = extensionReceiver.transform(transformer, data)
extensionReceiver = extensionReceiver?.transform(transformer, data)
}
transformCalleeReference(transformer, data)
return this
@@ -110,11 +109,11 @@ internal class FirThisReceiverExpressionImpl(
explicitReceiver = newExplicitReceiver
}
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression) {
override fun replaceDispatchReceiver(newDispatchReceiver: FirExpression?) {
dispatchReceiver = newDispatchReceiver
}
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression) {
override fun replaceExtensionReceiver(newExtensionReceiver: FirExpression?) {
extensionReceiver = newExtensionReceiver
}