mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
don't qualify with this in static context (IDEA-166793)
This commit is contained in:
@@ -95,7 +95,13 @@ public class RefactoringChangeUtil {
|
||||
((PsiThisExpression)expressionFromText.getQualifierExpression()).getQualifier().replace(factory.createClassReferenceElement(parentClass));
|
||||
}
|
||||
else {
|
||||
expressionFromText = (PsiReferenceExpression)factory.createExpressionFromText("this." + member.getName(), null);
|
||||
final PsiModifierListOwner staticElement = PsiUtil.getEnclosingStaticElement(referenceExpression, null);
|
||||
if (staticElement != null && containingClass != null && !PsiTreeUtil.isAncestor(staticElement, containingClass, false)) {
|
||||
return referenceExpression;
|
||||
}
|
||||
else {
|
||||
expressionFromText = (PsiReferenceExpression)factory.createExpressionFromText("this." + member.getName(), null);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// "Add 'C2' as 2nd parameter to method 'f'" "true"
|
||||
|
||||
final class X {
|
||||
|
||||
public static final class C2 { }
|
||||
|
||||
public static final class C {
|
||||
|
||||
public static void main(String[] argArr) {
|
||||
final C2 c2 = new C2();
|
||||
final C c = f(123, c2);
|
||||
}
|
||||
|
||||
public static C f(final int i, C2 c2) {
|
||||
return new C(i, c2);
|
||||
}
|
||||
|
||||
private final int i;
|
||||
private final C2 c2;
|
||||
|
||||
private C(final int i, C2 c2) {
|
||||
this.i = i;
|
||||
this.c2 = c2;
|
||||
}
|
||||
}
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// "Add 'C2' as 2nd parameter to method 'f'" "true"
|
||||
|
||||
final class X {
|
||||
|
||||
public static final class C2 { }
|
||||
|
||||
public static final class C {
|
||||
|
||||
public static void main(String[] argArr) {
|
||||
final C2 c2 = new C2();
|
||||
final C c = f(123, <caret>c2);
|
||||
}
|
||||
|
||||
public static C f(final int i) {
|
||||
return new C(i, c2);
|
||||
}
|
||||
|
||||
private final int i;
|
||||
private final C2 c2;
|
||||
|
||||
private C(final int i, C2 c2) {
|
||||
this.i = i;
|
||||
this.c2 = c2;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user