fn identString(astrl: *AstRlAnnotate, token: Ast.TokenIndex) ![]const u8 astrl: *AstRlAnnotatetoken: Ast.TokenIndex756
757
758
759
760
761
762
763
764
765
766
767fn 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
};
}