mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-23 05:41:27 +08:00
Classes should always evaluate to true when asked for py__bool__()
This commit is contained in:
@@ -374,6 +374,13 @@ class Wrapper(tree.Base):
|
|||||||
def is_class(self):
|
def is_class(self):
|
||||||
return False
|
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
|
@property
|
||||||
@underscore_memoization
|
@underscore_memoization
|
||||||
def name(self):
|
def name(self):
|
||||||
@@ -552,9 +559,6 @@ class Function(use_metaclass(CachedMetaClass, Wrapper)):
|
|||||||
else:
|
else:
|
||||||
return FunctionExecution(evaluator, self, params).get_return_types()
|
return FunctionExecution(evaluator, self, params).get_return_types()
|
||||||
|
|
||||||
def py__bool__(self):
|
|
||||||
return True
|
|
||||||
|
|
||||||
def __getattr__(self, name):
|
def __getattr__(self, name):
|
||||||
return getattr(self.base_func, name)
|
return getattr(self.base_func, name)
|
||||||
|
|
||||||
@@ -851,6 +855,3 @@ class ModuleWrapper(use_metaclass(CachedMetaClass, tree.Module, Wrapper)):
|
|||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<%s: %s>" % (type(self).__name__, self._module)
|
return "<%s: %s>" % (type(self).__name__, self._module)
|
||||||
|
|
||||||
def py__bool__(self):
|
|
||||||
return True
|
|
||||||
|
|||||||
@@ -205,3 +205,16 @@ if 0:
|
|||||||
foobar
|
foobar
|
||||||
#?
|
#?
|
||||||
nested
|
nested
|
||||||
|
|
||||||
|
# -----------------
|
||||||
|
# True objects like modules
|
||||||
|
# -----------------
|
||||||
|
|
||||||
|
class X():
|
||||||
|
pass
|
||||||
|
if X:
|
||||||
|
a = 1
|
||||||
|
else:
|
||||||
|
a = ''
|
||||||
|
#? int()
|
||||||
|
a
|
||||||
|
|||||||
Reference in New Issue
Block a user