parser: port test "nosuspend block"
Implement nosuspend statement in expectStatement. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
9
parser.c
9
parser.c
@@ -1912,6 +1912,15 @@ static AstNodeIndex expectStatement(Parser* p, bool allow_defer_var) {
|
||||
});
|
||||
}
|
||||
case TOKEN_KEYWORD_NOSUSPEND:
|
||||
return addNode(&p->nodes,
|
||||
(AstNodeItem) {
|
||||
.tag = AST_NODE_NOSUSPEND,
|
||||
.main_token = nextToken(p),
|
||||
.data = {
|
||||
.lhs = expectBlockExprStatement(p),
|
||||
.rhs = 0,
|
||||
},
|
||||
});
|
||||
case TOKEN_KEYWORD_SUSPEND:
|
||||
case TOKEN_KEYWORD_ENUM:
|
||||
case TOKEN_KEYWORD_STRUCT:
|
||||
|
||||
@@ -1799,6 +1799,17 @@ test "zig fmt: if-else with comment before else" {
|
||||
);
|
||||
}
|
||||
|
||||
test "zig fmt: nosuspend block" {
|
||||
try testCanonical(
|
||||
\\pub fn main() anyerror!void {
|
||||
\\ nosuspend {
|
||||
\\ var foo: Foo = .{ .bar = 42 };
|
||||
\\ }
|
||||
\\}
|
||||
\\
|
||||
);
|
||||
}
|
||||
|
||||
test "zig fmt: top-level tuple function call type" {
|
||||
try testCanonical(
|
||||
\\foo()
|
||||
|
||||
Reference in New Issue
Block a user