FIR LC: add static modifier to non-inner nested interfaces
This commit is contained in:
committed by
Ilya Kirillov
parent
575c0fabb6
commit
b9a56f4888
+3
-4
@@ -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.
|
* 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.PsiManager
|
||||||
import com.intellij.psi.PsiMethod
|
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.isValid
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis
|
import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.FirLightClassForClassOrObjectSymbol
|
import org.jetbrains.kotlin.light.classes.symbol.classes.createMethods
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.analyzeWithSymbolAsContext
|
|
||||||
|
|
||||||
internal class FirLightAnnotationClassSymbol(
|
internal class FirLightAnnotationClassSymbol(
|
||||||
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
@@ -64,4 +63,4 @@ internal class FirLightAnnotationClassSymbol(
|
|||||||
override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid()
|
override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid()
|
||||||
|
|
||||||
override fun copy(): FirLightClassForClassOrObjectSymbol = FirLightAnnotationClassSymbol(classOrObjectSymbol, manager)
|
override fun copy(): FirLightClassForClassOrObjectSymbol = FirLightAnnotationClassSymbol(classOrObjectSymbol, manager)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -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.
|
* 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.*
|
||||||
import com.intellij.psi.impl.InheritanceImplUtil
|
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.isValid
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtAnonymousObjectSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtAnonymousObjectSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySymbol
|
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.load.java.structure.LightClassOriginKind
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.debugText.getDebugText
|
import org.jetbrains.kotlin.psi.debugText.getDebugText
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ internal abstract class FirLightClassForClassOrObjectSymbol(
|
|||||||
) : FirLightClassBase(manager),
|
) : FirLightClassBase(manager),
|
||||||
StubBasedPsiElement<KotlinClassOrObjectStub<out KtClassOrObject>> {
|
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 {
|
private val _isDeprecated: Boolean by lazyPub {
|
||||||
classOrObjectSymbol.hasDeprecatedAnnotation()
|
classOrObjectSymbol.hasDeprecatedAnnotation()
|
||||||
|
|||||||
-2
@@ -58,8 +58,6 @@ internal open class FirLightClassForSymbol(
|
|||||||
return visibility
|
return visibility
|
||||||
}
|
}
|
||||||
|
|
||||||
private val isTopLevel: Boolean = classOrObjectSymbol.symbolKind == KtSymbolKind.TOP_LEVEL
|
|
||||||
|
|
||||||
private val _modifierList: PsiModifierList? by lazyPub {
|
private val _modifierList: PsiModifierList? by lazyPub {
|
||||||
|
|
||||||
val modifiers = mutableSetOf(classOrObjectSymbol.toPsiVisibilityForClass(isTopLevel))
|
val modifiers = mutableSetOf(classOrObjectSymbol.toPsiVisibilityForClass(isTopLevel))
|
||||||
|
|||||||
+4
-4
@@ -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.
|
* 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.PsiManager
|
||||||
import com.intellij.psi.PsiMethod
|
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.KtFunctionSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis
|
import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.FirLightClassForClassOrObjectSymbol
|
import org.jetbrains.kotlin.light.classes.symbol.classes.createInheritanceList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.analyzeWithSymbolAsContext
|
import org.jetbrains.kotlin.light.classes.symbol.classes.createMethods
|
||||||
|
|
||||||
internal class FirLightInterfaceClassSymbol(
|
internal class FirLightInterfaceClassSymbol(
|
||||||
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
@@ -69,4 +69,4 @@ internal class FirLightInterfaceClassSymbol(
|
|||||||
override fun getExtendsList(): PsiReferenceList? = _extendsList
|
override fun getExtendsList(): PsiReferenceList? = _extendsList
|
||||||
|
|
||||||
override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid()
|
override fun isValid(): Boolean = super.isValid() && classOrObjectSymbol.isValid()
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-5
@@ -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.
|
* 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.*
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.analysis.api.isValid
|
import org.jetbrains.kotlin.analysis.api.isValid
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtClassKind
|
import org.jetbrains.kotlin.analysis.api.symbols.KtClassKind
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
|
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(
|
internal abstract class FirLightInterfaceOrAnnotationClassSymbol(
|
||||||
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
@@ -28,9 +26,10 @@ internal abstract class FirLightInterfaceOrAnnotationClassSymbol(
|
|||||||
|
|
||||||
private val _modifierList: PsiModifierList? by lazyPub {
|
private val _modifierList: PsiModifierList? by lazyPub {
|
||||||
|
|
||||||
val isTopLevel: Boolean = classOrObjectSymbol.symbolKind == KtSymbolKind.TOP_LEVEL
|
|
||||||
|
|
||||||
val modifiers = mutableSetOf(classOrObjectSymbol.toPsiVisibilityForClass(isTopLevel), PsiModifier.ABSTRACT)
|
val modifiers = mutableSetOf(classOrObjectSymbol.toPsiVisibilityForClass(isTopLevel), PsiModifier.ABSTRACT)
|
||||||
|
if (!isTopLevel && !classOrObjectSymbol.isInner) {
|
||||||
|
modifiers.add(PsiModifier.STATIC)
|
||||||
|
}
|
||||||
|
|
||||||
val annotations = classOrObjectSymbol.computeAnnotations(
|
val annotations = classOrObjectSymbol.computeAnnotations(
|
||||||
parent = this@FirLightInterfaceOrAnnotationClassSymbol,
|
parent = this@FirLightInterfaceOrAnnotationClassSymbol,
|
||||||
|
|||||||
Reference in New Issue
Block a user