[SLC] rename from LazyAnnotationsBox to GranularAnnotationsBox

^KT-56046
This commit is contained in:
Dmitrii Gridin
2023-02-02 15:09:55 +01:00
committed by Space Team
parent a2c0a88592
commit fc05fa5b1a
24 changed files with 43 additions and 43 deletions
@@ -30,7 +30,7 @@ internal object AbstractClassAdditionalAnnotationsProvider : AdditionalAnnotatio
}
override fun findSpecialAnnotation(
annotationsBox: LazyAnnotationsBox,
annotationsBox: GranularAnnotationsBox,
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? = if (owner.parent.isAnnotationClass())
@@ -69,7 +69,7 @@ private fun addAllAnnotationsFromAnnotationClass(
}
private fun findAdditionalAnnotationFromAnnotationClass(
annotationsBox: LazyAnnotationsBox,
annotationsBox: GranularAnnotationsBox,
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? = annotationsBox.tryConvertToRetentionJavaAnnotation(qualifiedName, owner)
@@ -78,7 +78,7 @@ private fun findAdditionalAnnotationFromAnnotationClass(
?: annotationsBox.tryConvertToRepeatableJavaAnnotation(qualifiedName, owner)
private fun LazyAnnotationsBox.tryConvertToDocumentedJavaAnnotation(
private fun GranularAnnotationsBox.tryConvertToDocumentedJavaAnnotation(
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? = tryConvertToJavaAnnotation(
@@ -96,7 +96,7 @@ private fun SymbolLightLazyAnnotation.tryConvertToDocumentedJavaAnnotation(
owner = owner,
)
private fun LazyAnnotationsBox.tryConvertToRetentionJavaAnnotation(
private fun GranularAnnotationsBox.tryConvertToRetentionJavaAnnotation(
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? {
@@ -150,7 +150,7 @@ private fun javaRetentionArguments(kotlinRetentionName: String?): List<KtNamedAn
)
)
private fun LazyAnnotationsBox.tryConvertToRepeatableJavaAnnotation(
private fun GranularAnnotationsBox.tryConvertToRepeatableJavaAnnotation(
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? = tryConvertToJavaAnnotation(
@@ -184,7 +184,7 @@ private fun SymbolLightJavaAnnotation.computeRepeatableJavaAnnotationArguments()
)
}
private fun LazyAnnotationsBox.tryConvertToTargetJavaAnnotation(
private fun GranularAnnotationsBox.tryConvertToTargetJavaAnnotation(
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? = tryConvertToJavaAnnotation(
@@ -251,7 +251,7 @@ private fun KtAnnotationValue.mapToJavaTarget(): String? {
}?.name
}
private fun LazyAnnotationsBox.tryConvertToJavaAnnotation(
private fun GranularAnnotationsBox.tryConvertToJavaAnnotation(
qualifiedName: String,
javaQualifier: String,
kotlinQualifier: String,
@@ -15,7 +15,7 @@ import com.intellij.psi.PsiModifierList
* [SimpleAdditionalAnnotationsProvider] is a collection of additional annotations.
* [CompositeAdditionalAnnotationsProvider] is a composition of some [AdditionalAnnotationsProvider].
*
* @see [LazyAnnotationsBox]
* @see [GranularAnnotationsBox]
*/
internal sealed interface AdditionalAnnotationsProvider {
/**
@@ -30,8 +30,8 @@ internal sealed interface AdditionalAnnotationsProvider {
fun addAllAnnotations(currentRawAnnotations: MutableList<in PsiAnnotation>, foundQualifiers: MutableSet<String>, owner: PsiModifierList)
/**
* @return **true** if this qualifier should be treated as a **special** in [LazyAnnotationsBox.findAnnotation]
* (should be processed without [LazyAnnotationsBox.getOrComputeCachedAnnotations] call)
* @return **true** if this qualifier should be treated as a **special** in [GranularAnnotationsBox.findAnnotation]
* (should be processed without [GranularAnnotationsBox.getOrComputeCachedAnnotations] call)
*/
fun isSpecialQualifier(qualifiedName: String): Boolean
@@ -44,7 +44,7 @@ internal sealed interface AdditionalAnnotationsProvider {
*
* @return a new annotation with [qualifiedName]
*/
fun findSpecialAnnotation(annotationsBox: LazyAnnotationsBox, qualifiedName: String, owner: PsiModifierList): PsiAnnotation?
fun findSpecialAnnotation(annotationsBox: GranularAnnotationsBox, qualifiedName: String, owner: PsiModifierList): PsiAnnotation?
/**
* Adds a new annotation with [qualifier] name to [currentRawAnnotations] and [foundQualifiers] if not already present
@@ -8,9 +8,9 @@ package org.jetbrains.kotlin.light.classes.symbol.annotations
import com.intellij.psi.PsiAnnotation
/**
* Provider a filter for resulted annotations from [LazyAnnotationsBox]
* Provider a filter for resulted annotations from [GranularAnnotationsBox]
*
* @see LazyAnnotationsBox
* @see GranularAnnotationsBox
*/
internal sealed interface AnnotationFilter {
/**
@@ -11,7 +11,7 @@ import com.intellij.psi.PsiModifierList
/**
* This class is used as a proxy for [com.intellij.psi.PsiAnnotationOwner].
*
* [LazyAnnotationsBox] provides an ability to compute each annotation separately and in a lazy way to avoid heavy computation.
* [GranularAnnotationsBox] provides an ability to compute each annotation separately and in a lazy way to avoid heavy computation.
* [ComputeAllAtOnceAnnotationsBox] provides an ability to compute all annotations once on first access.
* [EmptyAnnotationsBox] just a box without annotations.
*
@@ -11,13 +11,13 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol
import org.jetbrains.kotlin.name.ClassId
/**
* This class provides annotations to [LazyAnnotationsBox].
* This class provides annotations to [GranularAnnotationsBox].
*
* [EmptyAnnotationsProvider] is just an empty provider.
* [SymbolAnnotationsProvider] is a provider based on [KtAnnotatedSymbol] API.
* [CompositeAnnotationsProvider] is a composition of some [AnnotationsProvider].
*
* @see [LazyAnnotationsBox]
* @see [GranularAnnotationsBox]
*/
internal sealed interface AnnotationsProvider {
/**
@@ -22,7 +22,7 @@ internal class CompositeAdditionalAnnotationsProvider(val providers: List<Additi
}
override fun findSpecialAnnotation(
annotationsBox: LazyAnnotationsBox,
annotationsBox: GranularAnnotationsBox,
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? = providers.firstNotNullOfOrNull { provider -> provider.findSpecialAnnotation(annotationsBox, qualifiedName, owner) }
@@ -16,7 +16,7 @@ internal object EmptyAdditionalAnnotationsProvider : AdditionalAnnotationsProvid
) = Unit
override fun findSpecialAnnotation(
annotationsBox: LazyAnnotationsBox,
annotationsBox: GranularAnnotationsBox,
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? = null
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.utils.SmartList
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater
internal class LazyAnnotationsBox(
internal class GranularAnnotationsBox(
private val annotationsProvider: AnnotationsProvider,
private val additionalAnnotationsProvider: AdditionalAnnotationsProvider = EmptyAdditionalAnnotationsProvider,
private val annotationFilter: AnnotationFilter = AlwaysAllowedAnnotationFilter,
@@ -84,7 +84,7 @@ internal class LazyAnnotationsBox(
companion object {
private val fieldUpdater = AtomicReferenceFieldUpdater.newUpdater(
/* tclass = */ LazyAnnotationsBox::class.java,
/* tclass = */ GranularAnnotationsBox::class.java,
/* vclass = */ Collection::class.java,
/* fieldName = */ "cachedAnnotations",
)
@@ -23,7 +23,7 @@ internal object MethodAdditionalAnnotationsProvider : AdditionalAnnotationsProvi
}
override fun findSpecialAnnotation(
annotationsBox: LazyAnnotationsBox,
annotationsBox: GranularAnnotationsBox,
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? = if (owner.parent.isMethodWithOverride())
@@ -24,7 +24,7 @@ internal class NullabilityAnnotationsProvider(private val lazyNullabilityType: L
}
override fun findSpecialAnnotation(
annotationsBox: LazyAnnotationsBox,
annotationsBox: GranularAnnotationsBox,
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? {
@@ -24,7 +24,7 @@ internal class SimpleAdditionalAnnotationsProvider(
}
override fun findSpecialAnnotation(
annotationsBox: LazyAnnotationsBox,
annotationsBox: GranularAnnotationsBox,
qualifiedName: String,
owner: PsiModifierList,
): PsiAnnotation? {
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.builtins.StandardNames.HASHCODE_NAME
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.GranularAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForEnumEntry
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForObject
@@ -85,7 +85,7 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
SymbolLightClassModifierList(
containingDeclaration = this,
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(ktModule, classOrObjectSymbolPointer)
),
)
@@ -67,7 +67,7 @@ class SymbolLightClassForFacade(
annotationsBox = if (multiFileClass) {
EmptyAnnotationsBox
} else {
LazyAnnotationsBox(
GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(
ktModule = this.ktModule,
annotatedSymbolPointer = firstFileInFacade.symbolPointerOfType<KtFileSymbol>(),
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.analysis.project.structure.KtModule
import org.jetbrains.kotlin.asJava.classes.lazyPub
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.GranularAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.GranularModifiersBox
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
@@ -72,7 +72,7 @@ internal abstract class SymbolLightClassForInterfaceOrAnnotationClass : SymbolLi
initialValue = GranularModifiersBox.MODALITY_MODIFIERS_MAP.with(PsiModifier.ABSTRACT),
computer = ::computeModifiers
),
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(ktModule, classOrObjectSymbolPointer),
additionalAnnotationsProvider = AbstractClassAdditionalAnnotationsProvider,
),
@@ -40,7 +40,7 @@ internal class SymbolLightClassForRepeatableAnnotationContainer(private val cont
// It is marked as Abstract because all the annotation classes are marked as Abstract
// It is marked as Static because all nested interfaces are marked as Static
modifiersBox = InitializedModifiersBox(PsiModifier.PUBLIC, PsiModifier.STATIC, PsiModifier.ABSTRACT),
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(
ktModule = ktModule,
annotatedSymbolPointer = classOrObjectSymbolPointer,
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.symbolPointerOfType
import org.jetbrains.kotlin.asJava.classes.cannotModify
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.light.classes.symbol.analyzeForLightClasses
import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.GranularAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.annotations.annotationUseSiteTargetFilterOf
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassForClassOrObject
@@ -41,7 +41,7 @@ internal class SymbolLightFieldForEnumEntry(
SymbolLightMemberModifierList(
containingDeclaration = this,
modifiersBox = InitializedModifiersBox(PsiModifier.STATIC, PsiModifier.FINAL, PsiModifier.PUBLIC),
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(
ktModule = ktModule,
annotatedSymbolPointer = enumEntry.symbolPointerOfType<KtEnumEntrySymbol>(),
@@ -153,7 +153,7 @@ internal class SymbolLightFieldForProperty private constructor(
SymbolLightMemberModifierList(
containingDeclaration = this,
modifiersBox = GranularModifiersBox(initializerValue, ::computeModifiers),
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(
ktModule = ktModule,
annotatedSymbolPointer = propertySymbolPointer,
@@ -186,7 +186,7 @@ internal class SymbolLightAccessorMethod private constructor(
SymbolLightMemberModifierList(
containingDeclaration = this,
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = CompositeAnnotationsProvider(
SymbolAnnotationsProvider(
ktModule = ktModule,
@@ -9,7 +9,7 @@ import com.intellij.psi.*
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.symbols.KtConstructorSymbol
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.GranularAnnotationsBox
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
@@ -56,7 +56,7 @@ internal class SymbolLightConstructor(
initialValue = initialValue,
computer = ::computeModifiers,
),
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(
ktModule = ktModule,
annotatedSymbolPointer = functionSymbolPointer,
@@ -141,7 +141,7 @@ internal class SymbolLightSimpleMethod(
SymbolLightMemberModifierList(
containingDeclaration = this,
modifiersBox = GranularModifiersBox(computer = ::computeModifiers),
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(
ktModule = ktModule,
annotatedSymbolPointer = functionSymbolPointer,
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.GranularAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.NullabilityAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.annotations.toFilterWithAdditionalNull
@@ -31,7 +31,7 @@ internal class SymbolLightParameter(
private val _modifierList: PsiModifierList by lazyPub {
SymbolLightClassModifierList(
containingDeclaration = this,
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(
ktModule = ktModule,
annotatedSymbolPointer = parameterSymbolPointer,
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.codegen.AsmUtil
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.light.classes.symbol.*
import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.GranularAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.NullabilityAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.annotations.toFilterWithAdditionalNull
@@ -68,7 +68,7 @@ internal class SymbolLightParameterForReceiver private constructor(
private val _modifierList: PsiModifierList by lazyPub {
SymbolLightClassModifierList(
containingDeclaration = this,
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = SymbolAnnotationsProvider(
ktModule = ktModule,
annotatedSymbolPointer = receiverPointer,
@@ -41,7 +41,7 @@ internal class SymbolLightSetterParameter(
private val _modifierList: PsiModifierList by lazyPub {
SymbolLightClassModifierList(
containingDeclaration = this,
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = CompositeAnnotationsProvider(
SymbolAnnotationsProvider(
ktModule = ktModule,
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.codegen.coroutines.SUSPEND_FUNCTION_COMPLETION_PARAMETER_NAME
import org.jetbrains.kotlin.light.classes.symbol.NullabilityType
import org.jetbrains.kotlin.light.classes.symbol.annotations.EmptyAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.annotations.LazyAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.GranularAnnotationsBox
import org.jetbrains.kotlin.light.classes.symbol.annotations.NullabilityAnnotationsProvider
import org.jetbrains.kotlin.light.classes.symbol.isValid
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase
@@ -56,7 +56,7 @@ internal class SymbolLightSuspendContinuationParameter(
private val _modifierList: PsiModifierList by lazyPub {
SymbolLightClassModifierList(
containingDeclaration = this,
annotationsBox = LazyAnnotationsBox(
annotationsBox = GranularAnnotationsBox(
annotationsProvider = EmptyAnnotationsProvider,
additionalAnnotationsProvider = NullabilityAnnotationsProvider {
if (withFunctionSymbol { it.visibility.isPrivateOrPrivateToThis() })