[JS IR] Set proper visibility for static stub of private members

This commit is contained in:
Roman Artemev
2021-07-26 17:10:43 +03:00
committed by teamcityserver
parent bcf08e3293
commit 6aed492703
@@ -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