xref: /aosp_15_r20/external/skia/resources/sksl/errors/IllegalRecursionComplex.rts (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1// Expect 1 errors (with f_one(int), f_two, f_three in cycle)
2
3// Complex recursion spanning several functions with overloads, etc.
4
5void f_one(bool b);
6void f_one(int n);
7void f_two(int n);
8void f_three(int n);
9void f_four(int n);
10
11void f_one(bool b) {
12    int n = b ? 1 : 0;
13    f_one(n);
14}
15
16void f_one(int n) {
17    if (n > 0) {
18        f_four(n);
19    } else {
20        f_two(n);
21    }
22}
23
24void f_two(int n) {
25    for (int i = 0; i < 4; ++i) {
26        f_three(n);
27    }
28}
29
30void f_three(int n) {
31    f_one(n);
32}
33
34void f_four(int n) {}
35
36/*%%*
37potential recursion (function call cycle) not allowed:
38	void f_one(int n)
39	void f_two(int n)
40	void f_three(int n)
41	void f_one(int n)
42*%%*/
43