[analysis api] remove KtClassKind.ENUM_ENTRY as enum entry is not a classifier

This commit is contained in:
Ilya Kirillov
2022-06-07 14:58:56 +02:00
parent a16a01bf37
commit a10e55cd6a
5 changed files with 36 additions and 28 deletions
@@ -9,6 +9,8 @@ import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.*
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10DescNamedClassOrObjectSymbolSymbol
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
import org.jetbrains.kotlin.analysis.api.impl.base.symbols.toKtClassKind
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.analysis.api.symbols.KtClassKind
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
@@ -16,9 +18,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.DescriptorUtils
@@ -55,20 +55,10 @@ internal class KtFe10DescNamedClassOrObjectSymbol(
override val classKind: KtClassKind
get() = withValidityAssertion {
if (descriptor.isCompanionObject) {
return KtClassKind.COMPANION_OBJECT
} else if (DescriptorUtils.isAnonymousObject(descriptor)) {
if (DescriptorUtils.isAnonymousObject(descriptor)) {
error("Should be an anonymous object")
}
return when (descriptor.kind) {
ClassKind.CLASS -> KtClassKind.CLASS
ClassKind.INTERFACE -> KtClassKind.INTERFACE
ClassKind.ENUM_CLASS -> KtClassKind.ENUM_CLASS
ClassKind.ENUM_ENTRY -> KtClassKind.ENUM_ENTRY
ClassKind.ANNOTATION_CLASS -> KtClassKind.ANNOTATION_CLASS
ClassKind.OBJECT -> KtClassKind.OBJECT
}
descriptor.kind.toKtClassKind(isCompanionObject = descriptor.isCompanionObject)
}
override val superTypes: List<KtType>
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.ktMod
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.ktSymbolKind
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.ktVisibility
import org.jetbrains.kotlin.analysis.api.descriptors.utils.cached
import org.jetbrains.kotlin.analysis.api.impl.base.symbols.invalidClassKindError
import org.jetbrains.kotlin.analysis.api.symbols.KtClassKind
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
@@ -26,10 +27,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name
@@ -72,7 +70,7 @@ internal class KtFe10PsiNamedClassOrObjectSymbol(
override val classKind: KtClassKind
get() = withValidityAssertion {
when (psi) {
is KtEnumEntry -> KtClassKind.ENUM_ENTRY
is KtEnumEntry -> invalidClassKindError(ClassKind.ENUM_ENTRY)
is KtObjectDeclaration -> when {
psi.isCompanion() -> KtClassKind.COMPANION_OBJECT
psi.isObjectLiteral() -> KtClassKind.ANONYMOUS_OBJECT