aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors/runtime_indexing_comptime_array.zig
blob: 3fcf57dd47bfe4883850f96fd955f481a8768b36 (plain)
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
fn foo() void {}
fn bar() void {}

pub export fn entry1() void {
    const TestFn = fn () void;
    const test_fns = [_]TestFn{ foo, bar };
    for (test_fns) |testFn| {
        testFn();
    }
}
pub export fn entry2() void {
    const TestFn = fn () void;
    const test_fns = [_]TestFn{ foo, bar };
    var i: usize = 0;
    _ = test_fns[i];
    _ = &i;
}
pub export fn entry3() void {
    const TestFn = fn () void;
    const test_fns = [_]TestFn{ foo, bar };
    var i: usize = 0;
    _ = &test_fns[i];
    _ = &i;
}
// error
//
// :7:10: error: values of type '[2]fn () void' must be comptime-known, but index value is runtime-known
// :7:10: note: use '*const fn () void' for a function pointer type
// :15:18: error: values of type '[2]fn () void' must be comptime-known, but index value is runtime-known
// :15:17: note: use '*const fn () void' for a function pointer type
// :22:19: error: values of type '[2]fn () void' must be comptime-known, but index value is runtime-known
// :22:18: note: use '*const fn () void' for a function pointer type