summaryrefslogtreecommitdiff
path: root/tests/objects/chainup.vala
blob: fdca08d671dc512f3fee2ca0f8071f6836756b19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class FooBase {
	public int bar;

	public FooBase (int _, ...) {
		va_list v = va_list ();
		bar = v.arg ();
	}

	public FooBase.baz (int _, ...) {
		va_list v = va_list ();
		this (_, v);
	}
}

class Foo : FooBase {
	public Foo (int _, ...) {
		va_list v = va_list ();
		base (_, v);
	}

	public Foo.baz (int _, ...) {
		va_list v = va_list ();
		base.baz (_, v);
	}

	public Foo.qux (int _, ...) {
		va_list v = va_list ();
		this.baz (_, v);
	}
}

void main () {
	var foo = new Foo (0, 10);
	assert (foo.bar == 10);
	foo = new Foo.baz (0, 20);
	assert (foo.bar == 20);
	foo = new Foo.qux (0, 30);
	assert (foo.bar == 30);
}