From 91586705b34220242222158cbb63ad66d2730cde Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Mon, 5 Dec 2022 19:45:22 +0100 Subject: [PATCH] [SLC] SymbolLightSimpleMethod: reduce allocations number ^KTIJ-23783 --- .../classes/symbol/methods/SymbolLightSimpleMethod.kt | 11 +++++++---- .../symbol/modifierLists/SymbolLightModifierList.kt | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightSimpleMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightSimpleMethod.kt index 474d556bc5f..156de7ffaf9 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightSimpleMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightSimpleMethod.kt @@ -6,6 +6,8 @@ package org.jetbrains.kotlin.light.classes.symbol.methods import com.intellij.psi.* +import kotlinx.collections.immutable.PersistentMap +import kotlinx.collections.immutable.mutate import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol import org.jetbrains.kotlin.analysis.api.types.KtType @@ -138,10 +140,11 @@ internal class SymbolLightSimpleMethod( } } - private fun modifiersForInlineOnlyCase(): Map = - LazyModifiersBox.MODALITY_MODIFIERS_MAP.putAll(LazyModifiersBox.VISIBILITY_MODIFIERS_MAP) - .with(PsiModifier.FINAL) - .with(PsiModifier.PRIVATE) + private fun modifiersForInlineOnlyCase(): PersistentMap = LazyModifiersBox.MODALITY_MODIFIERS_MAP.mutate { + it.putAll(LazyModifiersBox.VISIBILITY_MODIFIERS_MAP) + it[PsiModifier.FINAL] = true + it[PsiModifier.PRIVATE] = true + } private val hasInlineOnlyAnnotation: Boolean by lazyPub { withFunctionSymbol { it.hasInlineOnlyAnnotation() } } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightModifierList.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightModifierList.kt index 0d64a36c24c..41bb624ee37 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightModifierList.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightModifierList.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.KtModifierListOwner import org.jetbrains.kotlin.utils.keysToMap import java.util.concurrent.atomic.AtomicReference -internal open class SymbolLightModifierList> : +internal sealed class SymbolLightModifierList> : KtLightElementBase, PsiModifierList, KtLightElement { protected val owner: T private val staticModifiers: Set?