aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDer Teufel <der.teufel.mail@gmail.com>2022-09-01 15:17:14 +0200
committerDer Teufel <der.teufel.mail@gmail.com>2022-09-01 15:17:14 +0200
commit3bbf08e98a27f8c152087d54d1c4d3dc7ea474a2 (patch)
tree75f1aafddc4993464b0270a314c80a48624323aa /src
parent2b92c5a23e912df56885ff10d690ff7bfd1e3f47 (diff)
downloadzig-3bbf08e98a27f8c152087d54d1c4d3dc7ea474a2.tar.gz
zig-3bbf08e98a27f8c152087d54d1c4d3dc7ea474a2.zip
autodoc: Compare operators
Diffstat (limited to 'src')
-rw-r--r--src/Autodoc.zig44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/Autodoc.zig b/src/Autodoc.zig
index 0e056c093f..2e4231a406 100644
--- a/src/Autodoc.zig
+++ b/src/Autodoc.zig
@@ -1278,6 +1278,50 @@ fn walkInstruction(
.expr = .{ .binOpIndex = binop_index },
};
},
+ // compare operators
+ .cmp_eq,
+ .cmp_neq,
+ .cmp_gt,
+ .cmp_gte,
+ .cmp_lt,
+ .cmp_lte,
+ => {
+ 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,
+ parent_line,
+ extra.data.lhs,
+ false,
+ );
+ var rhs: DocData.WalkResult = try self.walkRef(
+ file,
+ parent_scope,
+ parent_line,
+ 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 = .{
+ .name = @tagName(tags[inst_index]),
+ .lhs = lhs_index,
+ .rhs = rhs_index,
+ } };
+
+ return DocData.WalkResult{
+ .typeRef = .{ .type = @enumToInt(Ref.bool_type) },
+ .expr = .{ .binOpIndex = binop_index },
+ };
+ },
// builtin functions
.align_of,