[JS IR BE] Support codegen for external objects and properties
This commit is contained in:
@@ -403,9 +403,17 @@ fun IrFunction.isFakeOverriddenFromAny(): Boolean {
|
||||
fun IrCall.isSuperToAny() = superQualifier?.let { this.symbol.owner.isFakeOverriddenFromAny() } ?: false
|
||||
|
||||
fun IrDeclaration.isEffectivelyExternal(): Boolean {
|
||||
|
||||
fun IrFunction.effectiveParentDeclaration(): IrDeclaration? =
|
||||
when (this) {
|
||||
is IrSimpleFunction -> correspondingProperty ?: parent as? IrDeclaration
|
||||
else -> parent as? IrDeclaration
|
||||
}
|
||||
|
||||
return when (this) {
|
||||
is IrFunction -> isExternal || parent is IrDeclaration && parent.isEffectivelyExternal()
|
||||
is IrFunction -> isExternal || (effectiveParentDeclaration()?.isEffectivelyExternal() ?: false)
|
||||
is IrField -> isExternal || parent is IrDeclaration && parent.isEffectivelyExternal()
|
||||
is IrProperty -> isExternal || parent is IrDeclaration && parent.isEffectivelyExternal()
|
||||
is IrClass -> isExternal || parent is IrDeclaration && parent.isEffectivelyExternal()
|
||||
else -> false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user