FIR expressions: perform some names refactoring
FirAccess -> FirQualifiedAccess FirAccessExpression -> FirQualifiedExpression FirPropertyAssignment -> FirVariableAssignment Introduce lValue & rValue in FirAssignment Introduce separate indexes in FirArraySetCall
This commit is contained in:
@@ -253,8 +253,8 @@ internal fun generateIncrementOrDecrementBlock(
|
||||
}
|
||||
}
|
||||
|
||||
internal fun generateAccessExpression(session: FirSession, psi: PsiElement?, name: Name): FirAccessExpression =
|
||||
FirAccessExpressionImpl(session, psi).apply {
|
||||
internal fun generateAccessExpression(session: FirSession, psi: PsiElement?, name: Name): FirQualifiedAccessExpression =
|
||||
FirQualifiedAccessExpressionImpl(session, psi).apply {
|
||||
calleeReference = FirSimpleNamedReference(session, psi, name)
|
||||
}
|
||||
|
||||
@@ -292,10 +292,10 @@ internal fun generateTemporaryVariable(
|
||||
session: FirSession, psi: PsiElement?, specialName: String, initializer: FirExpression
|
||||
): FirVariable = generateTemporaryVariable(session, psi, Name.special("<$specialName>"), initializer)
|
||||
|
||||
private fun FirModifiableAccess.initializeLValue(
|
||||
private fun FirModifiableQualifiedAccess.initializeLValue(
|
||||
session: FirSession,
|
||||
left: KtExpression?,
|
||||
convertQualified: KtQualifiedExpression.() -> FirAccess?
|
||||
convertQualified: KtQualifiedExpression.() -> FirQualifiedAccess?
|
||||
): FirReference {
|
||||
return when (left) {
|
||||
is KtSimpleNameExpression -> {
|
||||
@@ -337,12 +337,12 @@ internal fun KtExpression?.generateAssignment(
|
||||
val arrayExpression = this.arrayExpression
|
||||
val arraySet = FirArraySetCallImpl(session, psi, value, operation).apply {
|
||||
for (indexExpression in indexExpressions) {
|
||||
arguments += indexExpression.convert()
|
||||
indexes += indexExpression.convert()
|
||||
}
|
||||
}
|
||||
if (arrayExpression is KtSimpleNameExpression) {
|
||||
return arraySet.apply {
|
||||
calleeReference = initializeLValue(session, arrayExpression) { convert() as? FirAccess }
|
||||
lValue = initializeLValue(session, arrayExpression) { convert() as? FirQualifiedAccess }
|
||||
}
|
||||
}
|
||||
return FirBlockImpl(session, arrayExpression).apply {
|
||||
@@ -351,7 +351,7 @@ internal fun KtExpression?.generateAssignment(
|
||||
session, this@generateAssignment, name,
|
||||
arrayExpression?.convert() ?: FirErrorExpressionImpl(session, arrayExpression, "No array expression")
|
||||
)
|
||||
statements += arraySet.apply { calleeReference = FirSimpleNamedReference(session, arrayExpression, name) }
|
||||
statements += arraySet.apply { lValue = FirSimpleNamedReference(session, arrayExpression, name) }
|
||||
}
|
||||
}
|
||||
if (operation != FirOperation.ASSIGN &&
|
||||
@@ -364,12 +364,12 @@ internal fun KtExpression?.generateAssignment(
|
||||
session, this@generateAssignment, name,
|
||||
this@generateAssignment?.convert() ?: FirErrorExpressionImpl(session, this@generateAssignment, "No LValue in assignment")
|
||||
)
|
||||
statements += FirPropertyAssignmentImpl(session, psi, value, operation).apply {
|
||||
calleeReference = FirSimpleNamedReference(session, this@generateAssignment, name)
|
||||
statements += FirVariableAssignmentImpl(session, psi, value, operation).apply {
|
||||
lValue = FirSimpleNamedReference(session, this@generateAssignment, name)
|
||||
}
|
||||
}
|
||||
}
|
||||
return FirPropertyAssignmentImpl(session, psi, value, operation).apply {
|
||||
calleeReference = initializeLValue(session, this@generateAssignment) { convert() as? FirAccess }
|
||||
return FirVariableAssignmentImpl(session, psi, value, operation).apply {
|
||||
lValue = initializeLValue(session, this@generateAssignment) { convert() as? FirQualifiedAccess }
|
||||
}
|
||||
}
|
||||
@@ -1247,7 +1247,7 @@ class RawFirBuilder(val session: FirSession, val stubMode: Boolean) {
|
||||
override fun visitQualifiedExpression(expression: KtQualifiedExpression, data: Unit): FirElement {
|
||||
val selector = expression.selectorExpression
|
||||
?: return FirErrorExpressionImpl(session, expression, "Qualified expression without selector")
|
||||
val firSelector = selector.toFirExpression() as FirModifiableAccess
|
||||
val firSelector = selector.toFirExpression() as FirModifiableQualifiedAccess
|
||||
firSelector.safe = expression is KtSafeQualifiedExpression
|
||||
firSelector.explicitReceiver = expression.receiverExpression.toFirExpression()
|
||||
return firSelector
|
||||
@@ -1255,14 +1255,14 @@ class RawFirBuilder(val session: FirSession, val stubMode: Boolean) {
|
||||
|
||||
override fun visitThisExpression(expression: KtThisExpression, data: Unit): FirElement {
|
||||
val labelName = expression.getLabelName()
|
||||
return FirAccessExpressionImpl(session, expression).apply {
|
||||
return FirQualifiedAccessExpressionImpl(session, expression).apply {
|
||||
calleeReference = FirExplicitThisReference(session, expression, labelName)
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitSuperExpression(expression: KtSuperExpression, data: Unit): FirElement {
|
||||
val superType = expression.superTypeQualifier
|
||||
return FirAccessExpressionImpl(session, expression).apply {
|
||||
return FirQualifiedAccessExpressionImpl(session, expression).apply {
|
||||
calleeReference = FirExplicitSuperReference(session, expression, superType.toFirOrImplicitType())
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.FirErrorDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAccess
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub
|
||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||
@@ -72,15 +72,15 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() {
|
||||
errorExpression.psi?.let { println(it) }
|
||||
}
|
||||
|
||||
override fun visitAccess(access: FirAccess) {
|
||||
val calleeReference = access.calleeReference
|
||||
override fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess) {
|
||||
val calleeReference = qualifiedAccess.calleeReference
|
||||
if (calleeReference is FirErrorNamedReference) {
|
||||
errorReferences++
|
||||
println(calleeReference.errorReason)
|
||||
} else {
|
||||
normalReferences++
|
||||
}
|
||||
super.visitAccess(access)
|
||||
super.visitQualifiedAccess(qualifiedAccess)
|
||||
}
|
||||
|
||||
override fun visitExpression(expression: FirExpression) {
|
||||
|
||||
@@ -711,11 +711,11 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
print(">")
|
||||
}
|
||||
|
||||
override fun visitAccess(access: FirAccess) {
|
||||
val explicitReceiver = access.explicitReceiver
|
||||
override fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess) {
|
||||
val explicitReceiver = qualifiedAccess.explicitReceiver
|
||||
if (explicitReceiver != null) {
|
||||
explicitReceiver.accept(this)
|
||||
if (access.safe) {
|
||||
if (qualifiedAccess.safe) {
|
||||
print("?.")
|
||||
} else {
|
||||
print(".")
|
||||
@@ -730,39 +730,39 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
callableReferenceAccess.calleeReference.accept(this)
|
||||
}
|
||||
|
||||
override fun visitAccessExpression(accessExpression: FirAccessExpression) {
|
||||
accessExpression.annotations.renderAnnotations()
|
||||
visitAccess(accessExpression)
|
||||
accessExpression.calleeReference.accept(this)
|
||||
override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression) {
|
||||
qualifiedAccessExpression.annotations.renderAnnotations()
|
||||
visitQualifiedAccess(qualifiedAccessExpression)
|
||||
qualifiedAccessExpression.calleeReference.accept(this)
|
||||
}
|
||||
|
||||
override fun visitAssignment(assignment: FirAssignment) {
|
||||
print(assignment.operation.operator)
|
||||
print(" ")
|
||||
assignment.value.accept(this)
|
||||
assignment.rValue.accept(this)
|
||||
}
|
||||
|
||||
override fun visitPropertyAssignment(propertyAssignment: FirPropertyAssignment) {
|
||||
propertyAssignment.annotations.renderAnnotations()
|
||||
visitAccess(propertyAssignment)
|
||||
propertyAssignment.calleeReference.accept(this)
|
||||
override fun visitVariableAssignment(variableAssignment: FirVariableAssignment) {
|
||||
variableAssignment.annotations.renderAnnotations()
|
||||
visitQualifiedAccess(variableAssignment)
|
||||
variableAssignment.lValue.accept(this)
|
||||
print(" ")
|
||||
visitAssignment(propertyAssignment)
|
||||
visitAssignment(variableAssignment)
|
||||
}
|
||||
|
||||
override fun visitArraySetCall(arraySetCall: FirArraySetCall) {
|
||||
arraySetCall.annotations.renderAnnotations()
|
||||
visitAccess(arraySetCall)
|
||||
arraySetCall.calleeReference.accept(this)
|
||||
visitQualifiedAccess(arraySetCall)
|
||||
arraySetCall.lValue.accept(this)
|
||||
print("[")
|
||||
arraySetCall.arguments.renderSeparated()
|
||||
arraySetCall.indexes.renderSeparated()
|
||||
print("] ")
|
||||
visitAssignment(arraySetCall)
|
||||
}
|
||||
|
||||
override fun visitFunctionCall(functionCall: FirFunctionCall) {
|
||||
functionCall.annotations.renderAnnotations()
|
||||
visitAccess(functionCall)
|
||||
visitQualifiedAccess(functionCall)
|
||||
functionCall.calleeReference.accept(this)
|
||||
if (functionCall.typeArguments.isNotEmpty()) {
|
||||
print("<")
|
||||
|
||||
@@ -9,11 +9,19 @@ import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirArraySetCall : @VisitedSupertype FirCall, FirAssignment {
|
||||
// NB: arguments of this thing are indexes AND rvalue
|
||||
val indexes: List<FirExpression>
|
||||
|
||||
override val arguments get() = indexes + rValue
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitArraySetCall(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirCall>.acceptChildren(visitor, data)
|
||||
for (index in indexes) {
|
||||
index.accept(visitor, data)
|
||||
}
|
||||
acceptAnnotations(visitor, data)
|
||||
super<FirAssignment>.acceptChildren(visitor, data)
|
||||
}
|
||||
}
|
||||
@@ -5,10 +5,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirReference
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirAssignment : FirAccess {
|
||||
val value: FirExpression
|
||||
interface FirAssignment : FirQualifiedAccess {
|
||||
val lValue: FirReference get() = calleeReference
|
||||
|
||||
val rValue: FirExpression
|
||||
|
||||
val operation: FirOperation
|
||||
|
||||
@@ -16,7 +19,7 @@ interface FirAssignment : FirAccess {
|
||||
visitor.visitAssignment(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
value.accept(visitor, data)
|
||||
rValue.accept(visitor, data)
|
||||
super.acceptChildren(visitor, data)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirCallableReferenceAccess : FirAccessExpression {
|
||||
interface FirCallableReferenceAccess : FirQualifiedAccessExpression {
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitCallableReferenceAccess(this, data)
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjectionContainer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirFunctionCall : @VisitedSupertype FirCall, FirAccess, FirTypeProjectionContainer {
|
||||
interface FirFunctionCall : @VisitedSupertype FirCall, FirQualifiedAccess, FirTypeProjectionContainer {
|
||||
override val calleeReference: FirNamedReference
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
@@ -23,6 +23,6 @@ interface FirFunctionCall : @VisitedSupertype FirCall, FirAccess, FirTypeProject
|
||||
for (typeArgument in typeArguments) {
|
||||
typeArgument.accept(visitor, data)
|
||||
}
|
||||
super<FirAccess>.acceptChildren(visitor, data)
|
||||
super<FirQualifiedAccess>.acceptChildren(visitor, data)
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.expressions
|
||||
import org.jetbrains.kotlin.fir.FirReference
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirAccess : FirStatement {
|
||||
interface FirQualifiedAccess : FirStatement {
|
||||
val calleeReference: FirReference
|
||||
|
||||
val safe: Boolean get() = false
|
||||
@@ -16,7 +16,7 @@ interface FirAccess : FirStatement {
|
||||
val explicitReceiver: FirExpression? get() = null
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitAccess(this, data)
|
||||
visitor.visitQualifiedAccess(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
calleeReference.accept(visitor, data)
|
||||
+3
-3
@@ -8,11 +8,11 @@ package org.jetbrains.kotlin.fir.expressions
|
||||
import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirAccessExpression : @VisitedSupertype FirAccess, FirExpression {
|
||||
interface FirQualifiedAccessExpression : @VisitedSupertype FirQualifiedAccess, FirExpression {
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitAccessExpression(this, data)
|
||||
visitor.visitQualifiedAccessExpression(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirAccess>.acceptChildren(visitor, data)
|
||||
super<FirQualifiedAccess>.acceptChildren(visitor, data)
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -7,7 +7,8 @@ package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirPropertyAssignment : FirAssignment {
|
||||
interface FirVariableAssignment : FirAssignment {
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitPropertyAssignment(this, data)
|
||||
visitor.visitVariableAssignment(this, data)
|
||||
}
|
||||
+13
-5
@@ -7,22 +7,30 @@ package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirReference
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirPropertyAssignment
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||
import org.jetbrains.kotlin.fir.transformSingle
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
|
||||
abstract class FirAbstractAssignment(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
final override var value: FirExpression,
|
||||
final override var rValue: FirExpression,
|
||||
final override val operation: FirOperation,
|
||||
safe: Boolean = false
|
||||
) : FirAbstractAccess(session, psi, safe), FirPropertyAssignment {
|
||||
) : FirAbstractQualifiedAccess(session, psi, safe), FirVariableAssignment {
|
||||
|
||||
override var lValue: FirReference
|
||||
get() = calleeReference
|
||||
set(value) {
|
||||
calleeReference = value
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
value = value.transformSingle(transformer, data)
|
||||
return super<FirAbstractAccess>.transformChildren(transformer, data)
|
||||
rValue = rValue.transformSingle(transformer, data)
|
||||
return super<FirAbstractQualifiedAccess>.transformChildren(transformer, data)
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -10,11 +10,11 @@ import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
|
||||
abstract class FirAbstractAccess(
|
||||
abstract class FirAbstractQualifiedAccess(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
final override var safe: Boolean = false
|
||||
) : FirAbstractStatement(session, psi), FirModifiableAccess {
|
||||
) : FirAbstractStatement(session, psi), FirModifiableQualifiedAccess {
|
||||
final override lateinit var calleeReference: FirReference
|
||||
|
||||
final override var explicitReceiver: FirExpression? = null
|
||||
+2
-2
@@ -22,13 +22,13 @@ class FirArraySetCallImpl(
|
||||
value: FirExpression,
|
||||
operation: FirOperation
|
||||
) : FirAbstractAssignment(session, psi, value, operation, false), FirArraySetCall {
|
||||
override val arguments = mutableListOf<FirExpression>()
|
||||
override val indexes = mutableListOf<FirExpression>()
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
super<FirArraySetCall>.accept(visitor, data)
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
arguments.transformInplace(transformer, data)
|
||||
indexes.transformInplace(transformer, data)
|
||||
|
||||
return super<FirAbstractAssignment>.transformChildren(transformer, data)
|
||||
}
|
||||
|
||||
+1
-5
@@ -6,14 +6,10 @@
|
||||
package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
||||
import org.jetbrains.kotlin.fir.transformInplace
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
|
||||
class FirCallableReferenceAccessImpl(
|
||||
session: FirSession,
|
||||
psi: PsiElement?
|
||||
) : FirAbstractAccess(session, psi), FirCallableReferenceAccess
|
||||
) : FirAbstractQualifiedAccess(session, psi), FirCallableReferenceAccess
|
||||
+1
-1
@@ -16,7 +16,7 @@ class FirFunctionCallImpl(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
override var safe: Boolean = false
|
||||
) : FirAbstractCall(session, psi), FirFunctionCall, FirModifiableAccess {
|
||||
) : FirAbstractCall(session, psi), FirFunctionCall, FirModifiableQualifiedAccess {
|
||||
override val typeArguments = mutableListOf<FirTypeProjection>()
|
||||
|
||||
override lateinit var calleeReference: FirNamedReference
|
||||
|
||||
+2
-2
@@ -6,9 +6,9 @@
|
||||
package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAccess
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
||||
|
||||
interface FirModifiableAccess : FirAccess {
|
||||
interface FirModifiableQualifiedAccess : FirQualifiedAccess {
|
||||
override var safe: Boolean
|
||||
get() = super.safe
|
||||
set(_) {}
|
||||
+3
-7
@@ -6,15 +6,11 @@
|
||||
package org.jetbrains.kotlin.fir.expressions.impl
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAccessExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.transformInplace
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||
|
||||
class FirAccessExpressionImpl(
|
||||
class FirQualifiedAccessExpressionImpl(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
safe: Boolean = false
|
||||
) : FirAbstractAccess(session, psi, safe), FirAccessExpression
|
||||
) : FirAbstractQualifiedAccess(session, psi, safe), FirQualifiedAccessExpression
|
||||
+3
-3
@@ -9,12 +9,12 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirOperation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirPropertyAssignment
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||
|
||||
class FirPropertyAssignmentImpl(
|
||||
class FirVariableAssignmentImpl(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
value: FirExpression,
|
||||
operation: FirOperation,
|
||||
safe: Boolean = false
|
||||
) : FirAbstractAssignment(session, psi, value, operation, safe), FirPropertyAssignment
|
||||
) : FirAbstractAssignment(session, psi, value, operation, safe), FirVariableAssignment
|
||||
+38
-38
@@ -152,30 +152,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformElement(statement, data)
|
||||
}
|
||||
|
||||
open fun transformAccess(access: FirAccess, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformStatement(access, data)
|
||||
}
|
||||
|
||||
open fun transformAccessExpression(accessExpression: FirAccessExpression, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformAccess(accessExpression, data)
|
||||
}
|
||||
|
||||
open fun transformCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformAccessExpression(callableReferenceAccess, data)
|
||||
}
|
||||
|
||||
open fun transformAssignment(assignment: FirAssignment, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformAccess(assignment, data)
|
||||
}
|
||||
|
||||
open fun transformPropertyAssignment(propertyAssignment: FirPropertyAssignment, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformAssignment(propertyAssignment, data)
|
||||
}
|
||||
|
||||
open fun transformModifiableAccess(modifiableAccess: FirModifiableAccess, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformAccess(modifiableAccess, data)
|
||||
}
|
||||
|
||||
open fun transformClass(klass: FirClass, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformStatement(klass, data)
|
||||
}
|
||||
@@ -288,6 +264,30 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformLoop(whileLoop, data)
|
||||
}
|
||||
|
||||
open fun transformQualifiedAccess(qualifiedAccess: FirQualifiedAccess, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformStatement(qualifiedAccess, data)
|
||||
}
|
||||
|
||||
open fun transformAssignment(assignment: FirAssignment, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformQualifiedAccess(assignment, data)
|
||||
}
|
||||
|
||||
open fun transformVariableAssignment(variableAssignment: FirVariableAssignment, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformAssignment(variableAssignment, data)
|
||||
}
|
||||
|
||||
open fun transformModifiableQualifiedAccess(modifiableQualifiedAccess: FirModifiableQualifiedAccess, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformQualifiedAccess(modifiableQualifiedAccess, data)
|
||||
}
|
||||
|
||||
open fun transformQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformQualifiedAccess(qualifiedAccessExpression, data)
|
||||
}
|
||||
|
||||
open fun transformCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess, data: D): CompositeTransformResult<FirStatement> {
|
||||
return transformQualifiedAccessExpression(callableReferenceAccess, data)
|
||||
}
|
||||
|
||||
open fun <E : FirElement> transformTargetElement(targetElement: E, data: D): CompositeTransformResult<E> {
|
||||
return transformElement(targetElement, data)
|
||||
}
|
||||
@@ -352,14 +352,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformElement(whenBranch, data)
|
||||
}
|
||||
|
||||
final override fun visitAccess(access: FirAccess, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformAccess(access, data)
|
||||
}
|
||||
|
||||
final override fun visitAccessExpression(accessExpression: FirAccessExpression, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformAccessExpression(accessExpression, data)
|
||||
}
|
||||
|
||||
final override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformAnnotationCall(annotationCall, data)
|
||||
}
|
||||
@@ -532,10 +524,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformMemberDeclaration(memberDeclaration, data)
|
||||
}
|
||||
|
||||
final override fun visitModifiableAccess(modifiableAccess: FirModifiableAccess, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformModifiableAccess(modifiableAccess, data)
|
||||
}
|
||||
|
||||
final override fun visitModifiableClass(modifiableClass: FirModifiableClass, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformModifiableClass(modifiableClass, data)
|
||||
}
|
||||
@@ -544,6 +532,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformModifiableFunction(modifiableFunction, data)
|
||||
}
|
||||
|
||||
final override fun visitModifiableQualifiedAccess(modifiableQualifiedAccess: FirModifiableQualifiedAccess, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformModifiableQualifiedAccess(modifiableQualifiedAccess, data)
|
||||
}
|
||||
|
||||
final override fun visitNamedDeclaration(namedDeclaration: FirNamedDeclaration, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformNamedDeclaration(namedDeclaration, data)
|
||||
}
|
||||
@@ -572,8 +564,12 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformPropertyAccessor(propertyAccessor, data)
|
||||
}
|
||||
|
||||
final override fun visitPropertyAssignment(propertyAssignment: FirPropertyAssignment, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformPropertyAssignment(propertyAssignment, data)
|
||||
final override fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformQualifiedAccess(qualifiedAccess, data)
|
||||
}
|
||||
|
||||
final override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformQualifiedAccessExpression(qualifiedAccessExpression, data)
|
||||
}
|
||||
|
||||
final override fun visitReference(reference: FirReference, data: D): CompositeTransformResult<FirElement> {
|
||||
@@ -676,6 +672,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformVariable(variable, data)
|
||||
}
|
||||
|
||||
final override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformVariableAssignment(variableAssignment, data)
|
||||
}
|
||||
|
||||
final override fun visitWhenBranch(whenBranch: FirWhenBranch, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformWhenBranch(whenBranch, data)
|
||||
}
|
||||
|
||||
+24
-24
@@ -152,30 +152,6 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitElement(statement, data)
|
||||
}
|
||||
|
||||
open fun visitAccess(access: FirAccess, data: D): R {
|
||||
return visitStatement(access, data)
|
||||
}
|
||||
|
||||
open fun visitAccessExpression(accessExpression: FirAccessExpression, data: D): R {
|
||||
return visitAccess(accessExpression, data)
|
||||
}
|
||||
|
||||
open fun visitCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess, data: D): R {
|
||||
return visitAccessExpression(callableReferenceAccess, data)
|
||||
}
|
||||
|
||||
open fun visitAssignment(assignment: FirAssignment, data: D): R {
|
||||
return visitAccess(assignment, data)
|
||||
}
|
||||
|
||||
open fun visitPropertyAssignment(propertyAssignment: FirPropertyAssignment, data: D): R {
|
||||
return visitAssignment(propertyAssignment, data)
|
||||
}
|
||||
|
||||
open fun visitModifiableAccess(modifiableAccess: FirModifiableAccess, data: D): R {
|
||||
return visitAccess(modifiableAccess, data)
|
||||
}
|
||||
|
||||
open fun visitClass(klass: FirClass, data: D): R {
|
||||
return visitStatement(klass, data)
|
||||
}
|
||||
@@ -288,6 +264,30 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitLoop(whileLoop, data)
|
||||
}
|
||||
|
||||
open fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess, data: D): R {
|
||||
return visitStatement(qualifiedAccess, data)
|
||||
}
|
||||
|
||||
open fun visitAssignment(assignment: FirAssignment, data: D): R {
|
||||
return visitQualifiedAccess(assignment, data)
|
||||
}
|
||||
|
||||
open fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: D): R {
|
||||
return visitAssignment(variableAssignment, data)
|
||||
}
|
||||
|
||||
open fun visitModifiableQualifiedAccess(modifiableQualifiedAccess: FirModifiableQualifiedAccess, data: D): R {
|
||||
return visitQualifiedAccess(modifiableQualifiedAccess, data)
|
||||
}
|
||||
|
||||
open fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): R {
|
||||
return visitQualifiedAccess(qualifiedAccessExpression, data)
|
||||
}
|
||||
|
||||
open fun visitCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess, data: D): R {
|
||||
return visitQualifiedAccessExpression(callableReferenceAccess, data)
|
||||
}
|
||||
|
||||
open fun visitTargetElement(targetElement: FirTargetElement, data: D): R {
|
||||
return visitElement(targetElement, data)
|
||||
}
|
||||
|
||||
+38
-38
@@ -152,30 +152,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitElement(statement, null)
|
||||
}
|
||||
|
||||
open fun visitAccess(access: FirAccess) {
|
||||
visitStatement(access, null)
|
||||
}
|
||||
|
||||
open fun visitAccessExpression(accessExpression: FirAccessExpression) {
|
||||
visitAccess(accessExpression, null)
|
||||
}
|
||||
|
||||
open fun visitCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess) {
|
||||
visitAccessExpression(callableReferenceAccess, null)
|
||||
}
|
||||
|
||||
open fun visitAssignment(assignment: FirAssignment) {
|
||||
visitAccess(assignment, null)
|
||||
}
|
||||
|
||||
open fun visitPropertyAssignment(propertyAssignment: FirPropertyAssignment) {
|
||||
visitAssignment(propertyAssignment, null)
|
||||
}
|
||||
|
||||
open fun visitModifiableAccess(modifiableAccess: FirModifiableAccess) {
|
||||
visitAccess(modifiableAccess, null)
|
||||
}
|
||||
|
||||
open fun visitClass(klass: FirClass) {
|
||||
visitStatement(klass, null)
|
||||
}
|
||||
@@ -288,6 +264,30 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitLoop(whileLoop, null)
|
||||
}
|
||||
|
||||
open fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess) {
|
||||
visitStatement(qualifiedAccess, null)
|
||||
}
|
||||
|
||||
open fun visitAssignment(assignment: FirAssignment) {
|
||||
visitQualifiedAccess(assignment, null)
|
||||
}
|
||||
|
||||
open fun visitVariableAssignment(variableAssignment: FirVariableAssignment) {
|
||||
visitAssignment(variableAssignment, null)
|
||||
}
|
||||
|
||||
open fun visitModifiableQualifiedAccess(modifiableQualifiedAccess: FirModifiableQualifiedAccess) {
|
||||
visitQualifiedAccess(modifiableQualifiedAccess, null)
|
||||
}
|
||||
|
||||
open fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression) {
|
||||
visitQualifiedAccess(qualifiedAccessExpression, null)
|
||||
}
|
||||
|
||||
open fun visitCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess) {
|
||||
visitQualifiedAccessExpression(callableReferenceAccess, null)
|
||||
}
|
||||
|
||||
open fun visitTargetElement(targetElement: FirTargetElement) {
|
||||
visitElement(targetElement, null)
|
||||
}
|
||||
@@ -352,14 +352,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitElement(whenBranch, null)
|
||||
}
|
||||
|
||||
final override fun visitAccess(access: FirAccess, data: Nothing?) {
|
||||
visitAccess(access)
|
||||
}
|
||||
|
||||
final override fun visitAccessExpression(accessExpression: FirAccessExpression, data: Nothing?) {
|
||||
visitAccessExpression(accessExpression)
|
||||
}
|
||||
|
||||
final override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: Nothing?) {
|
||||
visitAnnotationCall(annotationCall)
|
||||
}
|
||||
@@ -532,10 +524,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitMemberDeclaration(memberDeclaration)
|
||||
}
|
||||
|
||||
final override fun visitModifiableAccess(modifiableAccess: FirModifiableAccess, data: Nothing?) {
|
||||
visitModifiableAccess(modifiableAccess)
|
||||
}
|
||||
|
||||
final override fun visitModifiableClass(modifiableClass: FirModifiableClass, data: Nothing?) {
|
||||
visitModifiableClass(modifiableClass)
|
||||
}
|
||||
@@ -544,6 +532,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitModifiableFunction(modifiableFunction)
|
||||
}
|
||||
|
||||
final override fun visitModifiableQualifiedAccess(modifiableQualifiedAccess: FirModifiableQualifiedAccess, data: Nothing?) {
|
||||
visitModifiableQualifiedAccess(modifiableQualifiedAccess)
|
||||
}
|
||||
|
||||
final override fun visitNamedDeclaration(namedDeclaration: FirNamedDeclaration, data: Nothing?) {
|
||||
visitNamedDeclaration(namedDeclaration)
|
||||
}
|
||||
@@ -572,8 +564,12 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitPropertyAccessor(propertyAccessor)
|
||||
}
|
||||
|
||||
final override fun visitPropertyAssignment(propertyAssignment: FirPropertyAssignment, data: Nothing?) {
|
||||
visitPropertyAssignment(propertyAssignment)
|
||||
final override fun visitQualifiedAccess(qualifiedAccess: FirQualifiedAccess, data: Nothing?) {
|
||||
visitQualifiedAccess(qualifiedAccess)
|
||||
}
|
||||
|
||||
final override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: Nothing?) {
|
||||
visitQualifiedAccessExpression(qualifiedAccessExpression)
|
||||
}
|
||||
|
||||
final override fun visitReference(reference: FirReference, data: Nothing?) {
|
||||
@@ -676,6 +672,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitVariable(variable)
|
||||
}
|
||||
|
||||
final override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: Nothing?) {
|
||||
visitVariableAssignment(variableAssignment)
|
||||
}
|
||||
|
||||
final override fun visitWhenBranch(whenBranch: FirWhenBranch, data: Nothing?) {
|
||||
visitWhenBranch(whenBranch)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user