commit c6ea551c7d79195d0b385efdf34f30edf84733d1 (tree) parent 2d617c482ca24563a27125d626ac51e194d49eff Author: Loris Cro <kappaloris@gmail.com> Date: Thu, 5 Jan 2023 15:42:05 +0100 autodoc: fix links to functions in generic types Diffstat:
| M | lib/docs/main.js | | | 16 | +++++++++++++--- |
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/lib/docs/main.js b/lib/docs/main.js @@ -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); } } }