From 0a2519fafb083e13fb40eac5afcfcb8b741e3438 Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Wed, 22 Apr 2020 09:02:03 +0200 Subject: [PATCH] stage2: Allow \t in string literals Lift the ban on literal tab chars in string literals as they have nothing to do with code formatting. --- lib/std/zig/tokenizer.zig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/std/zig/tokenizer.zig b/lib/std/zig/tokenizer.zig index 6cb66595a7..99574f2a98 100644 --- a/lib/std/zig/tokenizer.zig +++ b/lib/std/zig/tokenizer.zig @@ -848,6 +848,7 @@ pub const Tokenizer = struct { self.index += 1; break; }, + '\t' => {}, else => self.checkLiteralCharacter(), }, @@ -1687,6 +1688,14 @@ test "tokenizer - string identifier and builtin fns" { }); } +test "tokenizer - multiline string literal with literal tab" { + testTokenize( + \\\\foo bar + , &[_]Token.Id{ + Token.Id.MultilineStringLiteralLine, + }); +} + test "tokenizer - pipe and then invalid" { testTokenize("||=", &[_]Token.Id{ Token.Id.PipePipe,