mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
inline: do not mess with qualifiers statically imported members (IDEA-83713)
This commit is contained in:
+10
-10
@@ -165,16 +165,16 @@ public class InlineConstantFieldProcessor extends BaseRefactoringProcessor {
|
||||
if (expr instanceof PsiReferenceExpression) {
|
||||
PsiExpression qExpression = ((PsiReferenceExpression)expr).getQualifierExpression();
|
||||
if (qExpression != null) {
|
||||
if (initializer1 instanceof PsiMethodCallExpression) {
|
||||
PsiReferenceExpression methodExpression = ((PsiMethodCallExpression)initializer1).getMethodExpression();
|
||||
if (methodExpression.getQualifierExpression() == null) {
|
||||
methodExpression.setQualifierExpression(qExpression);
|
||||
}
|
||||
} else if (initializer1 instanceof PsiReferenceExpression) {
|
||||
PsiReferenceExpression referenceExpression = (PsiReferenceExpression)initializer1;
|
||||
if (referenceExpression.getQualifierExpression() == null) {
|
||||
referenceExpression.setQualifierExpression(qExpression);
|
||||
}
|
||||
PsiReferenceExpression referenceExpression = null;
|
||||
if (initializer1 instanceof PsiReferenceExpression) {
|
||||
referenceExpression = (PsiReferenceExpression)initializer1;
|
||||
} else if (initializer1 instanceof PsiMethodCallExpression) {
|
||||
referenceExpression = ((PsiMethodCallExpression)initializer1).getMethodExpression();
|
||||
}
|
||||
if (referenceExpression != null &&
|
||||
referenceExpression.getQualifierExpression() == null &&
|
||||
!(referenceExpression.advancedResolve(false).getCurrentFileResolveScope() instanceof PsiImportStaticStatement)) {
|
||||
referenceExpression.setQualifierExpression(qExpression);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package p;
|
||||
|
||||
import static p.C.mock;
|
||||
class C {
|
||||
public static String mock() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
class D {
|
||||
public static final String CONST = mock();
|
||||
}
|
||||
class QTest {
|
||||
public static void main(String[] args) {
|
||||
String s = D.CON<caret>ST;
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package p;
|
||||
|
||||
import static p.C.mock;
|
||||
class C {
|
||||
public static String mock() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
class D {
|
||||
}
|
||||
class QTest {
|
||||
public static void main(String[] args) {
|
||||
String s = mock();
|
||||
}
|
||||
}
|
||||
@@ -26,6 +26,10 @@ public class InlineConstantFieldTest extends LightRefactoringTestCase {
|
||||
public void testQualifiedConstantExpressionReplacedWithAnotherOne() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testStaticallyImportedQualifiedExpression() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
|
||||
private void doTest() throws Exception {
|
||||
String name = getTestName(false);
|
||||
|
||||
Reference in New Issue
Block a user