(
cl: ClassIR, attr: str, arg_type: RType, func_ir: FuncIR, emitter: Emitter
)
| 1258 | |
| 1259 | |
| 1260 | def generate_property_setter( |
| 1261 | cl: ClassIR, attr: str, arg_type: RType, func_ir: FuncIR, emitter: Emitter |
| 1262 | ) -> None: |
| 1263 | emitter.emit_line("static int") |
| 1264 | emitter.emit_line( |
| 1265 | "{}({} *self, PyObject *value, void *closure)".format( |
| 1266 | setter_name(cl, attr, emitter.names), cl.struct_name(emitter.names) |
| 1267 | ) |
| 1268 | ) |
| 1269 | emitter.emit_line("{") |
| 1270 | if arg_type.is_unboxed: |
| 1271 | emitter.emit_unbox("value", "tmp", arg_type, error=ReturnHandler("-1"), declare_dest=True) |
| 1272 | emitter.emit_line( |
| 1273 | f"{NATIVE_PREFIX}{func_ir.cname(emitter.names)}((PyObject *) self, tmp);" |
| 1274 | ) |
| 1275 | else: |
| 1276 | emitter.emit_line( |
| 1277 | f"{NATIVE_PREFIX}{func_ir.cname(emitter.names)}((PyObject *) self, value);" |
| 1278 | ) |
| 1279 | emitter.emit_line("return 0;") |
| 1280 | emitter.emit_line("}") |
| 1281 | |
| 1282 | |
| 1283 | def has_managed_dict(cl: ClassIR, emitter: Emitter) -> bool: |
no test coverage detected
searching dependent graphs…