Replace some of RESOLVED_CALL & REFERENCE_TARGET usages to resolveToCall

This commit is contained in:
Mikhail Glukhikh
2018-02-21 16:00:36 +03:00
parent a7d980a890
commit b436ee6e19
21 changed files with 42 additions and 74 deletions
@@ -24,14 +24,12 @@ import com.intellij.psi.search.searches.ReferencesSearch
import com.intellij.psi.xml.XmlAttributeValue
import com.intellij.util.Processor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtReferenceExpression
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
import org.jetbrains.kotlin.psi.KtTreeVisitorVoid
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.resolve.source.getPsi
@@ -59,5 +57,5 @@ class AndroidExtensionsReferenceSearchExecutor : QueryExecutorBase<PsiReference,
getTargetPropertyDescriptor()?.source?.getPsi() == element
private fun KtReferenceExpression.getTargetPropertyDescriptor(): PropertyDescriptor? =
analyze(BodyResolveMode.PARTIAL)[BindingContext.REFERENCE_TARGET, this] as? PropertyDescriptor
resolveToCall()?.resultingDescriptor as? PropertyDescriptor
}
@@ -26,11 +26,9 @@ import com.intellij.psi.xml.XmlAttribute
import org.jetbrains.kotlin.android.synthetic.res.AndroidLayoutXmlFileManager
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
class AndroidGotoDeclarationHandler : GotoDeclarationHandler {
override fun getGotoDeclarationTargets(sourceElement: PsiElement?, offset: Int, editor: Editor?): Array<PsiElement>? {
@@ -48,9 +46,7 @@ class AndroidGotoDeclarationHandler : GotoDeclarationHandler {
}
private fun resolvePropertyDescriptor(simpleNameExpression: KtSimpleNameExpression): PropertyDescriptor? {
val bindingContext = simpleNameExpression.analyze(BodyResolveMode.PARTIAL)
val call = bindingContext[BindingContext.CALL, simpleNameExpression]
val resolvedCall = bindingContext[BindingContext.RESOLVED_CALL, call]
val resolvedCall = simpleNameExpression.resolveToCall()
return resolvedCall?.resultingDescriptor as? PropertyDescriptor
}