mirror of
https://github.com/ziglang/zig.git
synced 2026-02-14 13:30:45 +00:00
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:
parent
f571438fc0
commit
35a8e8a06c
@ -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);
|
||||
|
||||
@ -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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user