[light classes] create enum references as PsiReferenceExpressions

to better mimic java psi,
see e.g. `PsiJvmConversionHelper#getAnnotationAttributeValue(PsiAnnotationMemberValue)`
diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationValues.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationValues.kt
index d5b20dc..2509f3b 100644
--- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationValues.kt
+++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/SymbolAnnotationValues.kt
@@ -8,6 +8,7 @@
 import com.intellij.openapi.util.Key
 import com.intellij.psi.*
 import com.intellij.psi.impl.light.LightTypeElement
+import org.jetbrains.kotlin.asJava.classes.cannotModify
 import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
 import org.jetbrains.kotlin.light.classes.symbol.toArrayIfNotEmptyOrDefault
 import org.jetbrains.kotlin.psi.KtElement
@@ -80,9 +81,9 @@
 internal class SymbolPsiReference(
     override val kotlinOrigin: KtElement?,
     lightParent: PsiElement,
-    private val psiReference: PsiJavaCodeReferenceElement,
+    private val psiReference: PsiReferenceExpression,
 ) : SymbolPsiAnnotationMemberValue(kotlinOrigin, lightParent),
-    PsiJavaCodeReferenceElement, PsiJavaReference by psiReference {
+    PsiReferenceExpression, PsiJavaReference by psiReference {
     override fun getText(): String = psiReference.text
 
     override fun getReferenceNameElement(): PsiElement? = psiReference.referenceNameElement
@@ -94,6 +95,15 @@
     override fun getReferenceName(): String? = psiReference.referenceName
     override fun <T> getCopyableUserData(key: Key<T>): T? = null
     override fun <T> putCopyableUserData(key: Key<T>, value: T?) {}
+    override fun getQualifierExpression(): PsiExpression? = psiReference.qualifierExpression
+    override fun bindToElementViaStaticImport(qualifierClass: PsiClass): PsiElement =
+        cannotModify()
+
+    override fun setQualifierExpression(newQualifier: PsiExpression?) {
+        cannotModify()
+    }
+
+    override fun getType(): PsiType? = psiReference.type
 }
 
 internal class SymbolPsiLiteral(
diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt
index e16ecd9..cdf6865 100644
--- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt
+++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt
@@ -200,7 +200,7 @@
 private fun KtEnumEntryAnnotationValue.asPsiReferenceExpression(parent: PsiElement): SymbolPsiReference? {
     val fqName = this.callableId?.asSingleFqName()?.asString() ?: return null
     val psiReference = parent.project.withElementFactorySafe {
-        createReferenceFromText(fqName, parent)
+        createExpressionFromText(fqName, parent) as PsiReferenceExpression
     } ?: return null
 
     return SymbolPsiReference(sourcePsi, parent, psiReference)