feature. See also
. The project being documented here (as the example) is the Zig library itself.
Walk.walkMember
fn walkMember(w: *Walk, decl: Ast.Node.Index) Error!void
File
Code
fn walkMember(w: *Walk, decl: Ast.Node.Index) Error!void {
const ast = w.ast;
switch (ast.nodeTag(decl)) {
.fn_decl => {
const fn_proto, const body_node = ast.nodeData(decl).node_and_node;
try walkExpression(w, fn_proto);
if (!isFnBodyGutted(ast, body_node)) {
w.replace_names.clearRetainingCapacity();
try w.transformations.append(.{ .gut_function = decl });
try walkExpression(w, body_node);
}
},
.fn_proto_simple,
.fn_proto_multi,
.fn_proto_one,
.fn_proto,
=> {
try walkExpression(w, decl);
},
.global_var_decl,
.local_var_decl,
.simple_var_decl,
.aligned_var_decl,
=> try walkGlobalVarDecl(w, decl, ast.fullVarDecl(decl).?),
.test_decl => {
try w.transformations.append(.{ .delete_node = decl });
try walkExpression(w, ast.nodeData(decl).opt_token_and_node[1]);
},
.container_field_init,
.container_field_align,
.container_field,
=> {
try w.transformations.append(.{ .delete_node = decl });
try walkContainerField(w, ast.fullContainerField(decl).?);
},
.@"comptime" => {
try w.transformations.append(.{ .delete_node = decl });
try walkExpression(w, decl);
},
.root => unreachable,
else => unreachable,
}
}