[FIR] Rename FirArraySetCall to FirAugmentedArraySetCall
This commit is contained in:
@@ -1257,8 +1257,8 @@ class Fir2IrVisitor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitArraySetCall(arraySetCall: FirArraySetCall, data: Any?): IrElement {
|
||||
return arraySetCall.convertWithOffsets { startOffset, endOffset ->
|
||||
override fun visitAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall, data: Any?): IrElement {
|
||||
return augmentedArraySetCall.convertWithOffsets { startOffset, endOffset ->
|
||||
IrErrorCallExpressionImpl(
|
||||
startOffset, endOffset, typeConverter.unitType,
|
||||
"FirArraySetCall (resolve isn't supported yet)"
|
||||
|
||||
@@ -479,7 +479,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
return if (operation == FirOperation.ASSIGN) {
|
||||
this.convert()
|
||||
} else {
|
||||
generateArraySetCall(baseSource, operation, rhs, convert)
|
||||
generateAugmentedArraySetCall(baseSource, operation, rhs, convert)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -506,13 +506,13 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
}
|
||||
}
|
||||
|
||||
private fun T.generateArraySetCall(
|
||||
private fun T.generateAugmentedArraySetCall(
|
||||
baseSource: FirSourceElement?,
|
||||
operation: FirOperation,
|
||||
rhs: T?,
|
||||
convert: T.() -> FirExpression
|
||||
): FirStatement {
|
||||
return buildArraySetCall {
|
||||
return buildAugmentedArraySetCall {
|
||||
source = baseSource
|
||||
this.operation = operation
|
||||
assignCall = generateAugmentedCallForAugmentedArraySetCall(operation, rhs, convert)
|
||||
|
||||
+2
-2
@@ -169,8 +169,8 @@ open class FirBodyResolveTransformer(
|
||||
return expressionsTransformer.transformDelegatedConstructorCall(delegatedConstructorCall, data)
|
||||
}
|
||||
|
||||
override fun transformArraySetCall(arraySetCall: FirArraySetCall, data: ResolutionMode): CompositeTransformResult<FirStatement> {
|
||||
return expressionsTransformer.transformArraySetCall(arraySetCall, data)
|
||||
override fun transformAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall, data: ResolutionMode): CompositeTransformResult<FirStatement> {
|
||||
return expressionsTransformer.transformAugmentedArraySetCall(augmentedArraySetCall, data)
|
||||
}
|
||||
|
||||
// ------------------------------------- Declarations -------------------------------------
|
||||
|
||||
+13
-13
@@ -629,13 +629,13 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
override fun transformArraySetCall(arraySetCall: FirArraySetCall, data: ResolutionMode): CompositeTransformResult<FirStatement> {
|
||||
assert(arraySetCall.operation in FirOperation.ASSIGNMENTS)
|
||||
assert(arraySetCall.operation != FirOperation.ASSIGN)
|
||||
override fun transformAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall, data: ResolutionMode): CompositeTransformResult<FirStatement> {
|
||||
assert(augmentedArraySetCall.operation in FirOperation.ASSIGNMENTS)
|
||||
assert(augmentedArraySetCall.operation != FirOperation.ASSIGN)
|
||||
|
||||
val operatorName = FirOperationNameConventions.ASSIGNMENTS.getValue(arraySetCall.operation)
|
||||
val operatorName = FirOperationNameConventions.ASSIGNMENTS.getValue(augmentedArraySetCall.operation)
|
||||
|
||||
val firstCalls = with(arraySetCall.setGetBlock.statements.last() as FirFunctionCall) setCall@{
|
||||
val firstCalls = with(augmentedArraySetCall.setGetBlock.statements.last() as FirFunctionCall) setCall@{
|
||||
buildList {
|
||||
add(this@setCall)
|
||||
with(arguments.last() as FirFunctionCall) plusCall@{
|
||||
@@ -645,25 +645,25 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
||||
}
|
||||
}
|
||||
val secondCalls = listOf(
|
||||
arraySetCall.assignCall,
|
||||
arraySetCall.assignCall.explicitReceiver as FirFunctionCall
|
||||
augmentedArraySetCall.assignCall,
|
||||
augmentedArraySetCall.assignCall.explicitReceiver as FirFunctionCall
|
||||
)
|
||||
|
||||
val firstResult = withLocalScopeCleanup {
|
||||
arraySetCall.setGetBlock.transformSingle(transformer, ResolutionMode.ContextIndependent)
|
||||
augmentedArraySetCall.setGetBlock.transformSingle(transformer, ResolutionMode.ContextIndependent)
|
||||
}
|
||||
val secondResult = arraySetCall.assignCall.transformSingle(transformer, ResolutionMode.ContextIndependent)
|
||||
val secondResult = augmentedArraySetCall.assignCall.transformSingle(transformer, ResolutionMode.ContextIndependent)
|
||||
|
||||
val firstSucceed = firstCalls.all { it.typeRef !is FirErrorTypeRef }
|
||||
val secondSucceed = secondCalls.all { it.typeRef !is FirErrorTypeRef }
|
||||
|
||||
val result: FirStatement = when {
|
||||
firstSucceed && secondSucceed -> {
|
||||
arraySetCall.also {
|
||||
augmentedArraySetCall.also {
|
||||
it.replaceCalleeReference(
|
||||
buildErrorNamedReference {
|
||||
// TODO: add better diagnostic
|
||||
source = arraySetCall.source
|
||||
source = augmentedArraySetCall.source
|
||||
diagnostic = FirAmbiguityError(operatorName, emptyList())
|
||||
}
|
||||
)
|
||||
@@ -672,10 +672,10 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
||||
firstSucceed -> firstResult
|
||||
secondSucceed -> secondResult
|
||||
else -> {
|
||||
arraySetCall.also {
|
||||
augmentedArraySetCall.also {
|
||||
it.replaceCalleeReference(
|
||||
buildErrorNamedReference {
|
||||
source = arraySetCall.source
|
||||
source = augmentedArraySetCall.source
|
||||
diagnostic = FirUnresolvedNameError(operatorName)
|
||||
}
|
||||
)
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
abstract class FirArraySetCall : FirPureAbstractElement(), FirStatement {
|
||||
abstract class FirAugmentedArraySetCall : FirPureAbstractElement(), FirStatement {
|
||||
abstract override val source: FirSourceElement?
|
||||
abstract override val annotations: List<FirAnnotationCall>
|
||||
abstract val assignCall: FirFunctionCall
|
||||
@@ -23,7 +23,7 @@ abstract class FirArraySetCall : FirPureAbstractElement(), FirStatement {
|
||||
abstract val operation: FirOperation
|
||||
abstract val calleeReference: FirReference
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitArraySetCall(this, data)
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitAugmentedArraySetCall(this, data)
|
||||
|
||||
abstract fun replaceCalleeReference(newCalleeReference: FirReference)
|
||||
}
|
||||
+7
-7
@@ -10,11 +10,11 @@ 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.FirArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAugmentedArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirArraySetCallImpl
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirAugmentedArraySetCallImpl
|
||||
import org.jetbrains.kotlin.fir.references.FirReference
|
||||
import org.jetbrains.kotlin.fir.references.impl.FirStubReference
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
*/
|
||||
|
||||
@FirBuilderDsl
|
||||
class FirArraySetCallBuilder : FirAnnotationContainerBuilder {
|
||||
class FirAugmentedArraySetCallBuilder : FirAnnotationContainerBuilder {
|
||||
override var source: FirSourceElement? = null
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
lateinit var assignCall: FirFunctionCall
|
||||
@@ -33,8 +33,8 @@ class FirArraySetCallBuilder : FirAnnotationContainerBuilder {
|
||||
lateinit var operation: FirOperation
|
||||
var calleeReference: FirReference = FirStubReference
|
||||
|
||||
override fun build(): FirArraySetCall {
|
||||
return FirArraySetCallImpl(
|
||||
override fun build(): FirAugmentedArraySetCall {
|
||||
return FirAugmentedArraySetCallImpl(
|
||||
source,
|
||||
annotations,
|
||||
assignCall,
|
||||
@@ -47,9 +47,9 @@ class FirArraySetCallBuilder : FirAnnotationContainerBuilder {
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
inline fun buildArraySetCall(init: FirArraySetCallBuilder.() -> Unit): FirArraySetCall {
|
||||
inline fun buildAugmentedArraySetCall(init: FirAugmentedArraySetCallBuilder.() -> Unit): FirAugmentedArraySetCall {
|
||||
contract {
|
||||
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
|
||||
}
|
||||
return FirArraySetCallBuilder().apply(init).build()
|
||||
return FirAugmentedArraySetCallBuilder().apply(init).build()
|
||||
}
|
||||
+4
-4
@@ -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.FirArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAugmentedArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
@@ -19,14 +19,14 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
* DO NOT MODIFY IT MANUALLY
|
||||
*/
|
||||
|
||||
internal class FirArraySetCallImpl(
|
||||
internal class FirAugmentedArraySetCallImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override val annotations: MutableList<FirAnnotationCall>,
|
||||
override var assignCall: FirFunctionCall,
|
||||
override var setGetBlock: FirBlock,
|
||||
override val operation: FirOperation,
|
||||
override var calleeReference: FirReference,
|
||||
) : FirArraySetCall() {
|
||||
) : FirAugmentedArraySetCall() {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
assignCall.accept(visitor, data)
|
||||
@@ -34,7 +34,7 @@ internal class FirArraySetCallImpl(
|
||||
calleeReference.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirArraySetCallImpl {
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAugmentedArraySetCallImpl {
|
||||
annotations.transformInplace(transformer, data)
|
||||
assignCall = assignCall.transformSingle(transformer, data)
|
||||
setGetBlock = setGetBlock.transformSingle(transformer, data)
|
||||
@@ -74,7 +74,7 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessWithoutCallee
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAugmentedArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||
@@ -403,8 +403,8 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformElement(arrayOfCall, data)
|
||||
}
|
||||
|
||||
open fun transformArraySetCall(arraySetCall: FirArraySetCall, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformElement(arraySetCall, data)
|
||||
open fun transformAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformElement(augmentedArraySetCall, data)
|
||||
}
|
||||
|
||||
open fun transformClassReferenceExpression(classReferenceExpression: FirClassReferenceExpression, data: D): CompositeTransformResult<FirStatement> {
|
||||
@@ -863,8 +863,8 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformArrayOfCall(arrayOfCall, data)
|
||||
}
|
||||
|
||||
final override fun visitArraySetCall(arraySetCall: FirArraySetCall, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformArraySetCall(arraySetCall, data)
|
||||
final override fun visitAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformAugmentedArraySetCall(augmentedArraySetCall, data)
|
||||
}
|
||||
|
||||
final override fun visitClassReferenceExpression(classReferenceExpression: FirClassReferenceExpression, data: D): CompositeTransformResult<FirStatement> {
|
||||
|
||||
@@ -74,7 +74,7 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessWithoutCallee
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAugmentedArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||
@@ -265,7 +265,7 @@ abstract class FirVisitor<out R, in D> {
|
||||
|
||||
open fun visitArrayOfCall(arrayOfCall: FirArrayOfCall, data: D): R = visitElement(arrayOfCall, data)
|
||||
|
||||
open fun visitArraySetCall(arraySetCall: FirArraySetCall, data: D): R = visitElement(arraySetCall, data)
|
||||
open fun visitAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall, data: D): R = visitElement(augmentedArraySetCall, data)
|
||||
|
||||
open fun visitClassReferenceExpression(classReferenceExpression: FirClassReferenceExpression, data: D): R = visitElement(classReferenceExpression, data)
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessWithoutCallee
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCheckNotNullCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAugmentedArraySetCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||
@@ -401,8 +401,8 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitElement(arrayOfCall)
|
||||
}
|
||||
|
||||
open fun visitArraySetCall(arraySetCall: FirArraySetCall) {
|
||||
visitElement(arraySetCall)
|
||||
open fun visitAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall) {
|
||||
visitElement(augmentedArraySetCall)
|
||||
}
|
||||
|
||||
open fun visitClassReferenceExpression(classReferenceExpression: FirClassReferenceExpression) {
|
||||
@@ -861,8 +861,8 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitArrayOfCall(arrayOfCall)
|
||||
}
|
||||
|
||||
final override fun visitArraySetCall(arraySetCall: FirArraySetCall, data: Nothing?) {
|
||||
visitArraySetCall(arraySetCall)
|
||||
final override fun visitAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall, data: Nothing?) {
|
||||
visitAugmentedArraySetCall(augmentedArraySetCall)
|
||||
}
|
||||
|
||||
final override fun visitClassReferenceExpression(classReferenceExpression: FirClassReferenceExpression, data: Nothing?) {
|
||||
|
||||
@@ -997,10 +997,10 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
||||
visitAssignment(FirOperation.ASSIGN, variableAssignment.rValue)
|
||||
}
|
||||
|
||||
override fun visitArraySetCall(arraySetCall: FirArraySetCall) {
|
||||
arraySetCall.annotations.renderAnnotations()
|
||||
override fun visitAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall) {
|
||||
augmentedArraySetCall.annotations.renderAnnotations()
|
||||
print("ArraySet:[")
|
||||
arraySetCall.assignCall.accept(this)
|
||||
augmentedArraySetCall.assignCall.accept(this)
|
||||
print("]")
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -89,7 +89,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
||||
val checkNotNullCall = element("CheckNotNullCall", Expression, expression, call, resolvable)
|
||||
|
||||
val arrayOfCall = element("ArrayOfCall", Expression, expression, call)
|
||||
val arraySetCall = element("ArraySetCall", Expression, statement)
|
||||
val arraySetCall = element("AugmentedArraySetCall", Expression, statement)
|
||||
val classReferenceExpression = element("ClassReferenceExpression", Expression, expression)
|
||||
val errorExpression = element("ErrorExpression", Expression, expression, diagnosticHolder)
|
||||
val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder)
|
||||
|
||||
Reference in New Issue
Block a user