diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightAnnotationClassSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightAnnotationClassSymbol.kt index 4bd5fa46197..61886804420 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightAnnotationClassSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightAnnotationClassSymbol.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.light.classes.symbol.classes +package org.jetbrains.kotlin.light.classes.symbol import com.intellij.psi.PsiManager import com.intellij.psi.PsiMethod @@ -14,8 +14,7 @@ import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.analysis.api.isValid import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis -import org.jetbrains.kotlin.light.classes.symbol.FirLightClassForClassOrObjectSymbol -import org.jetbrains.kotlin.light.classes.symbol.analyzeWithSymbolAsContext +import org.jetbrains.kotlin.light.classes.symbol.classes.createMethods internal class FirLightAnnotationClassSymbol( private val classOrObjectSymbol: KtNamedClassOrObjectSymbol, @@ -64,4 +63,4 @@ internal class FirLightAnnotationClassSymbol( override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid() override fun copy(): FirLightClassForClassOrObjectSymbol = FirLightAnnotationClassSymbol(classOrObjectSymbol, manager) -} \ No newline at end of file +} diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightAnonymousClassForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightAnonymousClassForSymbol.kt index 3a370776c6c..7704ce23f08 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightAnonymousClassForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightAnonymousClassForSymbol.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.light.classes.symbol.classes +package org.jetbrains.kotlin.light.classes.symbol import com.intellij.psi.* import com.intellij.psi.impl.InheritanceImplUtil @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.analysis.api.isValid import org.jetbrains.kotlin.analysis.api.symbols.KtAnonymousObjectSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySymbol -import org.jetbrains.kotlin.light.classes.symbol.* +import org.jetbrains.kotlin.light.classes.symbol.classes.* import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.debugText.getDebugText diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForClassOrObjectSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForClassOrObjectSymbol.kt index c64b4f97fef..ab001e9edac 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForClassOrObjectSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForClassOrObjectSymbol.kt @@ -36,7 +36,7 @@ internal abstract class FirLightClassForClassOrObjectSymbol( ) : FirLightClassBase(manager), StubBasedPsiElement> { - private val isTopLevel: Boolean = classOrObjectSymbol.symbolKind == KtSymbolKind.TOP_LEVEL + protected val isTopLevel: Boolean = classOrObjectSymbol.symbolKind == KtSymbolKind.TOP_LEVEL private val _isDeprecated: Boolean by lazyPub { classOrObjectSymbol.hasDeprecatedAnnotation() diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForSymbol.kt index 3d8b7127352..9a2cc515d3b 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForSymbol.kt @@ -58,8 +58,6 @@ internal open class FirLightClassForSymbol( return visibility } - private val isTopLevel: Boolean = classOrObjectSymbol.symbolKind == KtSymbolKind.TOP_LEVEL - private val _modifierList: PsiModifierList? by lazyPub { val modifiers = mutableSetOf(classOrObjectSymbol.toPsiVisibilityForClass(isTopLevel)) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightInterfaceClassSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightInterfaceClassSymbol.kt index 84aa55fe51e..52240b032e4 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightInterfaceClassSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightInterfaceClassSymbol.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.light.classes.symbol.classes +package org.jetbrains.kotlin.light.classes.symbol import com.intellij.psi.PsiManager import com.intellij.psi.PsiMethod @@ -16,8 +16,8 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtClassKind import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis -import org.jetbrains.kotlin.light.classes.symbol.FirLightClassForClassOrObjectSymbol -import org.jetbrains.kotlin.light.classes.symbol.analyzeWithSymbolAsContext +import org.jetbrains.kotlin.light.classes.symbol.classes.createInheritanceList +import org.jetbrains.kotlin.light.classes.symbol.classes.createMethods internal class FirLightInterfaceClassSymbol( private val classOrObjectSymbol: KtNamedClassOrObjectSymbol, @@ -69,4 +69,4 @@ internal class FirLightInterfaceClassSymbol( override fun getExtendsList(): PsiReferenceList? = _extendsList override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid() -} \ No newline at end of file +} diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightInterfaceOrAnnotationClassSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightInterfaceOrAnnotationClassSymbol.kt index 6f7d35f1b4e..914d9702294 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightInterfaceOrAnnotationClassSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightInterfaceOrAnnotationClassSymbol.kt @@ -3,15 +3,13 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.light.classes.symbol.classes +package org.jetbrains.kotlin.light.classes.symbol import com.intellij.psi.* import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.analysis.api.isValid import org.jetbrains.kotlin.analysis.api.symbols.KtClassKind import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol -import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind -import org.jetbrains.kotlin.light.classes.symbol.* internal abstract class FirLightInterfaceOrAnnotationClassSymbol( private val classOrObjectSymbol: KtNamedClassOrObjectSymbol, @@ -28,9 +26,10 @@ internal abstract class FirLightInterfaceOrAnnotationClassSymbol( private val _modifierList: PsiModifierList? by lazyPub { - val isTopLevel: Boolean = classOrObjectSymbol.symbolKind == KtSymbolKind.TOP_LEVEL - val modifiers = mutableSetOf(classOrObjectSymbol.toPsiVisibilityForClass(isTopLevel), PsiModifier.ABSTRACT) + if (!isTopLevel && !classOrObjectSymbol.isInner) { + modifiers.add(PsiModifier.STATIC) + } val annotations = classOrObjectSymbol.computeAnnotations( parent = this@FirLightInterfaceOrAnnotationClassSymbol,