Arguments move to params.

This commit is contained in:
Dave Halter
2014-10-20 15:43:56 +02:00
parent b2c95cb02f
commit 1a639bd118
4 changed files with 67 additions and 40 deletions
+6 -34
View File
@@ -335,31 +335,6 @@ class InstanceElement(use_metaclass(CachedMetaClass, pr.Base)):
return "<%s of %s>" % (type(self).__name__, self.var)
class Arguments(object):
def __init__(self, evaluator, argument_node):
self._argument_node = argument_node
self._evaluator = evaluator
def _split(self):
iterator = iter(self._argument_node.children)
for child in iterator:
if child == ',':
continue
elif child in ('*', '**'):
yield len(child), next(iterator)
else:
yield 0, child
def kwargs(self):
return []
def args(self):
return []
def eval_args(self):
return [self._evaluator.eval_element(el) for stars, el in self._split()]
class Wrapper(pr.Base):
def is_scope(self):
return True
@@ -599,19 +574,11 @@ class FunctionExecution(Executed):
types = list(docstrings.find_return_types(self._evaluator, func))
for r in self.returns:
if isinstance(r, pr.KeywordStatement):
stmt = r.stmt
else:
stmt = r # Lambdas
if stmt is None:
continue
check = flow_analysis.break_check(self._evaluator, self, r.parent)
if check is flow_analysis.UNREACHABLE:
debug.dbg('Return unreachable: %s', r)
else:
types += self._evaluator.eval_statement(stmt)
types += self._evaluator.eval_element(r.children[1])
if check is flow_analysis.REACHABLE:
debug.dbg('Return reachable: %s', r)
break
@@ -673,6 +640,11 @@ class FunctionExecution(Executed):
def returns(self):
return self._copy_list(self.base.returns)
@common.safe_property
@memoize_default([])
def children(self):
return self._copy_list(self.base.children)
@common.safe_property
@memoize_default([])
def asserts(self):