Skip to content

Commit e788168

Browse files
testTupleBuiltFromLengthCheckable
1 parent 3389573 commit e788168

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

mypyc/test-data/irbuild-tuple.test

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,6 +829,53 @@ L4:
829829
a = r1
830830
return 1
831831

832+
[case testTupleBuiltFromLengthCheckable]
833+
from typing import Tuple
834+
835+
def f(val: bool) -> bool:
836+
return not val
837+
838+
def test() -> None:
839+
a = tuple((i, x) for i, (_, x) in zip(map(str, range(5)), enumerate(sorted(reversed("abc")))))
840+
[out]
841+
def f(val):
842+
val, r0 :: bool
843+
L0:
844+
r0 = val ^ 1
845+
return r0
846+
def test(source):
847+
source :: tuple
848+
r0 :: native_int
849+
r1 :: tuple
850+
r2 :: native_int
851+
r3 :: bit
852+
r4 :: object
853+
r5, x, r6 :: bool
854+
r7 :: object
855+
r8 :: native_int
856+
a :: tuple
857+
L0:
858+
r0 = var_object_size source
859+
r1 = PyTuple_New(r0)
860+
r2 = 0
861+
L1:
862+
r3 = r2 < r0 :: signed
863+
if r3 goto L2 else goto L4 :: bool
864+
L2:
865+
r4 = CPySequenceTuple_GetItemUnsafe(source, r2)
866+
r5 = unbox(bool, r4)
867+
x = r5
868+
r6 = f(x)
869+
r7 = box(bool, r6)
870+
CPySequenceTuple_SetItemUnsafe(r1, r2, r7)
871+
L3:
872+
r8 = r2 + 1
873+
r2 = r8
874+
goto L1
875+
L4:
876+
a = r1
877+
return 1
878+
832879
[case testTupleBuiltFromStars]
833880
from typing import Final
834881

0 commit comments

Comments
 (0)