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;...@@ -1134,6 +1134,7 @@ var zigAnalysis;
1134 let name = "[";1134 let name = "[";
1135 let lenName = exprName(arrayObj.len, opts);1135 let lenName = exprName(arrayObj.len, opts);
1136 let sentinel = arrayObj.sentinel ? ":0" : "";1136 let sentinel = arrayObj.sentinel ? ":0" : "";
1137 let is_mutable = arrayObj.is_multable ? "const " : "";
11371138
1138 if (opts.wantHtml) {1139 if (opts.wantHtml) {
1139 name +=1140 name +=
...@@ -1142,6 +1143,7 @@ var zigAnalysis;...@@ -1142,6 +1143,7 @@ var zigAnalysis;
1142 name += lenName + sentinel;1143 name += lenName + sentinel;
1143 }1144 }
1144 name += "]";1145 name += "]";
1146 name += is_mutable;
1145 name += exprName(arrayObj.child, opts);1147 name += exprName(arrayObj.child, opts);
1146 return name;1148 return name;
1147 }1149 }
...@@ -1151,27 +1153,32 @@ var zigAnalysis;...@@ -1151,27 +1153,32 @@ var zigAnalysis;
1151 {1153 {
1152 let ptrObj = /** @type {PointerType} */(typeObj);1154 let ptrObj = /** @type {PointerType} */(typeObj);
1153 let sentinel = ptrObj.sentinel ? ":0" : "";1155 let sentinel = ptrObj.sentinel ? ":0" : "";
1156 let is_mutable = !ptrObj.is_mutable ? "const " : "";
1154 let name = "";1157 let name = "";
1155 switch (ptrObj.size) {1158 switch (ptrObj.size) {
1156 default:1159 default:
1157 console.log("TODO: implement unhandled pointer size case");1160 console.log("TODO: implement unhandled pointer size case");
1158 case pointerSizeEnum.One:1161 case pointerSizeEnum.One:
1159 name += "*";1162 name += "*";
1163 name += is_mutable;
1160 break;1164 break;
1161 case pointerSizeEnum.Many:1165 case pointerSizeEnum.Many:
1162 name += "[*";1166 name += "[*";
1163 name += sentinel;1167 name += sentinel;
1164 name += "]";1168 name += "]";
1169 name += is_mutable;
1165 break;1170 break;
1166 case pointerSizeEnum.Slice:1171 case pointerSizeEnum.Slice:
1167 name += "[";1172 name += "[";
1168 name += sentinel;1173 name += sentinel;
1169 name += "]";1174 name += "]";
1175 name += is_mutable;
1170 break;1176 break;
1171 case pointerSizeEnum.C:1177 case pointerSizeEnum.C:
1172 name += "[*c";1178 name += "[*c";
1173 name += sentinel;1179 name += sentinel;
1174 name += "]";1180 name += "]";
1181 name += is_mutable;
1175 break;1182 break;
1176 }1183 }
1177 if (ptrObj['const']) {1184 if (ptrObj['const']) {
src/Autodoc.zig+11-8
...@@ -384,6 +384,7 @@ const DocData = struct {...@@ -384,6 +384,7 @@ const DocData = struct {
384 size: std.builtin.TypeInfo.Pointer.Size,384 size: std.builtin.TypeInfo.Pointer.Size,
385 child: Expr,385 child: Expr,
386 sentinel: bool = false,386 sentinel: bool = false,
387 is_mutable: bool = true,
387 },388 },
388 Array: struct {389 Array: struct {
389 len: Expr,390 len: Expr,
...@@ -485,6 +486,11 @@ const DocData = struct {...@@ -485,6 +486,11 @@ const DocData = struct {
485 \\486 \\
486 , .{v.sentinel});487 , .{v.sentinel});
487 if (options.whitespace) |ws| try ws.outputIndent(w);488 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);
488 try w.print(494 try w.print(
489 \\"child":495 \\"child":
490 , .{});496 , .{});
...@@ -759,6 +765,7 @@ fn walkInstruction(...@@ -759,6 +765,7 @@ fn walkInstruction(
759 .Array = .{765 .Array = .{
760 .len = .{ .int = .{ .value = str.len } },766 .len = .{ .int = .{ .value = str.len } },
761 .child = .{ .type = @enumToInt(Ref.u8_type) },767 .child = .{ .type = @enumToInt(Ref.u8_type) },
768 .sentinel = true,
762 },769 },
763 });770 });
764 // const sentinel: ?usize = if (ptr.flags.has_sentinel) 0 else null;771 // const sentinel: ?usize = if (ptr.flags.has_sentinel) 0 else null;
...@@ -768,7 +775,7 @@ fn walkInstruction(...@@ -768,7 +775,7 @@ fn walkInstruction(
768 .size = .One,775 .size = .One,
769 .child = .{ .type = arrTypeId },776 .child = .{ .type = arrTypeId },
770 .sentinel = true,777 .sentinel = true,
771 // TODO: add sentinel!778 .is_mutable = false,
772 },779 },
773 });780 });
774 break :blk .{ .type = ptrTypeId };781 break :blk .{ .type = ptrTypeId };
...@@ -839,11 +846,12 @@ fn walkInstruction(...@@ -839,11 +846,12 @@ fn walkInstruction(
839 .Pointer = .{846 .Pointer = .{
840 .size = ptr.size,847 .size = ptr.size,
841 .child = elem_type_ref.expr,848 .child = elem_type_ref.expr,
849 .is_mutable = ptr.is_mutable,
842 },850 },
843 });851 });
844852
845 return DocData.WalkResult{853 return DocData.WalkResult{
846 .typeRef = .{ .type = elem_type_ref.expr.type },854 .typeRef = .{ .type = @enumToInt(Ref.type_type) },
847 .expr = .{ .type = type_slot_index },855 .expr = .{ .type = type_slot_index },
848 };856 };
849 },857 },
...@@ -861,14 +869,9 @@ fn walkInstruction(...@@ -861,14 +869,9 @@ fn walkInstruction(
861 false,869 false,
862 );870 );
863 try self.types.append(self.arena, .{871 try self.types.append(self.arena, .{
864 .Pointer = .{872 .Pointer = .{ .size = ptr.size, .child = elem_type_ref.expr, .sentinel = sentinel, .is_mutable = ptr.flags.is_mutable },
865 .size = ptr.size,
866 .child = elem_type_ref.expr,
867 .sentinel = sentinel,
868 },
869 });873 });
870 return DocData.WalkResult{874 return DocData.WalkResult{
871 // .typeRef = .{ .type = type_slot_index },
872 .typeRef = .{ .type = @enumToInt(Ref.type_type) },875 .typeRef = .{ .type = @enumToInt(Ref.type_type) },
873 .expr = .{ .type = type_slot_index },876 .expr = .{ .type = type_slot_index },
874 };877 };