allow returning multiple PsiMethod wrappers for a JetFunction or JetPropertyAccessor; use that for handling Java usages through old-style and new-style facades

#KT-9102 Fixed
This commit is contained in:
Dmitry Jemerov
2015-09-11 19:50:49 +02:00
parent 4d09280aa8
commit ab58dc3586
24 changed files with 223 additions and 47 deletions
@@ -223,8 +223,7 @@ public class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, Referenc
private fun searchPropertyMethods(queryParameters: ReferencesSearch.SearchParameters, parameter: JetParameter) {
val propertyMethods = runReadAction { LightClassUtil.getLightClassPropertyMethods(parameter) }
searchNamedElement(queryParameters, propertyMethods.getter)
searchNamedElement(queryParameters, propertyMethods.setter)
propertyMethods.allDeclarations.forEach { searchNamedElement(queryParameters, it) }
}
private fun searchDataClassComponentUsages(queryParameters: ReferencesSearch.SearchParameters,
@@ -245,8 +244,10 @@ public class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, Referenc
val function = element as JetFunction
val name = function.getName()
if (name != null) {
val method = runReadAction { LightClassUtil.getLightClassMethod(function) }
searchNamedElement(queryParameters, method)
val methods = runReadAction { LightClassUtil.getLightClassMethods(function) }
for (method in methods) {
searchNamedElement(queryParameters, method)
}
}
val staticFromCompanionObject = runReadAction { findStaticMethodFromCompanionObject(element) }
@@ -257,10 +258,7 @@ public class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, Referenc
is JetProperty -> {
val propertyMethods = runReadAction { LightClassUtil.getLightClassPropertyMethods(element) }
searchNamedElement(queryParameters, propertyMethods.getter)
searchNamedElement(queryParameters, propertyMethods.setter)
searchNamedElement(queryParameters, propertyMethods.backingField)
propertyMethods.allDeclarations.forEach { searchNamedElement(queryParameters, it) }
}
is JetParameter -> {