Commit ab991cab84
Changed files (1)
lib
std
special
docs
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, '<li></li>');
@@ -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 '<a href="' + navLink(declPath.pkgNames, declPath.declNames) + '">' + name + '</a>';
} 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,7 +735,7 @@
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('anytype', tokenKinds.Keyword, wantHtml);
}
@@ -739,7 +744,7 @@
payloadHtml += ') ';
if (typeObj.ret != null) {
- payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl);
+ payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl, null, thisTypes);
} else {
payloadHtml += token('anytype', tokenKinds.Keyword, wantHtml);
}
@@ -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) {