@@ -1378,14 +1378,15 @@ def f(x):
1378
1378
r15 :: bit
1379
1379
r16 :: bool
1380
1380
r17 :: native_int
1381
- r18, rest :: object
1382
- r19 :: str
1383
- r20 :: object
1384
- r21 :: str
1385
- r22 :: object
1386
- r23 :: object[1]
1387
- r24 :: object_ptr
1388
- r25, r26 :: object
1381
+ r18 :: object
1382
+ r19, rest :: list
1383
+ r20 :: str
1384
+ r21 :: object
1385
+ r22 :: str
1386
+ r23 :: object
1387
+ r24 :: object[1]
1388
+ r25 :: object_ptr
1389
+ r26, r27 :: object
1389
1390
L0:
1390
1391
r0 = CPySequence_Check(x)
1391
1392
r1 = r0 != 0
@@ -1414,21 +1415,23 @@ L3:
1414
1415
L4:
1415
1416
r17 = r2 - 0
1416
1417
r18 = PySequence_GetSlice(x, 2, r17)
1417
- rest = r18
1418
+ r19 = cast(list, r18)
1419
+ rest = r19
1418
1420
L5:
1419
- r19 = 'matched'
1420
- r20 = builtins :: module
1421
- r21 = 'print'
1422
- r22 = CPyObject_GetAttr(r20, r21 )
1423
- r23 = [r19 ]
1424
- r24 = load_address r23
1425
- r25 = _PyObject_Vectorcall(r22, r24 , 1, 0)
1426
- keep_alive r19
1421
+ r20 = 'matched'
1422
+ r21 = builtins :: module
1423
+ r22 = 'print'
1424
+ r23 = CPyObject_GetAttr(r21, r22 )
1425
+ r24 = [r20 ]
1426
+ r25 = load_address r24
1427
+ r26 = _PyObject_Vectorcall(r23, r25 , 1, 0)
1428
+ keep_alive r20
1427
1429
goto L7
1428
1430
L6:
1429
1431
L7:
1430
- r26 = box(None, 1)
1431
- return r26
1432
+ r27 = box(None, 1)
1433
+ return r27
1434
+
1432
1435
[case testMatchSequenceWithStarPatternInTheMiddle_python3_10]
1433
1436
def f(x):
1434
1437
match x:
@@ -1455,14 +1458,15 @@ def f(x):
1455
1458
r16 :: bit
1456
1459
r17 :: bool
1457
1460
r18 :: native_int
1458
- r19, rest :: object
1459
- r20 :: str
1460
- r21 :: object
1461
- r22 :: str
1462
- r23 :: object
1463
- r24 :: object[1]
1464
- r25 :: object_ptr
1465
- r26, r27 :: object
1461
+ r19 :: object
1462
+ r20, rest :: list
1463
+ r21 :: str
1464
+ r22 :: object
1465
+ r23 :: str
1466
+ r24 :: object
1467
+ r25 :: object[1]
1468
+ r26 :: object_ptr
1469
+ r27, r28 :: object
1466
1470
L0:
1467
1471
r0 = CPySequence_Check(x)
1468
1472
r1 = r0 != 0
@@ -1492,21 +1496,23 @@ L3:
1492
1496
L4:
1493
1497
r18 = r2 - 1
1494
1498
r19 = PySequence_GetSlice(x, 1, r18)
1495
- rest = r19
1499
+ r20 = cast(list, r19)
1500
+ rest = r20
1496
1501
L5:
1497
- r20 = 'matched'
1498
- r21 = builtins :: module
1499
- r22 = 'print'
1500
- r23 = CPyObject_GetAttr(r21, r22 )
1501
- r24 = [r20 ]
1502
- r25 = load_address r24
1503
- r26 = _PyObject_Vectorcall(r23, r25 , 1, 0)
1504
- keep_alive r20
1502
+ r21 = 'matched'
1503
+ r22 = builtins :: module
1504
+ r23 = 'print'
1505
+ r24 = CPyObject_GetAttr(r22, r23 )
1506
+ r25 = [r21 ]
1507
+ r26 = load_address r25
1508
+ r27 = _PyObject_Vectorcall(r24, r26 , 1, 0)
1509
+ keep_alive r21
1505
1510
goto L7
1506
1511
L6:
1507
1512
L7:
1508
- r27 = box(None, 1)
1509
- return r27
1513
+ r28 = box(None, 1)
1514
+ return r28
1515
+
1510
1516
[case testMatchSequenceWithStarPatternAtTheStart_python3_10]
1511
1517
def f(x):
1512
1518
match x:
@@ -1530,14 +1536,15 @@ def f(x):
1530
1536
r17 :: bit
1531
1537
r18 :: bool
1532
1538
r19 :: native_int
1533
- r20, rest :: object
1534
- r21 :: str
1535
- r22 :: object
1536
- r23 :: str
1537
- r24 :: object
1538
- r25 :: object[1]
1539
- r26 :: object_ptr
1540
- r27, r28 :: object
1539
+ r20 :: object
1540
+ r21, rest :: list
1541
+ r22 :: str
1542
+ r23 :: object
1543
+ r24 :: str
1544
+ r25 :: object
1545
+ r26 :: object[1]
1546
+ r27 :: object_ptr
1547
+ r28, r29 :: object
1541
1548
L0:
1542
1549
r0 = CPySequence_Check(x)
1543
1550
r1 = r0 != 0
@@ -1568,21 +1575,23 @@ L3:
1568
1575
L4:
1569
1576
r19 = r2 - 2
1570
1577
r20 = PySequence_GetSlice(x, 0, r19)
1571
- rest = r20
1578
+ r21 = cast(list, r20)
1579
+ rest = r21
1572
1580
L5:
1573
- r21 = 'matched'
1574
- r22 = builtins :: module
1575
- r23 = 'print'
1576
- r24 = CPyObject_GetAttr(r22, r23 )
1577
- r25 = [r21 ]
1578
- r26 = load_address r25
1579
- r27 = _PyObject_Vectorcall(r24, r26 , 1, 0)
1580
- keep_alive r21
1581
+ r22 = 'matched'
1582
+ r23 = builtins :: module
1583
+ r24 = 'print'
1584
+ r25 = CPyObject_GetAttr(r23, r24 )
1585
+ r26 = [r22 ]
1586
+ r27 = load_address r26
1587
+ r28 = _PyObject_Vectorcall(r25, r27 , 1, 0)
1588
+ keep_alive r22
1581
1589
goto L7
1582
1590
L6:
1583
1591
L7:
1584
- r28 = box(None, 1)
1585
- return r28
1592
+ r29 = box(None, 1)
1593
+ return r29
1594
+
1586
1595
[case testMatchBuiltinClassPattern_python3_10]
1587
1596
def f(x):
1588
1597
match x:
@@ -1634,14 +1643,15 @@ def f(x):
1634
1643
r2 :: native_int
1635
1644
r3, r4 :: bit
1636
1645
r5 :: native_int
1637
- r6, rest :: object
1638
- r7 :: str
1639
- r8 :: object
1640
- r9 :: str
1641
- r10 :: object
1642
- r11 :: object[1]
1643
- r12 :: object_ptr
1644
- r13, r14 :: object
1646
+ r6 :: object
1647
+ r7, rest :: list
1648
+ r8 :: str
1649
+ r9 :: object
1650
+ r10 :: str
1651
+ r11 :: object
1652
+ r12 :: object[1]
1653
+ r13 :: object_ptr
1654
+ r14, r15 :: object
1645
1655
L0:
1646
1656
r0 = CPySequence_Check(x)
1647
1657
r1 = r0 != 0
@@ -1654,21 +1664,23 @@ L1:
1654
1664
L2:
1655
1665
r5 = r2 - 0
1656
1666
r6 = PySequence_GetSlice(x, 0, r5)
1657
- rest = r6
1667
+ r7 = cast(list, r6)
1668
+ rest = r7
1658
1669
L3:
1659
- r7 = 'matched'
1660
- r8 = builtins :: module
1661
- r9 = 'print'
1662
- r10 = CPyObject_GetAttr(r8, r9 )
1663
- r11 = [r7 ]
1664
- r12 = load_address r11
1665
- r13 = _PyObject_Vectorcall(r10, r12 , 1, 0)
1666
- keep_alive r7
1670
+ r8 = 'matched'
1671
+ r9 = builtins :: module
1672
+ r10 = 'print'
1673
+ r11 = CPyObject_GetAttr(r9, r10 )
1674
+ r12 = [r8 ]
1675
+ r13 = load_address r12
1676
+ r14 = _PyObject_Vectorcall(r11, r13 , 1, 0)
1677
+ keep_alive r8
1667
1678
goto L5
1668
1679
L4:
1669
1680
L5:
1670
- r14 = box(None, 1)
1671
- return r14
1681
+ r15 = box(None, 1)
1682
+ return r15
1683
+
1672
1684
[case testMatchTypeAnnotatedNativeClass_python3_10]
1673
1685
class A:
1674
1686
a: int
0 commit comments