FIR IDE: split KtPropertySymbol into KtKotlinPropertySymbol and KtJavaSyntheticPropertySymbol

This commit is contained in:
Ilya Kirillov
2020-12-10 19:40:08 +01:00
parent 2201dd5198
commit 48b7150566
15 changed files with 173 additions and 35 deletions
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.*
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
sealed class KtVariableLikeSymbol : KtCallableSymbol(), KtTypedSymbol, KtNamedSymbol, KtSymbolWithKind {
abstract override fun createPointer(): KtSymbolPointer<KtVariableLikeSymbol>
@@ -39,24 +40,23 @@ abstract class KtJavaFieldSymbol :
abstract override fun createPointer(): KtSymbolPointer<KtJavaFieldSymbol>
}
abstract class KtPropertySymbol : KtVariableSymbol(),
sealed class KtPropertySymbol : KtVariableSymbol(),
KtPossibleExtensionSymbol,
KtSymbolWithModality<KtCommonSymbolModality>,
KtSymbolWithVisibility,
KtAnnotatedSymbol,
KtSymbolWithKind {
abstract val callableIdIfNonLocal: FqName?
abstract val hasGetter: Boolean
abstract val hasSetter: Boolean
abstract val getter: KtPropertyGetterSymbol?
abstract val setter: KtPropertySetterSymbol?
abstract val callableIdIfNonLocal: FqName?
abstract val hasBackingField: Boolean
abstract val isLateInit: Boolean
abstract val isConst: Boolean
abstract val isOverride: Boolean
abstract val initializer: KtConstantValue?
@@ -64,6 +64,23 @@ abstract class KtPropertySymbol : KtVariableSymbol(),
abstract override fun createPointer(): KtSymbolPointer<KtPropertySymbol>
}
abstract class KtKotlinPropertySymbol : KtPropertySymbol() {
abstract val isLateInit: Boolean
abstract val isConst: Boolean
}
abstract class KtSyntheticJavaPropertySymbol : KtPropertySymbol() {
final override val hasBackingField: Boolean get() = true
final override val hasGetter: Boolean get() = true
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
abstract override val getter: KtPropertyGetterSymbol
abstract val javaGetterName: Name
abstract val javaSetterName: Name?
}
abstract class KtLocalVariableSymbol : KtVariableSymbol(), KtSymbolWithKind {
abstract override fun createPointer(): KtSymbolPointer<KtLocalVariableSymbol>
}