[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.SymbolLightFieldForEnumEntry
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForObject
|
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.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.light.classes.symbol.modifierLists.SymbolLightClassModifierList
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -84,7 +84,7 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
|
|||||||
private val _modifierList: PsiModifierList by lazyPub {
|
private val _modifierList: PsiModifierList by lazyPub {
|
||||||
SymbolLightClassModifierList(
|
SymbolLightClassModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
modifiersBox = LazyModifiersBox(computer = ::computeModifiers),
|
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
|
||||||
annotationsBox = LazyAnnotationsBox(
|
annotationsBox = LazyAnnotationsBox(
|
||||||
annotationsProvider = SymbolAnnotationsProvider(ktModule, classOrObjectSymbolPointer)
|
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.AbstractClassAdditionalAnnotationsProvider
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
|
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.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.SymbolLightClassModifierList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||||
import org.jetbrains.kotlin.psi.KtClass
|
import org.jetbrains.kotlin.psi.KtClass
|
||||||
@@ -68,8 +68,8 @@ internal abstract class SymbolLightClassForInterfaceOrAnnotationClass : SymbolLi
|
|||||||
|
|
||||||
protected open fun computeModifierList(): PsiModifierList? = SymbolLightClassModifierList(
|
protected open fun computeModifierList(): PsiModifierList? = SymbolLightClassModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
modifiersBox = LazyModifiersBox(
|
modifiersBox = GranularModifiersBox(
|
||||||
initialValue = LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(PsiModifier.ABSTRACT),
|
initialValue = GranularModifiersBox.MODALITY_MODIFIERS_MAP.with(PsiModifier.ABSTRACT),
|
||||||
computer = ::computeModifiers
|
computer = ::computeModifiers
|
||||||
),
|
),
|
||||||
annotationsBox = LazyAnnotationsBox(
|
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.fields.SymbolLightFieldForProperty
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.isConstOrJvmField
|
import org.jetbrains.kotlin.light.classes.symbol.isConstOrJvmField
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.isLateInit
|
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.modifierLists.with
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.toPsiVisibilityForClass
|
import org.jetbrains.kotlin.light.classes.symbol.toPsiVisibilityForClass
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
@@ -143,12 +143,12 @@ abstract class SymbolLightClassForNamedClassLike : SymbolLightClassForClassLike<
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
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) }
|
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 -> {
|
PsiModifier.STATIC -> {
|
||||||
val isStatic = !isTopLevel && !isInner
|
val isStatic = !isTopLevel && !isInner
|
||||||
mapOf(modifier to isStatic)
|
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.classes.SymbolLightClassForClassLike
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.compareSymbolPointers
|
import org.jetbrains.kotlin.light.classes.symbol.compareSymbolPointers
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.isValid
|
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.modifierLists.SymbolLightMemberModifierList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.nonExistentType
|
import org.jetbrains.kotlin.light.classes.symbol.nonExistentType
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.withSymbol
|
import org.jetbrains.kotlin.light.classes.symbol.withSymbol
|
||||||
@@ -58,8 +58,8 @@ internal class SymbolLightFieldForObject private constructor(
|
|||||||
private val _modifierList: PsiModifierList by lazyPub {
|
private val _modifierList: PsiModifierList by lazyPub {
|
||||||
SymbolLightMemberModifierList(
|
SymbolLightMemberModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
modifiersBox = LazyModifiersBox(
|
modifiersBox = GranularModifiersBox(
|
||||||
initialValue = LazyModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
initialValue = GranularModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
||||||
it[PsiModifier.FINAL] = true
|
it[PsiModifier.FINAL] = true
|
||||||
it[PsiModifier.STATIC] = true
|
it[PsiModifier.STATIC] = true
|
||||||
},
|
},
|
||||||
@@ -72,8 +72,8 @@ internal class SymbolLightFieldForObject private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? {
|
private fun computeModifiers(modifier: String): Map<String, Boolean>? {
|
||||||
if (modifier !in LazyModifiersBox.VISIBILITY_MODIFIERS) return null
|
if (modifier !in GranularModifiersBox.VISIBILITY_MODIFIERS) return null
|
||||||
return LazyModifiersBox.computeVisibilityForMember(ktModule, objectSymbolPointer)
|
return GranularModifiersBox.computeVisibilityForMember(ktModule, objectSymbolPointer)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _isDeprecated: Boolean by lazyPub {
|
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.*
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
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.SymbolLightMemberModifierList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||||
import org.jetbrains.kotlin.name.JvmNames.TRANSIENT_ANNOTATION_CLASS_ID
|
import org.jetbrains.kotlin.name.JvmNames.TRANSIENT_ANNOTATION_CLASS_ID
|
||||||
@@ -102,8 +102,8 @@ internal class SymbolLightFieldForProperty private constructor(
|
|||||||
override fun getName(): String = fieldName
|
override fun getName(): String = fieldName
|
||||||
|
|
||||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
||||||
in LazyModifiersBox.VISIBILITY_MODIFIERS -> LazyModifiersBox.computeVisibilityForMember(ktModule, propertySymbolPointer)
|
in GranularModifiersBox.VISIBILITY_MODIFIERS -> GranularModifiersBox.computeVisibilityForMember(ktModule, propertySymbolPointer)
|
||||||
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
in GranularModifiersBox.MODALITY_MODIFIERS -> {
|
||||||
val modality = withPropertySymbol { propertySymbol ->
|
val modality = withPropertySymbol { propertySymbol ->
|
||||||
if (propertySymbol.isVal) {
|
if (propertySymbol.isVal) {
|
||||||
PsiModifier.FINAL
|
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 -> {
|
PsiModifier.STATIC -> {
|
||||||
@@ -147,12 +147,12 @@ internal class SymbolLightFieldForProperty private constructor(
|
|||||||
val initializerValue = if (takePropertyVisibility) {
|
val initializerValue = if (takePropertyVisibility) {
|
||||||
emptyMap()
|
emptyMap()
|
||||||
} else {
|
} else {
|
||||||
LazyModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PRIVATE)
|
GranularModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PRIVATE)
|
||||||
}
|
}
|
||||||
|
|
||||||
SymbolLightMemberModifierList(
|
SymbolLightMemberModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
modifiersBox = LazyModifiersBox(initializerValue, ::computeModifiers),
|
modifiersBox = GranularModifiersBox(initializerValue, ::computeModifiers),
|
||||||
annotationsBox = LazyAnnotationsBox(
|
annotationsBox = LazyAnnotationsBox(
|
||||||
annotationsProvider = SymbolAnnotationsProvider(
|
annotationsProvider = SymbolAnnotationsProvider(
|
||||||
ktModule = ktModule,
|
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.*
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
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.SymbolLightMemberModifierList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList
|
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) {
|
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) {
|
val modality = if (containingClass.isInterface) {
|
||||||
PsiModifier.ABSTRACT
|
PsiModifier.ABSTRACT
|
||||||
} else {
|
} else {
|
||||||
@@ -153,7 +156,7 @@ internal class SymbolLightAccessorMethod private constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
GranularModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||||
}
|
}
|
||||||
|
|
||||||
PsiModifier.STATIC -> {
|
PsiModifier.STATIC -> {
|
||||||
@@ -182,7 +185,7 @@ internal class SymbolLightAccessorMethod private constructor(
|
|||||||
private val _modifierList: PsiModifierList by lazyPub {
|
private val _modifierList: PsiModifierList by lazyPub {
|
||||||
SymbolLightMemberModifierList(
|
SymbolLightMemberModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
modifiersBox = LazyModifiersBox(computer = ::computeModifiers),
|
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
|
||||||
annotationsBox = LazyAnnotationsBox(
|
annotationsBox = LazyAnnotationsBox(
|
||||||
annotationsProvider = CompositeAnnotationsProvider(
|
annotationsProvider = CompositeAnnotationsProvider(
|
||||||
SymbolAnnotationsProvider(
|
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.annotations.SymbolAnnotationsProvider
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
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.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.SymbolLightMemberModifierList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -45,14 +45,14 @@ internal class SymbolLightConstructor(
|
|||||||
|
|
||||||
private val _modifierList: PsiModifierList by lazyPub {
|
private val _modifierList: PsiModifierList by lazyPub {
|
||||||
val initialValue = if (this.containingClass is SymbolLightClassForEnumEntry) {
|
val initialValue = if (this.containingClass is SymbolLightClassForEnumEntry) {
|
||||||
LazyModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PACKAGE_LOCAL)
|
GranularModifiersBox.VISIBILITY_MODIFIERS_MAP.with(PsiModifier.PACKAGE_LOCAL)
|
||||||
} else {
|
} else {
|
||||||
emptyMap()
|
emptyMap()
|
||||||
}
|
}
|
||||||
|
|
||||||
SymbolLightMemberModifierList(
|
SymbolLightMemberModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
modifiersBox = LazyModifiersBox(
|
modifiersBox = GranularModifiersBox(
|
||||||
initialValue = initialValue,
|
initialValue = initialValue,
|
||||||
computer = ::computeModifiers,
|
computer = ::computeModifiers,
|
||||||
),
|
),
|
||||||
@@ -66,8 +66,8 @@ internal class SymbolLightConstructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? {
|
private fun computeModifiers(modifier: String): Map<String, Boolean>? {
|
||||||
if (modifier !in LazyModifiersBox.VISIBILITY_MODIFIERS) return null
|
if (modifier !in GranularModifiersBox.VISIBILITY_MODIFIERS) return null
|
||||||
return LazyModifiersBox.computeVisibilityForMember(ktModule, functionSymbolPointer)
|
return GranularModifiersBox.computeVisibilityForMember(ktModule, functionSymbolPointer)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getModifierList(): PsiModifierList = _modifierList
|
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.*
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
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.SymbolLightMemberModifierList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightTypeParameterList
|
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
|
override fun getTypeParameters(): Array<PsiTypeParameter> = _typeParameterList?.typeParameters ?: PsiTypeParameter.EMPTY_ARRAY
|
||||||
|
|
||||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
||||||
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
in GranularModifiersBox.MODALITY_MODIFIERS -> {
|
||||||
ifInlineOnly { return modifiersForInlineOnlyCase() }
|
ifInlineOnly { return modifiersForInlineOnlyCase() }
|
||||||
val modality = if (isTopLevel) {
|
val modality = if (isTopLevel) {
|
||||||
PsiModifier.FINAL
|
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() }
|
ifInlineOnly { return modifiersForInlineOnlyCase() }
|
||||||
LazyModifiersBox.computeVisibilityForMember(ktModule, functionSymbolPointer)
|
GranularModifiersBox.computeVisibilityForMember(ktModule, functionSymbolPointer)
|
||||||
}
|
}
|
||||||
|
|
||||||
PsiModifier.STATIC -> {
|
PsiModifier.STATIC -> {
|
||||||
@@ -129,8 +129,8 @@ internal class SymbolLightSimpleMethod(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun modifiersForInlineOnlyCase(): PersistentMap<String, Boolean> = LazyModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
private fun modifiersForInlineOnlyCase(): PersistentMap<String, Boolean> = GranularModifiersBox.MODALITY_MODIFIERS_MAP.mutate {
|
||||||
it.putAll(LazyModifiersBox.VISIBILITY_MODIFIERS_MAP)
|
it.putAll(GranularModifiersBox.VISIBILITY_MODIFIERS_MAP)
|
||||||
it[PsiModifier.FINAL] = true
|
it[PsiModifier.FINAL] = true
|
||||||
it[PsiModifier.PRIVATE] = true
|
it[PsiModifier.PRIVATE] = true
|
||||||
}
|
}
|
||||||
@@ -140,7 +140,7 @@ internal class SymbolLightSimpleMethod(
|
|||||||
private val _modifierList: PsiModifierList by lazyPub {
|
private val _modifierList: PsiModifierList by lazyPub {
|
||||||
SymbolLightMemberModifierList(
|
SymbolLightMemberModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
modifiersBox = LazyModifiersBox(computer = ::computeModifiers),
|
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
|
||||||
annotationsBox = LazyAnnotationsBox(
|
annotationsBox = LazyAnnotationsBox(
|
||||||
annotationsProvider = SymbolAnnotationsProvider(
|
annotationsProvider = SymbolAnnotationsProvider(
|
||||||
ktModule = ktModule,
|
ktModule = ktModule,
|
||||||
|
|||||||
+2
-2
@@ -20,7 +20,7 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater
|
|||||||
|
|
||||||
internal typealias LazyModifiersComputer = (modifier: String) -> Map<String, Boolean>?
|
internal typealias LazyModifiersComputer = (modifier: String) -> Map<String, Boolean>?
|
||||||
|
|
||||||
internal class LazyModifiersBox(
|
internal class GranularModifiersBox(
|
||||||
initialValue: Map<String, Boolean> = emptyMap(),
|
initialValue: Map<String, Boolean> = emptyMap(),
|
||||||
private val computer: LazyModifiersComputer,
|
private val computer: LazyModifiersComputer,
|
||||||
) : ModifiersBox {
|
) : ModifiersBox {
|
||||||
@@ -43,7 +43,7 @@ internal class LazyModifiersBox(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val fieldUpdater = AtomicReferenceFieldUpdater.newUpdater(
|
private val fieldUpdater = AtomicReferenceFieldUpdater.newUpdater(
|
||||||
/* tclass = */ LazyModifiersBox::class.java,
|
/* tclass = */ GranularModifiersBox::class.java,
|
||||||
/* vclass = */ PersistentMap::class.java,
|
/* vclass = */ PersistentMap::class.java,
|
||||||
/* fieldName = */ "modifiersMapReference",
|
/* 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].
|
* 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.
|
* [InitializedModifiersBox] is a collection of possible modifiers.
|
||||||
* [EmptyModifiersBox] just a box without modifiers.
|
* [EmptyModifiersBox] just a box without modifiers.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user