(fn: FuncIR, emitter: Emitter, rmethod: str)
| 449 | |
| 450 | |
| 451 | def generate_bin_op_reverse_dunder_call(fn: FuncIR, emitter: Emitter, rmethod: str) -> None: |
| 452 | if fn.name in ("__pow__", "__rpow__"): |
| 453 | # Ternary pow() will never call the reverse dunder. |
| 454 | emitter.emit_line("if (obj_mod == Py_None) {") |
| 455 | emitter.emit_line( |
| 456 | 'return CPy_CallReverseOpMethod(obj_left, obj_right, "{}", mypyc_interned_str.{});'.format( |
| 457 | op_methods_to_symbols[fn.name], rmethod |
| 458 | ) |
| 459 | ) |
| 460 | if fn.name in ("__pow__", "__rpow__"): |
| 461 | emitter.emit_line("} else {") |
| 462 | emitter.emit_line("Py_INCREF(Py_NotImplemented);") |
| 463 | emitter.emit_line("return Py_NotImplemented;") |
| 464 | emitter.emit_line("}") |
| 465 | |
| 466 | |
| 467 | def handle_third_pow_argument( |
no test coverage detected
searching dependent graphs…