@@ -29,6 +29,7 @@ var zigAnalysis;
29
29
const domListValues = document . getElementById ( "listValues" ) ;
30
30
const domFnProto = document . getElementById ( "fnProto" ) ;
31
31
const domFnProtoCode = document . getElementById ( "fnProtoCode" ) ;
32
+ const domFnSourceLink = document . getElementById ( "fnSourceLink" ) ;
32
33
const domSectParams = document . getElementById ( "sectParams" ) ;
33
34
const domListParams = document . getElementById ( "listParams" ) ;
34
35
const domTldDocs = document . getElementById ( "tldDocs" ) ;
@@ -548,6 +549,8 @@ var zigAnalysis;
548
549
wantLink : true ,
549
550
fnDecl,
550
551
} ) ;
552
+
553
+ domFnSourceLink . innerHTML = "[<a target=\"_blank\" href=\"" + sourceFileLink ( fnDecl ) + "\">src</a>]" ;
551
554
552
555
let docsSource = null ;
553
556
let srcNode = getAstNode ( fnDecl . src ) ;
@@ -1839,29 +1842,31 @@ var zigAnalysis;
1839
1842
}
1840
1843
case typeKinds . Fn : {
1841
1844
let fnObj = typeObj ;
1845
+ let fnDecl = opts . fnDecl ;
1846
+ let linkFnNameDecl = opts . linkFnNameDecl ;
1847
+ opts . fnDecl = null ;
1848
+ opts . linkFnNameDecl = null ;
1842
1849
let payloadHtml = "" ;
1850
+ if ( opts . addParensIfFnSignature && fnObj . src == 0 ) {
1851
+ payloadHtml += "(" ;
1852
+ }
1843
1853
if ( opts . wantHtml ) {
1844
1854
if ( fnObj . is_extern ) {
1845
1855
payloadHtml += "pub extern " ;
1846
1856
}
1847
1857
if ( fnObj . has_lib_name ) {
1848
1858
payloadHtml += '"' + fnObj . lib_name + '" ' ;
1849
1859
}
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 ) {
1854
1864
payloadHtml +=
1855
- '<a href="' +
1856
- opts . linkFnNameDecl +
1857
- '">' +
1858
- escapeHtml ( opts . fnDecl . name ) +
1865
+ '<a href="' + linkFnNameDecl + '">' +
1866
+ escapeHtml ( fnDecl . name ) +
1859
1867
"</a>" ;
1860
1868
} 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 ) ;
1865
1870
}
1866
1871
payloadHtml += "</span>" ;
1867
1872
}
@@ -1872,10 +1877,12 @@ var zigAnalysis;
1872
1877
if ( fnObj . params ) {
1873
1878
let fields = null ;
1874
1879
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
+
1879
1886
for ( let i = 0 ; i < fnObj . params . length ; i += 1 ) {
1880
1887
if ( i != 0 ) {
1881
1888
payloadHtml += ", " ;
@@ -1989,10 +1996,9 @@ var zigAnalysis;
1989
1996
}
1990
1997
} else if ( "type" in value ) {
1991
1998
let name = exprName ( value , {
1999
+ ...opts ,
1992
2000
wantHtml : false ,
1993
2001
wantLink : false ,
1994
- fnDecl : opts . fnDecl ,
1995
- linkFnNameDecl : opts . linkFnNameDecl ,
1996
2002
} ) ;
1997
2003
payloadHtml += '<span class="tok-kw">' + name + "</span>" ;
1998
2004
} else if ( "binOpIndex" in value ) {
@@ -2032,12 +2038,19 @@ var zigAnalysis;
2032
2038
payloadHtml += "!" ;
2033
2039
}
2034
2040
if ( fnObj . ret != null ) {
2035
- payloadHtml += exprName ( fnObj . ret , opts ) ;
2041
+ payloadHtml += exprName ( fnObj . ret , {
2042
+ ...opts ,
2043
+ addParensIfFnSignature : true ,
2044
+ } ) ;
2036
2045
} else if ( opts . wantHtml ) {
2037
2046
payloadHtml += '<span class="tok-kw">anytype</span>' ;
2038
2047
} else {
2039
2048
payloadHtml += "anytype" ;
2040
2049
}
2050
+
2051
+ if ( opts . addParensIfFnSignature && fnObj . src == 0 ) {
2052
+ payloadHtml += ")" ;
2053
+ }
2041
2054
return payloadHtml ;
2042
2055
}
2043
2056
// if (wantHtml) {
0 commit comments