mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-08 23:04:48 +08:00
more detailed tests and implementation of array indexing in the interpreter
This commit is contained in:
@@ -106,12 +106,16 @@ class CompiledObject(Base):
|
|||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
new = self.obj[typ.obj]
|
new = self.obj[typ.obj]
|
||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError, TypeError, AttributeError):
|
||||||
pass
|
pass # just try, we don't care if it fails.
|
||||||
else:
|
else:
|
||||||
result.append(CompiledObject(new))
|
result.append(CompiledObject(new))
|
||||||
if not result:
|
if not result:
|
||||||
pass
|
try:
|
||||||
|
for obj in self.obj:
|
||||||
|
result.append(CompiledObject(obj))
|
||||||
|
except TypeError:
|
||||||
|
pass # self.obj maynot have an __iter__ method.
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -51,3 +51,15 @@ class TestInterpreterAPI(TestCase):
|
|||||||
self.check_interpreter_complete('array[0].real',
|
self.check_interpreter_complete('array[0].real',
|
||||||
locals(),
|
locals(),
|
||||||
[])
|
[])
|
||||||
|
|
||||||
|
# something different, no index given, still just return the right
|
||||||
|
self.check_interpreter_complete('array[int].real',
|
||||||
|
locals(),
|
||||||
|
['real'])
|
||||||
|
self.check_interpreter_complete('array[int()].real',
|
||||||
|
locals(),
|
||||||
|
['real'])
|
||||||
|
# inexistent index
|
||||||
|
self.check_interpreter_complete('array[2].upper',
|
||||||
|
locals(),
|
||||||
|
['upper'])
|
||||||
|
|||||||
Reference in New Issue
Block a user