[FIR] Add configurable typeRef to FirArrayOfCallBuilder
This commit is contained in:
+2
-7
@@ -27,24 +27,19 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
@FirBuilderDsl
|
||||
class FirArrayOfCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override lateinit var argumentList: FirArgumentList
|
||||
|
||||
override fun build(): FirArrayOfCall {
|
||||
return FirArrayOfCallImpl(
|
||||
source,
|
||||
typeRef,
|
||||
annotations,
|
||||
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)
|
||||
|
||||
+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.FirArrayOfCall
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
@@ -20,11 +19,10 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
internal class FirArrayOfCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override var typeRef: FirTypeRef,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
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) }
|
||||
|
||||
+2
-1
@@ -325,7 +325,8 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
expression to "FirExpressionStub",
|
||||
varargArgumentsExpression,
|
||||
checkedSafeCallSubject,
|
||||
safeCallExpression
|
||||
safeCallExpression,
|
||||
arrayOfCall
|
||||
)
|
||||
elementsWithDefaultTypeRef.forEach {
|
||||
val (element, name) = when (it) {
|
||||
|
||||
+1
@@ -462,6 +462,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
"FirVarargArgumentsExpressionImpl",
|
||||
"FirSafeCallExpressionImpl",
|
||||
"FirCheckedSafeCallSubjectImpl",
|
||||
"FirArrayOfCallImpl",
|
||||
)
|
||||
configureFieldInAllImplementations(
|
||||
field = "typeRef",
|
||||
|
||||
Reference in New Issue
Block a user