[K/N] Remove unused default dependencies from klib

^KT-55603
This commit is contained in:
Pavel Kunyavskiy
2023-04-02 12:22:17 +02:00
committed by Space Team
parent f662908440
commit 95541da9a1
5 changed files with 51 additions and 20 deletions
@@ -1147,23 +1147,28 @@ open class SymbolTable(
throw IllegalArgumentException("Unexpected value descriptor: $value")
}
private inline fun <D : DeclarationDescriptor, IR : IrSymbolOwner, S : IrBindableSymbol<D, IR>> FlatSymbolTable<D, IR, S>.forEachPublicSymbolImpl(
private inline fun <D : DeclarationDescriptor, IR : IrSymbolOwner, S : IrBindableSymbol<D, IR>> FlatSymbolTable<D, IR, S>.forEachSymbolImpl(
block: (IrSymbol) -> Unit
) {
idSigToSymbol.forEach { (_, sym) ->
assert(sym.isPublicApi)
block(sym)
}
}
fun forEachPublicSymbol(block: (IrSymbol) -> Unit) {
classSymbolTable.forEachPublicSymbolImpl { block(it) }
constructorSymbolTable.forEachPublicSymbolImpl { block(it) }
simpleFunctionSymbolTable.forEachPublicSymbolImpl { block(it) }
propertySymbolTable.forEachPublicSymbolImpl { block(it) }
enumEntrySymbolTable.forEachPublicSymbolImpl { block(it) }
typeAliasSymbolTable.forEachPublicSymbolImpl { block(it) }
fieldSymbolTable.forEachPublicSymbolImpl { block(it) }
/**
* This function is quite messy and doesn't have good contract of what exactly is traversed.
* Basic idea is it traverse symbols which can be reasonable referered from other module
*
* Be careful when using it, and avoid it, except really need.
*/
fun forEachDeclarationSymbol(block: (IrSymbol) -> Unit) {
classSymbolTable.forEachSymbolImpl { block(it) }
constructorSymbolTable.forEachSymbolImpl { block(it) }
simpleFunctionSymbolTable.forEachSymbolImpl { block(it) }
propertySymbolTable.forEachSymbolImpl { block(it) }
enumEntrySymbolTable.forEachSymbolImpl { block(it) }
typeAliasSymbolTable.forEachSymbolImpl { block(it) }
fieldSymbolTable.forEachSymbolImpl { block(it) }
}
}