param_type.value_owned = !no_implicit_copy (param_type);
}
- bool is_unowned_delegate = acc.value_parameter.variable_type is DelegateType && !acc.value_parameter.variable_type.value_owned;
-
if (requires_destroy (param_type)) {
ccode.add_expression (destroy_parameter (acc.value_parameter));
}
push_function (vfunc);
+ if (context.assert && m.return_type.data_type is Struct && ((Struct) m.return_type.data_type).is_simple_type () && default_value_for_type (m.return_type, false) == null) {
+ // the type check will use the result variable
+ var vardecl = new CCodeVariableDeclarator ("result", default_value_for_type (m.return_type, true));
+ vardecl.init0 = true;
+ ccode.add_declaration (get_ccode_name (m.return_type), vardecl);
+ }
+
// add a typecheck statement for "self"
create_method_type_check_statement (m, return_type, (TypeSymbol) m.parent_symbol, true, "self");
structs/bug658048.vala \
structs/bug660426.vala \
structs/bug661945.vala \
+ structs/bug667890.vala \
delegates/delegates.vala \
delegates/bug539166.vala \
delegates/bug595610.vala \