AA: use full rendering of backing field symbols
This commit is contained in:
committed by
Space Team
parent
1f05ce2e01
commit
156be26982
+2
@@ -11,6 +11,7 @@ import com.intellij.psi.search.ProjectScope
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtSymbolContainingDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.components.base.Fe10KtAnalysisSessionComponent
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KtFe10DescDefaultBackingFieldSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.getDescriptor
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
@@ -58,6 +59,7 @@ internal class KtFe10SymbolContainingDeclarationProvider(
|
||||
|
||||
return psiForModule?.getKtModule(analysisSession.analysisContext.resolveSession.project)
|
||||
?: symbol.getDescriptor()?.getFakeContainingKtModule()
|
||||
?: (symbol as? KtBackingFieldSymbol)?.owningProperty?.let { getContainingModule(it) }
|
||||
?: TODO(symbol::class.java.name)
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.annotations.KtFe10AnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.base.KtFe10Symbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10PsiDefaultBackingFieldSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
@@ -25,8 +26,8 @@ import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
internal class KtFe10DescDefaultBackingFieldSymbol(
|
||||
private val fieldDescriptor: FieldDescriptor?,
|
||||
override val owningProperty: KtKotlinPropertySymbol,
|
||||
val analysisContext: Fe10AnalysisContext
|
||||
) : KtBackingFieldSymbol() {
|
||||
override val analysisContext: Fe10AnalysisContext
|
||||
) : KtBackingFieldSymbol(), KtFe10Symbol {
|
||||
context(KtAnalysisSession) override fun createPointer(): KtSymbolPointer<KtBackingFieldSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtPropertySymbol>(owningProperty)
|
||||
?.let { KtFe10PsiDefaultBackingFieldSymbolPointer(it) }
|
||||
|
||||
+2
-1
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.KtFe10FileSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.KtFe10PackageSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.*
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.KtFe10PsiClassInitializerSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.*
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.KtFe10PsiDefaultPropertyGetterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.KtFe10PsiDefaultPropertySetterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.KtFe10PsiDefaultSetterParameterSymbol
|
||||
@@ -143,6 +143,7 @@ internal fun KtSymbol.getDescriptor(): DeclarationDescriptor? {
|
||||
is KtFe10FileSymbol -> null
|
||||
is KtFe10DescDefaultPropertySetterSymbol.DefaultKtValueParameterSymbol -> descriptor
|
||||
is KtFe10PsiDefaultPropertySetterSymbol.DefaultKtValueParameterSymbol -> descriptor
|
||||
is KtFe10DescDefaultBackingFieldSymbol, is KtFe10PsiDefaultBackingFieldSymbol -> null
|
||||
is KtFe10PsiClassInitializerSymbol -> null
|
||||
else -> unexpectedElementError("KtSymbol", this)
|
||||
}
|
||||
|
||||
+3
-3
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.annotations.KtFe10AnnotationsList
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.base.KtFe10Symbol
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10PsiDefaultBackingFieldSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.utils.cached
|
||||
@@ -23,7 +24,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.descriptors.FieldDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyGetterDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
@@ -31,8 +31,8 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
||||
internal class KtFe10PsiDefaultBackingFieldSymbol(
|
||||
private val propertyPsi: KtProperty,
|
||||
override val owningProperty: KtKotlinPropertySymbol,
|
||||
val analysisContext: Fe10AnalysisContext
|
||||
) : KtBackingFieldSymbol() {
|
||||
override val analysisContext: Fe10AnalysisContext
|
||||
) : KtBackingFieldSymbol(), KtFe10Symbol {
|
||||
val descriptor: FieldDescriptor? by cached {
|
||||
val bindingContext = analysisContext.analyze(propertyPsi, Fe10AnalysisFacade.AnalysisMode.PARTIAL)
|
||||
(bindingContext[BindingContext.VARIABLE, propertyPsi] as? PropertyDescriptor)?.backingField
|
||||
|
||||
Reference in New Issue
Block a user