Take read action in KtLightParameter.isEquivalentTo()
EA-109775 - (OperatorReferencesSearcher) assert: PsiFileImpl.getStubTree
This commit is contained in:
+14
-5
@@ -6,6 +6,8 @@
|
|||||||
package org.jetbrains.kotlin.asJava.elements
|
package org.jetbrains.kotlin.asJava.elements
|
||||||
|
|
||||||
import com.intellij.lang.Language
|
import com.intellij.lang.Language
|
||||||
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
|
import com.intellij.openapi.util.Computable
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.search.LocalSearchScope
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
@@ -101,11 +103,18 @@ class KtLightParameter(
|
|||||||
override fun getParent(): PsiElement = method.parameterList
|
override fun getParent(): PsiElement = method.parameterList
|
||||||
|
|
||||||
override fun isEquivalentTo(another: PsiElement?): Boolean {
|
override fun isEquivalentTo(another: PsiElement?): Boolean {
|
||||||
val kotlinOrigin = kotlinOrigin
|
val result = ApplicationManager.getApplication().runReadAction(Computable {
|
||||||
if (another is KtLightParameter && kotlinOrigin != null) {
|
val kotlinOrigin = kotlinOrigin
|
||||||
val anotherParam = another as KtLightParameter?
|
if (another is KtLightParameter && kotlinOrigin != null) {
|
||||||
return kotlinOrigin == anotherParam!!.kotlinOrigin && clsDelegate == anotherParam.clsDelegate
|
val anotherParam = another as KtLightParameter?
|
||||||
}
|
kotlinOrigin == anotherParam!!.kotlinOrigin && clsDelegate == anotherParam.clsDelegate
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
})
|
||||||
|
result?.let { return it }
|
||||||
|
|
||||||
return super.isEquivalentTo(another)
|
return super.isEquivalentTo(another)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user