| [case testLowerVecI64GetItem_64bit] |
| from librt.vecs import vec |
| from mypy_extensions import i64 |
| |
| def f(i: i64) -> i64: |
| v = vec[i64]() |
| return v[i] |
| [out] |
| def f(i): |
| i :: i64 |
| r0, v :: vec[i64] |
| r1 :: native_int |
| r2 :: bit |
| r3 :: i64 |
| r4 :: bit |
| r5 :: bool |
| r6 :: i64 |
| r7 :: ptr |
| r8 :: i64 |
| r9 :: ptr |
| r10, r11 :: i64 |
| L0: |
| r0 = VecI64Api.alloc(0, 0) |
| if is_error(r0) goto L8 (error at f:5) else goto L1 |
| L1: |
| v = r0 |
| r1 = v.len |
| r2 = i < r1 :: unsigned |
| if r2 goto L6 else goto L2 :: bool |
| L2: |
| r3 = i + r1 |
| r4 = r3 < r1 :: unsigned |
| if r4 goto L5 else goto L9 :: bool |
| L3: |
| r5 = raise IndexError |
| if not r5 goto L8 (error at f:6) else goto L4 :: bool |
| L4: |
| unreachable |
| L5: |
| r6 = r3 |
| goto L7 |
| L6: |
| r6 = i |
| L7: |
| r7 = v.items |
| r8 = r6 * 8 |
| r9 = r7 + r8 |
| r10 = load_mem r9 :: i64* |
| dec_ref v |
| return r10 |
| L8: |
| r11 = <error> :: i64 |
| return r11 |
| L9: |
| dec_ref v |
| goto L3 |
| |
| [case testLowerVecNestedGetItem_64bit] |
| from librt.vecs import vec |
| from mypy_extensions import i64 |
| |
| def f(i: i64, j: i64) -> str: |
| v = vec[vec[str]]([]) |
| return v[i][j] |
| [out] |
| def f(i, j): |
| i, j :: i64 |
| r0 :: object |
| r1 :: ptr |
| r2 :: vec[vec[str]] |
| r3 :: ptr |
| v :: vec[vec[str]] |
| r4 :: native_int |
| r5 :: bit |
| r6 :: i64 |
| r7 :: bit |
| r8 :: bool |
| r9 :: i64 |
| r10 :: ptr |
| r11 :: i64 |
| r12 :: ptr |
| r13 :: vec[str] |
| r14 :: native_int |
| r15 :: bit |
| r16 :: i64 |
| r17 :: bit |
| r18 :: bool |
| r19 :: i64 |
| r20 :: ptr |
| r21 :: i64 |
| r22 :: ptr |
| r23, r24 :: str |
| L0: |
| r0 = load_address PyUnicode_Type |
| r1 = r0 |
| r2 = VecNestedApi.alloc(0, 0, r1, 1) |
| if is_error(r2) goto L14 (error at f:5) else goto L1 |
| L1: |
| r3 = r2.items |
| v = r2 |
| r4 = v.len |
| r5 = i < r4 :: unsigned |
| if r5 goto L6 else goto L2 :: bool |
| L2: |
| r6 = i + r4 |
| r7 = r6 < r4 :: unsigned |
| if r7 goto L5 else goto L15 :: bool |
| L3: |
| r8 = raise IndexError |
| if not r8 goto L14 (error at f:6) else goto L4 :: bool |
| L4: |
| unreachable |
| L5: |
| r9 = r6 |
| goto L7 |
| L6: |
| r9 = i |
| L7: |
| r10 = v.items |
| r11 = r9 * 16 |
| r12 = r10 + r11 |
| r13 = borrow load_mem r12 :: vec[str]* |
| r14 = r13.len |
| r15 = j < r14 :: unsigned |
| if r15 goto L12 else goto L8 :: bool |
| L8: |
| r16 = j + r14 |
| r17 = r16 < r14 :: unsigned |
| if r17 goto L11 else goto L16 :: bool |
| L9: |
| r18 = raise IndexError |
| if not r18 goto L14 (error at f:6) else goto L10 :: bool |
| L10: |
| unreachable |
| L11: |
| r19 = r16 |
| goto L13 |
| L12: |
| r19 = j |
| L13: |
| r20 = r13.items |
| r21 = r19 * 8 |
| r22 = r20 + r21 |
| r23 = load_mem r22 :: builtins.str* |
| dec_ref v |
| return r23 |
| L14: |
| r24 = <error> :: str |
| return r24 |
| L15: |
| dec_ref v |
| goto L3 |
| L16: |
| dec_ref v |
| goto L9 |