1
0
forked from VimPlug/jedi

Enable better ways for analysis to analyze loop variables.

This commit is contained in:
Dave Halter
2015-12-11 20:25:49 +01:00
parent 8d3be10270
commit 75ac2b9686
6 changed files with 65 additions and 58 deletions

View File

@@ -409,9 +409,15 @@ class Evaluator(object):
# TODO rename to goto_definitions
def_ = name.get_definition()
if def_.type == 'expr_stmt' and name in def_.get_defined_names():
return self.eval_statement(def_, name)
call = helpers.call_of_name(name)
return self.eval_element(call)
types = self.eval_statement(def_, name)
elif def_.type == 'for_stmt':
container_types = self.eval_element(def_.children[3])
for_types = iterable.py__iter__types(self, container_types, def_.children[3])
types = finder.check_tuple_assignments(self, for_types, name)
else:
call = helpers.call_of_name(name)
types = self.eval_element(call)
return types
def goto(self, name):
def resolve_implicit_imports(names):

View File

@@ -251,7 +251,6 @@ class NameFinder(object):
def _names_to_types(self, names, search_global):
types = set()
debug.warning('start nt %s', names)
# Add isinstance and other if/assert knowledge.
if isinstance(self.name_str, tree.Name):
# Ignore FunctionExecution parents for now.

View File

@@ -452,7 +452,6 @@ def py__getitem__(evaluator, types, index, node):
if isinstance(typ, Array) and typ.type == 'dict':
types.remove(typ)
result |= typ.dict_values()
print('ITER', types, py__iter__types(evaluator, types))
return result | py__iter__types(evaluator, types)
for typ in types: