From c47f87d40dc4dd0d9808a44d56df4046aa7dfe58 Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Tue, 3 Jul 2012 15:04:37 +0400 Subject: [PATCH] Fixed IntellijIdeaRulezzz in completion of qualified references in target expressions (PY-6829) --- .../python/psi/impl/references/PyQualifiedReference.java | 4 ++++ .../completion/fakeNameInQualifiedReference.after.py | 2 ++ python/testData/completion/fakeNameInQualifiedReference.py | 2 ++ .../testSrc/com/jetbrains/python/PythonCompletionTest.java | 5 +++++ 4 files changed, 13 insertions(+) create mode 100644 python/testData/completion/fakeNameInQualifiedReference.after.py create mode 100644 python/testData/completion/fakeNameInQualifiedReference.py diff --git a/python/src/com/jetbrains/python/psi/impl/references/PyQualifiedReference.java b/python/src/com/jetbrains/python/psi/impl/references/PyQualifiedReference.java index 64192a062d38..824a4f7f8f6e 100644 --- a/python/src/com/jetbrains/python/psi/impl/references/PyQualifiedReference.java +++ b/python/src/com/jetbrains/python/psi/impl/references/PyQualifiedReference.java @@ -253,6 +253,10 @@ public class PyQualifiedReference extends PyReferenceImpl { if (qualifier instanceof PyQualifiedExpression) { Collection attrs = collectAssignedAttributes((PyQualifiedExpression)qualifier); for (PyExpression ex : attrs) { + final String name = ex.getName(); + if (name != null && name.endsWith(CompletionUtil.DUMMY_IDENTIFIER_TRIMMED)) { + continue; + } if (ex instanceof PsiNamedElement && qualifierType instanceof PyClassType) { variants.add(LookupElementBuilder.create((PsiNamedElement)ex) .withTypeText(qualifierType.getName()) diff --git a/python/testData/completion/fakeNameInQualifiedReference.after.py b/python/testData/completion/fakeNameInQualifiedReference.after.py new file mode 100644 index 000000000000..908a17ab2e59 --- /dev/null +++ b/python/testData/completion/fakeNameInQualifiedReference.after.py @@ -0,0 +1,2 @@ +foo = dict() +foo.Intelli = 2 \ No newline at end of file diff --git a/python/testData/completion/fakeNameInQualifiedReference.py b/python/testData/completion/fakeNameInQualifiedReference.py new file mode 100644 index 000000000000..83b658d4efa2 --- /dev/null +++ b/python/testData/completion/fakeNameInQualifiedReference.py @@ -0,0 +1,2 @@ +foo = dict() +foo.Intelli = 2 \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java index 873599d330d2..51d8eaac342a 100644 --- a/python/testSrc/com/jetbrains/python/PythonCompletionTest.java +++ b/python/testSrc/com/jetbrains/python/PythonCompletionTest.java @@ -568,4 +568,9 @@ public class PythonCompletionTest extends PyTestCase { public void testFromNamespacePackageImport() { doMultiFileTest(); } + + // PY-6829 + public void testFakeNameInQualifiedReference() { + doTest(); + } }