1
0
forked from VimPlug/jedi

FakeArray recursion issues.

This commit is contained in:
Dave Halter
2014-11-17 20:41:32 +01:00
parent d49a8fc073
commit df5df1ccf5

View File

@@ -296,21 +296,25 @@ class Array(IterableWrapper):
return "<e%s of %s>" % (type(self).__name__, self._atom) return "<e%s of %s>" % (type(self).__name__, self._atom)
class ImplicitTuple(Array): class _FakeArray(Array):
def __init__(self, evaluator, testlist): def __init__(self, evaluator, container, type):
self.type = type
self._evaluator = evaluator self._evaluator = evaluator
self.type = pr.Array.TUPLE self._atom = container
class ImplicitTuple(_FakeArray):
def __init__(self, evaluator, testlist):
super(ImplicitTuple, self).__init__(evaluator, testlist, pr.Array.TUPLE)
self._testlist = testlist self._testlist = testlist
def _items(self): def _items(self):
return self._testlist.children[::2] return self._testlist.children[::2]
class FakeSequence(Array): class FakeSequence(_FakeArray):
def __init__(self, evaluator, sequence_values, type): def __init__(self, evaluator, sequence_values, type):
# Intentionally don't call the parent __init__. super(FakeSequence, self).__init__(evaluator, sequence_values, type)
self._evaluator = evaluator
self.type = type
self._sequence_values = sequence_values self._sequence_values = sequence_values
def _items(self): def _items(self):
@@ -321,10 +325,9 @@ class FakeSequence(Array):
for v in self._sequence_values[index])) for v in self._sequence_values[index]))
class FakeDict(Array): class FakeDict(_FakeArray):
def __init__(self, evaluator, dct): def __init__(self, evaluator, dct):
self._evaluator = evaluator super(FakeDict, self).__init__(evaluator, dct, pr.Array.DICT)
self.type = pr.Array.DICT
self._dct = dct self._dct = dct
def get_exact_index_types(self, index): def get_exact_index_types(self, index):