zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

blob 3acd0feb (1043B) - Raw


      1 fn foo() void {}
      2 fn bar() void {}
      3 
      4 pub export fn entry1() void {
      5     const TestFn = fn () void;
      6     const test_fns = [_]TestFn{ foo, bar };
      7     for (test_fns) |testFn| {
      8         testFn();
      9     }
     10 }
     11 pub export fn entry2() void {
     12     const TestFn = fn () void;
     13     const test_fns = [_]TestFn{ foo, bar };
     14     var i: usize = 0;
     15     _ = test_fns[i];
     16 }
     17 pub export fn entry3() void {
     18     const TestFn = fn () void;
     19     const test_fns = [_]TestFn{ foo, bar };
     20     var i: usize = 0;
     21     _ = &test_fns[i];
     22 }
     23 // error
     24 // backend=stage2,llvm
     25 //
     26 // :6:5: error: values of type '[2]fn() void' must be comptime known, but index value is runtime known
     27 // :6:5: note: use '*const fn() void' for a function pointer type
     28 // :13:5: error: values of type '[2]fn() void' must be comptime known, but index value is runtime known
     29 // :13:5: note: use '*const fn() void' for a function pointer type
     30 // :19:5: error: values of type '[2]fn() void' must be comptime known, but index value is runtime known
     31 // :19:5: note: use '*const fn() void' for a function pointer type