switch context when get to anonymous class so access to the inherited members should not be raised as a conflict; super expression

This commit is contained in:
Anna Kozlova
2015-01-20 15:42:48 +01:00
parent db3a08b145
commit 5b62d34d11
3 changed files with 3 additions and 1 deletions
@@ -161,7 +161,7 @@ public class RefactoringConflictsUtil {
PsiElement refElement = refExpr.resolve();
if (refElement instanceof PsiMember) {
PsiExpression qualifier = refExpr.getQualifierExpression();
PsiClass qualifierAccessClass = (PsiClass)(qualifier != null ? PsiUtil.getAccessObjectClass(qualifier).getElement() : accessClass);
PsiClass qualifierAccessClass = (PsiClass)(qualifier != null && !(qualifier instanceof PsiSuperExpression) ? PsiUtil.getAccessObjectClass(qualifier).getElement() : accessClass);
if (!RefactoringHierarchyUtil.willBeInTargetClass(refElement, moving, targetClass, false) &&
(qualifierAccessClass == null || !RefactoringHierarchyUtil.willBeInTargetClass(qualifierAccessClass, moving, targetClass, false))) {
checkAccessibility((PsiMember)refElement, context, qualifierAccessClass, member, conflicts);
@@ -6,6 +6,7 @@ public class B {
void method2Move() {
new A.I() {
{
super.foo();
foo();
A.bar();
}
@@ -4,6 +4,7 @@ public class A extends B {
void method2Move() {
new I() {
{
super.foo();
foo();
bar();
}