FIR IDE: simplify containing declaration provider
This commit is contained in:
+1
-1
@@ -47,7 +47,7 @@ object DebugSymbolRenderer {
|
||||
is KtSymbol -> {
|
||||
val symbolTag = when (value) {
|
||||
is KtClassLikeSymbol -> renderValue(value.classIdIfNonLocal ?: "<local>/${value.name}")
|
||||
is KtFunctionSymbol -> renderValue(value.fqNameIfNonLocal ?: "<local>/${value.name}")
|
||||
is KtFunctionSymbol -> renderValue(value.callableIdIfNonLocal ?: "<local>/${value.name}")
|
||||
is KtConstructorSymbol -> "<constructor>"
|
||||
is KtNamedSymbol -> renderValue(value.name)
|
||||
else -> TODO(value::class.toString())
|
||||
|
||||
-3
@@ -22,9 +22,6 @@ abstract class KtTypeAliasSymbol : KtClassLikeSymbol() {
|
||||
abstract override val classIdIfNonLocal: ClassId
|
||||
|
||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.TOP_LEVEL
|
||||
final override val containingNonLocalClassIdIfMember: ClassId? get() = null
|
||||
|
||||
abstract override val containingPackageFqNameIfTopLevel: FqName
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtTypeAliasSymbol>
|
||||
}
|
||||
|
||||
+4
-6
@@ -19,8 +19,6 @@ sealed class KtFunctionLikeSymbol : KtCallableSymbol(), KtTypedSymbol, KtSymbolW
|
||||
|
||||
abstract class KtAnonymousFunctionSymbol : KtFunctionLikeSymbol() {
|
||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.LOCAL
|
||||
final override val containingNonLocalClassIdIfMember: ClassId? get() = null
|
||||
final override val containingPackageFqNameIfTopLevel: FqName? get() = null
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtAnonymousFunctionSymbol>
|
||||
}
|
||||
@@ -30,7 +28,7 @@ abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
|
||||
KtPossibleExtensionSymbol,
|
||||
KtSymbolWithTypeParameters,
|
||||
KtSymbolWithModality<KtCommonSymbolModality> {
|
||||
abstract val fqNameIfNonLocal: FqName?
|
||||
abstract val callableIdIfNonLocal: FqName?
|
||||
|
||||
abstract val isSuspend: Boolean
|
||||
abstract val isOperator: Boolean
|
||||
@@ -42,11 +40,11 @@ abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
|
||||
|
||||
abstract class KtConstructorSymbol : KtFunctionLikeSymbol() {
|
||||
abstract val isPrimary: Boolean
|
||||
abstract val containingClassIdIfNonLocal: ClassId?
|
||||
|
||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
|
||||
|
||||
abstract override val valueParameters: List<KtConstructorParameterSymbol>
|
||||
|
||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
|
||||
final override val containingPackageFqNameIfTopLevel: FqName? get() = null
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtConstructorSymbol>
|
||||
}
|
||||
+5
-8
@@ -17,14 +17,12 @@ abstract class KtVariableLikeSymbol : KtCallableSymbol(), KtTypedSymbol, KtNamed
|
||||
|
||||
abstract class KtEnumEntrySymbol : KtVariableLikeSymbol(), KtSymbolWithKind {
|
||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
|
||||
final override val containingPackageFqNameIfTopLevel: FqName? get() = null
|
||||
abstract val containingEnumClassIdIfNonLocal: ClassId?
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtEnumEntrySymbol>
|
||||
}
|
||||
|
||||
abstract class KtParameterSymbol : KtVariableLikeSymbol() {
|
||||
final override val containingPackageFqNameIfTopLevel: FqName? get() = null
|
||||
|
||||
abstract val hasDefaultValue: Boolean
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtParameterSymbol>
|
||||
@@ -37,7 +35,8 @@ abstract class KtVariableSymbol : KtVariableLikeSymbol() {
|
||||
|
||||
abstract class KtJavaFieldSymbol : KtVariableSymbol(), KtSymbolWithModality<KtCommonSymbolModality>, KtSymbolWithKind {
|
||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
|
||||
final override val containingPackageFqNameIfTopLevel: FqName? get() = null
|
||||
|
||||
abstract val callableIdIfNonLocal: FqName?
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtJavaFieldSymbol>
|
||||
}
|
||||
@@ -48,13 +47,12 @@ abstract class KtPropertySymbol : KtVariableSymbol(),
|
||||
KtSymbolWithModality<KtCommonSymbolModality>,
|
||||
KtSymbolWithKind {
|
||||
|
||||
abstract val callableIdIfNonLocal: FqName?
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtPropertySymbol>
|
||||
}
|
||||
|
||||
abstract class KtLocalVariableSymbol : KtVariableSymbol(), KtSymbolWithKind {
|
||||
final override val containingPackageFqNameIfTopLevel: FqName? get() = null
|
||||
final override val containingNonLocalClassIdIfMember: ClassId? get() = null
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtLocalVariableSymbol>
|
||||
}
|
||||
|
||||
@@ -62,7 +60,6 @@ abstract class KtFunctionParameterSymbol : KtParameterSymbol(), KtSymbolWithKind
|
||||
abstract val isVararg: Boolean
|
||||
|
||||
override val symbolKind: KtSymbolKind get() = KtSymbolKind.NON_PROPERTY_PARAMETER
|
||||
override val containingNonLocalClassIdIfMember: ClassId? get() = null
|
||||
|
||||
abstract override fun createPointer(): KtSymbolPointer<KtFunctionParameterSymbol>
|
||||
}
|
||||
|
||||
+1
-14
@@ -9,25 +9,12 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
/**
|
||||
* [KtSymbol] which can possibly be class member, top level or local declaration
|
||||
* Contracts:
|
||||
* [containingNonLocalClassIdIfMember] != null iff [symbolKind] == [KtSymbolKind.MEMBER]
|
||||
* [containingPackageFqNameIfTopLevel] != null iff [symbolKind] == [KtSymbolKind.TOP_LEVEL]
|
||||
*/
|
||||
|
||||
interface KtSymbolWithKind : KtSymbol {
|
||||
val symbolKind: KtSymbolKind
|
||||
val containingNonLocalClassIdIfMember: ClassId?
|
||||
val containingPackageFqNameIfTopLevel: FqName?
|
||||
}
|
||||
|
||||
enum class KtSymbolKind {
|
||||
TOP_LEVEL, MEMBER, LOCAL, NON_PROPERTY_PARAMETER
|
||||
}
|
||||
|
||||
val KtSymbol.containingClassIdIfMember: ClassId?
|
||||
get() = (this as? KtSymbolWithKind)?.containingClassIdIfMember
|
||||
|
||||
val KtSymbol.containingPackageFqNameIfTopLevel: FqName?
|
||||
get() = (this as? KtSymbolWithKind)?.containingPackageFqNameIfTopLevel
|
||||
|
||||
|
||||
Reference in New Issue
Block a user