summaryrefslogtreecommitdiff
path: root/tests/objects/class-partial.vala
blob: 15477f01c44c13e85632c97765bf7cbd21da266b (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
public interface IFoo {
	public abstract void i1 ();
}

public interface IBar {
	public abstract void i2 ();
}

public partial class Foo : Object {
	public string p0 { get; set; }
	public string f0;
	public void m0 () {
	}
	public virtual void v0 () {
	}
	public virtual signal void s0 () {
	}
}

public partial class Foo : IFoo {
	public string p1 { get; set; }
	public string f1;
	public void m1 () {
	}
	public virtual void v1 () {
	}
	public virtual signal void s1 () {
	}
	public void i1 () {
	}
}

public partial class Foo : IBar {
	public string p2 { get; set; }
	public string f2;
	public void m2 () {
	}
	public virtual void v2 () {
	}
	public virtual signal void s2 () {
	}
	public void i2 () {
	}
}

void main () {
	var foo = new Foo ();
	foo.p0 = "p0";
	foo.f0 = "f0";
	foo.m0 ();
	foo.v0 ();
	foo.s0 ();

	foo.p1 = "p1";
	foo.f1 = "f1";
	foo.m1 ();
	foo.v1 ();
	foo.s1 ();

	foo.p2 = "p2";
	foo.f2 = "f2";
	foo.m2 ();
	foo.v2 ();
	foo.s2 ();

	assert (foo is IFoo);
	foo.i1 ();
	assert (foo is IBar);
	foo.i2 ();
}