autodoc: fix links to functions in generic types

This commit is contained in:
Loris Cro 2023-01-05 15:42:05 +01:00
parent 2d617c482c
commit c6ea551c7d

View File

@ -2741,9 +2741,19 @@ var zigAnalysis;
if ("type" in rv.expr) {
const t = getType(rv.expr.type);
if (t.kind == typeKinds.Fn && t.generic_ret != null) {
const rgr = resolveValue({ expr: t.generic_ret });
if ("type" in rgr.expr) {
parentType = getType(rgr.expr.type);
let resolvedGenericRet = resolveValue({ expr: t.generic_ret });
if ("call" in resolvedGenericRet.expr) {
let call = zigAnalysis.calls[resolvedGenericRet.expr.call];
let resolvedFunc = resolveValue({ expr: call.func });
if (!("type" in resolvedFunc.expr)) return null;
let callee = getType(resolvedFunc.expr.type);
if (!callee.generic_ret) return null;
resolvedGenericRet = resolveValue({ expr: callee.generic_ret });
}
if ("type" in resolvedGenericRet.expr) {
parentType = getType(resolvedGenericRet.expr.type);
}
}
}