forked from VimPlug/jedi
Fix another issue.
This commit is contained in:
@@ -251,7 +251,7 @@ class ArrayMixin(object):
|
|||||||
@register_builtin_method('values', type='dict')
|
@register_builtin_method('values', type='dict')
|
||||||
def _imitate_values(self):
|
def _imitate_values(self):
|
||||||
items = self.dict_values()
|
items = self.dict_values()
|
||||||
return create_evaluated_sequence_set(self._evaluator, items, type='list')
|
return create_evaluated_sequence_set(self._evaluator, items, sequence_type='list')
|
||||||
#return set([FakeSequence(self._evaluator, [AlreadyEvaluated(items)], 'tuple')])
|
#return set([FakeSequence(self._evaluator, [AlreadyEvaluated(items)], 'tuple')])
|
||||||
|
|
||||||
@register_builtin_method('items', type='dict')
|
@register_builtin_method('items', type='dict')
|
||||||
@@ -259,7 +259,7 @@ class ArrayMixin(object):
|
|||||||
items = [set([FakeSequence(self._evaluator, (k, v), 'tuple')])
|
items = [set([FakeSequence(self._evaluator, (k, v), 'tuple')])
|
||||||
for k, v in self._items()]
|
for k, v in self._items()]
|
||||||
|
|
||||||
return create_evaluated_sequence_set(self._evaluator, *items, type='list')
|
return create_evaluated_sequence_set(self._evaluator, *items, sequence_type='list')
|
||||||
|
|
||||||
|
|
||||||
class ListComprehension(Comprehension, ArrayMixin):
|
class ListComprehension(Comprehension, ArrayMixin):
|
||||||
@@ -267,7 +267,14 @@ class ListComprehension(Comprehension, ArrayMixin):
|
|||||||
|
|
||||||
def py__getitem__(self, index):
|
def py__getitem__(self, index):
|
||||||
all_types = list(self.py__iter__())
|
all_types = list(self.py__iter__())
|
||||||
return all_types[index]
|
result = all_types[index]
|
||||||
|
if isinstance(index, slice):
|
||||||
|
return create_evaluated_sequence_set(
|
||||||
|
self._evaluator,
|
||||||
|
unite(result),
|
||||||
|
sequence_type='list'
|
||||||
|
)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
class SetComprehension(Comprehension, ArrayMixin):
|
class SetComprehension(Comprehension, ArrayMixin):
|
||||||
@@ -302,9 +309,7 @@ class DictComprehension(Comprehension, ArrayMixin):
|
|||||||
(AlreadyEvaluated(keys), AlreadyEvaluated(values)), 'tuple')
|
(AlreadyEvaluated(keys), AlreadyEvaluated(values)), 'tuple')
|
||||||
for keys, values in self._iterate())
|
for keys, values in self._iterate())
|
||||||
|
|
||||||
return create_evaluated_sequence_set(self._evaluator, items, type='list')
|
return create_evaluated_sequence_set(self._evaluator, items, sequence_type='list')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class GeneratorComprehension(Comprehension, GeneratorMixin):
|
class GeneratorComprehension(Comprehension, GeneratorMixin):
|
||||||
@@ -445,7 +450,10 @@ def create_evaluated_sequence_set(evaluator, *types_order, **kwargs):
|
|||||||
``sequence_type`` is a named argument, that doesn't work in Python2. For backwards
|
``sequence_type`` is a named argument, that doesn't work in Python2. For backwards
|
||||||
compatibility reasons, we're now using kwargs.
|
compatibility reasons, we're now using kwargs.
|
||||||
"""
|
"""
|
||||||
sequence_type = kwargs.get('sequence_type')
|
sequence_type = kwargs['sequence_type']
|
||||||
|
del kwargs['sequence_type']
|
||||||
|
assert not kwargs
|
||||||
|
|
||||||
sets = tuple(AlreadyEvaluated(types) for types in types_order)
|
sets = tuple(AlreadyEvaluated(types) for types in types_order)
|
||||||
return set([FakeSequence(evaluator, sets, sequence_type)])
|
return set([FakeSequence(evaluator, sets, sequence_type)])
|
||||||
|
|
||||||
|
|||||||
@@ -172,3 +172,12 @@ def x():
|
|||||||
#? 22
|
#? 22
|
||||||
[a for a in h if hio]
|
[a for a in h if hio]
|
||||||
if hio: pass
|
if hio: pass
|
||||||
|
|
||||||
|
# -----------------
|
||||||
|
# slices
|
||||||
|
# -----------------
|
||||||
|
|
||||||
|
#? list()
|
||||||
|
foo = [x for x in [1, '']][:1]
|
||||||
|
#? int()
|
||||||
|
foo[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user