@@ -29,6 +29,7 @@ var zigAnalysis;
2929 const domListValues = document . getElementById ( "listValues" ) ;
3030 const domFnProto = document . getElementById ( "fnProto" ) ;
3131 const domFnProtoCode = document . getElementById ( "fnProtoCode" ) ;
32+ const domFnSourceLink = document . getElementById ( "fnSourceLink" ) ;
3233 const domSectParams = document . getElementById ( "sectParams" ) ;
3334 const domListParams = document . getElementById ( "listParams" ) ;
3435 const domTldDocs = document . getElementById ( "tldDocs" ) ;
@@ -548,6 +549,8 @@ var zigAnalysis;
548549 wantLink : true ,
549550 fnDecl,
550551 } ) ;
552+
553+ domFnSourceLink . innerHTML = "[<a target=\"_blank\" href=\"" + sourceFileLink ( fnDecl ) + "\">src</a>]" ;
551554
552555 let docsSource = null ;
553556 let srcNode = getAstNode ( fnDecl . src ) ;
@@ -1839,29 +1842,31 @@ var zigAnalysis;
18391842 }
18401843 case typeKinds . Fn : {
18411844 let fnObj = typeObj ;
1845+ let fnDecl = opts . fnDecl ;
1846+ let linkFnNameDecl = opts . linkFnNameDecl ;
1847+ opts . fnDecl = null ;
1848+ opts . linkFnNameDecl = null ;
18421849 let payloadHtml = "" ;
1850+ if ( opts . addParensIfFnSignature && fnObj . src == 0 ) {
1851+ payloadHtml += "(" ;
1852+ }
18431853 if ( opts . wantHtml ) {
18441854 if ( fnObj . is_extern ) {
18451855 payloadHtml += "pub extern " ;
18461856 }
18471857 if ( fnObj . has_lib_name ) {
18481858 payloadHtml += '"' + fnObj . lib_name + '" ' ;
18491859 }
1850- payloadHtml += '<span class="tok-kw">fn</span>' ;
1851- if ( opts . fnDecl ) {
1852- payloadHtml += ' <span class="tok-fn">' ;
1853- if ( opts . linkFnNameDecl ) {
1860+ payloadHtml += '<span class="tok-kw">fn </span>' ;
1861+ if ( fnDecl ) {
1862+ payloadHtml += '<span class="tok-fn">' ;
1863+ if ( linkFnNameDecl ) {
18541864 payloadHtml +=
1855- '<a href="' +
1856- opts . linkFnNameDecl +
1857- '">' +
1858- escapeHtml ( opts . fnDecl . name ) +
1865+ '<a href="' + linkFnNameDecl + '">' +
1866+ escapeHtml ( fnDecl . name ) +
18591867 "</a>" ;
18601868 } else {
1861- payloadHtml += escapeHtml ( opts . fnDecl . name ) ;
1862- payloadHtml = "<a target=\"_blank\" href=\"" +
1863- sourceFileLink ( opts . fnDecl ) + "\">" +
1864- escapeHtml ( opts . fnDecl . name ) + "</a>" ;
1869+ payloadHtml += escapeHtml ( fnDecl . name ) ;
18651870 }
18661871 payloadHtml += "</span>" ;
18671872 }
@@ -1872,10 +1877,12 @@ var zigAnalysis;
18721877 if ( fnObj . params ) {
18731878 let fields = null ;
18741879 let isVarArgs = false ;
1875- let fnNode = getAstNode ( fnObj . src ) ;
1876- fields = fnNode . fields ;
1877- isVarArgs = fnNode . varArgs ;
1878-
1880+ if ( fnObj . src != 0 ) {
1881+ let fnNode = getAstNode ( fnObj . src ) ;
1882+ fields = fnNode . fields ;
1883+ isVarArgs = fnNode . varArgs ;
1884+ }
1885+
18791886 for ( let i = 0 ; i < fnObj . params . length ; i += 1 ) {
18801887 if ( i != 0 ) {
18811888 payloadHtml += ", " ;
@@ -1989,10 +1996,9 @@ var zigAnalysis;
19891996 }
19901997 } else if ( "type" in value ) {
19911998 let name = exprName ( value , {
1999+ ...opts ,
19922000 wantHtml : false ,
19932001 wantLink : false ,
1994- fnDecl : opts . fnDecl ,
1995- linkFnNameDecl : opts . linkFnNameDecl ,
19962002 } ) ;
19972003 payloadHtml += '<span class="tok-kw">' + name + "</span>" ;
19982004 } else if ( "binOpIndex" in value ) {
@@ -2032,12 +2038,19 @@ var zigAnalysis;
20322038 payloadHtml += "!" ;
20332039 }
20342040 if ( fnObj . ret != null ) {
2035- payloadHtml += exprName ( fnObj . ret , opts ) ;
2041+ payloadHtml += exprName ( fnObj . ret , {
2042+ ...opts ,
2043+ addParensIfFnSignature : true ,
2044+ } ) ;
20362045 } else if ( opts . wantHtml ) {
20372046 payloadHtml += '<span class="tok-kw">anytype</span>' ;
20382047 } else {
20392048 payloadHtml += "anytype" ;
20402049 }
2050+
2051+ if ( opts . addParensIfFnSignature && fnObj . src == 0 ) {
2052+ payloadHtml += ")" ;
2053+ }
20412054 return payloadHtml ;
20422055 }
20432056 // if (wantHtml) {
0 commit comments