Skip to content

Instantly share code, notes, and snippets.

@kbd

kbd/test.zig Secret

Created January 4, 2021 05:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kbd/c08a9acbf65fa8a9be2e31fecdc36119 to your computer and use it in GitHub Desktop.
Save kbd/c08a9acbf65fa8a9be2e31fecdc36119 to your computer and use it in GitHub Desktop.
const std = @import("std");
const stdout = std.io.getStdOut().writer();
const print = stdout.print;
const Allocator = std.mem.Allocator;
pub var A: *Allocator = undefined; // allocator
fn hello() !void {
try print("hello", .{});
}
fn buildFuncMap() type {
return std.StringArrayHashMap(*const @TypeOf(hello)).init(A);
}
pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
A = &arena.allocator;
var funcmap = buildFuncMap();
}
@kbd
Copy link
Author

kbd commented Jan 4, 2021

$ zig run scratch.zig
./scratch.zig:13:63: error: unable to evaluate constant expression
    return std.StringArrayHashMap(*const @TypeOf(hello)).init(A);
                                                              ^
./scratch.zig:21:31: note: called from here
    var funcmap = buildFuncMap();
                              ^
./scratch.zig:16:21: note: called from here
pub fn main() !void {
                    ^
./scratch.zig:13:62: note: referenced here
    return std.StringArrayHashMap(*const @TypeOf(hello)).init(A);
                                                             ^
./scratch.zig:21:31: note: referenced here
    var funcmap = buildFuncMap();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment