IR: use HashMap instead of LinkedHashMap in SymbolTable

It's not important for these maps to be linked hash maps because they
are not iterated over.
This commit is contained in:
Alexander Udalov
2021-08-26 23:09:53 +02:00
parent 6e93006a94
commit eb28d662d4
@@ -219,8 +219,8 @@ open class SymbolTable(
private open inner class FlatSymbolTable<D : DeclarationDescriptor, B : IrSymbolOwner, S : IrBindableSymbol<D, B>> :
SymbolTableBase<D, B, S>(lock) {
val descriptorToSymbol = linkedMapOf<D, S>()
val idSigToSymbol = linkedMapOf<IdSignature, S>()
val descriptorToSymbol = hashMapOf<D, S>()
val idSigToSymbol = hashMapOf<IdSignature, S>()
protected open fun signature(descriptor: D): IdSignature? = signaturer.composeSignature(descriptor)
@@ -261,8 +261,8 @@ open class SymbolTable(
private inner class ScopedSymbolTable<D : DeclarationDescriptor, B : IrSymbolOwner, S : IrBindableSymbol<D, B>>
: SymbolTableBase<D, B, S>(lock) {
inner class Scope(val owner: IrSymbol, val parent: Scope?) {
private val descriptorToSymbol = linkedMapOf<D, S>()
private val idSigToSymbol = linkedMapOf<IdSignature, S>()
private val descriptorToSymbol = hashMapOf<D, S>()
private val idSigToSymbol = hashMapOf<IdSignature, S>()
private fun getByDescriptor(d: D): S? {
return descriptorToSymbol[d] ?: parent?.getByDescriptor(d)