From 44c2a749c9ef11d6fe360b6c1812a16fe83d82fa Mon Sep 17 00:00:00 2001 From: Pavel Kunyavskiy Date: Mon, 31 Jul 2023 11:13:10 +0200 Subject: [PATCH] [Ir common] Introduce symbol table api to remove entries ^KT-61514 --- .../src/org/jetbrains/kotlin/ir/util/SymbolTable.kt | 10 ++++++++++ .../org/jetbrains/kotlin/ir/util/SymbolTableSlice.kt | 5 +++++ 2 files changed, 15 insertions(+) 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) }