Skip to content

Commit b670e60

Browse files
committed
Add keys too
1 parent 6f768ae commit b670e60

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

mypyc/test-data/irbuild-generics.test

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,7 @@ def deco(func: Callable[P, int]) -> Callable[P, int]:
681681
can_listcomp = [x for x in args]
682682
can_dictcomp = {k: v for k, v in kwargs.items()}
683683
can_iter = list(kwargs)
684+
can_use_keys = list(kwargs.keys())
684685
can_use_values = list(kwargs.values())
685686
return func(*args, **kwargs)
686687

@@ -734,16 +735,16 @@ def inner_deco_obj.__call__(__mypyc_self__, args, kwargs):
734735
r21 :: i32
735736
r22, r23, r24 :: bit
736737
can_dictcomp :: dict
737-
r25, can_iter, r26, can_use_values :: list
738-
r27 :: object
739-
r28 :: list
740-
r29 :: object
741-
r30 :: dict
742-
r31 :: i32
743-
r32 :: bit
744-
r33 :: tuple
745-
r34 :: object
746-
r35 :: int
738+
r25, can_iter, r26, can_use_keys, r27, can_use_values :: list
739+
r28 :: object
740+
r29 :: list
741+
r30 :: object
742+
r31 :: dict
743+
r32 :: i32
744+
r33 :: bit
745+
r34 :: tuple
746+
r35 :: object
747+
r36 :: int
747748
L0:
748749
r0 = __mypyc_self__.__mypyc_env__
749750
r1 = var_object_size args
@@ -792,18 +793,20 @@ L9:
792793
can_dictcomp = r10
793794
r25 = PySequence_List(kwargs)
794795
can_iter = r25
795-
r26 = CPyDict_Values(kwargs)
796-
can_use_values = r26
797-
r27 = r0.func
798-
r28 = PyList_New(0)
799-
r29 = CPyList_Extend(r28, args)
800-
r30 = PyDict_New()
801-
r31 = CPyDict_UpdateInDisplay(r30, kwargs)
802-
r32 = r31 >= 0 :: signed
803-
r33 = PyList_AsTuple(r28)
804-
r34 = PyObject_Call(r27, r33, r30)
805-
r35 = unbox(int, r34)
806-
return r35
796+
r26 = CPyDict_Keys(kwargs)
797+
can_use_keys = r26
798+
r27 = CPyDict_Values(kwargs)
799+
can_use_values = r27
800+
r28 = r0.func
801+
r29 = PyList_New(0)
802+
r30 = CPyList_Extend(r29, args)
803+
r31 = PyDict_New()
804+
r32 = CPyDict_UpdateInDisplay(r31, kwargs)
805+
r33 = r32 >= 0 :: signed
806+
r34 = PyList_AsTuple(r29)
807+
r35 = PyObject_Call(r28, r34, r31)
808+
r36 = unbox(int, r35)
809+
return r36
807810
def deco(func):
808811
func :: object
809812
r0 :: __main__.deco_env

0 commit comments

Comments
 (0)