authorgravatar for r00ster91@proton.meWooster <r00ster91@proton.me> 2022-08-10 18:40:18+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-08-10 16:13:56-04:00
log8fd20a5eb015fda4b27cef14c9e3149575861994
tree31a7ce1c8bc55b59184854bf9ca2142b50ce455c
parent40447b25e87ece9eee2d83d1c78c365ad7ab40f1

fix: disallow newline in char literal


1 files changed, 18 insertions(+), 0 deletions(-)

lib/std/zig/tokenizer.zig+18
......@@ -797,6 +797,10 @@ pub const Tokenizer = struct {
797797 remaining_code_units = 3;
798798 state = .char_literal_unicode;
799799 },
800 '\n' => {
801 result.tag = .invalid;
802 break;
803 },
800804 else => {
801805 state = .char_literal_end;
802806 },
......@@ -1507,6 +1511,20 @@ test "tokenizer - code point literal with hex escape" {
15071511 , &.{ .invalid, .invalid });
15081512}
15091513
1514test "tokenizer - newline in char literal" {
1515 try testTokenize(
1516 \\'
1517 \\'
1518 , &.{ .invalid, .invalid });
1519}
1520
1521test "tokenizer - newline in string literal" {
1522 try testTokenize(
1523 \\"
1524 \\"
1525 , &.{ .invalid, .string_literal });
1526}
1527
15101528test "tokenizer - code point literal with unicode escapes" {
15111529 // Valid unicode escapes
15121530 try testTokenize(