From e25dee558f4ea39badeac427469880d775e60a64 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 27 May 2022 16:19:19 +0200 Subject: [PATCH] [Analysis API] make KtDeclarationSymbol <: KtDeclarationSymbol To simplify work with annotations --- .../kotlin/analysis/api/symbols/KtCallableSymbol.kt | 2 +- .../kotlin/analysis/api/symbols/KtClassLikeSymbol.kt | 10 ++++------ .../kotlin/analysis/api/symbols/KtDeclarationSymbol.kt | 3 ++- .../analysis/api/symbols/KtFunctionLikeSymbol.kt | 5 ++--- .../analysis/api/symbols/KtPropertyAccessorSymbol.kt | 1 - .../analysis/api/symbols/KtVariableLikeSymbol.kt | 1 - 6 files changed, 9 insertions(+), 13 deletions(-) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtCallableSymbol.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtCallableSymbol.kt index 12807504b9c..c7c1b3791a0 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtCallableSymbol.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtCallableSymbol.kt @@ -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 diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtClassLikeSymbol.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtClassLikeSymbol.kt index 730a17c966e..da7586d35ed 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtClassLikeSymbol.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtClassLikeSymbol.kt @@ -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 } -public sealed class KtClassOrObjectSymbol : KtClassLikeSymbol(), - KtAnnotatedSymbol, - KtSymbolWithMembers { +public sealed class KtClassOrObjectSymbol : KtClassLikeSymbol(), KtSymbolWithMembers { public abstract val classKind: KtClassKind public abstract val superTypes: List diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtDeclarationSymbol.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtDeclarationSymbol.kt index e7cb7cd1ba2..7e2282b360c 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtDeclarationSymbol.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtDeclarationSymbol.kt @@ -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 \ No newline at end of file +public sealed interface KtDeclarationSymbol : KtSymbol, KtSymbolWithTypeParameters, KtAnnotatedSymbol \ No newline at end of file diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtFunctionLikeSymbol.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtFunctionLikeSymbol.kt index f75f8e66fa9..610ae98b383 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtFunctionLikeSymbol.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtFunctionLikeSymbol.kt @@ -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? diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtPropertyAccessorSymbol.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtPropertyAccessorSymbol.kt index 3c88d9935b9..0453ff2b701 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtPropertyAccessorSymbol.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtPropertyAccessorSymbol.kt @@ -13,7 +13,6 @@ public sealed class KtPropertyAccessorSymbol : KtFunctionLikeSymbol(), KtPossibleMemberSymbol, KtSymbolWithModality, KtSymbolWithVisibility, - KtAnnotatedSymbol, KtSymbolWithKind { final override val isExtension: Boolean get() = false diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtVariableLikeSymbol.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtVariableLikeSymbol.kt index 31f0acb1e41..b56e519c2c0 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtVariableLikeSymbol.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtVariableLikeSymbol.kt @@ -95,7 +95,6 @@ public sealed class KtPropertySymbol : KtVariableSymbol(), KtPossibleMemberSymbol, KtSymbolWithModality, KtSymbolWithVisibility, - KtAnnotatedSymbol, KtSymbolWithKind { public abstract val hasGetter: Boolean