Minor: IrFieldAccessExpression, visitor methods.
This commit is contained in:
committed by
Dmitry Petrov
parent
c699e2d24c
commit
a25e781ee9
+1
-1
@@ -79,7 +79,7 @@ class InsertImplicitCasts(val builtIns: KotlinBuiltIns): IrElementVisitorVoid {
|
|||||||
expression.value.replaceWithCast(expression.descriptor.type)
|
expression.value.replaceWithCast(expression.descriptor.type)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitSetBackingField(expression: IrSetField) {
|
override fun visitSetField(expression: IrSetField) {
|
||||||
expression.acceptChildrenVoid(this)
|
expression.acceptChildrenVoid(this)
|
||||||
|
|
||||||
expression.value.replaceWithCast(expression.descriptor.type)
|
expression.value.replaceWithCast(expression.descriptor.type)
|
||||||
|
|||||||
+3
-3
@@ -19,15 +19,15 @@ package org.jetbrains.kotlin.ir.expressions
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
|
|
||||||
interface IrFieldExpression : IrDeclarationReference {
|
interface IrFieldAccessExpression : IrDeclarationReference {
|
||||||
override val descriptor: PropertyDescriptor
|
override val descriptor: PropertyDescriptor
|
||||||
val superQualifier: ClassDescriptor?
|
val superQualifier: ClassDescriptor?
|
||||||
var receiver: IrExpression?
|
var receiver: IrExpression?
|
||||||
val operator: IrOperator?
|
val operator: IrOperator?
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IrGetField : IrFieldExpression
|
interface IrGetField : IrFieldAccessExpression
|
||||||
|
|
||||||
interface IrSetField : IrFieldExpression {
|
interface IrSetField : IrFieldAccessExpression {
|
||||||
var value: IrExpression
|
var value: IrExpression
|
||||||
}
|
}
|
||||||
+2
-2
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
import org.jetbrains.kotlin.ir.*
|
import org.jetbrains.kotlin.ir.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrFieldExpression
|
import org.jetbrains.kotlin.ir.expressions.IrFieldAccessExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrOperator
|
import org.jetbrains.kotlin.ir.expressions.IrOperator
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
@@ -31,7 +31,7 @@ abstract class IrFieldExpressionBase(
|
|||||||
type: KotlinType,
|
type: KotlinType,
|
||||||
override val operator: IrOperator? = null,
|
override val operator: IrOperator? = null,
|
||||||
override val superQualifier: ClassDescriptor? = null
|
override val superQualifier: ClassDescriptor? = null
|
||||||
) : IrDeclarationReferenceBase<PropertyDescriptor>(startOffset, endOffset, type, descriptor), IrFieldExpression {
|
) : IrDeclarationReferenceBase<PropertyDescriptor>(startOffset, endOffset, type, descriptor), IrFieldAccessExpression {
|
||||||
override final var receiver: IrExpression? = null
|
override final var receiver: IrExpression? = null
|
||||||
set(value) {
|
set(value) {
|
||||||
field?.detach()
|
field?.detach()
|
||||||
|
|||||||
@@ -60,9 +60,9 @@ interface IrElementVisitor<out R, in D> {
|
|||||||
fun visitVariableAccess(expression: IrVariableAccessExpression, data: D) = visitDeclarationReference(expression, data)
|
fun visitVariableAccess(expression: IrVariableAccessExpression, data: D) = visitDeclarationReference(expression, data)
|
||||||
fun visitGetVariable(expression: IrGetVariable, data: D) = visitVariableAccess(expression, data)
|
fun visitGetVariable(expression: IrGetVariable, data: D) = visitVariableAccess(expression, data)
|
||||||
fun visitSetVariable(expression: IrSetVariable, data: D) = visitVariableAccess(expression, data)
|
fun visitSetVariable(expression: IrSetVariable, data: D) = visitVariableAccess(expression, data)
|
||||||
fun visitBackingFieldReference(expression: IrFieldExpression, data: D) = visitDeclarationReference(expression, data)
|
fun visitFieldAccess(expression: IrFieldAccessExpression, data: D) = visitDeclarationReference(expression, data)
|
||||||
fun visitGetField(expression: IrGetField, data: D) = visitBackingFieldReference(expression, data)
|
fun visitGetField(expression: IrGetField, data: D) = visitFieldAccess(expression, data)
|
||||||
fun visitSetField(expression: IrSetField, data: D) = visitBackingFieldReference(expression, data)
|
fun visitSetField(expression: IrSetField, data: D) = visitFieldAccess(expression, data)
|
||||||
fun visitGetExtensionReceiver(expression: IrGetExtensionReceiver, data: D) = visitDeclarationReference(expression, data)
|
fun visitGetExtensionReceiver(expression: IrGetExtensionReceiver, data: D) = visitDeclarationReference(expression, data)
|
||||||
fun visitGeneralCall(expression: IrGeneralCall, data: D) = visitDeclarationReference(expression, data)
|
fun visitGeneralCall(expression: IrGeneralCall, data: D) = visitDeclarationReference(expression, data)
|
||||||
fun visitCall(expression: IrCall, data: D) = visitGeneralCall(expression, data)
|
fun visitCall(expression: IrCall, data: D) = visitGeneralCall(expression, data)
|
||||||
|
|||||||
@@ -123,14 +123,14 @@ interface IrElementVisitorVoid : IrElementVisitor<Unit, Nothing?> {
|
|||||||
fun visitSetVariable(expression: IrSetVariable) = visitVariableAccess(expression)
|
fun visitSetVariable(expression: IrSetVariable) = visitVariableAccess(expression)
|
||||||
override fun visitSetVariable(expression: IrSetVariable, data: Nothing?) = visitSetVariable(expression)
|
override fun visitSetVariable(expression: IrSetVariable, data: Nothing?) = visitSetVariable(expression)
|
||||||
|
|
||||||
fun visitBackingFieldReference(expression: IrFieldExpression) = visitDeclarationReference(expression)
|
fun visitFieldAccess(expression: IrFieldAccessExpression) = visitDeclarationReference(expression)
|
||||||
override fun visitBackingFieldReference(expression: IrFieldExpression, data: Nothing?) = visitBackingFieldReference(expression)
|
override fun visitFieldAccess(expression: IrFieldAccessExpression, data: Nothing?) = visitFieldAccess(expression)
|
||||||
|
|
||||||
fun visitGetBackingField(expression: IrGetField) = visitBackingFieldReference(expression)
|
fun visitGetField(expression: IrGetField) = visitFieldAccess(expression)
|
||||||
override fun visitGetField(expression: IrGetField, data: Nothing?) = visitGetBackingField(expression)
|
override fun visitGetField(expression: IrGetField, data: Nothing?) = visitGetField(expression)
|
||||||
|
|
||||||
fun visitSetBackingField(expression: IrSetField) = visitBackingFieldReference(expression)
|
fun visitSetField(expression: IrSetField) = visitFieldAccess(expression)
|
||||||
override fun visitSetField(expression: IrSetField, data: Nothing?) = visitSetBackingField(expression)
|
override fun visitSetField(expression: IrSetField, data: Nothing?) = visitSetField(expression)
|
||||||
|
|
||||||
fun visitGetExtensionReceiver(expression: IrGetExtensionReceiver) = visitDeclarationReference(expression)
|
fun visitGetExtensionReceiver(expression: IrGetExtensionReceiver) = visitDeclarationReference(expression)
|
||||||
override fun visitGetExtensionReceiver(expression: IrGetExtensionReceiver, data: Nothing?) = visitGetExtensionReceiver(expression)
|
override fun visitGetExtensionReceiver(expression: IrGetExtensionReceiver, data: Nothing?) = visitGetExtensionReceiver(expression)
|
||||||
|
|||||||
Reference in New Issue
Block a user