[SLC] SymbolLightAbstractAnnotation: implement some common methods

^KT-56046
This commit is contained in:
Dmitrii Gridin
2023-01-24 14:10:47 +01:00
committed by Space Team
parent 4b955944ff
commit a2ef4d28c4
4 changed files with 10 additions and 25 deletions
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.light.classes.symbol.annotations
import com.intellij.psi.*
import com.intellij.psi.impl.PsiImplUtil
import org.jetbrains.kotlin.asJava.classes.cannotModify
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.asJava.elements.KtLightElement
@@ -48,6 +49,11 @@ internal abstract class SymbolLightAbstractAnnotation(parent: PsiElement) :
override fun <T : PsiAnnotationMemberValue?> setDeclaredAttributeValue(attributeName: String?, value: T?) = cannotModify()
override fun findAttributeValue(attributeName: String?): PsiAnnotationMemberValue? = PsiImplUtil.findAttributeValue(this, attributeName)
override fun findDeclaredAttributeValue(attributeName: String?): PsiAnnotationMemberValue? =
PsiImplUtil.findDeclaredAttributeValue(this, attributeName)
override fun accept(visitor: PsiElementVisitor) {
if (visitor is JavaElementVisitor) {
visitor.visitAnnotation(this)
@@ -5,8 +5,10 @@
package org.jetbrains.kotlin.light.classes.symbol.annotations
import com.intellij.psi.*
import com.intellij.psi.impl.PsiImplUtil
import com.intellij.psi.PsiAnnotation
import com.intellij.psi.PsiAnnotationParameterList
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiModifierList
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationApplication
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.light.classes.symbol.basicIsEquivalentTo
@@ -16,13 +18,6 @@ internal class SymbolLightAnnotationForAnnotationCall(
private val annotationCall: KtAnnotationApplication,
parent: PsiModifierList,
) : SymbolLightAbstractAnnotation(parent) {
override fun findAttributeValue(attributeName: String?): PsiAnnotationMemberValue? =
PsiImplUtil.findAttributeValue(this, attributeName)
override fun findDeclaredAttributeValue(attributeName: String?) =
PsiImplUtil.findDeclaredAttributeValue(this, attributeName)
private val _parameterList: PsiAnnotationParameterList by lazyPub {
SymbolLightLazyAnnotationParameterList(this, lazyOf(annotationCall.arguments))
}
@@ -5,10 +5,8 @@
package org.jetbrains.kotlin.light.classes.symbol.annotations
import com.intellij.psi.PsiAnnotationMemberValue
import com.intellij.psi.PsiAnnotationParameterList
import com.intellij.psi.PsiModifierList
import com.intellij.psi.impl.PsiImplUtil
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationApplication
import org.jetbrains.kotlin.analysis.api.annotations.annotations
@@ -81,12 +79,6 @@ internal class SymbolLightLazyAnnotation private constructor(
override fun getParameterList(): PsiAnnotationParameterList = _parameterList
override fun findAttributeValue(attributeName: String?): PsiAnnotationMemberValue? =
PsiImplUtil.findAttributeValue(this, attributeName)
override fun findDeclaredAttributeValue(attributeName: String?) =
PsiImplUtil.findDeclaredAttributeValue(this, attributeName)
override fun equals(other: Any?): Boolean = this === other ||
other is SymbolLightLazyAnnotation &&
other.classId == classId &&
@@ -5,10 +5,8 @@
package org.jetbrains.kotlin.light.classes.symbol.annotations
import com.intellij.psi.PsiAnnotationMemberValue
import com.intellij.psi.PsiAnnotationParameterList
import com.intellij.psi.PsiElement
import com.intellij.psi.impl.PsiImplUtil
import org.jetbrains.kotlin.analysis.api.annotations.KtNamedAnnotationValue
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.psi.KtCallElement
@@ -30,12 +28,6 @@ internal class SymbolLightSimpleAnnotation(
override fun hashCode(): Int = fqName.hashCode()
override fun findAttributeValue(attributeName: String?): PsiAnnotationMemberValue? =
PsiImplUtil.findAttributeValue(this, attributeName)
override fun findDeclaredAttributeValue(attributeName: String?) =
PsiImplUtil.findDeclaredAttributeValue(this, attributeName)
private val _parameterList: PsiAnnotationParameterList by lazyPub {
SymbolLightLazyAnnotationParameterList(this, lazyOf(arguments))
}