FIR LC: add static modifier to non-inner nested interfaces

This commit is contained in:
Jinseong Jeon
2021-12-06 13:41:34 -08:00
committed by Ilya Kirillov
parent 575c0fabb6
commit b9a56f4888
6 changed files with 14 additions and 18 deletions
@@ -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)
}
}
@@ -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
@@ -36,7 +36,7 @@ internal abstract class FirLightClassForClassOrObjectSymbol(
) : FirLightClassBase(manager),
StubBasedPsiElement<KotlinClassOrObjectStub<out KtClassOrObject>> {
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()
@@ -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))
@@ -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()
}
}
@@ -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,