1 delegate
void FooFunc ();
3 [CCode (has_target
= false)]
4 delegate
void FooFuncTargetless ();
9 assert (ref_count
== 1);
12 assert (ref_count
== 1);
15 assert (ref_count
== 1);
18 assert (ref_count
== 1);
20 man ((FooFuncTargetless
) func
);
21 assert (ref_count
== 1);
23 maz ((FooFuncTargetless
) func
);
24 assert (ref_count
== 1);
30 void baz (FooFunc f
) {
31 assert (ref_count
== 1);
34 void bar (owned FooFunc f
) {
35 assert (ref_count
== 2);
38 void man (FooFuncTargetless f
) {
39 assert (ref_count
== 1);
42 void maz (owned FooFuncTargetless f
) {
43 assert (ref_count
== 1);
52 assert (foo
.ref_count
== 1);
54 FooFunc f0
= foo
.func
;
55 assert (foo
.ref_count
== 2);
57 assert (foo
.ref_count
== 1);
59 var f1
= (FooFunc
) foo
.func
;
60 assert (foo
.ref_count
== 2);
62 assert (foo
.ref_count
== 1);
64 unowned FooFunc f2
= foo
.func
;
65 assert (foo
.ref_count
== 1);
67 assert (foo
.ref_count
== 1);
69 unowned FooFunc f3
= (FooFunc
) foo
.func
;
70 assert (foo
.ref_count
== 1);
72 assert (foo
.ref_count
== 1);
74 var f4
= (FooFuncTargetless
) foo
.func
;
75 assert (foo
.ref_count
== 1);
77 assert (foo
.ref_count
== 1);
79 FooFuncTargetless f5
= func
;
82 var f6
= (FooFuncTargetless
) func
;
85 unowned FooFuncTargetless f7
= func
;
88 unowned FooFuncTargetless f8
= (FooFuncTargetless
) func
;