From 3881c4a95377781b4d2665401ca0a7554d98d544 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 16 Oct 2014 19:56:13 +0200 Subject: [PATCH] shorten refs in new expression (IDEA-129602) (cherry picked from commit 616e3a99b68439b3e867052aa251e6084a639d77) --- .../psi/impl/source/codeStyle/JavaReferenceAdjuster.java | 6 ++++-- .../refactoring/introduceVariable/NoNameConflict.after.java | 5 +++++ .../refactoring/introduceVariable/NoNameConflict.java | 5 +++++ .../com/intellij/refactoring/IntroduceVariableTest.java | 4 ++++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 java/java-tests/testData/refactoring/introduceVariable/NoNameConflict.after.java create mode 100644 java/java-tests/testData/refactoring/introduceVariable/NoNameConflict.java diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaReferenceAdjuster.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaReferenceAdjuster.java index 3d1e1c01c586..6fe76fb61764 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaReferenceAdjuster.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaReferenceAdjuster.java @@ -256,8 +256,10 @@ public class JavaReferenceAdjuster implements ReferenceAdjuster { final JavaPsiFacade facade = JavaPsiFacade.getInstance(manager.getProject()); final PsiResolveHelper helper = facade.getResolveHelper(); if (manager.areElementsEquivalent(refClass, helper.resolveReferencedClass(referenceText, psiReference))) { - PsiElement parent = psiReference.getParent(); - if (parent instanceof PsiJavaCodeReferenceElement && parent.getParent() instanceof PsiNewExpression) return true; + if (psiReference instanceof PsiJavaCodeReferenceElement) { + PsiElement parent = psiReference.getParent(); + if (parent instanceof PsiNewExpression || parent.getParent() instanceof PsiNewExpression) return true; + } return helper.resolveReferencedVariable(referenceText, psiReference) == null; } return false; diff --git a/java/java-tests/testData/refactoring/introduceVariable/NoNameConflict.after.java b/java/java-tests/testData/refactoring/introduceVariable/NoNameConflict.after.java new file mode 100644 index 000000000000..ddbb0e7b4eea --- /dev/null +++ b/java/java-tests/testData/refactoring/introduceVariable/NoNameConflict.after.java @@ -0,0 +1,5 @@ +class cTest { + { + cTest cTest = new cTest(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/introduceVariable/NoNameConflict.java b/java/java-tests/testData/refactoring/introduceVariable/NoNameConflict.java new file mode 100644 index 000000000000..2645c88d48f2 --- /dev/null +++ b/java/java-tests/testData/refactoring/introduceVariable/NoNameConflict.java @@ -0,0 +1,5 @@ +class cTest { + { + new cTest() + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceVariableTest.java b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceVariableTest.java index 6ef80d01903e..4e993aac90aa 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceVariableTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceVariableTest.java @@ -441,6 +441,10 @@ public class IntroduceVariableTest extends LightCodeInsightTestCase { doTest(new MockIntroduceVariableHandler("i3", false, false, false, "int")); } + public void testNoNameConflict() { + doTest(new MockIntroduceVariableHandler("cTest", false, false, false, "cTest")); + } + public void testMethodReferenceExpr() { doTest(new MockIntroduceVariableHandler("m", false, false, false, "Foo.I")); }