Use safe resolveToDescriptorIfAny() when possible (related to EA-105681)

This commit is contained in:
Mikhail Glukhikh
2017-09-11 11:48:42 +03:00
parent 94e3a51a45
commit 71c2489ade
18 changed files with 47 additions and 46 deletions
@@ -159,7 +159,7 @@ object SourceNavigationHelper {
}
for (candidate in candidates) {
val candidateDescriptor = candidate.resolveToDescriptor() as CallableDescriptor
val candidateDescriptor = candidate.resolveToDescriptorIfAny() as? CallableDescriptor ?: continue
if (receiversMatch(declaration, candidateDescriptor)
&& valueParametersTypesMatch(declaration, candidateDescriptor)
&& typeParametersMatch(declaration as KtTypeParameterListOwner, candidateDescriptor.typeParameters)) {
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.psi.*
@@ -81,7 +81,7 @@ class KotlinStructureViewElement(val element: NavigatablePsiElement,
return runReadAction {
if (!DumbService.isDumb(element.getProject())) {
return@runReadAction element.resolveToDescriptor()
return@runReadAction element.resolveToDescriptorIfAny()
}
null
}