mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 10:25:18 +00:00
Merge pull request #1410 from bannsec/assertion_slices
Allowing slices and negative index in assertions
This commit is contained in:
commit
d80c4307a6
|
@ -5140,9 +5140,18 @@ class AstVector(Z3PPObject):
|
|||
>>> A[1]
|
||||
y
|
||||
"""
|
||||
if i >= self.__len__():
|
||||
raise IndexError
|
||||
return _to_ast_ref(Z3_ast_vector_get(self.ctx.ref(), self.vector, i), self.ctx)
|
||||
|
||||
if isinstance(i, int):
|
||||
if i < 0:
|
||||
i += self.__len__()
|
||||
|
||||
if i >= self.__len__():
|
||||
raise IndexError
|
||||
return _to_ast_ref(Z3_ast_vector_get(self.ctx.ref(), self.vector, i), self.ctx)
|
||||
|
||||
elif isinstance(i, slice):
|
||||
return [_to_ast_ref(Z3_ast_vector_get(self.ctx.ref(), self.vector, ii), self.ctx) for ii in range(*i.indices(self.__len__()))]
|
||||
|
||||
|
||||
def __setitem__(self, i, v):
|
||||
"""Update AST at position `i`.
|
||||
|
|
Loading…
Reference in a new issue