autodoc: handling more values sections
This commit is contained in:
@@ -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}) + ";";
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user