[AA LC] Implement default values for methods of annotations
This commit is contained in:
+17
@@ -7,6 +7,9 @@ package org.jetbrains.kotlin.light.classes.symbol.methods
|
||||
|
||||
import com.intellij.psi.*
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.KtConstantInitializerValue
|
||||
import org.jetbrains.kotlin.analysis.api.KtConstantValueForAnnotation
|
||||
import org.jetbrains.kotlin.analysis.api.KtNonConstantInitializerValue
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.isValid
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode
|
||||
@@ -193,4 +196,18 @@ internal class SymbolLightAccessorMethod(
|
||||
override fun isValid(): Boolean = super.isValid() && propertyAccessorSymbol.isValid()
|
||||
|
||||
override fun isOverride(): Boolean = propertyAccessorSymbol.isOverride
|
||||
|
||||
private val _defaultValue: PsiAnnotationMemberValue? by lazyPub {
|
||||
if (!containingClass.isAnnotationType) return@lazyPub null
|
||||
when (val initializer = containingPropertySymbol.initializer) {
|
||||
is KtConstantInitializerValue -> initializer.constant.createPsiLiteral(this)
|
||||
is KtConstantValueForAnnotation -> initializer.annotationValue.toAnnotationMemberValue(this)
|
||||
is KtNonConstantInitializerValue -> null
|
||||
null -> null
|
||||
}
|
||||
}
|
||||
|
||||
override fun getDefaultValue(): PsiAnnotationMemberValue? {
|
||||
return _defaultValue
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@ internal abstract class SymbolLightMethodBase(
|
||||
override fun getThrowsList(): PsiReferenceList =
|
||||
KotlinLightReferenceListBuilder(manager, language, PsiReferenceList.Role.THROWS_LIST) //TODO()
|
||||
|
||||
override fun getDefaultValue(): PsiAnnotationMemberValue? = null //TODO()
|
||||
override fun getDefaultValue(): PsiAnnotationMemberValue? = null
|
||||
|
||||
protected fun <T> T.computeJvmMethodName(
|
||||
defaultName: String,
|
||||
|
||||
Reference in New Issue
Block a user