From fa5af4b10c3163d937df73ec41278a3e1dbcc2b9 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 28 May 2013 19:57:40 +0400 Subject: [PATCH] accept incomplete code as reference at caret (IDEA-107732) --- .../psi/impl/source/tree/java/PsiReferenceExpressionImpl.java | 2 +- .../testData/refactoring/renameInplace/Incomplete.java | 3 +++ .../testData/refactoring/renameInplace/Incomplete_after.java | 3 +++ .../com/intellij/refactoring/RenameMembersInplaceTest.java | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/renameInplace/Incomplete.java create mode 100644 java/java-tests/testData/refactoring/renameInplace/Incomplete_after.java diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java index 2e84a197ab89..7de1e1d30211 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java @@ -440,7 +440,7 @@ public class PsiReferenceExpressionImpl extends PsiReferenceExpressionBase imple // optimization: methodCallExpression should resolve to a method if (parentIsMethodCall != resolvingToMethod) return false; - return super.isReferenceTo(element); + return element.getManager().areElementsEquivalent(element, advancedResolve(true).getElement()); } @Override diff --git a/java/java-tests/testData/refactoring/renameInplace/Incomplete.java b/java/java-tests/testData/refactoring/renameInplace/Incomplete.java new file mode 100644 index 000000000000..78eaf1b1986b --- /dev/null +++ b/java/java-tests/testData/refactoring/renameInplace/Incomplete.java @@ -0,0 +1,3 @@ +class Klaz { + final static Class K = Klaz +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/renameInplace/Incomplete_after.java b/java/java-tests/testData/refactoring/renameInplace/Incomplete_after.java new file mode 100644 index 000000000000..93fbccbf78c1 --- /dev/null +++ b/java/java-tests/testData/refactoring/renameInplace/Incomplete_after.java @@ -0,0 +1,3 @@ +class Klazz { + final static Class K = Klazz +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java b/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java index 314f6ed03e3d..f72add53a204 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/RenameMembersInplaceTest.java @@ -40,6 +40,10 @@ public class RenameMembersInplaceTest extends LightCodeInsightTestCase { doTestInplaceRename("NEW_NAME"); } + public void testIncomplete() throws Exception { + doTestInplaceRename("Klazz"); + } + public void testConstructor() throws Exception { doTestInplaceRename("Bar"); }