codegen: Fix floating reference regression with Variants
[vala-gnome.git] / tests / delegates / bug659778.vala
blob79fa86eff43dfcd694c28942c9d9a0cf3d21c3d9
1 delegate G DoSomething<G>(G g);
3 void do_something<G> (DoSomething<G> f) {}
5 enum TestEnum {
6 T;
7 public void f() {
8 do_something<TestEnum> ((x) => {
9 switch (this) {
10 case T:
11 return T;
12 default:
13 assert_not_reached ();
15 });
17 public void g(int i) {
18 do_something<TestEnum> ((x) => {
19 switch (this) {
20 case T:
21 i++;
22 return T;
23 default:
24 assert_not_reached ();
26 });
30 class Test {
31 public void f() {
32 do_something<TestEnum> (g);
33 do_something<int> (h);
35 [CCode (instance_pos = -1)]
36 private TestEnum g(TestEnum i) {
37 return i;
39 [CCode (instance_pos = -1)]
40 private int h(int i) {
41 return i;
45 int main() {
46 TestEnum t = TestEnum.T;
47 t.f ();
48 t.g (0);
49 Test t2 = new Test ();
50 t2.f ();
51 return 0;