authorgravatar for vallahor91@gmail.comVallahor <vallahor91@gmail.com> 2022-05-29 06:27:03-03:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-07-19 19:10:12-07:00
log8e835fd3a2ca4a434c7b1971b39ddc9d60263d26
tree39527fe476ece8fe8b165f6fc96afe35ecf750db
parentd5d27f245b63b4b516db09feb334e4f548c89b1b

add: handling binOp div


2 files changed, 35 insertions(+), 0 deletions(-)

lib/docs/main.js+4
...@@ -1110,6 +1110,10 @@ var zigAnalysis;...@@ -1110,6 +1110,10 @@ var zigAnalysis;
1110 break;1110 break;
1111 }1111 }
1112 case 3: {1112 case 3: {
1113 if (!expr.binOp.extact && !expr.binOp.floor && !expr.binOp.trunv) {
1114 operator += "/";
1115 break;
1116 }
1113 let print_div = "";1117 let print_div = "";
1114 if (expr.binOp.exact) {1118 if (expr.binOp.exact) {
1115 print_div = "@divExact(";1119 print_div = "@divExact(";
src/Autodoc.zig+31
...@@ -1251,6 +1251,37 @@ fn walkInstruction(...@@ -1251,6 +1251,37 @@ fn walkInstruction(
1251 };1251 };
1252 },1252 },
12531253
1254 .div => {
1255 const pl_node = data[inst_index].pl_node;
1256 const extra = file.zir.extraData(Zir.Inst.Bin, pl_node.payload_index);
1257
1258 const binop_index = self.exprs.items.len;
1259 try self.exprs.append(self.arena, .{ .binOp = .{ .lhs = 0, .rhs = 0 } });
1260
1261 var lhs: DocData.WalkResult = try self.walkRef(
1262 file,
1263 parent_scope,
1264 extra.data.lhs,
1265 false,
1266 );
1267 var rhs: DocData.WalkResult = try self.walkRef(
1268 file,
1269 parent_scope,
1270 extra.data.rhs,
1271 false,
1272 );
1273
1274 const lhs_index = self.exprs.items.len;
1275 try self.exprs.append(self.arena, lhs.expr);
1276 const rhs_index = self.exprs.items.len;
1277 try self.exprs.append(self.arena, rhs.expr);
1278 self.exprs.items[binop_index] = .{ .binOp = .{ .lhs = lhs_index, .rhs = rhs_index, .opKind = 3 } };
1279
1280 return DocData.WalkResult{
1281 .typeRef = .{ .type = @enumToInt(Ref.type_type) },
1282 .expr = .{ .binOpIndex = binop_index },
1283 };
1284 },
1254 .div_exact => {1285 .div_exact => {
1255 const pl_node = data[inst_index].pl_node;1286 const pl_node = data[inst_index].pl_node;
1256 const extra = file.zir.extraData(Zir.Inst.Bin, pl_node.payload_index);1287 const extra = file.zir.extraData(Zir.Inst.Bin, pl_node.payload_index);