| ... | ... | @@ -176,6 +176,8 @@ var zigAnalysis; |
| 176 | 176 | var domListPkgs = document.getElementById("listPkgs"); |
| 177 | 177 | var domSectTypes = document.getElementById("sectTypes"); |
| 178 | 178 | var domListTypes = document.getElementById("listTypes"); |
| 179 | var domSectTests = document.getElementById("sectTests"); |
| 180 | var domListTests = document.getElementById("listTests"); |
| 179 | 181 | var domSectNamespaces = document.getElementById("sectNamespaces"); |
| 180 | 182 | var domListNamespaces = document.getElementById("listNamespaces"); |
| 181 | 183 | var domSectErrSets = document.getElementById("sectErrSets"); |
| ... | ... | @@ -349,6 +351,7 @@ var zigAnalysis; |
| 349 | 351 | |
| 350 | 352 | if ("declRef" in value) { |
| 351 | 353 | value = zigAnalysis.decls[value.declRef].value; |
| 354 | continue; |
| 352 | 355 | } |
| 353 | 356 | |
| 354 | 357 | return value; |
| ... | ... | @@ -439,6 +442,7 @@ var zigAnalysis; |
| 439 | 442 | domSectMainPkg.classList.add("hidden"); |
| 440 | 443 | domSectPkgs.classList.add("hidden"); |
| 441 | 444 | domSectTypes.classList.add("hidden"); |
| 445 | domSectTests.classList.add("hidden"); |
| 442 | 446 | domSectNamespaces.classList.add("hidden"); |
| 443 | 447 | domSectErrSets.classList.add("hidden"); |
| 444 | 448 | domSectFns.classList.add("hidden"); |
| ... | ... | @@ -845,10 +849,10 @@ var zigAnalysis; |
| 845 | 849 | if ("call" in typeValue) { |
| 846 | 850 | var result = ""; |
| 847 | 851 | var call = zigAnalysis.calls[typeValue.call]; |
| 848 | | var functionName = typeValueName(call.func); |
| 852 | var functionName = typeValueName(call.func, wantHtml, wantLink, fnDecl, linkFnNameDecl); |
| 849 | 853 | result += functionName + "("; |
| 850 | 854 | for (var j = 0; j < call.args.length; j += 1) { |
| 851 | | result += typeValueName(call.args[j]); |
| 855 | result += typeValueName(call.args[j], wantHtml, wantLink, fnDecl, linkFnNameDecl); |
| 852 | 856 | if (j != call.args.length -1) result += ","; |
| 853 | 857 | } |
| 854 | 858 | |
| ... | ... | @@ -878,6 +882,22 @@ var zigAnalysis; |
| 878 | 882 | return result; |
| 879 | 883 | } |
| 880 | 884 | |
| 885 | if ("declRef" in typeValue) { |
| 886 | return zigAnalysis.decls[typeValue.declRef].name; |
| 887 | } |
| 888 | |
| 889 | if ("string" in typeValue) { |
| 890 | return typeValue.string + " (string)"; |
| 891 | } |
| 892 | |
| 893 | if ("anytype" in typeValue) { |
| 894 | return "anytype"; |
| 895 | } |
| 896 | |
| 897 | if ("this" in typeValue) { |
| 898 | return "this"; |
| 899 | } |
| 900 | |
| 881 | 901 | console.assert("type" in typeValue) |
| 882 | 902 | var typeIndex = typeValue.type; |
| 883 | 903 | var typeObj = zigAnalysis.types[typeIndex]; |
| ... | ... | @@ -1133,7 +1153,7 @@ var zigAnalysis; |
| 1133 | 1153 | if (typeObj.params) { |
| 1134 | 1154 | var fields = null; |
| 1135 | 1155 | var isVarArgs = false; |
| 1136 | | var fnNode = zigAnalysis.astNodes[fnDecl.src]; |
| 1156 | var fnNode = zigAnalysis.astNodes[typeObj.src]; |
| 1137 | 1157 | fields = fnNode.fields; |
| 1138 | 1158 | isVarArgs = fnNode.varArgs; |
| 1139 | 1159 | |
| ... | ... | @@ -1411,12 +1431,17 @@ var zigAnalysis; |
| 1411 | 1431 | |
| 1412 | 1432 | function categorizeDecls(decls, |
| 1413 | 1433 | typesList, namespacesList, errSetsList, |
| 1414 | | fnsList, varsList, valsList) { |
| 1434 | fnsList, varsList, valsList, testsList) { |
| 1415 | 1435 | |
| 1416 | 1436 | for (var i = 0; i < decls.length; i += 1) { |
| 1417 | 1437 | var decl = zigAnalysis.decls[decls[i]]; |
| 1418 | 1438 | var declValue = resolveValue(decl.value); |
| 1419 | 1439 | |
| 1440 | if (decl.isTest) { |
| 1441 | testsList.push(decl); |
| 1442 | continue; |
| 1443 | } |
| 1444 | |
| 1420 | 1445 | if (decl.kind === 'var') { |
| 1421 | 1446 | varsList.push(decl); |
| 1422 | 1447 | continue; |
| ... | ... | @@ -1427,11 +1452,15 @@ var zigAnalysis; |
| 1427 | 1452 | let c = zigAnalysis.calls[declValue.call]; |
| 1428 | 1453 | console.assert("comptimeExpr" in c.ret); |
| 1429 | 1454 | let fDecl = resolveValue(c.func); |
| 1430 | | console.assert("type" in fDecl); |
| 1431 | | let fType = zigAnalysis.types[fDecl.type]; |
| 1432 | | console.assert("type" in fType.ret); |
| 1433 | | if (fType.ret.type === typeTypeId) { |
| 1434 | | typesList.push(decl); |
| 1455 | if ("type" in fDecl) { |
| 1456 | console.assert("type" in fDecl); |
| 1457 | let fType = zigAnalysis.types[fDecl.type]; |
| 1458 | console.assert("type" in fType.ret); |
| 1459 | if (fType.ret.type === typeTypeId) { |
| 1460 | typesList.push(decl); |
| 1461 | } else { |
| 1462 | valsList.push(decl); |
| 1463 | } |
| 1435 | 1464 | } else { |
| 1436 | 1465 | valsList.push(decl); |
| 1437 | 1466 | } |
| ... | ... | @@ -1468,13 +1497,14 @@ var zigAnalysis; |
| 1468 | 1497 | var fnsList = []; |
| 1469 | 1498 | var varsList = []; |
| 1470 | 1499 | var valsList = []; |
| 1500 | var testsList = []; |
| 1471 | 1501 | |
| 1472 | 1502 | categorizeDecls(container.pubDecls, |
| 1473 | 1503 | typesList, namespacesList, errSetsList, |
| 1474 | | fnsList, varsList, valsList); |
| 1504 | fnsList, varsList, valsList, testsList); |
| 1475 | 1505 | if (curNav.showPrivDecls) categorizeDecls(container.privDecls, |
| 1476 | 1506 | typesList, namespacesList, errSetsList, |
| 1477 | | fnsList, varsList, valsList); |
| 1507 | fnsList, varsList, valsList, testsList); |
| 1478 | 1508 | |
| 1479 | 1509 | |
| 1480 | 1510 | typesList.sort(byNameProperty); |
| ... | ... | @@ -1483,6 +1513,7 @@ var zigAnalysis; |
| 1483 | 1513 | fnsList.sort(byNameProperty); |
| 1484 | 1514 | varsList.sort(byNameProperty); |
| 1485 | 1515 | valsList.sort(byNameProperty); |
| 1516 | testsList.sort(byNameProperty); |
| 1486 | 1517 | |
| 1487 | 1518 | if (container.src != null) { |
| 1488 | 1519 | var docs = zigAnalysis.astNodes[container.src].docs; |
| ... | ... | @@ -1638,6 +1669,33 @@ var zigAnalysis; |
| 1638 | 1669 | } |
| 1639 | 1670 | domSectValues.classList.remove("hidden"); |
| 1640 | 1671 | } |
| 1672 | |
| 1673 | if (testsList.length !== 0) { |
| 1674 | resizeDomList(domListTests, testsList.length, |
| 1675 | '<tr><td><a href="#"></a></td><td></td><td></td></tr>'); |
| 1676 | for (var i = 0; i < testsList.length; i += 1) { |
| 1677 | var decl = testsList[i]; |
| 1678 | var trDom = domListTests.children[i]; |
| 1679 | |
| 1680 | var tdName = trDom.children[0]; |
| 1681 | var tdNameA = tdName.children[0]; |
| 1682 | var tdType = trDom.children[1]; |
| 1683 | var tdDesc = trDom.children[2]; |
| 1684 | |
| 1685 | tdNameA.setAttribute('href', navLinkDecl(decl.name)); |
| 1686 | tdNameA.textContent = decl.name; |
| 1687 | |
| 1688 | tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true); |
| 1689 | |
| 1690 | var docs = zigAnalysis.astNodes[decl.src].docs; |
| 1691 | if (docs != null) { |
| 1692 | tdDesc.innerHTML = shortDescMarkdown(docs); |
| 1693 | } else { |
| 1694 | tdDesc.textContent = ""; |
| 1695 | } |
| 1696 | } |
| 1697 | domSectTests.classList.remove("hidden"); |
| 1698 | } |
| 1641 | 1699 | } |
| 1642 | 1700 | |
| 1643 | 1701 | function operatorCompare(a, b) { |