From 592591acad9a4b34c34c7ddc94281e11a9f3b20e Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Fri, 11 Nov 2022 13:10:35 +0100 Subject: [PATCH] [AA] KtPsiBasedSymbolPointer: disable type inference ^KT-54417 --- .../analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt | 2 +- .../analysis/api/fir/symbols/KtFirClassInitializerSymbol.kt | 2 +- .../kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt | 2 +- .../kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt | 2 +- .../kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt | 2 +- .../analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt | 2 +- .../analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt | 2 +- .../analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt | 2 +- .../analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt | 2 +- .../kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt | 2 +- .../analysis/api/fir/symbols/KtFirTypeParameterSymbol.kt | 2 +- .../analysis/api/fir/symbols/KtFirValueParameterSymbol.kt | 2 +- .../analysis/api/symbols/pointers/KtPsiBasedSymbolPointer.kt | 3 ++- 13 files changed, 14 insertions(+), 13 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt index 5fd545a83fe..cc9cbd51715 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt @@ -38,7 +38,7 @@ internal class KtFirAnonymousObjectSymbol( override val superTypes: List by cached { firSymbol.superTypesList(builder) } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } if (firSymbol.source?.kind == KtFakeSourceElementKind.EnumInitializer) { return KtFirEnumEntryInitializerSymbolPointer(requireOwnerPointer()) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirClassInitializerSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirClassInitializerSymbol.kt index 8f5a1dea56d..24ed0dc7998 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirClassInitializerSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirClassInitializerSymbol.kt @@ -29,7 +29,7 @@ internal class KtFirClassInitializerSymbol( override val psi: PsiElement? by cached { firSymbol.findPsi() } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } TODO("Figure out how to create such a pointer. Should we give an index to class initializers?") } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt index 8861e1cadcf..3b08dffc1d2 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt @@ -60,7 +60,7 @@ internal class KtFirConstructorSymbol( override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } if (symbolKind == KtSymbolKind.LOCAL) { throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException("constructor") } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt index 7a034182509..75bfac28939 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt @@ -26,7 +26,7 @@ internal class KtFirFileSymbol( override val psi: PsiElement? by cached { firSymbol.findPsi() } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } TODO("Creating pointers for files from library is not supported yet") } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt index 7fef70e6cb1..05b3de138a8 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt @@ -92,7 +92,7 @@ internal class KtFirFunctionSymbol( override val visibility: Visibility get() = withValidityAssertion { firSymbol.visibility } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } return when (val kind = symbolKind) { KtSymbolKind.TOP_LEVEL -> KtFirTopLevelFunctionSymbolPointer(firSymbol.callableId, firSymbol.createSignature()) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt index 3c08a9a713d..441873d193b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt @@ -48,7 +48,7 @@ internal class KtFirLocalVariableSymbol( override val symbolKind: KtSymbolKind get() = withValidityAssertion { KtSymbolKind.LOCAL } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException(name.asString()) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt index bce73f91fb5..b22454055d2 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt @@ -103,7 +103,7 @@ internal class KtFirNamedClassOrObjectSymbol( override val symbolKind: KtSymbolKind get() = withValidityAssertion { getSymbolKind(firResolveSession) } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } when (val symbolKind = symbolKind) { KtSymbolKind.LOCAL -> diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt index 4aadbe44820..8d3bfb0f66d 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt @@ -76,7 +76,7 @@ internal class KtFirPropertyGetterSymbol( get() = withValidityAssertion { true } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } @Suppress("UNCHECKED_CAST") KtFirPropertyAccessorSymbolPointer(requireOwnerPointer(), true) as KtSymbolPointer diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt index 53fab95f024..31aa94a4564 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt @@ -99,7 +99,7 @@ internal class KtFirPropertySetterSymbol( get() = withValidityAssertion { true } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } @Suppress("UNCHECKED_CAST") KtFirPropertyAccessorSymbolPointer(requireOwnerPointer(), true) as KtSymbolPointer diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt index e97f903021f..61c8d9fc3d7 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAliasSymbol.kt @@ -59,7 +59,7 @@ internal class KtFirTypeAliasSymbol( override val symbolKind: KtSymbolKind get() = withValidityAssertion { getSymbolKind(firResolveSession) } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } when (val symbolKind = symbolKind) { KtSymbolKind.LOCAL -> throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException(classIdIfNonLocal?.asString() ?: name.asString()) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeParameterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeParameterSymbol.kt index d6fa949946e..a863331d323 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeParameterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeParameterSymbol.kt @@ -52,7 +52,7 @@ internal class KtFirTypeParameterSymbol( override val isReified: Boolean get() = withValidityAssertion { firSymbol.isReified } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } val containingDeclarationSymbol = firSymbol.containingDeclarationSymbol val typeParameters = containingDeclarationSymbol.typeParameterSymbols diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt index fe92bea1429..79358a19bae 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt @@ -76,7 +76,7 @@ internal class KtFirValueParameterSymbol( } override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } + KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } analyze(firResolveSession.useSiteKtModule) { val owner = getContainingSymbol() as KtFunctionLikeSymbol diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/pointers/KtPsiBasedSymbolPointer.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/pointers/KtPsiBasedSymbolPointer.kt index de8d56e581c..2299e9a9c03 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/pointers/KtPsiBasedSymbolPointer.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/pointers/KtPsiBasedSymbolPointer.kt @@ -44,7 +44,8 @@ public class KtPsiBasedSymbolPointer private constructor( public constructor(psi: KtElement, expectedClass: KClass) : this(psi.createSmartPointer(), expectedClass) public companion object { - public inline fun createForSymbolFromSource(symbol: S): KtPsiBasedSymbolPointer? { + @Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") + public inline fun createForSymbolFromSource(symbol: @kotlin.internal.NoInfer S): KtPsiBasedSymbolPointer? { return createForSymbolFromSource(symbol, S::class) }