forked from VimPlug/jedi
Start implementing an algorithm for actually evaluating the parser tree.
This commit is contained in:
@@ -130,7 +130,7 @@ class Evaluator(object):
|
||||
if isinstance(stmt, FakeStatement):
|
||||
return expression_list # Already contains the results.
|
||||
|
||||
result = self.eval_expression_list(expression_list)
|
||||
result = self.eval_element(stmt.children[0])
|
||||
|
||||
ass_details = stmt.assignment_details
|
||||
if ass_details and ass_details[0][1] != '=' and not isinstance(stmt, er.InstanceElement): # TODO don't check for this.
|
||||
@@ -161,6 +161,14 @@ class Evaluator(object):
|
||||
result = new_result
|
||||
return result
|
||||
|
||||
def eval_element(self, element):
|
||||
if isinstance(element, pr.Name):
|
||||
stmt = element.get_parent_until(pr.ExprStmt)
|
||||
return self.find_types(stmt.parent, element, stmt.start_pos,
|
||||
search_global=True)
|
||||
else:
|
||||
raise NotImplementedError
|
||||
|
||||
def eval_expression_list(self, expression_list):
|
||||
"""
|
||||
`expression_list` can be either `pr.Array` or `list of list`.
|
||||
|
||||
Reference in New Issue
Block a user