Fixed Autodoc rendering of @truncate builtin (#16263)

* fixed autodoc rendering of @trucate builtin

* Changed to LHS for typeRef

* autodoc: fix typeref for `truncate`

---------

Co-authored-by: Loris Cro <kappaloris@gmail.com>
This commit is contained in:
Emile Badenhorst 2023-07-01 16:43:17 +02:00 committed by GitHub
parent f571438fc0
commit 35a8e8a06c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 2 deletions

View File

@ -1419,6 +1419,9 @@ const NAV_MODES = {
case "bit_reverse": {
return "@bitReverse(T" + ", " + param + ")";
}
case "truncate": {
return "@truncate(" + param + ")";
}
default:
console.log("builtin function not handled yet or doesn't exist!");
}
@ -2622,7 +2625,6 @@ const NAV_MODES = {
function renderValue(decl) {
let resolvedValue = resolveValue(decl.value);
if (resolvedValue.expr.fieldRef) {
const declRef = decl.value.expr.refPath[0].declRef;
const type = getDecl(declRef);

View File

@ -1601,7 +1601,42 @@ fn walkInstruction(
.expr = .{ .builtinIndex = bin_index },
};
},
.truncate => {
// in the ZIR this node is a builtin `bin` but we want send it as a `un` builtin
const pl_node = data[inst_index].pl_node;
const extra = file.zir.extraData(Zir.Inst.Bin, pl_node.payload_index);
var rhs: DocData.WalkResult = try self.walkRef(
file,
parent_scope,
parent_src,
extra.data.rhs,
false,
);
const bin_index = self.exprs.items.len;
try self.exprs.append(self.arena, .{ .builtin = .{ .param = 0 } });
const rhs_index = self.exprs.items.len;
try self.exprs.append(self.arena, rhs.expr);
var lhs: DocData.WalkResult = try self.walkRef(
file,
parent_scope,
parent_src,
extra.data.lhs,
false,
);
self.exprs.items[bin_index] = .{ .builtin = .{ .name = @tagName(tags[inst_index]), .param = rhs_index } };
std.debug.print("lhs: {any}\n\n", .{lhs});
std.debug.print("lhs typeref: {any}\n\n", .{lhs.typeRef});
return DocData.WalkResult{
.typeRef = lhs.expr,
.expr = .{ .builtinIndex = bin_index },
};
},
.int_from_float,
.float_from_int,
.ptr_from_int,
@ -1609,7 +1644,6 @@ fn walkInstruction(
.float_cast,
.int_cast,
.ptr_cast,
.truncate,
.has_decl,
.has_field,
.div_exact,