diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/AnnotationsBox.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/AnnotationsBox.kt index 87491234973..443fd3a9491 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/AnnotationsBox.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/AnnotationsBox.kt @@ -8,6 +8,15 @@ package org.jetbrains.kotlin.light.classes.symbol.annotations import com.intellij.psi.PsiAnnotation 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. + * [SimpleAnnotationsBox] provides an ability to compute all annotations once on first access. + * [EmptyAnnotationsBox] just a box without annotations. + * + * @see org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightModifierList + */ internal sealed interface AnnotationsBox { fun annotationsArray(owner: PsiModifierList): Array fun findAnnotation(owner: PsiModifierList, qualifiedName: String): PsiAnnotation?