From 8e835fd3a2ca4a434c7b1971b39ddc9d60263d26 Mon Sep 17 00:00:00 2001 From: Vallahor Date: Sun, 29 May 2022 06:27:03 -0300 Subject: [PATCH] add: handling binOp div --- lib/docs/main.js | 4 ++++ src/Autodoc.zig | 31 +++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/lib/docs/main.js b/lib/docs/main.js index 0be071f4f..b217cc462 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -1110,6 +1110,10 @@ var zigAnalysis; break; } case 3: { + if (!expr.binOp.extact && !expr.binOp.floor && !expr.binOp.trunv) { + operator += "/"; + break; + } let print_div = ""; if (expr.binOp.exact) { print_div = "@divExact("; diff --git a/src/Autodoc.zig b/src/Autodoc.zig index b56115372..abfb5ea3c 100644 --- a/src/Autodoc.zig +++ b/src/Autodoc.zig @@ -1251,6 +1251,37 @@ fn walkInstruction( }; }, + .div => { + const pl_node = data[inst_index].pl_node; + const extra = file.zir.extraData(Zir.Inst.Bin, pl_node.payload_index); + + const binop_index = self.exprs.items.len; + try self.exprs.append(self.arena, .{ .binOp = .{ .lhs = 0, .rhs = 0 } }); + + var lhs: DocData.WalkResult = try self.walkRef( + file, + parent_scope, + extra.data.lhs, + false, + ); + var rhs: DocData.WalkResult = try self.walkRef( + file, + parent_scope, + extra.data.rhs, + false, + ); + + const lhs_index = self.exprs.items.len; + try self.exprs.append(self.arena, lhs.expr); + const rhs_index = self.exprs.items.len; + try self.exprs.append(self.arena, rhs.expr); + self.exprs.items[binop_index] = .{ .binOp = .{ .lhs = lhs_index, .rhs = rhs_index, .opKind = 3 } }; + + return DocData.WalkResult{ + .typeRef = .{ .type = @enumToInt(Ref.type_type) }, + .expr = .{ .binOpIndex = binop_index }, + }; + }, .div_exact => { const pl_node = data[inst_index].pl_node; const extra = file.zir.extraData(Zir.Inst.Bin, pl_node.payload_index);