diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt index cd021f1c76e..27b2daee012 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt @@ -149,6 +149,8 @@ private fun Collection.findByJavaElemen } } +fun PsiElement.hasJavaResolutionFacade(): Boolean = this.originalElement.containingFile != null + fun PsiElement.javaResolutionFacade() = KotlinCacheService.getInstance(project).getResolutionFacadeByFile( this.originalElement.containingFile ?: reportCouldNotCreateJavaFacade(), diff --git a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinConstructorDelegationCallReferenceSearcher.kt b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinConstructorDelegationCallReferenceSearcher.kt index b515419d71a..f4cf4217e2a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinConstructorDelegationCallReferenceSearcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinConstructorDelegationCallReferenceSearcher.kt @@ -20,6 +20,7 @@ import com.intellij.openapi.application.QueryExecutorBase import com.intellij.psi.PsiReference import com.intellij.psi.search.searches.MethodReferencesSearch.SearchParameters 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.search.usagesSearch.processDelegationCallConstructorUsages @@ -27,7 +28,7 @@ class KotlinConstructorDelegationCallReferenceSearcher : QueryExecutorBase) { val method = queryParameters.method if (!method.isConstructor) return - if (method.originalElement.containingFile == null) return + if (!method.hasJavaResolutionFacade()) return method.processDelegationCallConstructorUsages(method.useScope.intersectWith(queryParameters.effectiveSearchScope)) { it.calleeExpression?.mainReference?.let { consumer.process(it) } ?: true diff --git a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinConventionMethodReferencesSearcher.kt b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinConventionMethodReferencesSearcher.kt index a2819eb5963..4beb1c59eb7 100644 --- a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinConventionMethodReferencesSearcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinConventionMethodReferencesSearcher.kt @@ -20,12 +20,13 @@ import com.intellij.openapi.application.QueryExecutorBase import com.intellij.psi.PsiReference import com.intellij.psi.search.searches.MethodReferencesSearch import org.jetbrains.kotlin.compatibility.ExecutorProcessor +import org.jetbrains.kotlin.idea.caches.resolve.util.hasJavaResolutionFacade import org.jetbrains.kotlin.idea.search.usagesSearch.operators.OperatorReferenceSearcher class KotlinConventionMethodReferencesSearcher : QueryExecutorBase(true) { override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: ExecutorProcessor) { val method = queryParameters.method - if (method.originalElement.containingFile == null) return + if (!method.hasJavaResolutionFacade()) return val operatorSearcher = OperatorReferenceSearcher.create( queryParameters.method,