commit 8fd20a5eb015fda4b27cef14c9e3149575861994 (tree)
parent 40447b25e87ece9eee2d83d1c78c365ad7ab40f1
Author: zooster <r00ster91@proton.me>
Date: Wed, 10 Aug 2022 18:40:18 +0200
fix: disallow newline in char literal
Diffstat:
1 file changed, 18 insertions(+), 0 deletions(-)
diff --git 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(