replace with setter: skip non-primitive assignment (IDEA-133102)

This commit is contained in:
Anna Kozlova
2014-11-19 14:01:19 +01:00
parent 78e51d0db4
commit b239f91e8e
2 changed files with 12 additions and 1 deletions
@@ -2785,7 +2785,10 @@ public class HighlightUtil extends HighlightUtilBase {
final PsiMethod setterPrototype = PropertyUtil.generateSetterPrototype(psiField);
final PsiMethod setter = containingClass.findMethodBySignature(setterPrototype, true);
if (setter != null && PsiUtil.isAccessible(setter, place, accessObjectClass)) {
QuickFixAction.registerQuickFixAction(error, QUICK_FIX_FACTORY.createReplaceInaccessibleFieldWithGetterSetterFix(place, setter, true));
final PsiElement element = PsiTreeUtil.skipParentsOfType(place, PsiParenthesizedExpression.class);
if (element instanceof PsiAssignmentExpression && ((PsiAssignmentExpression)element).getOperationTokenType() == JavaTokenType.EQ) {
QuickFixAction.registerQuickFixAction(error, QUICK_FIX_FACTORY.createReplaceInaccessibleFieldWithGetterSetterFix(place, setter, true));
}
}
}
else if (PsiUtil.isAccessedForReading((PsiExpression)place)) {
@@ -0,0 +1,8 @@
// "Replace with setter" "false"
import java.io.File;
class Foo {
void foo(File f) {
f.<caret>path += "//";
}
}