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