diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiAnonymousFunctionSymbol.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiAnonymousFunctionSymbol.kt index cc4053a993e..6d60a873bd5 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiAnonymousFunctionSymbol.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiAnonymousFunctionSymbol.kt @@ -46,7 +46,13 @@ internal class KtFe10PsiAnonymousFunctionSymbol( override val receiverType: KtTypeAndAnnotations? get() = withValidityAssertion { - descriptor?.extensionReceiverParameter?.type?.toKtTypeAndAnnotations(analysisContext) ?: createErrorTypeAndAnnotations() + if (psi.isExtensionDeclaration()) { + return null + } + + val descriptor = this.descriptor ?: return createErrorTypeAndAnnotations() + val extensionReceiverParameter = descriptor.extensionReceiverParameter ?: return null + return extensionReceiverParameter.type.toKtTypeAndAnnotations(analysisContext) } override val isExtension: Boolean diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiFunctionSymbol.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiFunctionSymbol.kt index ba9a1dba5bd..b5dc864ba80 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiFunctionSymbol.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiFunctionSymbol.kt @@ -80,11 +80,13 @@ internal class KtFe10PsiFunctionSymbol( override val receiverType: KtTypeAndAnnotations? get() = withValidityAssertion { - return if (psi.isExtensionDeclaration()) { - descriptor?.extensionReceiverParameter?.type?.toKtTypeAndAnnotations(analysisContext) ?: createErrorTypeAndAnnotations() - } else { - null + if (!psi.isExtensionDeclaration()) { + return null } + + val descriptor = this.descriptor ?: return createErrorTypeAndAnnotations() + val extensionReceiverParameter = descriptor.extensionReceiverParameter ?: return null + return extensionReceiverParameter.type.toKtTypeAndAnnotations(analysisContext) } override val isExtension: Boolean diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiLiteralAnonymousFunctionSymbol.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiLiteralAnonymousFunctionSymbol.kt index a9186b2b834..ec080233ac8 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiLiteralAnonymousFunctionSymbol.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiLiteralAnonymousFunctionSymbol.kt @@ -45,7 +45,9 @@ internal class KtFe10PsiLiteralAnonymousFunctionSymbol( override val receiverType: KtTypeAndAnnotations? get() = withValidityAssertion { - descriptor?.extensionReceiverParameter?.type?.toKtTypeAndAnnotations(analysisContext) ?: createErrorTypeAndAnnotations() + val descriptor = this.descriptor ?: return createErrorTypeAndAnnotations() + val extensionReceiverParameter = descriptor.extensionReceiverParameter ?: return null + extensionReceiverParameter.type.toKtTypeAndAnnotations(analysisContext) } override val isExtension: Boolean