diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index 1c11030b..3cfcaa9b 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -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 diff --git a/test/completion/flow_analysis.py b/test/completion/flow_analysis.py index 4674555c..933badf5 100644 --- a/test/completion/flow_analysis.py +++ b/test/completion/flow_analysis.py @@ -205,3 +205,16 @@ if 0: foobar #? nested + +# ----------------- +# True objects like modules +# ----------------- + +class X(): + pass +if X: + a = 1 +else: + a = '' +#? int() +a