1
0
forked from VimPlug/jedi

Fix generators.

This commit is contained in:
Dave Halter
2014-11-14 02:05:25 +01:00
parent 13a128b160
commit 278bc9d705
4 changed files with 19 additions and 6 deletions

View File

@@ -567,7 +567,7 @@ class FunctionExecution(Executed):
@memoize_default(default=())
@recursion.execution_recursion_decorator
def get_return_types(self):
def get_return_types(self, check_yields=False):
func = self.base
if func.listeners:
@@ -579,8 +579,14 @@ class FunctionExecution(Executed):
# inserted params, not in the actual execution of the function.
return []
types = list(docstrings.find_return_types(self._evaluator, func))
for r in self.returns:
if check_yields:
types = []
returns = self.yields
else:
returns = self.returns
types = list(docstrings.find_return_types(self._evaluator, func))
for r in returns:
check = flow_analysis.break_check(self._evaluator, self, r)
if check is flow_analysis.UNREACHABLE:
debug.dbg('Return unreachable: %s', r)
@@ -661,6 +667,11 @@ class FunctionExecution(Executed):
def returns(self):
return self._copy_list(self.base.returns)
@common.safe_property
@memoize_default([])
def yields(self):
return self._copy_list(self.base.yields)
@common.safe_property
@memoize_default([])
def children(self):