File: generics.vala

package info (click to toggle)
vala 0.56.18-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 57,468 kB
  • sloc: ansic: 581,293; sh: 5,334; makefile: 3,946; xml: 3,161; yacc: 1,219; lex: 374; javascript: 23
file content (33 lines) | stat: -rw-r--r-- 466 bytes parent folder | download | duplicates (5)
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
interface Foo : Object {
	public void foo<T> (owned T bar) {
	       bar = null;
	}
}

class Bar {
}

class Baz : Object, Foo {
}

void foo<T> (owned T bar) {
	bar = null;
}

bool is_check<G> () {
	var o = new Bar ();
	return o is G;
}

void main () {
	var bar = new Object ();
	foo<Object> (bar);
	assert (bar.ref_count == 1);

	var baz = new Baz ();
	baz.foo<Object> (bar);
	assert (baz.ref_count == 1);

	assert (is_check<Bar> ());
	assert (!is_check<Baz> ());
}