[FIR] Get rid of operation in FirVariableAssignment
`FirVariableAssignment` is creates only for expressions `x = y` For other assign operators there is a `FirOperatorCall`
This commit is contained in:
@@ -639,9 +639,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
||||
private fun FlowContent.generate(variableAssignment: FirVariableAssignment) {
|
||||
generateReceiver(variableAssignment)
|
||||
generate(variableAssignment.lValue)
|
||||
+" "
|
||||
+variableAssignment.operation.operator
|
||||
+" "
|
||||
+" = "
|
||||
generate(variableAssignment.rValue)
|
||||
}
|
||||
|
||||
|
||||
@@ -471,8 +471,8 @@ abstract class BaseFirBuilder<T>(val session: FirSession, val context: Context =
|
||||
arguments += value
|
||||
}
|
||||
}
|
||||
|
||||
return FirVariableAssignmentImpl(source, false, value, operation).apply {
|
||||
require(operation == FirOperation.ASSIGN)
|
||||
return FirVariableAssignmentImpl(source, false, value).apply {
|
||||
lValue = initializeLValue(this@generateAssignment) { convert() as? FirQualifiedAccess }
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -246,7 +246,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
||||
operatorCallReference == null || (!lhsIsVar && !assignIsError) -> resolvedAssignCall.compose()
|
||||
assignCallReference == null -> {
|
||||
val assignment =
|
||||
FirVariableAssignmentImpl(operatorCall.source, false, resolvedOperatorCall, FirOperation.ASSIGN).apply {
|
||||
FirVariableAssignmentImpl(operatorCall.source, false, resolvedOperatorCall).apply {
|
||||
lValue = if (lhsIsVar)
|
||||
lhsReference!!
|
||||
else
|
||||
|
||||
@@ -928,7 +928,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
visitQualifiedAccess(variableAssignment)
|
||||
variableAssignment.lValue.accept(this)
|
||||
print(" ")
|
||||
visitAssignment(variableAssignment.operation, variableAssignment.rValue)
|
||||
visitAssignment(FirOperation.ASSIGN, variableAssignment.rValue)
|
||||
}
|
||||
|
||||
override fun visitArraySetCall(arraySetCall: FirArraySetCall) {
|
||||
|
||||
@@ -25,7 +25,6 @@ abstract class FirVariableAssignment : FirPureAbstractElement(), FirQualifiedAcc
|
||||
abstract override val calleeReference: FirReference
|
||||
abstract val lValue: FirReference
|
||||
abstract val rValue: FirExpression
|
||||
abstract val operation: FirOperation
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitVariableAssignment(this, data)
|
||||
|
||||
|
||||
+1
-3
@@ -8,7 +8,6 @@ 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.FirOperation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||
import org.jetbrains.kotlin.fir.impl.FirAbstractAnnotatedElement
|
||||
import org.jetbrains.kotlin.fir.references.FirReference
|
||||
@@ -22,8 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
||||
class FirVariableAssignmentImpl(
|
||||
override val source: FirSourceElement?,
|
||||
override var safe: Boolean,
|
||||
override var rValue: FirExpression,
|
||||
override var operation: FirOperation
|
||||
override var rValue: FirExpression
|
||||
) : FirVariableAssignment(), FirModifiableQualifiedAccess, FirAbstractAnnotatedElement {
|
||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||
override var explicitReceiver: FirExpression? = null
|
||||
|
||||
-1
@@ -383,7 +383,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
|
||||
impl(variableAssignment) {
|
||||
parents += modifiableQualifiedAccess
|
||||
isMutable("operation")
|
||||
lateinit("calleeReference")
|
||||
defaultNoReceivers()
|
||||
|
||||
|
||||
-1
@@ -439,7 +439,6 @@ object NodeConfigurator : AbstractFieldConfigurator() {
|
||||
variableAssignment.configure {
|
||||
+field("lValue", reference)
|
||||
+field("rValue", expression).withTransform()
|
||||
+field("operation", operationType)
|
||||
}
|
||||
|
||||
whenSubjectExpression.configure {
|
||||
|
||||
+1
-1
@@ -445,7 +445,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
|
||||
}
|
||||
|
||||
override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: StringBuilder) {
|
||||
data.append("qualified access: \"${variableAssignment.operation}\"")
|
||||
data.append("variable assignment")
|
||||
}
|
||||
|
||||
override fun visitStarProjection(starProjection: FirStarProjection, data: StringBuilder) {
|
||||
|
||||
Reference in New Issue
Block a user