From 2ba2d360c258536c21048ac5a3c620996c2507d9 Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Fri, 10 Aug 2018 20:48:48 +0300 Subject: [PATCH] `KtLightPsiJavaCodeReferenceElement` delegate made nullable (KT-26036, EA-124029) --- .../KtLightPsiJavaCodeReferenceElement.kt | 23 +++++++++++-------- .../asJava/elements/lightAnnotations.kt | 2 +- .../asJava/elements/lightAnnotations.kt.173 | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightPsiJavaCodeReferenceElement.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightPsiJavaCodeReferenceElement.kt index 0c54724faff..65abbd76e95 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightPsiJavaCodeReferenceElement.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightPsiJavaCodeReferenceElement.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub class KtLightPsiJavaCodeReferenceElement( private val ktElement: PsiElement, private val reference: PsiReference, - private val clsDelegateProvider: () -> PsiJavaCodeReferenceElement + private val clsDelegateProvider: () -> PsiJavaCodeReferenceElement? ) : PsiElement by ktElement, PsiReference by reference, @@ -20,23 +20,26 @@ class KtLightPsiJavaCodeReferenceElement( private val delegate by lazyPub { clsDelegateProvider() } - override fun advancedResolve(incompleteCode: Boolean): JavaResolveResult = delegate.advancedResolve(incompleteCode) + override fun advancedResolve(incompleteCode: Boolean): JavaResolveResult = + delegate?.advancedResolve(incompleteCode) ?: JavaResolveResult.EMPTY override fun getReferenceNameElement(): PsiElement? = ktElement - override fun getTypeParameters(): Array = delegate.typeParameters + override fun getTypeParameters(): Array = delegate?.typeParameters ?: emptyArray() - override fun getReferenceName(): String? = delegate.referenceName + override fun getReferenceName(): String? = delegate?.referenceName - override fun isQualified(): Boolean = delegate.isQualified + override fun isQualified(): Boolean = delegate?.isQualified ?: false - override fun processVariants(processor: PsiScopeProcessor) = delegate.processVariants(processor) + override fun processVariants(processor: PsiScopeProcessor) { + delegate?.processVariants(processor) + } - override fun multiResolve(incompleteCode: Boolean): Array = delegate.multiResolve(incompleteCode) + override fun multiResolve(incompleteCode: Boolean): Array = delegate?.multiResolve(incompleteCode) ?: emptyArray() - override fun getQualifiedName(): String = delegate.qualifiedName + override fun getQualifiedName(): String? = delegate?.qualifiedName - override fun getQualifier(): PsiElement? = delegate.qualifier + override fun getQualifier(): PsiElement? = delegate?.qualifier - override fun getParameterList(): PsiReferenceParameterList? = delegate.parameterList + override fun getParameterList(): PsiReferenceParameterList? = delegate?.parameterList } \ No newline at end of file diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt index 741a8a882f2..18dd5825441 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt @@ -134,7 +134,7 @@ class KtLightAnnotationForSourceEntry( return KtLightPsiJavaCodeReferenceElement( kotlinOrigin.navigationElement, reference, - { super.getNameReferenceElement()!! }) + { super.getNameReferenceElement() }) } diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt.173 b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt.173 index 47d6f992449..b354085e03a 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt.173 +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/lightAnnotations.kt.173 @@ -136,7 +136,7 @@ class KtLightAnnotationForSourceEntry( return KtLightPsiJavaCodeReferenceElement( kotlinOrigin.navigationElement, reference, - { super.getNameReferenceElement()!! }) + { super.getNameReferenceElement() }) }