KT-8718 KNPE at PropertyUsagesSearchHelper.makeItemList() on erasing parameter name
#KT-8718 Fixed
This commit is contained in:
+2
-1
@@ -70,6 +70,7 @@ public class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, Referenc
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun searchNamedArguments(parameter: JetParameter, queryParameters: ReferencesSearch.SearchParameters) {
|
private fun searchNamedArguments(parameter: JetParameter, queryParameters: ReferencesSearch.SearchParameters) {
|
||||||
|
val parameterName = parameter.name ?: return
|
||||||
val function = parameter.ownerFunction ?: return
|
val function = parameter.ownerFunction ?: return
|
||||||
if (function.nameAsName?.isSpecial ?: true) return
|
if (function.nameAsName?.isSpecial ?: true) return
|
||||||
val project = function.project
|
val project = function.project
|
||||||
@@ -83,7 +84,7 @@ public class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, Referenc
|
|||||||
namedArgsScope = GlobalSearchScope.filesScope(project, filesWithFunctionName.asList())
|
namedArgsScope = GlobalSearchScope.filesScope(project, filesWithFunctionName.asList())
|
||||||
}
|
}
|
||||||
|
|
||||||
queryParameters.optimizer.searchWord(parameter.name!!,
|
queryParameters.optimizer.searchWord(parameterName,
|
||||||
namedArgsScope,
|
namedArgsScope,
|
||||||
KOTLIN_NAMED_ARGUMENT_SEARCH_CONTEXT,
|
KOTLIN_NAMED_ARGUMENT_SEARCH_CONTEXT,
|
||||||
true,
|
true,
|
||||||
|
|||||||
+4
-2
@@ -251,6 +251,8 @@ class PropertyUsagesSearchHelper(
|
|||||||
override fun makeItemList(target: UsagesSearchTarget<JetNamedDeclaration>): List<UsagesSearchRequestItem> {
|
override fun makeItemList(target: UsagesSearchTarget<JetNamedDeclaration>): List<UsagesSearchRequestItem> {
|
||||||
val element = target.element
|
val element = target.element
|
||||||
if (element is JetParameter) {
|
if (element is JetParameter) {
|
||||||
|
val parameterName = element.name ?: return emptyList()
|
||||||
|
|
||||||
val realUsagesScope = element.useScope and target.effectiveScope
|
val realUsagesScope = element.useScope and target.effectiveScope
|
||||||
val realUsagesTarget = target.withScope(realUsagesScope)
|
val realUsagesTarget = target.withScope(realUsagesScope)
|
||||||
val realUsagesFilter = makeFilter(target) and !(PsiReference::isNamedArgumentUsage).searchFilter
|
val realUsagesFilter = makeFilter(target) and !(PsiReference::isNamedArgumentUsage).searchFilter
|
||||||
@@ -271,10 +273,10 @@ class PropertyUsagesSearchHelper(
|
|||||||
scope = JetSourceFilterScope.kotlinSourcesAndLibraries(scope, element.project)
|
scope = JetSourceFilterScope.kotlinSourcesAndLibraries(scope, element.project)
|
||||||
}
|
}
|
||||||
|
|
||||||
val additionalFilter1 = AdditionalFileFilter(element.name!!, KOTLIN_NAMED_ARGUMENT_SEARCH_CONTEXT, true)
|
val additionalFilter1 = AdditionalFileFilter(parameterName, KOTLIN_NAMED_ARGUMENT_SEARCH_CONTEXT, true)
|
||||||
val additionalFilter2 = AdditionalFileFilter(function.name!!, UsageSearchContext.IN_CODE, true)
|
val additionalFilter2 = AdditionalFileFilter(function.name!!, UsageSearchContext.IN_CODE, true)
|
||||||
val namedArgsRequest = UsagesSearchRequestItem(target.withScope(scope),
|
val namedArgsRequest = UsagesSearchRequestItem(target.withScope(scope),
|
||||||
listOf(element.name!!),
|
listOf(parameterName),
|
||||||
(PsiReference::isNamedArgumentUsage).searchFilter and makeFilter(target),
|
(PsiReference::isNamedArgumentUsage).searchFilter and makeFilter(target),
|
||||||
additionalFileFilters = listOf(additionalFilter1, additionalFilter2))
|
additionalFileFilters = listOf(additionalFilter1, additionalFilter2))
|
||||||
return listOf(realUsagesRequest, namedArgsRequest)
|
return listOf(realUsagesRequest, namedArgsRequest)
|
||||||
|
|||||||
Reference in New Issue
Block a user