authorgravatar for vallahor91@gmail.comVallahor <vallahor91@gmail.com> 2022-06-10 15:56:17-03:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-07-19 19:10:12-07:00
log341431b15c4d271395a1f100f0c496e1e77a7533
treefd20c6c9ad7f4cff56c484dd472f9804fccdf9c7
parent24a79426ecebc5ef4cdc8d1f16dacfdf74497e07

autodoc: handling more values sections


2 files changed, 28 insertions(+), 13 deletions(-)

lib/docs/main.js+24-10
......@@ -819,6 +819,10 @@ var zigAnalysis;
819819 case "&": {
820820 return "&" + exprName(zigAnalysis.exprs[expr["&"]]);
821821 }
822 case "compileError": {
823 let compileError = expr.compileError;
824 return compileError;
825 }
822826 case "enumLiteral": {
823827 let literal = expr.enumLiteral;
824828 return literal;
......@@ -916,7 +920,6 @@ var zigAnalysis;
916920 return exprName(switchIndex, opts);
917921 }
918922 case "refPath" : {
919 // const fieldRef = zigAnalysis.decls[expr.fieldRef.index];
920923 const declRef = expr.refPath[0].declRef;
921924 let name = zigAnalysis.decls[declRef].name;
922925 for (let i = 1; i < expr.refPath.length; i++) {
......@@ -925,10 +928,9 @@ var zigAnalysis;
925928 return name;
926929 }
927930 case "fieldRef" : {
928 const fieldRef = zigAnalysis.decls[expr.fieldRef.index];
929931 const enumObj = exprName({"type":expr.fieldRef.type} ,opts);
930 // const name = zigAnalysis.astNodes[enumObj.ast + expr.fieldRef.index].name;
931 const name = zigAnalysis.astNodes[enumObj.ast + expr.fieldRef.index + 1].name;
932 const field = zigAnalysis.astNodes[enumObj.ast].fields[expr.fieldRef.index];
933 const name = zigAnalysis.astNodes[field].name;
932934 return name
933935 }
934936 case "enumToInt" : {
......@@ -1424,11 +1426,11 @@ var zigAnalysis;
14241426 return payloadHtml;
14251427 }
14261428 case "as": {
1427 // const typeRefArg = zigAnalysis.exprs[expr.as.typeRefArg];
1429 const typeRefArg = zigAnalysis.exprs[expr.as.typeRefArg];
14281430 const exprArg = zigAnalysis.exprs[expr.as.exprArg];
1429 // return "@as(" + exprName(typeRefArg, opts) +
1430 // ", " + exprName(exprArg, opts) + ")";
1431 return exprName(exprArg, opts);
1431 return "@as(" + exprName(typeRefArg, opts) +
1432 ", " + exprName(exprArg, opts) + ")";
1433 // return exprName(exprArg, opts);
14321434 }
14331435 case "declRef": {
14341436 return zigAnalysis.decls[expr.declRef].name;
......@@ -1467,10 +1469,14 @@ var zigAnalysis;
14671469 if (typeof typeObj === 'number') typeObj = zigAnalysis.types[typeObj];
14681470 switch (typeObj.kind) {
14691471 default: throw "TODO";
1472 case typeKinds.Struct:
1473 {
1474 let structObj = (typeObj);
1475 return structObj;
1476 }
14701477 case typeKinds.Enum:
14711478 {
14721479 let enumObj = (typeObj);
1473 console.log(enumObj)
14741480 return enumObj;
14751481 }
14761482 case typeKinds.Opaque:
......@@ -2033,7 +2039,15 @@ var zigAnalysis;
20332039 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
20342040 escapeHtml(decl.name) + ': ' + type.name +
20352041 " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
2036 } else {
2042 } else if (resolvedValue.expr.string !== undefined || resolvedValue.expr.call !== undefined || resolvedValue.expr.comptimeExpr !== undefined) {
2043 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
2044 escapeHtml(decl.name) + ': ' + exprName(resolvedValue.expr, {wantHtml: true, wantLink:true}) +
2045 " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
2046 } else if (resolvedValue.expr.compileError) {
2047 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
2048 escapeHtml(decl.name) + " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
2049 }
2050 else {
20372051 domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
20382052 escapeHtml(decl.name) + ': ' + exprName(resolvedValue.typeRef, {wantHtml: true, wantLink:true}) +
20392053 " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
src/Autodoc.zig+4-3
......@@ -3360,9 +3360,10 @@ fn analyzeFunction(
33603360
33613361 // ret
33623362 const ret_type_ref = blk: {
3363 const last_instr_index = fn_info.ret_ty_body[fn_info.ret_ty_body.len - 1];
3364 const break_operand = data[last_instr_index].@"break".operand;
3365 const wr = try self.walkRef(file, scope, break_operand, false);
3363 // const last_instr_index = fn_info.ret_ty_body[fn_info.ret_ty_body.len - 1];
3364 // const break_operand = data[last_instr_index].@"break".operand;
3365 // const wr = try self.walkRef(file, scope, break_operand, false);
3366 const wr = try self.walkRef(file, scope, fn_info.ret_ty_ref, false);
33663367
33673368 break :blk wr;
33683369 };