Commit 21fd4a7a8b
Changed files (2)
lib
docs
src
lib/docs/main.js
@@ -1134,6 +1134,7 @@ var zigAnalysis;
let name = "[";
let lenName = exprName(arrayObj.len, opts);
let sentinel = arrayObj.sentinel ? ":0" : "";
+ let is_mutable = arrayObj.is_multable ? "const " : "";
if (opts.wantHtml) {
name +=
@@ -1142,6 +1143,7 @@ var zigAnalysis;
name += lenName + sentinel;
}
name += "]";
+ name += is_mutable;
name += exprName(arrayObj.child, opts);
return name;
}
@@ -1151,27 +1153,32 @@ var zigAnalysis;
{
let ptrObj = /** @type {PointerType} */(typeObj);
let sentinel = ptrObj.sentinel ? ":0" : "";
+ let is_mutable = !ptrObj.is_mutable ? "const " : "";
let name = "";
switch (ptrObj.size) {
default:
console.log("TODO: implement unhandled pointer size case");
case pointerSizeEnum.One:
name += "*";
+ name += is_mutable;
break;
case pointerSizeEnum.Many:
name += "[*";
name += sentinel;
name += "]";
+ name += is_mutable;
break;
case pointerSizeEnum.Slice:
name += "[";
name += sentinel;
name += "]";
+ name += is_mutable;
break;
case pointerSizeEnum.C:
name += "[*c";
name += sentinel;
name += "]";
+ name += is_mutable;
break;
}
if (ptrObj['const']) {
src/Autodoc.zig
@@ -384,6 +384,7 @@ const DocData = struct {
size: std.builtin.TypeInfo.Pointer.Size,
child: Expr,
sentinel: bool = false,
+ is_mutable: bool = true,
},
Array: struct {
len: Expr,
@@ -485,6 +486,11 @@ const DocData = struct {
\\
, .{v.sentinel});
if (options.whitespace) |ws| try ws.outputIndent(w);
+ try w.print(
+ \\"is_mutable": {},
+ \\
+ , .{v.is_mutable});
+ if (options.whitespace) |ws| try ws.outputIndent(w);
try w.print(
\\"child":
, .{});
@@ -759,6 +765,7 @@ fn walkInstruction(
.Array = .{
.len = .{ .int = .{ .value = str.len } },
.child = .{ .type = @enumToInt(Ref.u8_type) },
+ .sentinel = true,
},
});
// const sentinel: ?usize = if (ptr.flags.has_sentinel) 0 else null;
@@ -768,7 +775,7 @@ fn walkInstruction(
.size = .One,
.child = .{ .type = arrTypeId },
.sentinel = true,
- // TODO: add sentinel!
+ .is_mutable = false,
},
});
break :blk .{ .type = ptrTypeId };
@@ -839,11 +846,12 @@ fn walkInstruction(
.Pointer = .{
.size = ptr.size,
.child = elem_type_ref.expr,
+ .is_mutable = ptr.is_mutable,
},
});
return DocData.WalkResult{
- .typeRef = .{ .type = elem_type_ref.expr.type },
+ .typeRef = .{ .type = @enumToInt(Ref.type_type) },
.expr = .{ .type = type_slot_index },
};
},
@@ -861,14 +869,9 @@ fn walkInstruction(
false,
);
try self.types.append(self.arena, .{
- .Pointer = .{
- .size = ptr.size,
- .child = elem_type_ref.expr,
- .sentinel = sentinel,
- },
+ .Pointer = .{ .size = ptr.size, .child = elem_type_ref.expr, .sentinel = sentinel, .is_mutable = ptr.flags.is_mutable },
});
return DocData.WalkResult{
- // .typeRef = .{ .type = type_slot_index },
.typeRef = .{ .type = @enumToInt(Ref.type_type) },
.expr = .{ .type = type_slot_index },
};