FIR: Introduce FirContextReceiverArgumentListOwner

Add it as a supertype for FirQualifiedAccess and FirDelegatedConstructorCall

^KT-51889 Related
This commit is contained in:
Denis.Zharkov
2022-04-29 18:21:14 +03:00
committed by teamcity
parent 81416d1c46
commit 299c02a822
41 changed files with 173 additions and 108 deletions
@@ -23,11 +23,11 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
abstract override val source: KtSourceElement?
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
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 contextReceiverArguments: List<FirExpression>
abstract override val calleeReference: FirNamedReference
abstract val hasQuestionMarkAtLHS: Boolean
@@ -42,12 +42,12 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() {
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract fun replaceCalleeReference(newCalleeReference: FirNamedReference)
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
@@ -23,10 +23,10 @@ abstract class FirComponentCall : FirFunctionCall() {
abstract override val source: KtSourceElement?
abstract override val typeRef: FirTypeRef
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 contextReceiverArguments: List<FirExpression>
abstract override val argumentList: FirArgumentList
abstract override val calleeReference: FirNamedReference
abstract override val origin: FirFunctionCallOrigin
@@ -44,10 +44,10 @@ abstract class FirComponentCall : FirFunctionCall() {
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceArgumentList(newArgumentList: FirArgumentList)
abstract override fun replaceCalleeReference(newCalleeReference: FirNamedReference)
@@ -0,0 +1,28 @@
/*
* Copyright 2010-2021 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
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
interface FirContextReceiverArgumentListOwner : FirElement {
override val source: KtSourceElement?
val contextReceiverArguments: List<FirExpression>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitContextReceiverArgumentListOwner(this, data)
@Suppress("UNCHECKED_CAST")
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformContextReceiverArgumentListOwner(this, data) as E
fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
}
@@ -17,10 +17,11 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirDelegatedConstructorCall : FirPureAbstractElement(), FirResolvable, FirCall {
abstract class FirDelegatedConstructorCall : FirPureAbstractElement(), FirResolvable, FirCall, FirContextReceiverArgumentListOwner {
abstract override val source: KtSourceElement?
abstract override val annotations: List<FirAnnotation>
abstract override val argumentList: FirArgumentList
abstract override val contextReceiverArguments: List<FirExpression>
abstract val constructedTypeRef: FirTypeRef
abstract val dispatchReceiver: FirExpression
abstract override val calleeReference: FirReference
@@ -35,6 +36,8 @@ abstract class FirDelegatedConstructorCall : FirPureAbstractElement(), FirResolv
abstract override fun replaceArgumentList(newArgumentList: FirArgumentList)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract fun replaceConstructedTypeRef(newConstructedTypeRef: FirTypeRef)
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
@@ -25,11 +25,11 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression(), FirW
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
abstract override val calleeReference: FirReference
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 contextReceiverArguments: List<FirExpression>
abstract override val originalExpression: FirQualifiedAccessExpression
abstract override val typesFromSmartCast: Collection<ConeKotlinType>
abstract override val originalType: FirTypeRef
@@ -50,12 +50,12 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression(), FirW
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcast
@@ -25,11 +25,11 @@ abstract class FirExpressionWithSmartcastToNull : FirExpressionWithSmartcast(),
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
abstract override val calleeReference: FirReference
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 contextReceiverArguments: List<FirExpression>
abstract override val originalExpression: FirQualifiedAccessExpression
abstract override val typesFromSmartCast: Collection<ConeKotlinType>
abstract override val originalType: FirTypeRef
@@ -51,12 +51,12 @@ abstract class FirExpressionWithSmartcastToNull : FirExpressionWithSmartcast(),
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcastToNull
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirExpressionWithSmartcastToNull
@@ -23,11 +23,11 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
abstract override val source: KtSourceElement?
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
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 contextReceiverArguments: List<FirExpression>
abstract override val argumentList: FirArgumentList
abstract override val calleeReference: FirNamedReference
abstract val origin: FirFunctionCallOrigin
@@ -43,12 +43,12 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceArgumentList(newArgumentList: FirArgumentList)
abstract fun replaceCalleeReference(newCalleeReference: FirNamedReference)
@@ -23,11 +23,11 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() {
abstract override val source: KtSourceElement?
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
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 contextReceiverArguments: List<FirExpression>
abstract override val argumentList: FirArgumentList
abstract override val calleeReference: FirNamedReference
abstract override val origin: FirFunctionCallOrigin
@@ -43,12 +43,12 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() {
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceArgumentList(newArgumentList: FirArgumentList)
abstract override fun replaceCalleeReference(newCalleeReference: FirNamedReference)
@@ -23,11 +23,11 @@ abstract class FirIntegerLiteralOperatorCall : FirFunctionCall() {
abstract override val source: KtSourceElement?
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
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 contextReceiverArguments: List<FirExpression>
abstract override val argumentList: FirArgumentList
abstract override val calleeReference: FirNamedReference
abstract override val origin: FirFunctionCallOrigin
@@ -43,12 +43,12 @@ abstract class FirIntegerLiteralOperatorCall : FirFunctionCall() {
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceArgumentList(newArgumentList: FirArgumentList)
abstract override fun replaceCalleeReference(newCalleeReference: FirNamedReference)
@@ -24,11 +24,11 @@ abstract class FirPropertyAccessExpression : FirQualifiedAccessExpression() {
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
abstract override val calleeReference: FirReference
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 contextReceiverArguments: List<FirExpression>
abstract val nonFatalDiagnostics: List<ConeDiagnostic>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitPropertyAccessExpression(this, data)
@@ -44,12 +44,12 @@ abstract class FirPropertyAccessExpression : FirQualifiedAccessExpression() {
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirPropertyAccessExpression
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirPropertyAccessExpression
@@ -17,15 +17,15 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
* DO NOT MODIFY IT MANUALLY
*/
interface FirQualifiedAccess : FirResolvable, FirStatement {
interface FirQualifiedAccess : FirResolvable, FirStatement, FirContextReceiverArgumentListOwner {
override val calleeReference: FirReference
override val annotations: List<FirAnnotation>
override val contextReceiverArguments: List<FirExpression>
val typeArguments: List<FirTypeProjection>
val explicitReceiver: FirExpression?
val dispatchReceiver: FirExpression
val extensionReceiver: FirExpression
override val source: KtSourceElement?
val contextReceiverArguments: List<FirExpression>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccess(this, data)
@@ -35,6 +35,8 @@ interface FirQualifiedAccess : FirResolvable, FirStatement {
override fun replaceCalleeReference(newCalleeReference: FirReference)
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
@@ -42,8 +44,6 @@ interface FirQualifiedAccess : FirResolvable, FirStatement {
@FirImplementationDetail
fun replaceSource(newSource: KtSourceElement?)
fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirQualifiedAccess
@@ -23,11 +23,11 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirQualifiedAcces
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
abstract override val calleeReference: FirReference
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 contextReceiverArguments: List<FirExpression>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitQualifiedAccessExpression(this, data)
@@ -42,12 +42,12 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirQualifiedAcces
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirQualifiedAccessExpression
@@ -23,11 +23,11 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
abstract override val source: KtSourceElement?
abstract override val typeRef: FirTypeRef
abstract override val annotations: List<FirAnnotation>
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 contextReceiverArguments: List<FirExpression>
abstract override val calleeReference: FirThisReference
abstract val isImplicit: Boolean
@@ -42,12 +42,12 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() {
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract fun replaceCalleeReference(newCalleeReference: FirThisReference)
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
@@ -22,12 +22,12 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
abstract class FirVariableAssignment : FirPureAbstractElement(), FirQualifiedAccess {
abstract override val calleeReference: FirReference
abstract override val annotations: List<FirAnnotation>
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 source: KtSourceElement?
abstract override val contextReceiverArguments: List<FirExpression>
abstract val lValue: FirReference
abstract val lValueTypeRef: FirTypeRef
abstract val rValue: FirExpression
@@ -40,6 +40,8 @@ abstract class FirVariableAssignment : FirPureAbstractElement(), FirQualifiedAcc
abstract override fun replaceCalleeReference(newCalleeReference: FirReference)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>)
abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?)
@@ -47,8 +49,6 @@ abstract class FirVariableAssignment : FirPureAbstractElement(), FirQualifiedAcc
@FirImplementationDetail
abstract override fun replaceSource(newSource: KtSourceElement?)
abstract override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>)
abstract fun replaceLValueTypeRef(newLValueTypeRef: FirTypeRef)
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirVariableAssignment
@@ -27,12 +27,12 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl
interface FirAbstractFunctionCallBuilder : FirQualifiedAccessBuilder, FirCallBuilder {
abstract override val annotations: MutableList<FirAnnotation>
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 source: KtSourceElement?
abstract override val contextReceiverArguments: MutableList<FirExpression>
abstract override var argumentList: FirArgumentList
abstract var typeRef: FirTypeRef
abstract var calleeReference: FirNamedReference
@@ -34,11 +34,11 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotati
override var source: KtSourceElement? = null
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override val annotations: MutableList<FirAnnotation> = mutableListOf()
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 val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
lateinit var calleeReference: FirNamedReference
var hasQuestionMarkAtLHS: Boolean = false
@@ -47,11 +47,11 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotati
source,
typeRef,
annotations,
contextReceiverArguments,
typeArguments,
explicitReceiver,
dispatchReceiver,
extensionReceiver,
contextReceiverArguments,
calleeReference,
hasQuestionMarkAtLHS,
)
@@ -38,10 +38,10 @@ import org.jetbrains.kotlin.name.Name
class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
override var source: KtSourceElement? = null
override val annotations: MutableList<FirAnnotation> = mutableListOf()
val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
var dispatchReceiver: FirExpression = FirNoReceiverExpression
var extensionReceiver: FirExpression = FirNoReceiverExpression
val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override var argumentList: FirArgumentList = FirEmptyArgumentList
lateinit var explicitReceiver: FirExpression
var componentIndex: Int by kotlin.properties.Delegates.notNull<Int>()
@@ -50,10 +50,10 @@ class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, F
return FirComponentCallImpl(
source,
annotations,
contextReceiverArguments,
typeArguments,
dispatchReceiver,
extensionReceiver,
contextReceiverArguments,
argumentList,
explicitReceiver,
componentIndex,
@@ -33,6 +33,7 @@ class FirDelegatedConstructorCallBuilder : FirCallBuilder, FirAnnotationContaine
override var source: KtSourceElement? = null
override val annotations: MutableList<FirAnnotation> = mutableListOf()
override var argumentList: FirArgumentList = FirEmptyArgumentList
val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
lateinit var constructedTypeRef: FirTypeRef
var dispatchReceiver: FirExpression = FirNoReceiverExpression
lateinit var calleeReference: FirReference
@@ -43,6 +44,7 @@ class FirDelegatedConstructorCallBuilder : FirCallBuilder, FirAnnotationContaine
source,
annotations,
argumentList,
contextReceiverArguments,
constructedTypeRef,
dispatchReceiver,
calleeReference,
@@ -37,11 +37,11 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio
override var source: KtSourceElement? = null
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override val annotations: MutableList<FirAnnotation> = mutableListOf()
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 val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override var argumentList: FirArgumentList = FirEmptyArgumentList
override lateinit var calleeReference: FirNamedReference
override var origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Regular
@@ -52,11 +52,11 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio
source,
typeRef,
annotations,
contextReceiverArguments,
typeArguments,
explicitReceiver,
dispatchReceiver,
extensionReceiver,
contextReceiverArguments,
argumentList,
calleeReference,
origin,
@@ -36,11 +36,11 @@ import org.jetbrains.kotlin.fir.visitors.*
open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
override var source: KtSourceElement? = null
override val annotations: MutableList<FirAnnotation> = mutableListOf()
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 val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override var argumentList: FirArgumentList = FirEmptyArgumentList
override lateinit var calleeReference: FirNamedReference
@@ -48,11 +48,11 @@ open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnn
return FirImplicitInvokeCallImpl(
source,
annotations,
contextReceiverArguments,
typeArguments,
explicitReceiver,
dispatchReceiver,
extensionReceiver,
contextReceiverArguments,
argumentList,
calleeReference,
)
@@ -36,11 +36,11 @@ open class FirIntegerLiteralOperatorCallBuilder : FirAbstractFunctionCallBuilder
override var source: KtSourceElement? = null
override lateinit var typeRef: FirTypeRef
override val annotations: MutableList<FirAnnotation> = mutableListOf()
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 val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override var argumentList: FirArgumentList = FirEmptyArgumentList
override lateinit var calleeReference: FirNamedReference
override lateinit var origin: FirFunctionCallOrigin
@@ -50,11 +50,11 @@ open class FirIntegerLiteralOperatorCallBuilder : FirAbstractFunctionCallBuilder
source,
typeRef,
annotations,
contextReceiverArguments,
typeArguments,
explicitReceiver,
dispatchReceiver,
extensionReceiver,
contextReceiverArguments,
argumentList,
calleeReference,
origin,
@@ -35,11 +35,11 @@ class FirPropertyAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotat
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override val annotations: MutableList<FirAnnotation> = mutableListOf()
lateinit var calleeReference: FirReference
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 val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
val nonFatalDiagnostics: MutableList<ConeDiagnostic> = mutableListOf()
@OptIn(FirImplementationDetail::class)
@@ -49,11 +49,11 @@ class FirPropertyAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotat
typeRef,
annotations,
calleeReference,
contextReceiverArguments,
typeArguments,
explicitReceiver,
dispatchReceiver,
extensionReceiver,
contextReceiverArguments,
nonFatalDiagnostics,
)
}
@@ -21,12 +21,11 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl
interface FirQualifiedAccessBuilder {
abstract val annotations: MutableList<FirAnnotation>
abstract val contextReceiverArguments: MutableList<FirExpression>
abstract val typeArguments: MutableList<FirTypeProjection>
abstract var explicitReceiver: FirExpression?
abstract var dispatchReceiver: FirExpression
abstract var extensionReceiver: FirExpression
abstract var source: KtSourceElement?
abstract val contextReceiverArguments: MutableList<FirExpression>
fun build(): FirQualifiedAccess
}
@@ -34,8 +34,8 @@ class FirThisReceiverExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotatio
override var source: KtSourceElement? = null
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override val annotations: MutableList<FirAnnotation> = mutableListOf()
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
override val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
override val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
lateinit var calleeReference: FirThisReference
var isImplicit: Boolean = false
@@ -44,8 +44,8 @@ class FirThisReceiverExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotatio
source,
typeRef,
annotations,
typeArguments,
contextReceiverArguments,
typeArguments,
calleeReference,
isImplicit,
)
@@ -31,24 +31,24 @@ import org.jetbrains.kotlin.fir.visitors.*
class FirVariableAssignmentBuilder : FirQualifiedAccessBuilder, FirAnnotationContainerBuilder {
lateinit var calleeReference: FirReference
override val annotations: MutableList<FirAnnotation> = mutableListOf()
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 source: KtSourceElement? = null
override val contextReceiverArguments: MutableList<FirExpression> = mutableListOf()
lateinit var rValue: FirExpression
override fun build(): FirVariableAssignment {
return FirVariableAssignmentImpl(
calleeReference,
annotations,
contextReceiverArguments,
typeArguments,
explicitReceiver,
dispatchReceiver,
extensionReceiver,
source,
contextReceiverArguments,
rValue,
)
}
@@ -25,11 +25,11 @@ internal class FirCallableReferenceAccessImpl(
override var source: KtSourceElement?,
override var typeRef: FirTypeRef,
override val annotations: MutableList<FirAnnotation>,
override val contextReceiverArguments: MutableList<FirExpression>,
override val typeArguments: MutableList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override val contextReceiverArguments: MutableList<FirExpression>,
override var calleeReference: FirNamedReference,
override var hasQuestionMarkAtLHS: Boolean,
) : FirCallableReferenceAccess() {
@@ -101,6 +101,11 @@ internal class FirCallableReferenceAccessImpl(
typeRef = newTypeRef
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
@@ -110,11 +115,6 @@ internal class FirCallableReferenceAccessImpl(
explicitReceiver = newExplicitReceiver
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceCalleeReference(newCalleeReference: FirNamedReference) {
calleeReference = newCalleeReference
}
@@ -30,10 +30,10 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirComponentCallImpl(
override var source: KtSourceElement?,
override val annotations: MutableList<FirAnnotation>,
override val contextReceiverArguments: MutableList<FirExpression>,
override val typeArguments: MutableList<FirTypeProjection>,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override val contextReceiverArguments: MutableList<FirExpression>,
override var argumentList: FirArgumentList,
override var explicitReceiver: FirExpression,
override val componentIndex: Int,
@@ -112,16 +112,16 @@ internal class FirComponentCallImpl(
typeRef = newTypeRef
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
}
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
argumentList = newArgumentList
}
@@ -25,6 +25,7 @@ internal class FirDelegatedConstructorCallImpl(
override val source: KtSourceElement?,
override val annotations: MutableList<FirAnnotation>,
override var argumentList: FirArgumentList,
override val contextReceiverArguments: MutableList<FirExpression>,
override var constructedTypeRef: FirTypeRef,
override var dispatchReceiver: FirExpression,
override var calleeReference: FirReference,
@@ -66,6 +67,11 @@ internal class FirDelegatedConstructorCallImpl(
argumentList = newArgumentList
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceConstructedTypeRef(newConstructedTypeRef: FirTypeRef) {
constructedTypeRef = newConstructedTypeRef
}
@@ -27,11 +27,11 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
override var source: KtSourceElement?,
override var typeRef: FirTypeRef,
override val annotations: MutableList<FirAnnotation>,
override val contextReceiverArguments: MutableList<FirExpression>,
override val typeArguments: MutableList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override val contextReceiverArguments: MutableList<FirExpression>,
override var argumentList: FirArgumentList,
override var calleeReference: FirNamedReference,
override val origin: FirFunctionCallOrigin,
@@ -106,6 +106,11 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
typeRef = newTypeRef
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
@@ -115,11 +120,6 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
explicitReceiver = newExplicitReceiver
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
argumentList = newArgumentList
}
@@ -27,11 +27,11 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
internal class FirImplicitInvokeCallImpl(
override var source: KtSourceElement?,
override val annotations: MutableList<FirAnnotation>,
override val contextReceiverArguments: MutableList<FirExpression>,
override val typeArguments: MutableList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override val contextReceiverArguments: MutableList<FirExpression>,
override var argumentList: FirArgumentList,
override var calleeReference: FirNamedReference,
) : FirImplicitInvokeCall() {
@@ -108,6 +108,11 @@ internal class FirImplicitInvokeCallImpl(
typeRef = newTypeRef
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
@@ -117,11 +122,6 @@ internal class FirImplicitInvokeCallImpl(
explicitReceiver = newExplicitReceiver
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
argumentList = newArgumentList
}
@@ -27,11 +27,11 @@ internal class FirIntegerLiteralOperatorCallImpl(
override var source: KtSourceElement?,
override var typeRef: FirTypeRef,
override val annotations: MutableList<FirAnnotation>,
override val contextReceiverArguments: MutableList<FirExpression>,
override val typeArguments: MutableList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override val contextReceiverArguments: MutableList<FirExpression>,
override var argumentList: FirArgumentList,
override var calleeReference: FirNamedReference,
override val origin: FirFunctionCallOrigin,
@@ -106,6 +106,11 @@ internal class FirIntegerLiteralOperatorCallImpl(
typeRef = newTypeRef
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
@@ -115,11 +120,6 @@ internal class FirIntegerLiteralOperatorCallImpl(
explicitReceiver = newExplicitReceiver
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
argumentList = newArgumentList
}
@@ -26,11 +26,11 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
override var typeRef: FirTypeRef,
override val annotations: MutableList<FirAnnotation>,
override var calleeReference: FirReference,
override val contextReceiverArguments: MutableList<FirExpression>,
override val typeArguments: MutableList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override val contextReceiverArguments: MutableList<FirExpression>,
override val nonFatalDiagnostics: MutableList<ConeDiagnostic>,
) : FirPropertyAccessExpression() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -105,6 +105,11 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
calleeReference = newCalleeReference
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
@@ -113,9 +118,4 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) {
explicitReceiver = newExplicitReceiver
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
}
@@ -26,8 +26,8 @@ internal class FirThisReceiverExpressionImpl(
override var source: KtSourceElement?,
override var typeRef: FirTypeRef,
override val annotations: MutableList<FirAnnotation>,
override val typeArguments: MutableList<FirTypeProjection>,
override val contextReceiverArguments: MutableList<FirExpression>,
override val typeArguments: MutableList<FirTypeProjection>,
override var calleeReference: FirThisReference,
override val isImplicit: Boolean,
) : FirThisReceiverExpression() {
@@ -103,6 +103,11 @@ internal class FirThisReceiverExpressionImpl(
typeRef = newTypeRef
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
@@ -112,11 +117,6 @@ internal class FirThisReceiverExpressionImpl(
explicitReceiver = newExplicitReceiver
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceCalleeReference(newCalleeReference: FirThisReference) {
calleeReference = newCalleeReference
}
@@ -24,12 +24,12 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
internal class FirVariableAssignmentImpl(
override var calleeReference: FirReference,
override val annotations: MutableList<FirAnnotation>,
override val contextReceiverArguments: MutableList<FirExpression>,
override val typeArguments: MutableList<FirTypeProjection>,
override var explicitReceiver: FirExpression?,
override var dispatchReceiver: FirExpression,
override var extensionReceiver: FirExpression,
override var source: KtSourceElement?,
override val contextReceiverArguments: MutableList<FirExpression>,
override var rValue: FirExpression,
) : FirVariableAssignment() {
override var lValue: FirReference
@@ -109,6 +109,11 @@ internal class FirVariableAssignmentImpl(
calleeReference = newCalleeReference
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceTypeArguments(newTypeArguments: List<FirTypeProjection>) {
typeArguments.clear()
typeArguments.addAll(newTypeArguments)
@@ -123,11 +128,6 @@ internal class FirVariableAssignmentImpl(
source = newSource
}
override fun replaceContextReceiverArguments(newContextReceiverArguments: List<FirExpression>) {
contextReceiverArguments.clear()
contextReceiverArguments.addAll(newContextReceiverArguments)
}
override fun replaceLValueTypeRef(newLValueTypeRef: FirTypeRef) {
lValueTypeRef = newLValueTypeRef
}
@@ -79,6 +79,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement
import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall
import org.jetbrains.kotlin.fir.expressions.FirWhenExpression
import org.jetbrains.kotlin.fir.expressions.FirWhenBranch
import org.jetbrains.kotlin.fir.expressions.FirContextReceiverArgumentListOwner
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
import org.jetbrains.kotlin.fir.expressions.FirElvisExpression
@@ -79,6 +79,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement
import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall
import org.jetbrains.kotlin.fir.expressions.FirWhenExpression
import org.jetbrains.kotlin.fir.expressions.FirWhenBranch
import org.jetbrains.kotlin.fir.expressions.FirContextReceiverArgumentListOwner
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
import org.jetbrains.kotlin.fir.expressions.FirElvisExpression
@@ -79,6 +79,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement
import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall
import org.jetbrains.kotlin.fir.expressions.FirWhenExpression
import org.jetbrains.kotlin.fir.expressions.FirWhenBranch
import org.jetbrains.kotlin.fir.expressions.FirContextReceiverArgumentListOwner
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
import org.jetbrains.kotlin.fir.expressions.FirElvisExpression
@@ -445,6 +446,10 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformElement(whenBranch, data)
}
open fun transformContextReceiverArgumentListOwner(contextReceiverArgumentListOwner: FirContextReceiverArgumentListOwner, data: D): FirContextReceiverArgumentListOwner {
return transformElement(contextReceiverArgumentListOwner, data)
}
open fun transformQualifiedAccess(qualifiedAccess: FirQualifiedAccess, data: D): FirStatement {
return transformElement(qualifiedAccess, data)
}
@@ -997,6 +1002,10 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformWhenBranch(whenBranch, data)
}
final override fun visitContextReceiverArgumentListOwner(contextReceiverArgumentListOwner: FirContextReceiverArgumentListOwner, data: D): FirContextReceiverArgumentListOwner {
return transformContextReceiverArgumentListOwner(contextReceiverArgumentListOwner, data)
}
final override fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess, data: D): FirStatement {
return transformQualifiedAccess(qualifiedAccess, data)
}
@@ -79,6 +79,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement
import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall
import org.jetbrains.kotlin.fir.expressions.FirWhenExpression
import org.jetbrains.kotlin.fir.expressions.FirWhenBranch
import org.jetbrains.kotlin.fir.expressions.FirContextReceiverArgumentListOwner
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
import org.jetbrains.kotlin.fir.expressions.FirElvisExpression
@@ -298,6 +299,8 @@ abstract class FirVisitor<out R, in D> {
open fun visitWhenBranch(whenBranch: FirWhenBranch, data: D): R = visitElement(whenBranch, data)
open fun visitContextReceiverArgumentListOwner(contextReceiverArgumentListOwner: FirContextReceiverArgumentListOwner, data: D): R = visitElement(contextReceiverArgumentListOwner, data)
open fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess, data: D): R = visitElement(qualifiedAccess, data)
open fun visitCheckNotNullCall(checkNotNullCall: FirCheckNotNullCall, data: D): R = visitElement(checkNotNullCall, data)
@@ -79,6 +79,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement
import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall
import org.jetbrains.kotlin.fir.expressions.FirWhenExpression
import org.jetbrains.kotlin.fir.expressions.FirWhenBranch
import org.jetbrains.kotlin.fir.expressions.FirContextReceiverArgumentListOwner
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
import org.jetbrains.kotlin.fir.expressions.FirElvisExpression
@@ -444,6 +445,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(whenBranch)
}
open fun visitContextReceiverArgumentListOwner(contextReceiverArgumentListOwner: FirContextReceiverArgumentListOwner) {
visitElement(contextReceiverArgumentListOwner)
}
open fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess) {
visitElement(qualifiedAccess)
}
@@ -996,6 +1001,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitWhenBranch(whenBranch)
}
final override fun visitContextReceiverArgumentListOwner(contextReceiverArgumentListOwner: FirContextReceiverArgumentListOwner, data: Nothing?) {
visitContextReceiverArgumentListOwner(contextReceiverArgumentListOwner)
}
final override fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess, data: Nothing?) {
visitQualifiedAccess(qualifiedAccess)
}
@@ -100,7 +100,8 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val equalityOperatorCall by element(Expression, expression, call)
val whenExpression by element(Expression, expression, resolvable)
val whenBranch by element(Expression)
val qualifiedAccess by element(Expression, resolvable, statement)
val contextReceiverArgumentListOwner by element(Expression)
val qualifiedAccess by element(Expression, resolvable, statement, contextReceiverArgumentListOwner)
val checkNotNullCall by element(Expression, expression, call, resolvable)
val elvisExpression by element(Expression, expression, resolvable)
@@ -115,7 +116,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val functionCall by element(Expression, qualifiedAccessExpression, call)
val integerLiteralOperatorCall by element(Expression, functionCall)
val implicitInvokeCall by element(Expression, functionCall)
val delegatedConstructorCall by element(Expression, resolvable, call)
val delegatedConstructorCall by element(Expression, resolvable, call, contextReceiverArgumentListOwner)
val componentCall by element(Expression, functionCall)
val callableReferenceAccess by element(Expression, qualifiedAccessExpression)
val thisReceiverExpression by element(Expression, qualifiedAccessExpression)
@@ -191,11 +191,14 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+field("rhs", expression).withTransform()
}
contextReceiverArgumentListOwner.configure {
+fieldList("contextReceiverArguments", expressionType, withReplace = true)
}
qualifiedAccess.configure {
+typeArguments.withTransform()
+receivers
+field("source", sourceElementType, nullable = true, withReplace = true)
+fieldList("contextReceiverArguments", expressionType, withReplace = true)
}
propertyAccessExpression.configure {