From 28a108a20549f6cf1a8582de4d04dde43c078511 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Wed, 3 Jul 2019 20:36:34 +0300 Subject: [PATCH] [JS IR BE] Visit callable reference members in private member lowering --- .../js/lower/PrivateMembersLowering.kt | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/PrivateMembersLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/PrivateMembersLowering.kt index 05f179f9461..c9e45cb13e7 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/PrivateMembersLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/PrivateMembersLowering.kt @@ -62,19 +62,25 @@ class PrivateMembersLowering(val context: JsIrBackendContext) : ClassLoweringPas } ?: expression } - override fun visitFunctionReference(expression: IrFunctionReference) = memberMap[expression.symbol]?.let { - transformPrivateToStaticReference(expression) { - IrFunctionReferenceImpl( - expression.startOffset, expression.endOffset, - expression.type, - it.symbol, it.descriptor, - expression.typeArgumentsCount, expression.valueArgumentsCount, - expression.origin - ) - } - } ?: expression + override fun visitFunctionReference(expression: IrFunctionReference): IrExpression { + super.visitFunctionReference(expression) + + return memberMap[expression.symbol]?.let { + transformPrivateToStaticReference(expression) { + IrFunctionReferenceImpl( + expression.startOffset, expression.endOffset, + expression.type, + it.symbol, it.descriptor, + expression.typeArgumentsCount, expression.valueArgumentsCount, + expression.origin + ) + } + } ?: expression + } override fun visitPropertyReference(expression: IrPropertyReference): IrExpression { + super.visitPropertyReference(expression) + return if (expression.getter in memberMap || expression.setter in memberMap) { transformPrivateToStaticReference(expression) { IrPropertyReferenceImpl(