[JS] Keep interfaces
^KT-54173 fixed
This commit is contained in:
committed by
Space Team
parent
41c9ffb060
commit
7d8636aac4
+2
-1
@@ -127,7 +127,8 @@ internal class JsUsefulDeclarationProcessor(
|
||||
|
||||
override fun processSuperTypes(irClass: IrClass) {
|
||||
irClass.superTypes.forEach {
|
||||
if (!it.isInterface()) {
|
||||
val shouldClassBeKept = it.classOrNull?.let { context.keeper.shouldKeep(it.owner) } ?: false
|
||||
if (!it.isInterface() || shouldClassBeKept) {
|
||||
(it.classifierOrNull as? IrClassSymbol)?.owner?.enqueue(irClass, "superTypes")
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ class UselessDeclarationsRemover(
|
||||
|
||||
private fun IrClassSymbol.collectUsedSuperTypes(): Set<IrClassSymbol> {
|
||||
return savedTypesCache.getOrPut(this) {
|
||||
if (owner in usefulDeclarations) {
|
||||
if (owner in usefulDeclarations || context.keeper.shouldKeep(owner)) {
|
||||
setOf(this)
|
||||
} else {
|
||||
owner.superTypes
|
||||
|
||||
Reference in New Issue
Block a user