From 6a43ae3260a56de9ef9ff2aaec3be677aa59c1db Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 8 Oct 2009 16:24:56 +0400 Subject: [PATCH] push down: show conflict if wrong field would be accessed (IDEADEV-40753) --- .../refactoring/util/RefactoringConflictsUtil.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/java/java-impl/src/com/intellij/refactoring/util/RefactoringConflictsUtil.java b/java/java-impl/src/com/intellij/refactoring/util/RefactoringConflictsUtil.java index 96b2223be14a..244caf8b8465 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/RefactoringConflictsUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/RefactoringConflictsUtil.java @@ -151,6 +151,13 @@ public class RefactoringConflictsUtil { RefactoringUIUtil.getDescription(member, false)); message = CommonRefactoringUtil.capitalize(message); conflicts.putValue(refMember, message); + } else if (newContext instanceof PsiClass && refMember instanceof PsiField && refMember.getContainingClass() == member.getContainingClass()) { + final PsiField fieldInSubClass = ((PsiClass)newContext).findFieldByName(refMember.getName(), false); + if (fieldInSubClass != null) { + conflicts.putValue(refMember, CommonRefactoringUtil.capitalize(RefactoringUIUtil.getDescription(fieldInSubClass, true) + + " would hide " + RefactoringUIUtil.getDescription(refMember, true) + + " which is used by moved " + RefactoringUIUtil.getDescription(member, false))); + } } }