[Analysis API FIR] KaFirResolver: reduce resize chance
diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KaFirResolver.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KaFirResolver.kt
index 2c33d4f..7a6f9f1 100644
--- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KaFirResolver.kt
+++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KaFirResolver.kt
@@ -1457,30 +1457,37 @@
         return resolvedArgumentMapping?.entries.createArgumentMapping(signatureOfCallee)
     }
 
-    private fun Iterable<MutableMap.MutableEntry<FirExpression, FirValueParameter>>?.createArgumentMapping(
+    private fun Collection<MutableMap.MutableEntry<FirExpression, FirValueParameter>>?.createArgumentMapping(
         signatureOfCallee: KaFunctionSignature<*>,
     ): Map<KtExpression, KaVariableSignature<KaValueParameterSymbol>> {
+        if (this == null || isEmpty()) return emptyMap()
+
         val paramSignatureByName = signatureOfCallee.valueParameters.associateBy {
             // We intentionally use `symbol.name` instead of `name` here, since
             // `FirValueParameter.name` is not affected by the `@ParameterName`
             it.symbol.name
         }
-        val ktArgumentMapping = linkedMapOf<KtExpression, KaVariableSignature<KaValueParameterSymbol>>()
-        this?.forEach { (firExpression, firValueParameter) ->
+
+        val ktArgumentMapping = LinkedHashMap<KtExpression, KaVariableSignature<KaValueParameterSymbol>>(size)
+        this.forEach { (firExpression, firValueParameter) ->
             val parameterSymbol = paramSignatureByName[firValueParameter.name] ?: return@forEach
             mapArgumentExpressionToParameter(firExpression, parameterSymbol, ktArgumentMapping)
         }
-        return ktArgumentMapping.ifEmpty { emptyMap() }
+
+        return ktArgumentMapping
     }
 
     private fun FirArrayLiteral.createArgumentMapping(
         arrayOfSymbol: KaNamedFunctionSymbol,
         substitutor: KaSubstitutor,
     ): Map<KtExpression, KaVariableSignature<KaValueParameterSymbol>> {
-        val ktArgumentMapping = linkedMapOf<KtExpression, KaVariableSignature<KaValueParameterSymbol>>()
+        val arguments = argumentList.arguments
+        if (arguments.isEmpty()) return emptyMap()
+
+        val ktArgumentMapping = LinkedHashMap<KtExpression, KaVariableSignature<KaValueParameterSymbol>>(arguments.size)
         val parameterSymbol = arrayOfSymbol.valueParameters.single()
 
-        for (firExpression in argumentList.arguments) {
+        for (firExpression in arguments) {
             mapArgumentExpressionToParameter(
                 firExpression,
                 with(analysisSession) { parameterSymbol.substitute(substitutor) },
@@ -1488,7 +1495,7 @@
             )
         }
 
-        return ktArgumentMapping.ifEmpty { emptyMap() }
+        return ktArgumentMapping
     }
 
     private fun mapArgumentExpressionToParameter(