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); } } }