diff options
| author | Der Teufel <der.teufel.mail@gmail.com> | 2022-09-01 15:17:14 +0200 |
|---|---|---|
| committer | Der Teufel <der.teufel.mail@gmail.com> | 2022-09-01 15:17:14 +0200 |
| commit | 3bbf08e98a27f8c152087d54d1c4d3dc7ea474a2 (patch) | |
| tree | 75f1aafddc4993464b0270a314c80a48624323aa /src | |
| parent | 2b92c5a23e912df56885ff10d690ff7bfd1e3f47 (diff) | |
| download | zig-3bbf08e98a27f8c152087d54d1c4d3dc7ea474a2.tar.gz zig-3bbf08e98a27f8c152087d54d1c4d3dc7ea474a2.zip | |
autodoc: Compare operators
Diffstat (limited to 'src')
| -rw-r--r-- | src/Autodoc.zig | 44 |
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, |
