Lazy usage search (using SearchQuery as Iterable leads to computing all results, which is wasting time).

This commit is contained in:
Evgeny Gerashchenko
2015-01-20 21:45:04 +03:00
parent 71bcce6410
commit 6e621ab114
@@ -51,6 +51,7 @@ import org.jetbrains.kotlin.psi.JetParameter
import org.jetbrains.kotlin.idea.search.usagesSearch.dataClassComponentFunctionName
import org.jetbrains.kotlin.psi.JetTypeParameter
import org.jetbrains.kotlin.idea.search.usagesSearch.DefaultSearchHelper
import com.intellij.util.Processor
public class UnusedSymbolInspection : AbstractKotlinInspection() {
private val javaInspection = UnusedDeclarationInspection()
@@ -197,6 +198,6 @@ public class UnusedSymbolInspection : AbstractKotlinInspection() {
val request = searchHelper.newRequest(UsagesSearchTarget(declaration, useScope))
val query = UsagesSearch.search(request)
return query.any { !declaration.isAncestor(it.getElement()) }
return !query.forEach(Processor { declaration.isAncestor(it.getElement()) })
}
}