@@ -822,36 +822,57 @@ L6:
822822 a = r10
823823 return 1
824824def test_var_can_not_fold():
825- source :: tuple
826- r0 :: native_int
827- r1 :: tuple
828- r2 :: native_int
829- r3 :: bit
825+ r0 :: dict
826+ r1 :: str
827+ r2 :: object
828+ r3 :: tuple[int, int, int]
830829 r4 :: object
831- r5, x, r6 :: bool
832- r7 :: object
833- r8 :: native_int
830+ r5 :: native_int
831+ r6 :: bit
832+ r7, r8, r9 :: int
833+ r10, r11, r12 :: object
834+ r13, r14 :: tuple
835+ r15 :: native_int
836+ r16 :: bit
837+ r17 :: object
838+ r18, x :: int
839+ r19 :: bool
840+ r20 :: object
841+ r21 :: native_int
834842 a :: tuple
835843L0:
836- r0 = var_object_size source
837- r1 = PyTuple_New(r0)
838- r2 = 0
844+ r0 = __main__.globals :: static
845+ r1 = 'source_var'
846+ r2 = CPyDict_GetItem(r0, r1)
847+ r3 = unbox(tuple[int, int, int], r2)
848+ r4 = box(tuple[int, int, int], r3)
849+ r5 = PyObject_Size(r4)
850+ r6 = r5 >= 0 :: signed
851+ r7 = r3[0]
852+ r8 = r3[1]
853+ r9 = r3[2]
854+ r10 = box(int, r7)
855+ r11 = box(int, r8)
856+ r12 = box(int, r9)
857+ r13 = PyTuple_Pack(3, r10, r11, r12)
858+ r14 = PyTuple_New(r5)
859+ r15 = 0
839860L1:
840- r3 = r2 < r0 :: signed
841- if r3 goto L2 else goto L4 :: bool
861+ r16 = r15 < r5 :: signed
862+ if r16 goto L2 else goto L4 :: bool
842863L2:
843- r4 = CPySequenceTuple_GetItemUnsafe(source, r2 )
844- r5 = unbox(bool, r4 )
845- x = r5
846- r6 = f(x)
847- r7 = box(bool, r6 )
848- CPySequenceTuple_SetItemUnsafe(r1, r2, r7 )
864+ r17 = CPySequenceTuple_GetItemUnsafe(r13, r15 )
865+ r18 = unbox(int, r17 )
866+ x = r18
867+ r19 = f(x)
868+ r20 = box(bool, r19 )
869+ CPySequenceTuple_SetItemUnsafe(r14, r15, r20 )
849870L3:
850- r8 = r2 + 1
851- r2 = r8
871+ r21 = r15 + 1
872+ r15 = r21
852873 goto L1
853874L4:
854- a = r1
875+ a = r14
855876 return 1
856877
857878[case testTupleBuiltFromVariableLengthTuple]
0 commit comments