[Analysis API] make KtDeclarationSymbol <: KtDeclarationSymbol

To simplify work with annotations
This commit is contained in:
Ilya Kirillov
2022-05-27 16:19:19 +02:00
committed by teamcity
parent f189fd1ff0
commit e25dee558f
6 changed files with 9 additions and 13 deletions
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.name.CallableId
public abstract class KtCallableSymbol : KtSymbolWithKind, KtAnnotatedSymbol, KtPossibleMemberSymbol, KtDeclarationSymbol {
public abstract class KtCallableSymbol : KtSymbolWithKind, KtPossibleMemberSymbol, KtDeclarationSymbol {
public abstract val callableIdIfNonLocal: CallableId?
public abstract val returnType: KtType
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.types.Variance
public sealed class KtClassifierSymbol : KtSymbol, KtAnnotatedSymbol, KtPossiblyNamedSymbol, KtDeclarationSymbol
public sealed class KtClassifierSymbol : KtSymbol, KtPossiblyNamedSymbol, KtDeclarationSymbol
public val KtClassifierSymbol.nameOrAnonymous: Name
get() = name ?: SpecialNames.ANONYMOUS
@@ -38,8 +38,8 @@ public sealed class KtClassLikeSymbol : KtClassifierSymbol(), KtSymbolWithKind,
public abstract class KtTypeAliasSymbol : KtClassLikeSymbol(),
KtSymbolWithVisibility,
KtNamedSymbol,
KtAnnotatedSymbol {
KtNamedSymbol {
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.TOP_LEVEL
/**
@@ -51,9 +51,7 @@ public abstract class KtTypeAliasSymbol : KtClassLikeSymbol(),
abstract override fun createPointer(): KtSymbolPointer<KtTypeAliasSymbol>
}
public sealed class KtClassOrObjectSymbol : KtClassLikeSymbol(),
KtAnnotatedSymbol,
KtSymbolWithMembers {
public sealed class KtClassOrObjectSymbol : KtClassLikeSymbol(), KtSymbolWithMembers {
public abstract val classKind: KtClassKind
public abstract val superTypes: List<KtType>
@@ -5,10 +5,11 @@
package org.jetbrains.kotlin.analysis.api.symbols
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithTypeParameters
/**
* Represents a symbol of declaration which can be directly expressed in source code.
* Eg, classes, type parameters or functions ar [KtDeclarationSymbol], but files and packages are not
*/
public sealed interface KtDeclarationSymbol : KtSymbol, KtSymbolWithTypeParameters
public sealed interface KtDeclarationSymbol : KtSymbol, KtSymbolWithTypeParameters, KtAnnotatedSymbol
@@ -45,8 +45,7 @@ public abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
KtNamedSymbol,
KtPossibleMemberSymbol,
KtSymbolWithModality,
KtSymbolWithVisibility,
KtAnnotatedSymbol {
KtSymbolWithVisibility {
public abstract val isSuspend: Boolean
public abstract val isOperator: Boolean
@@ -66,8 +65,8 @@ public abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
public abstract class KtConstructorSymbol : KtFunctionLikeSymbol(),
KtPossibleMemberSymbol,
KtAnnotatedSymbol,
KtSymbolWithVisibility {
public abstract val isPrimary: Boolean
public abstract val containingClassIdIfNonLocal: ClassId?
@@ -13,7 +13,6 @@ public sealed class KtPropertyAccessorSymbol : KtFunctionLikeSymbol(),
KtPossibleMemberSymbol,
KtSymbolWithModality,
KtSymbolWithVisibility,
KtAnnotatedSymbol,
KtSymbolWithKind {
final override val isExtension: Boolean get() = false
@@ -95,7 +95,6 @@ public sealed class KtPropertySymbol : KtVariableSymbol(),
KtPossibleMemberSymbol,
KtSymbolWithModality,
KtSymbolWithVisibility,
KtAnnotatedSymbol,
KtSymbolWithKind {
public abstract val hasGetter: Boolean