| from mypyc.ir.ops import ERR_MAGIC | |
| from mypyc.ir.rtypes import object_rprimitive, pointer_rprimitive | |
| from mypyc.primitives.registry import function_op | |
| # Weakref operations | |
| new_ref_op = function_op( | |
| name="weakref.ReferenceType", | |
| arg_types=[object_rprimitive], | |
| return_type=object_rprimitive, | |
| c_function_name="PyWeakref_NewRef", | |
| extra_int_constants=[(0, pointer_rprimitive)], | |
| error_kind=ERR_MAGIC, | |
| ) | |
| new_ref__with_callback_op = function_op( | |
| name="weakref.ReferenceType", | |
| arg_types=[object_rprimitive, object_rprimitive], | |
| return_type=object_rprimitive, | |
| c_function_name="PyWeakref_NewRef", | |
| error_kind=ERR_MAGIC, | |
| ) | |
| new_proxy_op = function_op( | |
| name="_weakref.proxy", | |
| arg_types=[object_rprimitive], | |
| return_type=object_rprimitive, | |
| c_function_name="PyWeakref_NewProxy", | |
| extra_int_constants=[(0, pointer_rprimitive)], | |
| error_kind=ERR_MAGIC, | |
| ) | |
| new_proxy_with_callback_op = function_op( | |
| name="_weakref.proxy", | |
| arg_types=[object_rprimitive, object_rprimitive], | |
| # steals=[True, False], | |
| return_type=object_rprimitive, | |
| c_function_name="PyWeakref_NewProxy", | |
| error_kind=ERR_MAGIC, | |
| ) |