diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/zig/tokenizer.zig | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/std/zig/tokenizer.zig b/lib/std/zig/tokenizer.zig index cd6e85e1fa..ba99fe3d2c 100644 --- a/lib/std/zig/tokenizer.zig +++ b/lib/std/zig/tokenizer.zig @@ -1151,7 +1151,13 @@ pub const Tokenizer = struct { }, }, .line_comment => switch (c) { - 0 => break, + 0 => { + if (self.index != self.buffer.len) { + result.tag = .invalid; + self.index += 1; + } + break; + }, '\n' => { state = .start; result.loc.start = self.index + 1; @@ -1865,6 +1871,9 @@ test "null byte before eof" { try testTokenize("//\x00", &.{.invalid}); try testTokenize("\\\\\x00", &.{ .multiline_string_literal_line, .invalid }); try testTokenize("\x00", &.{.invalid}); + try testTokenize("// NUL\x00\n", &.{.invalid}); + try testTokenize("///\x00\n", &.{ .doc_comment, .invalid }); + try testTokenize("/// NUL\x00\n", &.{ .doc_comment, .invalid }); } fn testTokenize(source: [:0]const u8, expected_token_tags: []const Token.Tag) !void { |
