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.markers.isPrivateOrPrivateToThis
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
|
||||
context(KtAnalysisSession)
|
||||
@@ -31,14 +30,6 @@ internal class SymbolLightAnnotationClass(
|
||||
|
||||
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 {
|
||||
val result = mutableListOf<KtLightMethod>()
|
||||
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.markers.isPrivateOrPrivateToThis
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
|
||||
context(KtAnalysisSession)
|
||||
@@ -28,15 +27,6 @@ internal open class SymbolLightInterfaceClass(
|
||||
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 {
|
||||
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.KtNamedClassOrObjectSymbol
|
||||
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.annotations.computeAnnotations
|
||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
|
||||
@@ -57,6 +58,15 @@ internal abstract class SymbolLightInterfaceOrAnnotationClass(
|
||||
|
||||
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 isInterface(): Boolean = true
|
||||
|
||||
@@ -25,6 +25,9 @@ public abstract @interface Anno6 /* Anno6*/ {
|
||||
|
||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||
public abstract @interface AnnoWithCompanion /* AnnoWithCompanion*/ {
|
||||
@kotlin.jvm.JvmField()
|
||||
public static final int x = 42 /* initializer type: int */;
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static final AnnoWithCompanion.Companion Companion;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user