aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/std/zig/ast.zig1
-rw-r--r--lib/std/zig/parse.zig16
2 files changed, 14 insertions, 3 deletions
diff --git a/lib/std/zig/ast.zig b/lib/std/zig/ast.zig
index 711806b810..5411519667 100644
--- a/lib/std/zig/ast.zig
+++ b/lib/std/zig/ast.zig
@@ -1081,7 +1081,6 @@ pub const Node = struct {
pub const Noasync = struct {
base: Node = Node{ .id = .Noasync },
- doc_comments: ?*DocComment,
noasync_token: TokenIndex,
expr: *Node,
diff --git a/lib/std/zig/parse.zig b/lib/std/zig/parse.zig
index 5392c18dfe..9a574c6231 100644
--- a/lib/std/zig/parse.zig
+++ b/lib/std/zig/parse.zig
@@ -462,6 +462,7 @@ fn parseContainerField(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*No
/// Statement
/// <- KEYWORD_comptime? VarDecl
/// / KEYWORD_comptime BlockExprStatement
+/// / KEYWORD_noasync BlockExprStatement
/// / KEYWORD_suspend (SEMICOLON / BlockExprStatement)
/// / KEYWORD_defer BlockExprStatement
/// / KEYWORD_errdefer BlockExprStatement
@@ -493,6 +494,19 @@ fn parseStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) Error!?*No
return &node.base;
}
+ if (eatToken(it, .Keyword_noasync)) |noasync_token| {
+ const block_expr = try expectNode(arena, it, tree, parseBlockExprStatement, .{
+ .ExpectedBlockOrAssignment = .{ .token = it.index },
+ });
+
+ const node = try arena.create(Node.Noasync);
+ node.* = .{
+ .noasync_token = noasync_token,
+ .expr = block_expr,
+ };
+ return &node.base;
+ }
+
if (eatToken(it, .Keyword_suspend)) |suspend_token| {
const semicolon = eatToken(it, .Semicolon);
@@ -898,7 +912,6 @@ fn parsePrimaryExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node
});
const node = try arena.create(Node.Noasync);
node.* = .{
- .doc_comments = null,
.noasync_token = token,
.expr = expr_node,
};
@@ -1280,7 +1293,6 @@ fn parsePrimaryTypeExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*N
const expr = (try parseTypeExpr(arena, it, tree)) orelse return null;
const node = try arena.create(Node.Noasync);
node.* = .{
- .doc_comments = null,
.noasync_token = token,
.expr = expr,
};