SLC: populate fields from companion in annotation
This commit is contained in:
committed by
Ilya Kirillov
parent
f02fd2e04e
commit
e2901c81ac
-9
@@ -16,7 +16,6 @@ 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.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
|
|
||||||
context(KtAnalysisSession)
|
context(KtAnalysisSession)
|
||||||
@@ -31,14 +30,6 @@ internal class SymbolLightAnnotationClass(
|
|||||||
|
|
||||||
override fun isAnnotationType(): Boolean = true
|
override fun isAnnotationType(): Boolean = true
|
||||||
|
|
||||||
private val _ownFields: List<KtLightField> by lazyPub {
|
|
||||||
mutableListOf<KtLightField>().also {
|
|
||||||
addCompanionObjectFieldIfNeeded(it)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getOwnFields(): List<KtLightField> = _ownFields
|
|
||||||
|
|
||||||
private val _ownMethods: List<KtLightMethod> by lazyPub {
|
private val _ownMethods: List<KtLightMethod> by lazyPub {
|
||||||
val result = mutableListOf<KtLightMethod>()
|
val result = mutableListOf<KtLightMethod>()
|
||||||
val visibleDeclarations = classOrObjectSymbol.getDeclaredMemberScope().getCallableSymbols()
|
val visibleDeclarations = classOrObjectSymbol.getDeclaredMemberScope().getCallableSymbols()
|
||||||
|
|||||||
-10
@@ -15,7 +15,6 @@ 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.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
|
|
||||||
context(KtAnalysisSession)
|
context(KtAnalysisSession)
|
||||||
@@ -28,15 +27,6 @@ internal open class SymbolLightInterfaceClass(
|
|||||||
require(classOrObjectSymbol.classKind == KtClassKind.INTERFACE)
|
require(classOrObjectSymbol.classKind == KtClassKind.INTERFACE)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _ownFields: List<KtLightField> by lazyPub {
|
|
||||||
mutableListOf<KtLightField>().also {
|
|
||||||
addCompanionObjectFieldIfNeeded(it)
|
|
||||||
addFieldsFromCompanionIfNeeded(it)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getOwnFields(): List<KtLightField> = _ownFields
|
|
||||||
|
|
||||||
private val _ownMethods: List<KtLightMethod> by lazyPub {
|
private val _ownMethods: List<KtLightMethod> by lazyPub {
|
||||||
val result = mutableListOf<KtLightMethod>()
|
val result = mutableListOf<KtLightMethod>()
|
||||||
|
|
||||||
|
|||||||
+10
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.analysis.api.lifetime.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.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.NullabilityType
|
import org.jetbrains.kotlin.light.classes.symbol.NullabilityType
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
|
||||||
@@ -57,6 +58,15 @@ internal abstract class SymbolLightInterfaceOrAnnotationClass(
|
|||||||
|
|
||||||
override fun getModifierList(): PsiModifierList? = _modifierList
|
override fun getModifierList(): PsiModifierList? = _modifierList
|
||||||
|
|
||||||
|
private val _ownFields: List<KtLightField> by lazyPub {
|
||||||
|
mutableListOf<KtLightField>().also {
|
||||||
|
addCompanionObjectFieldIfNeeded(it)
|
||||||
|
addFieldsFromCompanionIfNeeded(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getOwnFields(): List<KtLightField> = _ownFields
|
||||||
|
|
||||||
override fun getImplementsList(): PsiReferenceList? = null
|
override fun getImplementsList(): PsiReferenceList? = null
|
||||||
|
|
||||||
override fun isInterface(): Boolean = true
|
override fun isInterface(): Boolean = true
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ public abstract @interface Anno6 /* Anno6*/ {
|
|||||||
|
|
||||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||||
public abstract @interface AnnoWithCompanion /* AnnoWithCompanion*/ {
|
public abstract @interface AnnoWithCompanion /* AnnoWithCompanion*/ {
|
||||||
|
@kotlin.jvm.JvmField()
|
||||||
|
public static final int x = 42 /* initializer type: int */;
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final AnnoWithCompanion.Companion Companion;
|
public static final AnnoWithCompanion.Companion Companion;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user