diff --git a/lib/std/special/docs/main.js b/lib/std/special/docs/main.js index 7305add9e3..fa209e51cf 100644 --- a/lib/std/special/docs/main.js +++ b/lib/std/special/docs/main.js @@ -269,7 +269,9 @@ domFnNoExamples.classList.remove("hidden"); } else if (calls != null) { if (fnObj.combined === undefined) fnObj.combined = allCompTimeFnCallsResult(calls); - if (fnObj.combined != null) renderContainer(fnObj.combined); + if (fnObj.combined != null) { + renderContainer(fnObj.combined, calls.map(function (call) { return zigAnalysis.calls[call].result.value })); + } var domListFnExamplesFragment = createDomListFragment(calls.length, '
'); @@ -484,25 +486,28 @@ return domTemplate.content; } - function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl) { + function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl, thisTypes) { + if(thisTypes && thisTypes.includes(typeIndex)){ + return token('@This', tokenKinds.Builtin, wantHtml) + '()'; + } var typeObj = zigAnalysis.types[typeIndex]; var declNameOk = declCanRepresentTypeKind(typeObj.kind); if (wantLink) { var declIndex = getCanonTypeDecl(typeIndex); var declPath = getCanonDeclPath(declIndex); if (declPath == null) { - return typeName(typeObj, wantHtml, wantLink, fnDecl, linkFnNameDecl); + return typeName(typeObj, wantHtml, wantLink, fnDecl, linkFnNameDecl, thisTypes); } var name = (wantLink && declCanRepresentTypeKind(typeObj.kind)) ? declPath.declNames[declPath.declNames.length - 1] : - typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl); + typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl, thisTypes); if (wantLink && wantHtml) { return '' + name + ''; } else { return name; } } else { - return typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl); + return typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl, thisTypes); } } @@ -574,23 +579,23 @@ } } - function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl) { + function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl, thisTypes) { switch (typeObj.kind) { case typeKinds.Array: var name = "["; name += token(typeObj.len, tokenKinds.Number, wantHtml); name += "]"; - name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); + name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null, null, thisTypes); return name; case typeKinds.Vector: var name = "Vector("; name += token(typeObj.len, tokenKinds.Number, wantHtml); name += ", "; - name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); + name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null, null, thisTypes); name += ")"; return name; case typeKinds.Optional: - return "?" + typeIndexName(typeObj.child, wantHtml, wantSubLink, fnDecl, linkFnNameDecl); + return "?" + typeIndexName(typeObj.child, wantHtml, wantSubLink, fnDecl, linkFnNameDecl, thisTypes); case typeKinds.Pointer: var name = ""; switch (typeObj.len) { @@ -626,7 +631,7 @@ } name += ") "; } - name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); + name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null, null, thisTypes); return name; case typeKinds.Float: return token('f' + typeObj.bits, tokenKinds.Type, wantHtml); @@ -660,12 +665,12 @@ } case typeKinds.ErrorUnion: var errSetTypeObj = zigAnalysis.types[typeObj.err]; - var payloadHtml = typeIndexName(typeObj.payload, wantHtml, wantSubLink, null); + var payloadHtml = typeIndexName(typeObj.payload, wantHtml, wantSubLink, null, null, thisTypes); if (fnDecl != null && errSetTypeObj.fn === fnDecl.value) { // function index parameter supplied and this is the inferred error set of it return "!" + payloadHtml; } else { - return typeIndexName(typeObj.err, wantHtml, wantSubLink, null) + "!" + payloadHtml; + return typeIndexName(typeObj.err, wantHtml, wantSubLink, null, null, thisTypes) + "!" + payloadHtml; } case typeKinds.Fn: var payloadHtml = ""; @@ -730,18 +735,18 @@ if (isVarArgs && i === typeObj.args.length - 1) { payloadHtml += '...'; } else if (argTypeIndex != null) { - payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink); + payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink, null, null, thisTypes); } else { - payloadHtml += token('var', tokenKinds.Keyword, wantHtml); + payloadHtml += token('anytype', tokenKinds.Keyword, wantHtml); } } } payloadHtml += ') '; if (typeObj.ret != null) { - payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl); + payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl, null, thisTypes); } else { - payloadHtml += token('var', tokenKinds.Keyword, wantHtml); + payloadHtml += token('anytype', tokenKinds.Keyword, wantHtml); } return payloadHtml; case typeKinds.Frame: @@ -751,7 +756,7 @@ var name = token('anyframe', tokenKinds.Keyword, wantHtml); if (typeObj.result) { name += "->"; - name += typeIndexName(typeObj.result, wantHtml, wantSubLink, null); + name += typeIndexName(typeObj.result, wantHtml, wantSubLink, null, null, thisTypes); } return name; default: @@ -936,7 +941,7 @@ domFnProto.classList.remove("hidden"); } - function renderContainer(container) { + function renderContainer(container, thisTypes) { var typesList = []; var namespacesList = []; var errSetsList = []; @@ -1038,7 +1043,7 @@ var tdFnCode = trDom.children[0]; var tdDesc = trDom.children[1]; - tdFnCode.innerHTML = typeIndexName(decl.type, true, true, decl, navLinkDecl(decl.name)); + tdFnCode.innerHTML = typeIndexName(decl.type, true, true, decl, navLinkDecl(decl.name), thisTypes); var docs = zigAnalysis.astNodes[decl.src].docs; if (docs != null) {