Pull Up: Resolve target light class separately for each Java field usage as it may change along the way

This commit is contained in:
Alexey Sedunov
2015-08-14 18:55:24 +03:00
parent 46fe7dc7a1
commit 982655f553
@@ -152,13 +152,12 @@ public class JavaToKotlinPreconversionPullUpHelper(
if (originalMember is PsiField) {
val usages = fieldsToUsages[originalMember] ?: return
val firstUsage = usages.firstOrNull() ?: return
val fieldDescriptor = firstUsage.fieldDescriptor
val targetLightClass = (firstUsage.reference?.resolve() as? PsiField)?.containingClass ?: return
val getter = targetLightClass.findMethodBySignature(fieldDescriptor.getterPrototype, false)
val setter = targetLightClass.findMethodBySignature(fieldDescriptor.setterPrototype, false)
for (usage in usages) {
val fieldDescriptor = usage.fieldDescriptor
val targetLightClass = (usage.reference?.resolve() as? PsiField)?.containingClass ?: return
val getter = targetLightClass.findMethodBySignature(fieldDescriptor.getterPrototype, false)
val setter = targetLightClass.findMethodBySignature(fieldDescriptor.setterPrototype, false)
EncapsulateFieldHelper
.getHelper(usage.element!!.language)
?.processUsage(usage, encapsulateFieldsDescriptor, setter, getter)