aboutsummaryrefslogtreecommitdiff
path: root/tests/programs/trace_more.zc
blob: 512f93ffcc306702e0eccf998c97fe65cc078200 (plain) (blame)
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
namespace;
include rt;
struct pt {
	int x;
	int get() {
		rt.trace();
		return this.x;
	}
};
int apply(fn(int) f, int v) {
	return f(v);
}
int rec(int n) {
	if (n == 0) { rt.trace(); return 0; }
	return rec(n - 1) + 1;
}
lines off;
int quiet(int n) {
	rt.trace();
	return n;
}
lines on;
int loud(int n) {
	return quiet(n) +
		1;
}
int main() {
	pt* p = rt.new(pt);
	p.x = 3;
	int k = 5;
	rt.put_n(p.get()); rt.put_c(10);
	rt.put_n(apply(fn(int a) {
		int b = a + k;
		rt.trace();
		return b;
	}, 4)); rt.put_c(10);
	rec(60);
	loud(2);
	return 0;
}