diff --git a/lib/std/zig/tokenizer.zig b/lib/std/zig/tokenizer.zig index 8a0885ab7b..5c6d732419 100644 --- a/lib/std/zig/tokenizer.zig +++ b/lib/std/zig/tokenizer.zig @@ -797,6 +797,10 @@ pub const Tokenizer = struct { remaining_code_units = 3; state = .char_literal_unicode; }, + '\n' => { + result.tag = .invalid; + break; + }, else => { state = .char_literal_end; }, @@ -1507,6 +1511,20 @@ test "tokenizer - code point literal with hex escape" { , &.{ .invalid, .invalid }); } +test "tokenizer - newline in char literal" { + try testTokenize( + \\' + \\' + , &.{ .invalid, .invalid }); +} + +test "tokenizer - newline in string literal" { + try testTokenize( + \\" + \\" + , &.{ .invalid, .string_literal }); +} + test "tokenizer - code point literal with unicode escapes" { // Valid unicode escapes try testTokenize(