Skip to content

Commit 92598af

Browse files
committed
fix: ir
1 parent 77ac6bf commit 92598af

File tree

2 files changed

+36
-29
lines changed

2 files changed

+36
-29
lines changed

mypyc/test-data/irbuild-basic.test

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1680,7 +1680,7 @@ L0:
16801680
r0 = (2, 4, 6)
16811681
r1 = __main__.globals :: static
16821682
r2 = 'f'
1683-
r3 = CPyDict_GetItem(r1, r2)
1683+
r3 = CPyDict_GetItemUnsafe(r1, r2)
16841684
r4 = box(tuple[int, int, int], r0)
16851685
r5 = PyObject_CallObject(r3, r4)
16861686
r6 = unbox(tuple[int, int, int], r5)
@@ -1732,11 +1732,11 @@ L0:
17321732
def g():
17331733
r0, r1, r2 :: str
17341734
r3, r4, r5 :: object
1735-
r6, r7 :: dict
1735+
r6, r7 :: dict[exact]
17361736
r8 :: str
17371737
r9 :: object
17381738
r10 :: tuple
1739-
r11 :: dict
1739+
r11 :: dict[exact]
17401740
r12 :: object
17411741
r13 :: tuple[int, int, int]
17421742
L0:
@@ -1749,7 +1749,7 @@ L0:
17491749
r6 = CPyDict_Build(3, r0, r3, r1, r4, r2, r5)
17501750
r7 = __main__.globals :: static
17511751
r8 = 'f'
1752-
r9 = CPyDict_GetItem(r7, r8)
1752+
r9 = CPyDict_GetItemUnsafe(r7, r8)
17531753
r10 = CPyTuple_LoadEmptyTupleConstant()
17541754
r11 = PyDict_Copy(r6)
17551755
r12 = PyObject_Call(r9, r10, r11)
@@ -3675,15 +3675,16 @@ def wrapper_deco_obj.__call__(__mypyc_self__, lst, kwargs):
36753675
r0 :: __main__.deco_env
36763676
r1 :: object
36773677
r2 :: tuple
3678-
r3 :: dict
3679-
r4 :: object
3678+
r3, r4 :: dict[exact]
3679+
r5 :: object
36803680
L0:
36813681
r0 = __mypyc_self__.__mypyc_env__
36823682
r1 = r0.fn
36833683
r2 = PyList_AsTuple(lst)
3684-
r3 = PyDict_Copy(kwargs)
3685-
r4 = PyObject_Call(r1, r2, r3)
3686-
return r4
3684+
r3 = cast(dict[exact], kwargs)
3685+
r4 = PyDict_Copy(r3)
3686+
r5 = PyObject_Call(r1, r2, r4)
3687+
return r5
36873688
def deco(fn):
36883689
fn :: object
36893690
r0 :: __main__.deco_env
@@ -3776,15 +3777,16 @@ def wrapper_deco_obj.__call__(__mypyc_self__, args, kwargs):
37763777
r0 :: __main__.deco_env
37773778
r1 :: object
37783779
r2 :: tuple
3779-
r3 :: dict
3780-
r4 :: object
3780+
r3, r4 :: dict[exact]
3781+
r5 :: object
37813782
L0:
37823783
r0 = __mypyc_self__.__mypyc_env__
37833784
r1 = r0.fn
37843785
r2 = PySequence_Tuple(args)
3785-
r3 = PyDict_Copy(kwargs)
3786-
r4 = PyObject_Call(r1, r2, r3)
3787-
return r4
3786+
r3 = cast(dict[exact], kwargs)
3787+
r4 = PyDict_Copy(r3)
3788+
r5 = PyObject_Call(r1, r2, r4)
3789+
return r5
37883790
def deco(fn):
37893791
fn :: object
37903792
r0 :: __main__.deco_env
@@ -3799,3 +3801,4 @@ L0:
37993801
r2.__mypyc_env__ = r0; r3 = is_error
38003802
wrapper = r2
38013803
return wrapper
3804+

mypyc/test-data/irbuild-generics.test

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,16 @@ execute(f, 1)
166166
def execute(func, args, kwargs):
167167
func :: object
168168
args :: tuple
169-
kwargs, r0 :: dict
170-
r1 :: object
171-
r2 :: int
169+
kwargs :: dict
170+
r0, r1 :: dict[exact]
171+
r2 :: object
172+
r3 :: int
172173
L0:
173-
r0 = PyDict_Copy(kwargs)
174-
r1 = PyObject_Call(func, args, r0)
175-
r2 = unbox(int, r1)
176-
return r2
174+
r0 = cast(dict[exact], kwargs)
175+
r1 = PyDict_Copy(r0)
176+
r2 = PyObject_Call(func, args, r1)
177+
r3 = unbox(int, r2)
178+
return r3
177179
def f(x):
178180
x :: int
179181
L0:
@@ -683,7 +685,7 @@ def inner_deco_obj.__call__(__mypyc_self__, args, kwargs):
683685
r5, x :: object
684686
r6 :: native_int
685687
can_listcomp :: list
686-
r7 :: dict
688+
r7 :: dict[exact]
687689
r8 :: short_int
688690
r9 :: native_int
689691
r10 :: object
@@ -698,9 +700,9 @@ def inner_deco_obj.__call__(__mypyc_self__, args, kwargs):
698700
can_dictcomp :: dict
699701
r21, can_iter, r22, can_use_keys, r23, can_use_values :: list
700702
r24 :: object
701-
r25 :: dict
702-
r26 :: object
703-
r27 :: int
703+
r25, r26 :: dict[exact]
704+
r27 :: object
705+
r28 :: int
704706
L0:
705707
r0 = __mypyc_self__.__mypyc_env__
706708
r1 = var_object_size args
@@ -751,10 +753,11 @@ L9:
751753
r23 = CPyDict_Values(kwargs)
752754
can_use_values = r23
753755
r24 = r0.func
754-
r25 = PyDict_Copy(kwargs)
755-
r26 = PyObject_Call(r24, args, r25)
756-
r27 = unbox(int, r26)
757-
return r27
756+
r25 = cast(dict[exact], kwargs)
757+
r26 = PyDict_Copy(r25)
758+
r27 = PyObject_Call(r24, args, r26)
759+
r28 = unbox(int, r27)
760+
return r28
758761
def deco(func):
759762
func :: object
760763
r0 :: __main__.deco_env
@@ -773,3 +776,4 @@ def f(x):
773776
x :: int
774777
L0:
775778
return x
779+

0 commit comments

Comments
 (0)