[FIR] Start enum entries reworking
This commit is contained in:
committed by
Mikhail Glukhikh
parent
68d64f1b5c
commit
13132e69a3
+1
-9
@@ -10,7 +10,6 @@ import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl
|
||||
import org.jetbrains.kotlin.fir.deserialization.FirDeserializationContext
|
||||
@@ -212,11 +211,6 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
).firstOrNull()
|
||||
|
||||
this.calleeReference = when {
|
||||
entryClassSymbol != null && (entryClassSymbol as? FirClassSymbol)?.fir is FirEnumEntry -> {
|
||||
FirResolvedNamedReferenceImpl(
|
||||
null, name, entryClassSymbol
|
||||
)
|
||||
}
|
||||
entryCallableSymbol != null -> {
|
||||
FirResolvedNamedReferenceImpl(
|
||||
null, name, entryCallableSymbol
|
||||
@@ -340,9 +334,7 @@ class KotlinDeserializedJvmSymbolsProvider(
|
||||
kotlinScopeProvider,
|
||||
parentContext, this::findAndDeserializeClass
|
||||
)
|
||||
symbol.fir.declarations.filterIsInstance<FirEnumEntryImpl>().forEach {
|
||||
classesCache[it.symbol.classId] = it.symbol
|
||||
}
|
||||
|
||||
classesCache[classId] = symbol
|
||||
val annotations = mutableListOf<FirAnnotationCall>()
|
||||
kotlinJvmBinaryClass.loadClassAnnotations(object : KotlinJvmBinaryClass.AnnotationVisitor {
|
||||
|
||||
@@ -365,11 +365,11 @@ internal fun ConeKotlinType.lexicalCastFrom(session: FirSession, value: String):
|
||||
val firElement = lookupTag.toSymbol(session)?.fir
|
||||
if (firElement is FirRegularClass && firElement.classKind == ClassKind.ENUM_CLASS) {
|
||||
val name = Name.identifier(value)
|
||||
val firEnumEntry = firElement.declarations.filterIsInstance<FirEnumEntry>().find { it.name == name }
|
||||
val firEnumEntry = firElement.collectEnumEntries().find { it.callableId.callableName == name }
|
||||
|
||||
return if (firEnumEntry != null) FirQualifiedAccessExpressionImpl(null).apply {
|
||||
calleeReference = FirSimpleNamedReference(
|
||||
null, name, null // TODO: , firEnumEntry.symbol
|
||||
calleeReference = FirResolvedNamedReferenceImpl(
|
||||
null, name, firEnumEntry
|
||||
)
|
||||
} else if (firElement is FirJavaClass) {
|
||||
val firStaticProperty = firElement.declarations.filterIsInstance<FirJavaField>().find {
|
||||
|
||||
Reference in New Issue
Block a user