[Ir common] Introduce symbol table api to remove entries

^KT-61514
This commit is contained in:
Pavel Kunyavskiy
2023-07-31 11:13:10 +02:00
committed by Space Team
parent 0d19942d2c
commit 44c2a749c9
2 changed files with 15 additions and 0 deletions
@@ -297,6 +297,11 @@ open class SymbolTable(
}
}
@DelicateSymbolTableApi
fun removeProperty(symbol: IrPropertySymbol) {
symbol.signature?.let { propertySlice.remove(it) }
}
// ------------------------------------ typealias ------------------------------------
fun declareTypeAlias(
@@ -374,6 +379,11 @@ open class SymbolTable(
)
}
@DelicateSymbolTableApi
fun removeSimpleFunction(function: IrSimpleFunctionSymbol) {
function.signature?.let { functionSlice.remove(it) }
}
@SymbolTableInternals
internal inline fun referenceSimpleFunctionImpl(
signature: IdSignature,
@@ -105,6 +105,11 @@ abstract class SymbolTableSlice<Key, SymbolOwner, Symbol>(val lock: IrLock)
}
}
@DelicateSymbolTableApi
fun remove(key: Key) {
signatureToSymbol.remove(key)
}
@SymbolTableInternals
internal fun forEachSymbol(block: (IrSymbol) -> Unit) {
signatureToSymbol.forEach { (_, symbol) -> block(symbol) }