From 76fe1ec0d9ecd9f98d5d8d8df470a55fb99e0a99 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 13 Oct 2016 21:18:04 +0300 Subject: [PATCH] KT-14353 ClassCastException during offline inspections #KT-14353 Fixed --- .../usagesSearch/OperatorReferenceSearcher.kt | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/OperatorReferenceSearcher.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/OperatorReferenceSearcher.kt index 32d0cada491..58718be9962 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/OperatorReferenceSearcher.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/search/usagesSearch/OperatorReferenceSearcher.kt @@ -243,21 +243,23 @@ abstract class OperatorReferenceSearcher( if (scope is LocalSearchScope) { for (element in scope.scope) { - runReadAction { - if (element.isValid) { - val refs = ArrayList() - val elements = element.collectDescendantsOfType { - val ref = extractReference(it) ?: return@collectDescendantsOfType false - refs.add(ref) - true + if (element is KtElement) { + runReadAction { + if (element.isValid) { + val refs = ArrayList() + val elements = element.collectDescendantsOfType { + val ref = extractReference(it) ?: return@collectDescendantsOfType false + refs.add(ref) + true + } + + // resolve all references at once + (element.containingFile as KtFile).getResolutionFacade().analyze(elements, BodyResolveMode.PARTIAL) + + refs + .filter { it.isReferenceTo(targetDeclaration) } + .forEach { consumer.process(it) } } - - // resolve all references at once - (element.containingFile as KtFile).getResolutionFacade().analyze(elements, BodyResolveMode.PARTIAL) - - refs - .filter { it.isReferenceTo(targetDeclaration) } - .forEach { consumer.process(it) } } } }