aboutsummaryrefslogtreecommitdiff
path: root/test/incremental/recursive_inline_function.1.zig
blob: 139da1c371292c2cbf196d87c3cb80c4fcd3315b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// This additionally tests that the compile error reports the correct source location.
// Without storing source locations relative to the owner decl, the compile error
// here would be off by 2 bytes (from the "7" -> "999").
pub fn main() void {
    const y = fibonacci(999);
    if (y - 21 != 0) unreachable;
}

inline fn fibonacci(n: usize) usize {
    if (n <= 2) return n;
    return fibonacci(n - 2) + fibonacci(n - 1);
}

// error
//
// :11:21: error: evaluation exceeded 1000 backwards branches