|
12 | 12 | from mypyc.ir.ops import ERR_NEVER, ERR_MAGIC, ERR_NEG_INT
|
13 | 13 | from mypyc.ir.rtypes import object_rprimitive, int_rprimitive, bool_rprimitive, c_int_rprimitive
|
14 | 14 | from mypyc.primitives.registry import (
|
15 |
| - binary_op, unary_op, custom_op, call_emit, simple_emit, |
16 |
| - call_negative_magic_emit, negative_int_emit, |
| 15 | + binary_op, custom_op, call_emit, simple_emit, |
17 | 16 | c_binary_op, c_unary_op, c_method_op, c_function_op, c_custom_op
|
18 | 17 | )
|
19 | 18 |
|
|
79 | 78 | emit=simple_emit('{dest} = PyNumber_Power({args[0]}, {args[1]}, Py_None);'),
|
80 | 79 | priority=0)
|
81 | 80 |
|
82 |
| -binary_op('in', |
83 |
| - arg_types=[object_rprimitive, object_rprimitive], |
84 |
| - result_type=bool_rprimitive, |
85 |
| - error_kind=ERR_MAGIC, |
86 |
| - emit=negative_int_emit('{dest} = PySequence_Contains({args[1]}, {args[0]});'), |
87 |
| - priority=0) |
| 81 | +c_binary_op( |
| 82 | + name='in', |
| 83 | + arg_types=[object_rprimitive, object_rprimitive], |
| 84 | + return_type=c_int_rprimitive, |
| 85 | + c_function_name='PySequence_Contains', |
| 86 | + error_kind=ERR_NEG_INT, |
| 87 | + truncated_type=bool_rprimitive, |
| 88 | + ordering=[1, 0], |
| 89 | + priority=0) |
88 | 90 |
|
89 | 91 | binary_op('is',
|
90 | 92 | arg_types=[object_rprimitive, object_rprimitive],
|
|
113 | 115 | error_kind=ERR_MAGIC,
|
114 | 116 | priority=0)
|
115 | 117 |
|
116 |
| -unary_op(op='not', |
117 |
| - arg_type=object_rprimitive, |
118 |
| - result_type=bool_rprimitive, |
119 |
| - error_kind=ERR_MAGIC, |
120 |
| - format_str='{dest} = not {args[0]}', |
121 |
| - emit=call_negative_magic_emit('PyObject_Not'), |
122 |
| - priority=0) |
123 |
| - |
| 118 | +c_unary_op( |
| 119 | + name='not', |
| 120 | + arg_type=object_rprimitive, |
| 121 | + return_type=c_int_rprimitive, |
| 122 | + c_function_name='PyObject_Not', |
| 123 | + error_kind=ERR_NEG_INT, |
| 124 | + truncated_type=bool_rprimitive, |
| 125 | + priority=0) |
124 | 126 |
|
125 | 127 | # obj1[obj2]
|
126 | 128 | c_method_op(name='__getitem__',
|
|
0 commit comments