1
0
forked from VimPlug/jedi

Classes should always evaluate to true when asked for py__bool__()

This commit is contained in:
Dave Halter
2015-04-28 18:32:19 +02:00
parent 607f43290f
commit 712ae01ac0
2 changed files with 20 additions and 6 deletions

View File

@@ -374,6 +374,13 @@ class Wrapper(tree.Base):
def is_class(self):
return False
def py__bool__(self):
"""
Since Wrapper is a super class for classes, functions and modules,
the return value will always be true.
"""
return True
@property
@underscore_memoization
def name(self):
@@ -552,9 +559,6 @@ class Function(use_metaclass(CachedMetaClass, Wrapper)):
else:
return FunctionExecution(evaluator, self, params).get_return_types()
def py__bool__(self):
return True
def __getattr__(self, name):
return getattr(self.base_func, name)
@@ -851,6 +855,3 @@ class ModuleWrapper(use_metaclass(CachedMetaClass, tree.Module, Wrapper)):
def __repr__(self):
return "<%s: %s>" % (type(self).__name__, self._module)
def py__bool__(self):
return True

View File

@@ -205,3 +205,16 @@ if 0:
foobar
#?
nested
# -----------------
# True objects like modules
# -----------------
class X():
pass
if X:
a = 1
else:
a = ''
#? int()
a