summaryrefslogtreecommitdiff
path: root/tests/basic-types/arrays-generics.vala
blob: 4933b27a53e18e2843773275f6af05b53ada059a (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
class Baz : Object {
	public Baz () {
	}

	Baz get_object ()
	{
		return new Baz ();
	}

	public Baz[] create_array () {
		var a = get_array<Baz> ();
		a += (Baz) get_object ();
		assert (a.length == 2);
		assert (!(get_object () in a));
		return a;
	}

	public V[] create_array2<V> () {
		var a = get_array2<V> ();
		a += (V) get_object ();
		assert (a.length == 3);
		assert (!(get_object () in a));
		return a;
	}

	T[] get_array<T> () {
		T[] a = {};
		a += (T) get_object ();
		return a;
	}

	G[] get_array2<G> () {
		G[] a = {};
		a += (G) get_object ();
		a += (G) get_object ();
		return a;
	}
}

void test_generics_array () {
	var g = new Baz ();
	var a = g.create_array ();
	assert (a.length == 2);
	var b = g.create_array2<Baz> ();
	assert (b.length == 3);
}

void main () {
	test_generics_array ();
}