diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightClassModifierList.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightClassModifierList.kt index e114c8db6f4..7f7e097a8ee 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightClassModifierList.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightClassModifierList.kt @@ -15,6 +15,4 @@ internal class SymbolLightClassModifierList>, annotationsComputer: (PsiModifierList) -> List, -) : SymbolLightModifierList(containingDeclaration, lazyModifiers, annotationsComputer) { - override fun hasModifierProperty(name: String): Boolean = name in lazyModifiers.value -} +) : SymbolLightModifierList(containingDeclaration, lazyModifiers, annotationsComputer) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightMemberModifierList.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightMemberModifierList.kt index 36b4a0921b3..06048f09112 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightMemberModifierList.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightMemberModifierList.kt @@ -25,7 +25,7 @@ internal class SymbolLightMemberModifierList>( // Pretend this method behaves like a `default` method name == PsiModifier.DEFAULT && isImplementationInInterface() -> true // TODO: FINAL && isPossiblyAffectedByAllOpen - else -> name in lazyModifiers.value + else -> super.hasModifierProperty(name) } private fun isImplementationInInterface(): Boolean { diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightModifierList.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightModifierList.kt index a7848208e9f..9cf2b35a07b 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightModifierList.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/modifierLists/SymbolLightModifierList.kt @@ -21,12 +21,11 @@ import org.jetbrains.kotlin.psi.KtModifierListOwner internal abstract class SymbolLightModifierList>( protected val owner: T, - protected val lazyModifiers: Lazy>, + private val lazyModifiers: Lazy>, annotationsComputer: (PsiModifierList) -> List, ) : KtLightElementBase(owner), PsiModifierList, KtLightElement { override val kotlinOrigin: KtModifierList? get() = owner.kotlinOrigin?.modifierList override fun getParent() = owner - override fun hasExplicitModifier(name: String) = hasModifierProperty(name) override fun setModifierProperty(name: String, value: Boolean) = cannotModify() override fun checkSetModifierProperty(name: String, value: Boolean) = throw IncorrectOperationException() override fun addAnnotation(qualifiedName: String): PsiAnnotation = cannotModify() @@ -36,6 +35,7 @@ internal abstract class SymbolLightModifierList get() = invalidAccess() + private val lazyAnnotations: Lazy> = lazyPub { annotationsComputer(this) } @@ -46,4 +46,7 @@ internal abstract class SymbolLightModifierList