[FIR] Make extensionReceiver and dispatchReceiver nullable
Get rid of FirNoReceiverExpression ^KT-59650 Fixed
This commit is contained in:
committed by
Space Team
parent
585c3fe4b5
commit
f203681ffa
+4
-4
@@ -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?)
|
||||
|
||||
+2
-2
@@ -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?)
|
||||
|
||||
+4
-4
@@ -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
|
||||
|
||||
|
||||
+2
-2
@@ -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)
|
||||
|
||||
|
||||
+4
-4
@@ -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?)
|
||||
|
||||
+4
-4
@@ -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?)
|
||||
|
||||
+4
-4
@@ -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?)
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+1
-2
@@ -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>()
|
||||
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+2
-3
@@ -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
|
||||
|
||||
+2
-3
@@ -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(
|
||||
|
||||
+2
-3
@@ -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()
|
||||
|
||||
|
||||
+2
-2
@@ -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>
|
||||
|
||||
|
||||
+2
-3
@@ -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()
|
||||
|
||||
+8
-8
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+8
-8
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+8
-8
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+8
-8
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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) {}
|
||||
|
||||
|
||||
+8
-8
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+8
-9
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildErrorExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildErrorLoop
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirBlockImpl
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirSingleExpressionBlock
|
||||
import org.jetbrains.kotlin.fir.references.*
|
||||
@@ -135,9 +134,9 @@ private fun FirExpression.unwrapAndFlattenArgumentTo(list: MutableList<FirExpres
|
||||
|
||||
val FirVariableAssignment.explicitReceiver: FirExpression? get() = unwrapLValue()?.explicitReceiver
|
||||
|
||||
val FirVariableAssignment.dispatchReceiver: FirExpression get() = unwrapLValue()?.dispatchReceiver ?: FirNoReceiverExpression
|
||||
val FirVariableAssignment.dispatchReceiver: FirExpression? get() = unwrapLValue()?.dispatchReceiver
|
||||
|
||||
val FirVariableAssignment.extensionReceiver: FirExpression get() = unwrapLValue()?.extensionReceiver ?: FirNoReceiverExpression
|
||||
val FirVariableAssignment.extensionReceiver: FirExpression? get() = unwrapLValue()?.extensionReceiver
|
||||
|
||||
val FirVariableAssignment.calleeReference: FirReference? get() = lValue.toReference()
|
||||
|
||||
@@ -160,11 +159,11 @@ fun FirExpression.unwrapSmartcastExpression(): FirExpression =
|
||||
|
||||
/**
|
||||
* A callable reference is bound iff
|
||||
* - one of [dispatchReceiver] or [extensionReceiver] is **not** [FirNoReceiverExpression] and
|
||||
* - one of [dispatchReceiver] or [extensionReceiver] is **not** null and
|
||||
* - it's not referring to a static member.
|
||||
*/
|
||||
val FirCallableReferenceAccess.isBound: Boolean
|
||||
get() = (dispatchReceiver != FirNoReceiverExpression || extensionReceiver != FirNoReceiverExpression) &&
|
||||
get() = (dispatchReceiver != null || extensionReceiver != null) &&
|
||||
calleeReference.toResolvedCallableSymbol()?.isStatic != true
|
||||
|
||||
val FirQualifiedAccessExpression.allReceiverExpressions: List<FirExpression>
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
object FirNoReceiverExpression : FirExpression() {
|
||||
override val source: KtSourceElement? get() = null
|
||||
override val coneTypeOrNull: ConeKotlinType? get() = null
|
||||
override val annotations: List<FirAnnotation> get() = emptyList()
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirNoReceiverExpression {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceAnnotations(newAnnotations: List<FirAnnotation>) {
|
||||
throw AssertionError("Mutating annotations of FirNoReceiverExpression is not supported")
|
||||
}
|
||||
|
||||
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirExpression {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceConeTypeOrNull(newConeTypeOrNull: ConeKotlinType?) {}
|
||||
}
|
||||
@@ -662,7 +662,6 @@ class FirRenderer(
|
||||
is FirExpressionStub -> "STUB"
|
||||
is FirUnitExpression -> "Unit"
|
||||
is FirElseIfTrueCondition -> "else"
|
||||
is FirNoReceiverExpression -> ""
|
||||
else -> "??? ${expression.javaClass}"
|
||||
}
|
||||
)
|
||||
@@ -748,7 +747,7 @@ class FirRenderer(
|
||||
override fun visitDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall) {
|
||||
if (delegatedConstructorCall !is FirLazyDelegatedConstructorCall) {
|
||||
val dispatchReceiver = delegatedConstructorCall.dispatchReceiver
|
||||
if (dispatchReceiver !is FirNoReceiverExpression) {
|
||||
if (dispatchReceiver != null) {
|
||||
dispatchReceiver.accept(this)
|
||||
print(".")
|
||||
}
|
||||
@@ -996,17 +995,17 @@ class FirRenderer(
|
||||
val extensionReceiver = qualifiedAccess.extensionReceiver
|
||||
var hasSomeReceiver = true
|
||||
when {
|
||||
dispatchReceiver !is FirNoReceiverExpression && extensionReceiver !is FirNoReceiverExpression -> {
|
||||
dispatchReceiver != null && extensionReceiver != null -> {
|
||||
print("(")
|
||||
dispatchReceiver.accept(this)
|
||||
print(", ")
|
||||
extensionReceiver.accept(this)
|
||||
print(")")
|
||||
}
|
||||
dispatchReceiver !is FirNoReceiverExpression -> {
|
||||
dispatchReceiver != null -> {
|
||||
dispatchReceiver.accept(this)
|
||||
}
|
||||
extensionReceiver !is FirNoReceiverExpression -> {
|
||||
extensionReceiver != null -> {
|
||||
extensionReceiver.accept(this)
|
||||
}
|
||||
explicitReceiver != null -> {
|
||||
|
||||
+1
-2
@@ -212,8 +212,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
default("argumentList") {
|
||||
value = "FirEmptyArgumentList"
|
||||
}
|
||||
default("dispatchReceiver", "FirNoReceiverExpression")
|
||||
useTypes(noReceiverExpressionType)
|
||||
defaultNull("dispatchReceiver")
|
||||
useTypes(emptyArgumentListType)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -26,8 +26,8 @@ object FieldSets {
|
||||
val receivers by lazy {
|
||||
fieldSet(
|
||||
field("explicitReceiver", expression, nullable = true, withReplace = true).withTransform(),
|
||||
field("dispatchReceiver", expression, withReplace = true),
|
||||
field("extensionReceiver", expression, withReplace = true)
|
||||
field("dispatchReceiver", expression, nullable = true, withReplace = true),
|
||||
field("extensionReceiver", expression, nullable = true, withReplace = true)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -234,8 +234,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
|
||||
integerLiteralOperatorCall.configure {
|
||||
// we need methods for transformation of receivers
|
||||
+field("dispatchReceiver", expression, withReplace = true).withTransform()
|
||||
+field("extensionReceiver", expression, withReplace = true).withTransform()
|
||||
+field("dispatchReceiver", expression, nullable = true, withReplace = true).withTransform()
|
||||
+field("extensionReceiver", expression, nullable = true, withReplace = true).withTransform()
|
||||
}
|
||||
|
||||
comparisonExpression.configure {
|
||||
@@ -411,7 +411,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
|
||||
delegatedConstructorCall.configure {
|
||||
+field("constructedTypeRef", typeRef, withReplace = true)
|
||||
+field("dispatchReceiver", expression, withReplace = true).withTransform()
|
||||
+field("dispatchReceiver", expression, nullable = true, withReplace = true).withTransform()
|
||||
+field("calleeReference", reference, withReplace = true)
|
||||
generateBooleanFields("this", "super")
|
||||
}
|
||||
|
||||
@@ -56,7 +56,6 @@ val referenceToSimpleExpressionType = generatedType("", "FirExpressionRef<FirExp
|
||||
val safeCallCheckedSubjectReferenceType = generatedType("", "FirExpressionRef<FirCheckedSafeCallSubject>")
|
||||
|
||||
val firModuleDataType = type("fir", "FirModuleData")
|
||||
val noReceiverExpressionType = generatedType("expressions.impl", "FirNoReceiverExpression", firType = true)
|
||||
val firImplicitTypeWithoutSourceType = generatedType("types.impl", "FirImplicitTypeRefImplWithoutSource")
|
||||
val firQualifierPartType = type("fir.types", "FirQualifierPart")
|
||||
val simpleNamedReferenceType = generatedType("references.impl", "FirSimpleNamedReference")
|
||||
|
||||
+1
-4
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.fir.tree.generator.context
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||
import org.jetbrains.kotlin.fir.tree.generator.noReceiverExpressionType
|
||||
import org.jetbrains.kotlin.fir.tree.generator.util.DummyDelegate
|
||||
import kotlin.properties.ReadOnlyProperty
|
||||
import kotlin.reflect.KProperty
|
||||
@@ -27,9 +26,7 @@ abstract class AbstractBuilderConfigurator<T : AbstractFirTreeBuilder>(val firTr
|
||||
if (!notNullExplicitReceiver) {
|
||||
defaultNull("explicitReceiver")
|
||||
}
|
||||
default("dispatchReceiver", "FirNoReceiverExpression")
|
||||
default("extensionReceiver", "FirNoReceiverExpression")
|
||||
useTypes(noReceiverExpressionType)
|
||||
defaultNull("dispatchReceiver", "extensionReceiver")
|
||||
}
|
||||
|
||||
fun default(field: String, value: String) {
|
||||
|
||||
+1
-5
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.tree.generator.context
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.constructClassLikeTypeImport
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||
import org.jetbrains.kotlin.fir.tree.generator.noReceiverExpressionType
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.call
|
||||
import org.jetbrains.kotlin.fir.tree.generator.standardClassIdsType
|
||||
|
||||
@@ -109,10 +108,7 @@ abstract class AbstractFirTreeImplementationConfigurator {
|
||||
}
|
||||
|
||||
fun defaultNoReceivers() {
|
||||
defaultNull("explicitReceiver")
|
||||
default("dispatchReceiver", "FirNoReceiverExpression")
|
||||
default("extensionReceiver", "FirNoReceiverExpression")
|
||||
useTypes(noReceiverExpressionType)
|
||||
defaultNull("explicitReceiver", "dispatchReceiver", "extensionReceiver")
|
||||
}
|
||||
|
||||
fun default(field: String, value: String) {
|
||||
|
||||
+2
-2
@@ -223,7 +223,7 @@ fun SmartPrinter.printImplementation(implementation: Implementation) {
|
||||
println(
|
||||
"""
|
||||
|if (dispatchReceiver !== explicitReceiver) {
|
||||
| dispatchReceiver = dispatchReceiver.transform(transformer, data)
|
||||
| dispatchReceiver = dispatchReceiver?.transform(transformer, data)
|
||||
| }
|
||||
""".trimMargin(),
|
||||
)
|
||||
@@ -232,7 +232,7 @@ fun SmartPrinter.printImplementation(implementation: Implementation) {
|
||||
println(
|
||||
"""
|
||||
|if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
|
||||
| extensionReceiver = extensionReceiver.transform(transformer, data)
|
||||
| extensionReceiver = extensionReceiver?.transform(transformer, data)
|
||||
| }
|
||||
""".trimMargin(),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user