Incomplete vfunc declaration for delegate property with owned set
delegate void FooFunc ();
class Foo {
public virtual FooFunc foo { get; owned set; }
}
void main () {
}
struct _FooClass {
GTypeClass parent_class;
void (*finalize) (Foo *self);
FooFunc (*get_foo) (Foo* self, gpointer* result_target);
void (*set_foo) (Foo* self, FooFunc value, gpointer value_target);
};
FooFunc foo_get_foo (Foo* self,
gpointer* result_target);
void foo_set_foo (Foo* self,
FooFunc value,
gpointer value_target,
GDestroyNotify value_target_destroy_notify);
void
foo_set_foo (Foo* self,
FooFunc value,
gpointer value_target,
GDestroyNotify value_target_destroy_notify)
{
g_return_if_fail (self != NULL);
FOO_GET_CLASS (self)->set_foo (self, value, value_target, value_target_destroy_notify);
}
test.vala.c: In function ‘foo_set_foo’:
/usr/include/glib-2.0/gobject/gtype.h:2310:42: error: too many arguments to function ‘((FooClass *)((GTypeInstance *)self)->g_class)->set_foo’