mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
parser: fix recovery for missing semicolons
This commit is contained in:
parent
1247b7b9ef
commit
878e99d580
@ -985,7 +985,7 @@ const Parser = struct {
|
||||
};
|
||||
const else_token = p.eatToken(.keyword_else) orelse {
|
||||
if (else_required) {
|
||||
return p.fail(.expected_semi_or_else);
|
||||
try p.warn(.expected_semi_or_else);
|
||||
}
|
||||
return p.addNode(.{
|
||||
.tag = .if_simple,
|
||||
@ -1079,7 +1079,7 @@ const Parser = struct {
|
||||
};
|
||||
const else_token = p.eatToken(.keyword_else) orelse {
|
||||
if (else_required) {
|
||||
return p.fail(.expected_semi_or_else);
|
||||
try p.warn(.expected_semi_or_else);
|
||||
}
|
||||
return p.addNode(.{
|
||||
.tag = .for_simple,
|
||||
@ -1154,7 +1154,7 @@ const Parser = struct {
|
||||
};
|
||||
const else_token = p.eatToken(.keyword_else) orelse {
|
||||
if (else_required) {
|
||||
return p.fail(.expected_semi_or_else);
|
||||
try p.warn(.expected_semi_or_else);
|
||||
}
|
||||
if (cont_expr == 0) {
|
||||
return p.addNode(.{
|
||||
|
||||
@ -4222,39 +4222,39 @@ test "recovery: invalid global error set access" {
|
||||
});
|
||||
}
|
||||
|
||||
//test "recovery: invalid asterisk after pointer dereference" {
|
||||
// try testError(
|
||||
// \\test "" {
|
||||
// \\ var sequence = "repeat".*** 10;
|
||||
// \\}
|
||||
// , &[_]Error{
|
||||
// .asterisk_after_ptr_deref,
|
||||
// });
|
||||
// try testError(
|
||||
// \\test "" {
|
||||
// \\ var sequence = "repeat".** 10&&a;
|
||||
// \\}
|
||||
// , &[_]Error{
|
||||
// .asterisk_after_ptr_deref,
|
||||
// .invalid_and,
|
||||
// });
|
||||
//}
|
||||
test "recovery: invalid asterisk after pointer dereference" {
|
||||
try testError(
|
||||
\\test "" {
|
||||
\\ var sequence = "repeat".*** 10;
|
||||
\\}
|
||||
, &[_]Error{
|
||||
.asterisk_after_ptr_deref,
|
||||
});
|
||||
try testError(
|
||||
\\test "" {
|
||||
\\ var sequence = "repeat".** 10&&a;
|
||||
\\}
|
||||
, &[_]Error{
|
||||
.asterisk_after_ptr_deref,
|
||||
.invalid_and,
|
||||
});
|
||||
}
|
||||
|
||||
//test "recovery: missing semicolon after if, for, while stmt" {
|
||||
// try testError(
|
||||
// \\test "" {
|
||||
// \\ if (foo) bar
|
||||
// \\ for (foo) |a| bar
|
||||
// \\ while (foo) bar
|
||||
// \\ a && b;
|
||||
// \\}
|
||||
// , &[_]Error{
|
||||
// .expected_semi_or_else,
|
||||
// .expected_semi_or_else,
|
||||
// .expected_semi_or_else,
|
||||
// .invalid_and,
|
||||
// });
|
||||
//}
|
||||
test "recovery: missing semicolon after if, for, while stmt" {
|
||||
try testError(
|
||||
\\test "" {
|
||||
\\ if (foo) bar
|
||||
\\ for (foo) |a| bar
|
||||
\\ while (foo) bar
|
||||
\\ a && b;
|
||||
\\}
|
||||
, &[_]Error{
|
||||
.expected_semi_or_else,
|
||||
.expected_semi_or_else,
|
||||
.expected_semi_or_else,
|
||||
.invalid_and,
|
||||
});
|
||||
}
|
||||
|
||||
test "recovery: invalid comptime" {
|
||||
try testError(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user