authorgravatar for kappaloris@gmail.comLoris Cro <kappaloris@gmail.com> 2022-04-03 18:06:31+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-07-19 19:10:11-07:00
logd85259989e7c8f0f28fa80dc7970792b6411e1ed
treeaa649bcffe20c50bcb933094c59e0aed7585b4ec
parent67da1b8c88ffbb846e56802a6a1bc187714bbed2

autodoc: var 2 let in main.js


1 files changed, 367 insertions(+), 367 deletions(-)

lib/docs/main.js+367-367
...@@ -236,75 +236,75 @@...@@ -236,75 +236,75 @@
236var zigAnalysis;236var zigAnalysis;
237237
238(function() {238(function() {
239 var domStatus = /** @type HTMLElement */(document.getElementById("status"));239 let domStatus = /** @type HTMLElement */(document.getElementById("status"));
240 var domSectNav = /** @type HTMLElement */(document.getElementById("sectNav"));240 let domSectNav = /** @type HTMLElement */(document.getElementById("sectNav"));
241 var domListNav = /** @type HTMLElement */(document.getElementById("listNav"));241 let domListNav = /** @type HTMLElement */(document.getElementById("listNav"));
242 var domSectMainPkg = /** @type HTMLElement */(document.getElementById("sectMainPkg"));242 let domSectMainPkg = /** @type HTMLElement */(document.getElementById("sectMainPkg"));
243 var domSectPkgs = /** @type HTMLElement */(document.getElementById("sectPkgs"));243 let domSectPkgs = /** @type HTMLElement */(document.getElementById("sectPkgs"));
244 var domListPkgs = /** @type HTMLElement */(document.getElementById("listPkgs"));244 let domListPkgs = /** @type HTMLElement */(document.getElementById("listPkgs"));
245 var domSectTypes = /** @type HTMLElement */(document.getElementById("sectTypes"));245 let domSectTypes = /** @type HTMLElement */(document.getElementById("sectTypes"));
246 var domListTypes = /** @type HTMLElement */(document.getElementById("listTypes"));246 let domListTypes = /** @type HTMLElement */(document.getElementById("listTypes"));
247 var domSectTests = /** @type HTMLElement */(document.getElementById("sectTests"));247 let domSectTests = /** @type HTMLElement */(document.getElementById("sectTests"));
248 var domListTests = /** @type HTMLElement */(document.getElementById("listTests"));248 let domListTests = /** @type HTMLElement */(document.getElementById("listTests"));
249 var domSectNamespaces = /** @type HTMLElement */(document.getElementById("sectNamespaces"));249 let domSectNamespaces = /** @type HTMLElement */(document.getElementById("sectNamespaces"));
250 var domListNamespaces = /** @type HTMLElement */(document.getElementById("listNamespaces"));250 let domListNamespaces = /** @type HTMLElement */(document.getElementById("listNamespaces"));
251 var domSectErrSets = /** @type HTMLElement */(document.getElementById("sectErrSets"));251 let domSectErrSets = /** @type HTMLElement */(document.getElementById("sectErrSets"));
252 var domListErrSets = /** @type HTMLElement */(document.getElementById("listErrSets"));252 let domListErrSets = /** @type HTMLElement */(document.getElementById("listErrSets"));
253 var domSectFns = /** @type HTMLElement */(document.getElementById("sectFns"));253 let domSectFns = /** @type HTMLElement */(document.getElementById("sectFns"));
254 var domListFns = /** @type HTMLElement */(document.getElementById("listFns"));254 let domListFns = /** @type HTMLElement */(document.getElementById("listFns"));
255 var domSectFields = /** @type HTMLElement */(document.getElementById("sectFields"));255 let domSectFields = /** @type HTMLElement */(document.getElementById("sectFields"));
256 var domListFields = /** @type HTMLElement */(document.getElementById("listFields"));256 let domListFields = /** @type HTMLElement */(document.getElementById("listFields"));
257 var domSectGlobalVars = /** @type HTMLElement */(document.getElementById("sectGlobalVars"));257 let domSectGlobalVars = /** @type HTMLElement */(document.getElementById("sectGlobalVars"));
258 var domListGlobalVars = /** @type HTMLElement */(document.getElementById("listGlobalVars"));258 let domListGlobalVars = /** @type HTMLElement */(document.getElementById("listGlobalVars"));
259 var domSectValues = /** @type HTMLElement */(document.getElementById("sectValues"));259 let domSectValues = /** @type HTMLElement */(document.getElementById("sectValues"));
260 var domListValues = /** @type HTMLElement */(document.getElementById("listValues"));260 let domListValues = /** @type HTMLElement */(document.getElementById("listValues"));
261 var domFnProto = /** @type HTMLElement */(document.getElementById("fnProto"));261 let domFnProto = /** @type HTMLElement */(document.getElementById("fnProto"));
262 var domFnProtoCode = /** @type HTMLElement */(document.getElementById("fnProtoCode"));262 let domFnProtoCode = /** @type HTMLElement */(document.getElementById("fnProtoCode"));
263 var domSectParams = /** @type HTMLElement */(document.getElementById("sectParams"));263 let domSectParams = /** @type HTMLElement */(document.getElementById("sectParams"));
264 var domListParams = /** @type HTMLElement */(document.getElementById("listParams"));264 let domListParams = /** @type HTMLElement */(document.getElementById("listParams"));
265 var domTldDocs = /** @type HTMLElement */(document.getElementById("tldDocs"));265 let domTldDocs = /** @type HTMLElement */(document.getElementById("tldDocs"));
266 var domSectFnErrors = /** @type HTMLElement */(document.getElementById("sectFnErrors"));266 let domSectFnErrors = /** @type HTMLElement */(document.getElementById("sectFnErrors"));
267 var domListFnErrors = /** @type HTMLElement */(document.getElementById("listFnErrors"));267 let domListFnErrors = /** @type HTMLElement */(document.getElementById("listFnErrors"));
268 var domTableFnErrors =/** @type HTMLElement */(document.getElementById("tableFnErrors"));268 let domTableFnErrors =/** @type HTMLElement */(document.getElementById("tableFnErrors"));
269 var domFnErrorsAnyError = /** @type HTMLElement */(document.getElementById("fnErrorsAnyError"));269 let domFnErrorsAnyError = /** @type HTMLElement */(document.getElementById("fnErrorsAnyError"));
270 var domFnExamples = /** @type HTMLElement */(document.getElementById("fnExamples"));270 let domFnExamples = /** @type HTMLElement */(document.getElementById("fnExamples"));
271 var domListFnExamples = /** @type HTMLElement */(document.getElementById("listFnExamples"));271 let domListFnExamples = /** @type HTMLElement */(document.getElementById("listFnExamples"));
272 var domFnNoExamples = /** @type HTMLElement */(document.getElementById("fnNoExamples"));272 let domFnNoExamples = /** @type HTMLElement */(document.getElementById("fnNoExamples"));
273 var domDeclNoRef = /** @type HTMLElement */(document.getElementById("declNoRef"));273 let domDeclNoRef = /** @type HTMLElement */(document.getElementById("declNoRef"));
274 var domSearch = /** @type HTMLInputElement */(document.getElementById("search"));274 let domSearch = /** @type HTMLInputElement */(document.getElementById("search"));
275 var domSectSearchResults = /** @type HTMLElement */(document.getElementById("sectSearchResults"));275 let domSectSearchResults = /** @type HTMLElement */(document.getElementById("sectSearchResults"));
276276
277 var domListSearchResults = /** @type HTMLElement */(document.getElementById("listSearchResults"));277 let domListSearchResults = /** @type HTMLElement */(document.getElementById("listSearchResults"));
278 var domSectSearchNoResults = /** @type HTMLElement */(document.getElementById("sectSearchNoResults"));278 let domSectSearchNoResults = /** @type HTMLElement */(document.getElementById("sectSearchNoResults"));
279 var domSectInfo = /** @type HTMLElement */(document.getElementById("sectInfo"));279 let domSectInfo = /** @type HTMLElement */(document.getElementById("sectInfo"));
280 var domTdTarget = /** @type HTMLElement */(document.getElementById("tdTarget"));280 let domTdTarget = /** @type HTMLElement */(document.getElementById("tdTarget"));
281 var domPrivDeclsBox = /** @type HTMLInputElement */(document.getElementById("privDeclsBox"));281 let domPrivDeclsBox = /** @type HTMLInputElement */(document.getElementById("privDeclsBox"));
282 var domTdZigVer = /** @type HTMLElement */(document.getElementById("tdZigVer"));282 let domTdZigVer = /** @type HTMLElement */(document.getElementById("tdZigVer"));
283 var domHdrName = /** @type HTMLElement */(document.getElementById("hdrName"));283 let domHdrName = /** @type HTMLElement */(document.getElementById("hdrName"));
284 var domHelpModal = /** @type HTMLElement */(document.getElementById("helpDialog"));284 let domHelpModal = /** @type HTMLElement */(document.getElementById("helpDialog"));
285285
286 /** @type number | null */286 /** @type number | null */
287 var searchTimer = null;287 let searchTimer = null;
288288
289 /** @type Object<string, string> */289 /** @type Object<string, string> */
290 var escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" };290 let escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" };
291291
292 var typeKinds = /** @type {Record<string, number>} */(indexTypeKinds());292 let typeKinds = /** @type {Record<string, number>} */(indexTypeKinds());
293 var typeTypeId = /** @type {number} */ (findTypeTypeId());293 let typeTypeId = /** @type {number} */ (findTypeTypeId());
294 var pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 };294 let pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 };
295295
296 // for each package, is an array with packages to get to this one296 // for each package, is an array with packages to get to this one
297 var canonPkgPaths = computeCanonicalPackagePaths();297 let canonPkgPaths = computeCanonicalPackagePaths();
298298
299 /** @typedef {{declNames: string[], pkgNames: string[]}} CanonDecl */299 /** @typedef {{declNames: string[], pkgNames: string[]}} CanonDecl */
300300
301 // for each decl, is an array with {declNames, pkgNames} to get to this one301 // for each decl, is an array with {declNames, pkgNames} to get to this one
302 /** @type CanonDecl[] | null */302 /** @type CanonDecl[] | null */
303 var canonDeclPaths = null; // lazy; use getCanonDeclPath303 let canonDeclPaths = null; // lazy; use getCanonDeclPath
304304
305 // for each type, is an array with {declNames, pkgNames} to get to this one305 // for each type, is an array with {declNames, pkgNames} to get to this one
306 /** @type number[] | null */306 /** @type number[] | null */
307 var canonTypeDecls = null; // lazy; use getCanonTypeDecl307 let canonTypeDecls = null; // lazy; use getCanonTypeDecl
308308
309 /** @typedef {{309 /** @typedef {{
310 * showPrivDecls: boolean,310 * showPrivDecls: boolean,
...@@ -317,7 +317,7 @@ var zigAnalysis;...@@ -317,7 +317,7 @@ var zigAnalysis;
317 */317 */
318318
319 /** @type {CurNav} */319 /** @type {CurNav} */
320 var curNav = {320 let curNav = {
321 showPrivDecls: false,321 showPrivDecls: false,
322 // each element is a package name, e.g. @import("a") then within there @import("b")322 // each element is a package name, e.g. @import("a") then within there @import("b")
323 // starting implicitly from root package323 // starting implicitly from root package
...@@ -334,16 +334,16 @@ var zigAnalysis;...@@ -334,16 +334,16 @@ var zigAnalysis;
334 callName: null,334 callName: null,
335 };335 };
336336
337 var curNavSearch = "";337 let curNavSearch = "";
338 var curSearchIndex = -1;338 let curSearchIndex = -1;
339 var imFeelingLucky = false;339 let imFeelingLucky = false;
340340
341 var rootIsStd = detectRootIsStd();341 let rootIsStd = detectRootIsStd();
342342
343 // map of decl index to list of non-generic fn indexes343 // map of decl index to list of non-generic fn indexes
344 // var nodesToFnsMap = indexNodesToFns();344 // let nodesToFnsMap = indexNodesToFns();
345 // map of decl index to list of comptime fn calls345 // map of decl index to list of comptime fn calls
346 // var nodesToCallsMap = indexNodesToCalls();346 // let nodesToCallsMap = indexNodesToCalls();
347347
348 domSearch.addEventListener('keydown', onSearchKeyDown, false);348 domSearch.addEventListener('keydown', onSearchKeyDown, false);
349 domPrivDeclsBox.addEventListener('change', function() {349 domPrivDeclsBox.addEventListener('change', function() {
...@@ -363,8 +363,8 @@ var zigAnalysis;...@@ -363,8 +363,8 @@ var zigAnalysis;
363 onHashChange();363 onHashChange();
364364
365 function renderTitle() {365 function renderTitle() {
366 var list = curNav.pkgNames.concat(curNav.declNames);366 let list = curNav.pkgNames.concat(curNav.declNames);
367 var suffix = " - Zig";367 let suffix = " - Zig";
368 if (list.length === 0) {368 if (list.length === 0) {
369 if (rootIsStd) {369 if (rootIsStd) {
370 document.title = "std" + suffix;370 document.title = "std" + suffix;
...@@ -393,7 +393,7 @@ var zigAnalysis;...@@ -393,7 +393,7 @@ var zigAnalysis;
393393
394 /** @param {Type} type */394 /** @param {Type} type */
395 function typeShorthandName(type) {395 function typeShorthandName(type) {
396 var name = undefined;396 let name = undefined;
397 if (type.kind === typeKinds.Struct) {397 if (type.kind === typeKinds.Struct) {
398 name = "struct";398 name = "struct";
399 } else if (type.kind === typeKinds.Enum) {399 } else if (type.kind === typeKinds.Enum) {
...@@ -423,7 +423,7 @@ var zigAnalysis;...@@ -423,7 +423,7 @@ var zigAnalysis;
423 * @return {WalkResult | null}423 * @return {WalkResult | null}
424 */424 */
425 function findCteInRefPath(path) {425 function findCteInRefPath(path) {
426 for (var i = path.length - 1; i >= 0; i -= 1) {426 for (let i = path.length - 1; i >= 0; i -= 1) {
427 const ref = path[i];427 const ref = path[i];
428 if ("string" in ref) continue;428 if ("string" in ref) continue;
429 if ("comptimeExpr" in ref) return ref;429 if ("comptimeExpr" in ref) return ref;
...@@ -439,7 +439,7 @@ var zigAnalysis;...@@ -439,7 +439,7 @@ var zigAnalysis;
439 * @return {WalkResult}439 * @return {WalkResult}
440 */440 */
441 function resolveValue(value) {441 function resolveValue(value) {
442 var i = 0;442 let i = 0;
443 while(i < 1000) {443 while(i < 1000) {
444 i += 1;444 i += 1;
445445
...@@ -465,7 +465,7 @@ var zigAnalysis;...@@ -465,7 +465,7 @@ var zigAnalysis;
465 * @return {WalkResult}465 * @return {WalkResult}
466 */466 */
467 function typeOfDecl(decl){467 function typeOfDecl(decl){
468 var i = 0;468 let i = 0;
469 while(i < 1000) {469 while(i < 1000) {
470 i += 1;470 i += 1;
471 console.assert(isDecl(decl));471 console.assert(isDecl(decl));
...@@ -508,7 +508,7 @@ var zigAnalysis;...@@ -508,7 +508,7 @@ var zigAnalysis;
508508
509 if ("call" in decl.value) {509 if ("call" in decl.value) {
510 const fn_call = zigAnalysis.calls[decl.value.call];510 const fn_call = zigAnalysis.calls[decl.value.call];
511 var fn_decl = undefined;511 let fn_decl = undefined;
512 if ("declRef" in fn_call.func) {512 if ("declRef" in fn_call.func) {
513 fn_decl = zigAnalysis.decls[fn_call.func.declRef];513 fn_decl = zigAnalysis.decls[fn_call.func.declRef];
514 } else if ("refPath" in fn_call.func) {514 } else if ("refPath" in fn_call.func) {
...@@ -576,11 +576,11 @@ var zigAnalysis;...@@ -576,11 +576,11 @@ var zigAnalysis;
576 return renderSearch();576 return renderSearch();
577 }577 }
578578
579 var rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];579 let rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];
580 var pkg = rootPkg;580 let pkg = rootPkg;
581 curNav.pkgObjs = [pkg];581 curNav.pkgObjs = [pkg];
582 for (var i = 0; i < curNav.pkgNames.length; i += 1) {582 for (let i = 0; i < curNav.pkgNames.length; i += 1) {
583 var childPkg = zigAnalysis.packages[pkg.table[curNav.pkgNames[i]]];583 let childPkg = zigAnalysis.packages[pkg.table[curNav.pkgNames[i]]];
584 if (childPkg == null) {584 if (childPkg == null) {
585 return render404();585 return render404();
586 }586 }
...@@ -589,17 +589,17 @@ var zigAnalysis;...@@ -589,17 +589,17 @@ var zigAnalysis;
589 }589 }
590590
591 /** @type {Decl | Type} */591 /** @type {Decl | Type} */
592 var currentType = zigAnalysis.types[pkg.main];592 let currentType = zigAnalysis.types[pkg.main];
593 curNav.declObjs = [currentType];593 curNav.declObjs = [currentType];
594 for (var i = 0; i < curNav.declNames.length; i += 1) {594 for (let i = 0; i < curNav.declNames.length; i += 1) {
595595
596 /** @type {Decl | Type | null} */596 /** @type {Decl | Type | null} */
597 var childDecl = findSubDecl(/** @type {ContainerType} */(currentType), curNav.declNames[i]);597 let childDecl = findSubDecl(/** @type {ContainerType} */(currentType), curNav.declNames[i]);
598 if (childDecl == null) {598 if (childDecl == null) {
599 return render404();599 return render404();
600 }600 }
601601
602 var childDeclValue = resolveValue(/** @type {Decl} */(childDecl).value);602 let childDeclValue = resolveValue(/** @type {Decl} */(childDecl).value);
603 if ("type" in childDeclValue) {603 if ("type" in childDeclValue) {
604604
605 const t = zigAnalysis.types[childDeclValue.type];605 const t = zigAnalysis.types[childDeclValue.type];
...@@ -614,10 +614,10 @@ var zigAnalysis;...@@ -614,10 +614,10 @@ var zigAnalysis;
614614
615 renderNav();615 renderNav();
616616
617 var last = curNav.declObjs[curNav.declObjs.length - 1];617 let last = curNav.declObjs[curNav.declObjs.length - 1];
618 var lastIsDecl = isDecl(last);618 let lastIsDecl = isDecl(last);
619 var lastIsType = isType(last);619 let lastIsType = isType(last);
620 var lastIsContainerType = isContainerType(last);620 let lastIsContainerType = isContainerType(last);
621621
622 if (lastIsContainerType) {622 if (lastIsContainerType) {
623 return renderContainer(/** @type {ContainerType} */(last));623 return renderContainer(/** @type {ContainerType} */(last));
...@@ -636,7 +636,7 @@ var zigAnalysis;...@@ -636,7 +636,7 @@ var zigAnalysis;
636 }636 }
637637
638 if (lastIsDecl && last.kind === 'const') {638 if (lastIsDecl && last.kind === 'const') {
639 var typeObj = zigAnalysis.types[resolveValue(/** @type {Decl} */(last).value).type];639 let typeObj = zigAnalysis.types[resolveValue(/** @type {Decl} */(last).value).type];
640 if (typeObj && typeObj.kind === typeKinds.Fn) {640 if (typeObj && typeObj.kind === typeKinds.Fn) {
641 return renderFn(/** @type {Decl} */(last));641 return renderFn(/** @type {Decl} */(last));
642 }642 }
...@@ -649,7 +649,7 @@ var zigAnalysis;...@@ -649,7 +649,7 @@ var zigAnalysis;
649 function renderUnknownDecl(decl) {649 function renderUnknownDecl(decl) {
650 domDeclNoRef.classList.remove("hidden");650 domDeclNoRef.classList.remove("hidden");
651651
652 var docs = zigAnalysis.astNodes[decl.src].docs;652 let docs = zigAnalysis.astNodes[decl.src].docs;
653 if (docs != null) {653 if (docs != null) {
654 domTldDocs.innerHTML = markdown(docs);654 domTldDocs.innerHTML = markdown(docs);
655 } else {655 } else {
...@@ -660,13 +660,13 @@ var zigAnalysis;...@@ -660,13 +660,13 @@ var zigAnalysis;
660660
661 /** @param {number} typeIndex */661 /** @param {number} typeIndex */
662 function typeIsErrSet(typeIndex) {662 function typeIsErrSet(typeIndex) {
663 var typeObj = zigAnalysis.types[typeIndex];663 let typeObj = zigAnalysis.types[typeIndex];
664 return typeObj.kind === typeKinds.ErrorSet;664 return typeObj.kind === typeKinds.ErrorSet;
665 }665 }
666666
667 /** @param {number} typeIndex */667 /** @param {number} typeIndex */
668 function typeIsStructWithNoFields(typeIndex) {668 function typeIsStructWithNoFields(typeIndex) {
669 var typeObj = zigAnalysis.types[typeIndex];669 let typeObj = zigAnalysis.types[typeIndex];
670 if (typeObj.kind !== typeKinds.Struct)670 if (typeObj.kind !== typeKinds.Struct)
671 return false;671 return false;
672 return /** @type {ContainerType} */(typeObj).fields.length == 0;672 return /** @type {ContainerType} */(typeObj).fields.length == 0;
...@@ -674,7 +674,7 @@ var zigAnalysis;...@@ -674,7 +674,7 @@ var zigAnalysis;
674674
675 /** @param {number} typeIndex */675 /** @param {number} typeIndex */
676 function typeIsGenericFn(typeIndex) {676 function typeIsGenericFn(typeIndex) {
677 var typeObj = zigAnalysis.types[typeIndex];677 let typeObj = zigAnalysis.types[typeIndex];
678 if (typeObj.kind !== typeKinds.Fn) {678 if (typeObj.kind !== typeKinds.Fn) {
679 return false;679 return false;
680 }680 }
...@@ -683,38 +683,38 @@ var zigAnalysis;...@@ -683,38 +683,38 @@ var zigAnalysis;
683683
684 /** @param {Decl} fnDecl */684 /** @param {Decl} fnDecl */
685 function renderFn(fnDecl) {685 function renderFn(fnDecl) {
686 var value = resolveValue(fnDecl.value);686 let value = resolveValue(fnDecl.value);
687 console.assert("type" in value);687 console.assert("type" in value);
688 var typeObj = /** @type {Fn} */(zigAnalysis.types[value.type]);688 let typeObj = /** @type {Fn} */(zigAnalysis.types[value.type]);
689689
690 domFnProtoCode.innerHTML = typeValueName(value, true, true, fnDecl);690 domFnProtoCode.innerHTML = typeValueName(value, true, true, fnDecl);
691691
692 var docsSource = null;692 let docsSource = null;
693 var srcNode = zigAnalysis.astNodes[fnDecl.src];693 let srcNode = zigAnalysis.astNodes[fnDecl.src];
694 if (srcNode.docs != null) {694 if (srcNode.docs != null) {
695 docsSource = srcNode.docs;695 docsSource = srcNode.docs;
696 }696 }
697697
698 var retIndex = resolveValue(typeObj.ret).type;698 let retIndex = resolveValue(typeObj.ret).type;
699 renderFnParamDocs(fnDecl, typeObj);699 renderFnParamDocs(fnDecl, typeObj);
700700
701 var errSetTypeIndex = /** @type {number | null} */(null);701 let errSetTypeIndex = /** @type {number | null} */(null);
702 var retType = zigAnalysis.types[retIndex];702 let retType = zigAnalysis.types[retIndex];
703 if (retType.kind === typeKinds.ErrorSet) {703 if (retType.kind === typeKinds.ErrorSet) {
704 errSetTypeIndex = retIndex;704 errSetTypeIndex = retIndex;
705 } else if (retType.kind === typeKinds.ErrorUnion) {705 } else if (retType.kind === typeKinds.ErrorUnion) {
706 errSetTypeIndex = /** @type {ErrUnionType} */(retType).err.type;706 errSetTypeIndex = /** @type {ErrUnionType} */(retType).err.type;
707 }707 }
708 if (errSetTypeIndex != null) {708 if (errSetTypeIndex != null) {
709 var errSetType = /** @type {ErrSetType} */(zigAnalysis.types[errSetTypeIndex]);709 let errSetType = /** @type {ErrSetType} */(zigAnalysis.types[errSetTypeIndex]);
710 renderErrorSet(errSetType);710 renderErrorSet(errSetType);
711 }711 }
712712
713 var protoSrcIndex = fnDecl.src;713 let protoSrcIndex = fnDecl.src;
714 if (typeIsGenericFn(value.type)) {714 if (typeIsGenericFn(value.type)) {
715 throw "TODO";715 throw "TODO";
716 // var instantiations = nodesToFnsMap[protoSrcIndex];716 // let instantiations = nodesToFnsMap[protoSrcIndex];
717 // var calls = nodesToCallsMap[protoSrcIndex];717 // let calls = nodesToCallsMap[protoSrcIndex];
718 // if (instantiations == null && calls == null) {718 // if (instantiations == null && calls == null) {
719 // domFnNoExamples.classList.remove("hidden");719 // domFnNoExamples.classList.remove("hidden");
720 // } else if (calls != null) {720 // } else if (calls != null) {
...@@ -723,8 +723,8 @@ var zigAnalysis;...@@ -723,8 +723,8 @@ var zigAnalysis;
723723
724 // resizeDomList(domListFnExamples, calls.length, '<li></li>');724 // resizeDomList(domListFnExamples, calls.length, '<li></li>');
725725
726 // for (var callI = 0; callI < calls.length; callI += 1) {726 // for (let callI = 0; callI < calls.length; callI += 1) {
727 // var liDom = domListFnExamples.children[callI];727 // let liDom = domListFnExamples.children[callI];
728 // liDom.innerHTML = getCallHtml(fnDecl, calls[callI]);728 // liDom.innerHTML = getCallHtml(fnDecl, calls[callI]);
729 // }729 // }
730730
...@@ -738,7 +738,7 @@ var zigAnalysis;...@@ -738,7 +738,7 @@ var zigAnalysis;
738 domFnNoExamples.classList.add("hidden");738 domFnNoExamples.classList.add("hidden");
739 }739 }
740740
741 var protoSrcNode = zigAnalysis.astNodes[protoSrcIndex];741 let protoSrcNode = zigAnalysis.astNodes[protoSrcIndex];
742 if (docsSource == null && protoSrcNode != null && protoSrcNode.docs != null) {742 if (docsSource == null && protoSrcNode != null && protoSrcNode.docs != null) {
743 docsSource = protoSrcNode.docs;743 docsSource = protoSrcNode.docs;
744 }744 }
...@@ -754,15 +754,15 @@ var zigAnalysis;...@@ -754,15 +754,15 @@ var zigAnalysis;
754 * @param {Fn} typeObj754 * @param {Fn} typeObj
755 */755 */
756 function renderFnParamDocs(fnDecl, typeObj) {756 function renderFnParamDocs(fnDecl, typeObj) {
757 var docCount = 0;757 let docCount = 0;
758758
759 var fnNode = zigAnalysis.astNodes[fnDecl.src];759 let fnNode = zigAnalysis.astNodes[fnDecl.src];
760 var fields = /** @type {number[]} */(fnNode.fields);760 let fields = /** @type {number[]} */(fnNode.fields);
761 var isVarArgs = fnNode.varArgs;761 let isVarArgs = fnNode.varArgs;
762762
763 for (var i = 0; i < fields.length; i += 1) {763 for (let i = 0; i < fields.length; i += 1) {
764 var field = fields[i];764 let field = fields[i];
765 var fieldNode = zigAnalysis.astNodes[field];765 let fieldNode = zigAnalysis.astNodes[field];
766 if (fieldNode.docs != null) {766 if (fieldNode.docs != null) {
767 docCount += 1;767 docCount += 1;
768 }768 }
...@@ -772,30 +772,30 @@ var zigAnalysis;...@@ -772,30 +772,30 @@ var zigAnalysis;
772 }772 }
773773
774 resizeDomList(domListParams, docCount, '<div></div>');774 resizeDomList(domListParams, docCount, '<div></div>');
775 var domIndex = 0;775 let domIndex = 0;
776776
777 for (var i = 0; i < fields.length; i += 1) {777 for (let i = 0; i < fields.length; i += 1) {
778 var field = fields[i];778 let field = fields[i];
779 var fieldNode = zigAnalysis.astNodes[field];779 let fieldNode = zigAnalysis.astNodes[field];
780 if (fieldNode.docs == null) {780 if (fieldNode.docs == null) {
781 continue;781 continue;
782 }782 }
783 var divDom = domListParams.children[domIndex];783 let divDom = domListParams.children[domIndex];
784 domIndex += 1;784 domIndex += 1;
785785
786786
787 var value = typeObj.params[i];787 let value = typeObj.params[i];
788 var html = '<pre>' + escapeHtml(/** @type {string} */(fieldNode.name)) + ": ";788 let html = '<pre>' + escapeHtml(/** @type {string} */(fieldNode.name)) + ": ";
789 if (isVarArgs && i === typeObj.params.length - 1) {789 if (isVarArgs && i === typeObj.params.length - 1) {
790 html += '...';790 html += '...';
791 } else {791 } else {
792 var name = typeValueName(value, false, false);792 let name = typeValueName(value, false, false);
793 html += '<span class="tok-kw">' + name + '</span>';793 html += '<span class="tok-kw">' + name + '</span>';
794 }794 }
795795
796 html += ',</pre>';796 html += ',</pre>';
797797
798 var docs = fieldNode.docs;798 let docs = fieldNode.docs;
799 if (docs != null) {799 if (docs != null) {
800 html += markdown(docs);800 html += markdown(docs);
801 }801 }
...@@ -805,19 +805,19 @@ var zigAnalysis;...@@ -805,19 +805,19 @@ var zigAnalysis;
805 }805 }
806806
807 function renderNav() {807 function renderNav() {
808 var len = curNav.pkgNames.length + curNav.declNames.length;808 let len = curNav.pkgNames.length + curNav.declNames.length;
809 resizeDomList(domListNav, len, '<li><a href="#"></a></li>');809 resizeDomList(domListNav, len, '<li><a href="#"></a></li>');
810 var list = [];810 let list = [];
811 var hrefPkgNames = [];811 let hrefPkgNames = [];
812 var hrefDeclNames = /** @type {string[]} */([]);812 let hrefDeclNames = /** @type {string[]} */([]);
813 for (var i = 0; i < curNav.pkgNames.length; i += 1) {813 for (let i = 0; i < curNav.pkgNames.length; i += 1) {
814 hrefPkgNames.push(curNav.pkgNames[i]);814 hrefPkgNames.push(curNav.pkgNames[i]);
815 list.push({815 list.push({
816 name: curNav.pkgNames[i],816 name: curNav.pkgNames[i],
817 link: navLink(hrefPkgNames, hrefDeclNames),817 link: navLink(hrefPkgNames, hrefDeclNames),
818 });818 });
819 }819 }
820 for (var i = 0; i < curNav.declNames.length; i += 1) {820 for (let i = 0; i < curNav.declNames.length; i += 1) {
821 hrefDeclNames.push(curNav.declNames[i]);821 hrefDeclNames.push(curNav.declNames[i]);
822 list.push({822 list.push({
823 name: curNav.declNames[i],823 name: curNav.declNames[i],
...@@ -825,9 +825,9 @@ var zigAnalysis;...@@ -825,9 +825,9 @@ var zigAnalysis;
825 });825 });
826 }826 }
827827
828 for (var i = 0; i < list.length; i += 1) {828 for (let i = 0; i < list.length; i += 1) {
829 var liDom = domListNav.children[i];829 let liDom = domListNav.children[i];
830 var aDom = liDom.children[0];830 let aDom = liDom.children[0];
831 aDom.textContent = list[i].name;831 aDom.textContent = list[i].name;
832 aDom.setAttribute('href', list[i].link);832 aDom.setAttribute('href', list[i].link);
833 if (i + 1 == list.length) {833 if (i + 1 == list.length) {
...@@ -853,10 +853,10 @@ var zigAnalysis;...@@ -853,10 +853,10 @@ var zigAnalysis;
853 }853 }
854854
855 function renderPkgList() {855 function renderPkgList() {
856 var rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];856 let rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];
857 var list = [];857 let list = [];
858 for (var key in rootPkg.table) {858 for (let key in rootPkg.table) {
859 var pkgIndex = rootPkg.table[key];859 let pkgIndex = rootPkg.table[key];
860 if (zigAnalysis.packages[pkgIndex] == null) continue;860 if (zigAnalysis.packages[pkgIndex] == null) continue;
861 list.push({861 list.push({
862 name: key,862 name: key,
...@@ -865,7 +865,7 @@ var zigAnalysis;...@@ -865,7 +865,7 @@ var zigAnalysis;
865 }865 }
866866
867 {867 {
868 var aDom = domSectMainPkg.children[1].children[0].children[0];868 let aDom = domSectMainPkg.children[1].children[0].children[0];
869 aDom.textContent = zigAnalysis.params.rootName;869 aDom.textContent = zigAnalysis.params.rootName;
870 aDom.setAttribute('href', navLinkPkg(zigAnalysis.rootPkg));870 aDom.setAttribute('href', navLinkPkg(zigAnalysis.rootPkg));
871 if (zigAnalysis.params.rootName === curNav.pkgNames[0]) {871 if (zigAnalysis.params.rootName === curNav.pkgNames[0]) {
...@@ -882,9 +882,9 @@ var zigAnalysis;...@@ -882,9 +882,9 @@ var zigAnalysis;
882882
883 if (list.length !== 0) {883 if (list.length !== 0) {
884 resizeDomList(domListPkgs, list.length, '<li><a href="#"></a></li>');884 resizeDomList(domListPkgs, list.length, '<li><a href="#"></a></li>');
885 for (var i = 0; i < list.length; i += 1) {885 for (let i = 0; i < list.length; i += 1) {
886 var liDom = domListPkgs.children[i];886 let liDom = domListPkgs.children[i];
887 var aDom = liDom.children[0];887 let aDom = liDom.children[0];
888 aDom.textContent = list[i].name;888 aDom.textContent = list[i].name;
889 aDom.setAttribute('href', navLinkPkg(list[i].pkg));889 aDom.setAttribute('href', navLinkPkg(list[i].pkg));
890 if (list[i].name === curNav.pkgNames[0]) {890 if (list[i].name === curNav.pkgNames[0]) {
...@@ -933,13 +933,13 @@ var zigAnalysis;...@@ -933,13 +933,13 @@ var zigAnalysis;
933933
934 /** @param {Call} callObj */934 /** @param {Call} callObj */
935 function navLinkCall(callObj) {935 function navLinkCall(callObj) {
936 var declNamesCopy = curNav.declNames.concat([]);936 let declNamesCopy = curNav.declNames.concat([]);
937 var callName = /** @type {string} */(declNamesCopy.pop());937 let callName = /** @type {string} */(declNamesCopy.pop());
938938
939 callName += '(';939 callName += '(';
940 for (var arg_i = 0; arg_i < callObj.args.length; arg_i += 1) {940 for (let arg_i = 0; arg_i < callObj.args.length; arg_i += 1) {
941 if (arg_i !== 0) callName += ',';941 if (arg_i !== 0) callName += ',';
942 var argObj = callObj.args[arg_i];942 let argObj = callObj.args[arg_i];
943 callName += getValueText(argObj, argObj, false, false);943 callName += getValueText(argObj, argObj, false, false);
944 }944 }
945 callName += ')';945 callName += ')';
...@@ -954,7 +954,7 @@ var zigAnalysis;...@@ -954,7 +954,7 @@ var zigAnalysis;
954 */954 */
955 function resizeDomListDl(dlDom, desiredLen) {955 function resizeDomListDl(dlDom, desiredLen) {
956 // add the missing dom entries956 // add the missing dom entries
957 var i, ev;957 let i, ev;
958 for (i = dlDom.childElementCount / 2; i < desiredLen; i += 1) {958 for (i = dlDom.childElementCount / 2; i < desiredLen; i += 1) {
959 dlDom.insertAdjacentHTML('beforeend', '<dt></dt><dd></dd>');959 dlDom.insertAdjacentHTML('beforeend', '<dt></dt><dd></dd>');
960 }960 }
...@@ -972,7 +972,7 @@ var zigAnalysis;...@@ -972,7 +972,7 @@ var zigAnalysis;
972 */972 */
973 function resizeDomList(listDom, desiredLen, templateHtml) {973 function resizeDomList(listDom, desiredLen, templateHtml) {
974 // add the missing dom entries974 // add the missing dom entries
975 var i, ev;975 let i, ev;
976 for (i = listDom.childElementCount; i < desiredLen; i += 1) {976 for (i = listDom.childElementCount; i < desiredLen; i += 1) {
977 listDom.insertAdjacentHTML('beforeend', templateHtml);977 listDom.insertAdjacentHTML('beforeend', templateHtml);
978 }978 }
...@@ -996,11 +996,11 @@ var zigAnalysis;...@@ -996,11 +996,11 @@ var zigAnalysis;
996 return "" + typeValue.int.value;996 return "" + typeValue.int.value;
997 }997 }
998 if ("call" in typeValue) {998 if ("call" in typeValue) {
999 var result = "";999 let result = "";
1000 var call = zigAnalysis.calls[typeValue.call];1000 let call = zigAnalysis.calls[typeValue.call];
1001 var functionName = typeValueName(call.func, wantHtml, wantLink, fnDecl, linkFnNameDecl);1001 let functionName = typeValueName(call.func, wantHtml, wantLink, fnDecl, linkFnNameDecl);
1002 result += functionName + "(";1002 result += functionName + "(";
1003 for (var j = 0; j < call.args.length; j += 1) {1003 for (let j = 0; j < call.args.length; j += 1) {
1004 result += typeValueName(call.args[j], wantHtml, wantLink, fnDecl, linkFnNameDecl);1004 result += typeValueName(call.args[j], wantHtml, wantLink, fnDecl, linkFnNameDecl);
1005 if (j != call.args.length -1) result += ",";1005 if (j != call.args.length -1) result += ",";
1006 }1006 }
...@@ -1011,10 +1011,10 @@ var zigAnalysis;...@@ -1011,10 +1011,10 @@ var zigAnalysis;
1011 return "[ComptimeExpr]";1011 return "[ComptimeExpr]";
1012 }1012 }
1013 if ("refPath" in typeValue) {1013 if ("refPath" in typeValue) {
1014 var result = "";1014 let result = "";
1015 for (var j = 0; j < typeValue.refPath.length; j++) {1015 for (let j = 0; j < typeValue.refPath.length; j++) {
10161016
1017 var name = "[RefPath]";1017 let name = "[RefPath]";
1018 if (wantHtml) {1018 if (wantHtml) {
1019 //result += '<a href="'+navLinkDecl(decl.name)+'">';1019 //result += '<a href="'+navLinkDecl(decl.name)+'">';
1020 result += '<a href="">';1020 result += '<a href="">';
...@@ -1048,16 +1048,16 @@ var zigAnalysis;...@@ -1048,16 +1048,16 @@ var zigAnalysis;
1048 }1048 }
10491049
1050 console.assert("type" in typeValue)1050 console.assert("type" in typeValue)
1051 var typeIndex = typeValue.type;1051 let typeIndex = typeValue.type;
1052 var typeObj = zigAnalysis.types[typeIndex];1052 let typeObj = zigAnalysis.types[typeIndex];
1053 var declNameOk = declCanRepresentTypeKind(typeObj.kind);1053 let declNameOk = declCanRepresentTypeKind(typeObj.kind);
1054 if (wantLink) {1054 if (wantLink) {
1055 var declIndex = getCanonTypeDecl(typeIndex);1055 let declIndex = getCanonTypeDecl(typeIndex);
1056 var declPath = getCanonDeclPath(declIndex);1056 let declPath = getCanonDeclPath(declIndex);
1057 if (declPath == null) {1057 if (declPath == null) {
1058 return typeName(typeObj, wantHtml, wantLink, fnDecl, linkFnNameDecl);1058 return typeName(typeObj, wantHtml, wantLink, fnDecl, linkFnNameDecl);
1059 }1059 }
1060 var name = (wantLink && declCanRepresentTypeKind(typeObj.kind)) ?1060 let name = (wantLink && declCanRepresentTypeKind(typeObj.kind)) ?
1061 declPath.declNames[declPath.declNames.length - 1] :1061 declPath.declNames[declPath.declNames.length - 1] :
1062 typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl);1062 typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl);
1063 if (wantLink && wantHtml) {1063 if (wantLink && wantHtml) {
...@@ -1075,9 +1075,9 @@ var zigAnalysis;...@@ -1075,9 +1075,9 @@ var zigAnalysis;
1075 * @param {string} paramName1075 * @param {string} paramName
1076 */1076 */
1077 function shouldSkipParamName(typeRef, paramName) {1077 function shouldSkipParamName(typeRef, paramName) {
1078 var resolvedTypeRef = resolveValue(typeRef);1078 let resolvedTypeRef = resolveValue(typeRef);
1079 if ("type" in resolvedTypeRef) {1079 if ("type" in resolvedTypeRef) {
1080 var typeObj = zigAnalysis.types[resolvedTypeRef.type];1080 let typeObj = zigAnalysis.types[resolvedTypeRef.type];
1081 if (typeObj.kind === typeKinds.Pointer){1081 if (typeObj.kind === typeKinds.Pointer){
1082 let ptrObj = /** @type {PointerType} */(typeObj);1082 let ptrObj = /** @type {PointerType} */(typeObj);
1083 if (getPtrSize(ptrObj) === pointerSizeEnum.One) {1083 if (getPtrSize(ptrObj) === pointerSizeEnum.One) {
...@@ -1095,14 +1095,14 @@ var zigAnalysis;...@@ -1095,14 +1095,14 @@ var zigAnalysis;
1095 }1095 }
10961096
1097 // function getCallHtml(fnDecl, callIndex) {1097 // function getCallHtml(fnDecl, callIndex) {
1098 // var callObj = zigAnalysis.calls[callIndex];1098 // let callObj = zigAnalysis.calls[callIndex];
10991099
1100 // // TODO make these links work1100 // // TODO make these links work
1101 // //var html = '<a href="' + navLinkCall(callObj) + '">' + escapeHtml(fnDecl.name) + '</a>(';1101 // //let html = '<a href="' + navLinkCall(callObj) + '">' + escapeHtml(fnDecl.name) + '</a>(';
1102 // var html = escapeHtml(fnDecl.name) + '(';1102 // let html = escapeHtml(fnDecl.name) + '(';
1103 // for (var arg_i = 0; arg_i < callObj.args.length; arg_i += 1) {1103 // for (let arg_i = 0; arg_i < callObj.args.length; arg_i += 1) {
1104 // if (arg_i !== 0) html += ', ';1104 // if (arg_i !== 0) html += ', ';
1105 // var argObj = callObj.args[arg_i];1105 // let argObj = callObj.args[arg_i];
1106 // html += getValueText(argObj, argObj.value, true, true);1106 // html += getValueText(argObj, argObj.value, true, true);
1107 // }1107 // }
1108 // html += ')';1108 // html += ')';
...@@ -1116,17 +1116,17 @@ var zigAnalysis;...@@ -1116,17 +1116,17 @@ var zigAnalysis;
1116 * @param {boolean} wantLink1116 * @param {boolean} wantLink
1117 */1117 */
1118 function getValueText(typeRef, value, wantHtml, wantLink) {1118 function getValueText(typeRef, value, wantHtml, wantLink) {
1119 var resolvedTypeRef = resolveValue(typeRef);1119 let resolvedTypeRef = resolveValue(typeRef);
1120 if ("comptimeExpr" in resolvedTypeRef) {1120 if ("comptimeExpr" in resolvedTypeRef) {
1121 return "[ComptimeExpr]";1121 return "[ComptimeExpr]";
1122 }1122 }
1123 console.assert("type" in resolvedTypeRef);1123 console.assert("type" in resolvedTypeRef);
1124 var typeObj = zigAnalysis.types[typeRef.type];1124 let typeObj = zigAnalysis.types[typeRef.type];
1125 switch (typeObj.kind) {1125 switch (typeObj.kind) {
1126 case typeKinds.Type:1126 case typeKinds.Type:
1127 return typeValueName(value, wantHtml, wantLink);1127 return typeValueName(value, wantHtml, wantLink);
1128 case typeKinds.Fn:1128 case typeKinds.Fn:
1129 var fnObj = zigAnalysis.fns[value];1129 let fnObj = zigAnalysis.fns[value];
1130 return typeName(fnObj, wantHtml, wantLink);1130 return typeName(fnObj, wantHtml, wantLink);
1131 case typeKinds.Int:1131 case typeKinds.Int:
1132 if (wantHtml) {1132 if (wantHtml) {
...@@ -1152,8 +1152,8 @@ var zigAnalysis;...@@ -1152,8 +1152,8 @@ var zigAnalysis;
1152 case typeKinds.Array:1152 case typeKinds.Array:
1153 {1153 {
1154 let arrayObj = /** @type {ArrayType} */(typeObj);1154 let arrayObj = /** @type {ArrayType} */(typeObj);
1155 var name = "[";1155 let name = "[";
1156 var lenName = typeValueName(arrayObj.len, wantHtml, wantSubLink);1156 let lenName = typeValueName(arrayObj.len, wantHtml, wantSubLink);
1157 if (wantHtml) {1157 if (wantHtml) {
1158 name += '<span class="tok-number">' + lenName + '</span>';1158 name += '<span class="tok-number">' + lenName + '</span>';
1159 } else {1159 } else {
...@@ -1169,7 +1169,7 @@ var zigAnalysis;...@@ -1169,7 +1169,7 @@ var zigAnalysis;
1169 case typeKinds.Pointer:1169 case typeKinds.Pointer:
1170 {1170 {
1171 let ptrObj = /** @type {PointerType} */(typeObj);1171 let ptrObj = /** @type {PointerType} */(typeObj);
1172 var name = "";1172 let name = "";
1173 switch (ptrObj.size) {1173 switch (ptrObj.size) {
1174 default:1174 default:
1175 console.log("TODO: implement unhandled pointer size case");1175 console.log("TODO: implement unhandled pointer size case");
...@@ -1243,7 +1243,7 @@ var zigAnalysis;...@@ -1243,7 +1243,7 @@ var zigAnalysis;
1243 case typeKinds.Int:1243 case typeKinds.Int:
1244 {1244 {
1245 let intObj = /** @type {NumberType} */(typeObj);1245 let intObj = /** @type {NumberType} */(typeObj);
1246 var name = intObj.name;1246 let name = intObj.name;
1247 if (wantHtml) {1247 if (wantHtml) {
1248 return '<span class="tok-type">' + name + '</span>';1248 return '<span class="tok-type">' + name + '</span>';
1249 } else {1249 } else {
...@@ -1316,8 +1316,8 @@ var zigAnalysis;...@@ -1316,8 +1316,8 @@ var zigAnalysis;
1316 // TODO: implement error union printing assuming that both1316 // TODO: implement error union printing assuming that both
1317 // payload and error union are walk results!1317 // payload and error union are walk results!
1318 // let errUnionObj = /** @type {ErrUnionType} */(typeObj);1318 // let errUnionObj = /** @type {ErrUnionType} */(typeObj);
1319 // var errSetTypeObj = /** @type {ErrSetType} */ (zigAnalysis.types[errUnionObj.err]);1319 // let errSetTypeObj = /** @type {ErrSetType} */ (zigAnalysis.types[errUnionObj.err]);
1320 // var payloadHtml = typeValueName(errUnionObj.payload, wantHtml, wantSubLink, null);1320 // let payloadHtml = typeValueName(errUnionObj.payload, wantHtml, wantSubLink, null);
1321 // if (fnDecl != null && errSetTypeObj.fn === fnDecl.value.type) {1321 // if (fnDecl != null && errSetTypeObj.fn === fnDecl.value.type) {
1322 // // function index parameter supplied and this is the inferred error set of it1322 // // function index parameter supplied and this is the inferred error set of it
1323 // return "!" + payloadHtml;1323 // return "!" + payloadHtml;
...@@ -1328,7 +1328,7 @@ var zigAnalysis;...@@ -1328,7 +1328,7 @@ var zigAnalysis;
1328 case typeKinds.Fn:1328 case typeKinds.Fn:
1329 {1329 {
1330 let fnObj = /** @type {Fn} */(typeObj);1330 let fnObj = /** @type {Fn} */(typeObj);
1331 var payloadHtml = "";1331 let payloadHtml = "";
1332 if (wantHtml) {1332 if (wantHtml) {
1333 payloadHtml += '<span class="tok-kw">fn</span>';1333 payloadHtml += '<span class="tok-kw">fn</span>';
1334 if (fnDecl != null) {1334 if (fnDecl != null) {
...@@ -1346,23 +1346,23 @@ var zigAnalysis;...@@ -1346,23 +1346,23 @@ var zigAnalysis;
1346 }1346 }
1347 payloadHtml += '(';1347 payloadHtml += '(';
1348 if (fnObj.params) {1348 if (fnObj.params) {
1349 var fields = null;1349 let fields = null;
1350 var isVarArgs = false;1350 let isVarArgs = false;
1351 var fnNode = zigAnalysis.astNodes[fnObj.src];1351 let fnNode = zigAnalysis.astNodes[fnObj.src];
1352 fields = fnNode.fields;1352 fields = fnNode.fields;
1353 isVarArgs = fnNode.varArgs;1353 isVarArgs = fnNode.varArgs;
13541354
1355 for (var i = 0; i < fnObj.params.length; i += 1) {1355 for (let i = 0; i < fnObj.params.length; i += 1) {
1356 if (i != 0) {1356 if (i != 0) {
1357 payloadHtml += ', ';1357 payloadHtml += ', ';
1358 }1358 }
13591359
1360 var value = fnObj.params[i];1360 let value = fnObj.params[i];
1361 var paramValue = resolveValue(value);1361 let paramValue = resolveValue(value);
1362 var isCte = "comptimeExpr" in paramValue;1362 let isCte = "comptimeExpr" in paramValue;
13631363
1364 if (fields != null) {1364 if (fields != null) {
1365 var paramNode = zigAnalysis.astNodes[fields[i]];1365 let paramNode = zigAnalysis.astNodes[fields[i]];
13661366
1367 if (paramNode.varArgs) {1367 if (paramNode.varArgs) {
1368 payloadHtml += '...';1368 payloadHtml += '...';
...@@ -1385,7 +1385,7 @@ var zigAnalysis;...@@ -1385,7 +1385,7 @@ var zigAnalysis;
1385 }1385 }
1386 }1386 }
13871387
1388 var paramName = paramNode.name;1388 let paramName = paramNode.name;
1389 if (paramName != null) {1389 if (paramName != null) {
1390 // skip if it matches the type name1390 // skip if it matches the type name
1391 if (!shouldSkipParamName(paramValue, paramName)) {1391 if (!shouldSkipParamName(paramValue, paramName)) {
...@@ -1402,7 +1402,7 @@ var zigAnalysis;...@@ -1402,7 +1402,7 @@ var zigAnalysis;
1402 payloadHtml += '</a>';1402 payloadHtml += '</a>';
14031403
1404 } else if ("type" in value) {1404 } else if ("type" in value) {
1405 var name = typeValueName(value, wantHtml, wantSubLink, fnDecl, linkFnNameDecl);1405 let name = typeValueName(value, wantHtml, wantSubLink, fnDecl, linkFnNameDecl);
1406 payloadHtml += '<span class="tok-kw">' + escapeHtml(name) + '</span>';1406 payloadHtml += '<span class="tok-kw">' + escapeHtml(name) + '</span>';
1407 } else if ("comptimeExpr" in value) {1407 } else if ("comptimeExpr" in value) {
1408 payloadHtml += '<span class="tok-kw">[ComptimeExpr]</span>';1408 payloadHtml += '<span class="tok-kw">[ComptimeExpr]</span>';
...@@ -1436,7 +1436,7 @@ var zigAnalysis;...@@ -1436,7 +1436,7 @@ var zigAnalysis;
14361436
1437 /** @param {Type} typeObj */1437 /** @param {Type} typeObj */
1438 function renderType(typeObj) {1438 function renderType(typeObj) {
1439 var name;1439 let name;
1440 if (rootIsStd && typeObj === zigAnalysis.types[zigAnalysis.packages[zigAnalysis.rootPkg].main]) {1440 if (rootIsStd && typeObj === zigAnalysis.types[zigAnalysis.packages[zigAnalysis.rootPkg].main]) {
1441 name = "std";1441 name = "std";
1442 } else {1442 } else {
...@@ -1456,10 +1456,10 @@ var zigAnalysis;...@@ -1456,10 +1456,10 @@ var zigAnalysis;
1456 if (errSetType.fields == null) {1456 if (errSetType.fields == null) {
1457 domFnErrorsAnyError.classList.remove("hidden");1457 domFnErrorsAnyError.classList.remove("hidden");
1458 } else {1458 } else {
1459 var errorList = [];1459 let errorList = [];
1460 for (var i = 0; i < errSetType.fields.length; i += 1) {1460 for (let i = 0; i < errSetType.fields.length; i += 1) {
1461 var errObj = errSetType.fields[i];1461 let errObj = errSetType.fields[i];
1462 //var srcObj = zigAnalysis.astNodes[errObj.src];1462 //let srcObj = zigAnalysis.astNodes[errObj.src];
1463 errorList.push(errObj);1463 errorList.push(errObj);
1464 }1464 }
1465 errorList.sort(function(a, b) {1465 errorList.sort(function(a, b) {
...@@ -1467,11 +1467,11 @@ var zigAnalysis;...@@ -1467,11 +1467,11 @@ var zigAnalysis;
1467 });1467 });
14681468
1469 resizeDomListDl(domListFnErrors, errorList.length);1469 resizeDomListDl(domListFnErrors, errorList.length);
1470 for (var i = 0; i < errorList.length; i += 1) {1470 for (let i = 0; i < errorList.length; i += 1) {
1471 var nameTdDom = domListFnErrors.children[i * 2 + 0];1471 let nameTdDom = domListFnErrors.children[i * 2 + 0];
1472 var descTdDom = domListFnErrors.children[i * 2 + 1];1472 let descTdDom = domListFnErrors.children[i * 2 + 1];
1473 nameTdDom.textContent = errorList[i].name;1473 nameTdDom.textContent = errorList[i].name;
1474 var docs = errorList[i].docs;1474 let docs = errorList[i].docs;
1475 if (docs != null) {1475 if (docs != null) {
1476 descTdDom.innerHTML = markdown(docs);1476 descTdDom.innerHTML = markdown(docs);
1477 } else {1477 } else {
...@@ -1484,25 +1484,25 @@ var zigAnalysis;...@@ -1484,25 +1484,25 @@ var zigAnalysis;
1484 }1484 }
14851485
1486// function allCompTimeFnCallsHaveTypeResult(typeIndex, value) {1486// function allCompTimeFnCallsHaveTypeResult(typeIndex, value) {
1487// var srcIndex = zigAnalysis.fns[value].src;1487// let srcIndex = zigAnalysis.fns[value].src;
1488// var calls = nodesToCallsMap[srcIndex];1488// let calls = nodesToCallsMap[srcIndex];
1489// if (calls == null) return false;1489// if (calls == null) return false;
1490// for (var i = 0; i < calls.length; i += 1) {1490// for (let i = 0; i < calls.length; i += 1) {
1491// var call = zigAnalysis.calls[calls[i]];1491// let call = zigAnalysis.calls[calls[i]];
1492// if (call.result.type !== typeTypeId) return false;1492// if (call.result.type !== typeTypeId) return false;
1493// }1493// }
1494// return true;1494// return true;
1495// }1495// }
1496//1496//
1497// function allCompTimeFnCallsResult(calls) {1497// function allCompTimeFnCallsResult(calls) {
1498// var firstTypeObj = null;1498// let firstTypeObj = null;
1499// var containerObj = {1499// let containerObj = {
1500// privDecls: [],1500// privDecls: [],
1501// };1501// };
1502// for (var callI = 0; callI < calls.length; callI += 1) {1502// for (let callI = 0; callI < calls.length; callI += 1) {
1503// var call = zigAnalysis.calls[calls[callI]];1503// let call = zigAnalysis.calls[calls[callI]];
1504// if (call.result.type !== typeTypeId) return null;1504// if (call.result.type !== typeTypeId) return null;
1505// var typeObj = zigAnalysis.types[call.result.value];1505// let typeObj = zigAnalysis.types[call.result.value];
1506// if (!typeKindIsContainer(typeObj.kind)) return null;1506// if (!typeKindIsContainer(typeObj.kind)) return null;
1507// if (firstTypeObj == null) {1507// if (firstTypeObj == null) {
1508// firstTypeObj = typeObj;1508// firstTypeObj = typeObj;
...@@ -1513,9 +1513,9 @@ var zigAnalysis;...@@ -1513,9 +1513,9 @@ var zigAnalysis;
1513//1513//
1514// if (containerObj.fields == null) {1514// if (containerObj.fields == null) {
1515// containerObj.fields = (typeObj.fields || []).concat([]);1515// containerObj.fields = (typeObj.fields || []).concat([]);
1516// } else for (var fieldI = 0; fieldI < typeObj.fields.length; fieldI += 1) {1516// } else for (let fieldI = 0; fieldI < typeObj.fields.length; fieldI += 1) {
1517// var prev = containerObj.fields[fieldI];1517// let prev = containerObj.fields[fieldI];
1518// var next = typeObj.fields[fieldI];1518// let next = typeObj.fields[fieldI];
1519// if (prev === next) continue;1519// if (prev === next) continue;
1520// if (typeof(prev) === 'object') {1520// if (typeof(prev) === 'object') {
1521// if (prev[next] == null) prev[next] = typeObj;1521// if (prev[next] == null) prev[next] = typeObj;
...@@ -1528,14 +1528,14 @@ var zigAnalysis;...@@ -1528,14 +1528,14 @@ var zigAnalysis;
1528//1528//
1529// if (containerObj.pubDecls == null) {1529// if (containerObj.pubDecls == null) {
1530// containerObj.pubDecls = (typeObj.pubDecls || []).concat([]);1530// containerObj.pubDecls = (typeObj.pubDecls || []).concat([]);
1531// } else for (var declI = 0; declI < typeObj.pubDecls.length; declI += 1) {1531// } else for (let declI = 0; declI < typeObj.pubDecls.length; declI += 1) {
1532// var prev = containerObj.pubDecls[declI];1532// let prev = containerObj.pubDecls[declI];
1533// var next = typeObj.pubDecls[declI];1533// let next = typeObj.pubDecls[declI];
1534// if (prev === next) continue;1534// if (prev === next) continue;
1535// // TODO instead of showing "examples" as the public declarations,1535// // TODO instead of showing "examples" as the public declarations,
1536// // do logic like this:1536// // do logic like this:
1537// //if (typeof(prev) !== 'object') {1537// //if (typeof(prev) !== 'object') {
1538// // var newDeclId = zigAnalysis.decls.length;1538// // let newDeclId = zigAnalysis.decls.length;
1539// // prev = clone(zigAnalysis.decls[prev]);1539// // prev = clone(zigAnalysis.decls[prev]);
1540// // prev.id = newDeclId;1540// // prev.id = newDeclId;
1541// // zigAnalysis.decls.push(prev);1541// // zigAnalysis.decls.push(prev);
...@@ -1544,8 +1544,8 @@ var zigAnalysis;...@@ -1544,8 +1544,8 @@ var zigAnalysis;
1544// //mergeDecls(prev, next, firstTypeObj, typeObj);1544// //mergeDecls(prev, next, firstTypeObj, typeObj);
1545// }1545// }
1546// }1546// }
1547// for (var declI = 0; declI < containerObj.pubDecls.length; declI += 1) {1547// for (let declI = 0; declI < containerObj.pubDecls.length; declI += 1) {
1548// var decl = containerObj.pubDecls[declI];1548// let decl = containerObj.pubDecls[declI];
1549// if (typeof(decl) === 'object') {1549// if (typeof(decl) === 'object') {
1550// containerObj.pubDecls[declI] = containerObj.pubDecls[declI].id;1550// containerObj.pubDecls[declI] = containerObj.pubDecls[declI].id;
1551// }1551// }
...@@ -1555,10 +1555,10 @@ var zigAnalysis;...@@ -1555,10 +1555,10 @@ var zigAnalysis;
15551555
15561556
1557 // function mergeDecls(declObj, nextDeclIndex, firstTypeObj, typeObj) {1557 // function mergeDecls(declObj, nextDeclIndex, firstTypeObj, typeObj) {
1558 // var nextDeclObj = zigAnalysis.decls[nextDeclIndex];1558 // let nextDeclObj = zigAnalysis.decls[nextDeclIndex];
1559 // if (declObj.type != null && nextDeclObj.type != null && declObj.type !== nextDeclObj.type) {1559 // if (declObj.type != null && nextDeclObj.type != null && declObj.type !== nextDeclObj.type) {
1560 // if (typeof(declObj.type) !== 'object') {1560 // if (typeof(declObj.type) !== 'object') {
1561 // var prevType = declObj.type;1561 // let prevType = declObj.type;
1562 // declObj.type = {};1562 // declObj.type = {};
1563 // declObj.type[prevType] = firstTypeObj;1563 // declObj.type[prevType] = firstTypeObj;
1564 // declObj.value = null;1564 // declObj.value = null;
...@@ -1569,7 +1569,7 @@ var zigAnalysis;...@@ -1569,7 +1569,7 @@ var zigAnalysis;
1569 // }1569 // }
1570 // if (declObj.value != null && nextDeclObj.value != null && declObj.value !== nextDeclObj.value) {1570 // if (declObj.value != null && nextDeclObj.value != null && declObj.value !== nextDeclObj.value) {
1571 // if (typeof(declObj.value) !== 'object') {1571 // if (typeof(declObj.value) !== 'object') {
1572 // var prevValue = declObj.value;1572 // let prevValue = declObj.value;
1573 // declObj.value = {};1573 // declObj.value = {};
1574 // declObj.value[prevValue] = firstTypeObj;1574 // declObj.value[prevValue] = firstTypeObj;
1575 // }1575 // }
...@@ -1582,8 +1582,8 @@ var zigAnalysis;...@@ -1582,8 +1582,8 @@ var zigAnalysis;
1582 /** @param {Decl} decl */1582 /** @param {Decl} decl */
1583 function renderValue(decl) {1583 function renderValue(decl) {
15841584
1585 var declTypeRef = typeOfDecl(decl);1585 let declTypeRef = typeOfDecl(decl);
1586 var declValueText = "";1586 let declValueText = "";
1587 switch(Object.keys(decl.value)[0]) {1587 switch(Object.keys(decl.value)[0]) {
1588 case "int":1588 case "int":
1589 declValueText += /** @type {{int: {value: number}}} */(decl.value).int.value;1589 declValueText += /** @type {{int: {value: number}}} */(decl.value).int.value;
...@@ -1603,7 +1603,7 @@ var zigAnalysis;...@@ -1603,7 +1603,7 @@ var zigAnalysis;
1603 escapeHtml(decl.name) + ': ' + typeValueName(declTypeRef, true, true) +1603 escapeHtml(decl.name) + ': ' + typeValueName(declTypeRef, true, true) +
1604 " = " + declValueText;1604 " = " + declValueText;
16051605
1606 var docs = zigAnalysis.astNodes[decl.src].docs;1606 let docs = zigAnalysis.astNodes[decl.src].docs;
1607 if (docs != null) {1607 if (docs != null) {
1608 domTldDocs.innerHTML = markdown(docs);1608 domTldDocs.innerHTML = markdown(docs);
1609 domTldDocs.classList.remove("hidden");1609 domTldDocs.classList.remove("hidden");
...@@ -1614,11 +1614,11 @@ var zigAnalysis;...@@ -1614,11 +1614,11 @@ var zigAnalysis;
16141614
1615 /** @param {Decl} decl */1615 /** @param {Decl} decl */
1616 function renderVar(decl) {1616 function renderVar(decl) {
1617 var declTypeRef = typeOfDecl(decl);1617 let declTypeRef = typeOfDecl(decl);
1618 domFnProtoCode.innerHTML = '<span class="tok-kw">var</span> ' +1618 domFnProtoCode.innerHTML = '<span class="tok-kw">var</span> ' +
1619 escapeHtml(decl.name) + ': ' + typeValueName(declTypeRef, true, true);1619 escapeHtml(decl.name) + ': ' + typeValueName(declTypeRef, true, true);
16201620
1621 var docs = zigAnalysis.astNodes[decl.src].docs;1621 let docs = zigAnalysis.astNodes[decl.src].docs;
1622 if (docs != null) {1622 if (docs != null) {
1623 domTldDocs.innerHTML = markdown(docs);1623 domTldDocs.innerHTML = markdown(docs);
1624 domTldDocs.classList.remove("hidden");1624 domTldDocs.classList.remove("hidden");
...@@ -1642,9 +1642,9 @@ var zigAnalysis;...@@ -1642,9 +1642,9 @@ var zigAnalysis;
1642 typesList, namespacesList, errSetsList,1642 typesList, namespacesList, errSetsList,
1643 fnsList, varsList, valsList, testsList) {1643 fnsList, varsList, valsList, testsList) {
16441644
1645 for (var i = 0; i < decls.length; i += 1) {1645 for (let i = 0; i < decls.length; i += 1) {
1646 var decl = zigAnalysis.decls[decls[i]];1646 let decl = zigAnalysis.decls[decls[i]];
1647 var declValue = resolveValue(decl.value);1647 let declValue = resolveValue(decl.value);
16481648
1649 if (decl.isTest) {1649 if (decl.isTest) {
1650 testsList.push(decl);1650 testsList.push(decl);
...@@ -1676,8 +1676,8 @@ var zigAnalysis;...@@ -1676,8 +1676,8 @@ var zigAnalysis;
1676 } else if (!("type" in declValue)){1676 } else if (!("type" in declValue)){
1677 valsList.push(decl);1677 valsList.push(decl);
1678 } else {1678 } else {
1679 var value = zigAnalysis.types[declValue.type];1679 let value = zigAnalysis.types[declValue.type];
1680 var kind = value.kind;1680 let kind = value.kind;
1681 if (kind === typeKinds.Fn) {1681 if (kind === typeKinds.Fn) {
1682 // TODO: handle CTE return types when we know their type.1682 // TODO: handle CTE return types when we know their type.
1683 const resVal = resolveValue(/** @type {Fn} */(value).ret);1683 const resVal = resolveValue(/** @type {Fn} */(value).ret);
...@@ -1704,19 +1704,19 @@ var zigAnalysis;...@@ -1704,19 +1704,19 @@ var zigAnalysis;
1704 */1704 */
1705 function renderContainer(container) {1705 function renderContainer(container) {
1706 /** @type {Decl[]} */1706 /** @type {Decl[]} */
1707 var typesList = [];1707 let typesList = [];
1708 /** @type {Decl[]} */1708 /** @type {Decl[]} */
1709 var namespacesList = [];1709 let namespacesList = [];
1710 /** @type {Decl[]} */1710 /** @type {Decl[]} */
1711 var errSetsList = [];1711 let errSetsList = [];
1712 /** @type {Decl[]} */1712 /** @type {Decl[]} */
1713 var fnsList = [];1713 let fnsList = [];
1714 /** @type {Decl[]} */1714 /** @type {Decl[]} */
1715 var varsList = [];1715 let varsList = [];
1716 /** @type {Decl[]} */1716 /** @type {Decl[]} */
1717 var valsList = [];1717 let valsList = [];
1718 /** @type {Decl[]} */1718 /** @type {Decl[]} */
1719 var testsList = [];1719 let testsList = [];
17201720
1721 categorizeDecls(container.pubDecls,1721 categorizeDecls(container.pubDecls,
1722 typesList, namespacesList, errSetsList,1722 typesList, namespacesList, errSetsList,
...@@ -1735,7 +1735,7 @@ var zigAnalysis;...@@ -1735,7 +1735,7 @@ var zigAnalysis;
1735 testsList.sort(byNameProperty);1735 testsList.sort(byNameProperty);
17361736
1737 if (container.src != null) {1737 if (container.src != null) {
1738 var docs = zigAnalysis.astNodes[container.src].docs;1738 let docs = zigAnalysis.astNodes[container.src].docs;
1739 if (docs != null) {1739 if (docs != null) {
1740 domTldDocs.innerHTML = markdown(docs);1740 domTldDocs.innerHTML = markdown(docs);
1741 domTldDocs.classList.remove("hidden");1741 domTldDocs.classList.remove("hidden");
...@@ -1744,10 +1744,10 @@ var zigAnalysis;...@@ -1744,10 +1744,10 @@ var zigAnalysis;
17441744
1745 if (typesList.length !== 0) {1745 if (typesList.length !== 0) {
1746 resizeDomList(domListTypes, typesList.length, '<li><a href="#"></a></li>');1746 resizeDomList(domListTypes, typesList.length, '<li><a href="#"></a></li>');
1747 for (var i = 0; i < typesList.length; i += 1) {1747 for (let i = 0; i < typesList.length; i += 1) {
1748 var liDom = domListTypes.children[i];1748 let liDom = domListTypes.children[i];
1749 var aDom = liDom.children[0];1749 let aDom = liDom.children[0];
1750 var decl = typesList[i];1750 let decl = typesList[i];
1751 aDom.textContent = decl.name;1751 aDom.textContent = decl.name;
1752 aDom.setAttribute('href', navLinkDecl(decl.name));1752 aDom.setAttribute('href', navLinkDecl(decl.name));
1753 }1753 }
...@@ -1755,10 +1755,10 @@ var zigAnalysis;...@@ -1755,10 +1755,10 @@ var zigAnalysis;
1755 }1755 }
1756 if (namespacesList.length !== 0) {1756 if (namespacesList.length !== 0) {
1757 resizeDomList(domListNamespaces, namespacesList.length, '<li><a href="#"></a></li>');1757 resizeDomList(domListNamespaces, namespacesList.length, '<li><a href="#"></a></li>');
1758 for (var i = 0; i < namespacesList.length; i += 1) {1758 for (let i = 0; i < namespacesList.length; i += 1) {
1759 var liDom = domListNamespaces.children[i];1759 let liDom = domListNamespaces.children[i];
1760 var aDom = liDom.children[0];1760 let aDom = liDom.children[0];
1761 var decl = namespacesList[i];1761 let decl = namespacesList[i];
1762 aDom.textContent = decl.name;1762 aDom.textContent = decl.name;
1763 aDom.setAttribute('href', navLinkDecl(decl.name));1763 aDom.setAttribute('href', navLinkDecl(decl.name));
1764 }1764 }
...@@ -1767,10 +1767,10 @@ var zigAnalysis;...@@ -1767,10 +1767,10 @@ var zigAnalysis;
17671767
1768 if (errSetsList.length !== 0) {1768 if (errSetsList.length !== 0) {
1769 resizeDomList(domListErrSets, errSetsList.length, '<li><a href="#"></a></li>');1769 resizeDomList(domListErrSets, errSetsList.length, '<li><a href="#"></a></li>');
1770 for (var i = 0; i < errSetsList.length; i += 1) {1770 for (let i = 0; i < errSetsList.length; i += 1) {
1771 var liDom = domListErrSets.children[i];1771 let liDom = domListErrSets.children[i];
1772 var aDom = liDom.children[0];1772 let aDom = liDom.children[0];
1773 var decl = errSetsList[i];1773 let decl = errSetsList[i];
1774 aDom.textContent = decl.name;1774 aDom.textContent = decl.name;
1775 aDom.setAttribute('href', navLinkDecl(decl.name));1775 aDom.setAttribute('href', navLinkDecl(decl.name));
1776 }1776 }
...@@ -1779,19 +1779,19 @@ var zigAnalysis;...@@ -1779,19 +1779,19 @@ var zigAnalysis;
17791779
1780 if (fnsList.length !== 0) {1780 if (fnsList.length !== 0) {
1781 resizeDomList(domListFns, fnsList.length, '<tr><td></td><td></td></tr>');1781 resizeDomList(domListFns, fnsList.length, '<tr><td></td><td></td></tr>');
1782 for (var i = 0; i < fnsList.length; i += 1) {1782 for (let i = 0; i < fnsList.length; i += 1) {
1783 var decl = fnsList[i];1783 let decl = fnsList[i];
1784 var trDom = domListFns.children[i];1784 let trDom = domListFns.children[i];
17851785
1786 var tdFnCode = trDom.children[0];1786 let tdFnCode = trDom.children[0];
1787 var tdDesc = trDom.children[1];1787 let tdDesc = trDom.children[1];
17881788
1789 var declType = resolveValue(decl.value);1789 let declType = resolveValue(decl.value);
1790 console.assert("type" in declType);1790 console.assert("type" in declType);
17911791
1792 tdFnCode.innerHTML = typeValueName(declType, true, true, decl, navLinkDecl(decl.name));1792 tdFnCode.innerHTML = typeValueName(declType, true, true, decl, navLinkDecl(decl.name));
17931793
1794 var docs = zigAnalysis.astNodes[decl.src].docs;1794 let docs = zigAnalysis.astNodes[decl.src].docs;
1795 if (docs != null) {1795 if (docs != null) {
1796 tdDesc.innerHTML = shortDescMarkdown(docs);1796 tdDesc.innerHTML = shortDescMarkdown(docs);
1797 } else {1797 } else {
...@@ -1801,29 +1801,29 @@ var zigAnalysis;...@@ -1801,29 +1801,29 @@ var zigAnalysis;
1801 domSectFns.classList.remove("hidden");1801 domSectFns.classList.remove("hidden");
1802 }1802 }
18031803
1804 var containerNode = zigAnalysis.astNodes[container.src];1804 let containerNode = zigAnalysis.astNodes[container.src];
1805 if (containerNode.fields) {1805 if (containerNode.fields) {
1806 resizeDomList(domListFields, containerNode.fields.length, '<div></div>');1806 resizeDomList(domListFields, containerNode.fields.length, '<div></div>');
18071807
1808 for (var i = 0; i < containerNode.fields.length; i += 1) {1808 for (let i = 0; i < containerNode.fields.length; i += 1) {
1809 var fieldNode = zigAnalysis.astNodes[containerNode.fields[i]];1809 let fieldNode = zigAnalysis.astNodes[containerNode.fields[i]];
1810 var divDom = domListFields.children[i];1810 let divDom = domListFields.children[i];
1811 let fieldName = /** @type {string} */(fieldNode.name);1811 let fieldName = /** @type {string} */(fieldNode.name);
18121812
1813 var html = '<div class="mobile-scroll-container"><pre class="scroll-item">' + escapeHtml(fieldName);1813 let html = '<div class="mobile-scroll-container"><pre class="scroll-item">' + escapeHtml(fieldName);
18141814
1815 if (container.kind === typeKinds.Enum) {1815 if (container.kind === typeKinds.Enum) {
1816 html += ' = <span class="tok-number">' + fieldName + '</span>';1816 html += ' = <span class="tok-number">' + fieldName + '</span>';
1817 } else {1817 } else {
1818 var field = container.fields[i];1818 let field = container.fields[i];
1819 html += ": ";1819 html += ": ";
1820 var name = typeValueName(field, false, false);1820 let name = typeValueName(field, false, false);
1821 html += '<span class="tok-kw">'+ name +'</span>';1821 html += '<span class="tok-kw">'+ name +'</span>';
1822 }1822 }
18231823
1824 html += ',</pre></div>';1824 html += ',</pre></div>';
18251825
1826 var docs = fieldNode.docs;1826 let docs = fieldNode.docs;
1827 if (docs != null) {1827 if (docs != null) {
1828 html += markdown(docs);1828 html += markdown(docs);
1829 }1829 }
...@@ -1835,21 +1835,21 @@ var zigAnalysis;...@@ -1835,21 +1835,21 @@ var zigAnalysis;
1835 if (varsList.length !== 0) {1835 if (varsList.length !== 0) {
1836 resizeDomList(domListGlobalVars, varsList.length,1836 resizeDomList(domListGlobalVars, varsList.length,
1837 '<tr><td><a href="#"></a></td><td></td><td></td></tr>');1837 '<tr><td><a href="#"></a></td><td></td><td></td></tr>');
1838 for (var i = 0; i < varsList.length; i += 1) {1838 for (let i = 0; i < varsList.length; i += 1) {
1839 var decl = varsList[i];1839 let decl = varsList[i];
1840 var trDom = domListGlobalVars.children[i];1840 let trDom = domListGlobalVars.children[i];
18411841
1842 var tdName = trDom.children[0];1842 let tdName = trDom.children[0];
1843 var tdNameA = tdName.children[0];1843 let tdNameA = tdName.children[0];
1844 var tdType = trDom.children[1];1844 let tdType = trDom.children[1];
1845 var tdDesc = trDom.children[2];1845 let tdDesc = trDom.children[2];
18461846
1847 tdNameA.setAttribute('href', navLinkDecl(decl.name));1847 tdNameA.setAttribute('href', navLinkDecl(decl.name));
1848 tdNameA.textContent = decl.name;1848 tdNameA.textContent = decl.name;
18491849
1850 tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true);1850 tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true);
18511851
1852 var docs = zigAnalysis.astNodes[decl.src].docs;1852 let docs = zigAnalysis.astNodes[decl.src].docs;
1853 if (docs != null) {1853 if (docs != null) {
1854 tdDesc.innerHTML = shortDescMarkdown(docs);1854 tdDesc.innerHTML = shortDescMarkdown(docs);
1855 } else {1855 } else {
...@@ -1862,21 +1862,21 @@ var zigAnalysis;...@@ -1862,21 +1862,21 @@ var zigAnalysis;
1862 if (valsList.length !== 0) {1862 if (valsList.length !== 0) {
1863 resizeDomList(domListValues, valsList.length,1863 resizeDomList(domListValues, valsList.length,
1864 '<tr><td><a href="#"></a></td><td></td><td></td></tr>');1864 '<tr><td><a href="#"></a></td><td></td><td></td></tr>');
1865 for (var i = 0; i < valsList.length; i += 1) {1865 for (let i = 0; i < valsList.length; i += 1) {
1866 var decl = valsList[i];1866 let decl = valsList[i];
1867 var trDom = domListValues.children[i];1867 let trDom = domListValues.children[i];
18681868
1869 var tdName = trDom.children[0];1869 let tdName = trDom.children[0];
1870 var tdNameA = tdName.children[0];1870 let tdNameA = tdName.children[0];
1871 var tdType = trDom.children[1];1871 let tdType = trDom.children[1];
1872 var tdDesc = trDom.children[2];1872 let tdDesc = trDom.children[2];
18731873
1874 tdNameA.setAttribute('href', navLinkDecl(decl.name));1874 tdNameA.setAttribute('href', navLinkDecl(decl.name));
1875 tdNameA.textContent = decl.name;1875 tdNameA.textContent = decl.name;
18761876
1877 tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true);1877 tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true);
18781878
1879 var docs = zigAnalysis.astNodes[decl.src].docs;1879 let docs = zigAnalysis.astNodes[decl.src].docs;
1880 if (docs != null) {1880 if (docs != null) {
1881 tdDesc.innerHTML = shortDescMarkdown(docs);1881 tdDesc.innerHTML = shortDescMarkdown(docs);
1882 } else {1882 } else {
...@@ -1889,21 +1889,21 @@ var zigAnalysis;...@@ -1889,21 +1889,21 @@ var zigAnalysis;
1889 if (testsList.length !== 0) {1889 if (testsList.length !== 0) {
1890 resizeDomList(domListTests, testsList.length,1890 resizeDomList(domListTests, testsList.length,
1891 '<tr><td><a href="#"></a></td><td></td><td></td></tr>');1891 '<tr><td><a href="#"></a></td><td></td><td></td></tr>');
1892 for (var i = 0; i < testsList.length; i += 1) {1892 for (let i = 0; i < testsList.length; i += 1) {
1893 var decl = testsList[i];1893 let decl = testsList[i];
1894 var trDom = domListTests.children[i];1894 let trDom = domListTests.children[i];
18951895
1896 var tdName = trDom.children[0];1896 let tdName = trDom.children[0];
1897 var tdNameA = tdName.children[0];1897 let tdNameA = tdName.children[0];
1898 var tdType = trDom.children[1];1898 let tdType = trDom.children[1];
1899 var tdDesc = trDom.children[2];1899 let tdDesc = trDom.children[2];
19001900
1901 tdNameA.setAttribute('href', navLinkDecl(decl.name));1901 tdNameA.setAttribute('href', navLinkDecl(decl.name));
1902 tdNameA.textContent = decl.name;1902 tdNameA.textContent = decl.name;
19031903
1904 tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true);1904 tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true);
19051905
1906 var docs = zigAnalysis.astNodes[decl.src].docs;1906 let docs = zigAnalysis.astNodes[decl.src].docs;
1907 if (docs != null) {1907 if (docs != null) {
1908 tdDesc.innerHTML = shortDescMarkdown(docs);1908 tdDesc.innerHTML = shortDescMarkdown(docs);
1909 } else {1909 } else {
...@@ -1930,33 +1930,33 @@ var zigAnalysis;...@@ -1930,33 +1930,33 @@ var zigAnalysis;
1930 }1930 }
19311931
1932 function detectRootIsStd() {1932 function detectRootIsStd() {
1933 var rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];1933 let rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];
1934 if (rootPkg.table["std"] == null) {1934 if (rootPkg.table["std"] == null) {
1935 // no std mapped into the root package1935 // no std mapped into the root package
1936 return false;1936 return false;
1937 }1937 }
1938 var stdPkg = zigAnalysis.packages[rootPkg.table["std"]];1938 let stdPkg = zigAnalysis.packages[rootPkg.table["std"]];
1939 if (stdPkg == null) return false;1939 if (stdPkg == null) return false;
1940 return rootPkg.file === stdPkg.file;1940 return rootPkg.file === stdPkg.file;
1941 }1941 }
19421942
1943 function indexTypeKinds() {1943 function indexTypeKinds() {
1944 var map = /** @type {Record<string, number>} */({});1944 let map = /** @type {Record<string, number>} */({});
1945 for (var i = 0; i < zigAnalysis.typeKinds.length; i += 1) {1945 for (let i = 0; i < zigAnalysis.typeKinds.length; i += 1) {
1946 map[zigAnalysis.typeKinds[i]] = i;1946 map[zigAnalysis.typeKinds[i]] = i;
1947 }1947 }
1948 // This is just for debugging purposes, not needed to function1948 // This is just for debugging purposes, not needed to function
1949 var assertList = ["Type","Void","Bool","NoReturn","Int","Float","Pointer","Array","Struct",1949 let assertList = ["Type","Void","Bool","NoReturn","Int","Float","Pointer","Array","Struct",
1950 "ComptimeFloat","ComptimeInt","Undefined","Null","Optional","ErrorUnion","ErrorSet","Enum",1950 "ComptimeFloat","ComptimeInt","Undefined","Null","Optional","ErrorUnion","ErrorSet","Enum",
1951 "Union","Fn","BoundFn","Opaque","Frame","AnyFrame","Vector","EnumLiteral"];1951 "Union","Fn","BoundFn","Opaque","Frame","AnyFrame","Vector","EnumLiteral"];
1952 for (var i = 0; i < assertList.length; i += 1) {1952 for (let i = 0; i < assertList.length; i += 1) {
1953 if (map[assertList[i]] == null) throw new Error("No type kind '" + assertList[i] + "' found");1953 if (map[assertList[i]] == null) throw new Error("No type kind '" + assertList[i] + "' found");
1954 }1954 }
1955 return map;1955 return map;
1956 }1956 }
19571957
1958 function findTypeTypeId() {1958 function findTypeTypeId() {
1959 for (var i = 0; i < zigAnalysis.types.length; i += 1) {1959 for (let i = 0; i < zigAnalysis.types.length; i += 1) {
1960 if (zigAnalysis.types[i].kind == typeKinds.Type) {1960 if (zigAnalysis.types[i].kind == typeKinds.Type) {
1961 return i;1961 return i;
1962 }1962 }
...@@ -1977,14 +1977,14 @@ var zigAnalysis;...@@ -1977,14 +1977,14 @@ var zigAnalysis;
1977 curNavSearch = "";1977 curNavSearch = "";
19781978
1979 if (location.hash[0] === '#' && location.hash.length > 1) {1979 if (location.hash[0] === '#' && location.hash.length > 1) {
1980 var query = location.hash.substring(1);1980 let query = location.hash.substring(1);
1981 if (query[0] === '*') {1981 if (query[0] === '*') {
1982 curNav.showPrivDecls = true;1982 curNav.showPrivDecls = true;
1983 query = query.substring(1);1983 query = query.substring(1);
1984 }1984 }
19851985
1986 var qpos = query.indexOf("?");1986 let qpos = query.indexOf("?");
1987 var nonSearchPart;1987 let nonSearchPart;
1988 if (qpos === -1) {1988 if (qpos === -1) {
1989 nonSearchPart = query;1989 nonSearchPart = query;
1990 } else {1990 } else {
...@@ -1992,7 +1992,7 @@ var zigAnalysis;...@@ -1992,7 +1992,7 @@ var zigAnalysis;
1992 curNavSearch = decodeURIComponent(query.substring(qpos + 1));1992 curNavSearch = decodeURIComponent(query.substring(qpos + 1));
1993 }1993 }
19941994
1995 var parts = nonSearchPart.split(";");1995 let parts = nonSearchPart.split(";");
1996 curNav.pkgNames = decodeURIComponent(parts[0]).split(".");1996 curNav.pkgNames = decodeURIComponent(parts[0]).split(".");
1997 if (parts[1] != null) {1997 if (parts[1] != null) {
1998 curNav.declNames = decodeURIComponent(parts[1]).split(".");1998 curNav.declNames = decodeURIComponent(parts[1]).split(".");
...@@ -2022,17 +2022,17 @@ var zigAnalysis;...@@ -2022,17 +2022,17 @@ var zigAnalysis;
2022 */2022 */
2023 function findSubDecl(parentType, childName) {2023 function findSubDecl(parentType, childName) {
2024 if (!parentType.pubDecls) return null;2024 if (!parentType.pubDecls) return null;
2025 for (var i = 0; i < parentType.pubDecls.length; i += 1) {2025 for (let i = 0; i < parentType.pubDecls.length; i += 1) {
2026 var declIndex = parentType.pubDecls[i];2026 let declIndex = parentType.pubDecls[i];
2027 var childDecl = zigAnalysis.decls[declIndex];2027 let childDecl = zigAnalysis.decls[declIndex];
2028 if (childDecl.name === childName) {2028 if (childDecl.name === childName) {
2029 return childDecl;2029 return childDecl;
2030 }2030 }
2031 }2031 }
2032 if (!parentType.privDecls) return null;2032 if (!parentType.privDecls) return null;
2033 for (var i = 0; i < parentType.privDecls.length; i += 1) {2033 for (let i = 0; i < parentType.privDecls.length; i += 1) {
2034 var declIndex = parentType.privDecls[i];2034 let declIndex = parentType.privDecls[i];
2035 var childDecl = zigAnalysis.decls[declIndex];2035 let childDecl = zigAnalysis.decls[declIndex];
2036 if (childDecl.name === childName) {2036 if (childDecl.name === childName) {
2037 return childDecl;2037 return childDecl;
2038 }2038 }
...@@ -2044,23 +2044,23 @@ var zigAnalysis;...@@ -2044,23 +2044,23 @@ var zigAnalysis;
20442044
20452045
2046 function computeCanonicalPackagePaths() {2046 function computeCanonicalPackagePaths() {
2047 var list = new Array(zigAnalysis.packages.length);2047 let list = new Array(zigAnalysis.packages.length);
2048 // Now we try to find all the packages from root.2048 // Now we try to find all the packages from root.
2049 var rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];2049 let rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg];
2050 // Breadth-first to keep the path shortest possible.2050 // Breadth-first to keep the path shortest possible.
2051 var stack = [{2051 let stack = [{
2052 path: /** @type {string[]} */([]),2052 path: /** @type {string[]} */([]),
2053 pkg: rootPkg,2053 pkg: rootPkg,
2054 }];2054 }];
2055 while (stack.length !== 0) {2055 while (stack.length !== 0) {
2056 var item = /** @type {{path: string[], pkg: Package}} */(stack.shift());2056 let item = /** @type {{path: string[], pkg: Package}} */(stack.shift());
2057 for (var key in item.pkg.table) {2057 for (let key in item.pkg.table) {
2058 var childPkgIndex = item.pkg.table[key];2058 let childPkgIndex = item.pkg.table[key];
2059 if (list[childPkgIndex] != null) continue;2059 if (list[childPkgIndex] != null) continue;
2060 var childPkg = zigAnalysis.packages[childPkgIndex];2060 let childPkg = zigAnalysis.packages[childPkgIndex];
2061 if (childPkg == null) continue;2061 if (childPkg == null) continue;
20622062
2063 var newPath = item.path.concat([key])2063 let newPath = item.path.concat([key])
2064 list[childPkgIndex] = newPath;2064 list[childPkgIndex] = newPath;
2065 stack.push({2065 stack.push({
2066 path: newPath,2066 path: newPath,
...@@ -2074,37 +2074,37 @@ var zigAnalysis;...@@ -2074,37 +2074,37 @@ var zigAnalysis;
20742074
2075 /** @return {CanonDecl[]} */2075 /** @return {CanonDecl[]} */
2076 function computeCanonDeclPaths() {2076 function computeCanonDeclPaths() {
2077 var list = new Array(zigAnalysis.decls.length);2077 let list = new Array(zigAnalysis.decls.length);
2078 canonTypeDecls = new Array(zigAnalysis.types.length);2078 canonTypeDecls = new Array(zigAnalysis.types.length);
20792079
2080 for (var pkgI = 0; pkgI < zigAnalysis.packages.length; pkgI += 1) {2080 for (let pkgI = 0; pkgI < zigAnalysis.packages.length; pkgI += 1) {
2081 if (pkgI === zigAnalysis.rootPkg && rootIsStd) continue;2081 if (pkgI === zigAnalysis.rootPkg && rootIsStd) continue;
2082 var pkg = zigAnalysis.packages[pkgI];2082 let pkg = zigAnalysis.packages[pkgI];
2083 var pkgNames = canonPkgPaths[pkgI];2083 let pkgNames = canonPkgPaths[pkgI];
2084 var stack = [{2084 let stack = [{
2085 declNames: /** @type {string[]} */([]),2085 declNames: /** @type {string[]} */([]),
2086 type: zigAnalysis.types[pkg.main],2086 type: zigAnalysis.types[pkg.main],
2087 }];2087 }];
2088 while (stack.length !== 0) {2088 while (stack.length !== 0) {
2089 var item = /** @type {{declNames: string[], type: Type}} */(stack.shift());2089 let item = /** @type {{declNames: string[], type: Type}} */(stack.shift());
20902090
2091 if (isContainerType(item.type)) {2091 if (isContainerType(item.type)) {
2092 let t = /** @type {ContainerType} */(item.type);2092 let t = /** @type {ContainerType} */(item.type);
20932093
2094 var len = t.pubDecls ? t.pubDecls.length : 0;2094 let len = t.pubDecls ? t.pubDecls.length : 0;
2095 for (var declI = 0; declI < len; declI += 1) {2095 for (let declI = 0; declI < len; declI += 1) {
2096 var mainDeclIndex = t.pubDecls[declI];2096 let mainDeclIndex = t.pubDecls[declI];
2097 if (list[mainDeclIndex] != null) continue;2097 if (list[mainDeclIndex] != null) continue;
20982098
2099 var decl = zigAnalysis.decls[mainDeclIndex];2099 let decl = zigAnalysis.decls[mainDeclIndex];
2100 var declVal = resolveValue(decl.value);2100 let declVal = resolveValue(decl.value);
2101 var declNames = item.declNames.concat([decl.name]);2101 let declNames = item.declNames.concat([decl.name]);
2102 list[mainDeclIndex] = {2102 list[mainDeclIndex] = {
2103 pkgNames: pkgNames,2103 pkgNames: pkgNames,
2104 declNames: declNames,2104 declNames: declNames,
2105 };2105 };
2106 if ("type" in declVal) {2106 if ("type" in declVal) {
2107 var value = zigAnalysis.types[declVal.type];2107 let value = zigAnalysis.types[declVal.type];
2108 if (declCanRepresentTypeKind(value.kind))2108 if (declCanRepresentTypeKind(value.kind))
2109 {2109 {
2110 canonTypeDecls[declVal.type] = mainDeclIndex;2110 canonTypeDecls[declVal.type] = mainDeclIndex;
...@@ -2149,8 +2149,8 @@ var zigAnalysis;...@@ -2149,8 +2149,8 @@ var zigAnalysis;
21492149
2150 /** @param {string} docs */2150 /** @param {string} docs */
2151 function shortDescMarkdown(docs) {2151 function shortDescMarkdown(docs) {
2152 var parts = docs.trim().split("\n");2152 let parts = docs.trim().split("\n");
2153 var firstLine = parts[0];2153 let firstLine = parts[0];
2154 return markdown(firstLine);2154 return markdown(firstLine);
2155 }2155 }
21562156
...@@ -2172,9 +2172,9 @@ var zigAnalysis;...@@ -2172,9 +2172,9 @@ var zigAnalysis;
2172 // Dissect lines and determine the type for each line.2172 // Dissect lines and determine the type for each line.
2173 // Also computes indentation level and removes unnecessary whitespace2173 // Also computes indentation level and removes unnecessary whitespace
21742174
2175 var is_reading_code = false;2175 let is_reading_code = false;
2176 var code_indent = 0;2176 let code_indent = 0;
2177 for (var line_no = 0; line_no < raw_lines.length; line_no++) {2177 for (let line_no = 0; line_no < raw_lines.length; line_no++) {
2178 const raw_line = raw_lines[line_no];2178 const raw_line = raw_lines[line_no];
21792179
2180 const line = {2180 const line = {
...@@ -2292,8 +2292,8 @@ var zigAnalysis;...@@ -2292,8 +2292,8 @@ var zigAnalysis;
2292 /** @type {Array<Fmt>} */2292 /** @type {Array<Fmt>} */
2293 const stack = [];2293 const stack = [];
22942294
2295 var innerHTML = "";2295 let innerHTML = "";
2296 var currentRun = "";2296 let currentRun = "";
22972297
2298 function flushRun() {2298 function flushRun() {
2299 if (currentRun != "") {2299 if (currentRun != "") {
...@@ -2302,11 +2302,11 @@ var zigAnalysis;...@@ -2302,11 +2302,11 @@ var zigAnalysis;
2302 currentRun = "";2302 currentRun = "";
2303 }2303 }
23042304
2305 var parsing_code = false;2305 let parsing_code = false;
2306 var codetag = "";2306 let codetag = "";
2307 var in_code = false;2307 let in_code = false;
23082308
2309 for (var i = 0; i < innerText.length; i++) {2309 for (let i = 0; i < innerText.length; i++) {
23102310
2311 if (parsing_code && in_code) {2311 if (parsing_code && in_code) {
2312 if (innerText.substr(i, codetag.length) == codetag) {2312 if (innerText.substr(i, codetag.length) == codetag) {
...@@ -2340,7 +2340,7 @@ var zigAnalysis;...@@ -2340,7 +2340,7 @@ var zigAnalysis;
2340 currentRun += innerText[i];2340 currentRun += innerText[i];
2341 in_code = true;2341 in_code = true;
2342 } else {2342 } else {
2343 var any = false;2343 let any = false;
2344 for (let idx = /** @type {number} */(stack.length > 0 ? -1 : 0); idx < formats.length; idx++) {2344 for (let idx = /** @type {number} */(stack.length > 0 ? -1 : 0); idx < formats.length; idx++) {
2345 const fmt = idx >= 0 ? formats[idx] : stack[stack.length - 1];2345 const fmt = idx >= 0 ? formats[idx] : stack[stack.length - 1];
2346 if (innerText.substr(i, fmt.marker.length) == fmt.marker) {2346 if (innerText.substr(i, fmt.marker.length) == fmt.marker) {
...@@ -2414,8 +2414,8 @@ var zigAnalysis;...@@ -2414,8 +2414,8 @@ var zigAnalysis;
2414 }2414 }
2415 }2415 }
24162416
2417 var html = "";2417 let html = "";
2418 for (var line_no = 0; line_no < lines.length; line_no++) {2418 for (let line_no = 0; line_no < lines.length; line_no++) {
2419 const line = lines[line_no];2419 const line = lines[line_no];
24202420
24212421
...@@ -2473,12 +2473,12 @@ var zigAnalysis;...@@ -2473,12 +2473,12 @@ var zigAnalysis;
2473 return;2473 return;
2474 }2474 }
24752475
2476 var liDom = domListSearchResults.children[curSearchIndex];2476 let liDom = domListSearchResults.children[curSearchIndex];
2477 if (liDom == null && domListSearchResults.children.length !== 0) {2477 if (liDom == null && domListSearchResults.children.length !== 0) {
2478 liDom = domListSearchResults.children[0];2478 liDom = domListSearchResults.children[0];
2479 }2479 }
2480 if (liDom != null) {2480 if (liDom != null) {
2481 var aDom = liDom.children[0];2481 let aDom = liDom.children[0];
2482 location.href = /** @type {string} */(aDom.getAttribute("href"));2482 location.href = /** @type {string} */(aDom.getAttribute("href"));
2483 curSearchIndex = -1;2483 curSearchIndex = -1;
2484 }2484 }
...@@ -2490,10 +2490,10 @@ var zigAnalysis;...@@ -2490,10 +2490,10 @@ var zigAnalysis;
2490 switch (getKeyString(ev)) {2490 switch (getKeyString(ev)) {
2491 case "Enter":2491 case "Enter":
2492 // detect if this search changes anything2492 // detect if this search changes anything
2493 var terms1 = getSearchTerms();2493 let terms1 = getSearchTerms();
2494 startSearch();2494 startSearch();
2495 updateCurNav();2495 updateCurNav();
2496 var terms2 = getSearchTerms();2496 let terms2 = getSearchTerms();
2497 // we might have to wait for onHashChange to trigger2497 // we might have to wait for onHashChange to trigger
2498 imFeelingLucky = (terms1.join(' ') !== terms2.join(' '));2498 imFeelingLucky = (terms1.join(' ') !== terms2.join(' '));
2499 if (!imFeelingLucky) activateSelectedResult();2499 if (!imFeelingLucky) activateSelectedResult();
...@@ -2552,8 +2552,8 @@ var zigAnalysis;...@@ -2552,8 +2552,8 @@ var zigAnalysis;
25522552
2553 /** @param {KeyboardEvent} ev */2553 /** @param {KeyboardEvent} ev */
2554 function getKeyString(ev) {2554 function getKeyString(ev) {
2555 var name;2555 let name;
2556 var ignoreShift = false;2556 let ignoreShift = false;
2557 switch (ev.which) {2557 switch (ev.which) {
2558 case 13:2558 case 13:
2559 name = "Enter";2559 name = "Enter";
...@@ -2622,42 +2622,42 @@ function startAsyncSearch() {...@@ -2622,42 +2622,42 @@ function startAsyncSearch() {
2622}2622}
2623function startSearch() {2623function startSearch() {
2624 clearAsyncSearch();2624 clearAsyncSearch();
2625 var oldHash = location.hash;2625 let oldHash = location.hash;
2626 var parts = oldHash.split("?");2626 let parts = oldHash.split("?");
2627 var newPart2 = (domSearch.value === "") ? "" : ("?" + domSearch.value);2627 let newPart2 = (domSearch.value === "") ? "" : ("?" + domSearch.value);
2628 location.hash = (parts.length === 1) ? (oldHash + newPart2) : (parts[0] + newPart2);2628 location.hash = (parts.length === 1) ? (oldHash + newPart2) : (parts[0] + newPart2);
2629}2629}
2630function getSearchTerms() {2630function getSearchTerms() {
2631 var list = curNavSearch.trim().split(/[ \r\n\t]+/);2631 let list = curNavSearch.trim().split(/[ \r\n\t]+/);
2632 list.sort();2632 list.sort();
2633 return list;2633 return list;
2634}2634}
2635function renderSearch() {2635function renderSearch() {
2636 var matchedItems = [];2636 let matchedItems = [];
2637 var ignoreCase = (curNavSearch.toLowerCase() === curNavSearch);2637 let ignoreCase = (curNavSearch.toLowerCase() === curNavSearch);
2638 var terms = getSearchTerms();2638 let terms = getSearchTerms();
26392639
2640 decl_loop: for (var declIndex = 0; declIndex < zigAnalysis.decls.length; declIndex += 1) {2640 decl_loop: for (let declIndex = 0; declIndex < zigAnalysis.decls.length; declIndex += 1) {
2641 var canonPath = getCanonDeclPath(declIndex);2641 let canonPath = getCanonDeclPath(declIndex);
2642 if (canonPath == null) continue;2642 if (canonPath == null) continue;
26432643
2644 var decl = zigAnalysis.decls[declIndex];2644 let decl = zigAnalysis.decls[declIndex];
2645 var lastPkgName = canonPath.pkgNames[canonPath.pkgNames.length - 1];2645 let lastPkgName = canonPath.pkgNames[canonPath.pkgNames.length - 1];
2646 var fullPathSearchText = lastPkgName + "." + canonPath.declNames.join('.');2646 let fullPathSearchText = lastPkgName + "." + canonPath.declNames.join('.');
2647 var astNode = zigAnalysis.astNodes[decl.src];2647 let astNode = zigAnalysis.astNodes[decl.src];
2648 var fileAndDocs = zigAnalysis.files[astNode.file];2648 let fileAndDocs = zigAnalysis.files[astNode.file];
2649 if (astNode.docs != null) {2649 if (astNode.docs != null) {
2650 fileAndDocs += "\n" + astNode.docs;2650 fileAndDocs += "\n" + astNode.docs;
2651 }2651 }
2652 var fullPathSearchTextLower = fullPathSearchText;2652 let fullPathSearchTextLower = fullPathSearchText;
2653 if (ignoreCase) {2653 if (ignoreCase) {
2654 fullPathSearchTextLower = fullPathSearchTextLower.toLowerCase();2654 fullPathSearchTextLower = fullPathSearchTextLower.toLowerCase();
2655 fileAndDocs = fileAndDocs.toLowerCase();2655 fileAndDocs = fileAndDocs.toLowerCase();
2656 }2656 }
26572657
2658 var points = 0;2658 let points = 0;
2659 for (var termIndex = 0; termIndex < terms.length; termIndex += 1) {2659 for (let termIndex = 0; termIndex < terms.length; termIndex += 1) {
2660 var term = terms[termIndex];2660 let term = terms[termIndex];
26612661
2662 // exact, case sensitive match of full decl path2662 // exact, case sensitive match of full decl path
2663 if (fullPathSearchText === term) {2663 if (fullPathSearchText === term) {
...@@ -2693,16 +2693,16 @@ function renderSearch() {...@@ -2693,16 +2693,16 @@ function renderSearch() {
2693 resizeDomList(domListSearchResults, matchedItems.length, '<li><a href="#"></a></li>');2693 resizeDomList(domListSearchResults, matchedItems.length, '<li><a href="#"></a></li>');
26942694
2695 matchedItems.sort(function(a, b) {2695 matchedItems.sort(function(a, b) {
2696 var cmp = operatorCompare(b.points, a.points);2696 let cmp = operatorCompare(b.points, a.points);
2697 if (cmp != 0) return cmp;2697 if (cmp != 0) return cmp;
2698 return operatorCompare(a.decl.name, b.decl.name);2698 return operatorCompare(a.decl.name, b.decl.name);
2699 });2699 });
27002700
2701 for (var i = 0; i < matchedItems.length; i += 1) {2701 for (let i = 0; i < matchedItems.length; i += 1) {
2702 var liDom = domListSearchResults.children[i];2702 let liDom = domListSearchResults.children[i];
2703 var aDom = liDom.children[0];2703 let aDom = liDom.children[0];
2704 var match = matchedItems[i];2704 let match = matchedItems[i];
2705 var lastPkgName = match.path.pkgNames[match.path.pkgNames.length - 1];2705 let lastPkgName = match.path.pkgNames[match.path.pkgNames.length - 1];
2706 aDom.textContent = lastPkgName + "." + match.path.declNames.join('.');2706 aDom.textContent = lastPkgName + "." + match.path.declNames.join('.');
2707 aDom.setAttribute('href', navLink(match.path.pkgNames, match.path.declNames));2707 aDom.setAttribute('href', navLink(match.path.pkgNames, match.path.declNames));
2708 }2708 }
...@@ -2715,8 +2715,8 @@ function renderSearch() {...@@ -2715,8 +2715,8 @@ function renderSearch() {
2715}2715}
27162716
2717function renderSearchCursor() {2717function renderSearchCursor() {
2718 for (var i = 0; i < domListSearchResults.children.length; i += 1) {2718 for (let i = 0; i < domListSearchResults.children.length; i += 1) {
2719 var liDom = /** @type HTMLElement */(domListSearchResults.children[i]);2719 let liDom = /** @type HTMLElement */(domListSearchResults.children[i]);
2720 if (curSearchIndex === i) {2720 if (curSearchIndex === i) {
2721 liDom.classList.add("selected");2721 liDom.classList.add("selected");
2722 } else {2722 } else {
...@@ -2728,10 +2728,10 @@ function renderSearchCursor() {...@@ -2728,10 +2728,10 @@ function renderSearchCursor() {
27282728
27292729
2730// function indexNodesToCalls() {2730// function indexNodesToCalls() {
2731// var map = {};2731// let map = {};
2732// for (var i = 0; i < zigAnalysis.calls.length; i += 1) {2732// for (let i = 0; i < zigAnalysis.calls.length; i += 1) {
2733// var call = zigAnalysis.calls[i];2733// let call = zigAnalysis.calls[i];
2734// var fn = zigAnalysis.fns[call.fn];2734// let fn = zigAnalysis.fns[call.fn];
2735// if (map[fn.src] == null) {2735// if (map[fn.src] == null) {
2736// map[fn.src] = [i];2736// map[fn.src] = [i];
2737// } else {2737// } else {
...@@ -2757,8 +2757,8 @@ function byNameProperty(a, b) {...@@ -2757,8 +2757,8 @@ function byNameProperty(a, b) {
2757 * @returns {T}2757 * @returns {T}
2758 */2758 */
2759function clone(obj) {2759function clone(obj) {
2760 var res = /** @type T */({});2760 let res = /** @type T */({});
2761 for (var key in obj) {2761 for (let key in obj) {
2762 res[key] = obj[key];2762 res[key] = obj[key];
2763 }2763 }
2764 return res;2764 return res;