[IR] Convert ConcurrentHashMaps into HashMaps
diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/Mappings.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/Mappings.kt
index c6dcb14..d9f9cca 100644
--- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/Mappings.kt
+++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/Mappings.kt
@@ -51,7 +51,7 @@
override fun <K : IrDeclaration, V : Collection<IrDeclaration>> newDeclarationToDeclarationCollectionMapping(): Mapping.Delegate<K, V> = newMappingImpl()
private fun <K : IrDeclaration, V> newMappingImpl() = object : Mapping.Delegate<K, V>() {
- private val map: MutableMap<K, V> = ConcurrentHashMap()
+ private val map: MutableMap<K, V> = HashMap()
override operator fun get(key: K): V? {
return map[key]
diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/SyntheticAccessorGenerator.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/SyntheticAccessorGenerator.kt
index dcdc61b..e34f06f 100644
--- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/SyntheticAccessorGenerator.kt
+++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/SyntheticAccessorGenerator.kt
@@ -42,9 +42,9 @@
val superQualifierSymbol: IrClassSymbol?
)
- private val functionMap = ConcurrentHashMap<FunctionKey, IrFunctionSymbol>()
- private val getterMap = ConcurrentHashMap<FieldKey, IrSimpleFunctionSymbol>()
- private val setterMap = ConcurrentHashMap<FieldKey, IrSimpleFunctionSymbol>()
+ private val functionMap = HashMap<FunctionKey, IrFunctionSymbol>()
+ private val getterMap = HashMap<FieldKey, IrSimpleFunctionSymbol>()
+ private val setterMap = HashMap<FieldKey, IrSimpleFunctionSymbol>()
fun getSyntheticFunctionAccessor(expression: IrFunctionAccessExpression, scopes: List<ScopeWithIr>): IrFunctionSymbol {
return if (expression is IrCall)
diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt
index d279fd3..ea97e46 100644
--- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt
+++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt
@@ -290,7 +290,7 @@
// Assuming that the only functions that take PROPERTY_REFERENCE_FOR_DELEGATE-kind references are getValue,
// setValue, and provideDelegate, there is only one valid index for each symbol, so we don't need it in the key.
- private val usesPropertyParameterCache = ConcurrentHashMap<IrSymbol, Boolean>()
+ private val usesPropertyParameterCache = HashMap<IrSymbol, Boolean>()
override fun visitCall(expression: IrCall): IrExpression {
// Don't generate entries in `$$delegatedProperties` if they won't be used for anything. This is only possible
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt
index 749cbd2..4763787 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt
@@ -123,7 +123,7 @@
// Store evaluated SMAP for anonymous classes. Used only with IR inliner.
val typeToCachedSMAP = mutableMapOf<Type, SMAP>()
- private val localClassType = ConcurrentHashMap<IrAttributeContainer, Type>()
+ private val localClassType = HashMap<IrAttributeContainer, Type>()
val isCompilingAgainstJdk8OrLater = state.jvmBackendClassResolver.resolveToClassDescriptors(
Type.getObjectType("java/lang/invoke/LambdaMetafactory")
@@ -136,24 +136,24 @@
localClassType[container.attributeOwnerId] = value
}
- val isEnclosedInConstructor = ConcurrentHashMap.newKeySet<IrAttributeContainer>()
- val enclosingMethodOverride = ConcurrentHashMap<IrFunction, IrFunction>()
+ val isEnclosedInConstructor = HashSet<IrAttributeContainer>()
+ val enclosingMethodOverride = HashMap<IrFunction, IrFunction>()
- private val classCodegens = ConcurrentHashMap<IrClass, Any>()
+ private val classCodegens = HashMap<IrClass, Any>()
@Suppress("UNCHECKED_CAST")
fun <ClassCodegen : Any> getOrCreateClassCodegen(klass: IrClass, create: (IrClass) -> ClassCodegen): ClassCodegen =
classCodegens.computeIfAbsent(klass, create) as ClassCodegen
- val localDelegatedProperties = ConcurrentHashMap<IrAttributeContainer, List<IrLocalDelegatedPropertySymbol>>()
+ val localDelegatedProperties = HashMap<IrAttributeContainer, List<IrLocalDelegatedPropertySymbol>>()
val multifileFacadesToAdd = mutableMapOf<JvmClassName, MutableList<IrClass>>()
val multifileFacadeForPart = mutableMapOf<IrClass, JvmClassName>()
val multifileFacadeClassForPart = mutableMapOf<IrClass, IrClass>()
val multifileFacadeMemberToPartMember = mutableMapOf<IrSimpleFunction, IrSimpleFunction>()
- val hiddenConstructorsWithMangledParams = ConcurrentHashMap<IrConstructor, IrConstructor>()
- val hiddenConstructorsOfSealedClasses = ConcurrentHashMap<IrConstructor, IrConstructor>()
+ val hiddenConstructorsWithMangledParams = HashMap<IrConstructor, IrConstructor>()
+ val hiddenConstructorsOfSealedClasses = HashMap<IrConstructor, IrConstructor>()
val collectionStubComputer = CollectionStubComputer(this)
@@ -167,7 +167,7 @@
overridesWithoutStubs.getOrElse(function) { function.overriddenSymbols }
val bridgeLoweringCache = BridgeLoweringCache(this)
- val functionsWithSpecialBridges: MutableSet<IrFunction> = ConcurrentHashMap.newKeySet()
+ val functionsWithSpecialBridges: MutableSet<IrFunction> = HashSet()
override var inVerbosePhase: Boolean = false // TODO: needs parallelizing
@@ -175,10 +175,10 @@
override val internalPackageFqn = FqName("kotlin.jvm")
- val suspendLambdaToOriginalFunctionMap = ConcurrentHashMap<IrAttributeContainer, IrFunction>()
- val suspendFunctionOriginalToView = ConcurrentHashMap<IrSimpleFunction, IrSimpleFunction>()
+ val suspendLambdaToOriginalFunctionMap = HashMap<IrAttributeContainer, IrFunction>()
+ val suspendFunctionOriginalToView = HashMap<IrSimpleFunction, IrSimpleFunction>()
- val staticDefaultStubs = ConcurrentHashMap<IrSimpleFunctionSymbol, IrSimpleFunction>()
+ val staticDefaultStubs = HashMap<IrSimpleFunctionSymbol, IrSimpleFunction>()
val inlineClassReplacements = MemoizedInlineClassReplacements(config.functionsWithInlineClassReturnTypesMangled, irFactory, this)
@@ -190,7 +190,7 @@
val publicAbiSymbols = mutableSetOf<IrClassSymbol>()
- val visitedDeclarationsForRegenerationLowering: MutableSet<IrDeclaration> = ConcurrentHashMap.newKeySet()
+ val visitedDeclarationsForRegenerationLowering: MutableSet<IrDeclaration> = HashSet()
val optionalAnnotations = mutableListOf<MetadataSource.Class>()
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmCachedDeclarations.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmCachedDeclarations.kt
index 6e4faaf..8d7cbfb 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmCachedDeclarations.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmCachedDeclarations.kt
@@ -35,16 +35,16 @@
) {
val syntheticAccessorGenerator = JvmSyntheticAccessorGenerator(context)
- private val singletonFieldDeclarations = ConcurrentHashMap<IrSymbolOwner, IrField>()
- private val staticBackingFields = ConcurrentHashMap<IrProperty, IrField>()
- private val staticCompanionDeclarations = ConcurrentHashMap<IrSimpleFunction, Pair<IrSimpleFunction, IrSimpleFunction>>()
+ private val singletonFieldDeclarations = HashMap<IrSymbolOwner, IrField>()
+ private val staticBackingFields = HashMap<IrProperty, IrField>()
+ private val staticCompanionDeclarations = HashMap<IrSimpleFunction, Pair<IrSimpleFunction, IrSimpleFunction>>()
- private val defaultImplsMethods = ConcurrentHashMap<IrSimpleFunction, IrSimpleFunction>()
- private val defaultImplsClasses = ConcurrentHashMap<IrClass, IrClass>()
- private val defaultImplsRedirections = ConcurrentHashMap<IrSimpleFunction, IrSimpleFunction>()
- private val defaultImplsOriginalMethods = ConcurrentHashMap<IrSimpleFunction, IrSimpleFunction>()
+ private val defaultImplsMethods = HashMap<IrSimpleFunction, IrSimpleFunction>()
+ private val defaultImplsClasses = HashMap<IrClass, IrClass>()
+ private val defaultImplsRedirections = HashMap<IrSimpleFunction, IrSimpleFunction>()
+ private val defaultImplsOriginalMethods = HashMap<IrSimpleFunction, IrSimpleFunction>()
- private val repeatedAnnotationSyntheticContainers = ConcurrentHashMap<IrClass, IrClass>()
+ private val repeatedAnnotationSyntheticContainers = HashMap<IrClass, IrClass>()
fun getFieldForEnumEntry(enumEntry: IrEnumEntry): IrField =
singletonFieldDeclarations.getOrPut(enumEntry) {
@@ -339,8 +339,8 @@
private val irFactory: IrFactory,
private val languageVersionSettings: LanguageVersionSettings,
) {
- private val singletonFieldDeclarations = ConcurrentHashMap<IrSymbolOwner, IrField>()
- private val interfaceCompanionFieldDeclarations = ConcurrentHashMap<IrSymbolOwner, IrField>()
+ private val singletonFieldDeclarations = HashMap<IrSymbolOwner, IrField>()
+ private val interfaceCompanionFieldDeclarations = HashMap<IrSymbolOwner, IrField>()
fun getFieldForObjectInstance(singleton: IrClass): IrField =
singletonFieldDeclarations.getOrPut(singleton) {
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmInnerClassesSupport.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmInnerClassesSupport.kt
index 484db1e..60e9a77 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmInnerClassesSupport.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmInnerClassesSupport.kt
@@ -17,9 +17,9 @@
import java.util.concurrent.ConcurrentHashMap
class JvmInnerClassesSupport(private val irFactory: IrFactory) : InnerClassesSupport {
- private val outerThisDeclarations = ConcurrentHashMap<IrClass, IrField>()
- private val innerClassConstructors = ConcurrentHashMap<IrConstructor, IrConstructor>()
- private val originalInnerClassPrimaryConstructorByClass = ConcurrentHashMap<IrClass, IrConstructor>()
+ private val outerThisDeclarations = HashMap<IrClass, IrField>()
+ private val innerClassConstructors = HashMap<IrConstructor, IrConstructor>()
+ private val originalInnerClassPrimaryConstructorByClass = HashMap<IrClass, IrConstructor>()
override fun getOuterThisField(innerClass: IrClass): IrField =
outerThisDeclarations.getOrPut(innerClass) {
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSyntheticAccessorGenerator.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSyntheticAccessorGenerator.kt
index cdb5f96..4bcf1a8 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSyntheticAccessorGenerator.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmSyntheticAccessorGenerator.kt
@@ -69,7 +69,7 @@
private fun getSyntheticConstructorAccessor(
declaration: IrConstructor,
- constructorToAccessorMap: ConcurrentHashMap<IrConstructor, IrConstructor>
+ constructorToAccessorMap: MutableMap<IrConstructor, IrConstructor>
): IrConstructor {
return constructorToAccessorMap.getOrPut(declaration) {
declaration.makeConstructorAccessor(JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR_FOR_HIDDEN_CONSTRUCTOR).also { accessor ->
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedInlineClassReplacements.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedInlineClassReplacements.kt
index e855811..81a664c 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedInlineClassReplacements.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedInlineClassReplacements.kt
@@ -34,8 +34,8 @@
context: JvmBackendContext
) : MemoizedValueClassAbstractReplacements(irFactory, context, LockBasedStorageManager("inline-class-replacements")) {
- val originalFunctionForStaticReplacement: MutableMap<IrFunction, IrFunction> = ConcurrentHashMap()
- val originalFunctionForMethodReplacement: MutableMap<IrFunction, IrFunction> = ConcurrentHashMap()
+ val originalFunctionForStaticReplacement: MutableMap<IrFunction, IrFunction> = HashMap()
+ val originalFunctionForMethodReplacement: MutableMap<IrFunction, IrFunction> = HashMap()
private val mangleCallsToJavaMethodsWithValueClasses =
context.config.languageVersionSettings.supportsFeature(LanguageFeature.MangleCallsToJavaMethodsWithValueClasses)
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedMultiFieldValueClassReplacements.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedMultiFieldValueClassReplacements.kt
index c916f53..5b2695f 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedMultiFieldValueClassReplacements.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedMultiFieldValueClassReplacements.kt
@@ -38,9 +38,9 @@
context: JvmBackendContext
) : MemoizedValueClassAbstractReplacements(irFactory, context, LockBasedStorageManager("multi-field-value-class-replacements")) {
- val originalFunctionForStaticReplacement: MutableMap<IrFunction, IrFunction> = ConcurrentHashMap()
- val originalFunctionForMethodReplacement: MutableMap<IrFunction, IrFunction> = ConcurrentHashMap()
- val originalConstructorForConstructorReplacement: MutableMap<IrConstructor, IrConstructor> = ConcurrentHashMap()
+ val originalFunctionForStaticReplacement: MutableMap<IrFunction, IrFunction> = HashMap()
+ val originalFunctionForMethodReplacement: MutableMap<IrFunction, IrFunction> = HashMap()
+ val originalConstructorForConstructorReplacement: MutableMap<IrConstructor, IrConstructor> = HashMap()
private fun IrValueParameter.grouped(
name: String?,
@@ -89,7 +89,7 @@
): List<RemappedParameter> = map { it.grouped(name, substitutionMap, targetFunction, originWhenFlattened) }
- val oldMfvcDefaultArguments = ConcurrentHashMap<IrValueParameter, IrExpression>()
+ val oldMfvcDefaultArguments = HashMap<IrValueParameter, IrExpression>()
private fun buildReplacement(
function: IrFunction,
@@ -189,9 +189,9 @@
}
}
- val bindingOldFunctionToParameterTemplateStructure: MutableMap<IrFunction, List<RemappedParameter>> = ConcurrentHashMap()
+ val bindingOldFunctionToParameterTemplateStructure: MutableMap<IrFunction, List<RemappedParameter>> = HashMap()
val bindingNewFunctionToParameterTemplateStructure: MutableMap<IrFunction, List<RemappedParameter>> =
- object : ConcurrentHashMap<IrFunction, List<RemappedParameter>>() {
+ object : HashMap<IrFunction, List<RemappedParameter>>() {
override fun put(key: IrFunction, value: List<RemappedParameter>): List<RemappedParameter>? {
require(key.explicitParametersCount == value.sumOf { it.valueParameters.size }) {
"Illegal structure $value for function ${key.dump()}"
@@ -331,10 +331,10 @@
return this
}
- private val fieldsToRemove = ConcurrentHashMap<IrClass, MutableSet<IrField>>()
+ private val fieldsToRemove = HashMap<IrClass, MutableSet<IrField>>()
fun getFieldsToRemove(clazz: IrClass): Set<IrField> = fieldsToRemove[clazz] ?: emptySet()
fun addFieldToRemove(clazz: IrClass, field: IrField) {
- fieldsToRemove.getOrPut(clazz) { ConcurrentHashMap<IrField, Unit>().keySet(Unit) }.add(field.withAddedStaticReplacementIfNeeded())
+ fieldsToRemove.getOrPut(clazz) { HashSet<IrField>() }.add(field.withAddedStaticReplacementIfNeeded())
}
fun getMfvcFieldNode(field: IrField): NameableMfvcNode? {
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedValueClassAbstractReplacements.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedValueClassAbstractReplacements.kt
index dacf4f6..269ff95 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedValueClassAbstractReplacements.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MemoizedValueClassAbstractReplacements.kt
@@ -24,7 +24,7 @@
protected val context: JvmBackendContext,
protected val storageManager: LockBasedStorageManager
) {
- private val propertyMap = ConcurrentHashMap<IrPropertySymbol, IrProperty>()
+ private val propertyMap = HashMap<IrPropertySymbol, IrProperty>()
/**
* Get a replacement for a function or a constructor.
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/caches/BridgeLoweringCache.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/caches/BridgeLoweringCache.kt
index 6b54127..62331b0 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/caches/BridgeLoweringCache.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/caches/BridgeLoweringCache.kt
@@ -25,7 +25,7 @@
// It might benefit performance, but can lead to confusing behavior if some declarations are changed along the way.
// For example, adding an override for a declaration whose signature is already cached can result in incorrect signature
// if its return type is a primitive type, and the new override's return type is an object type.
- private val signatureCache = ConcurrentHashMap<IrFunctionSymbol, Method>()
+ private val signatureCache = HashMap<IrFunctionSymbol, Method>()
fun computeJvmMethod(function: IrFunction): Method =
signatureCache.getOrPut(function.symbol) { context.defaultMethodSignatureMapper.mapAsmMethod(function) }
diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/caches/CollectionStubComputer.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/caches/CollectionStubComputer.kt
index 38dc114..01c4636 100644
--- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/caches/CollectionStubComputer.kt
+++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/caches/CollectionStubComputer.kt
@@ -79,7 +79,7 @@
}
}
- private val stubsCache = ConcurrentHashMap<IrClass, List<StubsForCollectionClass>>()
+ private val stubsCache = HashMap<IrClass, List<StubsForCollectionClass>>()
fun stubsForCollectionClasses(irClass: IrClass): List<StubsForCollectionClass> =
stubsCache.getOrPut(irClass) {