Files
zig/test/cases/compile_errors/runtime_indexing_comptime_array.zig
Andrew Kelley 8caa206417 test-cases: fix race with zig run on C backend tests
Also avoid redundantly doing compile-error checks on multiple targets
for test cases where that is not helpful.
2022-06-14 15:27:43 -07:00

33 lines
1.0 KiB
Zig

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];
}
pub export fn entry3() void {
const TestFn = fn () void;
const test_fns = [_]TestFn{ foo, bar };
var i: usize = 0;
_ = &test_fns[i];
}
// error
// target=native
// backend=stage2
//
// :6:5: error: values of type '[2]fn() void' must be comptime known, but index value is runtime known
// :6:5: note: use '*const fn() void' for a function pointer type
// :13:5: error: values of type '[2]fn() void' must be comptime known, but index value is runtime known
// :13:5: note: use '*const fn() void' for a function pointer type
// :19:5: error: values of type '[2]fn() void' must be comptime known, but index value is runtime known
// :19:5: note: use '*const fn() void' for a function pointer type