Cleanup bunch workarounds made for 181
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.compatibility
|
||||
|
||||
import com.intellij.util.Processor
|
||||
|
||||
/**
|
||||
* Processor<T> till IDEA 181 and Processor<in T> since 182.
|
||||
* BUNCH: 181
|
||||
*/
|
||||
typealias ExecutorProcessor<T> = Processor<in T>
|
||||
+7
-11
@@ -21,11 +21,7 @@ import com.intellij.openapi.progress.ProgressIndicatorProvider
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import com.intellij.util.EmptyQuery
|
||||
import com.intellij.util.Query
|
||||
import com.intellij.util.QueryExecutor
|
||||
import com.intellij.util.QueryFactory
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.contains
|
||||
import java.util.*
|
||||
|
||||
@@ -43,7 +39,7 @@ abstract class DeclarationsSearch<T : PsiElement, R : DeclarationSearchRequest<T
|
||||
init {
|
||||
registerExecutor(
|
||||
object : QueryExecutorBase<T, R>(true) {
|
||||
override fun processQuery(queryParameters: R, consumer: ExecutorProcessor<T>) {
|
||||
override fun processQuery(queryParameters: R, consumer: Processor<in T>) {
|
||||
doSearch(queryParameters, consumer)
|
||||
}
|
||||
}
|
||||
@@ -54,7 +50,7 @@ abstract class DeclarationsSearch<T : PsiElement, R : DeclarationSearchRequest<T
|
||||
super.registerExecutor(executor)
|
||||
}
|
||||
|
||||
protected abstract fun doSearch(request: R, consumer: ExecutorProcessor<T>)
|
||||
protected abstract fun doSearch(request: R, consumer: Processor<in T>)
|
||||
protected open fun isApplicable(request: R): Boolean = true
|
||||
|
||||
fun search(request: R): Query<T> = if (isApplicable(request)) createUniqueResultsQuery(request) else EmptyQuery.getEmptyQuery<T>()
|
||||
@@ -97,7 +93,7 @@ interface HierarchyTraverser<T> {
|
||||
}
|
||||
}
|
||||
|
||||
fun <T : PsiElement> ExecutorProcessor<T>.consumeHierarchy(request: SearchRequestWithElement<T>, traverser: HierarchyTraverser<T>) {
|
||||
fun <T : PsiElement> Processor<in T>.consumeHierarchy(request: SearchRequestWithElement<T>, traverser: HierarchyTraverser<T>) {
|
||||
traverser.forEach(request.originalElement) { element ->
|
||||
if (element in request.searchScope) {
|
||||
process(element)
|
||||
@@ -108,13 +104,13 @@ fun <T : PsiElement> ExecutorProcessor<T>.consumeHierarchy(request: SearchReques
|
||||
abstract class HierarchySearch<T : PsiElement>(
|
||||
private val traverser: HierarchyTraverser<T>
|
||||
) : DeclarationsSearch<T, HierarchySearchRequest<T>>() {
|
||||
protected open fun doSearchAll(request: HierarchySearchRequest<T>, consumer: ExecutorProcessor<T>) {
|
||||
protected open fun doSearchAll(request: HierarchySearchRequest<T>, consumer: Processor<in T>) {
|
||||
consumer.consumeHierarchy(request, traverser)
|
||||
}
|
||||
|
||||
protected abstract fun doSearchDirect(request: HierarchySearchRequest<T>, consumer: ExecutorProcessor<T>)
|
||||
protected abstract fun doSearchDirect(request: HierarchySearchRequest<T>, consumer: Processor<in T>)
|
||||
|
||||
override fun doSearch(request: HierarchySearchRequest<T>, consumer: ExecutorProcessor<T>) {
|
||||
override fun doSearch(request: HierarchySearchRequest<T>, consumer: Processor<in T>) {
|
||||
if (request.searchDeeply) {
|
||||
doSearchAll(request, consumer)
|
||||
} else {
|
||||
|
||||
+1
-2
@@ -21,7 +21,6 @@ import com.intellij.util.Query
|
||||
import org.jetbrains.kotlin.asJava.getRepresentativeLightMethod
|
||||
import org.jetbrains.kotlin.asJava.toLightMethods
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.isOverridable
|
||||
@@ -96,7 +95,7 @@ object KotlinPsiMethodOverridersSearch : HierarchySearch<PsiMethod>(PsiMethodOve
|
||||
override fun isApplicable(request: HierarchySearchRequest<PsiMethod>): Boolean =
|
||||
runReadAction { request.originalElement.isOverridableElement() }
|
||||
|
||||
override fun doSearchDirect(request: HierarchySearchRequest<PsiMethod>, consumer: ExecutorProcessor<PsiMethod>) {
|
||||
override fun doSearchDirect(request: HierarchySearchRequest<PsiMethod>, consumer: Processor<in PsiMethod>) {
|
||||
searchDirectOverriders(request.originalElement).forEach { method -> consumer.process(method) }
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -24,6 +24,7 @@ import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import com.intellij.psi.search.UsageSearchContext
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
import com.intellij.util.Processor
|
||||
import com.intellij.util.containers.nullize
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
@@ -33,7 +34,6 @@ import org.jetbrains.kotlin.asJava.elements.KtLightParameter
|
||||
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.asJava.toLightElements
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.search.*
|
||||
@@ -77,13 +77,13 @@ class KotlinReferencesSearchParameters(
|
||||
) : ReferencesSearch.SearchParameters(elementToSearch, scope, ignoreAccessScope, optimizer)
|
||||
|
||||
class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters>() {
|
||||
override fun processQuery(queryParameters: ReferencesSearch.SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||
override fun processQuery(queryParameters: ReferencesSearch.SearchParameters, consumer: Processor<in PsiReference>) {
|
||||
val processor = QueryProcessor(queryParameters, consumer)
|
||||
runReadAction { processor.processInReadAction() }
|
||||
processor.executeLongRunningTasks()
|
||||
}
|
||||
|
||||
private class QueryProcessor(val queryParameters: ReferencesSearch.SearchParameters, val consumer: ExecutorProcessor<PsiReference>) {
|
||||
private class QueryProcessor(val queryParameters: ReferencesSearch.SearchParameters, val consumer: Processor<in PsiReference>) {
|
||||
|
||||
private val kotlinOptions = (queryParameters as? KotlinReferencesSearchParameters)?.kotlinOptions ?: Empty
|
||||
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.PsiReferenceService
|
||||
import com.intellij.psi.ReferenceRange
|
||||
import com.intellij.psi.search.RequestResultProcessor
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.references.KtDestructuringDeclarationReference
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.isCallableOverrideUsage
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.isExtensionOfDeclarationClassUsage
|
||||
@@ -38,7 +38,7 @@ class KotlinRequestResultProcessor(
|
||||
) : RequestResultProcessor(unwrappedElement, originalElement, filter, options) {
|
||||
private val referenceService = PsiReferenceService.getService()
|
||||
|
||||
override fun processTextOccurrence(element: PsiElement, offsetInElement: Int, consumer: ExecutorProcessor<PsiReference>): Boolean {
|
||||
override fun processTextOccurrence(element: PsiElement, offsetInElement: Int, consumer: Processor<in PsiReference>): Boolean {
|
||||
val references = if (element is KtDestructuringDeclaration)
|
||||
element.entries.flatMap { referenceService.getReferences(it, PsiReferenceService.Hints.NO_HINTS) }
|
||||
else
|
||||
|
||||
@@ -34,7 +34,6 @@ import com.intellij.util.CommonProcessors
|
||||
import com.intellij.util.indexing.FileBasedIndex
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.idea.util.compat.psiSearchHelperInstance
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||
@@ -103,7 +102,7 @@ fun SearchScope.excludeFileTypes(vararg fileTypes: FileType): SearchScope {
|
||||
fun ReferencesSearch.SearchParameters.effectiveSearchScope(element: PsiElement): SearchScope {
|
||||
if (element == elementToSearch) return effectiveSearchScope
|
||||
if (isIgnoreAccessScope) return scopeDeterminedByUser
|
||||
val accessScope = psiSearchHelperInstance(element.project).getUseScope(element)
|
||||
val accessScope = PsiSearchHelper.getInstance(element.project).getUseScope(element)
|
||||
return scopeDeterminedByUser.intersectWith(accessScope)
|
||||
}
|
||||
|
||||
@@ -126,7 +125,7 @@ fun PsiSearchHelper.isCheapEnoughToSearchConsideringOperators(
|
||||
|
||||
fun findScriptsWithUsages(declaration: KtNamedDeclaration): List<VirtualFile> {
|
||||
val project = declaration.project
|
||||
val scope = psiSearchHelperInstance(project).getUseScope(declaration) as? GlobalSearchScope
|
||||
val scope = PsiSearchHelper.getInstance(project).getUseScope(declaration) as? GlobalSearchScope
|
||||
?: return emptyList()
|
||||
|
||||
val name = declaration.name.takeIf { it?.isNotBlank() == true } ?: return emptyList()
|
||||
|
||||
+2
-4
@@ -35,7 +35,6 @@ import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.KtNodeTypes
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.PsiDiagnosticUtils
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
@@ -52,7 +51,6 @@ import org.jetbrains.kotlin.idea.search.restrictToKotlinSources
|
||||
import org.jetbrains.kotlin.idea.util.FuzzyType
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.idea.util.compat.psiSearchHelperInstance
|
||||
import org.jetbrains.kotlin.kdoc.psi.impl.KDocName
|
||||
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
||||
import org.jetbrains.kotlin.load.java.sam.SingleAbstractMethodUtils
|
||||
@@ -274,7 +272,7 @@ class ExpressionsOfTypeProcessor(
|
||||
RequestResultProcessor(psiMember) {
|
||||
val possibleClassesNames: Set<String> = runReadAction { classes.map { it.qualifiedName }.filterNotNullTo(HashSet()) }
|
||||
|
||||
override fun processTextOccurrence(element: PsiElement, offsetInElement: Int, consumer: ExecutorProcessor<PsiReference>): Boolean {
|
||||
override fun processTextOccurrence(element: PsiElement, offsetInElement: Int, consumer: Processor<in PsiReference>): Boolean {
|
||||
when (element) {
|
||||
is KtQualifiedExpression -> {
|
||||
val selectorExpression = element.selectorExpression ?: return true
|
||||
@@ -370,7 +368,7 @@ class ExpressionsOfTypeProcessor(
|
||||
}
|
||||
}
|
||||
|
||||
psiSearchHelperInstance(project).processRequests(searchRequestCollector) { reference ->
|
||||
PsiSearchHelper.getInstance(project).processRequests(searchRequestCollector) { reference ->
|
||||
if (reference.element.parents.any { it is KtImportDirective }) {
|
||||
// Found declaration in import - process all file with an ordinal reference search
|
||||
val containingFile = reference.element.containingFile
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||
import org.jetbrains.kotlin.lexer.KtSingleValueToken
|
||||
@@ -33,7 +33,7 @@ class BinaryOperatorReferenceSearcher(
|
||||
targetFunction: PsiElement,
|
||||
private val operationTokens: List<KtSingleValueToken>,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
) : OperatorReferenceSearcher<KtBinaryExpression>(
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance
|
||||
class ContainsOperatorReferenceSearcher(
|
||||
targetFunction: PsiElement,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
) : OperatorReferenceSearcher<KtOperationReferenceExpression>(
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.KtNodeTypes
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.idea.references.KtDestructuringDeclarationReference
|
||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||
@@ -33,7 +33,7 @@ class DestructuringDeclarationReferenceSearcher(
|
||||
targetDeclaration: PsiElement,
|
||||
private val componentIndex: Int,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
) : OperatorReferenceSearcher<KtDestructuringDeclaration>(
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.references.KtArrayAccessReference
|
||||
import org.jetbrains.kotlin.idea.references.readWriteAccess
|
||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance
|
||||
class IndexingOperatorReferenceSearcher(
|
||||
targetFunction: PsiElement,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions,
|
||||
private val isSet: Boolean
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.references.KtInvokeFunctionReference
|
||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||
@@ -36,7 +36,7 @@ import org.jetbrains.uast.convertOpt
|
||||
class InvokeOperatorReferenceSearcher(
|
||||
targetFunction: PsiElement,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
) : OperatorReferenceSearcher<KtCallExpression>(targetFunction, searchScope, consumer, optimizer, options, wordsToSearch = emptyList()) {
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.KtNodeTypes
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.idea.references.KtForLoopInReference
|
||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance
|
||||
class IteratorOperatorReferenceSearcher(
|
||||
targetFunction: PsiElement,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
) : OperatorReferenceSearcher<KtForExpression>(targetFunction, searchScope, consumer, optimizer, options, wordsToSearch = listOf("in")) {
|
||||
|
||||
+5
-5
@@ -20,10 +20,10 @@ import com.intellij.openapi.progress.ProgressIndicatorProvider
|
||||
import com.intellij.openapi.progress.util.ProgressWrapper
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.search.*
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
@@ -56,7 +56,7 @@ import java.util.*
|
||||
abstract class OperatorReferenceSearcher<TReferenceElement : KtElement>(
|
||||
protected val targetDeclaration: PsiElement,
|
||||
private val searchScope: SearchScope,
|
||||
private val consumer: ExecutorProcessor<PsiReference>,
|
||||
private val consumer: Processor<in PsiReference>,
|
||||
private val optimizer: SearchRequestCollector,
|
||||
private val options: KotlinReferencesSearchOptions,
|
||||
private val wordsToSearch: List<String>
|
||||
@@ -92,7 +92,7 @@ abstract class OperatorReferenceSearcher<TReferenceElement : KtElement>(
|
||||
fun create(
|
||||
declaration: PsiElement,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
): OperatorReferenceSearcher<*>? {
|
||||
@@ -107,7 +107,7 @@ abstract class OperatorReferenceSearcher<TReferenceElement : KtElement>(
|
||||
private fun createInReadAction(
|
||||
declaration: PsiElement,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
): OperatorReferenceSearcher<*>? {
|
||||
@@ -132,7 +132,7 @@ abstract class OperatorReferenceSearcher<TReferenceElement : KtElement>(
|
||||
private fun createInReadAction(
|
||||
declaration: PsiElement,
|
||||
name: Name,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions,
|
||||
searchScope: SearchScope
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.references.KtPropertyDelegationMethodsReference
|
||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance
|
||||
class PropertyDelegationOperatorReferenceSearcher(
|
||||
targetFunction: PsiElement,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
) : OperatorReferenceSearcher<KtPropertyDelegate>(targetFunction, searchScope, consumer, optimizer, options, wordsToSearch = listOf("by")) {
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.SearchRequestCollector
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||
import org.jetbrains.kotlin.lexer.KtSingleValueToken
|
||||
@@ -33,7 +33,7 @@ class UnaryOperatorReferenceSearcher(
|
||||
targetFunction: PsiElement,
|
||||
private val operationToken: KtSingleValueToken,
|
||||
searchScope: SearchScope,
|
||||
consumer: ExecutorProcessor<PsiReference>,
|
||||
consumer: Processor<in PsiReference>,
|
||||
optimizer: SearchRequestCollector,
|
||||
options: KotlinReferencesSearchOptions
|
||||
) : OperatorReferenceSearcher<KtUnaryExpression>(
|
||||
|
||||
@@ -45,10 +45,3 @@ fun <T> Project.executeCommand(name: String, groupId: Any? = null, command: () -
|
||||
@Suppress("USELESS_CAST")
|
||||
return result as T
|
||||
}
|
||||
|
||||
/**
|
||||
* ProgressManager.getProgressIndicator() is nullable in 181 and dynamic again in 182
|
||||
* BUNCH: 181
|
||||
*/
|
||||
@Suppress("IncompatibleAPI")
|
||||
val ProgressManager.progressIndicatorNullable: ProgressIndicator? get() = progressIndicator
|
||||
@@ -1,15 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.util.compat
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.PsiSearchHelper
|
||||
|
||||
// BUNCH: 181
|
||||
@Suppress("IncompatibleAPI", "MissingRecentApi")
|
||||
fun psiSearchHelperInstance(project: Project): PsiSearchHelper {
|
||||
return PsiSearchHelper.getInstance(project)
|
||||
}
|
||||
+1
-2
@@ -49,7 +49,6 @@ import org.jetbrains.kotlin.idea.refactoring.j2k
|
||||
import org.jetbrains.kotlin.idea.refactoring.j2kText
|
||||
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.idea.versions.getKotlinJvmRuntimeMarkerClass
|
||||
import org.jetbrains.kotlin.j2k.AfterConversionPass
|
||||
@@ -82,7 +81,7 @@ class KotlinCodeFragmentFactory : CodeFragmentFactory() {
|
||||
semaphore.down()
|
||||
val nameRef = AtomicReference<KotlinType>()
|
||||
val worker = object : KotlinRuntimeTypeEvaluator(
|
||||
null, expression, debuggerContext, ProgressManager.getInstance().progressIndicatorNullable!!
|
||||
null, expression, debuggerContext, ProgressManager.getInstance().progressIndicator!!
|
||||
) {
|
||||
override fun typeCalculationFinished(type: KotlinType?) {
|
||||
nameRef.set(type)
|
||||
|
||||
@@ -53,7 +53,6 @@ import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.idea.runInReadActionWithWriteActionPriority
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.descriptor
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -111,7 +110,7 @@ class KotlinLanguageInjector(
|
||||
return computedInjection
|
||||
}
|
||||
|
||||
if (ApplicationManager.getApplication().isReadAccessAllowed && ProgressManager.getInstance().progressIndicatorNullable == null) {
|
||||
if (ApplicationManager.getApplication().isReadAccessAllowed && ProgressManager.getInstance().progressIndicator == null) {
|
||||
// The action cannot be canceled by caller and by internal checkCanceled() calls.
|
||||
// Force creating new indicator that is canceled on write action start, otherwise there might be lags in typing.
|
||||
runInReadActionWithWriteActionPriority(::computeAndCache) ?: kotlinCachedInjection?.baseInjection ?: ABSENT_KOTLIN_INJECTION
|
||||
|
||||
@@ -57,7 +57,7 @@ class KotlinDecompilerServiceImpl : KotlinDecompilerService {
|
||||
|
||||
val decompiler = BaseDecompiler(bytecodeProvider, resultSaver, options, IdeaLogger())
|
||||
for (path in bytecodeMap.keys) {
|
||||
decompiler.addSpaceEx(path, true)
|
||||
decompiler.addSource(path)
|
||||
}
|
||||
decompiler.decompileContext()
|
||||
return resultSaver.resultText
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.internal
|
||||
|
||||
import org.jetbrains.java.decompiler.main.decompiler.BaseDecompiler
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* `addSpace` method is deprecated in 182. `addSource` and `addLibrary` were introduced instead.
|
||||
* BUNCH: 181
|
||||
*/
|
||||
@Suppress("IncompatibleAPI")
|
||||
fun BaseDecompiler.addSpaceEx(file: File, isOwn: Boolean) {
|
||||
if (isOwn) {
|
||||
addSource(file)
|
||||
} else {
|
||||
addLibrary(file)
|
||||
}
|
||||
}
|
||||
@@ -273,16 +273,11 @@ class KotlinPluginUpdater(private val propertiesComponent: PropertiesComponent)
|
||||
}
|
||||
|
||||
if (prepareResult) {
|
||||
val pluginDescriptor = pluginDownloader.descriptor
|
||||
// BUNCH: 181 Not null since 182.
|
||||
@Suppress("SENSELESS_COMPARISON")
|
||||
if (pluginDescriptor != null) {
|
||||
installed = true
|
||||
pluginDownloader.install()
|
||||
installed = true
|
||||
pluginDownloader.install()
|
||||
|
||||
ApplicationManager.getApplication().invokeLater {
|
||||
PluginManagerMain.notifyPluginsUpdated(null)
|
||||
}
|
||||
ApplicationManager.getApplication().invokeLater {
|
||||
PluginManagerMain.notifyPluginsUpdated(null)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,6 @@ import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
||||
import org.jetbrains.kotlin.idea.j2k.JavaToKotlinConverterFactory
|
||||
import org.jetbrains.kotlin.idea.refactoring.toPsiFile
|
||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.idea.util.isRunningInCidrIde
|
||||
import org.jetbrains.kotlin.j2k.ConverterSettings
|
||||
@@ -122,7 +121,7 @@ class JavaToKotlinAction : AnAction() {
|
||||
converterResult = converter.filesToKotlin(
|
||||
javaFiles,
|
||||
JavaToKotlinConverterFactory.createPostProcessor(formatCode = true),
|
||||
progress = ProgressManager.getInstance().progressIndicatorNullable!!
|
||||
progress = ProgressManager.getInstance().progressIndicator!!
|
||||
)
|
||||
}
|
||||
|
||||
@@ -143,7 +142,7 @@ class JavaToKotlinAction : AnAction() {
|
||||
{
|
||||
runReadAction {
|
||||
externalCodeUpdate = converterResult!!.externalCodeProcessing!!.prepareWriteOperation(
|
||||
ProgressManager.getInstance().progressIndicatorNullable!!
|
||||
ProgressManager.getInstance().progressIndicator!!
|
||||
)
|
||||
}
|
||||
},
|
||||
|
||||
+1
-2
@@ -48,7 +48,6 @@ import org.jetbrains.kotlin.idea.core.overrideImplement.generateUnsupportedOrSup
|
||||
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.setupEditorSelection
|
||||
import org.jetbrains.kotlin.idea.refactoring.j2k
|
||||
import org.jetbrains.kotlin.idea.testIntegration.findSuitableFrameworks
|
||||
import org.jetbrains.kotlin.idea.util.PopupChooserBuilderWrapper
|
||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -75,7 +74,7 @@ abstract class KotlinGenerateTestSupportActionBase(
|
||||
val list = JBList<TestFramework>(*frameworks.toTypedArray())
|
||||
list.cellRenderer = TestFrameworkListCellRenderer()
|
||||
|
||||
PopupChooserBuilderWrapper<TestFramework>(list)
|
||||
PopupChooserBuilder<TestFramework>(list)
|
||||
.setFilteringEnabled { (it as TestFramework).name }
|
||||
.setTitle("Choose Framework")
|
||||
.setItemChoosenCallback { consumer(list.selectedValue as TestFramework) }
|
||||
|
||||
+1
-2
@@ -30,7 +30,6 @@ import com.intellij.openapi.vfs.VirtualFileVisitor
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.ExpressionsOfTypeProcessor
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -58,7 +57,7 @@ class CheckComponentsUsageSearchAction : AnAction() {
|
||||
.filter { it.isData() }
|
||||
.toList()
|
||||
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicatorNullable
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicator
|
||||
for ((i, dataClass) in dataClasses.withIndex()) {
|
||||
progressIndicator?.text = "Checking data class ${i + 1} of ${dataClasses.size}..."
|
||||
progressIndicator?.text2 = dataClass.fqName?.asString() ?: ""
|
||||
|
||||
@@ -39,7 +39,6 @@ import org.jetbrains.kotlin.builtins.getReturnTypeFromFunctionType
|
||||
import org.jetbrains.kotlin.builtins.isFunctionType
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
@@ -63,7 +62,7 @@ class FindImplicitNothingAction : AnAction() {
|
||||
}
|
||||
|
||||
private fun find(files: Collection<KtFile>, project: Project) {
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicatorNullable
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicator
|
||||
val found = ArrayList<KtCallExpression>()
|
||||
for ((i, file) in files.withIndex()) {
|
||||
progressIndicator?.text = "Scanning files: $i of ${files.size} file. ${found.size} occurrences found"
|
||||
|
||||
+1
-2
@@ -30,7 +30,6 @@ import com.intellij.psi.PsiModifier
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor
|
||||
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.load.java.isFromJava
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -56,7 +55,7 @@ class SearchNotPropertyCandidatesAction : AnAction() {
|
||||
ProgressManager.getInstance().runProcessWithProgressSynchronously(
|
||||
{
|
||||
runReadAction {
|
||||
ProgressManager.getInstance().progressIndicatorNullable!!.isIndeterminate = true
|
||||
ProgressManager.getInstance().progressIndicator!!.isIndeterminate = true
|
||||
processAllDescriptors(packageDesc, project)
|
||||
}
|
||||
},
|
||||
|
||||
+1
-2
@@ -29,7 +29,6 @@ import com.intellij.util.IncorrectOperationException
|
||||
import com.intellij.util.SequentialModalProgressTask
|
||||
import com.intellij.util.SequentialTask
|
||||
import org.jetbrains.kotlin.idea.inspections.KotlinUnusedImportInspection
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtImportDirective
|
||||
@@ -94,7 +93,7 @@ class KotlinOptimizeImportsRefactoringHelper : RefactoringHelper<Set<KtFile>> {
|
||||
val unusedImports = LinkedHashSet<SmartPsiElementPointer<KtImportDirective>>()
|
||||
val findRedundantImports = {
|
||||
DumbService.getInstance(project).runReadActionInSmartMode {
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicatorNullable
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicator
|
||||
val fileCount = operationData.size
|
||||
for ((i, file) in operationData.withIndex()) {
|
||||
if (!file.isValid) continue
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.PsiSearchHelper
|
||||
import com.intellij.psi.search.PsiSearchHelper.SearchCostResult.FEW_OCCURRENCES
|
||||
import com.intellij.psi.search.PsiSearchHelper.SearchCostResult.ZERO_OCCURRENCES
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
@@ -24,7 +25,6 @@ import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.search.isCheapEnoughToSearchConsideringOperators
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.getAccessorNames
|
||||
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
|
||||
import org.jetbrains.kotlin.idea.util.compat.psiSearchHelperInstance
|
||||
import org.jetbrains.kotlin.lexer.KtTokens.*
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||
@@ -83,7 +83,7 @@ class CanBeParameterInspection : AbstractKotlinInspection() {
|
||||
|
||||
val useScope = parameter.useScope
|
||||
val restrictedScope = if (useScope is GlobalSearchScope) {
|
||||
val psiSearchHelper = psiSearchHelperInstance(parameter.project)
|
||||
val psiSearchHelper = PsiSearchHelper.getInstance(parameter.project)
|
||||
for (accessorName in parameter.getAccessorNames()) {
|
||||
when (psiSearchHelper.isCheapEnoughToSearchConsideringOperators(accessorName, useScope, null, null)) {
|
||||
ZERO_OCCURRENCES -> {
|
||||
|
||||
@@ -48,7 +48,6 @@ import org.jetbrains.kotlin.idea.imports.KotlinImportOptimizer
|
||||
import org.jetbrains.kotlin.idea.imports.OptimizedImportsBuilder
|
||||
import org.jetbrains.kotlin.idea.imports.importableFqName
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtCodeFragment
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -149,7 +148,7 @@ class KotlinUnusedImportInspection : AbstractKotlinInspection() {
|
||||
val optimizedImports = KotlinImportOptimizer.prepareOptimizedImports(file, data) ?: return // return if already optimized
|
||||
|
||||
// unwrap progress indicator
|
||||
val progress = generateSequence(ProgressManager.getInstance().progressIndicatorNullable) {
|
||||
val progress = generateSequence(ProgressManager.getInstance().progressIndicator) {
|
||||
(it as? ProgressWrapper)?.originalProgressIndicator
|
||||
}.last() as DaemonProgressIndicator
|
||||
val highlightingSession = HighlightingSessionImpl.getHighlightingSession(file, progress)
|
||||
|
||||
+1
-2
@@ -43,7 +43,6 @@ import org.jetbrains.kotlin.idea.search.isCheapEnoughToSearchConsideringOperator
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.dataClassComponentFunction
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.descriptor
|
||||
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
|
||||
import org.jetbrains.kotlin.idea.util.compat.psiSearchHelperInstance
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
@@ -103,7 +102,7 @@ class MemberVisibilityCanBePrivateInspection : AbstractKotlinInspection() {
|
||||
// properties can be referred by component1/component2, which is too expensive to search, don't analyze them
|
||||
if (declaration is KtParameter && declaration.dataClassComponentFunction() != null) return false
|
||||
|
||||
val psiSearchHelper = psiSearchHelperInstance(declaration.project)
|
||||
val psiSearchHelper = PsiSearchHelper.getInstance(declaration.project)
|
||||
val useScope = declaration.useScope
|
||||
val name = declaration.name ?: return false
|
||||
val restrictedScope = if (useScope is GlobalSearchScope) {
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.PsiSearchHelper
|
||||
import com.intellij.psi.search.PsiSearchHelper.SearchCostResult
|
||||
import com.intellij.psi.search.PsiSearchHelper.SearchCostResult.*
|
||||
import com.intellij.psi.search.SearchScope
|
||||
@@ -63,7 +64,6 @@ import org.jetbrains.kotlin.idea.search.usagesSearch.getAccessorNames
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.getClassNameForCompanionObject
|
||||
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.idea.util.compat.psiSearchHelperInstance
|
||||
import org.jetbrains.kotlin.idea.util.hasActualsFor
|
||||
import org.jetbrains.kotlin.js.resolve.diagnostics.findPsi
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
@@ -123,7 +123,7 @@ class UnusedSymbolInspection : AbstractKotlinInspection() {
|
||||
|
||||
private fun isCheapEnoughToSearchUsages(declaration: KtNamedDeclaration): SearchCostResult {
|
||||
val project = declaration.project
|
||||
val psiSearchHelper = psiSearchHelperInstance(project)
|
||||
val psiSearchHelper = PsiSearchHelper.getInstance(project)
|
||||
|
||||
val usedScripts = findScriptsWithUsages(declaration)
|
||||
if (usedScripts.isNotEmpty()) {
|
||||
@@ -259,7 +259,7 @@ class UnusedSymbolInspection : AbstractKotlinInspection() {
|
||||
|
||||
private fun hasNonTrivialUsages(declaration: KtNamedDeclaration, descriptor: DeclarationDescriptor? = null): Boolean {
|
||||
val project = declaration.project
|
||||
val psiSearchHelper = psiSearchHelperInstance(project)
|
||||
val psiSearchHelper = PsiSearchHelper.getInstance(project)
|
||||
|
||||
val useScope = psiSearchHelper.getUseScope(declaration)
|
||||
val restrictedScope = if (useScope is GlobalSearchScope) {
|
||||
|
||||
+1
-2
@@ -41,7 +41,6 @@ import org.jetbrains.kotlin.idea.references.KtSimpleReference
|
||||
import org.jetbrains.kotlin.idea.runSynchronouslyWithProgress
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.searchReferencesOrMethodReferences
|
||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
|
||||
@@ -187,7 +186,7 @@ class ConvertFunctionTypeParameterToReceiverIntention : SelfTargetingRangeIntent
|
||||
runReadAction {
|
||||
val progressStep = 1.0/callables.size
|
||||
for ((i, callable) in callables.withIndex()) {
|
||||
ProgressManager.getInstance().progressIndicatorNullable!!.fraction = (i + 1) * progressStep
|
||||
ProgressManager.getInstance().progressIndicator!!.fraction = (i + 1) * progressStep
|
||||
|
||||
if (callable !is PsiNamedElement) continue
|
||||
|
||||
|
||||
+1
-2
@@ -38,7 +38,6 @@ import org.jetbrains.kotlin.idea.references.KtSimpleReference
|
||||
import org.jetbrains.kotlin.idea.runSynchronouslyWithProgress
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.searchReferencesOrMethodReferences
|
||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
@@ -126,7 +125,7 @@ class ConvertFunctionTypeReceiverToParameterIntention : SelfTargetingRangeIntent
|
||||
runReadAction {
|
||||
val progressStep = 1.0/callables.size
|
||||
for ((i, callable) in callables.withIndex()) {
|
||||
ProgressManager.getInstance().progressIndicatorNullable!!.fraction = (i + 1) * progressStep
|
||||
ProgressManager.getInstance().progressIndicator!!.fraction = (i + 1) * progressStep
|
||||
|
||||
if (callable !is KtFunction) continue
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.idea.references.KtReference
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.runSynchronouslyWithProgress
|
||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.idea.util.hasJvmFieldAnnotation
|
||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||
@@ -97,7 +96,7 @@ class ConvertPropertyToFunctionIntention : SelfTargetingIntention<KtProperty>(Kt
|
||||
runReadAction {
|
||||
val progressStep = 1.0 / callables.size
|
||||
for ((i, callable) in callables.withIndex()) {
|
||||
ProgressManager.getInstance().progressIndicatorNullable!!.fraction = (i + 1) * progressStep
|
||||
ProgressManager.getInstance().progressIndicator!!.fraction = (i + 1) * progressStep
|
||||
|
||||
if (callable !is PsiNamedElement) continue
|
||||
|
||||
|
||||
@@ -37,15 +37,14 @@ import org.jetbrains.kotlin.asJava.toLightMethods
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor
|
||||
import org.jetbrains.kotlin.idea.core.overrideImplement.OverrideImplementMembersHandler
|
||||
import org.jetbrains.kotlin.idea.core.overrideImplement.OverrideMemberChooserObject
|
||||
import org.jetbrains.kotlin.idea.refactoring.isAbstract
|
||||
import org.jetbrains.kotlin.idea.runSynchronouslyWithProgress
|
||||
import org.jetbrains.kotlin.idea.search.declarationsSearch.HierarchySearchRequest
|
||||
import org.jetbrains.kotlin.idea.search.declarationsSearch.searchInheritors
|
||||
import org.jetbrains.kotlin.idea.util.PopupChooserBuilderWrapper
|
||||
import org.jetbrains.kotlin.idea.util.application.executeCommand
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
||||
@@ -214,7 +213,7 @@ abstract class ImplementAbstractMemberIntentionBase :
|
||||
selectionMode = ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
|
||||
cellRenderer = renderer
|
||||
}
|
||||
val builder = PopupChooserBuilderWrapper<PsiElement>(list)
|
||||
val builder = PopupChooserBuilder<PsiElement>(list)
|
||||
renderer.installSpeedSearch(builder)
|
||||
builder
|
||||
.setTitle(CodeInsightBundle.message("intention.implement.abstract.method.class.chooser.title"))
|
||||
|
||||
@@ -16,14 +16,13 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.j2k
|
||||
|
||||
import com.intellij.codeInspection.dataFlow.DfaUtil
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.PsiVariable
|
||||
import org.jetbrains.kotlin.idea.util.compat.dfaCheckNullability
|
||||
import org.jetbrains.kotlin.idea.util.compat.dfaInferMethodNullability
|
||||
import org.jetbrains.kotlin.j2k.*
|
||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||
import org.jetbrains.kotlin.idea.util.compat.Nullability as IntellijNullability
|
||||
import com.intellij.codeInsight.Nullability as IntellijNullability
|
||||
|
||||
object IdeaJavaToKotlinServices : JavaToKotlinConverterServices {
|
||||
override val referenceSearcher: ReferenceSearcher
|
||||
@@ -48,10 +47,10 @@ object IdeaSuperMethodSearcher : SuperMethodsSearcher {
|
||||
|
||||
private object IdeaJavaDataFlowAnalyzerFacade : JavaDataFlowAnalyzerFacade {
|
||||
override fun variableNullability(variable: PsiVariable, context: PsiElement): Nullability =
|
||||
dfaCheckNullability(variable, context).toJ2KNullability()
|
||||
DfaUtil.checkNullability(variable, context).toJ2KNullability()
|
||||
|
||||
override fun methodNullability(method: PsiMethod): Nullability =
|
||||
dfaInferMethodNullability(method).toJ2KNullability()
|
||||
DfaUtil.inferMethodNullability(method).toJ2KNullability()
|
||||
|
||||
private fun IntellijNullability.toJ2KNullability() = when (this) {
|
||||
IntellijNullability.UNKNOWN -> Nullability.Default
|
||||
|
||||
@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
||||
import org.jetbrains.kotlin.idea.runSynchronouslyWithProgress
|
||||
import org.jetbrains.kotlin.idea.search.declarationsSearch.HierarchySearchRequest
|
||||
import org.jetbrains.kotlin.idea.search.declarationsSearch.searchInheritors
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||
@@ -73,7 +72,7 @@ class ChangeSuspendInHierarchyFix(
|
||||
private fun findAllFunctionToProcess(project: Project): Set<KtNamedFunction> {
|
||||
val result = LinkedHashSet<KtNamedFunction>()
|
||||
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicatorNullable!!
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicator!!
|
||||
|
||||
val function = element ?: return emptySet()
|
||||
val functionDescriptor = function.unsafeResolveToDescriptor() as FunctionDescriptor
|
||||
|
||||
@@ -28,10 +28,7 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.roots.JavaProjectRootsUtil
|
||||
import com.intellij.openapi.ui.DialogWrapper
|
||||
import com.intellij.openapi.ui.Messages
|
||||
import com.intellij.openapi.ui.popup.JBPopup
|
||||
import com.intellij.openapi.ui.popup.JBPopupAdapter
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory
|
||||
import com.intellij.openapi.ui.popup.LightweightWindowEvent
|
||||
import com.intellij.openapi.ui.popup.*
|
||||
import com.intellij.openapi.util.Pass
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
@@ -272,7 +269,7 @@ fun <T, E : PsiElement> getPsiElementPopup(
|
||||
}
|
||||
}
|
||||
|
||||
return with(PopupChooserBuilderWrapper<E>(list)) {
|
||||
return with(PopupChooserBuilder<E>(list)) {
|
||||
title?.let { setTitle(it) }
|
||||
renderer.installSpeedSearch(this, true)
|
||||
setItemChoosenCallback {
|
||||
|
||||
+1
-2
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.KotlinDirecto
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.analyzeConflictsInFile
|
||||
import org.jetbrains.kotlin.idea.search.projectScope
|
||||
import org.jetbrains.kotlin.idea.stubindex.KotlinExactPackagesIndex
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -74,7 +73,7 @@ class KotlinAwareDelegatingMoveDestination(
|
||||
}
|
||||
filesToProcess.flatMap {it.declarations}.forEach { it.accept(extraElementCollector) }
|
||||
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicatorNullable!!
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicator!!
|
||||
progressIndicator.pushState()
|
||||
|
||||
val extraUsages = ArrayList<UsageInfo>()
|
||||
|
||||
+1
-2
@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.idea.refactoring.invokeOnceOnCommandFinish
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.KotlinDirectoryMoveTarget
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveKotlinDeclarationsProcessor
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.analyzeConflictsInFile
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -86,7 +85,7 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
||||
for ((index, usageInfo) in infos.withIndex()) {
|
||||
if (usageInfo !is FileUsagesWrapper) continue
|
||||
|
||||
ProgressManager.getInstance().progressIndicatorNullable?.text2 = "Processing ${usageInfo.psiFile.name}"
|
||||
ProgressManager.getInstance().progressIndicator?.text2 = "Processing ${usageInfo.psiFile.name}"
|
||||
|
||||
runReadAction {
|
||||
analyzeConflictsInFile(usageInfo.psiFile, usageInfo.usages, moveTarget, files, conflicts) {
|
||||
|
||||
@@ -43,7 +43,6 @@ import org.jetbrains.kotlin.idea.refactoring.fqName.isImported
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference.ShorteningMode
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable
|
||||
import org.jetbrains.kotlin.load.java.descriptors.JavaCallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -474,7 +473,7 @@ fun postProcessMoveUsages(
|
||||
val nonCodeUsages = ArrayList<NonCodeUsageInfo>()
|
||||
|
||||
val progressStep = 1.0/sortedUsages.size
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicatorNullable
|
||||
val progressIndicator = ProgressManager.getInstance().progressIndicator
|
||||
progressIndicator?.text = "Updating usages..."
|
||||
usageLoop@ for ((i, usage) in sortedUsages.withIndex()) {
|
||||
progressIndicator?.fraction = (i + 1) * progressStep
|
||||
|
||||
+3
-3
@@ -24,7 +24,7 @@ import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.searches.MethodReferencesSearch
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
import com.intellij.psi.util.PsiUtil
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.search.restrictToKotlinSources
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
@@ -39,7 +39,7 @@ class DefaultAnnotationMethodKotlinImplicitReferenceSearcher :
|
||||
private val PsiMethod.isDefaultAnnotationMethod: Boolean
|
||||
get() = PsiUtil.isAnnotationMethod(this) && name == PsiAnnotation.DEFAULT_REFERENCED_METHOD_NAME && parameterList.parametersCount == 0
|
||||
|
||||
private fun createReferenceProcessor(consumer: ExecutorProcessor<PsiReference>) = object : ReadActionProcessor<PsiReference>() {
|
||||
private fun createReferenceProcessor(consumer: Processor<in PsiReference>) = object : ReadActionProcessor<PsiReference>() {
|
||||
override fun processInReadAction(reference: PsiReference): Boolean {
|
||||
if (reference !is KtSimpleNameReference) return true
|
||||
val annotationEntry = reference.expression.getParentOfTypeAndBranch<KtAnnotationEntry> { typeReference } ?: return true
|
||||
@@ -49,7 +49,7 @@ class DefaultAnnotationMethodKotlinImplicitReferenceSearcher :
|
||||
}
|
||||
}
|
||||
|
||||
override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||
override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: Processor<in PsiReference>) {
|
||||
runReadAction {
|
||||
val method = queryParameters.method
|
||||
if (!method.isDefaultAnnotationMethod) return@runReadAction null
|
||||
|
||||
+2
-2
@@ -25,6 +25,7 @@ import com.intellij.psi.search.LocalSearchScope
|
||||
import com.intellij.psi.search.SearchScope
|
||||
import com.intellij.psi.search.searches.AnnotatedElementsSearch
|
||||
import com.intellij.psi.util.PsiUtilCore
|
||||
import com.intellij.util.Processor
|
||||
import com.intellij.util.QueryExecutor
|
||||
import com.intellij.util.indexing.FileBasedIndex
|
||||
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult.NO_MATCH
|
||||
@@ -32,7 +33,6 @@ import org.jetbrains.kotlin.asJava.ImpreciseResolveResult.UNSURE
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.asJava.toPsiParameters
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.search.PsiBasedClassResolver
|
||||
import org.jetbrains.kotlin.idea.stubindex.KotlinAnnotationsIndex
|
||||
@@ -46,7 +46,7 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
|
||||
class KotlinAnnotatedElementsSearcher : QueryExecutor<PsiModifierListOwner, AnnotatedElementsSearch.Parameters> {
|
||||
|
||||
override fun execute(p: AnnotatedElementsSearch.Parameters, consumer: ExecutorProcessor<PsiModifierListOwner>): Boolean {
|
||||
override fun execute(p: AnnotatedElementsSearch.Parameters, consumer: Processor<in PsiModifierListOwner>): Boolean {
|
||||
return processAnnotatedMembers(p.annotationClass, p.scope) { declaration ->
|
||||
when (declaration) {
|
||||
is KtClass -> {
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@ import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.searches.ClassesWithAnnotatedMembersSearch
|
||||
import com.intellij.psi.search.searches.ScopedQueryExecutor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.search.allScope
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
@@ -32,7 +32,7 @@ class KotlinClassesWithAnnotatedMembersSearcher : ScopedQueryExecutor<PsiClass,
|
||||
return GlobalSearchScope.getScopeRestrictedByFileTypes(param.annotationClass.project.allScope(), KotlinFileType.INSTANCE)
|
||||
}
|
||||
|
||||
override fun execute(queryParameters: ClassesWithAnnotatedMembersSearch.Parameters, consumer: ExecutorProcessor<PsiClass>): Boolean {
|
||||
override fun execute(queryParameters: ClassesWithAnnotatedMembersSearch.Parameters, consumer: Processor<in PsiClass>): Boolean {
|
||||
val processed = hashSetOf<KtClassOrObject>()
|
||||
return KotlinAnnotatedElementsSearcher.processAnnotatedMembers(queryParameters.annotationClass,
|
||||
queryParameters.scope,
|
||||
|
||||
+2
-2
@@ -19,13 +19,13 @@ package org.jetbrains.kotlin.idea.search.ideaExtensions
|
||||
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 com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.util.hasJavaResolutionFacade
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.processDelegationCallConstructorUsages
|
||||
|
||||
class KotlinConstructorDelegationCallReferenceSearcher : QueryExecutorBase<PsiReference, SearchParameters>(true) {
|
||||
override fun processQuery(queryParameters: SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||
override fun processQuery(queryParameters: SearchParameters, consumer: Processor<in PsiReference>) {
|
||||
val method = queryParameters.method
|
||||
if (!method.isConstructor) return
|
||||
if (!method.hasJavaResolutionFacade()) return
|
||||
|
||||
+2
-2
@@ -19,12 +19,12 @@ package org.jetbrains.kotlin.idea.search.ideaExtensions
|
||||
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 com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.util.hasJavaResolutionFacade
|
||||
import org.jetbrains.kotlin.idea.search.usagesSearch.operators.OperatorReferenceSearcher
|
||||
|
||||
class KotlinConventionMethodReferencesSearcher : QueryExecutorBase<PsiReference, MethodReferencesSearch.SearchParameters>(true) {
|
||||
override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||
override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: Processor<in PsiReference>) {
|
||||
val method = queryParameters.method
|
||||
if (!method.hasJavaResolutionFacade()) return
|
||||
|
||||
|
||||
+2
-3
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightClass
|
||||
import org.jetbrains.kotlin.idea.search.declarationsSearch.forEachImplementation
|
||||
import org.jetbrains.kotlin.idea.search.declarationsSearch.forEachOverridingMethod
|
||||
@@ -43,7 +42,7 @@ import org.jetbrains.kotlin.psi.psiUtil.contains
|
||||
import java.util.*
|
||||
|
||||
class KotlinDefinitionsSearcher : QueryExecutor<PsiElement, DefinitionsScopedSearch.SearchParameters> {
|
||||
override fun execute(queryParameters: DefinitionsScopedSearch.SearchParameters, consumer: ExecutorProcessor<PsiElement>): Boolean {
|
||||
override fun execute(queryParameters: DefinitionsScopedSearch.SearchParameters, consumer: Processor<in PsiElement>): Boolean {
|
||||
val consumer = skipDelegatedMethodsConsumer(consumer)
|
||||
val element = queryParameters.element
|
||||
val scope = queryParameters.scope
|
||||
@@ -92,7 +91,7 @@ class KotlinDefinitionsSearcher : QueryExecutor<PsiElement, DefinitionsScopedSea
|
||||
|
||||
companion object {
|
||||
|
||||
private fun skipDelegatedMethodsConsumer(baseConsumer: ExecutorProcessor<PsiElement>): Processor<PsiElement> {
|
||||
private fun skipDelegatedMethodsConsumer(baseConsumer: Processor<in PsiElement>): Processor<PsiElement> {
|
||||
return Processor { element ->
|
||||
if (isDelegated(element)) {
|
||||
return@Processor true
|
||||
|
||||
+2
-2
@@ -21,8 +21,8 @@ import com.intellij.openapi.progress.ProgressManager
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.searches.DirectClassInheritorsSearch
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.asJava.toLightClassWithBuiltinMapping
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightClass
|
||||
import org.jetbrains.kotlin.idea.search.fileScope
|
||||
import org.jetbrains.kotlin.idea.stubindex.KotlinSourceFilterScope
|
||||
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.idea.stubindex.KotlinTypeAliasByExpansionShortNameIn
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
|
||||
open class KotlinDirectInheritorsSearcher : QueryExecutorBase<PsiClass, DirectClassInheritorsSearch.SearchParameters>(true) {
|
||||
override fun processQuery(queryParameters: DirectClassInheritorsSearch.SearchParameters, consumer: ExecutorProcessor<PsiClass>) {
|
||||
override fun processQuery(queryParameters: DirectClassInheritorsSearch.SearchParameters, consumer: Processor<in PsiClass>) {
|
||||
val baseClass = queryParameters.classToProcess
|
||||
|
||||
val name = baseClass.name ?: return
|
||||
|
||||
+3
-3
@@ -24,8 +24,8 @@ import com.intellij.psi.search.UsageSearchContext
|
||||
import com.intellij.psi.search.searches.MethodReferencesSearch
|
||||
import com.intellij.psi.util.MethodSignatureUtil
|
||||
import com.intellij.psi.util.TypeConversionUtil
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.asJava.toLightMethods
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
import org.jetbrains.kotlin.idea.references.SyntheticPropertyAccessorReference
|
||||
import org.jetbrains.kotlin.idea.references.readWriteAccess
|
||||
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.psi.KtParameter
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
|
||||
class KotlinOverridingMethodReferenceSearcher : MethodUsagesSearcher() {
|
||||
override fun processQuery(p: MethodReferencesSearch.SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||
override fun processQuery(p: MethodReferencesSearch.SearchParameters, consumer: Processor<in PsiReference>) {
|
||||
val method = p.method
|
||||
val isConstructor = p.project.runReadActionInSmartMode { method.isConstructor }
|
||||
if (isConstructor) {
|
||||
@@ -84,7 +84,7 @@ class KotlinOverridingMethodReferenceSearcher : MethodUsagesSearcher() {
|
||||
ref: PsiReference,
|
||||
refElement: PsiElement?,
|
||||
method: PsiMethod,
|
||||
consumer: ExecutorProcessor<PsiReference>
|
||||
consumer: Processor<in PsiReference>
|
||||
): Boolean {
|
||||
val isGetter = JvmAbi.isGetterName(method.name)
|
||||
|
||||
|
||||
+1
-2
@@ -24,7 +24,6 @@ import com.intellij.util.Processor
|
||||
import com.intellij.util.QueryExecutor
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||
@@ -35,7 +34,7 @@ import org.jetbrains.kotlin.psi.KtCallableDeclaration
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
|
||||
class KotlinOverridingMethodsWithGenericsSearcher : QueryExecutor<PsiMethod, OverridingMethodsSearch.SearchParameters> {
|
||||
override fun execute(p: OverridingMethodsSearch.SearchParameters, consumer: ExecutorProcessor<PsiMethod>): Boolean {
|
||||
override fun execute(p: OverridingMethodsSearch.SearchParameters, consumer: Processor<in PsiMethod>): Boolean {
|
||||
val method = p.method
|
||||
if (method !is KtLightMethod) return true
|
||||
|
||||
|
||||
+2
-2
@@ -22,15 +22,15 @@ import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.UsageSearchContext
|
||||
import com.intellij.psi.search.searches.MethodReferencesSearch
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import org.jetbrains.kotlin.idea.search.restrictToKotlinSources
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
|
||||
|
||||
class KotlinPropertyAccessorsReferenceSearcher : QueryExecutorBase<PsiReference, MethodReferencesSearch.SearchParameters>(true) {
|
||||
override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||
override fun processQuery(queryParameters: MethodReferencesSearch.SearchParameters, consumer: Processor<in PsiReference>) {
|
||||
val method = queryParameters.method
|
||||
val onlyKotlinFiles = queryParameters.effectiveSearchScope.restrictToKotlinSources()
|
||||
if (onlyKotlinFiles == GlobalSearchScope.EMPTY_SCOPE) return
|
||||
|
||||
@@ -23,7 +23,7 @@ import com.intellij.psi.impl.cache.TodoCacheManager
|
||||
import com.intellij.psi.search.IndexPattern
|
||||
import com.intellij.psi.search.IndexPatternOccurrence
|
||||
import com.intellij.psi.search.searches.IndexPatternSearch
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||
import org.jetbrains.kotlin.psi.KtTreeVisitorVoid
|
||||
|
||||
@@ -35,7 +35,7 @@ data class KotlinTodoOccurrence(private val _file: PsiFile, private val _textRan
|
||||
}
|
||||
|
||||
class KotlinTodoSearcher : QueryExecutorBase<IndexPatternOccurrence, IndexPatternSearch.SearchParameters>(true) {
|
||||
override fun processQuery(queryParameters: IndexPatternSearch.SearchParameters, consumer: ExecutorProcessor<IndexPatternOccurrence>) {
|
||||
override fun processQuery(queryParameters: IndexPatternSearch.SearchParameters, consumer: Processor<in IndexPatternOccurrence>) {
|
||||
var pattern = queryParameters.pattern
|
||||
if (pattern != null && !pattern.patternString.contains("TODO", true)) return
|
||||
if (pattern == null) {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.slicer
|
||||
|
||||
import com.intellij.codeInsight.Nullability
|
||||
import com.intellij.ide.util.treeView.AbstractTreeStructure
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup
|
||||
import com.intellij.psi.PsiElement
|
||||
@@ -27,8 +28,6 @@ import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.references.KtReference
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.idea.slicer.compat.PsiElement_N183_NN191
|
||||
import org.jetbrains.kotlin.idea.util.compat.Nullability
|
||||
import org.jetbrains.kotlin.idea.util.compat.SliceNullnessAnalyzerBaseEx
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isPlainWithEscapes
|
||||
import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
|
||||
@@ -50,8 +49,8 @@ class KotlinSliceProvider : SliceLanguageSupportProvider, SliceUsageTransformer
|
||||
|
||||
val leafAnalyzer by lazy { SliceLeafAnalyzer(LEAF_ELEMENT_EQUALITY, this) }
|
||||
val nullnessAnalyzer: SliceNullnessAnalyzerBase by lazy {
|
||||
object : SliceNullnessAnalyzerBaseEx(LEAF_ELEMENT_EQUALITY, this) {
|
||||
override fun checkNullabilityEx(element: PsiElement?): Nullability {
|
||||
object : SliceNullnessAnalyzerBase(LEAF_ELEMENT_EQUALITY, this) {
|
||||
override fun checkNullability(element: PsiElement?): Nullability {
|
||||
val types = when (element) {
|
||||
is KtCallableDeclaration -> listOfNotNull((element.resolveToDescriptorIfAny() as? CallableDescriptor)?.returnType)
|
||||
is KtDeclaration -> emptyList()
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.util
|
||||
|
||||
import com.intellij.openapi.ui.popup.PopupChooserBuilder
|
||||
import javax.swing.JList
|
||||
|
||||
// BUNCH: 181
|
||||
@Suppress("IncompatibleAPI")
|
||||
class PopupChooserBuilderWrapper<T>(list: JList<T>): PopupChooserBuilder<T>(list)
|
||||
@@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@file:Suppress("MissingRecentApi", "IncompatibleAPI")
|
||||
|
||||
package org.jetbrains.kotlin.idea.util.compat
|
||||
|
||||
import com.intellij.codeInsight.Nullability as IntellijNullability
|
||||
import com.intellij.codeInspection.dataFlow.DfaUtil
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.PsiVariable
|
||||
import com.intellij.slicer.SliceLanguageSupportProvider
|
||||
import com.intellij.slicer.SliceLeafEquality
|
||||
import com.intellij.slicer.SliceNullnessAnalyzerBase
|
||||
|
||||
// BUNCH: 181
|
||||
typealias Nullability = IntellijNullability
|
||||
|
||||
// BUNCH: 181
|
||||
fun dfaCheckNullability(variable: PsiVariable?, context: PsiElement?): Nullability =
|
||||
DfaUtil.checkNullability(variable, context)
|
||||
|
||||
// BUNCH: 181
|
||||
fun dfaInferMethodNullability(method: PsiMethod): Nullability =
|
||||
DfaUtil.inferMethodNullability(method)
|
||||
|
||||
// BUNCH: 181
|
||||
abstract class SliceNullnessAnalyzerBaseEx(
|
||||
leafEquality: SliceLeafEquality,
|
||||
provider: SliceLanguageSupportProvider
|
||||
) : SliceNullnessAnalyzerBase(leafEquality, provider) {
|
||||
override fun checkNullability(element: PsiElement?): Nullability {
|
||||
return checkNullabilityEx(element)
|
||||
}
|
||||
|
||||
abstract fun checkNullabilityEx(element: PsiElement?): Nullability
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase;
|
||||
import org.jetbrains.kotlin.test.HierarchyViewTestFixture;
|
||||
import com.intellij.testFramework.codeInsight.hierarchy.HierarchyViewTestFixture;
|
||||
import org.jetbrains.kotlin.test.JUnit3WithIdeaConfigurationRunner;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
|
||||
@@ -221,9 +221,7 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() {
|
||||
|
||||
private fun createTestModuleByName(name: String): Module {
|
||||
val newModuleDir = runWriteAction { VfsUtil.createDirectoryIfMissing(project.baseDir, name) }
|
||||
|
||||
// BUNCH: 181
|
||||
@Suppress("IncompatibleAPI") val newModule = createModuleAt(name, project, JavaModuleType.getModuleType(), newModuleDir.path)
|
||||
val newModule = createModuleAt(name, project, JavaModuleType.getModuleType(), newModuleDir.path)
|
||||
|
||||
// Return type was changed, but it's not used. BUNCH: 183
|
||||
@Suppress("MissingRecentApi")
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.test
|
||||
|
||||
import com.intellij.testFramework.codeInsight.hierarchy.HierarchyViewTestFixture
|
||||
|
||||
// BUNCH: 181
|
||||
@Suppress("IncompatibleAPI")
|
||||
class HierarchyViewTestFixture : HierarchyViewTestFixture()
|
||||
@@ -1,145 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.test;
|
||||
|
||||
import com.intellij.ide.hierarchy.HierarchyNodeDescriptor;
|
||||
import com.intellij.ide.hierarchy.HierarchyTreeStructure;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Copied from com.intellij.testFramework.codeInsight.hierarchy.HierarchyViewTestFixture for compatibility reasons.
|
||||
*
|
||||
* Use org.jetbrains.kotlin.test.HierarchyViewTestFixture typealias instead.
|
||||
*
|
||||
* BUNCH: 181
|
||||
*/
|
||||
@SuppressWarnings("ALL")
|
||||
public class HierarchyViewTestFixtureCompat {
|
||||
private static final String NODE_ELEMENT_NAME = "node";
|
||||
private static final String ANY_NODES_ELEMENT_NAME = "any";
|
||||
private static final String TEXT_ATTR_NAME = "text";
|
||||
private static final String BASE_ATTR_NAME = "base";
|
||||
|
||||
public void doHierarchyTest(@NotNull HierarchyTreeStructure treeStructure,
|
||||
@NotNull String expectedStructure) {
|
||||
try {
|
||||
checkHierarchyTreeStructure(treeStructure, JDOMUtil.load(expectedStructure));
|
||||
}
|
||||
catch (Throwable e) {
|
||||
Assert.assertEquals("XML structure comparison for your convenience, actual failure details BELOW",
|
||||
expectedStructure, dump(treeStructure, null, 0));
|
||||
//noinspection CallToPrintStackTrace
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String dump(@NotNull HierarchyTreeStructure treeStructure,
|
||||
@Nullable HierarchyNodeDescriptor descriptor,
|
||||
int level) {
|
||||
StringBuilder s = new StringBuilder();
|
||||
dump(treeStructure, descriptor, level, s);
|
||||
return s.toString();
|
||||
}
|
||||
|
||||
private static void dump(@NotNull HierarchyTreeStructure treeStructure,
|
||||
@Nullable HierarchyNodeDescriptor descriptor,
|
||||
int level,
|
||||
@NotNull StringBuilder b) {
|
||||
if (level > 10) {
|
||||
for (int i = 0; i < level; i++) b.append(" ");
|
||||
b.append("<Probably infinite part skipped>\n");
|
||||
return;
|
||||
}
|
||||
if (descriptor == null) descriptor = (HierarchyNodeDescriptor)treeStructure.getRootElement();
|
||||
for (int i = 0; i < level; i++) b.append(" ");
|
||||
descriptor.update();
|
||||
b.append("<node text=\"").append(descriptor.getHighlightedText().getText()).append("\"")
|
||||
.append(treeStructure.getBaseDescriptor() == descriptor ? " base=\"true\"" : "");
|
||||
|
||||
Object[] children = treeStructure.getChildElements(descriptor);
|
||||
if (children.length > 0) {
|
||||
b.append(">\n");
|
||||
for (Object o : children) {
|
||||
HierarchyNodeDescriptor d = (HierarchyNodeDescriptor)o;
|
||||
dump(treeStructure, d, level + 1, b);
|
||||
}
|
||||
for (int i = 0; i < level; i++) b.append(" ");
|
||||
b.append("</node>\n");
|
||||
}
|
||||
else {
|
||||
b.append("/>\n");
|
||||
}
|
||||
}
|
||||
|
||||
private static void checkHierarchyTreeStructure(@NotNull HierarchyTreeStructure treeStructure,
|
||||
@Nullable Element rootElement) {
|
||||
HierarchyNodeDescriptor rootNodeDescriptor = (HierarchyNodeDescriptor)treeStructure.getRootElement();
|
||||
rootNodeDescriptor.update();
|
||||
if (rootElement == null || !NODE_ELEMENT_NAME.equals(rootElement.getName())) {
|
||||
throw new IllegalArgumentException("Incorrect root element in verification resource");
|
||||
}
|
||||
checkNodeDescriptorRecursively(treeStructure, rootNodeDescriptor, rootElement);
|
||||
}
|
||||
|
||||
private static void checkNodeDescriptorRecursively(@NotNull HierarchyTreeStructure treeStructure,
|
||||
@NotNull HierarchyNodeDescriptor descriptor,
|
||||
@NotNull Element expectedElement) {
|
||||
checkBaseNode(treeStructure, descriptor, expectedElement);
|
||||
checkContent(descriptor, expectedElement);
|
||||
checkChildren(treeStructure, descriptor, expectedElement);
|
||||
}
|
||||
|
||||
private static void checkBaseNode(@NotNull HierarchyTreeStructure treeStructure,
|
||||
@NotNull HierarchyNodeDescriptor descriptor,
|
||||
@NotNull Element expectedElement) {
|
||||
String baseAttrValue = expectedElement.getAttributeValue(BASE_ATTR_NAME);
|
||||
HierarchyNodeDescriptor baseDescriptor = treeStructure.getBaseDescriptor();
|
||||
boolean mustBeBase = "true".equalsIgnoreCase(baseAttrValue);
|
||||
Assert.assertTrue("Incorrect base node", mustBeBase ? baseDescriptor == descriptor : baseDescriptor != descriptor);
|
||||
}
|
||||
|
||||
private static void checkContent(@NotNull HierarchyNodeDescriptor descriptor,
|
||||
@NotNull Element expectedElement) {
|
||||
Assert.assertEquals(expectedElement.getAttributeValue(TEXT_ATTR_NAME), descriptor.getHighlightedText().getText());
|
||||
}
|
||||
|
||||
private static void checkChildren(@NotNull HierarchyTreeStructure treeStructure,
|
||||
@NotNull HierarchyNodeDescriptor descriptor,
|
||||
@NotNull Element element) {
|
||||
if (element.getChild(ANY_NODES_ELEMENT_NAME) != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Object[] children = treeStructure.getChildElements(descriptor);
|
||||
//noinspection unchecked
|
||||
List<Element> expectedChildren = new ArrayList<>(element.getChildren(NODE_ELEMENT_NAME));
|
||||
|
||||
StringBuilder messageBuilder = new StringBuilder("Actual children of [" + descriptor.getHighlightedText().getText() + "]:\n");
|
||||
for (Object child : children) {
|
||||
HierarchyNodeDescriptor nodeDescriptor = (HierarchyNodeDescriptor)child;
|
||||
nodeDescriptor.update();
|
||||
messageBuilder.append(" [").append(nodeDescriptor.getHighlightedText().getText()).append("]\n");
|
||||
}
|
||||
Assert.assertEquals(messageBuilder.toString(), expectedChildren.size(), children.length);
|
||||
|
||||
Arrays.sort(children, Comparator.comparing(child -> ((HierarchyNodeDescriptor)child).getHighlightedText().getText()));
|
||||
|
||||
Collections.sort(expectedChildren, Comparator.comparing(child -> child.getAttributeValue(TEXT_ATTR_NAME)));
|
||||
|
||||
//noinspection unchecked
|
||||
Iterator<Element> iterator = expectedChildren.iterator();
|
||||
for (Object child : children) {
|
||||
checkNodeDescriptorRecursively(treeStructure, ((HierarchyNodeDescriptor)child), iterator.next());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -335,8 +335,6 @@ open class DelegatingProgressIndicator : WrappedProgressIndicator, StandardProgr
|
||||
}
|
||||
|
||||
constructor() {
|
||||
// BUNCH: 181
|
||||
@Suppress("IncompatibleAPI")
|
||||
val indicator: ProgressIndicator? = ProgressManager.getInstance().progressIndicator
|
||||
delegate = indicator ?: EmptyProgressIndicator()
|
||||
}
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ import com.intellij.psi.PsiReference
|
||||
import com.intellij.psi.search.LocalSearchScope
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
import com.intellij.psi.xml.XmlAttributeValue
|
||||
import org.jetbrains.kotlin.compatibility.ExecutorProcessor
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToCall
|
||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.resolve.source.getPsi
|
||||
|
||||
|
||||
class AndroidExtensionsReferenceSearchExecutor : QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters>(true) {
|
||||
override fun processQuery(queryParameters: ReferencesSearch.SearchParameters, consumer: ExecutorProcessor<PsiReference>) {
|
||||
override fun processQuery(queryParameters: ReferencesSearch.SearchParameters, consumer: Processor<in PsiReference>) {
|
||||
val elementToSearch = queryParameters.elementToSearch as? XmlAttributeValue ?: return
|
||||
val scopeElements = (queryParameters.effectiveSearchScope as? LocalSearchScope)?.scope ?: return
|
||||
val referenceName = elementToSearch.value?.substringAfterLast("/") ?: return
|
||||
|
||||
Reference in New Issue
Block a user