| 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, |
| ) |