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