[FIR] Introduce FirArgumentList node
This commit is contained in:
@@ -19,11 +19,9 @@ abstract class FirAnnotationCall : FirExpression(), FirCall {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract val useSiteTarget: AnnotationUseSiteTarget?
|
||||
abstract val annotationTypeRef: FirTypeRef
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitAnnotationCall(this, data)
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirAnnotationCall
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright 2010-2020 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.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
* This file was generated automatically
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
abstract class FirArgumentList : FirPureAbstractElement(), FirElement {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract val arguments: List<FirExpression>
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitArgumentList(this, data)
|
||||
|
||||
abstract fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirArgumentList
|
||||
}
|
||||
@@ -18,9 +18,7 @@ abstract class FirArrayOfCall : FirExpression(), FirCall {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitArrayOfCall(this, data)
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirArrayOfCall
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ abstract class FirArraySetCall : FirPureAbstractElement(), FirQualifiedAccess, F
|
||||
abstract override val dispatchReceiver: FirExpression
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val calleeReference: FirReference
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract val rValue: FirExpression
|
||||
abstract val operation: FirOperation
|
||||
abstract val lValue: FirReference
|
||||
@@ -43,8 +43,6 @@ abstract class FirArraySetCall : FirPureAbstractElement(), FirQualifiedAccess, F
|
||||
|
||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
||||
|
||||
abstract fun <D> transformRValue(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
||||
|
||||
abstract fun <D> transformIndexes(transformer: FirTransformer<D>, data: D): FirArraySetCall
|
||||
|
||||
@@ -16,9 +16,9 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
interface FirCall : FirStatement {
|
||||
override val source: FirSourceElement?
|
||||
override val annotations: List<FirAnnotationCall>
|
||||
val arguments: List<FirExpression>
|
||||
val argumentList: FirArgumentList
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCall(this, data)
|
||||
|
||||
fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirCall
|
||||
fun replaceArgumentList(newArgumentList: FirArgumentList)
|
||||
}
|
||||
|
||||
@@ -19,12 +19,10 @@ abstract class FirCheckNotNullCall : FirExpression(), FirCall, FirResolvable {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract override val calleeReference: FirReference
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCheckNotNullCall(this, data)
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirCheckNotNullCall
|
||||
|
||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirCheckNotNullCall
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ abstract class FirComponentCall : FirFunctionCall() {
|
||||
abstract override val typeArguments: List<FirTypeProjection>
|
||||
abstract override val dispatchReceiver: FirExpression
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract override val calleeReference: FirNamedReference
|
||||
abstract override val explicitReceiver: FirExpression
|
||||
abstract val componentIndex: Int
|
||||
@@ -37,8 +37,6 @@ abstract class FirComponentCall : FirFunctionCall() {
|
||||
|
||||
abstract override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||
|
||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||
|
||||
abstract override fun <D> transformExplicitReceiver(transformer: FirTransformer<D>, data: D): FirComponentCall
|
||||
|
||||
+1
-3
@@ -20,7 +20,7 @@ abstract class FirDelegatedConstructorCall : FirPureAbstractElement(), FirResolv
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val calleeReference: FirReference
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract val constructedTypeRef: FirTypeRef
|
||||
abstract val isThis: Boolean
|
||||
abstract val isSuper: Boolean
|
||||
@@ -28,6 +28,4 @@ abstract class FirDelegatedConstructorCall : FirPureAbstractElement(), FirResolv
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitDelegatedConstructorCall(this, data)
|
||||
|
||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirDelegatedConstructorCall
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirDelegatedConstructorCall
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
|
||||
abstract override val explicitReceiver: FirExpression?
|
||||
abstract override val dispatchReceiver: FirExpression
|
||||
abstract override val extensionReceiver: FirExpression
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract override val calleeReference: FirNamedReference
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunctionCall(this, data)
|
||||
@@ -38,7 +38,5 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall {
|
||||
|
||||
abstract override fun <D> transformExtensionReceiver(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||
|
||||
abstract override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirFunctionCall
|
||||
}
|
||||
|
||||
@@ -18,10 +18,8 @@ abstract class FirGetClassCall : FirExpression(), FirCall {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract val argument: FirExpression
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitGetClassCall(this, data)
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirGetClassCall
|
||||
}
|
||||
|
||||
@@ -18,10 +18,8 @@ abstract class FirOperatorCall : FirExpression(), FirCall {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract val operation: FirOperation
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitOperatorCall(this, data)
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirOperatorCall
|
||||
}
|
||||
|
||||
+1
-3
@@ -17,10 +17,8 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
abstract class FirStringConcatenationCall : FirCall, FirExpression() {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract override val typeRef: FirTypeRef
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitStringConcatenationCall(this, data)
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirStringConcatenationCall
|
||||
}
|
||||
|
||||
@@ -18,11 +18,9 @@ abstract class FirTypeOperatorCall : FirExpression(), FirCall {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val typeRef: FirTypeRef
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract override val arguments: List<FirExpression>
|
||||
abstract override val argumentList: FirArgumentList
|
||||
abstract val operation: FirOperation
|
||||
abstract val conversionTypeRef: FirTypeRef
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeOperatorCall(this, data)
|
||||
|
||||
abstract override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirTypeOperatorCall
|
||||
}
|
||||
|
||||
+4
-3
@@ -11,7 +11,8 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirAnnotationCallImpl
|
||||
@@ -27,7 +28,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
class FirAnnotationCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override var argumentList: FirArgumentList = FirEmptyArgumentList
|
||||
var useSiteTarget: AnnotationUseSiteTarget? = null
|
||||
lateinit var annotationTypeRef: FirTypeRef
|
||||
|
||||
@@ -35,7 +36,7 @@ class FirAnnotationCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder,
|
||||
return FirAnnotationCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
arguments,
|
||||
argumentList,
|
||||
useSiteTarget,
|
||||
annotationTypeRef,
|
||||
)
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2010-2020 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.builder
|
||||
|
||||
import kotlin.contracts.*
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirArgumentListImpl
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
* This file was generated automatically
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
@FirBuilderDsl
|
||||
class FirArgumentListBuilder {
|
||||
var source: FirSourceElement? = null
|
||||
val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
|
||||
fun build(): FirArgumentList {
|
||||
return FirArgumentListImpl(
|
||||
source,
|
||||
arguments,
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildArgumentList(init: FirArgumentListBuilder.() -> Unit = {}): FirArgumentList {
|
||||
contract {
|
||||
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
return FirArgumentListBuilder().apply(init).build()
|
||||
}
|
||||
+4
-4
@@ -10,8 +10,8 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirArrayOfCallImpl
|
||||
@@ -28,13 +28,13 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
class FirArrayOfCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override lateinit var argumentList: FirArgumentList
|
||||
|
||||
override fun build(): FirArrayOfCall {
|
||||
return FirArrayOfCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
arguments,
|
||||
argumentList,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ class FirArrayOfCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, Fir
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildArrayOfCall(init: FirArrayOfCallBuilder.() -> Unit = {}): FirArrayOfCall {
|
||||
inline fun buildArrayOfCall(init: FirArrayOfCallBuilder.() -> Unit): FirArrayOfCall {
|
||||
contract {
|
||||
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
|
||||
+3
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
@@ -36,6 +37,7 @@ class FirArraySetCallBuilder : FirQualifiedAccessBuilder, FirAnnotationContainer
|
||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||
lateinit var calleeReference: FirReference
|
||||
lateinit var argumentList: FirArgumentList
|
||||
lateinit var rValue: FirExpression
|
||||
lateinit var operation: FirOperation
|
||||
val indexes: MutableList<FirExpression> = mutableListOf()
|
||||
@@ -50,6 +52,7 @@ class FirArraySetCallBuilder : FirQualifiedAccessBuilder, FirAnnotationContainer
|
||||
dispatchReceiver,
|
||||
extensionReceiver,
|
||||
calleeReference,
|
||||
argumentList,
|
||||
rValue,
|
||||
operation,
|
||||
indexes,
|
||||
|
||||
+2
-3
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.fir.expressions.builder
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
interface FirCallBuilder {
|
||||
abstract var source: FirSourceElement?
|
||||
abstract val annotations: MutableList<FirAnnotationCall>
|
||||
abstract val arguments: MutableList<FirExpression>
|
||||
|
||||
abstract var argumentList: FirArgumentList
|
||||
fun build(): FirCall
|
||||
}
|
||||
|
||||
+4
-4
@@ -10,8 +10,8 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirCheckNotNullCallImpl
|
||||
import org.jetbrains.kotlin.fir.references.FirReference
|
||||
@@ -30,7 +30,7 @@ class FirCheckNotNullCallBuilder : FirAnnotationContainerBuilder, FirExpressionB
|
||||
override var source: FirSourceElement? = null
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
lateinit var argumentList: FirArgumentList
|
||||
var calleeReference: FirReference = FirStubReference
|
||||
|
||||
override fun build(): FirCheckNotNullCall {
|
||||
@@ -38,7 +38,7 @@ class FirCheckNotNullCallBuilder : FirAnnotationContainerBuilder, FirExpressionB
|
||||
source,
|
||||
typeRef,
|
||||
annotations,
|
||||
arguments,
|
||||
argumentList,
|
||||
calleeReference,
|
||||
)
|
||||
}
|
||||
@@ -46,7 +46,7 @@ class FirCheckNotNullCallBuilder : FirAnnotationContainerBuilder, FirExpressionB
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildCheckNotNullCall(init: FirCheckNotNullCallBuilder.() -> Unit = {}): FirCheckNotNullCall {
|
||||
inline fun buildCheckNotNullCall(init: FirCheckNotNullCallBuilder.() -> Unit): FirCheckNotNullCall {
|
||||
contract {
|
||||
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
|
||||
+4
-2
@@ -11,7 +11,9 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
|
||||
@@ -35,7 +37,7 @@ class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, F
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
val typeArguments: MutableList<FirTypeProjection> = mutableListOf()
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override var argumentList: FirArgumentList = FirEmptyArgumentList
|
||||
lateinit var explicitReceiver: FirExpression
|
||||
var componentIndex: Int by kotlin.properties.Delegates.notNull<Int>()
|
||||
|
||||
@@ -44,7 +46,7 @@ class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, F
|
||||
source,
|
||||
annotations,
|
||||
typeArguments,
|
||||
arguments,
|
||||
argumentList,
|
||||
explicitReceiver,
|
||||
componentIndex,
|
||||
)
|
||||
|
||||
+4
-3
@@ -10,8 +10,9 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirDelegatedConstructorCallImpl
|
||||
import org.jetbrains.kotlin.fir.references.FirReference
|
||||
@@ -29,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
class FirDelegatedConstructorCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override var argumentList: FirArgumentList = FirEmptyArgumentList
|
||||
lateinit var constructedTypeRef: FirTypeRef
|
||||
var isThis: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
||||
|
||||
@@ -37,7 +38,7 @@ class FirDelegatedConstructorCallBuilder : FirCallBuilder, FirAnnotationContaine
|
||||
return FirDelegatedConstructorCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
arguments,
|
||||
argumentList,
|
||||
constructedTypeRef,
|
||||
isThis,
|
||||
)
|
||||
|
||||
+4
-2
@@ -11,6 +11,8 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
@@ -40,7 +42,7 @@ open class FirFunctionCallBuilder : FirQualifiedAccessBuilder, FirCallBuilder, F
|
||||
override var explicitReceiver: FirExpression? = null
|
||||
override var dispatchReceiver: FirExpression = FirNoReceiverExpression
|
||||
override var extensionReceiver: FirExpression = FirNoReceiverExpression
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override var argumentList: FirArgumentList = FirEmptyArgumentList
|
||||
open lateinit var calleeReference: FirNamedReference
|
||||
|
||||
@OptIn(FirImplementationDetail::class)
|
||||
@@ -54,7 +56,7 @@ open class FirFunctionCallBuilder : FirQualifiedAccessBuilder, FirCallBuilder, F
|
||||
explicitReceiver,
|
||||
dispatchReceiver,
|
||||
extensionReceiver,
|
||||
arguments,
|
||||
argumentList,
|
||||
calleeReference,
|
||||
)
|
||||
}
|
||||
|
||||
+4
-3
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirGetClassCall
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
@@ -28,13 +29,13 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
class FirGetClassCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override lateinit var argumentList: FirArgumentList
|
||||
|
||||
override fun build(): FirGetClassCall {
|
||||
return FirGetClassCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
arguments,
|
||||
argumentList,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -48,7 +49,7 @@ class FirGetClassCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, Fi
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildGetClassCall(init: FirGetClassCallBuilder.() -> Unit = {}): FirGetClassCall {
|
||||
inline fun buildGetClassCall(init: FirGetClassCallBuilder.() -> Unit): FirGetClassCall {
|
||||
contract {
|
||||
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
|
||||
+3
-3
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperatorCall
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
@@ -30,14 +30,14 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
class FirOperatorCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override lateinit var argumentList: FirArgumentList
|
||||
lateinit var operation: FirOperation
|
||||
|
||||
override fun build(): FirOperatorCall {
|
||||
return FirOperatorCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
arguments,
|
||||
argumentList,
|
||||
operation,
|
||||
)
|
||||
}
|
||||
|
||||
+4
-4
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder
|
||||
@@ -28,13 +28,13 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
class FirStringConcatenationCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override lateinit var argumentList: FirArgumentList
|
||||
|
||||
override fun build(): FirStringConcatenationCall {
|
||||
return FirStringConcatenationCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
arguments,
|
||||
argumentList,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ class FirStringConcatenationCallBuilder : FirCallBuilder, FirAnnotationContainer
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildStringConcatenationCall(init: FirStringConcatenationCallBuilder.() -> Unit = {}): FirStringConcatenationCall {
|
||||
inline fun buildStringConcatenationCall(init: FirStringConcatenationCallBuilder.() -> Unit): FirStringConcatenationCall {
|
||||
contract {
|
||||
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
|
||||
+4
-3
@@ -10,7 +10,8 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirTypeOperatorCall
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder
|
||||
@@ -29,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
class FirTypeOperatorCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override val arguments: MutableList<FirExpression> = mutableListOf()
|
||||
override var argumentList: FirArgumentList = FirEmptyArgumentList
|
||||
lateinit var operation: FirOperation
|
||||
lateinit var conversionTypeRef: FirTypeRef
|
||||
|
||||
@@ -37,7 +38,7 @@ class FirTypeOperatorCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder
|
||||
return FirTypeOperatorCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
arguments,
|
||||
argumentList,
|
||||
operation,
|
||||
conversionTypeRef,
|
||||
)
|
||||
|
||||
+8
-9
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
internal class FirAnnotationCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
override val useSiteTarget: AnnotationUseSiteTarget?,
|
||||
override var annotationTypeRef: FirTypeRef,
|
||||
) : FirAnnotationCall() {
|
||||
@@ -28,21 +28,20 @@ internal class FirAnnotationCallImpl(
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
annotationTypeRef.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnnotationCallImpl {
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
annotationTypeRef = annotationTypeRef.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirAnnotationCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
* This file was generated automatically
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
internal class FirArgumentListImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
) : FirArgumentList() {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirArgumentListImpl {
|
||||
transformArguments(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirArgumentListImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
return this
|
||||
}
|
||||
}
|
||||
+8
-9
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
@@ -21,29 +21,28 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
internal class FirArrayOfCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
) : FirArrayOfCall() {
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
typeRef.accept(visitor, data)
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirArrayOfCallImpl {
|
||||
typeRef = typeRef.transformSingle(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirArrayOfCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+8
-5
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
@@ -29,11 +30,11 @@ internal class FirArraySetCallImpl(
|
||||
override var dispatchReceiver: FirExpression,
|
||||
override var extensionReceiver: FirExpression,
|
||||
override var calleeReference: FirReference,
|
||||
override var argumentList: FirArgumentList,
|
||||
override var rValue: FirExpression,
|
||||
override val operation: FirOperation,
|
||||
override val indexes: MutableList<FirExpression>,
|
||||
) : FirArraySetCall(), FirModifiableQualifiedAccess {
|
||||
override val arguments: List<FirExpression> get() = indexes + rValue
|
||||
override var lValue: FirReference
|
||||
get() = calleeReference
|
||||
set(value) {
|
||||
@@ -51,6 +52,7 @@ internal class FirArraySetCallImpl(
|
||||
extensionReceiver.accept(visitor, data)
|
||||
}
|
||||
calleeReference.accept(visitor, data)
|
||||
argumentList.accept(visitor, data)
|
||||
rValue.accept(visitor, data)
|
||||
indexes.forEach { it.accept(visitor, data) }
|
||||
}
|
||||
@@ -66,6 +68,7 @@ internal class FirArraySetCallImpl(
|
||||
extensionReceiver = extensionReceiver.transformSingle(transformer, data)
|
||||
}
|
||||
transformCalleeReference(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
transformRValue(transformer, data)
|
||||
transformIndexes(transformer, data)
|
||||
return this
|
||||
@@ -96,10 +99,6 @@ internal class FirArraySetCallImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirArraySetCallImpl {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformRValue(transformer: FirTransformer<D>, data: D): FirArraySetCallImpl {
|
||||
rValue = rValue.transformSingle(transformer, data)
|
||||
return this
|
||||
@@ -114,4 +113,8 @@ internal class FirArraySetCallImpl(
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+8
-9
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.references.FirReference
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
@@ -22,29 +22,24 @@ internal class FirCheckNotNullCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override var typeRef: FirTypeRef,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
override var calleeReference: FirReference,
|
||||
) : FirCheckNotNullCall() {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
typeRef.accept(visitor, data)
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
calleeReference.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirCheckNotNullCallImpl {
|
||||
typeRef = typeRef.transformSingle(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
transformCalleeReference(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirCheckNotNullCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirCheckNotNullCallImpl {
|
||||
calleeReference = calleeReference.transformSingle(transformer, data)
|
||||
return this
|
||||
@@ -53,4 +48,8 @@ internal class FirCheckNotNullCallImpl(
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+8
-8
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
|
||||
@@ -29,7 +30,7 @@ internal class FirComponentCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val typeArguments: MutableList<FirTypeProjection>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
override var explicitReceiver: FirExpression,
|
||||
override val componentIndex: Int,
|
||||
) : FirComponentCall() {
|
||||
@@ -43,7 +44,7 @@ internal class FirComponentCallImpl(
|
||||
typeRef.accept(visitor, data)
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
typeArguments.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
calleeReference.accept(visitor, data)
|
||||
explicitReceiver.accept(visitor, data)
|
||||
if (dispatchReceiver !== explicitReceiver) {
|
||||
@@ -58,7 +59,7 @@ internal class FirComponentCallImpl(
|
||||
typeRef = typeRef.transformSingle(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformTypeArguments(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
transformCalleeReference(transformer, data)
|
||||
explicitReceiver = explicitReceiver.transformSingle(transformer, data)
|
||||
return this
|
||||
@@ -77,11 +78,6 @@ internal class FirComponentCallImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
|
||||
calleeReference = calleeReference.transformSingle(transformer, data)
|
||||
return this
|
||||
@@ -100,4 +96,8 @@ internal class FirComponentCallImpl(
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+6
-7
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.references.FirReference
|
||||
import org.jetbrains.kotlin.fir.references.impl.FirExplicitSuperReference
|
||||
import org.jetbrains.kotlin.fir.references.impl.FirExplicitThisReference
|
||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
internal class FirDelegatedConstructorCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
override var constructedTypeRef: FirTypeRef,
|
||||
override val isThis: Boolean,
|
||||
) : FirDelegatedConstructorCall() {
|
||||
@@ -33,14 +33,14 @@ internal class FirDelegatedConstructorCallImpl(
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
calleeReference.accept(visitor, data)
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
constructedTypeRef.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirDelegatedConstructorCallImpl {
|
||||
transformCalleeReference(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
constructedTypeRef = constructedTypeRef.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
@@ -50,8 +50,7 @@ internal class FirDelegatedConstructorCallImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirDelegatedConstructorCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
return this
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+8
-8
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirModifiableQualifiedAccess
|
||||
@@ -30,7 +31,7 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
override var explicitReceiver: FirExpression?,
|
||||
override var dispatchReceiver: FirExpression,
|
||||
override var extensionReceiver: FirExpression,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
override var calleeReference: FirNamedReference,
|
||||
) : FirFunctionCall(), FirModifiableQualifiedAccess {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
@@ -44,7 +45,7 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
|
||||
extensionReceiver.accept(visitor, data)
|
||||
}
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
calleeReference.accept(visitor, data)
|
||||
}
|
||||
|
||||
@@ -59,7 +60,7 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
if (extensionReceiver !== explicitReceiver && extensionReceiver !== dispatchReceiver) {
|
||||
extensionReceiver = extensionReceiver.transformSingle(transformer, data)
|
||||
}
|
||||
transformArguments(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
transformCalleeReference(transformer, data)
|
||||
return this
|
||||
}
|
||||
@@ -84,11 +85,6 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformCalleeReference(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
|
||||
calleeReference = calleeReference.transformSingle(transformer, data)
|
||||
return this
|
||||
@@ -102,4 +98,8 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
|
||||
typeArguments.clear()
|
||||
typeArguments.addAll(newTypeArguments)
|
||||
}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+9
-9
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirGetClassCall
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
@@ -21,30 +22,29 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
internal class FirGetClassCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
) : FirGetClassCall() {
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
override val argument: FirExpression get() = arguments.first()
|
||||
override val argument: FirExpression get() = argumentList.arguments.first()
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
typeRef.accept(visitor, data)
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirGetClassCallImpl {
|
||||
typeRef = typeRef.transformSingle(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirGetClassCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+8
-9
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperatorCall
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
internal class FirOperatorCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
override val operation: FirOperation,
|
||||
) : FirOperatorCall() {
|
||||
override var typeRef: FirTypeRef = if (operation in FirOperation.BOOLEANS) {
|
||||
@@ -35,22 +35,21 @@ internal class FirOperatorCallImpl(
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
typeRef.accept(visitor, data)
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirOperatorCallImpl {
|
||||
typeRef = typeRef.transformSingle(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirOperatorCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
+6
-7
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitStringTypeRef
|
||||
@@ -21,26 +21,25 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
internal class FirStringConcatenationCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
) : FirStringConcatenationCall() {
|
||||
override var typeRef: FirTypeRef = FirImplicitStringTypeRef(source)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
typeRef.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirStringConcatenationCallImpl {
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
typeRef = typeRef.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirStringConcatenationCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
return this
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
|
||||
+8
-9
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirTypeOperatorCall
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
internal class FirTypeOperatorCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override val arguments: MutableList<FirExpression>,
|
||||
override var argumentList: FirArgumentList,
|
||||
override val operation: FirOperation,
|
||||
override var conversionTypeRef: FirTypeRef,
|
||||
) : FirTypeOperatorCall() {
|
||||
@@ -31,24 +31,23 @@ internal class FirTypeOperatorCallImpl(
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
typeRef.accept(visitor, data)
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
arguments.forEach { it.accept(visitor, data) }
|
||||
argumentList.accept(visitor, data)
|
||||
conversionTypeRef.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirTypeOperatorCallImpl {
|
||||
typeRef = typeRef.transformSingle(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
transformArguments(transformer, data)
|
||||
argumentList = argumentList.transformSingle(transformer, data)
|
||||
conversionTypeRef = conversionTypeRef.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirTypeOperatorCallImpl {
|
||||
arguments.transformInplace(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||
typeRef = newTypeRef
|
||||
}
|
||||
|
||||
override fun replaceArgumentList(newArgumentList: FirArgumentList) {
|
||||
argumentList = newArgumentList
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +62,7 @@ import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||
import org.jetbrains.kotlin.fir.types.FirStarProjection
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjectionWithVariance
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperatorCall
|
||||
@@ -354,6 +355,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformElement(typeProjectionWithVariance, data)
|
||||
}
|
||||
|
||||
open fun transformArgumentList(argumentList: FirArgumentList, data: D): CompositeTransformResult<FirArgumentList> {
|
||||
return transformElement(argumentList, data)
|
||||
}
|
||||
|
||||
open fun transformCall(call: FirCall, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformElement(call, data)
|
||||
}
|
||||
@@ -810,6 +815,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformTypeProjectionWithVariance(typeProjectionWithVariance, data)
|
||||
}
|
||||
|
||||
final override fun visitArgumentList(argumentList: FirArgumentList, data: D): CompositeTransformResult<FirArgumentList> {
|
||||
return transformArgumentList(argumentList, data)
|
||||
}
|
||||
|
||||
final override fun visitCall(call: FirCall, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformCall(call, data)
|
||||
}
|
||||
|
||||
@@ -62,6 +62,7 @@ import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||
import org.jetbrains.kotlin.fir.types.FirStarProjection
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjectionWithVariance
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperatorCall
|
||||
@@ -240,6 +241,8 @@ abstract class FirVisitor<out R, in D> {
|
||||
|
||||
open fun visitTypeProjectionWithVariance(typeProjectionWithVariance: FirTypeProjectionWithVariance, data: D): R = visitElement(typeProjectionWithVariance, data)
|
||||
|
||||
open fun visitArgumentList(argumentList: FirArgumentList, data: D): R = visitElement(argumentList, data)
|
||||
|
||||
open fun visitCall(call: FirCall, data: D): R = visitElement(call, data)
|
||||
|
||||
open fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: D): R = visitElement(annotationCall, data)
|
||||
|
||||
@@ -62,6 +62,7 @@ import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||
import org.jetbrains.kotlin.fir.types.FirStarProjection
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjectionWithVariance
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperatorCall
|
||||
@@ -352,6 +353,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitElement(typeProjectionWithVariance)
|
||||
}
|
||||
|
||||
open fun visitArgumentList(argumentList: FirArgumentList) {
|
||||
visitElement(argumentList)
|
||||
}
|
||||
|
||||
open fun visitCall(call: FirCall) {
|
||||
visitElement(call)
|
||||
}
|
||||
@@ -808,6 +813,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitTypeProjectionWithVariance(typeProjectionWithVariance)
|
||||
}
|
||||
|
||||
final override fun visitArgumentList(argumentList: FirArgumentList, data: Nothing?) {
|
||||
visitArgumentList(argumentList)
|
||||
}
|
||||
|
||||
final override fun visitCall(call: FirCall, data: Nothing?) {
|
||||
visitCall(call)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2010-2020 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.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildArgumentList
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
fun buildUnaryArgumentList(argument: FirExpression): FirArgumentList = buildArgumentList {
|
||||
arguments += argument
|
||||
}
|
||||
|
||||
fun buildBinaryArgumentList(left: FirExpression, right: FirExpression): FirArgumentList = buildArgumentList {
|
||||
arguments += left
|
||||
arguments += right
|
||||
}
|
||||
|
||||
abstract class FirAbstractArgumentList : FirArgumentList() {
|
||||
override val source: FirSourceElement?
|
||||
get() = null
|
||||
|
||||
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirArgumentList {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
// DO NOTHING
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
object FirEmptyArgumentList : FirAbstractArgumentList() {
|
||||
override val arguments: List<FirExpression>
|
||||
get() = emptyList()
|
||||
}
|
||||
|
||||
class FirArraySetArgumentList(
|
||||
private val rValue: FirExpression,
|
||||
private val indexes: List<FirExpression>
|
||||
) : FirAbstractArgumentList() {
|
||||
override val arguments: List<FirExpression>
|
||||
get() = indexes + rValue
|
||||
}
|
||||
@@ -34,7 +34,9 @@ fun <T> buildConstOrErrorExpression(source: FirSourceElement?, kind: FirConstKin
|
||||
this.diagnostic = diagnostic
|
||||
}
|
||||
|
||||
inline val FirCall.argument: FirExpression get() = arguments.first()
|
||||
inline val FirCall.arguments: List<FirExpression> get() = argumentList.arguments
|
||||
|
||||
inline val FirCall.argument: FirExpression get() = argumentList.arguments.first()
|
||||
|
||||
fun FirExpression.toResolvedCallableReference(): FirResolvedNamedReference? {
|
||||
return (this as? FirQualifiedAccess)?.calleeReference as? FirResolvedNamedReference
|
||||
|
||||
+20
@@ -101,6 +101,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
|
||||
builder(annotationCall) {
|
||||
parents += callBuilder
|
||||
default("argumentList") {
|
||||
value = "FirEmptyArgumentList"
|
||||
}
|
||||
useTypes(emptyArgumentListType)
|
||||
}
|
||||
|
||||
builder(arrayOfCall) {
|
||||
@@ -122,6 +126,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
|
||||
builder(componentCall) {
|
||||
parents += callBuilder
|
||||
default("argumentList") {
|
||||
value = "FirEmptyArgumentList"
|
||||
}
|
||||
useTypes(emptyArgumentListType)
|
||||
}
|
||||
|
||||
builder(whileLoop) {
|
||||
@@ -140,6 +148,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
|
||||
builder(delegatedConstructorCall) {
|
||||
parents += callBuilder
|
||||
default("argumentList") {
|
||||
value = "FirEmptyArgumentList"
|
||||
}
|
||||
useTypes(emptyArgumentListType)
|
||||
}
|
||||
|
||||
builder(functionCall) {
|
||||
@@ -148,6 +160,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
defaultFalse("safe")
|
||||
defaultNoReceivers()
|
||||
openBuilder()
|
||||
default("argumentList") {
|
||||
value = "FirEmptyArgumentList"
|
||||
}
|
||||
useTypes(emptyArgumentListType)
|
||||
}
|
||||
|
||||
builder(qualifiedAccessExpression) {
|
||||
@@ -172,6 +188,10 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
|
||||
builder(typeOperatorCall) {
|
||||
parents += callBuilder
|
||||
default("argumentList") {
|
||||
value = "FirEmptyArgumentList"
|
||||
}
|
||||
useTypes(emptyArgumentListType)
|
||||
}
|
||||
|
||||
builder(stringConcatenationCall) {
|
||||
|
||||
+1
@@ -76,6 +76,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
||||
val typeProjection = element("TypeProjection", TypeRef)
|
||||
val starProjection = element("StarProjection", TypeRef, typeProjection)
|
||||
val typeProjectionWithVariance = element("TypeProjectionWithVariance", TypeRef, typeProjection)
|
||||
val argumentList = element("ArgumentList", Expression)
|
||||
val call = element("Call", Expression, statement) // TODO: may smth like `CallWithArguments` or `ElementWithArguments`?
|
||||
val annotationCall = element("AnnotationCall", Expression, expression, call)
|
||||
val operatorCall = element("OperatorCall", Expression, expression, call)
|
||||
|
||||
+1
-6
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.tree.generator
|
||||
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeImplementationConfigurator
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.Object
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.OpenClass
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.Type
|
||||
|
||||
object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() {
|
||||
fun configureImplementations() {
|
||||
@@ -89,10 +88,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
|
||||
impl(arraySetCall) {
|
||||
parents += modifiableQualifiedAccess
|
||||
default("arguments") {
|
||||
value = "indexes + rValue"
|
||||
withGetter = true
|
||||
}
|
||||
default("lValue") {
|
||||
value = "calleeReference"
|
||||
customSetter = "calleeReference = value"
|
||||
@@ -174,7 +169,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
|
||||
impl(getClassCall) {
|
||||
default("argument") {
|
||||
value = "arguments.first()"
|
||||
value = "argumentList.arguments.first()"
|
||||
withGetter = true
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -105,10 +105,14 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
+annotations
|
||||
}
|
||||
|
||||
call.configure {
|
||||
argumentList.configure {
|
||||
+arguments.withTransform()
|
||||
}
|
||||
|
||||
call.configure {
|
||||
+field(argumentList, withReplace = true)
|
||||
}
|
||||
|
||||
block.configure {
|
||||
+fieldList(statement).withTransform()
|
||||
+typeRefField
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ val delegateFieldSymbolType = type("fir.symbols.impl", "FirDelegateFieldSymbol")
|
||||
val classSymbolType = type("fir.symbols.impl", "FirClassSymbol")
|
||||
val classLikeSymbolType = type("fir.symbols.impl", "FirClassLikeSymbol<*>")
|
||||
val typeParameterSymbolType = type("fir.symbols.impl", "FirTypeParameterSymbol")
|
||||
|
||||
val emptyArgumentListType = type("fir.expressions", "FirEmptyArgumentList")
|
||||
val firScopeProviderType = type("fir.scopes", "FirScopeProvider")
|
||||
|
||||
val pureAbstractElementType = generatedType("FirPureAbstractElement")
|
||||
|
||||
Reference in New Issue
Block a user