From c6ea551c7d79195d0b385efdf34f30edf84733d1 Mon Sep 17 00:00:00 2001 From: Loris Cro Date: Thu, 5 Jan 2023 15:42:05 +0100 Subject: [PATCH] autodoc: fix links to functions in generic types --- lib/docs/main.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/docs/main.js b/lib/docs/main.js index 8fe1ac5da5..9e4197352c 100644 --- 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); } } }