| ... | @@ -144,13 +144,33 @@ | ... | @@ -144,13 +144,33 @@ |
| 144 | return typeKind === typeKinds.ErrorSet || typeKindIsContainer(typeKind); | 144 | return typeKind === typeKinds.ErrorSet || typeKindIsContainer(typeKind); |
| 145 | } | 145 | } |
| 146 | | 146 | |
| | 147 | function findCteInDeclPath(path) { |
| | 148 | for (var i = path.length - 1; i >= 0; i -= 1) { |
| | 149 | const decl = zigAnalysis.decls[path[i]]; |
| | 150 | if ("comptimeExpr" in decl.value) { |
| | 151 | return decl; |
| | 152 | } |
| | 153 | |
| | 154 | if ("declPath" in decl.value) { |
| | 155 | const res = findCteInDeclPath(decl.value.declPath); |
| | 156 | if (res !== null) { |
| | 157 | return res; |
| | 158 | } |
| | 159 | } |
| | 160 | } |
| | 161 | |
| | 162 | return null; |
| | 163 | } |
| | 164 | |
| 147 | function resolveValue(value) { | 165 | function resolveValue(value) { |
| 148 | var i = 0; | 166 | var i = 0; |
| 149 | while(i < 1000) { | 167 | while(i < 1000) { |
| 150 | i += 1; | 168 | i += 1; |
| 151 | | 169 | |
| 152 | if ("declPath" in value) { | 170 | if ("declPath" in value) { |
| 153 | console.assert(value.declPath.length == 1); // only support declRefs for now | 171 | if (value.hasCte) { |
| | 172 | return findCteInDeclPath(value.declPath).value; |
| | 173 | } |
| 154 | value = zigAnalysis.decls[value.declPath[0]].value; | 174 | value = zigAnalysis.decls[value.declPath[0]].value; |
| 155 | continue; | 175 | continue; |
| 156 | } | 176 | } |
| ... | @@ -171,30 +191,34 @@ | ... | @@ -171,30 +191,34 @@ |
| 171 | } | 191 | } |
| 172 | | 192 | |
| 173 | if ("declPath" in decl.value) { | 193 | if ("declPath" in decl.value) { |
| 174 | console.assert(decl.value.declPath.length == 1); // only support declRefs for now | 194 | if (decl.value.hasCte) { |
| 175 | decl = zigAnalysis.decls[decl.value.declPath[0]]; | 195 | decl = findCteInDeclPath(decl.value.declPath); |
| | 196 | } else { |
| | 197 | decl = zigAnalysis.decls[decl.value.declPath[0]]; |
| | 198 | } |
| | 199 | |
| 176 | continue; | 200 | continue; |
| 177 | } | 201 | } |
| 178 | | 202 | |
| 179 | if ("int" in decl.value) { | 203 | if ("int" in decl.value) { |
| 180 | return resolveTypeRefToTypeId(decl.value.int.typeRef); | 204 | return decl.value.int.typeRef; |
| 181 | } | 205 | } |
| 182 | | 206 | |
| 183 | if ("float" in decl.value) { | 207 | if ("float" in decl.value) { |
| 184 | return resolveTypeRefToTypeId(decl.value.float.typeRef); | 208 | return decl.value.float.typeRef; |
| 185 | } | 209 | } |
| 186 | | 210 | |
| 187 | if ("array" in decl.value) { | 211 | if ("array" in decl.value) { |
| 188 | return resolveTypeRefToTypeId(decl.value.array.typeRef); | 212 | return decl.value.array.typeRef; |
| 189 | } | 213 | } |
| 190 | | 214 | |
| 191 | if ("struct" in decl.value) { | 215 | if ("struct" in decl.value) { |
| 192 | return resolveTypeRefToTypeId(decl.value.struct.typeRef); | 216 | return decl.value.struct.typeRef; |
| 193 | } | 217 | } |
| 194 | | 218 | |
| 195 | if ("comptimeExpr" in decl.value) { | 219 | if ("comptimeExpr" in decl.value) { |
| 196 | const cte = zigAnalysis.comptimeExprs[decl.value.comptimeExpr]; | 220 | const cte = zigAnalysis.comptimeExprs[decl.value.comptimeExpr]; |
| 197 | return resolveTypeRefToTypeId(cte.typeRef); | 221 | return cte.typeRef; |
| 198 | } | 222 | } |
| 199 | | 223 | |
| 200 | if ("call" in decl.value) { | 224 | if ("call" in decl.value) { |
| ... | @@ -205,7 +229,7 @@ | ... | @@ -205,7 +229,7 @@ |
| 205 | console.assert("type" in fn_decl_value); //TODO handle comptimeExpr | 229 | console.assert("type" in fn_decl_value); //TODO handle comptimeExpr |
| 206 | const fn_type = zigAnalysis.types[fn_decl_value.type]; | 230 | const fn_type = zigAnalysis.types[fn_decl_value.type]; |
| 207 | console.assert(fn_type.kind === typeKinds.Fn); | 231 | console.assert(fn_type.kind === typeKinds.Fn); |
| 208 | return resolveTypeRefToTypeId(fn_type.ret); | 232 | return fn_type.ret; |
| 209 | } | 233 | } |
| 210 | | 234 | |
| 211 | console.log("TODO: handle in `typeOfDecl` more cases: ", decl); | 235 | console.log("TODO: handle in `typeOfDecl` more cases: ", decl); |
| ... | @@ -215,23 +239,6 @@ | ... | @@ -215,23 +239,6 @@ |
| 215 | console.assert(false); | 239 | console.assert(false); |
| 216 | } | 240 | } |
| 217 | | 241 | |
| 218 | function resolveTypeRefToTypeId(ref) { | | |
| 219 | if ("unspecified" in ref) { | | |
| 220 | console.log("found an unspecified type!") | | |
| 221 | return -1; | | |
| 222 | } | | |
| 223 | | | |
| 224 | if ("declRef" in ref) { | | |
| 225 | return typeOfDecl(ref.declRef); | | |
| 226 | } | | |
| 227 | | | |
| 228 | if ("type" in ref) { | | |
| 229 | return ref.type; | | |
| 230 | } | | |
| 231 | | | |
| 232 | console.assert(false); | | |
| 233 | } | | |
| 234 | | | |
| 235 | function render() { | 242 | function render() { |
| 236 | domStatus.classList.add("hidden"); | 243 | domStatus.classList.add("hidden"); |
| 237 | domFnProto.classList.add("hidden"); | 244 | domFnProto.classList.add("hidden"); |
| ... | @@ -369,7 +376,7 @@ | ... | @@ -369,7 +376,7 @@ |
| 369 | console.assert("type" in value); | 376 | console.assert("type" in value); |
| 370 | var typeObj = zigAnalysis.types[value.type]; | 377 | var typeObj = zigAnalysis.types[value.type]; |
| 371 | | 378 | |
| 372 | domFnProtoCode.innerHTML = typeIndexName(value.type, true, true, fnDecl); | 379 | domFnProtoCode.innerHTML = typeValueName(value, true, true, fnDecl); |
| 373 | | 380 | |
| 374 | var docsSource = null; | 381 | var docsSource = null; |
| 375 | var srcNode = zigAnalysis.astNodes[fnDecl.src]; | 382 | var srcNode = zigAnalysis.astNodes[fnDecl.src]; |
| ... | @@ -462,9 +469,6 @@ | ... | @@ -462,9 +469,6 @@ |
| 462 | | 469 | |
| 463 | | 470 | |
| 464 | var value = typeObj.params[i]; | 471 | var value = typeObj.params[i]; |
| 465 | var valueType = resolveValue(value); | | |
| 466 | console.assert("type" in valueType); | | |
| 467 | var argTypeIndex = valueType.type; | | |
| 468 | var html = '<pre>' + escapeHtml(fieldNode.name) + ": "; | 472 | var html = '<pre>' + escapeHtml(fieldNode.name) + ": "; |
| 469 | if (isVarArgs && i === typeObj.params.length - 1) { | 473 | if (isVarArgs && i === typeObj.params.length - 1) { |
| 470 | html += '...'; | 474 | html += '...'; |
| ... | @@ -482,8 +486,6 @@ | ... | @@ -482,8 +486,6 @@ |
| 482 | } else if ("type" in value) { | 486 | } else if ("type" in value) { |
| 483 | var name = zigAnalysis.types[value.type].name; | 487 | var name = zigAnalysis.types[value.type].name; |
| 484 | html += '<span class="tok-kw">' + escapeHtml(name) + '</span>'; | 488 | html += '<span class="tok-kw">' + escapeHtml(name) + '</span>'; |
| 485 | } else if (argTypeIndex != null) { | | |
| 486 | html += typeIndexName(argTypeIndex, true, true); | | |
| 487 | } else { | 489 | } else { |
| 488 | html += '<span class="tok-kw">var</span>'; | 490 | html += '<span class="tok-kw">var</span>'; |
| 489 | } | 491 | } |
| ... | @@ -654,13 +656,16 @@ | ... | @@ -654,13 +656,16 @@ |
| 654 | } | 656 | } |
| 655 | } | 657 | } |
| 656 | | 658 | |
| 657 | function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl) { | | |
| 658 | return typeValueName({ type: typeIndex }, wantHtml, wantLink, fnDecl, linkFnNameDecl); | | |
| 659 | } | | |
| 660 | | | |
| 661 | function typeValueName(typeValue, wantHtml, wantLink, fnDecl, linkFnNameDecl) { | 659 | function typeValueName(typeValue, wantHtml, wantLink, fnDecl, linkFnNameDecl) { |
| 662 | if ("declPath" in typeValue) { | 660 | if ("declPath" in typeValue) { |
| 663 | console.assert(typeValue.declPath.length == 1); | 661 | if (typeValue.hasCte) { |
| | 662 | // TODO: find the cte, print it nicely |
| | 663 | if (wantLink) { |
| | 664 | return '<a href=""># CTE TODO #</a>'; |
| | 665 | } else { |
| | 666 | return "# CTE TODO #"; |
| | 667 | } |
| | 668 | } |
| 664 | var declIndex = typeValue.declPath[0]; | 669 | var declIndex = typeValue.declPath[0]; |
| 665 | var name = zigAnalysis.decls[declIndex].name; | 670 | var name = zigAnalysis.decls[declIndex].name; |
| 666 | var declPath = getCanonDeclPath(declIndex); | 671 | var declPath = getCanonDeclPath(declIndex); |
| ... | @@ -695,12 +700,17 @@ | ... | @@ -695,12 +700,17 @@ |
| 695 | } | 700 | } |
| 696 | } | 701 | } |
| 697 | | 702 | |
| 698 | function shouldSkipParamName(typeIndex, paramName) { | 703 | function shouldSkipParamName(typeRef, paramName) { |
| 699 | var typeObj = zigAnalysis.types[typeIndex]; | 704 | var resolvedTypeRef = resolveValue(typeRef); |
| 700 | if (typeObj.kind === typeKinds.Pointer && getPtrSize(typeObj) === pointerSizeEnum.One) { | 705 | if ("type" in resolvedTypeRef) { |
| 701 | typeIndex = typeObj.child; | 706 | var typeObj = zigAnalysis.types[resolvedTypeRef.type]; |
| | 707 | if (typeObj.kind === typeKinds.Pointer && |
| | 708 | getPtrSize(typeObj) === pointerSizeEnum.One) { |
| | 709 | const value = resolveValue(typeObj.child); |
| | 710 | return typeValueName(value, false, true).toLowerCase() === paramName; |
| | 711 | } |
| 702 | } | 712 | } |
| 703 | return typeIndexName(typeIndex, false, true).toLowerCase() === paramName; | 713 | return false; |
| 704 | } | 714 | } |
| 705 | | 715 | |
| 706 | function getPtrSize(typeObj) { | 716 | function getPtrSize(typeObj) { |
| ... | @@ -716,20 +726,25 @@ | ... | @@ -716,20 +726,25 @@ |
| 716 | for (var arg_i = 0; arg_i < callObj.args.length; arg_i += 1) { | 726 | for (var arg_i = 0; arg_i < callObj.args.length; arg_i += 1) { |
| 717 | if (arg_i !== 0) html += ', '; | 727 | if (arg_i !== 0) html += ', '; |
| 718 | var argObj = callObj.args[arg_i]; | 728 | var argObj = callObj.args[arg_i]; |
| 719 | html += getValueText(argObj.type, argObj.value, true, true); | 729 | html += getValueText(argObj, argObj.value, true, true); |
| 720 | } | 730 | } |
| 721 | html += ')'; | 731 | html += ')'; |
| 722 | return html; | 732 | return html; |
| 723 | } | 733 | } |
| 724 | | 734 | |
| 725 | function getValueText(typeIndex, value, wantHtml, wantLink) { | 735 | function getValueText(typeRef, value, wantHtml, wantLink) { |
| 726 | var typeObj = zigAnalysis.types[typeIndex]; | 736 | var resolvedTypeRef = resolveValue(typeRef); |
| | 737 | if ("comptimeExpr" in resolvedTypeRef) { |
| | 738 | return "# CTE TODO #"; |
| | 739 | } |
| | 740 | console.assert("type" in resolvedTypeRef); |
| | 741 | var typeObj = zigAnalysis.types[typeRef.type]; |
| 727 | switch (typeObj.kind) { | 742 | switch (typeObj.kind) { |
| 728 | case typeKinds.Type: | 743 | case typeKinds.Type: |
| 729 | return typeIndexName(value, wantHtml, wantLink); | 744 | return typeIndexName(value, wantHtml, wantLink); |
| 730 | case typeKinds.Fn: | 745 | case typeKinds.Fn: |
| 731 | var fnObj = zigAnalysis.fns[value]; | 746 | var fnObj = zigAnalysis.fns[value]; |
| 732 | return typeIndexName(fnObj.type, wantHtml, wantLink); | 747 | return typeValueName(fnObj, wantHtml, wantLink); |
| 733 | case typeKinds.Int: | 748 | case typeKinds.Int: |
| 734 | if (wantHtml) { | 749 | if (wantHtml) { |
| 735 | return '<span class="tok-number">' + value + '</span>'; | 750 | return '<span class="tok-number">' + value + '</span>'; |
| ... | @@ -923,11 +938,10 @@ | ... | @@ -923,11 +938,10 @@ |
| 923 | if (i != 0) { | 938 | if (i != 0) { |
| 924 | payloadHtml += ', '; | 939 | payloadHtml += ', '; |
| 925 | } | 940 | } |
| | 941 | |
| 926 | var value = typeObj.params[i]; | 942 | var value = typeObj.params[i]; |
| 927 | var paramValue = resolveValue(value); | 943 | var paramValue = resolveValue(value); |
| 928 | console.assert("type" in paramValue); | 944 | var isCte = "comptimeExpr" in paramValue; |
| 929 | var argTypeIndex = paramValue.type; | | |
| 930 | | | |
| 931 | | 945 | |
| 932 | if (fields != null) { | 946 | if (fields != null) { |
| 933 | var paramNode = zigAnalysis.astNodes[fields[i]]; | 947 | var paramNode = zigAnalysis.astNodes[fields[i]]; |
| ... | @@ -956,7 +970,7 @@ | ... | @@ -956,7 +970,7 @@ |
| 956 | var paramName = paramNode.name; | 970 | var paramName = paramNode.name; |
| 957 | if (paramName != null) { | 971 | if (paramName != null) { |
| 958 | // skip if it matches the type name | 972 | // skip if it matches the type name |
| 959 | if (argTypeIndex == null || !shouldSkipParamName(argTypeIndex, paramName)) { | 973 | if (!shouldSkipParamName(paramValue, paramName)) { |
| 960 | payloadHtml += paramName + ': '; | 974 | payloadHtml += paramName + ': '; |
| 961 | } | 975 | } |
| 962 | } | 976 | } |
| ... | @@ -975,10 +989,10 @@ | ... | @@ -975,10 +989,10 @@ |
| 975 | payloadHtml += '<span class="tok-kw" style="color:lightblue;">' + escapeHtml(decl.name) + '</span>'; | 989 | payloadHtml += '<span class="tok-kw" style="color:lightblue;">' + escapeHtml(decl.name) + '</span>'; |
| 976 | payloadHtml += '</a>'; | 990 | payloadHtml += '</a>'; |
| 977 | } else if ("type" in value) { | 991 | } else if ("type" in value) { |
| 978 | var name = zigAnalysis.types[value.type].name; | 992 | var name = typeValueName(value, false); |
| 979 | payloadHtml += '<span class="tok-kw">' + escapeHtml(name) + '</span>'; | 993 | payloadHtml += '<span class="tok-kw">' + escapeHtml(name) + '</span>'; |
| 980 | } else if (argTypeIndex != null) { | 994 | } else if ("comptimeExpr" in value) { |
| 981 | payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink); | 995 | payloadHtml += '<span class="tok-kw"> # CTE TODO #</span>'; |
| 982 | } else if (wantHtml) { | 996 | } else if (wantHtml) { |
| 983 | payloadHtml += '<span class="tok-kw">var</span>'; | 997 | payloadHtml += '<span class="tok-kw">var</span>'; |
| 984 | } else { | 998 | } else { |
| ... | @@ -1152,7 +1166,7 @@ | ... | @@ -1152,7 +1166,7 @@ |
| 1152 | | 1166 | |
| 1153 | function renderValue(decl) { | 1167 | function renderValue(decl) { |
| 1154 | | 1168 | |
| 1155 | var declTypeId = typeOfDecl(decl); | 1169 | var declTypeRef = typeOfDecl(decl); |
| 1156 | var declValueText = ""; | 1170 | var declValueText = ""; |
| 1157 | switch(Object.keys(decl.value)[0]) { | 1171 | switch(Object.keys(decl.value)[0]) { |
| 1158 | case "int": | 1172 | case "int": |
| ... | @@ -1170,7 +1184,7 @@ | ... | @@ -1170,7 +1184,7 @@ |
| 1170 | } | 1184 | } |
| 1171 | | 1185 | |
| 1172 | domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' + | 1186 | domFnProtoCode.innerHTML = '<span class="tok-kw">const</span> ' + |
| 1173 | escapeHtml(decl.name) + ': ' + typeIndexName(declTypeId, true, true) + | 1187 | escapeHtml(decl.name) + ': ' + typeValueName(declTypeRef, true, true) + |
| 1174 | " = " + declValueText; | 1188 | " = " + declValueText; |
| 1175 | | 1189 | |
| 1176 | var docs = zigAnalysis.astNodes[decl.src].docs; | 1190 | var docs = zigAnalysis.astNodes[decl.src].docs; |
| ... | @@ -1183,9 +1197,9 @@ | ... | @@ -1183,9 +1197,9 @@ |
| 1183 | } | 1197 | } |
| 1184 | | 1198 | |
| 1185 | function renderVar(decl) { | 1199 | function renderVar(decl) { |
| 1186 | var declTypeId = typeOfDecl(decl); | 1200 | var declTypeRef = typeOfDecl(decl); |
| 1187 | domFnProtoCode.innerHTML = '<span class="tok-kw">var</span> ' + | 1201 | domFnProtoCode.innerHTML = '<span class="tok-kw">var</span> ' + |
| 1188 | escapeHtml(decl.name) + ': ' + typeIndexName(declTypeId, true, true); | 1202 | escapeHtml(decl.name) + ': ' + typeValueName(declTypeRef, true, true); |
| 1189 | | 1203 | |
| 1190 | var docs = zigAnalysis.astNodes[decl.src].docs; | 1204 | var docs = zigAnalysis.astNodes[decl.src].docs; |
| 1191 | if (docs != null) { | 1205 | if (docs != null) { |
| ... | @@ -1221,8 +1235,9 @@ | ... | @@ -1221,8 +1235,9 @@ |
| 1221 | var value = zigAnalysis.types[declValue.type]; | 1235 | var value = zigAnalysis.types[declValue.type]; |
| 1222 | var kind = value.kind; | 1236 | var kind = value.kind; |
| 1223 | if (kind === typeKinds.Fn) { | 1237 | if (kind === typeKinds.Fn) { |
| 1224 | //if (allCompTimeFnCallsHaveTypeResult(decl.type, declTypeId)) { | 1238 | // TODO: handle CTE return types when we know their type. |
| 1225 | if (resolveTypeRefToTypeId(value.ret) == typeTypeId) { | 1239 | const resVal = resolveValue(value.ret); |
| | 1240 | if ("type" in resVal && resVal.type == typeTypeId) { |
| 1226 | typesList.push(decl); | 1241 | typesList.push(decl); |
| 1227 | } else { | 1242 | } else { |
| 1228 | fnsList.push(decl); | 1243 | fnsList.push(decl); |
| ... | @@ -1300,7 +1315,7 @@ | ... | @@ -1300,7 +1315,7 @@ |
| 1300 | var declType = resolveValue(decl.value); | 1315 | var declType = resolveValue(decl.value); |
| 1301 | console.assert("type" in declType); | 1316 | console.assert("type" in declType); |
| 1302 | | 1317 | |
| 1303 | tdFnCode.innerHTML = typeIndexName(declType.type, true, true, decl, navLinkDecl(decl.name)); | 1318 | tdFnCode.innerHTML = typeValueName(declType, true, true, decl, navLinkDecl(decl.name)); |
| 1304 | | 1319 | |
| 1305 | var docs = zigAnalysis.astNodes[decl.src].docs; | 1320 | var docs = zigAnalysis.astNodes[decl.src].docs; |
| 1306 | if (docs != null) { | 1321 | if (docs != null) { |
| ... | @@ -1327,35 +1342,37 @@ | ... | @@ -1327,35 +1342,37 @@ |
| 1327 | } else { | 1342 | } else { |
| 1328 | var field = container.fields[i]; | 1343 | var field = container.fields[i]; |
| 1329 | html += ": "; | 1344 | html += ": "; |
| 1330 | if (typeof(field) === 'object') { | 1345 | if (field.failure === true) { |
| 1331 | if (field.failure === true) { | 1346 | html += '<span class="tok-kw" style="color:red;">#FAILURE#</span>'; |
| 1332 | html += '<span class="tok-kw" style="color:red;">#FAILURE#</span>'; | 1347 | } else if ("declPath" in field) { |
| 1333 | } else if ("declPath" in field) { | 1348 | for (var j = field.declPath.length - 1; j >= 0; j--) { |
| 1334 | for (var j = field.declPath.length - 1; j >= 0; j--) { | 1349 | var decl = zigAnalysis.decls[field.declPath[j]]; |
| 1335 | var decl = zigAnalysis.decls[field.declPath[j]]; | 1350 | |
| 1336 | | 1351 | // TODO: handle nested decl paths properly! |
| 1337 | html += '<a href="'+navLinkDecl(decl.name)+'">'; | 1352 | if (field.hasCte) { |
| 1338 | html += '<span class="tok-kw" style="color:lightblue;">' + | 1353 | html += "<a href=\"\"># CTE TODO #</a>"; |
| 1339 | escapeHtml(decl.name) + '</span>'; | 1354 | break; |
| 1340 | html += '</a>'; | | |
| 1341 | if (j != 0) html += "."; | | |
| 1342 | } | 1355 | } |
| 1343 | // at the end of the for loop this is the value of `decl` | 1356 | |
| 1344 | //decl = zigAnalysis.decls[field.declPath[0]]; | 1357 | html += '<a href="'+navLinkDecl(decl.name)+'">'; |
| 1345 | | 1358 | html += '<span class="tok-kw" style="color:lightblue;">' + |
| 1346 | var val = resolveValue(decl.value); | 1359 | escapeHtml(decl.name) + '</span>'; |
| 1347 | console.assert("type" in val); | 1360 | html += '</a>'; |
| 1348 | var valType = zigAnalysis.types[val.type]; | 1361 | if (j != 0) html += "."; |
| 1349 | var valTypeName = typeShorthandName(valType); | | |
| 1350 | html += ' ('+ valTypeName +')'; | | |
| 1351 | } else if ("type" in field) { | | |
| 1352 | var name = zigAnalysis.types[field.type].name; | | |
| 1353 | html += '<span class="tok-kw">' + escapeHtml(name) + '</span>'; | | |
| 1354 | } else { | | |
| 1355 | html += '<span class="tok-kw">var</span>'; | | |
| 1356 | } | 1362 | } |
| | 1363 | // at the end of the for loop this is the value of `decl` |
| | 1364 | //decl = zigAnalysis.decls[field.declPath[0]]; |
| | 1365 | |
| | 1366 | var val = resolveValue(decl.value); |
| | 1367 | console.assert("type" in val); |
| | 1368 | var valType = zigAnalysis.types[val.type]; |
| | 1369 | var valTypeName = typeShorthandName(valType); |
| | 1370 | html += ' ('+ valTypeName +')'; |
| | 1371 | } else if ("type" in field) { |
| | 1372 | var name = zigAnalysis.types[field.type].name; |
| | 1373 | html += '<span class="tok-kw">' + escapeHtml(name) + '</span>'; |
| 1357 | } else { | 1374 | } else { |
| 1358 | html += typeIndexName(field, true, true); | 1375 | html += '<span class="tok-kw">var</span>'; |
| 1359 | } | 1376 | } |
| 1360 | } | 1377 | } |
| 1361 | | 1378 | |
| ... | @@ -1385,7 +1402,7 @@ | ... | @@ -1385,7 +1402,7 @@ |
| 1385 | tdNameA.setAttribute('href', navLinkDecl(decl.name)); | 1402 | tdNameA.setAttribute('href', navLinkDecl(decl.name)); |
| 1386 | tdNameA.textContent = decl.name; | 1403 | tdNameA.textContent = decl.name; |
| 1387 | | 1404 | |
| 1388 | tdType.innerHTML = typeIndexName(typeOfDecl(decl), true, true); | 1405 | tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true); |
| 1389 | | 1406 | |
| 1390 | var docs = zigAnalysis.astNodes[decl.src].docs; | 1407 | var docs = zigAnalysis.astNodes[decl.src].docs; |
| 1391 | if (docs != null) { | 1408 | if (docs != null) { |
| ... | @@ -1412,7 +1429,7 @@ | ... | @@ -1412,7 +1429,7 @@ |
| 1412 | tdNameA.setAttribute('href', navLinkDecl(decl.name)); | 1429 | tdNameA.setAttribute('href', navLinkDecl(decl.name)); |
| 1413 | tdNameA.textContent = decl.name; | 1430 | tdNameA.textContent = decl.name; |
| 1414 | | 1431 | |
| 1415 | tdType.innerHTML = typeIndexName(typeOfDecl(decl), true, true); | 1432 | tdType.innerHTML = typeValueName(typeOfDecl(decl), true, true); |
| 1416 | | 1433 | |
| 1417 | var docs = zigAnalysis.astNodes[decl.src].docs; | 1434 | var docs = zigAnalysis.astNodes[decl.src].docs; |
| 1418 | if (docs != null) { | 1435 | if (docs != null) { |