'callable()' assertion specifies qualified 'collections.Callable' type (PY-12004)

This commit is contained in:
Andrey Vlasovskikh
2014-07-07 19:33:54 +04:00
parent 84151a4816
commit 538bce4986
3 changed files with 13 additions and 1 deletions

View File

@@ -84,7 +84,7 @@ public class PyTypeAssertionEvaluator extends PyRecursiveElementVisitor {
@Override
public PyType getType(TypeEvalContext context, PsiElement anchor) {
final List<PyType> types = new ArrayList<PyType>();
types.add(PyTypeParser.getTypeByName(target, PyNames.CALLABLE));
types.add(PyTypeParser.getTypeByName(target, "collections." + PyNames.CALLABLE));
return createAssertionType(context.getType(target), types, positive, context);
}
});

View File

@@ -0,0 +1,7 @@
class Callable(object):
pass
def f(g):
if callable(g):
g()

View File

@@ -94,6 +94,11 @@ public class PyCallingNonCallableInspectionTest extends PyTestCase {
doTest();
}
// PY-12004
public void testLocalCallableClass() {
doTest();
}
private void doTest() {
setLanguageLevel(LanguageLevel.PYTHON27);
try {