aboutsummaryrefslogtreecommitdiff
path: root/lib/docs
diff options
context:
space:
mode:
authorVallahor <vallahor91@gmail.com>2022-05-24 22:14:05 -0300
committerAndrew Kelley <andrew@ziglang.org>2022-07-19 19:10:11 -0700
commit2a3fb341aa4e4603774289627c8eb397fdc854d1 (patch)
tree0278bf1323b246b0711a0cf4ad5cd97b18120609 /lib/docs
parentd707cd6e6df0aca14a9faaf2b411b3c4a3f08d10 (diff)
downloadzig-2a3fb341aa4e4603774289627c8eb397fdc854d1.tar.gz
zig-2a3fb341aa4e4603774289627c8eb397fdc854d1.zip
fix: handling more types of sentinels. now can be structs too
Diffstat (limited to 'lib/docs')
-rw-r--r--lib/docs/main.js28
1 files changed, 26 insertions, 2 deletions
diff --git a/lib/docs/main.js b/lib/docs/main.js
index f33bdfad54..346681b200 100644
--- a/lib/docs/main.js
+++ b/lib/docs/main.js
@@ -1062,6 +1062,30 @@ var zigAnalysis;
function exprName(expr, opts) {
switch (Object.keys(expr)[0]) {
default: throw "oh no";
+ case "struct": {
+ const struct_name = zigAnalysis.decls[expr.struct[0].val.typeRef.refPath[0].declRef].name;
+ let struct_body = "";
+ struct_body += struct_name + "{ ";
+ for (let i = 0; i < expr.struct.length; i++) {
+ const val = expr.struct[i].name
+ const exprArg = zigAnalysis.exprs[expr.struct[i].val.expr.as.exprArg];
+ let value_field = exprArg[Object.keys(exprArg)[0]];
+ if (value_field instanceof Object) {
+ value_field = zigAnalysis.decls[value_field[0].val.typeRef.refPath[0].declRef].name;
+ };
+ struct_body += "." + val + " = " + value_field;
+ if (i !== expr.struct.length - 1) {
+ struct_body += ", ";
+ } else {
+ struct_body += " ";
+ }
+ }
+ struct_body += "}";
+ return struct_body;
+ }
+ case "null": {
+ return "null";
+ }
case "array": {
let payloadHtml = ".{";
for (let i = 0; i < expr.array.length; i++) {
@@ -1141,7 +1165,7 @@ var zigAnalysis;
let arrayObj = /** @type {ArrayType} */ (typeObj);
let name = "[";
let lenName = exprName(arrayObj.len, opts);
- let sentinel = arrayObj.sentinel ? ":0" : "";
+ let sentinel = arrayObj.sentinel ? ":"+exprName(arrayObj.sentinel, opts) : "";
let is_mutable = arrayObj.is_multable ? "const " : "";
if (opts.wantHtml) {
@@ -1160,7 +1184,7 @@ var zigAnalysis;
case typeKinds.Pointer:
{
let ptrObj = /** @type {PointerType} */(typeObj);
- let sentinel = ptrObj.sentinel ? ":0" : "";
+ let sentinel = ptrObj.sentinel ? ":"+exprName(ptrObj.sentinel, opts) : "";
let is_mutable = !ptrObj.is_mutable ? "const " : "";
let name = "";
switch (ptrObj.size) {