Files
zig/test/cases/compile_errors/runtime_indexing_comptime_array.zig
r00ster91 ee4ced9683 write function types consistently with a space before fn keyword
Currently, the compiler (like @typeName) writes it `fn(...) Type` but
zig fmt writes it `fn (...) Type` (notice the space after `fn`).
This inconsistency is now resolved and function types are consistently
written the zig fmt way. Before this there were more `fn (...) Type`
occurrences than `fn(...) Type` already.
2023-09-19 15:15:05 +03: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
//
// :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
// :21:19: error: values of type '[2]fn () void' must be comptime-known, but index value is runtime-known
// :21:18: note: use '*const fn () void' for a function pointer type