diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt index fcd85ca1386..1d19eb13bac 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt @@ -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, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTableSlice.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTableSlice.kt index 1f026899cca..96e51e5f3b9 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTableSlice.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTableSlice.kt @@ -105,6 +105,11 @@ abstract class SymbolTableSlice(val lock: IrLock) } } + @DelicateSymbolTableApi + fun remove(key: Key) { + signatureToSymbol.remove(key) + } + @SymbolTableInternals internal fun forEachSymbol(block: (IrSymbol) -> Unit) { signatureToSymbol.forEach { (_, symbol) -> block(symbol) }