diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt index e494f272cda..f38cefa00be 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousFunctionSymbol.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion import org.jetbrains.kotlin.analysis.api.symbols.KtAnonymousFunctionSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtValueParameterSymbol +import org.jetbrains.kotlin.analysis.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.analysis.api.types.KtType @@ -53,8 +54,8 @@ internal class KtFirAnonymousFunctionSymbol( override fun createPointer(): KtSymbolPointer = withValidityAssertion { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } - error("Could not create a pointer for anonymous function from library") + KtPsiBasedSymbolPointer.createForSymbolFromSource(this) + ?: throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException(this::class) } override fun equals(other: Any?): Boolean = symbolEquals(other) 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 4d0bd62d8ee..5fd545a83fe 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 @@ -43,7 +43,7 @@ internal class KtFirAnonymousObjectSymbol( return KtFirEnumEntryInitializerSymbolPointer(requireOwnerPointer()) } - throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException("Cannot create pointer for KtFirAnonymousObjectSymbol") + throw CanNotCreateSymbolPointerForLocalLibraryDeclarationException(this::class) } override fun equals(other: Any?): Boolean = symbolEquals(other) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/pointers/SymbolPointerExceptions.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/pointers/SymbolPointerExceptions.kt index 1bbcd90ba2b..822521faa5c 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/pointers/SymbolPointerExceptions.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/pointers/SymbolPointerExceptions.kt @@ -9,7 +9,9 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind import kotlin.reflect.KClass public class CanNotCreateSymbolPointerForLocalLibraryDeclarationException(identifier: String) : - IllegalStateException("Could not create a symbol pointer for local symbol $identifier") + IllegalStateException("Could not create a symbol pointer for local symbol $identifier") { + public constructor(klass: KClass<*>) : this(klass.java.simpleName) +} public class UnsupportedSymbolKind(identifier: String, kind: KtSymbolKind) : IllegalStateException( "For symbol with kind = KtSymbolKind.${kind.name} was $identifier"