[SLC] rename from LazyModifiersBox to GranularModifiersBox
^KT-56046
This commit is contained in:
committed by
Space Team
parent
c05a47355e
commit
a2c0a88592
+2
-2
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsPr
|
||||
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForEnumEntry
|
||||
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForObject
|
||||
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightSimpleMethod
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.LazyModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
|
||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -84,7 +84,7 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
|
||||
private val _modifierList: PsiModifierList by lazyPub {
|
||||
SymbolLightClassModifierList(
|
||||
containingDeclaration = this,
|
||||
modifiersBox = LazyModifiersBox(computer = ::computeModifiers),
|
||||
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
|
||||
annotationsBox = LazyAnnotationsBox(
|
||||
annotationsProvider = SymbolAnnotationsProvider(ktModule, classOrObjectSymbolPointer)
|
||||
),
|
||||
|
||||
+3
-3
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.AbstractClassAdditionalAnnotationsProvider
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.LazyModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
@@ -68,8 +68,8 @@ internal abstract class SymbolLightClassForInterfaceOrAnnotationClass : SymbolLi
|
||||
|
||||
protected open fun computeModifierList(): PsiModifierList? = SymbolLightClassModifierList(
|
||||
containingDeclaration = this,
|
||||
modifiersBox = LazyModifiersBox(
|
||||
initialValue = LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(PsiModifier.ABSTRACT),
|
||||
modifiersBox = GranularModifiersBox(
|
||||
initialValue = GranularModifiersBox.MODALITY_MODIFIERS_MAP.with(PsiModifier.ABSTRACT),
|
||||
computer = ::computeModifiers
|
||||
),
|
||||
annotationsBox = LazyAnnotationsBox(
|
||||
|
||||
+4
-4
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForObjec
|
||||
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForProperty
|
||||
import org.jetbrains.kotlin.light.classes.symbol.isConstOrJvmField
|
||||
import org.jetbrains.kotlin.light.classes.symbol.isLateInit
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.LazyModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||
import org.jetbrains.kotlin.light.classes.symbol.toPsiVisibilityForClass
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
@@ -143,12 +143,12 @@ abstract class SymbolLightClassForNamedClassLike : SymbolLightClassForClassLike<
|
||||
}
|
||||
|
||||
internal fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
||||
in LazyModifiersBox.VISIBILITY_MODIFIERS -> {
|
||||
in GranularModifiersBox.VISIBILITY_MODIFIERS -> {
|
||||
val visibility = withClassOrObjectSymbol { it.toPsiVisibilityForClass(isNested = !isTopLevel) }
|
||||
LazyModifiersBox.VISIBILITY_MODIFIERS_MAP.with(visibility)
|
||||
GranularModifiersBox.VISIBILITY_MODIFIERS_MAP.with(visibility)
|
||||
}
|
||||
|
||||
in LazyModifiersBox.MODALITY_MODIFIERS -> LazyModifiersBox.computeSimpleModality(ktModule, classOrObjectSymbolPointer)
|
||||
in GranularModifiersBox.MODALITY_MODIFIERS -> GranularModifiersBox.computeSimpleModality(ktModule, classOrObjectSymbolPointer)
|
||||
PsiModifier.STATIC -> {
|
||||
val isStatic = !isTopLevel && !isInner
|
||||
mapOf(modifier to isStatic)
|
||||
|
||||
+5
-5
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.light.classes.symbol.annotations.hasDeprecatedAnnota
|
||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassForClassLike
|
||||
import org.jetbrains.kotlin.light.classes.symbol.compareSymbolPointers
|
||||
import org.jetbrains.kotlin.light.classes.symbol.isValid
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.LazyModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
||||
import org.jetbrains.kotlin.light.classes.symbol.nonExistentType
|
||||
import org.jetbrains.kotlin.light.classes.symbol.withSymbol
|
||||
@@ -58,8 +58,8 @@ internal class SymbolLightFieldForObject private constructor(
|
||||
private val _modifierList: PsiModifierList by lazyPub {
|
||||
SymbolLightMemberModifierList(
|
||||
containingDeclaration = this,
|
||||
modifiersBox = LazyModifiersBox(
|
||||
initialValue = LazyModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
||||
modifiersBox = GranularModifiersBox(
|
||||
initialValue = GranularModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
||||
it[PsiModifier.FINAL] = true
|
||||
it[PsiModifier.STATIC] = true
|
||||
},
|
||||
@@ -72,8 +72,8 @@ internal class SymbolLightFieldForObject private constructor(
|
||||
}
|
||||
|
||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? {
|
||||
if (modifier !in LazyModifiersBox.VISIBILITY_MODIFIERS) return null
|
||||
return LazyModifiersBox.computeVisibilityForMember(ktModule, objectSymbolPointer)
|
||||
if (modifier !in GranularModifiersBox.VISIBILITY_MODIFIERS) return null
|
||||
return GranularModifiersBox.computeVisibilityForMember(ktModule, objectSymbolPointer)
|
||||
}
|
||||
|
||||
private val _isDeprecated: Boolean by lazyPub {
|
||||
|
||||
+6
-6
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.LazyModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||
import org.jetbrains.kotlin.name.JvmNames.TRANSIENT_ANNOTATION_CLASS_ID
|
||||
@@ -102,8 +102,8 @@ internal class SymbolLightFieldForProperty private constructor(
|
||||
override fun getName(): String = fieldName
|
||||
|
||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
||||
in LazyModifiersBox.VISIBILITY_MODIFIERS -> LazyModifiersBox.computeVisibilityForMember(ktModule, propertySymbolPointer)
|
||||
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
||||
in GranularModifiersBox.VISIBILITY_MODIFIERS -> GranularModifiersBox.computeVisibilityForMember(ktModule, propertySymbolPointer)
|
||||
in GranularModifiersBox.MODALITY_MODIFIERS -> {
|
||||
val modality = withPropertySymbol { propertySymbol ->
|
||||
if (propertySymbol.isVal) {
|
||||
PsiModifier.FINAL
|
||||
@@ -114,7 +114,7 @@ internal class SymbolLightFieldForProperty private constructor(
|
||||
}
|
||||
}
|
||||
|
||||
LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||
GranularModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||
}
|
||||
|
||||
PsiModifier.STATIC -> {
|
||||
@@ -147,12 +147,12 @@ internal class SymbolLightFieldForProperty private constructor(
|
||||
val initializerValue = if (takePropertyVisibility) {
|
||||
emptyMap()
|
||||
} else {
|
||||
LazyModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PRIVATE)
|
||||
GranularModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PRIVATE)
|
||||
}
|
||||
|
||||
SymbolLightMemberModifierList(
|
||||
containingDeclaration = this,
|
||||
modifiersBox = LazyModifiersBox(initializerValue, ::computeModifiers),
|
||||
modifiersBox = GranularModifiersBox(initializerValue, ::computeModifiers),
|
||||
annotationsBox = LazyAnnotationsBox(
|
||||
annotationsProvider = SymbolAnnotationsProvider(
|
||||
ktModule = ktModule,
|
||||
|
||||
+8
-5
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.LazyModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList
|
||||
@@ -142,9 +142,12 @@ internal class SymbolLightAccessorMethod private constructor(
|
||||
}
|
||||
|
||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
||||
in LazyModifiersBox.VISIBILITY_MODIFIERS -> LazyModifiersBox.computeVisibilityForMember(ktModule, propertyAccessorSymbolPointer)
|
||||
in GranularModifiersBox.VISIBILITY_MODIFIERS -> GranularModifiersBox.computeVisibilityForMember(
|
||||
ktModule,
|
||||
propertyAccessorSymbolPointer,
|
||||
)
|
||||
|
||||
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
||||
in GranularModifiersBox.MODALITY_MODIFIERS -> {
|
||||
val modality = if (containingClass.isInterface) {
|
||||
PsiModifier.ABSTRACT
|
||||
} else {
|
||||
@@ -153,7 +156,7 @@ internal class SymbolLightAccessorMethod private constructor(
|
||||
}
|
||||
}
|
||||
|
||||
LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||
GranularModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||
}
|
||||
|
||||
PsiModifier.STATIC -> {
|
||||
@@ -182,7 +185,7 @@ internal class SymbolLightAccessorMethod private constructor(
|
||||
private val _modifierList: PsiModifierList by lazyPub {
|
||||
SymbolLightMemberModifierList(
|
||||
containingDeclaration = this,
|
||||
modifiersBox = LazyModifiersBox(computer = ::computeModifiers),
|
||||
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
|
||||
annotationsBox = LazyAnnotationsBox(
|
||||
annotationsProvider = CompositeAnnotationsProvider(
|
||||
SymbolAnnotationsProvider(
|
||||
|
||||
+5
-5
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider
|
||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassForEnumEntry
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.LazyModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||
import java.util.*
|
||||
@@ -45,14 +45,14 @@ internal class SymbolLightConstructor(
|
||||
|
||||
private val _modifierList: PsiModifierList by lazyPub {
|
||||
val initialValue = if (this.containingClass is SymbolLightClassForEnumEntry) {
|
||||
LazyModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PACKAGE_LOCAL)
|
||||
GranularModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PACKAGE_LOCAL)
|
||||
} else {
|
||||
emptyMap()
|
||||
}
|
||||
|
||||
SymbolLightMemberModifierList(
|
||||
containingDeclaration = this,
|
||||
modifiersBox = LazyModifiersBox(
|
||||
modifiersBox = GranularModifiersBox(
|
||||
initialValue = initialValue,
|
||||
computer = ::computeModifiers,
|
||||
),
|
||||
@@ -66,8 +66,8 @@ internal class SymbolLightConstructor(
|
||||
}
|
||||
|
||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? {
|
||||
if (modifier !in LazyModifiersBox.VISIBILITY_MODIFIERS) return null
|
||||
return LazyModifiersBox.computeVisibilityForMember(ktModule, functionSymbolPointer)
|
||||
if (modifier !in GranularModifiersBox.VISIBILITY_MODIFIERS) return null
|
||||
return GranularModifiersBox.computeVisibilityForMember(ktModule, functionSymbolPointer)
|
||||
}
|
||||
|
||||
override fun getModifierList(): PsiModifierList = _modifierList
|
||||
|
||||
+8
-8
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.LazyModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightTypeParameterList
|
||||
@@ -73,7 +73,7 @@ internal class SymbolLightSimpleMethod(
|
||||
override fun getTypeParameters(): Array<PsiTypeParameter> = _typeParameterList?.typeParameters ?: PsiTypeParameter.EMPTY_ARRAY
|
||||
|
||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
||||
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
||||
in GranularModifiersBox.MODALITY_MODIFIERS -> {
|
||||
ifInlineOnly { return modifiersForInlineOnlyCase() }
|
||||
val modality = if (isTopLevel) {
|
||||
PsiModifier.FINAL
|
||||
@@ -83,12 +83,12 @@ internal class SymbolLightSimpleMethod(
|
||||
}
|
||||
}
|
||||
|
||||
LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||
GranularModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||
}
|
||||
|
||||
in LazyModifiersBox.VISIBILITY_MODIFIERS -> {
|
||||
in GranularModifiersBox.VISIBILITY_MODIFIERS -> {
|
||||
ifInlineOnly { return modifiersForInlineOnlyCase() }
|
||||
LazyModifiersBox.computeVisibilityForMember(ktModule, functionSymbolPointer)
|
||||
GranularModifiersBox.computeVisibilityForMember(ktModule, functionSymbolPointer)
|
||||
}
|
||||
|
||||
PsiModifier.STATIC -> {
|
||||
@@ -129,8 +129,8 @@ internal class SymbolLightSimpleMethod(
|
||||
}
|
||||
}
|
||||
|
||||
private fun modifiersForInlineOnlyCase(): PersistentMap<String, Boolean> = LazyModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
||||
it.putAll(LazyModifiersBox.VISIBILITY_MODIFIERS_MAP)
|
||||
private fun modifiersForInlineOnlyCase(): PersistentMap<String, Boolean> = GranularModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
||||
it.putAll(GranularModifiersBox.VISIBILITY_MODIFIERS_MAP)
|
||||
it[PsiModifier.FINAL] = true
|
||||
it[PsiModifier.PRIVATE] = true
|
||||
}
|
||||
@@ -140,7 +140,7 @@ internal class SymbolLightSimpleMethod(
|
||||
private val _modifierList: PsiModifierList by lazyPub {
|
||||
SymbolLightMemberModifierList(
|
||||
containingDeclaration = this,
|
||||
modifiersBox = LazyModifiersBox(computer = ::computeModifiers),
|
||||
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
|
||||
annotationsBox = LazyAnnotationsBox(
|
||||
annotationsProvider = SymbolAnnotationsProvider(
|
||||
ktModule = ktModule,
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater
|
||||
|
||||
internal typealias LazyModifiersComputer = (modifier: String) -> Map<String, Boolean>?
|
||||
|
||||
internal class LazyModifiersBox(
|
||||
internal class GranularModifiersBox(
|
||||
initialValue: Map<String, Boolean> = emptyMap(),
|
||||
private val computer: LazyModifiersComputer,
|
||||
) : ModifiersBox {
|
||||
@@ -43,7 +43,7 @@ internal class LazyModifiersBox(
|
||||
|
||||
companion object {
|
||||
private val fieldUpdater = AtomicReferenceFieldUpdater.newUpdater(
|
||||
/* tclass = */ LazyModifiersBox::class.java,
|
||||
/* tclass = */ GranularModifiersBox::class.java,
|
||||
/* vclass = */ PersistentMap::class.java,
|
||||
/* fieldName = */ "modifiersMapReference",
|
||||
)
|
||||
+1
-1
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.light.classes.symbol.modifierLists
|
||||
/**
|
||||
* This class is used as a proxy for [com.intellij.psi.PsiModifierList.hasModifierProperty].
|
||||
*
|
||||
* [LazyModifiersBox] provides an ability to compute each modifier separately to avoid heavy computation.
|
||||
* [GranularModifiersBox] provides an ability to compute each modifier separately to avoid heavy computation.
|
||||
* [InitializedModifiersBox] is a collection of possible modifiers.
|
||||
* [EmptyModifiersBox] just a box without modifiers.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user