Generates a wrapper for native __get__ methods.
(cl: ClassIR, fn: FuncIR, emitter: Emitter)
| 529 | |
| 530 | |
| 531 | def generate_get_wrapper(cl: ClassIR, fn: FuncIR, emitter: Emitter) -> str: |
| 532 | """Generates a wrapper for native __get__ methods.""" |
| 533 | name = f"{DUNDER_PREFIX}{fn.name}{cl.name_prefix(emitter.names)}" |
| 534 | emitter.emit_line( |
| 535 | "static PyObject *{name}(PyObject *self, PyObject *instance, PyObject *owner) {{".format( |
| 536 | name=name |
| 537 | ) |
| 538 | ) |
| 539 | emitter.emit_line("instance = instance ? instance : Py_None;") |
| 540 | emitter.emit_line(f"return {emitter.native_function_call(fn.decl)}(self, instance, owner);") |
| 541 | emitter.emit_line("}") |
| 542 | |
| 543 | return name |
| 544 | |
| 545 | |
| 546 | def generate_hash_wrapper(cl: ClassIR, fn: FuncIR, emitter: Emitter) -> str: |
nothing calls this directly
no test coverage detected
searching dependent graphs…