From 63d7e479c605a708f85ba80cf744dc342b7fd2d3 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Thu, 6 Jun 2019 16:58:43 +0300 Subject: [PATCH] Fix invalid nullability annotation for suspend functions in LightClasses --- .../asJava/elements/lightAnnotations.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) 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 1cd8dafe496..208d0c25fa7 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 @@ -36,6 +36,7 @@ import org.jetbrains.kotlin.load.java.descriptors.JavaClassConstructorDescriptor import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject import org.jetbrains.kotlin.psi.psiUtil.getParentOfType +import org.jetbrains.kotlin.psi.psiUtil.hasSuspendModifier import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.CompileTimeConstantUtils import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall @@ -83,10 +84,10 @@ abstract class KtLightAbstractAnnotation(parent: PsiElement, computeDelegate: () } class KtLightAnnotationForSourceEntry( - private val qualifiedName: String, - override val kotlinOrigin: KtCallElement, - parent: PsiElement, - computeDelegate: () -> PsiAnnotation + private val qualifiedName: String, + override val kotlinOrigin: KtCallElement, + parent: PsiElement, + computeDelegate: () -> PsiAnnotation ) : KtLightAbstractAnnotation(parent, computeDelegate) { override fun getQualifiedName() = qualifiedName @@ -237,9 +238,9 @@ class KtLightEmptyAnnotationParameterList(parent: PsiElement) : KtLightElementBa open class KtLightNullabilityAnnotation>(val member: D, parent: PsiElement) : KtLightAbstractAnnotation(parent, { - // searching for last because nullability annotations are generated after backend generates source annotations + // searching for last because nullability annotations are generated after backend generates source annotations getClsNullabilityAnnotation(member) ?: KtLightNonExistentAnnotation(member) -}) { + }) { override fun fqNameMatches(fqName: String): Boolean { if (!isNullabilityAnnotation(fqName)) return false @@ -253,8 +254,8 @@ open class KtLightNullabilityAnnotation