Visit declaration reference when visiting member access

This commit is contained in:
Svyatoslav Kuzmich
2021-02-22 14:53:30 +03:00
parent d3e2f9a3f6
commit 5affd9d2f9
4 changed files with 6 additions and 4 deletions
@@ -102,7 +102,9 @@ interface IrElementTransformer<in D> : IrElementVisitor<IrElement, D> {
override fun visitFieldAccess(expression: IrFieldAccessExpression, data: D) = visitDeclarationReference(expression, data)
override fun visitGetField(expression: IrGetField, data: D) = visitFieldAccess(expression, data)
override fun visitSetField(expression: IrSetField, data: D) = visitFieldAccess(expression, data)
override fun visitMemberAccess(expression: IrMemberAccessExpression<*>, data: D): IrElement = visitExpression(expression, data)
override fun visitMemberAccess(expression: IrMemberAccessExpression<*>, data: D): IrElement =
visitDeclarationReference(expression, data)
override fun visitFunctionAccess(expression: IrFunctionAccessExpression, data: D): IrElement = visitMemberAccess(expression, data)
override fun visitCall(expression: IrCall, data: D) = visitFunctionAccess(expression, data)
override fun visitConstructorCall(expression: IrConstructorCall, data: D): IrElement = visitFunctionAccess(expression, data)
@@ -189,7 +189,7 @@ abstract class IrElementTransformerVoid : IrElementTransformer<Nothing?> {
open fun visitSetField(expression: IrSetField) = visitFieldAccess(expression)
final override fun visitSetField(expression: IrSetField, data: Nothing?) = visitSetField(expression)
open fun visitMemberAccess(expression: IrMemberAccessExpression<*>) = visitExpression(expression)
open fun visitMemberAccess(expression: IrMemberAccessExpression<*>) = visitDeclarationReference(expression)
final override fun visitMemberAccess(expression: IrMemberAccessExpression<*>, data: Nothing?) = visitMemberAccess(expression)
open fun visitFunctionAccess(expression: IrFunctionAccessExpression) = visitMemberAccess(expression)
@@ -72,7 +72,7 @@ interface IrElementVisitor<out R, in D> {
fun visitGetField(expression: IrGetField, data: D) = visitFieldAccess(expression, data)
fun visitSetField(expression: IrSetField, data: D) = visitFieldAccess(expression, data)
fun visitMemberAccess(expression: IrMemberAccessExpression<*>, data: D) = visitExpression(expression, data)
fun visitMemberAccess(expression: IrMemberAccessExpression<*>, data: D) = visitDeclarationReference(expression, data)
fun visitFunctionAccess(expression: IrFunctionAccessExpression, data: D) = visitMemberAccess(expression, data)
fun visitCall(expression: IrCall, data: D) = visitFunctionAccess(expression, data)
fun visitConstructorCall(expression: IrConstructorCall, data: D) = visitFunctionAccess(expression, data)
@@ -155,7 +155,7 @@ interface IrElementVisitorVoid : IrElementVisitor<Unit, Nothing?> {
fun visitSetField(expression: IrSetField) = visitFieldAccess(expression)
override fun visitSetField(expression: IrSetField, data: Nothing?) = visitSetField(expression)
fun visitMemberAccess(expression: IrMemberAccessExpression<*>) = visitExpression(expression)
fun visitMemberAccess(expression: IrMemberAccessExpression<*>) = visitDeclarationReference(expression)
override fun visitMemberAccess(expression: IrMemberAccessExpression<*>, data: Nothing?) = visitMemberAccess(expression)
fun visitFunctionAccess(expression: IrFunctionAccessExpression) = visitMemberAccess(expression)