[JS IR BE] Visit callable reference members in private member lowering

This commit is contained in:
Roman Artemev
2019-07-03 20:36:34 +03:00
committed by romanart
parent b4c68025a7
commit 28a108a205
@@ -62,19 +62,25 @@ class PrivateMembersLowering(val context: JsIrBackendContext) : ClassLoweringPas
} ?: expression } ?: expression
} }
override fun visitFunctionReference(expression: IrFunctionReference) = memberMap[expression.symbol]?.let { override fun visitFunctionReference(expression: IrFunctionReference): IrExpression {
transformPrivateToStaticReference(expression) { super.visitFunctionReference(expression)
IrFunctionReferenceImpl(
expression.startOffset, expression.endOffset, return memberMap[expression.symbol]?.let {
expression.type, transformPrivateToStaticReference(expression) {
it.symbol, it.descriptor, IrFunctionReferenceImpl(
expression.typeArgumentsCount, expression.valueArgumentsCount, expression.startOffset, expression.endOffset,
expression.origin expression.type,
) it.symbol, it.descriptor,
} expression.typeArgumentsCount, expression.valueArgumentsCount,
} ?: expression expression.origin
)
}
} ?: expression
}
override fun visitPropertyReference(expression: IrPropertyReference): IrExpression { override fun visitPropertyReference(expression: IrPropertyReference): IrExpression {
super.visitPropertyReference(expression)
return if (expression.getter in memberMap || expression.setter in memberMap) { return if (expression.getter in memberMap || expression.setter in memberMap) {
transformPrivateToStaticReference(expression) { transformPrivateToStaticReference(expression) {
IrPropertyReferenceImpl( IrPropertyReferenceImpl(