From 6aed492703f14a255d7f25c2072680a2cc7505ab Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Mon, 26 Jul 2021 17:10:43 +0300 Subject: [PATCH] [JS IR] Set proper visibility for static stub of private members --- .../kotlin/ir/backend/js/lower/PrivateMembersLowering.kt | 3 +++ 1 file changed, 3 insertions(+) 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 8f004e396b6..d7c8f97f3ef 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 @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl import org.jetbrains.kotlin.ir.expressions.impl.IrPropertyReferenceImpl import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols +import org.jetbrains.kotlin.ir.util.isLocal import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.name.Name @@ -48,11 +49,13 @@ class PrivateMembersLowering(val context: JsIrBackendContext) : DeclarationTrans private fun transformMemberToStaticFunction(function: IrSimpleFunction): IrSimpleFunction? { if (function.visibility != DescriptorVisibilities.PRIVATE || function.dispatchReceiverParameter == null) return null + val newVisibility = if (function.isLocal) DescriptorVisibilities.LOCAL else function.visibility val staticFunction = context.irFactory.buildFun { updateFrom(function) name = function.name returnType = function.returnType + visibility = newVisibility }.also { it.parent = function.parent it.correspondingPropertySymbol = function.correspondingPropertySymbol