1
0
forked from VimPlug/jedi

make generator comprehensions work

This commit is contained in:
Dave Halter
2014-06-10 00:36:36 +02:00
parent cd5b8aebfd
commit af801ef9b4
4 changed files with 35 additions and 2 deletions
+16
View File
@@ -66,6 +66,13 @@ class Generator(use_metaclass(CachedMetaClass, pr.Base)):
analysis.add(self._evaluator, 'type-error-generator', index_array)
return []
def get_exact_index_types(self, index):
"""
Exact lookups are used for tuple lookups, which are perfectly fine if
used with generators.
"""
return [self.iter_content()[index]]
def __getattr__(self, name):
if name not in ['start_pos', 'end_pos', 'parent', 'get_imports',
'asserts', 'doc', 'docstr', 'get_parent_until',
@@ -91,6 +98,15 @@ class GeneratorMethod(object):
return getattr(self._builtin_func, name)
class GeneratorComprehension(Generator):
def __init__(self, evaluator, comprehension):
super(GeneratorComprehension, self).__init__(evaluator, comprehension, None)
self.comprehension = comprehension
def iter_content(self):
return self._evaluator.eval_statement_element(self.comprehension)
class Array(use_metaclass(CachedMetaClass, pr.Base)):
"""
Used as a mirror to pr.Array, if needed. It defines some getter