Skip to content

Commit 5d91bc8

Browse files
committed
fix tests
1 parent c02c12e commit 5d91bc8

File tree

4 files changed

+482
-274
lines changed

4 files changed

+482
-274
lines changed

mypyc/test-data/irbuild-frozenset.test

Lines changed: 124 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -189,104 +189,159 @@ L0:
189189
[case testFrozenSetFromRange4]
190190
from typing import FrozenSet
191191
def fn() -> FrozenSet[str]:
192-
return frozenset(str(i) for i in range(3))
192+
abc = tuple(range(3))
193+
return frozenset(str(i) for i in abc)
193194
[out]
194195
def fn():
195-
r0 :: list
196-
r1 :: short_int
197-
i :: int
198-
r2 :: bit
199-
r3 :: str
200-
r4 :: i32
201-
r5 :: bit
202-
r6 :: short_int
203-
r7 :: frozenset
196+
r0, r1 :: object
197+
r2 :: object[1]
198+
r3 :: object_ptr
199+
r4 :: object
200+
r5 :: range
201+
r6, abc :: tuple
202+
r7 :: native_int
203+
r8 :: list
204+
r9 :: native_int
205+
r10 :: bit
206+
r11 :: object
207+
r12, i :: int
208+
r13 :: str
209+
r14 :: native_int
210+
r15 :: frozenset
204211
L0:
205-
r0 = PyList_New(0)
206-
r1 = 0
207-
i = r1
212+
r0 = load_address PyRange_Type
213+
r1 = object 3
214+
r2 = [r1]
215+
r3 = load_address r2
216+
r4 = PyObject_Vectorcall(r0, r3, 1, 0)
217+
keep_alive r1
218+
r5 = cast(range, r4)
219+
r6 = PySequence_Tuple(r5)
220+
abc = r6
221+
r7 = var_object_size abc
222+
r8 = PyList_New(r7)
223+
r9 = 0
208224
L1:
209-
r2 = int_lt r1, 6
210-
if r2 goto L2 else goto L4 :: bool
225+
r10 = r9 < r7 :: signed
226+
if r10 goto L2 else goto L4 :: bool
211227
L2:
212-
r3 = CPyTagged_Str(i)
213-
r4 = PyList_Append(r0, r3)
214-
r5 = r4 >= 0 :: signed
228+
r11 = CPySequenceTuple_GetItemUnsafe(abc, r9)
229+
r12 = unbox(int, r11)
230+
i = r12
231+
r13 = CPyTagged_Str(i)
232+
CPyList_SetItemUnsafe(r8, r9, r13)
215233
L3:
216-
r6 = r1 + 2
217-
r1 = r6
218-
i = r6
234+
r14 = r9 + 1
235+
r9 = r14
219236
goto L1
220237
L4:
221-
r7 = PyFrozenSet_New(r0)
222-
return r7
238+
r15 = PyFrozenSet_New(r8)
239+
return r15
223240

224241
[case testFrozenSetFromRange5]
225242
from typing import FrozenSet
226243
def fn() -> FrozenSet[str]:
227-
return frozenset(str(i) for i in range(1, 3))
244+
abc = tuple(range(1, 3))
245+
return frozenset(str(i) for i in abc)
228246
[out]
229247
def fn():
230-
r0 :: list
231-
r1 :: short_int
232-
i :: int
233-
r2 :: bit
234-
r3 :: str
235-
r4 :: i32
236-
r5 :: bit
237-
r6 :: short_int
238-
r7 :: frozenset
248+
r0, r1, r2 :: object
249+
r3 :: object[2]
250+
r4 :: object_ptr
251+
r5 :: object
252+
r6 :: range
253+
r7, abc :: tuple
254+
r8 :: native_int
255+
r9 :: list
256+
r10 :: native_int
257+
r11 :: bit
258+
r12 :: object
259+
r13, i :: int
260+
r14 :: str
261+
r15 :: native_int
262+
r16 :: frozenset
239263
L0:
240-
r0 = PyList_New(0)
241-
r1 = 2
242-
i = r1
264+
r0 = load_address PyRange_Type
265+
r1 = object 1
266+
r2 = object 3
267+
r3 = [r1, r2]
268+
r4 = load_address r3
269+
r5 = PyObject_Vectorcall(r0, r4, 2, 0)
270+
keep_alive r1, r2
271+
r6 = cast(range, r5)
272+
r7 = PySequence_Tuple(r6)
273+
abc = r7
274+
r8 = var_object_size abc
275+
r9 = PyList_New(r8)
276+
r10 = 0
243277
L1:
244-
r2 = int_lt r1, 6
245-
if r2 goto L2 else goto L4 :: bool
278+
r11 = r10 < r8 :: signed
279+
if r11 goto L2 else goto L4 :: bool
246280
L2:
247-
r3 = CPyTagged_Str(i)
248-
r4 = PyList_Append(r0, r3)
249-
r5 = r4 >= 0 :: signed
281+
r12 = CPySequenceTuple_GetItemUnsafe(abc, r10)
282+
r13 = unbox(int, r12)
283+
i = r13
284+
r14 = CPyTagged_Str(i)
285+
CPyList_SetItemUnsafe(r9, r10, r14)
250286
L3:
251-
r6 = r1 + 2
252-
r1 = r6
253-
i = r6
287+
r15 = r10 + 1
288+
r10 = r15
254289
goto L1
255290
L4:
256-
r7 = PyFrozenSet_New(r0)
257-
return r7
291+
r16 = PyFrozenSet_New(r9)
292+
return r16
258293

259294
[case testFrozenSetFromRange6]
260295
from typing import FrozenSet
261296
def fn() -> FrozenSet[str]:
262-
return frozenset(str(i) for i in range(1, 3, 2))
297+
abc = tuple(range(1, 3, 2))
298+
return frozenset(str(i) for i in abc)
263299
[out]
264300
def fn():
265-
r0 :: list
266-
r1 :: short_int
267-
i :: int
268-
r2 :: bit
269-
r3 :: str
270-
r4 :: i32
271-
r5 :: bit
272-
r6 :: short_int
273-
r7 :: frozenset
301+
r0, r1, r2, r3 :: object
302+
r4 :: object[3]
303+
r5 :: object_ptr
304+
r6 :: object
305+
r7 :: range
306+
r8, abc :: tuple
307+
r9 :: native_int
308+
r10 :: list
309+
r11 :: native_int
310+
r12 :: bit
311+
r13 :: object
312+
r14, i :: int
313+
r15 :: str
314+
r16 :: native_int
315+
r17 :: frozenset
274316
L0:
275-
r0 = PyList_New(0)
276-
r1 = 2
277-
i = r1
317+
r0 = load_address PyRange_Type
318+
r1 = object 1
319+
r2 = object 3
320+
r3 = object 2
321+
r4 = [r1, r2, r3]
322+
r5 = load_address r4
323+
r6 = PyObject_Vectorcall(r0, r5, 3, 0)
324+
keep_alive r1, r2, r3
325+
r7 = cast(range, r6)
326+
r8 = PySequence_Tuple(r7)
327+
abc = r8
328+
r9 = var_object_size abc
329+
r10 = PyList_New(r9)
330+
r11 = 0
278331
L1:
279-
r2 = int_lt r1, 6
280-
if r2 goto L2 else goto L4 :: bool
332+
r12 = r11 < r9 :: signed
333+
if r12 goto L2 else goto L4 :: bool
281334
L2:
282-
r3 = CPyTagged_Str(i)
283-
r4 = PyList_Append(r0, r3)
284-
r5 = r4 >= 0 :: signed
335+
r13 = CPySequenceTuple_GetItemUnsafe(abc, r11)
336+
r14 = unbox(int, r13)
337+
i = r14
338+
r15 = CPyTagged_Str(i)
339+
CPyList_SetItemUnsafe(r10, r11, r15)
285340
L3:
286-
r6 = r1 + 4
287-
r1 = r6
288-
i = r6
341+
r16 = r11 + 1
342+
r11 = r16
289343
goto L1
290344
L4:
291-
r7 = PyFrozenSet_New(r0)
292-
return r7
345+
r17 = PyFrozenSet_New(r10)
346+
return r17
347+

0 commit comments

Comments
 (0)