This is how CCodeBaseModule.generate_enum_declaration() works already.
public virtual void generate_interface_declaration (Interface iface, CCodeFile decl_space) {
}
- public virtual void generate_method_declaration (Method m, CCodeFile decl_space) {
+ public virtual bool generate_method_declaration (Method m, CCodeFile decl_space) {
+ return !add_symbol_declaration (decl_space, m, get_ccode_name (m));
}
public virtual void generate_error_domain_declaration (ErrorDomain edomain, CCodeFile decl_space) {
ccode.add_return (new CCodeConstant ("FALSE"));
}
- public override void generate_method_declaration (Method m, CCodeFile decl_space) {
+ public override bool generate_method_declaration (Method m, CCodeFile decl_space) {
if (m.is_async_callback) {
- return;
+ return false;
}
if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) {
- return;
+ return false;
}
generate_type_declaration (new MethodType (m), decl_space);
decl_space.add_function_declaration (function);
}
}
+
+ return true;
}
void register_plugin_types (Symbol sym, Set<Symbol> registered_types) {
cfile.add_type_definition (structure);
}
- public override void generate_method_declaration (Method m, CCodeFile decl_space) {
+ public override bool generate_method_declaration (Method m, CCodeFile decl_space) {
if (m.coroutine) {
if (add_symbol_declaration (decl_space, m, get_ccode_name (m))) {
- return;
+ return false;
}
generate_type_declaration (new MethodType (m), decl_space);
decl_space.add_function_declaration (function);
}
+
+ return true;
} else {
- base.generate_method_declaration (m, decl_space);
+ return base.generate_method_declaration (m, decl_space);
}
}