Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions mypyc/test-data/refcount.test
Original file line number Diff line number Diff line change
Expand Up @@ -1867,6 +1867,83 @@ L6:
dec_ref r2
goto L2

[case testVecNestedGetItemBorrow_64bit]
from librt.vecs import vec
from mypy_extensions import i64

def f(v: vec[vec[i64]], n: i64, m: i64) -> i64:
return v[n][m]
[out]
def f(v, n, m):
v :: vec[vec[i64]]
n, m :: i64
r0 :: native_int
r1 :: bit
r2 :: i64
r3 :: bit
r4 :: bool
r5 :: i64
r6 :: object
r7 :: ptr
r8 :: i64
r9 :: ptr
r10 :: vec[i64]
r11 :: native_int
r12 :: bit
r13 :: i64
r14 :: bit
r15 :: bool
r16 :: i64
r17 :: object
r18 :: ptr
r19 :: i64
r20 :: ptr
r21 :: i64
L0:
r0 = v.len
r1 = n < r0 :: unsigned
if r1 goto L4 else goto L1 :: bool
L1:
r2 = n + r0
r3 = r2 < r0 :: unsigned
if r3 goto L3 else goto L2 :: bool
L2:
r4 = raise IndexError
unreachable
L3:
r5 = r2
goto L5
L4:
r5 = n
L5:
r6 = v.buf
r7 = get_element_ptr r6 items :: VecNestedBufObject
r8 = r5 * 16
r9 = r7 + r8
r10 = borrow load_mem r9 :: vec[i64]*
r11 = r10.len
r12 = m < r11 :: unsigned
if r12 goto L9 else goto L6 :: bool
L6:
r13 = m + r11
r14 = r13 < r11 :: unsigned
if r14 goto L8 else goto L7 :: bool
L7:
r15 = raise IndexError
unreachable
L8:
r16 = r13
goto L10
L9:
r16 = m
L10:
r17 = r10.buf
r18 = get_element_ptr r17 items :: VecI64BufObject
r19 = r16 * 8
r20 = r18 + r19
r21 = load_mem r20 :: i64*
return r21

[case testVecPop]
from librt.vecs import vec, pop, append
from mypy_extensions import i64
Expand Down
Loading