Optimize KotlinPropertyAccessorsReferenceSearcher for case of no kt-files

Property names by accessors can be computed without resolving
java descriptors

 #KT-11477 Fixed
 #KT-16890 Fixed
This commit is contained in:
Denis Zharkov
2018-07-03 16:02:13 +03:00
parent 2d50ad82a5
commit 22a9cecfe0
2 changed files with 20 additions and 26 deletions
@@ -59,11 +59,7 @@ interface SyntheticJavaPropertyDescriptor : PropertyDescriptor {
val originalGetterOrSetter = getterOrSetter.original
val names = listOfNotNull(
propertyNameByGetMethodName(name),
propertyNameBySetMethodName(name, withIsPrefix = true),
propertyNameBySetMethodName(name, withIsPrefix = false)
)
val names = propertyNamesByAccessorName(name)
return names
.flatMap {
@@ -76,6 +72,12 @@ interface SyntheticJavaPropertyDescriptor : PropertyDescriptor {
.firstOrNull { originalGetterOrSetter == it.getMethod || originalGetterOrSetter == it.setMethod }
}
fun propertyNamesByAccessorName(name: Name): List<Name> = listOfNotNull(
propertyNameByGetMethodName(name),
propertyNameBySetMethodName(name, withIsPrefix = true),
propertyNameBySetMethodName(name, withIsPrefix = false)
)
fun findByGetterOrSetter(getterOrSetter: FunctionDescriptor, syntheticScope: SyntheticScope) =
findByGetterOrSetter(getterOrSetter,
object : SyntheticScopes {