autodoc: handling more values sections

This commit is contained in:
Vallahor
2022-06-10 15:56:17 -03:00
committed by Andrew Kelley
parent 24a79426ec
commit 341431b15c
2 changed files with 28 additions and 13 deletions

View File

@@ -819,6 +819,10 @@ var zigAnalysis;
case "&": {
return "&" + exprName(zigAnalysis.exprs[expr["&"]]);
}
case "compileError": {
let compileError = expr.compileError;
return compileError;
}
case "enumLiteral": {
let literal = expr.enumLiteral;
return literal;
@@ -916,7 +920,6 @@ var zigAnalysis;
return exprName(switchIndex, opts);
}
case "refPath" : {
// const fieldRef = zigAnalysis.decls[expr.fieldRef.index];
const declRef = expr.refPath[0].declRef;
let name = zigAnalysis.decls[declRef].name;
for (let i = 1; i < expr.refPath.length; i++) {
@@ -925,10 +928,9 @@ var zigAnalysis;
return name;
}
case "fieldRef" : {
const fieldRef = zigAnalysis.decls[expr.fieldRef.index];
const enumObj = exprName({"type":expr.fieldRef.type} ,opts);
// const name = zigAnalysis.astNodes[enumObj.ast + expr.fieldRef.index].name;
const name = zigAnalysis.astNodes[enumObj.ast + expr.fieldRef.index + 1].name;
const field = zigAnalysis.astNodes[enumObj.ast].fields[expr.fieldRef.index];
const name = zigAnalysis.astNodes[field].name;
return name
}
case "enumToInt" : {
@@ -1424,11 +1426,11 @@ var zigAnalysis;
return payloadHtml;
}
case "as": {
// const typeRefArg = zigAnalysis.exprs[expr.as.typeRefArg];
const typeRefArg = zigAnalysis.exprs[expr.as.typeRefArg];
const exprArg = zigAnalysis.exprs[expr.as.exprArg];
// return "@as(" + exprName(typeRefArg, opts) +
// ", " + exprName(exprArg, opts) + ")";
return exprName(exprArg, opts);
return "@as(" + exprName(typeRefArg, opts) +
", " + exprName(exprArg, opts) + ")";
// return exprName(exprArg, opts);
}
case "declRef": {
return zigAnalysis.decls[expr.declRef].name;
@@ -1467,10 +1469,14 @@ var zigAnalysis;
if (typeof typeObj === 'number') typeObj = zigAnalysis.types[typeObj];
switch (typeObj.kind) {
default: throw "TODO";
case typeKinds.Struct:
{
let structObj = (typeObj);
return structObj;
}
case typeKinds.Enum:
{
let enumObj = (typeObj);
console.log(enumObj)
return enumObj;
}
case typeKinds.Opaque:
@@ -2033,7 +2039,15 @@ var zigAnalysis;
domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
escapeHtml(decl.name) + ': ' + type.name +
" = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
} else {
} else if (resolvedValue.expr.string !== undefined || resolvedValue.expr.call !== undefined || resolvedValue.expr.comptimeExpr !== undefined) {
domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
escapeHtml(decl.name) + ': ' + exprName(resolvedValue.expr, {wantHtml: true, wantLink:true}) +
" = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
} else if (resolvedValue.expr.compileError) {
domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
escapeHtml(decl.name) + " = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";
}
else {
domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' +
escapeHtml(decl.name) + ': ' + exprName(resolvedValue.typeRef, {wantHtml: true, wantLink:true}) +
" = " + exprName(decl.value.expr, {wantHtml: true, wantLink:true}) + ";";

View File

@@ -3360,9 +3360,10 @@ fn analyzeFunction(
// ret
const ret_type_ref = blk: {
const last_instr_index = fn_info.ret_ty_body[fn_info.ret_ty_body.len - 1];
const break_operand = data[last_instr_index].@"break".operand;
const wr = try self.walkRef(file, scope, break_operand, false);
// const last_instr_index = fn_info.ret_ty_body[fn_info.ret_ty_body.len - 1];
// const break_operand = data[last_instr_index].@"break".operand;
// const wr = try self.walkRef(file, scope, break_operand, false);
const wr = try self.walkRef(file, scope, fn_info.ret_ty_ref, false);
break :blk wr;
};