authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-03-08 18:40:57-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-03-08 18:40:57-07:00
logdceee570c48a5dbbde02a8a294079a70bb5e2a2f
tree22a932b250214ce6e90e26794197d63adc25b961
parent6def6beacd4b903ca5ebd394b2e2bd508e4364a0

Revert "fix(docs/wasm):zig std html render error function 'a'"

This reverts commit e779ca72230b5975f48c84ae19c51f0c74f9ecbe. Closes #31370

1 files changed, 4 insertions(+), 84 deletions(-)

lib/docs/wasm/Walk.zig+4-84
...@@ -567,7 +567,7 @@ fn struct_decl(...@@ -567,7 +567,7 @@ fn struct_decl(
567 .aligned_var_decl,567 .aligned_var_decl,
568 => {568 => {
569 const decl_index = try w.file.add_decl(member, parent_decl);569 const decl_index = try w.file.add_decl(member, parent_decl);
570 try w.global_var_decl(&namespace.base, decl_index, true, ast.fullVarDecl(member).?);570 try w.global_var_decl(&namespace.base, decl_index, ast.fullVarDecl(member).?);
571 },571 },
572572
573 .@"comptime",573 .@"comptime",
...@@ -579,61 +579,6 @@ fn struct_decl(...@@ -579,61 +579,6 @@ fn struct_decl(
579 };579 };
580}580}
581581
582/// Traverses a container decl used as an expression without registering its members
583/// as `Decl` entries. This prevents local/test-only helper declarations from
584/// leaking into autodoc symbol lists.
585fn struct_expr(
586 w: *Walk,
587 scope: *Scope,
588 parent_decl: Decl.Index,
589 node: Ast.Node.Index,
590 container_decl: Ast.full.ContainerDecl,
591) Oom!void {
592 const ast = w.file.get_ast();
593
594 const namespace = try gpa.create(Scope.Namespace);
595 namespace.* = .{
596 .parent = scope,
597 .decl_index = parent_decl,
598 };
599 try w.file.get().scopes.putNoClobber(gpa, node, &namespace.base);
600 try w.scanDecls(namespace, container_decl.ast.members);
601
602 for (container_decl.ast.members) |member| switch (ast.nodeTag(member)) {
603 .container_field_init,
604 .container_field_align,
605 .container_field,
606 => try w.container_field(&namespace.base, parent_decl, ast.fullContainerField(member).?),
607
608 .fn_proto,
609 .fn_proto_multi,
610 .fn_proto_one,
611 .fn_proto_simple,
612 .fn_decl,
613 => {
614 var buf: [1]Ast.Node.Index = undefined;
615 const full = ast.fullFnProto(&buf, member).?;
616 const body = if (ast.nodeTag(member) == .fn_decl) ast.nodeData(member).node_and_node[1].toOptional() else .none;
617 try w.fn_decl(&namespace.base, parent_decl, body, full);
618 },
619
620 .global_var_decl,
621 .local_var_decl,
622 .simple_var_decl,
623 .aligned_var_decl,
624 => {
625 // Do not create Decl entries; just walk initializer expressions.
626 try w.global_var_decl(&namespace.base, parent_decl, false, ast.fullVarDecl(member).?);
627 },
628
629 .@"comptime" => try w.expr(&namespace.base, parent_decl, ast.nodeData(member).node),
630
631 .test_decl => try w.expr(&namespace.base, parent_decl, ast.nodeData(member).opt_token_and_node[1]),
632
633 else => unreachable,
634 };
635}
636
637fn comptime_decl(582fn comptime_decl(
638 w: *Walk,583 w: *Walk,
639 scope: *Scope,584 scope: *Scope,
...@@ -651,38 +596,13 @@ fn global_var_decl(...@@ -651,38 +596,13 @@ fn global_var_decl(
651 w: *Walk,596 w: *Walk,
652 scope: *Scope,597 scope: *Scope,
653 parent_decl: Decl.Index,598 parent_decl: Decl.Index,
654 register_container_members: bool,
655 full: Ast.full.VarDecl,599 full: Ast.full.VarDecl,
656) Oom!void {600) Oom!void {
657 try w.maybe_expr(scope, parent_decl, full.ast.type_node);601 try w.maybe_expr(scope, parent_decl, full.ast.type_node);
658 try w.maybe_expr(scope, parent_decl, full.ast.align_node);602 try w.maybe_expr(scope, parent_decl, full.ast.align_node);
659 try w.maybe_expr(scope, parent_decl, full.ast.addrspace_node);603 try w.maybe_expr(scope, parent_decl, full.ast.addrspace_node);
660 try w.maybe_expr(scope, parent_decl, full.ast.section_node);604 try w.maybe_expr(scope, parent_decl, full.ast.section_node);
661605 try w.maybe_expr(scope, parent_decl, full.ast.init_node);
662 if (full.ast.init_node.unwrap()) |init_node| {
663 if (register_container_members) {
664 switch (w.file.get_ast().nodeTag(init_node)) {
665 .container_decl,
666 .container_decl_trailing,
667 .container_decl_arg,
668 .container_decl_arg_trailing,
669 .container_decl_two,
670 .container_decl_two_trailing,
671 .tagged_union,
672 .tagged_union_trailing,
673 .tagged_union_enum_tag,
674 .tagged_union_enum_tag_trailing,
675 .tagged_union_two,
676 .tagged_union_two_trailing,
677 => {
678 var buf: [2]Ast.Node.Index = undefined;
679 return struct_decl(w, scope, parent_decl, init_node, w.file.get_ast().fullContainerDecl(&buf, init_node).?);
680 },
681 else => {},
682 }
683 }
684 try w.expr(scope, parent_decl, init_node);
685 }
686}606}
687607
688fn container_field(608fn container_field(
...@@ -967,7 +887,7 @@ fn expr(w: *Walk, scope: *Scope, parent_decl: Decl.Index, node: Ast.Node.Index)...@@ -967,7 +887,7 @@ fn expr(w: *Walk, scope: *Scope, parent_decl: Decl.Index, node: Ast.Node.Index)
967 .tagged_union_two_trailing,887 .tagged_union_two_trailing,
968 => {888 => {
969 var buf: [2]Ast.Node.Index = undefined;889 var buf: [2]Ast.Node.Index = undefined;
970 return struct_expr(w, scope, parent_decl, node, ast.fullContainerDecl(&buf, node).?);890 return struct_decl(w, scope, parent_decl, node, ast.fullContainerDecl(&buf, node).?);
971 },891 },
972892
973 .array_type_sentinel => {893 .array_type_sentinel => {
...@@ -1078,7 +998,7 @@ fn block(...@@ -1078,7 +998,7 @@ fn block(
1078 .aligned_var_decl,998 .aligned_var_decl,
1079 => {999 => {
1080 const full = ast.fullVarDecl(node).?;1000 const full = ast.fullVarDecl(node).?;
1081 try global_var_decl(w, scope, parent_decl, false, full);1001 try global_var_decl(w, scope, parent_decl, full);
1082 const local = try gpa.create(Scope.Local);1002 const local = try gpa.create(Scope.Local);
1083 local.* = .{1003 local.* = .{
1084 .parent = scope,1004 .parent = scope,