aboutsummaryrefslogtreecommitdiff
path: root/tests/programs/tagenum_warn.zc
blob: 1f31311afdde812d2f6a827f83e7c06bdb52ccbf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace;
include rt;

// a switch on a tagged enum that leaves out a member, with no default, warns
enum shape { circle { int r; }, rect { int w; int h; }, dot };

fn name(shape* s) {
	switch (s) {
	case circle(r): return 1;
	case dot: return 2;
	}
	return 0;
}

fn main() {
	shape* a = shape.rect(2, 2);
	rt.put_n(name(a)); rt.put_c(10);
	rt.free(d*a);
	return 0;
}