(cl: ClassIR, emitter: Emitter)
| 1056 | |
| 1057 | |
| 1058 | def generate_getseter_declarations(cl: ClassIR, emitter: Emitter) -> None: |
| 1059 | if not cl.is_trait: |
| 1060 | for attr in cl.attributes: |
| 1061 | emitter.emit_line("static PyObject *") |
| 1062 | emitter.emit_line( |
| 1063 | "{}({} *self, void *closure);".format( |
| 1064 | getter_name(cl, attr, emitter.names), cl.struct_name(emitter.names) |
| 1065 | ) |
| 1066 | ) |
| 1067 | emitter.emit_line("static int") |
| 1068 | emitter.emit_line( |
| 1069 | "{}({} *self, PyObject *value, void *closure);".format( |
| 1070 | setter_name(cl, attr, emitter.names), cl.struct_name(emitter.names) |
| 1071 | ) |
| 1072 | ) |
| 1073 | |
| 1074 | for prop, (getter, setter) in cl.properties.items(): |
| 1075 | if getter.decl.implicit: |
| 1076 | continue |
| 1077 | |
| 1078 | # Generate getter declaration |
| 1079 | emitter.emit_line("static PyObject *") |
| 1080 | emitter.emit_line( |
| 1081 | "{}({} *self, void *closure);".format( |
| 1082 | getter_name(cl, prop, emitter.names), cl.struct_name(emitter.names) |
| 1083 | ) |
| 1084 | ) |
| 1085 | |
| 1086 | # Generate property setter declaration if a setter exists |
| 1087 | if setter: |
| 1088 | emitter.emit_line("static int") |
| 1089 | emitter.emit_line( |
| 1090 | "{}({} *self, PyObject *value, void *closure);".format( |
| 1091 | setter_name(cl, prop, emitter.names), cl.struct_name(emitter.names) |
| 1092 | ) |
| 1093 | ) |
| 1094 | |
| 1095 | |
| 1096 | def generate_getseters_table(cl: ClassIR, name: str, emitter: Emitter) -> None: |
no test coverage detected
searching dependent graphs…