File tree Expand file tree Collapse file tree 2 files changed +17
-7
lines changed Expand file tree Collapse file tree 2 files changed +17
-7
lines changed Original file line number Diff line number Diff line change 11from mypyc .ir .ops import ERR_MAGIC
22from mypyc .ir .rtypes import object_rprimitive
3- from mypyc .primitives .registry import function_op
3+ from mypyc .primitives .registry import ERR_NEG_INT , function_op
44
55# Weakref operations
66
1111 c_function_name = "PyWeakref_NewRef" ,
1212 error_kind = ERR_MAGIC ,
1313)
14+
15+ deref_op = function_op (
16+ name = "weakref.ReferenceType.__call__" ,
17+ arg_types = [object_rprimitive ],
18+ return_type = object_rprimitive ,
19+ c_function_name = "PyWeakref_GetRef" ,
20+ error_kind = ERR_NEG_INT ,
21+ )
Original file line number Diff line number Diff line change 22import weakref
33from typing import Any, Callable
44def f(x: object, cb: Callable[[object], Any]) -> object:
5- return weakref.ref(x, cb)
5+ return weakref.ref(x, cb)()
66
77[out]
88def f(x, cb):
9- x, cb, r0 :: object
9+ x, cb, r0, r1 :: object
1010L0:
1111 r0 = PyWeakref_NewRef(x, cb)
12- return r0
12+ r1 = PyWeakref_GetRef(r0)
13+ return r1
1314
1415[case testFromWeakrefRefCallback]
1516from typing import Any, Callable
1617from weakref import ref
1718def f(x: object, cb: Callable[[object], Any]) -> object:
18- return ref(x, cb)
19+ return ref(x, cb)()
1920
2021[out]
2122def f(x, cb):
22- x, cb, r0 :: object
23+ x, cb, r0, r1 :: object
2324L0:
2425 r0 = PyWeakref_NewRef(x, cb)
25- return r0
26+ r1 = PyWeakref_GetRef(r0)
27+ return r1
You can’t perform that action at this time.
0 commit comments