diff --git a/lib/std/zig/ast.zig b/lib/std/zig/ast.zig index 349ae914c4c54251673b28572d838b15d62ed1e4..1c9b4eb3c9428eceac9fb5cf88a4cdeea4e584a3 100644 --- a/lib/std/zig/ast.zig +++ b/lib/std/zig/ast.zig @@ -13,6 +13,7 @@ pub const Tree = struct { root_node: *Node.Root, arena_allocator: std.heap.ArenaAllocator, errors: ErrorList, + generated: bool = false, pub const TokenList = SegmentedList(Token, 64); pub const ErrorList = SegmentedList(Error, 0); @@ -58,6 +59,8 @@ pub const Tree = struct { .line_start = start_index, .line_end = self.source.len, }; + if (self.generated) + return loc; const token_start = token.start; for (self.source[start_index..]) |c, i| { if (i + start_index == token_start) { diff --git a/src-self-hosted/translate_c.zig b/src-self-hosted/translate_c.zig index 4fc70f3af860e05e480685c64f750335f6002d70..dee4135ea104d37688b7b6c70de5d7f97c06b918 100644 --- a/src-self-hosted/translate_c.zig +++ b/src-self-hosted/translate_c.zig @@ -249,6 +249,7 @@ pub fn translate( .arena_allocator = tree_arena, .tokens = undefined, // can't reference the allocator yet .errors = undefined, // can't reference the allocator yet + .generated = true, }; break :blk tree; };