[AA] KtPsiBasedSymbolPointer: disable type inference
^KT-54417
This commit is contained in:
committed by
Space Team
parent
bbe1aa61af
commit
592591acad
+1
-1
@@ -38,7 +38,7 @@ internal class KtFirAnonymousObjectSymbol(
|
||||
override val superTypes: List<KtType> by cached { firSymbol.superTypesList(builder) }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtAnonymousObjectSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtAnonymousObjectSymbol>(this)?.let { return it }
|
||||
if (firSymbol.source?.kind == KtFakeSourceElementKind.EnumInitializer) {
|
||||
return KtFirEnumEntryInitializerSymbolPointer(requireOwnerPointer())
|
||||
}
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ internal class KtFirClassInitializerSymbol(
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtClassInitializerSymbol>(this)?.let { return it }
|
||||
TODO("Figure out how to create such a pointer. Should we give an index to class initializers?")
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ internal class KtFirConstructorSymbol(
|
||||
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtConstructorSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtConstructorSymbol>(this)?.let { return it }
|
||||
if (symbolKind == KtSymbolKind.LOCAL) {
|
||||
throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException("constructor")
|
||||
}
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ internal class KtFirFileSymbol(
|
||||
override val psi: PsiElement? by cached { firSymbol.findPsi() }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtFileSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtFileSymbol>(this)?.let { return it }
|
||||
TODO("Creating pointers for files from library is not supported yet")
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -92,7 +92,7 @@ internal class KtFirFunctionSymbol(
|
||||
override val visibility: Visibility get() = withValidityAssertion { firSymbol.visibility }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtFunctionSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtFunctionSymbol>(this)?.let { return it }
|
||||
|
||||
return when (val kind = symbolKind) {
|
||||
KtSymbolKind.TOP_LEVEL -> KtFirTopLevelFunctionSymbolPointer(firSymbol.callableId, firSymbol.createSignature())
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ internal class KtFirLocalVariableSymbol(
|
||||
override val symbolKind: KtSymbolKind get() = withValidityAssertion { KtSymbolKind.LOCAL }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtLocalVariableSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtLocalVariableSymbol>(this)?.let { return it }
|
||||
throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException(name.asString())
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -103,7 +103,7 @@ internal class KtFirNamedClassOrObjectSymbol(
|
||||
override val symbolKind: KtSymbolKind get() = withValidityAssertion { getSymbolKind(firResolveSession) }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtNamedClassOrObjectSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtNamedClassOrObjectSymbol>(this)?.let { return it }
|
||||
|
||||
when (val symbolKind = symbolKind) {
|
||||
KtSymbolKind.LOCAL ->
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ internal class KtFirPropertyGetterSymbol(
|
||||
get() = withValidityAssertion { true }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtPropertyGetterSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtPropertyGetterSymbol>(this)?.let { return it }
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
KtFirPropertyAccessorSymbolPointer(requireOwnerPointer(), true) as KtSymbolPointer<KtPropertyGetterSymbol>
|
||||
|
||||
+1
-1
@@ -99,7 +99,7 @@ internal class KtFirPropertySetterSymbol(
|
||||
get() = withValidityAssertion { true }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtPropertySetterSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtPropertySetterSymbol>(this)?.let { return it }
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
KtFirPropertyAccessorSymbolPointer(requireOwnerPointer(), true) as KtSymbolPointer<KtPropertySetterSymbol>
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ internal class KtFirTypeAliasSymbol(
|
||||
override val symbolKind: KtSymbolKind get() = withValidityAssertion { getSymbolKind(firResolveSession) }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtTypeAliasSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtTypeAliasSymbol>(this)?.let { return it }
|
||||
when (val symbolKind = symbolKind) {
|
||||
KtSymbolKind.LOCAL ->
|
||||
throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException(classIdIfNonLocal?.asString() ?: name.asString())
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ internal class KtFirTypeParameterSymbol(
|
||||
override val isReified: Boolean get() = withValidityAssertion { firSymbol.isReified }
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtTypeParameterSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtTypeParameterSymbol>(this)?.let { return it }
|
||||
|
||||
val containingDeclarationSymbol = firSymbol.containingDeclarationSymbol
|
||||
val typeParameters = containingDeclarationSymbol.typeParameterSymbols
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ internal class KtFirValueParameterSymbol(
|
||||
}
|
||||
|
||||
override fun createPointer(): KtSymbolPointer<KtValueParameterSymbol> = withValidityAssertion {
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||
KtPsiBasedSymbolPointer.createForSymbolFromSource<KtValueParameterSymbol>(this)?.let { return it }
|
||||
|
||||
analyze(firResolveSession.useSiteKtModule) {
|
||||
val owner = getContainingSymbol() as KtFunctionLikeSymbol
|
||||
|
||||
+2
-1
@@ -44,7 +44,8 @@ public class KtPsiBasedSymbolPointer<S : KtSymbol> private constructor(
|
||||
public constructor(psi: KtElement, expectedClass: KClass<S>) : this(psi.createSmartPointer(), expectedClass)
|
||||
|
||||
public companion object {
|
||||
public inline fun <reified S : KtSymbol> createForSymbolFromSource(symbol: S): KtPsiBasedSymbolPointer<S>? {
|
||||
@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER")
|
||||
public inline fun <reified S : KtSymbol> createForSymbolFromSource(symbol: @kotlin.internal.NoInfer S): KtPsiBasedSymbolPointer<S>? {
|
||||
return createForSymbolFromSource(symbol, S::class)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user