summaryrefslogtreecommitdiff
path: root/python/src/com/jetbrains/python/psi/types
diff options
context:
space:
mode:
Diffstat (limited to 'python/src/com/jetbrains/python/psi/types')
-rw-r--r--python/src/com/jetbrains/python/psi/types/PyFunctionType.java15
-rw-r--r--python/src/com/jetbrains/python/psi/types/PyModuleType.java2
2 files changed, 14 insertions, 3 deletions
diff --git a/python/src/com/jetbrains/python/psi/types/PyFunctionType.java b/python/src/com/jetbrains/python/psi/types/PyFunctionType.java
index bb58b68300e8..4b3adfd112f8 100644
--- a/python/src/com/jetbrains/python/psi/types/PyFunctionType.java
+++ b/python/src/com/jetbrains/python/psi/types/PyFunctionType.java
@@ -16,8 +16,11 @@
package com.jetbrains.python.psi.types;
import com.intellij.psi.PsiElement;
+import com.intellij.util.ArrayUtil;
import com.intellij.util.ProcessingContext;
+import com.jetbrains.python.PyNames;
import com.jetbrains.python.psi.*;
+import com.jetbrains.python.psi.impl.PyBuiltinCache;
import com.jetbrains.python.psi.resolve.PyResolveContext;
import com.jetbrains.python.psi.resolve.RatedResolveResult;
import org.jetbrains.annotations.NotNull;
@@ -71,12 +74,20 @@ public class PyFunctionType implements PyCallableType {
@Nullable PyExpression location,
@NotNull AccessDirection direction,
@NotNull PyResolveContext resolveContext) {
- return Collections.emptyList();
+ final PyClassTypeImpl functionType = PyBuiltinCache.getInstance(getCallable()).getObjectType(PyNames.FAKE_FUNCTION);
+ if (functionType == null) {
+ return Collections.emptyList();
+ }
+ return functionType.resolveMember(name, location, direction, resolveContext);
}
@Override
public Object[] getCompletionVariants(String completionPrefix, PsiElement location, ProcessingContext context) {
- return new Object[0];
+ final PyClassTypeImpl functionType = PyBuiltinCache.getInstance(getCallable()).getObjectType(PyNames.FAKE_FUNCTION);
+ if (functionType == null) {
+ return ArrayUtil.EMPTY_OBJECT_ARRAY;
+ }
+ return functionType.getCompletionVariants(completionPrefix, location, context);
}
@Override
diff --git a/python/src/com/jetbrains/python/psi/types/PyModuleType.java b/python/src/com/jetbrains/python/psi/types/PyModuleType.java
index f2dc67c10c70..db5a9ba3f1ae 100644
--- a/python/src/com/jetbrains/python/psi/types/PyModuleType.java
+++ b/python/src/com/jetbrains/python/psi/types/PyModuleType.java
@@ -308,7 +308,7 @@ public class PyModuleType implements PyType { // Modules don't descend from obje
return !(psiElement instanceof PyImportElement) ||
PsiTreeUtil.getParentOfType(psiElement, PyImportStatementBase.class) instanceof PyFromImportStatement;
}
- }, new PyUtil.UnderscoreFilter(0));
+ }, null);
if (suppressParentheses) {
processor.suppressParentheses();
}