Extract 'PsiElement.hasJavaResolutionFacade()' (related to KT-28199)
This commit is contained in:
+2
@@ -149,6 +149,8 @@ private fun <T : DeclarationDescriptorWithSource> Collection<T>.findByJavaElemen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun PsiElement.hasJavaResolutionFacade(): Boolean = this.originalElement.containingFile != null
|
||||||
|
|
||||||
fun PsiElement.javaResolutionFacade() =
|
fun PsiElement.javaResolutionFacade() =
|
||||||
KotlinCacheService.getInstance(project).getResolutionFacadeByFile(
|
KotlinCacheService.getInstance(project).getResolutionFacadeByFile(
|
||||||
this.originalElement.containingFile ?: reportCouldNotCreateJavaFacade(),
|
this.originalElement.containingFile ?: reportCouldNotCreateJavaFacade(),
|
||||||
|
|||||||
+2
-1
@@ -20,6 +20,7 @@ import com.intellij.openapi.application.QueryExecutorBase
|
|||||||
import com.intellij.psi.PsiReference
|
import com.intellij.psi.PsiReference
|
||||||
import com.intellij.psi.search.searches.MethodReferencesSearch.SearchParameters
|
import com.intellij.psi.search.searches.MethodReferencesSearch.SearchParameters
|
||||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.util.hasJavaResolutionFacade
|
||||||
import org.jetbrains.kotlin.idea.references.mainReference
|
import org.jetbrains.kotlin.idea.references.mainReference
|
||||||
import org.jetbrains.kotlin.idea.search.usagesSearch.processDelegationCallConstructorUsages
|
import org.jetbrains.kotlin.idea.search.usagesSearch.processDelegationCallConstructorUsages
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ class KotlinConstructorDelegationCallReferenceSearcher : QueryExecutorBase<PsiRe
|
|||||||
override fun processQuery(queryParameters: SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
override fun processQuery(queryParameters: SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||||
val method = queryParameters.method
|
val method = queryParameters.method
|
||||||
if (!method.isConstructor) return
|
if (!method.isConstructor) return
|
||||||
if (method.originalElement.containingFile == null) return
|
if (!method.hasJavaResolutionFacade()) return
|
||||||
|
|
||||||
method.processDelegationCallConstructorUsages(method.useScope.intersectWith(queryParameters.effectiveSearchScope)) {
|
method.processDelegationCallConstructorUsages(method.useScope.intersectWith(queryParameters.effectiveSearchScope)) {
|
||||||
it.calleeExpression?.mainReference?.let { consumer.process(it) } ?: true
|
it.calleeExpression?.mainReference?.let { consumer.process(it) } ?: true
|
||||||
|
|||||||
+2
-1
@@ -20,12 +20,13 @@ import com.intellij.openapi.application.QueryExecutorBase
|
|||||||
import com.intellij.psi.PsiReference
|
import com.intellij.psi.PsiReference
|
||||||
import com.intellij.psi.search.searches.MethodReferencesSearch
|
import com.intellij.psi.search.searches.MethodReferencesSearch
|
||||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||||
|
import org.jetbrains.kotlin.idea.caches.resolve.util.hasJavaResolutionFacade
|
||||||
import org.jetbrains.kotlin.idea.search.usagesSearch.operators.OperatorReferenceSearcher
|
import org.jetbrains.kotlin.idea.search.usagesSearch.operators.OperatorReferenceSearcher
|
||||||
|
|
||||||
class KotlinConventionMethodReferencesSearcher : QueryExecutorBase<PsiReference, MethodReferencesSearch.SearchParameters>(true) {
|
class KotlinConventionMethodReferencesSearcher : QueryExecutorBase<PsiReference, MethodReferencesSearch.SearchParameters>(true) {
|
||||||
override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||||
val method = queryParameters.method
|
val method = queryParameters.method
|
||||||
if (method.originalElement.containingFile == null) return
|
if (!method.hasJavaResolutionFacade()) return
|
||||||
|
|
||||||
val operatorSearcher = OperatorReferenceSearcher.create(
|
val operatorSearcher = OperatorReferenceSearcher.create(
|
||||||
queryParameters.method,
|
queryParameters.method,
|
||||||
|
|||||||
Reference in New Issue
Block a user