authorgravatar for vallahor91@gmail.comVallahor <vallahor91@gmail.com> 2022-05-23 20:24:16-03:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-07-19 19:10:11-07:00
log21fd4a7a8b100cfb35a67f66bd9887006978ed60
treee86eb206dcb10220eb6529e6f25600259202b400
parent019fd456175daf6111dcb6cb265dbb9dc50aebfc

fix: printing const in types and fn decl and sentinel in strings


2 files changed, 18 insertions(+), 8 deletions(-)

lib/docs/main.js+7
......@@ -1134,6 +1134,7 @@ var zigAnalysis;
11341134 let name = "[";
11351135 let lenName = exprName(arrayObj.len, opts);
11361136 let sentinel = arrayObj.sentinel ? ":0" : "";
1137 let is_mutable = arrayObj.is_multable ? "const " : "";
11371138
11381139 if (opts.wantHtml) {
11391140 name +=
......@@ -1142,6 +1143,7 @@ var zigAnalysis;
11421143 name += lenName + sentinel;
11431144 }
11441145 name += "]";
1146 name += is_mutable;
11451147 name += exprName(arrayObj.child, opts);
11461148 return name;
11471149 }
......@@ -1151,27 +1153,32 @@ var zigAnalysis;
11511153 {
11521154 let ptrObj = /** @type {PointerType} */(typeObj);
11531155 let sentinel = ptrObj.sentinel ? ":0" : "";
1156 let is_mutable = !ptrObj.is_mutable ? "const " : "";
11541157 let name = "";
11551158 switch (ptrObj.size) {
11561159 default:
11571160 console.log("TODO: implement unhandled pointer size case");
11581161 case pointerSizeEnum.One:
11591162 name += "*";
1163 name += is_mutable;
11601164 break;
11611165 case pointerSizeEnum.Many:
11621166 name += "[*";
11631167 name += sentinel;
11641168 name += "]";
1169 name += is_mutable;
11651170 break;
11661171 case pointerSizeEnum.Slice:
11671172 name += "[";
11681173 name += sentinel;
11691174 name += "]";
1175 name += is_mutable;
11701176 break;
11711177 case pointerSizeEnum.C:
11721178 name += "[*c";
11731179 name += sentinel;
11741180 name += "]";
1181 name += is_mutable;
11751182 break;
11761183 }
11771184 if (ptrObj['const']) {
src/Autodoc.zig+11-8
......@@ -384,6 +384,7 @@ const DocData = struct {
384384 size: std.builtin.TypeInfo.Pointer.Size,
385385 child: Expr,
386386 sentinel: bool = false,
387 is_mutable: bool = true,
387388 },
388389 Array: struct {
389390 len: Expr,
......@@ -485,6 +486,11 @@ const DocData = struct {
485486 \\
486487 , .{v.sentinel});
487488 if (options.whitespace) |ws| try ws.outputIndent(w);
489 try w.print(
490 \\"is_mutable": {},
491 \\
492 , .{v.is_mutable});
493 if (options.whitespace) |ws| try ws.outputIndent(w);
488494 try w.print(
489495 \\"child":
490496 , .{});
......@@ -759,6 +765,7 @@ fn walkInstruction(
759765 .Array = .{
760766 .len = .{ .int = .{ .value = str.len } },
761767 .child = .{ .type = @enumToInt(Ref.u8_type) },
768 .sentinel = true,
762769 },
763770 });
764771 // const sentinel: ?usize = if (ptr.flags.has_sentinel) 0 else null;
......@@ -768,7 +775,7 @@ fn walkInstruction(
768775 .size = .One,
769776 .child = .{ .type = arrTypeId },
770777 .sentinel = true,
771 // TODO: add sentinel!
778 .is_mutable = false,
772779 },
773780 });
774781 break :blk .{ .type = ptrTypeId };
......@@ -839,11 +846,12 @@ fn walkInstruction(
839846 .Pointer = .{
840847 .size = ptr.size,
841848 .child = elem_type_ref.expr,
849 .is_mutable = ptr.is_mutable,
842850 },
843851 });
844852
845853 return DocData.WalkResult{
846 .typeRef = .{ .type = elem_type_ref.expr.type },
854 .typeRef = .{ .type = @enumToInt(Ref.type_type) },
847855 .expr = .{ .type = type_slot_index },
848856 };
849857 },
......@@ -861,14 +869,9 @@ fn walkInstruction(
861869 false,
862870 );
863871 try self.types.append(self.arena, .{
864 .Pointer = .{
865 .size = ptr.size,
866 .child = elem_type_ref.expr,
867 .sentinel = sentinel,
868 },
872 .Pointer = .{ .size = ptr.size, .child = elem_type_ref.expr, .sentinel = sentinel, .is_mutable = ptr.flags.is_mutable },
869873 });
870874 return DocData.WalkResult{
871 // .typeRef = .{ .type = type_slot_index },
872875 .typeRef = .{ .type = @enumToInt(Ref.type_type) },
873876 .expr = .{ .type = type_slot_index },
874877 };