forked from VimPlug/jedi
Enable better ways for analysis to analyze loop variables.
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user