[FIR] Add configurable typeRef to FirArrayOfCallBuilder
This commit is contained in:
+2
-7
@@ -27,24 +27,19 @@ import org.jetbrains.kotlin.fir.visitors.*
|
|||||||
@FirBuilderDsl
|
@FirBuilderDsl
|
||||||
class FirArrayOfCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
class FirArrayOfCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||||
override var source: FirSourceElement? = null
|
override var source: FirSourceElement? = null
|
||||||
|
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
override lateinit var argumentList: FirArgumentList
|
override lateinit var argumentList: FirArgumentList
|
||||||
|
|
||||||
override fun build(): FirArrayOfCall {
|
override fun build(): FirArrayOfCall {
|
||||||
return FirArrayOfCallImpl(
|
return FirArrayOfCallImpl(
|
||||||
source,
|
source,
|
||||||
|
typeRef,
|
||||||
annotations,
|
annotations,
|
||||||
argumentList,
|
argumentList,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Deprecated("Modification of 'typeRef' has no impact for FirArrayOfCallBuilder", level = DeprecationLevel.HIDDEN)
|
|
||||||
override var typeRef: FirTypeRef
|
|
||||||
get() = throw IllegalStateException()
|
|
||||||
set(value) {
|
|
||||||
throw IllegalStateException()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalContracts::class)
|
@OptIn(ExperimentalContracts::class)
|
||||||
|
|||||||
+1
-3
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -20,11 +19,10 @@ import org.jetbrains.kotlin.fir.visitors.*
|
|||||||
|
|
||||||
internal class FirArrayOfCallImpl(
|
internal class FirArrayOfCallImpl(
|
||||||
override val source: FirSourceElement?,
|
override val source: FirSourceElement?,
|
||||||
|
override var typeRef: FirTypeRef,
|
||||||
override val annotations: MutableList<FirAnnotationCall>,
|
override val annotations: MutableList<FirAnnotationCall>,
|
||||||
override var argumentList: FirArgumentList,
|
override var argumentList: FirArgumentList,
|
||||||
) : FirArrayOfCall() {
|
) : FirArrayOfCall() {
|
||||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
|
||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
typeRef.accept(visitor, data)
|
typeRef.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
|
|||||||
+2
-1
@@ -325,7 +325,8 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
|||||||
expression to "FirExpressionStub",
|
expression to "FirExpressionStub",
|
||||||
varargArgumentsExpression,
|
varargArgumentsExpression,
|
||||||
checkedSafeCallSubject,
|
checkedSafeCallSubject,
|
||||||
safeCallExpression
|
safeCallExpression,
|
||||||
|
arrayOfCall
|
||||||
)
|
)
|
||||||
elementsWithDefaultTypeRef.forEach {
|
elementsWithDefaultTypeRef.forEach {
|
||||||
val (element, name) = when (it) {
|
val (element, name) = when (it) {
|
||||||
|
|||||||
+1
@@ -462,6 +462,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
|||||||
"FirVarargArgumentsExpressionImpl",
|
"FirVarargArgumentsExpressionImpl",
|
||||||
"FirSafeCallExpressionImpl",
|
"FirSafeCallExpressionImpl",
|
||||||
"FirCheckedSafeCallSubjectImpl",
|
"FirCheckedSafeCallSubjectImpl",
|
||||||
|
"FirArrayOfCallImpl",
|
||||||
)
|
)
|
||||||
configureFieldInAllImplementations(
|
configureFieldInAllImplementations(
|
||||||
field = "typeRef",
|
field = "typeRef",
|
||||||
|
|||||||
Reference in New Issue
Block a user