authorgravatar for der.teufel.mail@gmail.comKrzysztof Wolicki <der.teufel.mail@gmail.com> 2024-01-05 15:28:42+01:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2024-01-05 15:28:42+01:00
log42389cb9c58cfe71db055142eb7b8cc15193ddf9
treeaca332ec325c5ce94d8f502b0f7229c005ac34b8
parent04ac028a2cd20ea430dd6a05b956363ec182b6ff
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

autodoc: Reimplement array_mul after ZIR changes. Change some `var`s to `const` where possible. (#17939)


1 files changed, 50 insertions(+), 0 deletions(-)

src/Autodoc.zig+50
......@@ -1606,6 +1606,56 @@ fn walkInstruction(
16061606 .expr = .{ .binOpIndex = binop_index },
16071607 };
16081608 },
1609 .array_mul => {
1610 const pl_node = data[@intFromEnum(inst)].pl_node;
1611 const extra = file.zir.extraData(Zir.Inst.ArrayMul, pl_node.payload_index);
1612
1613 const binop_index = self.exprs.items.len;
1614 try self.exprs.append(self.arena, .{ .binOp = .{ .lhs = 0, .rhs = 0 } });
1615
1616 const lhs: DocData.WalkResult = try self.walkRef(
1617 file,
1618 parent_scope,
1619 parent_src,
1620 extra.data.lhs,
1621 false,
1622 call_ctx,
1623 );
1624 const rhs: DocData.WalkResult = try self.walkRef(
1625 file,
1626 parent_scope,
1627 parent_src,
1628 extra.data.rhs,
1629 false,
1630 call_ctx,
1631 );
1632 const res_ty: ?DocData.WalkResult = if (extra.data.res_ty != .none)
1633 try self.walkRef(
1634 file,
1635 parent_scope,
1636 parent_src,
1637 extra.data.res_ty,
1638 false,
1639 call_ctx,
1640 )
1641 else
1642 null;
1643
1644 const lhs_index = self.exprs.items.len;
1645 try self.exprs.append(self.arena, lhs.expr);
1646 const rhs_index = self.exprs.items.len;
1647 try self.exprs.append(self.arena, rhs.expr);
1648 self.exprs.items[binop_index] = .{ .binOp = .{
1649 .name = @tagName(tags[@intFromEnum(inst)]),
1650 .lhs = lhs_index,
1651 .rhs = rhs_index,
1652 } };
1653
1654 return DocData.WalkResult{
1655 .typeRef = if (res_ty) |rt| rt.expr else null,
1656 .expr = .{ .binOpIndex = binop_index },
1657 };
1658 },
16091659 // compare operators
16101660 .cmp_eq,
16111661 .cmp_neq,