mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
heuristic completion for members of qualified expressions (PY-5629)
This commit is contained in:
@@ -292,16 +292,16 @@ public class PyQualifiedReference extends PyReferenceImpl {
|
||||
final PyExpression qualifierElement = myElement.getQualifier();
|
||||
if (qualifierElement instanceof PyReferenceExpression) {
|
||||
PyReferenceExpression qualifier = (PyReferenceExpression)qualifierElement;
|
||||
if (qualifier.getQualifier() == null) {
|
||||
final String className = qualifier.getText();
|
||||
final String className = qualifier.getReferencedName();
|
||||
if (className != null) {
|
||||
Collection<PyClass> classes = PyClassNameIndexInsensitive.find(className, getElement().getProject());
|
||||
classes = filterByImports(classes, myElement.getContainingFile());
|
||||
if (classes.size() == 1) {
|
||||
final PyClassType classType = new PyClassType(classes.iterator().next(), false);
|
||||
return getTypeCompletionVariants(myElement, classType);
|
||||
}
|
||||
return collectSeenMembers(qualifier.getText());
|
||||
}
|
||||
return collectSeenMembers(qualifier.getText());
|
||||
}
|
||||
return ArrayUtil.EMPTY_OBJECT_ARRAY;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
class Product:
|
||||
def doStuff(self): pass
|
||||
|
||||
class C:
|
||||
def foo(self):
|
||||
self.product.doStuff()
|
||||
@@ -0,0 +1,6 @@
|
||||
class Product:
|
||||
def doStuff(self): pass
|
||||
|
||||
class C:
|
||||
def foo(self):
|
||||
self.product.doS<caret>
|
||||
@@ -126,6 +126,10 @@ public class PythonCompletionTest extends PyTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testClassNameFromVarNameChained() { // PY-5629
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testPropertyType() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user