MCPcopy Index your code
hub / github.com/python/mypy / generate_property_setter

Function generate_property_setter

mypyc/codegen/emitclass.py:1260–1280  ·  view source on GitHub ↗
(
    cl: ClassIR, attr: str, arg_type: RType, func_ir: FuncIR, emitter: Emitter
)

Source from the content-addressed store, hash-verified

1258
1259
1260def 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
1283def has_managed_dict(cl: ClassIR, emitter: Emitter) -> bool:

Callers 1

generate_getsetersFunction · 0.85

Calls 7

ReturnHandlerClass · 0.90
setter_nameFunction · 0.85
emit_unboxMethod · 0.80
emit_lineMethod · 0.45
formatMethod · 0.45
struct_nameMethod · 0.45
cnameMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…