codegen: Guard get_default_ref_sink_function() against null base-class
[vala-gnome.git] / tests / objects / bug783897.vala
blob58e1ab9d05e11d24f348748f66263de299fef0c8
1 enum Baz {
2 VALUE = 42;
5 struct Bar {
6 public int i;
9 class Foo {
10 public signal void signal_enum (Baz? e);
11 public signal void signal_simple_type (int? t);
12 public signal void signal_struct (Bar? s);
13 public signal void signal_custom (Foo f, Baz? e, int? t, Bar? s);
14 public signal void signal_custom2 (Foo f, Baz e, int t, Bar s);
16 public void run () {
17 signal_enum (Baz.VALUE);
18 signal_simple_type (23);
19 signal_struct ({ 4711 });
20 signal_custom (this, Baz.VALUE, 23, { 4711 });
21 signal_custom2 (this, Baz.VALUE, 23, { 4711 });
25 void callback_enum (Baz? e) {
26 assert (e == Baz.VALUE);
29 void callback_simple_type (int? t) {
30 assert (t == 23);
33 void callback_struct (Bar? s) {
34 assert (s.i == 4711);
37 void callback_custom (Foo f, Baz? e, int? t, Bar? s) {
38 assert (e == Baz.VALUE);
39 assert (t == 23);
40 assert (s.i == 4711);
43 void callback_custom2 (Foo f, Baz e, int t, Bar s) {
44 assert (e == Baz.VALUE);
45 assert (t == 23);
46 assert (s.i == 4711);
49 void main() {
50 var foo = new Foo ();
51 foo.signal_enum.connect (callback_enum);
52 foo.signal_simple_type.connect (callback_simple_type);
53 foo.signal_struct.connect (callback_struct);
54 foo.signal_custom.connect (callback_custom);
55 foo.signal_custom2.connect (callback_custom2);
56 foo.run ();