1
0
forked from VimPlug/jedi

reversed and for loops now produce strings in the correct order.

This commit is contained in:
Dave Halter
2015-10-14 16:50:26 +02:00
parent b27be47811
commit 62468fb402
4 changed files with 49 additions and 15 deletions

View File

@@ -29,6 +29,7 @@ from jedi.evaluate import compiled
from jedi.evaluate import helpers
from jedi.evaluate.cache import CachedMetaClass, memoize_default
from jedi.evaluate import analysis
from jedi.evaluate.precedence import literals_to_types
class IterableWrapper(tree.Base):
@@ -390,6 +391,28 @@ class MergedArray(_FakeArray):
return sum(len(a) for a in self._arrays)
def ordered_elements_of_iterable(evaluator, iterable_type, all_values):
"""
This function returns the ordered types of an iterable. If the input is not
an Array, we just return all types as the first and only item of the
output list.
"""
ordered = []
# Unpack the iterator values
for sequence in iterable_type:
if not isinstance(sequence, Array):
ordered = [literals_to_types(evaluator, all_values)]
break
else:
# Try
for i, types in enumerate(sequence.per_index_values()):
try:
ordered[i] |= types
except IndexError:
ordered.append(set(types))
return ordered
def get_iterator_types(evaluator, element):
"""Returns the types of any iterator (arrays, yields, __iter__, etc)."""
iterators = []