From 73356cbb4b10d45e3157fa90540ca8ba2fd1988d Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 28 Jun 2019 16:40:19 +0300 Subject: [PATCH] Check self before complex equivalence check in light parameter --- .../asJava/elements/KtLightParameter.kt | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightParameter.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightParameter.kt index 6943a94a1d2..b0953f6cb6a 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightParameter.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightParameter.kt @@ -100,19 +100,20 @@ class KtLightParameter( override fun getParent(): PsiElement = method.parameterList override fun isEquivalentTo(another: PsiElement?): Boolean { - val result = ApplicationManager.getApplication().runReadAction(Computable { - val kotlinOrigin = kotlinOrigin - if (kotlinOrigin?.isEquivalentTo(another) == true) return@Computable true + if (this === another) return true - if (another is KtLightParameter && kotlinOrigin != null) { - kotlinOrigin == another.kotlinOrigin && clsDelegate == another.clsDelegate - } else { - null + return ApplicationManager.getApplication().runReadAction(Computable { + if (another is KtParameter) { + val kotlinOrigin = kotlinOrigin + if (kotlinOrigin?.isEquivalentTo(another) == true) return@Computable true } - }) - result?.let { return it } - return super.isEquivalentTo(another) + if (another is KtLightParameter) { + return@Computable kotlinOrigin != null && kotlinOrigin == another.kotlinOrigin && clsDelegate == another.clsDelegate + } + + false + }) } override fun equals(other: Any?): Boolean {