Commit d26d696ee0

Veikka Tuominen <git@vexu.eu>
2022-07-28 21:38:48
parser: require expression after colon in slice expr
1 parent 4758752
Changed files (2)
lib/std/zig/parse.zig
@@ -3257,7 +3257,7 @@ const Parser = struct {
                 if (p.eatToken(.ellipsis2)) |_| {
                     const end_expr = try p.parseExpr();
                     if (p.eatToken(.colon)) |_| {
-                        const sentinel = try p.parseExpr();
+                        const sentinel = try p.expectExpr();
                         _ = try p.expectToken(.r_bracket);
                         return p.addNode(.{
                             .tag = .slice_sentinel,
lib/std/zig/parser_test.zig
@@ -5118,6 +5118,14 @@ test "zig fmt: while continue expr" {
     });
 }
 
+test "zig fmt: error for missing sentinel value in sentinel slice" {
+    try testError(
+        \\const foo = foo[0..:];
+    , &[_]Error{
+        .expected_expr,
+    });
+}
+
 test "zig fmt: error for invalid bit range" {
     try testError(
         \\var x: []align(0:0:0)u8 = bar;