mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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:
@@ -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);
|
||||
|
||||
+1
@@ -6,6 +6,7 @@ public class B {
|
||||
void method2Move() {
|
||||
new A.I() {
|
||||
{
|
||||
super.foo();
|
||||
foo();
|
||||
A.bar();
|
||||
}
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ public class A extends B {
|
||||
void method2Move() {
|
||||
new I() {
|
||||
{
|
||||
super.foo();
|
||||
foo();
|
||||
bar();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user