diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/ModifiersBox.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/ModifiersBox.kt index 0218863daef..d8cb0ac10d4 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/ModifiersBox.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/ModifiersBox.kt @@ -5,6 +5,15 @@ 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. + * [SimpleModifiersBox] is a collection of possible modifiers. + * [EmptyModifiersBox] just a box without modifiers. + * + * @see SymbolLightModifierList + */ internal sealed interface ModifiersBox { fun hasModifier(modifier: String): Boolean } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SimpleModifiersBox.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SimpleModifiersBox.kt index 726cbb644ad..cbf428a42a9 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SimpleModifiersBox.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SimpleModifiersBox.kt @@ -7,5 +7,6 @@ package org.jetbrains.kotlin.light.classes.symbol.modifierLists internal class SimpleModifiersBox(private val modifiers: Set) : ModifiersBox { constructor(vararg modifiers: String) : this(modifiers.toSet()) + override fun hasModifier(modifier: String): Boolean = modifier in modifiers }