[SLC] SymbolLightSimpleMethod: reduce allocations number
^KTIJ-23783
This commit is contained in:
committed by
Space Team
parent
c5c79a5fb5
commit
91586705b3
+7
-4
@@ -6,6 +6,8 @@
|
|||||||
package org.jetbrains.kotlin.light.classes.symbol.methods
|
package org.jetbrains.kotlin.light.classes.symbol.methods
|
||||||
|
|
||||||
import com.intellij.psi.*
|
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.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||||
@@ -138,10 +140,11 @@ internal class SymbolLightSimpleMethod(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun modifiersForInlineOnlyCase(): Map<String, Boolean> =
|
private fun modifiersForInlineOnlyCase(): PersistentMap<String, Boolean> = LazyModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
||||||
LazyModifiersBox.MODALITY_MODIFIERS_MAP.putAll(LazyModifiersBox.VISIBILITY_MODIFIERS_MAP)
|
it.putAll(LazyModifiersBox.VISIBILITY_MODIFIERS_MAP)
|
||||||
.with(PsiModifier.FINAL)
|
it[PsiModifier.FINAL] = true
|
||||||
.with(PsiModifier.PRIVATE)
|
it[PsiModifier.PRIVATE] = true
|
||||||
|
}
|
||||||
|
|
||||||
private val hasInlineOnlyAnnotation: Boolean by lazyPub { withFunctionSymbol { it.hasInlineOnlyAnnotation() } }
|
private val hasInlineOnlyAnnotation: Boolean by lazyPub { withFunctionSymbol { it.hasInlineOnlyAnnotation() } }
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.KtModifierListOwner
|
|||||||
import org.jetbrains.kotlin.utils.keysToMap
|
import org.jetbrains.kotlin.utils.keysToMap
|
||||||
import java.util.concurrent.atomic.AtomicReference
|
import java.util.concurrent.atomic.AtomicReference
|
||||||
|
|
||||||
internal open class SymbolLightModifierList<out T : KtLightElement<KtModifierListOwner, PsiModifierListOwner>> :
|
internal sealed class SymbolLightModifierList<out T : KtLightElement<KtModifierListOwner, PsiModifierListOwner>> :
|
||||||
KtLightElementBase, PsiModifierList, KtLightElement<KtModifierList, PsiModifierListOwner> {
|
KtLightElementBase, PsiModifierList, KtLightElement<KtModifierList, PsiModifierListOwner> {
|
||||||
protected val owner: T
|
protected val owner: T
|
||||||
private val staticModifiers: Set<String>?
|
private val staticModifiers: Set<String>?
|
||||||
|
|||||||
Reference in New Issue
Block a user