fn identString(astrl: *AstRlAnnotate, token: Ast.TokenIndex) ![]const u8
fn identString(astrl: *AstRlAnnotate, token: Ast.TokenIndex) ![]const u8 { const tree = astrl.tree; assert(tree.tokenTag(token) == .identifier); const ident_name = tree.tokenSlice(token); if (!std.mem.startsWith(u8, ident_name, "@")) { return ident_name; } return std.zig.string_literal.parseAlloc(astrl.arena, ident_name[1..]) catch |err| switch (err) { error.OutOfMemory => error.OutOfMemory, error.InvalidLiteral => "", // This pass can safely return garbage on invalid AST }; }