Repository: seaofvoices/darklua
Pull request #137 (2023-10-27 16:13:18)

Fix type packs, function variadic types and variadic type packs
- [x] add entry to the changelog


github-actions[bot]: Coverage after merging <b>fix-type-packs-and-variadic-types</b> into <b>main</b> will be<table><tbody><tr><th>87.03%</th></tr></tbody></table>

<details><summary>Coverage Report for Changed Files</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs'>ast_converter.rs</a></td><td><b>88.01%</b></td><td>100%</td><td><b>89.72%</b></td><td><b>87.92%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1013'>1013</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1033'>1033</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1048'>1048</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1073'>1073</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1090'>1090</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1111'>1111</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1130-L1132'>1130&ndash;1132</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1149'>1149</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1177'>1177</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1211'>1211</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1226'>1226</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1242-L1244'>1242&ndash;1244</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1254'>1254</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1259-L1261'>1259&ndash;1261</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1276'>1276</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1296'>1296</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1427-L1429'>1427&ndash;1429</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1490-L1492'>1490&ndash;1492</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1543-L1545'>1543&ndash;1545</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1569-L1572'>1569&ndash;1572</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1607-L1609'>1607&ndash;1609</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1637-L1639'>1637&ndash;1639</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1643-L1645'>1643&ndash;1645</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1708-L1709'>1708&ndash;1709</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1738-L1740'>1738&ndash;1740</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1747-L1749'>1747&ndash;1749</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1768-L1770'>1768&ndash;1770</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1786-L1788'>1786&ndash;1788</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1793-L1795'>1793&ndash;1795</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1861'>1861</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1866-L1868'>1866&ndash;1868</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1888'>1888</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1894-L1896'>1894&ndash;1896</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1901-L1903'>1901&ndash;1903</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1931-L1933'>1931&ndash;1933</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1957'>1957</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L1993'>1993</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2011-L2013'>2011&ndash;2013</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2037-L2040'>2037&ndash;2040</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2070-L2072'>2070&ndash;2072</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2083-L2085'>2083&ndash;2085</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L212-L214'>212&ndash;214</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2147-L2149'>2147&ndash;2149</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2161-L2163'>2161&ndash;2163</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2167-L2169'>2167&ndash;2169</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2203'>2203</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2286-L2288'>2286&ndash;2288</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L229-L231'>229&ndash;231</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2316-L2318'>2316&ndash;2318</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2339-L2341'>2339&ndash;2341</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2371-L2373'>2371&ndash;2373</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2389'>2389</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2393'>2393</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2416-L2418'>2416&ndash;2418</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2430-L2432'>2430&ndash;2432</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2451-L2453'>2451&ndash;2453</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2508-L2510'>2508&ndash;2510</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2544-L2547'>2544&ndash;2547</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2587-L2589'>2587&ndash;2589</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L259'>259</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2590-L2591'>2590&ndash;2591</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L260'>260</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2608'>2608</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L261'>261</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2635'>2635</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2825'>2825</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2898-L2905'>2898&ndash;2905</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2907-L2914'>2907&ndash;2914</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2916-L2926'>2916&ndash;2926</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2935'>2935</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2937-L2942'>2937&ndash;2942</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2945'>2945</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2970-L2972'>2970&ndash;2972</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L2983-L2985'>2983&ndash;2985</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L3002-L3004'>3002&ndash;3004</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L479'>479</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L494-L496'>494&ndash;496</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L531-L533'>531&ndash;533</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L541'>541</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L555'>555</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L570-L572'>570&ndash;572</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L576-L578'>576&ndash;578</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L593-L595'>593&ndash;595</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L599'>599</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L608-L610'>608&ndash;610</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L651'>651</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L662-L664'>662&ndash;664</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L670-L672'>670&ndash;672</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L691'>691</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L715'>715</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L802'>802</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L806-L808'>806&ndash;808</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L888'>888</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L912'>912</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L924'>924</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L956'>956</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L973'>973</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L977-L980'>977&ndash;980</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/ast_converter.rs#L994'>994</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/parser.rs'>parser.rs</a></td><td><b>99.10%</b></td><td>100%</td><td><b>73.33%</b></td><td><b>99.35%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/parser.rs#L37'>37</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/parser.rs#L43'>43</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/parser.rs#L452-L458'>452&ndash;458</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/parser.rs#L55-L59'>55&ndash;59</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/parser.rs#L66'>66</a></td></tr><tr><td colspan='6'><b>src/generator</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs'>dense.rs</a></td><td><b>86.68%</b></td><td>100%</td><td><b>90.11%</b></td><td><b>86.35%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1004'>1004</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1013-L1014'>1013&ndash;1014</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1019'>1019</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1025'>1025</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1034-L1042'>1034&ndash;1042</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1044-L1050'>1044&ndash;1050</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1052-L1060'>1052&ndash;1060</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1065'>1065</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1074'>1074</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1086-L1089'>1086&ndash;1089</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L1093-L1096'>1093&ndash;1096</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L147-L148'>147&ndash;148</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L150'>150</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L164-L165'>164&ndash;165</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L167'>167</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L241-L253'>241&ndash;253</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L255-L261'>255&ndash;261</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L263-L264'>263&ndash;264</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L275-L277'>275&ndash;277</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L356'>356</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L404'>404</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L494'>494</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L50-L55'>50&ndash;55</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L57-L59'>57&ndash;59</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L6'>6</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L601-L603'>601&ndash;603</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L61-L63'>61&ndash;63</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L65-L67'>65&ndash;67</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L672'>672</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L68-L69'>68&ndash;69</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L691'>691</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L882'>882</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L900'>900</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L917'>917</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L943-L950'>943&ndash;950</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L969-L975'>969&ndash;975</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/dense.rs#L992-L996'>992&ndash;996</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/mod.rs'>mod.rs</a></td><td><b>98.68%</b></td><td>100%</td><td>100%</td><td><b>98.57%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/mod.rs#L351'>351</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/mod.rs#L367'>367</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/mod.rs#L371'>371</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs'>readable.rs</a></td><td><b>96.75%</b></td><td>100%</td><td><b>95.28%</b></td><td><b>96.89%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L1110'>1110</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L1134-L1138'>1134&ndash;1138</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L1189'>1189</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L1286'>1286</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L1296'>1296</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L1305'>1305</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L1314'>1314</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L1323'>1323</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L192-L193'>192&ndash;193</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L198'>198</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L203'>203</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L221-L222'>221&ndash;222</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L402'>402</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L46-L51'>46&ndash;51</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L53'>53</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L58'>58</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L644-L645'>644&ndash;645</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/readable.rs#L832-L834'>832&ndash;834</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs'>token_based.rs</a></td><td><b>91.50%</b></td><td>100%</td><td><b>93.99%</b></td><td><b>91.26%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L10'>10</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1000-L1001'>1000&ndash;1001</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1015-L1017'>1015&ndash;1017</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1031-L1033'>1031&ndash;1033</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1042-L1044'>1042&ndash;1044</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1053-L1055'>1053&ndash;1055</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1064-L1066'>1064&ndash;1066</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L113'>113</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1215'>1215</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1285'>1285</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L130-L131'>130&ndash;131</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1322-L1330'>1322&ndash;1330</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1406-L1415'>1406&ndash;1415</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1440-L1442'>1440&ndash;1442</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1444-L1446'>1444&ndash;1446</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1463-L1469'>1463&ndash;1469</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L147'>147</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1470-L1472'>1470&ndash;1472</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L148'>148</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1547'>1547</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L160-L161'>160&ndash;161</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L182-L183'>182&ndash;183</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L1992-L1993'>1992&ndash;1993</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L2019-L2023'>2019&ndash;2023</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L203-L205'>203&ndash;205</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L2052-L2056'>2052&ndash;2056</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L2063-L2067'>2063&ndash;2067</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L2269'>2269</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L2273'>2273</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L2286'>2286</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L245'>245</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L297-L301'>297&ndash;301</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L370-L371'>370&ndash;371</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L377'>377</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L389'>389</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L449-L450'>449&ndash;450</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L472-L473'>472&ndash;473</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L489-L490'>489&ndash;490</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L532'>532</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L620-L621'>620&ndash;621</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L654-L655'>654&ndash;655</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L697'>697</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L703-L705'>703&ndash;705</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L723-L724'>723&ndash;724</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L765-L766'>765&ndash;766</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L80'>80</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L807-L811'>807&ndash;811</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L829-L830'>829&ndash;830</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L84'>84</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L903-L904'>903&ndash;904</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L913-L914'>913&ndash;914</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L921'>921</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L936'>936</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L941-L945'>941&ndash;945</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L964-L965'>964&ndash;965</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/generator/token_based.rs#L978-L979'>978&ndash;979</a></td></tr><tr><td colspan='6'><b>src/nodes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/function_body.rs'>function_body.rs</a></td><td><b>99.12%</b></td><td>100%</td><td><b>96.30%</b></td><td><b>99.50%</b></td><td></td></tr><tr><td colspan='6'><b>src/nodes/expressions</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/expressions/function.rs'>function.rs</a></td><td><b>86.73%</b></td><td>100%</td><td><b>88.10%</b></td><td><b>86.41%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/expressions/function.rs#L131-L133'>131&ndash;133</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/expressions/function.rs#L191-L193'>191&ndash;193</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/expressions/function.rs#L212'>212</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/expressions/function.rs#L224'>224</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/expressions/function.rs#L243-L253'>243&ndash;253</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/expressions/function.rs#L42-L45'>42&ndash;45</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/expressions/function.rs#L91'>91</a></td></tr><tr><td colspan='6'><b>src/nodes/statements</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs'>function.rs</a></td><td><b>86.08%</b></td><td>100%</td><td><b>84.29%</b></td><td><b>86.46%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L123-L125'>123&ndash;125</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L174-L183'>174&ndash;183</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L36-L37'>36&ndash;37</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L378-L379'>378&ndash;379</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L38'>38</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L380'>380</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L39-L40'>39&ndash;40</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L400'>400</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L41'>41</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L413'>413</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L42-L43'>42&ndash;43</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/function.rs#L433-L444'>433&ndash;444</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/local_function.rs'>local_function.rs</a></td><td><b>93.69%</b></td><td>100%</td><td><b>91.38%</b></td><td><b>94.24%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/local_function.rs#L117-L121'>117&ndash;121</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/local_function.rs#L235-L237'>235&ndash;237</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/local_function.rs#L267'>267</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/local_function.rs#L280'>280</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/statements/local_function.rs#L306'>306</a></td></tr><tr><td colspan='6'><b>src/nodes/types</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/types/function_variadic_type.rs'>function_variadic_type.rs</a></td><td><b>85.71%</b></td><td>100%</td><td><b>80%</b></td><td><b>88.89%</b></td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/types/mod.rs'>mod.rs</a></td><td><b>88.57%</b></td><td>100%</td><td><b>88.89%</b></td><td><b>88.46%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/types/mod.rs#L73-L76'>73&ndash;76</a>, <a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/nodes/types/mod.rs#L78'>78</a></td></tr><tr><td colspan='6'><b>src/process</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/process/visitors.rs'>visitors.rs</a></td><td><b>99.04%</b></td><td>100%</td><td>100%</td><td><b>98.95%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/bb17581f39823ecc349c78899c6102cae7a6e22f/src/process/visitors.rs#L268-L273'>268&ndash;273</a></td></tr></tbody></table></details>
github-actions[bot]: Coverage after merging <b>fix-type-packs-and-variadic-types</b> into <b>main</b> will be<table><tbody><tr><th>87.07%</th></tr></tbody></table>

<details><summary>Coverage Report for Changed Files</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs'>ast_converter.rs</a></td><td><b>88.01%</b></td><td>100%</td><td><b>89.72%</b></td><td><b>87.92%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1013'>1013</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1033'>1033</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1048'>1048</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1073'>1073</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1090'>1090</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1111'>1111</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1130-L1132'>1130&ndash;1132</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1149'>1149</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1177'>1177</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1211'>1211</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1226'>1226</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1242-L1244'>1242&ndash;1244</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1254'>1254</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1259-L1261'>1259&ndash;1261</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1276'>1276</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1296'>1296</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1427-L1429'>1427&ndash;1429</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1490-L1492'>1490&ndash;1492</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1543-L1545'>1543&ndash;1545</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1569-L1572'>1569&ndash;1572</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1607-L1609'>1607&ndash;1609</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1637-L1639'>1637&ndash;1639</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1643-L1645'>1643&ndash;1645</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1708-L1709'>1708&ndash;1709</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1738-L1740'>1738&ndash;1740</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1747-L1749'>1747&ndash;1749</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1768-L1770'>1768&ndash;1770</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1786-L1788'>1786&ndash;1788</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1793-L1795'>1793&ndash;1795</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1861'>1861</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1866-L1868'>1866&ndash;1868</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1888'>1888</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1894-L1896'>1894&ndash;1896</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1901-L1903'>1901&ndash;1903</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1931-L1933'>1931&ndash;1933</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1957'>1957</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L1993'>1993</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2011-L2013'>2011&ndash;2013</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2037-L2040'>2037&ndash;2040</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2070-L2072'>2070&ndash;2072</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2083-L2085'>2083&ndash;2085</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L212-L214'>212&ndash;214</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2147-L2149'>2147&ndash;2149</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2161-L2163'>2161&ndash;2163</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2167-L2169'>2167&ndash;2169</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2203'>2203</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2286-L2288'>2286&ndash;2288</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L229-L231'>229&ndash;231</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2316-L2318'>2316&ndash;2318</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2339-L2341'>2339&ndash;2341</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2371-L2373'>2371&ndash;2373</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2389'>2389</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2393'>2393</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2416-L2418'>2416&ndash;2418</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2430-L2432'>2430&ndash;2432</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2451-L2453'>2451&ndash;2453</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2508-L2510'>2508&ndash;2510</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2544-L2547'>2544&ndash;2547</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2587-L2589'>2587&ndash;2589</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L259'>259</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2590-L2591'>2590&ndash;2591</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L260-L261'>260&ndash;261</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2635'>2635</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2825'>2825</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2898-L2905'>2898&ndash;2905</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2907-L2914'>2907&ndash;2914</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2916-L2926'>2916&ndash;2926</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2935'>2935</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2937-L2942'>2937&ndash;2942</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2945'>2945</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2970-L2972'>2970&ndash;2972</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L2983-L2985'>2983&ndash;2985</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L3002-L3004'>3002&ndash;3004</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L479'>479</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L494-L496'>494&ndash;496</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L531-L533'>531&ndash;533</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L541'>541</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L555'>555</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L570-L572'>570&ndash;572</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L576-L578'>576&ndash;578</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L593-L595'>593&ndash;595</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L599'>599</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L608-L610'>608&ndash;610</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L651'>651</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L662-L664'>662&ndash;664</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L670-L672'>670&ndash;672</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L691'>691</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L715'>715</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L802'>802</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L806-L808'>806&ndash;808</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L888'>888</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L912'>912</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L924'>924</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L956'>956</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L973'>973</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L977-L980'>977&ndash;980</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/ast_converter.rs#L994'>994</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/parser.rs'>parser.rs</a></td><td><b>99.10%</b></td><td>100%</td><td><b>73.33%</b></td><td><b>99.35%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/parser.rs#L37'>37</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/parser.rs#L43'>43</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/parser.rs#L452-L458'>452&ndash;458</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/parser.rs#L55-L59'>55&ndash;59</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/parser.rs#L66'>66</a></td></tr><tr><td colspan='6'><b>src/generator</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs'>dense.rs</a></td><td><b>86.68%</b></td><td>100%</td><td><b>90.11%</b></td><td><b>86.35%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1004'>1004</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1013-L1014'>1013&ndash;1014</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1019'>1019</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1025'>1025</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1034-L1042'>1034&ndash;1042</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1044-L1050'>1044&ndash;1050</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1052-L1060'>1052&ndash;1060</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1065'>1065</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1074'>1074</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1086-L1089'>1086&ndash;1089</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L1093-L1096'>1093&ndash;1096</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L147-L148'>147&ndash;148</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L150'>150</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L164-L165'>164&ndash;165</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L167'>167</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L241-L253'>241&ndash;253</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L255-L261'>255&ndash;261</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L263-L264'>263&ndash;264</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L275-L277'>275&ndash;277</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L356'>356</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L404'>404</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L494'>494</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L50-L55'>50&ndash;55</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L57-L59'>57&ndash;59</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L6'>6</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L601-L603'>601&ndash;603</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L61-L63'>61&ndash;63</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L65-L67'>65&ndash;67</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L672'>672</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L68-L69'>68&ndash;69</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L691'>691</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L882'>882</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L900'>900</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L917'>917</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L943-L950'>943&ndash;950</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L969-L975'>969&ndash;975</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/dense.rs#L992-L996'>992&ndash;996</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/mod.rs'>mod.rs</a></td><td><b>98.68%</b></td><td>100%</td><td>100%</td><td><b>98.57%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/mod.rs#L351'>351</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/mod.rs#L367'>367</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/mod.rs#L371'>371</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs'>readable.rs</a></td><td><b>96.75%</b></td><td>100%</td><td><b>95.28%</b></td><td><b>96.89%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L1110'>1110</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L1134-L1138'>1134&ndash;1138</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L1189'>1189</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L1286'>1286</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L1296'>1296</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L1305'>1305</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L1314'>1314</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L1323'>1323</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L192-L193'>192&ndash;193</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L198'>198</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L203'>203</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L221-L222'>221&ndash;222</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L402'>402</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L46-L51'>46&ndash;51</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L53'>53</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L58'>58</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L644-L645'>644&ndash;645</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/readable.rs#L832-L834'>832&ndash;834</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs'>token_based.rs</a></td><td><b>91.50%</b></td><td>100%</td><td><b>93.99%</b></td><td><b>91.26%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L10'>10</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1000-L1001'>1000&ndash;1001</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1015-L1017'>1015&ndash;1017</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1031-L1033'>1031&ndash;1033</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1042-L1044'>1042&ndash;1044</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1053-L1055'>1053&ndash;1055</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1064-L1066'>1064&ndash;1066</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L113'>113</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1215'>1215</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1285'>1285</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L130-L131'>130&ndash;131</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1322-L1330'>1322&ndash;1330</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1406-L1415'>1406&ndash;1415</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1440-L1442'>1440&ndash;1442</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1444-L1446'>1444&ndash;1446</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1463-L1469'>1463&ndash;1469</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L147'>147</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1470-L1472'>1470&ndash;1472</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L148'>148</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1547'>1547</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L160-L161'>160&ndash;161</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L182-L183'>182&ndash;183</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L1992-L1993'>1992&ndash;1993</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L2019-L2023'>2019&ndash;2023</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L203-L205'>203&ndash;205</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L2052-L2056'>2052&ndash;2056</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L2063-L2067'>2063&ndash;2067</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L2269'>2269</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L2273'>2273</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L2286'>2286</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L245'>245</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L297-L301'>297&ndash;301</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L370-L371'>370&ndash;371</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L377'>377</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L389'>389</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L449-L450'>449&ndash;450</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L472-L473'>472&ndash;473</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L489-L490'>489&ndash;490</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L532'>532</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L620-L621'>620&ndash;621</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L654-L655'>654&ndash;655</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L697'>697</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L703-L705'>703&ndash;705</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L723-L724'>723&ndash;724</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L765-L766'>765&ndash;766</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L80'>80</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L807-L811'>807&ndash;811</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L829-L830'>829&ndash;830</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L84'>84</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L903-L904'>903&ndash;904</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L913-L914'>913&ndash;914</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L921'>921</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L936'>936</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L941-L945'>941&ndash;945</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L964-L965'>964&ndash;965</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/generator/token_based.rs#L978-L979'>978&ndash;979</a></td></tr><tr><td colspan='6'><b>src/nodes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/function_body.rs'>function_body.rs</a></td><td><b>99.12%</b></td><td>100%</td><td><b>96.30%</b></td><td><b>99.50%</b></td><td></td></tr><tr><td colspan='6'><b>src/nodes/expressions</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/expressions/function.rs'>function.rs</a></td><td><b>86.73%</b></td><td>100%</td><td><b>88.10%</b></td><td><b>86.41%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/expressions/function.rs#L131-L133'>131&ndash;133</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/expressions/function.rs#L191-L193'>191&ndash;193</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/expressions/function.rs#L212'>212</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/expressions/function.rs#L224'>224</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/expressions/function.rs#L243-L253'>243&ndash;253</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/expressions/function.rs#L42-L45'>42&ndash;45</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/expressions/function.rs#L91'>91</a></td></tr><tr><td colspan='6'><b>src/nodes/statements</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs'>function.rs</a></td><td><b>86.08%</b></td><td>100%</td><td><b>84.29%</b></td><td><b>86.46%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L123-L125'>123&ndash;125</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L174-L183'>174&ndash;183</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L36-L37'>36&ndash;37</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L378-L379'>378&ndash;379</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L38'>38</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L380'>380</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L39-L40'>39&ndash;40</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L400'>400</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L41'>41</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L413'>413</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L42-L43'>42&ndash;43</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/function.rs#L433-L444'>433&ndash;444</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/local_function.rs'>local_function.rs</a></td><td><b>93.69%</b></td><td>100%</td><td><b>91.38%</b></td><td><b>94.24%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/local_function.rs#L117-L121'>117&ndash;121</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/local_function.rs#L235-L237'>235&ndash;237</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/local_function.rs#L267'>267</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/local_function.rs#L280'>280</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/statements/local_function.rs#L306'>306</a></td></tr><tr><td colspan='6'><b>src/nodes/types</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/types/function_variadic_type.rs'>function_variadic_type.rs</a></td><td><b>85.71%</b></td><td>100%</td><td><b>80%</b></td><td><b>88.89%</b></td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/types/mod.rs'>mod.rs</a></td><td><b>88.57%</b></td><td>100%</td><td><b>88.89%</b></td><td><b>88.46%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/types/mod.rs#L73-L76'>73&ndash;76</a>, <a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/nodes/types/mod.rs#L78'>78</a></td></tr><tr><td colspan='6'><b>src/process</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/process/visitors.rs'>visitors.rs</a></td><td><b>99.04%</b></td><td>100%</td><td>100%</td><td><b>98.95%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/60224acc8b3783fbd5546de3ed17caece2deb68c/src/process/visitors.rs#L268-L273'>268&ndash;273</a></td></tr></tbody></table></details>
github-actions[bot]: Coverage after merging <b>fix-type-packs-and-variadic-types</b> into <b>main</b> will be<table><tbody><tr><th>87.09%</th></tr></tbody></table>

<details><summary>Coverage Report for Changed Files</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs'>ast_converter.rs</a></td><td><b>88.14%</b></td><td>100%</td><td><b>89.72%</b></td><td><b>88.06%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1013'>1013</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1033'>1033</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1048'>1048</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1073'>1073</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1090'>1090</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1111'>1111</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1130-L1132'>1130&ndash;1132</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1149'>1149</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1177'>1177</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1211'>1211</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1226'>1226</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1242-L1244'>1242&ndash;1244</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1254'>1254</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1259-L1261'>1259&ndash;1261</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1276'>1276</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1296'>1296</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1427-L1429'>1427&ndash;1429</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1490-L1492'>1490&ndash;1492</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1543-L1545'>1543&ndash;1545</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1569-L1572'>1569&ndash;1572</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1607-L1609'>1607&ndash;1609</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1637-L1639'>1637&ndash;1639</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1643-L1645'>1643&ndash;1645</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1708-L1709'>1708&ndash;1709</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1738-L1740'>1738&ndash;1740</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1747-L1749'>1747&ndash;1749</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1768-L1770'>1768&ndash;1770</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1786-L1788'>1786&ndash;1788</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1793-L1795'>1793&ndash;1795</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1861'>1861</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1866-L1868'>1866&ndash;1868</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1888'>1888</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1894-L1896'>1894&ndash;1896</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1901-L1903'>1901&ndash;1903</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1931-L1933'>1931&ndash;1933</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1957'>1957</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L1993'>1993</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2011-L2013'>2011&ndash;2013</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2037-L2040'>2037&ndash;2040</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2070-L2072'>2070&ndash;2072</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2083-L2085'>2083&ndash;2085</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L212-L214'>212&ndash;214</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2147-L2149'>2147&ndash;2149</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2161-L2163'>2161&ndash;2163</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2167-L2169'>2167&ndash;2169</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2203'>2203</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2286-L2288'>2286&ndash;2288</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L229-L231'>229&ndash;231</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2316-L2318'>2316&ndash;2318</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2339-L2341'>2339&ndash;2341</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2371-L2373'>2371&ndash;2373</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2389'>2389</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2393'>2393</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2416-L2418'>2416&ndash;2418</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2430-L2432'>2430&ndash;2432</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2451-L2453'>2451&ndash;2453</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2508-L2510'>2508&ndash;2510</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2544-L2547'>2544&ndash;2547</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2587-L2589'>2587&ndash;2589</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L259'>259</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2590-L2591'>2590&ndash;2591</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L260'>260</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2608'>2608</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L261'>261</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2635'>2635</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2825'>2825</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2898-L2905'>2898&ndash;2905</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2907-L2914'>2907&ndash;2914</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2916-L2926'>2916&ndash;2926</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2935'>2935</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2937-L2942'>2937&ndash;2942</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2945'>2945</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2970-L2972'>2970&ndash;2972</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L2983-L2985'>2983&ndash;2985</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L3002-L3004'>3002&ndash;3004</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L479'>479</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L494-L496'>494&ndash;496</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L531-L533'>531&ndash;533</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L541'>541</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L555'>555</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L570-L572'>570&ndash;572</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L576-L578'>576&ndash;578</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L593-L595'>593&ndash;595</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L599'>599</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L608-L610'>608&ndash;610</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L651'>651</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L662-L664'>662&ndash;664</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L670-L672'>670&ndash;672</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L691'>691</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L715'>715</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L802'>802</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L806-L808'>806&ndash;808</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L888'>888</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L912'>912</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L924'>924</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L956'>956</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L973'>973</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L977-L980'>977&ndash;980</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/ast_converter.rs#L994'>994</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/parser.rs'>parser.rs</a></td><td><b>99.10%</b></td><td>100%</td><td><b>73.33%</b></td><td><b>99.35%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/parser.rs#L37'>37</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/parser.rs#L43'>43</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/parser.rs#L452-L458'>452&ndash;458</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/parser.rs#L55-L59'>55&ndash;59</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/parser.rs#L66'>66</a></td></tr><tr><td colspan='6'><b>src/generator</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs'>dense.rs</a></td><td><b>86.68%</b></td><td>100%</td><td><b>90.11%</b></td><td><b>86.35%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1004'>1004</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1013-L1014'>1013&ndash;1014</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1019'>1019</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1025'>1025</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1034-L1042'>1034&ndash;1042</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1044-L1050'>1044&ndash;1050</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1052-L1060'>1052&ndash;1060</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1065'>1065</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1074'>1074</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1086-L1089'>1086&ndash;1089</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L1093-L1096'>1093&ndash;1096</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L147-L148'>147&ndash;148</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L150'>150</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L164-L165'>164&ndash;165</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L167'>167</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L241-L253'>241&ndash;253</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L255-L261'>255&ndash;261</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L263-L264'>263&ndash;264</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L275-L277'>275&ndash;277</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L356'>356</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L404'>404</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L494'>494</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L50-L55'>50&ndash;55</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L57-L59'>57&ndash;59</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L6'>6</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L601-L603'>601&ndash;603</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L61-L63'>61&ndash;63</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L65-L67'>65&ndash;67</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L672'>672</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L68-L69'>68&ndash;69</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L691'>691</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L882'>882</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L900'>900</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L917'>917</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L943-L950'>943&ndash;950</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L969-L975'>969&ndash;975</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/dense.rs#L992-L996'>992&ndash;996</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/mod.rs'>mod.rs</a></td><td><b>98.25%</b></td><td>100%</td><td>100%</td><td><b>98.10%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/mod.rs#L351'>351</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/mod.rs#L367'>367</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/mod.rs#L371'>371</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs'>readable.rs</a></td><td><b>96.59%</b></td><td>100%</td><td><b>95.28%</b></td><td><b>96.71%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1110'>1110</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1134-L1138'>1134&ndash;1138</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1158-L1159'>1158&ndash;1159</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1189'>1189</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1286'>1286</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1296'>1296</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1305'>1305</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1314'>1314</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L1323'>1323</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L192-L193'>192&ndash;193</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L198'>198</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L203'>203</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L221-L222'>221&ndash;222</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L402'>402</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L46-L51'>46&ndash;51</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L53'>53</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L58'>58</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L644-L645'>644&ndash;645</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/readable.rs#L832-L834'>832&ndash;834</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs'>token_based.rs</a></td><td><b>91.36%</b></td><td>100%</td><td><b>93.99%</b></td><td><b>91.11%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L10'>10</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1000-L1001'>1000&ndash;1001</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1015-L1017'>1015&ndash;1017</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1031-L1033'>1031&ndash;1033</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1042-L1044'>1042&ndash;1044</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1053-L1055'>1053&ndash;1055</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1064-L1066'>1064&ndash;1066</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L113'>113</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1215'>1215</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1285'>1285</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L130-L131'>130&ndash;131</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1322-L1330'>1322&ndash;1330</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1406-L1415'>1406&ndash;1415</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1440-L1442'>1440&ndash;1442</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1444-L1446'>1444&ndash;1446</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1463-L1469'>1463&ndash;1469</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L147'>147</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1470-L1472'>1470&ndash;1472</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L148'>148</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1547'>1547</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L160-L161'>160&ndash;161</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L182-L183'>182&ndash;183</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L1992-L1993'>1992&ndash;1993</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L2019-L2023'>2019&ndash;2023</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L203-L205'>203&ndash;205</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L2052-L2056'>2052&ndash;2056</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L2063-L2067'>2063&ndash;2067</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L2269'>2269</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L2273'>2273</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L2286'>2286</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L245'>245</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L297-L301'>297&ndash;301</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L370-L371'>370&ndash;371</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L377'>377</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L389'>389</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L449-L450'>449&ndash;450</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L472-L473'>472&ndash;473</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L489-L490'>489&ndash;490</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L532'>532</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L620-L621'>620&ndash;621</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L654-L655'>654&ndash;655</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L703-L705'>703&ndash;705</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L723-L724'>723&ndash;724</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L762-L766'>762&ndash;766</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L80'>80</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L807-L811'>807&ndash;811</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L829-L830'>829&ndash;830</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L84'>84</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L903-L904'>903&ndash;904</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L913-L914'>913&ndash;914</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L921'>921</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L936'>936</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L941-L945'>941&ndash;945</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L964-L965'>964&ndash;965</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/generator/token_based.rs#L978-L979'>978&ndash;979</a></td></tr><tr><td colspan='6'><b>src/nodes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/function_body.rs'>function_body.rs</a></td><td><b>99.12%</b></td><td>100%</td><td><b>96.30%</b></td><td><b>99.50%</b></td><td></td></tr><tr><td colspan='6'><b>src/nodes/expressions</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/expressions/function.rs'>function.rs</a></td><td><b>86.73%</b></td><td>100%</td><td><b>88.10%</b></td><td><b>86.41%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/expressions/function.rs#L131-L133'>131&ndash;133</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/expressions/function.rs#L191-L193'>191&ndash;193</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/expressions/function.rs#L212'>212</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/expressions/function.rs#L224'>224</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/expressions/function.rs#L243-L253'>243&ndash;253</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/expressions/function.rs#L42-L45'>42&ndash;45</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/expressions/function.rs#L91'>91</a></td></tr><tr><td colspan='6'><b>src/nodes/statements</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs'>function.rs</a></td><td><b>87.09%</b></td><td>100%</td><td><b>87.14%</b></td><td><b>87.08%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L123-L125'>123&ndash;125</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L174-L183'>174&ndash;183</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L36-L37'>36&ndash;37</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L378-L379'>378&ndash;379</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L38'>38</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L380'>380</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L39-L40'>39&ndash;40</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L400'>400</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L41'>41</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L413'>413</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L42-L43'>42&ndash;43</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/function.rs#L433-L444'>433&ndash;444</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/local_function.rs'>local_function.rs</a></td><td><b>93.69%</b></td><td>100%</td><td><b>91.38%</b></td><td><b>94.24%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/local_function.rs#L117-L121'>117&ndash;121</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/local_function.rs#L235-L237'>235&ndash;237</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/local_function.rs#L267'>267</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/local_function.rs#L280'>280</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/statements/local_function.rs#L306'>306</a></td></tr><tr><td colspan='6'><b>src/nodes/types</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/types/function_variadic_type.rs'>function_variadic_type.rs</a></td><td><b>85.71%</b></td><td>100%</td><td><b>80%</b></td><td><b>88.89%</b></td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/types/mod.rs'>mod.rs</a></td><td><b>88.57%</b></td><td>100%</td><td><b>88.89%</b></td><td><b>88.46%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/types/mod.rs#L73-L76'>73&ndash;76</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/nodes/types/mod.rs#L78'>78</a></td></tr><tr><td colspan='6'><b>src/process</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/process/visitors.rs'>visitors.rs</a></td><td><b>99.04%</b></td><td>100%</td><td>100%</td><td><b>98.95%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/process/visitors.rs#L271-L273'>271&ndash;273</a>, <a href='https://github.com/seaofvoices/darklua/blob/1b5d0705904ec6906df6d0b6215d26608f992653/src/process/visitors.rs#L285-L287'>285&ndash;287</a></td></tr></tbody></table></details>
github-actions[bot]: Coverage after merging <b>fix-type-packs-and-variadic-types</b> into <b>main</b> will be<table><tbody><tr><th>87.19%</th></tr></tbody></table>

<details><summary>Coverage Report for Changed Files</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs'>ast_converter.rs</a></td><td><b>87.96%</b></td><td>100%</td><td><b>89.72%</b></td><td><b>87.88%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1013'>1013</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1033'>1033</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1048'>1048</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1073'>1073</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1090'>1090</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1111'>1111</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1130-L1132'>1130&ndash;1132</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1149'>1149</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1177'>1177</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1211'>1211</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1226'>1226</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1242-L1244'>1242&ndash;1244</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1254'>1254</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1259-L1261'>1259&ndash;1261</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1276'>1276</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1296'>1296</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1427-L1429'>1427&ndash;1429</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1490-L1492'>1490&ndash;1492</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1543-L1545'>1543&ndash;1545</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1569-L1572'>1569&ndash;1572</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1607-L1609'>1607&ndash;1609</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1637-L1639'>1637&ndash;1639</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1643-L1645'>1643&ndash;1645</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1708-L1709'>1708&ndash;1709</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1738-L1740'>1738&ndash;1740</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1747-L1749'>1747&ndash;1749</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1768-L1770'>1768&ndash;1770</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1786-L1788'>1786&ndash;1788</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1793-L1795'>1793&ndash;1795</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1861'>1861</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1866-L1868'>1866&ndash;1868</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1888'>1888</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1894-L1896'>1894&ndash;1896</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1901-L1903'>1901&ndash;1903</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1931-L1933'>1931&ndash;1933</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1957'>1957</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L1993'>1993</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2011-L2013'>2011&ndash;2013</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2037-L2040'>2037&ndash;2040</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2070-L2072'>2070&ndash;2072</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2083-L2085'>2083&ndash;2085</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L212-L214'>212&ndash;214</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2147-L2149'>2147&ndash;2149</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2161-L2163'>2161&ndash;2163</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2167-L2169'>2167&ndash;2169</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2203'>2203</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2286-L2288'>2286&ndash;2288</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L229-L231'>229&ndash;231</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2316-L2318'>2316&ndash;2318</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2339-L2341'>2339&ndash;2341</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2371-L2373'>2371&ndash;2373</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2389'>2389</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2393'>2393</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2416-L2418'>2416&ndash;2418</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2430-L2432'>2430&ndash;2432</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2451-L2453'>2451&ndash;2453</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2508-L2510'>2508&ndash;2510</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2544-L2547'>2544&ndash;2547</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2587-L2589'>2587&ndash;2589</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L259'>259</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2590-L2591'>2590&ndash;2591</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L260'>260</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2608-L2609'>2608&ndash;2609</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L261'>261</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2635'>2635</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2825'>2825</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2898-L2905'>2898&ndash;2905</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2907-L2914'>2907&ndash;2914</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2916-L2926'>2916&ndash;2926</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2935'>2935</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2937-L2942'>2937&ndash;2942</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2945'>2945</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2970-L2972'>2970&ndash;2972</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L2983-L2985'>2983&ndash;2985</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L3002-L3004'>3002&ndash;3004</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L479'>479</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L494-L496'>494&ndash;496</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L531-L533'>531&ndash;533</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L541'>541</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L555'>555</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L570-L572'>570&ndash;572</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L576-L578'>576&ndash;578</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L593-L595'>593&ndash;595</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L599'>599</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L608-L610'>608&ndash;610</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L651'>651</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L662-L664'>662&ndash;664</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L670-L672'>670&ndash;672</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L691'>691</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L715'>715</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L802'>802</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L806-L808'>806&ndash;808</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L888'>888</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L912'>912</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L924'>924</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L956'>956</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L973'>973</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L977-L980'>977&ndash;980</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/ast_converter.rs#L994'>994</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/parser.rs'>parser.rs</a></td><td><b>99.10%</b></td><td>100%</td><td><b>73.33%</b></td><td><b>99.35%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/parser.rs#L37'>37</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/parser.rs#L43'>43</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/parser.rs#L452-L458'>452&ndash;458</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/parser.rs#L55-L59'>55&ndash;59</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/parser.rs#L66'>66</a></td></tr><tr><td colspan='6'><b>src/generator</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs'>dense.rs</a></td><td><b>86.68%</b></td><td>100%</td><td><b>90.11%</b></td><td><b>86.35%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1004'>1004</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1013-L1014'>1013&ndash;1014</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1019'>1019</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1025'>1025</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1034-L1042'>1034&ndash;1042</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1044-L1050'>1044&ndash;1050</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1052-L1060'>1052&ndash;1060</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1065'>1065</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1074'>1074</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1086-L1089'>1086&ndash;1089</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L1093-L1096'>1093&ndash;1096</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L147-L148'>147&ndash;148</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L150'>150</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L164-L165'>164&ndash;165</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L167'>167</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L241-L253'>241&ndash;253</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L255-L261'>255&ndash;261</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L263-L264'>263&ndash;264</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L275-L277'>275&ndash;277</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L356'>356</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L404'>404</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L494'>494</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L50-L55'>50&ndash;55</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L57-L59'>57&ndash;59</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L6'>6</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L601-L603'>601&ndash;603</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L61-L63'>61&ndash;63</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L65-L67'>65&ndash;67</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L672'>672</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L68-L69'>68&ndash;69</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L691'>691</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L882'>882</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L900'>900</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L917'>917</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L943-L950'>943&ndash;950</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L969-L975'>969&ndash;975</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/dense.rs#L992-L996'>992&ndash;996</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/mod.rs'>mod.rs</a></td><td><b>98.68%</b></td><td>100%</td><td>100%</td><td><b>98.57%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/mod.rs#L351'>351</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/mod.rs#L367'>367</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/mod.rs#L371'>371</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs'>readable.rs</a></td><td><b>96.83%</b></td><td>100%</td><td><b>95.28%</b></td><td><b>96.97%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1110'>1110</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1134-L1138'>1134&ndash;1138</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1158-L1159'>1158&ndash;1159</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1189'>1189</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1286'>1286</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1296'>1296</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1305'>1305</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1314'>1314</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L1323'>1323</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L192-L193'>192&ndash;193</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L198'>198</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L203'>203</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L221-L222'>221&ndash;222</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L402'>402</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L46-L51'>46&ndash;51</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L53'>53</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L58'>58</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/readable.rs#L644-L645'>644&ndash;645</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs'>token_based.rs</a></td><td><b>91.40%</b></td><td>100%</td><td><b>93.99%</b></td><td><b>91.16%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L10'>10</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1001-L1002'>1001&ndash;1002</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1016-L1018'>1016&ndash;1018</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1032-L1034'>1032&ndash;1034</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1043-L1045'>1043&ndash;1045</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1054-L1056'>1054&ndash;1056</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1065-L1067'>1065&ndash;1067</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L113'>113</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1216'>1216</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1286'>1286</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L130-L131'>130&ndash;131</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1323-L1331'>1323&ndash;1331</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1407-L1416'>1407&ndash;1416</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1441-L1443'>1441&ndash;1443</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1445-L1447'>1445&ndash;1447</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1464-L1469'>1464&ndash;1469</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L147'>147</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1470-L1473'>1470&ndash;1473</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L148'>148</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1548'>1548</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L160-L161'>160&ndash;161</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L182-L183'>182&ndash;183</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L1993-L1994'>1993&ndash;1994</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L2020-L2024'>2020&ndash;2024</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L203-L205'>203&ndash;205</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L2053-L2057'>2053&ndash;2057</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L2064-L2068'>2064&ndash;2068</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L2270'>2270</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L2274'>2274</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L2287'>2287</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L245'>245</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L297-L301'>297&ndash;301</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L371-L372'>371&ndash;372</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L378'>378</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L390'>390</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L450-L451'>450&ndash;451</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L473-L474'>473&ndash;474</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L490-L491'>490&ndash;491</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L533'>533</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L621-L622'>621&ndash;622</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L655-L656'>655&ndash;656</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L724-L725'>724&ndash;725</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L763-L767'>763&ndash;767</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L80'>80</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L808-L812'>808&ndash;812</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L830-L831'>830&ndash;831</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L84'>84</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L904-L905'>904&ndash;905</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L914-L915'>914&ndash;915</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L922'>922</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L937'>937</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L942-L946'>942&ndash;946</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L965-L966'>965&ndash;966</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/generator/token_based.rs#L979-L980'>979&ndash;980</a></td></tr><tr><td colspan='6'><b>src/nodes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/function_body.rs'>function_body.rs</a></td><td><b>99.12%</b></td><td>100%</td><td><b>96.30%</b></td><td><b>99.50%</b></td><td></td></tr><tr><td colspan='6'><b>src/nodes/expressions</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/expressions/function.rs'>function.rs</a></td><td><b>86.73%</b></td><td>100%</td><td><b>88.10%</b></td><td><b>86.41%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/expressions/function.rs#L131-L133'>131&ndash;133</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/expressions/function.rs#L191-L193'>191&ndash;193</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/expressions/function.rs#L212'>212</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/expressions/function.rs#L224'>224</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/expressions/function.rs#L243-L253'>243&ndash;253</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/expressions/function.rs#L42-L45'>42&ndash;45</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/expressions/function.rs#L91'>91</a></td></tr><tr><td colspan='6'><b>src/nodes/statements</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs'>function.rs</a></td><td><b>87.09%</b></td><td>100%</td><td><b>87.14%</b></td><td><b>87.08%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L123-L125'>123&ndash;125</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L174-L183'>174&ndash;183</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L36-L37'>36&ndash;37</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L378-L379'>378&ndash;379</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L38'>38</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L380'>380</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L39-L40'>39&ndash;40</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L400'>400</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L41'>41</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L413'>413</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L42-L43'>42&ndash;43</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/function.rs#L433-L444'>433&ndash;444</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/local_function.rs'>local_function.rs</a></td><td><b>93.69%</b></td><td>100%</td><td><b>91.38%</b></td><td><b>94.24%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/local_function.rs#L117-L121'>117&ndash;121</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/local_function.rs#L235-L237'>235&ndash;237</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/local_function.rs#L267'>267</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/local_function.rs#L280'>280</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/statements/local_function.rs#L306'>306</a></td></tr><tr><td colspan='6'><b>src/nodes/types</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/types/function_variadic_type.rs'>function_variadic_type.rs</a></td><td><b>85.71%</b></td><td>100%</td><td><b>80%</b></td><td><b>88.89%</b></td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/types/mod.rs'>mod.rs</a></td><td><b>88.57%</b></td><td>100%</td><td><b>88.89%</b></td><td><b>88.46%</b></td><td><a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/types/mod.rs#L73-L76'>73&ndash;76</a>, <a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/nodes/types/mod.rs#L78'>78</a></td></tr><tr><td colspan='6'><b>src/process</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/seaofvoices/darklua/blob/e3a77601813dbb5f589c50f23dbd5e31b486bbc9/src/process/visitors.rs'>visitors.rs</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr></tbody></table></details>

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3286b7f..44603b6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
 
 ## Unreleased
 
+* fix type packs, function variadic types and variadic type packs ([#137](https://github.com/seaofvoices/darklua/pull/137))
 * fix generic types on function types ([#136](https://github.com/seaofvoices/darklua/pull/136))
 * fix table types to allow string literal property types ([#135](https://github.com/seaofvoices/darklua/pull/135))
 
diff --git a/src/ast_converter.rs b/src/ast_converter.rs
index 4738422..9635149 100644
--- a/src/ast_converter.rs
+++ b/src/ast_converter.rs
@@ -1,4 +1,4 @@
-use std::{fmt, iter::FromIterator, str::FromStr};
+use std::{fmt, str::FromStr};
 
 use full_moon::{
     ast,
@@ -118,11 +118,6 @@ impl<'a> AstConverter<'a> {
             .ok_or(ConvertError::InternalStack { kind: "Type" })
     }
 
-    #[inline]
-    fn pop_types(&mut self, n: usize) -> Result<Vec<Type>, ConvertError> {
-        std::iter::repeat_with(|| self.pop_type()).take(n).collect()
-    }
-
     #[inline]
     fn pop_variadic_type_pack(&mut self) -> Result<VariadicTypePack, ConvertError> {
         self.variadic_type_packs
@@ -171,7 +166,6 @@ impl<'a> AstConverter<'a> {
 
         while let Some(work) = self.work_stack.pop() {
             match work {
-                // todo: those PushSomething variants are probably not needed
                 ConvertWork::PushVariable(variable) => {
                     self.variables.push(variable);
                 }
@@ -564,26 +558,26 @@ impl<'a> AstConverter<'a> {
 
                                     if let Some(default_type) = parameter
                                         .default_type()
-                                        .map(|default_type| match default_type {
-                                            TypeInfo::GenericPack { .. } => self
-                                                .pop_generic_type_pack()
-                                                .map(GenericTypePackDefault::from),
-                                            TypeInfo::VariadicPack { .. } => self
-                                                .pop_variadic_type_pack()
-                                                .map(GenericTypePackDefault::from),
-                                            TypeInfo::Tuple { .. } => self
-                                                .pop_type_pack()
-                                                .map(GenericTypePackDefault::from),
-                                            TypeInfo::Intersection { left, .. }
-                                            | TypeInfo::Union { left, .. }
-                                                if matches!(**left, TypeInfo::Variadic { .. }) =>
-                                            {
+                                        .map(|default_type| {
+                                            if is_variadic_type(default_type).is_some() {
                                                 self.pop_variadic_type_pack()
                                                     .map(GenericTypePackDefault::from)
+                                            } else {
+                                                match default_type {
+                                                    TypeInfo::GenericPack { .. } => self
+                                                        .pop_generic_type_pack()
+                                                        .map(GenericTypePackDefault::from),
+                                                    TypeInfo::VariadicPack { .. } => self
+                                                        .pop_variadic_type_pack()
+                                                        .map(GenericTypePackDefault::from),
+                                                    TypeInfo::Tuple { .. } => self
+                                                        .pop_type_pack()
+                                                        .map(GenericTypePackDefault::from),
+                                                    _ => Err(ConvertError::GenericDeclaration {
+                                                        generics: generics.to_string(),
+                                                    }),
+                                                }
                                             }
-                                            _ => Err(ConvertError::GenericDeclaration {
-                                                generics: generics.to_string(),
-                                            }),
                                         })
                                         .transpose()?
                                     {
@@ -873,18 +867,15 @@ impl<'a> AstConverter<'a> {
                 }
                 ConvertWork::MakeFunctionReturnType { type_info } => {
                     use ast::types::TypeInfo;
-                    let return_type = match type_info {
-                        TypeInfo::Tuple { .. } => self.pop_type_pack()?.into(),
-                        TypeInfo::Variadic { .. } => self.pop_variadic_type_pack()?.into(),
-                        TypeInfo::GenericPack { .. } => self.pop_generic_type_pack()?.into(),
-                        TypeInfo::Intersection { left: inner, .. }
-                        | TypeInfo::Union { left: inner, .. }
-                        | TypeInfo::Optional { base: inner, .. }
-                            if matches!(**inner, TypeInfo::Variadic { .. }) =>
-                        {
-                            self.pop_variadic_type_pack()?.into()
+
+                    let return_type = if is_variadic_type(type_info).is_some() {
+                        self.pop_variadic_type_pack()?.into()
+                    } else {
+                        match type_info {
+                            TypeInfo::Tuple { .. } => self.pop_type_pack()?.into(),
+                            TypeInfo::GenericPack { .. } => self.pop_generic_type_pack()?.into(),
+                            _ => self.pop_type()?.into(),
                         }
-                        _ => self.pop_type()?.into(),
                     };
 
                     self.function_return_types.push(return_type);
@@ -1034,27 +1025,33 @@ impl<'a> AstConverter<'a> {
                     for argument in arguments {
                         use ast::types::TypeInfo;
 
-                        match argument.type_info() {
-                            TypeInfo::Variadic { .. } | TypeInfo::VariadicPack { .. } => {
-                                function_type.set_variadic_type(self.pop_variadic_type_pack()?);
-                            }
-                            TypeInfo::GenericPack { .. } => {
-                                function_type.set_variadic_type(self.pop_generic_type_pack()?);
-                            }
-                            _ => {
-                                let mut argument_type = FunctionArgumentType::new(self.pop_type()?);
+                        if is_variadic_type(argument.type_info()).is_some() {
+                            function_type.set_variadic_type(self.pop_variadic_type_pack()?);
+                        } else {
+                            match argument.type_info() {
+                                TypeInfo::Variadic { .. } | TypeInfo::VariadicPack { .. } => {
+                                    function_type.set_variadic_type(self.pop_variadic_type_pack()?);
+                                }
+                                TypeInfo::GenericPack { .. } => {
+                                    function_type.set_variadic_type(self.pop_generic_type_pack()?);
+                                }
+                                _ => {
+                                    let mut argument_type =
+                                        FunctionArgumentType::new(self.pop_type()?);
 
-                                if let Some((name, colon)) = argument.name() {
-                                    argument_type.set_name(self.convert_token_to_identifier(name)?);
+                                    if let Some((name, colon)) = argument.name() {
+                                        argument_type
+                                            .set_name(self.convert_token_to_identifier(name)?);
 
-                                    if self.hold_token_data {
-                                        argument_type.set_token(self.convert_token(colon)?);
+                                        if self.hold_token_data {
+                                            argument_type.set_token(self.convert_token(colon)?);
+                                        }
                                     }
-                                }
 
-                                function_type.push_argument(argument_type);
-                            }
-                        };
+                                    function_type.push_argument(argument_type);
+                                }
+                            };
+                        }
                     }
 
                     if let Some(generics) = generics {
@@ -1102,29 +1099,39 @@ impl<'a> AstConverter<'a> {
 
                     let mut parameters = generics
                         .iter()
-                        .map(|type_parameter| match type_parameter {
-                            TypeInfo::GenericPack { .. } => {
-                                self.pop_generic_type_pack().map(TypeParameter::from)
-                            }
-                            TypeInfo::VariadicPack { .. } | TypeInfo::Variadic { .. } => {
+                        .map(|type_parameter| {
+                            if is_variadic_type(type_parameter).is_some() {
                                 self.pop_variadic_type_pack().map(TypeParameter::from)
+                            } else {
+                                match type_parameter {
+                                    TypeInfo::GenericPack { .. } => {
+                                        self.pop_generic_type_pack().map(TypeParameter::from)
+                                    }
+                                    TypeInfo::VariadicPack { .. } | TypeInfo::Variadic { .. } => {
+                                        self.pop_variadic_type_pack().map(TypeParameter::from)
+                                    }
+                                    TypeInfo::Tuple { .. } => {
+                                        self.pop_type_pack().map(TypeParameter::from)
+                                    }
+                                    TypeInfo::Array { .. }
+                                    | TypeInfo::Basic(_)
+                                    | TypeInfo::String(_)
+                                    | TypeInfo::Boolean(_)
+                                    | TypeInfo::Callback { .. }
+                                    | TypeInfo::Generic { .. }
+                                    | TypeInfo::Intersection { .. }
+                                    | TypeInfo::Module { .. }
+                                    | TypeInfo::Optional { .. }
+                                    | TypeInfo::Table { .. }
+                                    | TypeInfo::Typeof { .. }
+                                    | TypeInfo::Union { .. } => {
+                                        self.pop_type().map(TypeParameter::from)
+                                    }
+                                    _ => Err(ConvertError::TypeInfo {
+                                        type_info: type_parameter.to_string(),
+                                    }),
+                                }
                             }
-                            TypeInfo::Tuple { .. } => self.pop_type_pack().map(TypeParameter::from),
-                            TypeInfo::Array { .. }
-                            | TypeInfo::Basic(_)
-                            | TypeInfo::String(_)
-                            | TypeInfo::Boolean(_)
-                            | TypeInfo::Callback { .. }
-                            | TypeInfo::Generic { .. }
-                            | TypeInfo::Intersection { .. }
-                            | TypeInfo::Module { .. }
-                            | TypeInfo::Optional { .. }
-                            | TypeInfo::Table { .. }
-                            | TypeInfo::Typeof { .. }
-                            | TypeInfo::Union { .. } => self.pop_type().map(TypeParameter::from),
-                            _ => Err(ConvertError::TypeInfo {
-                                type_info: type_parameter.to_string(),
-                            }),
                         })
                         .collect::<Result<TypeParameters, ConvertError>>()?;
 
@@ -1174,31 +1181,23 @@ impl<'a> AstConverter<'a> {
                 ConvertWork::MakeTypePack { types, parentheses } => {
                     use ast::types::TypeInfo;
 
-                    let mut type_pack = match types.iter().last() {
-                        Some(TypeInfo::Variadic { .. }) | Some(TypeInfo::VariadicPack { .. }) => {
-                            TypePack::from_iter(self.pop_types(types.len().saturating_sub(1))?)
-                                .with_variadic_type(self.pop_variadic_type_pack()?)
-                        }
-                        Some(TypeInfo::GenericPack { .. }) => {
-                            TypePack::from_iter(self.pop_types(types.len().saturating_sub(1))?)
-                                .with_variadic_type(self.pop_generic_type_pack()?)
+                    let mut type_pack = TypePack::default();
+
+                    let last_index = types.len().saturating_sub(1);
+                    for (i, r#type) in types.iter().enumerate() {
+                        if i == last_index && is_variadic_type(r#type).is_some() {
+                            type_pack.set_variadic_type(self.pop_variadic_type_pack()?);
+                        } else {
+                            match r#type {
+                                TypeInfo::GenericPack { .. } => {
+                                    type_pack.set_variadic_type(self.pop_generic_type_pack()?);
+                                }
+                                _ => {
+                                    type_pack.push_type(self.pop_type()?);
+                                }
+                            }
                         }
-                        Some(TypeInfo::Array { .. })
-                        | Some(TypeInfo::Basic(_))
-                        | Some(TypeInfo::String(_))
-                        | Some(TypeInfo::Boolean(_))
-                        | Some(TypeInfo::Callback { .. })
-                        | Some(TypeInfo::Generic { .. })
-                        | Some(TypeInfo::Intersection { .. })
-                        | Some(TypeInfo::Module { .. })
-                        | Some(TypeInfo::Optional { .. })
-                        | Some(TypeInfo::Table { .. })
-                        | Some(TypeInfo::Typeof { .. })
-                        | Some(TypeInfo::Tuple { .. })
-                        | Some(TypeInfo::Union { .. })
-                        | Some(_)
-                        | None => TypePack::from_iter(self.pop_types(types.len())?),
-                    };
+                    }
 
                     if self.hold_token_data {
                         let (left_parenthese, right_parenthese) =
@@ -1456,7 +1455,7 @@ impl<'a> AstConverter<'a> {
                             self.push_type_pack_work(types, parentheses);
                         }
                         _ => {
-                            self.push_work(default_type);
+                            self.push_maybe_variadic_type(default_type);
                         }
                     }
                 }
@@ -1818,7 +1817,7 @@ impl<'a> AstConverter<'a> {
                 self.push_type_pack_work(types, parentheses);
             }
             _ => {
-                self.push_work(return_type);
+                self.push_maybe_variadic_type(return_type);
             }
         };
     }
@@ -1831,8 +1830,13 @@ impl<'a> AstConverter<'a> {
         self.work_stack
             .push(ConvertWork::MakeTypePack { types, parentheses });
 
-        for r#type in types {
-            self.push_work(r#type)
+        let last_index = types.len().saturating_sub(1);
+        for (i, r#type) in types.iter().enumerate() {
+            if i == last_index {
+                self.push_maybe_variadic_type(r#type);
+            } else {
+                self.push_work(r#type)
+            }
         }
     }
 
@@ -1906,39 +1910,8 @@ impl<'a> AstConverter<'a> {
                 arrow,
                 return_type,
             } => {
-                let mut push_right_expression = None;
-
-                let override_return_type = match return_type.as_ref() {
-                    TypeInfo::Intersection {
-                        left,
-                        right,
-                        ampersand,
-                    } if matches!(left.as_ref(), TypeInfo::GenericPack { .. }) => {
-                        // if we get a generic pack here then we are
-                        // not making a function type
-                        self.work_stack.push(ConvertWork::MakeIntersectionType {
-                            operator: ampersand,
-                        });
-
-                        push_right_expression = Some(right.as_ref());
-
-                        left
-                    }
-                    TypeInfo::Union { left, right, pipe }
-                        if matches!(left.as_ref(), TypeInfo::GenericPack { .. }) =>
-                    {
-                        // if we get a generic pack here then we are
-                        // not making a function type
-                        self.work_stack
-                            .push(ConvertWork::MakeUnionType { operator: pipe });
-
-                        push_right_expression = Some(right.as_ref());
-
-                        left
-                    }
-
-                    _ => return_type,
-                };
+                let (override_return_type, push_right_expression) =
+                    self.patch_return_type_tuple(return_type);
 
                 self.work_stack.push(ConvertWork::MakeFunctionType {
                     generics,
@@ -1953,23 +1926,18 @@ impl<'a> AstConverter<'a> {
 
                 for argument in arguments {
                     let argument_type = argument.type_info();
-                    match argument_type {
-                        TypeInfo::GenericPack { .. }
-                        | TypeInfo::Variadic { .. }
-                        | TypeInfo::VariadicPack { .. } => {
-                            if has_variadic_type {
-                                return Err(ConvertError::TypeInfo {
-                                    type_info: type_info.to_string(),
-                                });
-                            }
-                            has_variadic_type = true;
+                    if is_argument_variadic(argument_type) {
+                        if has_variadic_type {
+                            return Err(ConvertError::TypeInfo {
+                                type_info: type_info.to_string(),
+                            });
                         }
-                        _ => {}
+                        has_variadic_type = true;
                     }
-                    self.push_work(argument_type);
+                    self.push_maybe_variadic_type(argument_type);
                 }
 
-                if let Some(right) = push_right_expression {
+                for right in push_right_expression {
                     self.push_work(right);
                 }
             }
@@ -1995,45 +1963,18 @@ impl<'a> AstConverter<'a> {
                 ampersand,
                 right,
             } => {
-                match left.as_ref() {
-                    TypeInfo::Variadic { ellipse, type_info } => {
-                        self.work_stack
-                            .push(ConvertWork::MakeVariadicTypePack { ellipse });
-
-                        self.work_stack.push(ConvertWork::MakeIntersectionType {
-                            operator: ampersand,
-                        });
-
-                        self.push_work(type_info.as_ref());
-                    }
-                    _ => {
-                        self.work_stack.push(ConvertWork::MakeIntersectionType {
-                            operator: ampersand,
-                        });
+                self.work_stack.push(ConvertWork::MakeIntersectionType {
+                    operator: ampersand,
+                });
 
-                        self.push_work(left.as_ref());
-                    }
-                }
+                self.push_work(left.as_ref());
                 self.push_work(right.as_ref());
             }
             TypeInfo::Union { left, pipe, right } => {
-                match left.as_ref() {
-                    TypeInfo::Variadic { ellipse, type_info } => {
-                        self.work_stack
-                            .push(ConvertWork::MakeVariadicTypePack { ellipse });
-
-                        self.work_stack
-                            .push(ConvertWork::MakeUnionType { operator: pipe });
-
-                        self.push_work(type_info.as_ref());
-                    }
-                    _ => {
-                        self.work_stack
-                            .push(ConvertWork::MakeUnionType { operator: pipe });
+                self.work_stack
+                    .push(ConvertWork::MakeUnionType { operator: pipe });
 
-                        self.push_work(left.as_ref());
-                    }
-                }
+                self.push_work(left.as_ref());
                 self.push_work(right.as_ref());
             }
             TypeInfo::Module {
@@ -2075,23 +2016,12 @@ impl<'a> AstConverter<'a> {
             TypeInfo::Optional {
                 base,
                 question_mark,
-            } => match base.as_ref() {
-                TypeInfo::Variadic { ellipse, type_info } => {
-                    self.work_stack
-                        .push(ConvertWork::MakeVariadicTypePack { ellipse });
-
-                    self.work_stack
-                        .push(ConvertWork::MakeOptionalType { question_mark });
-
-                    self.push_work(type_info.as_ref());
-                }
-                _ => {
-                    self.work_stack
-                        .push(ConvertWork::MakeOptionalType { question_mark });
+            } => {
+                self.work_stack
+                    .push(ConvertWork::MakeOptionalType { question_mark });
 
-                    self.push_work(base.as_ref());
-                }
-            },
+                self.push_work(base.as_ref());
+            }
             TypeInfo::Table { braces, fields } => {
                 self.work_stack
                     .push(ConvertWork::MakeTableType { braces, fields });
@@ -2137,22 +2067,17 @@ impl<'a> AstConverter<'a> {
                             .expect("types should contain exactly one type at this point"),
                     );
                 } else {
-                    todo!()
+                    return Err(ConvertError::TypeInfo {
+                        type_info: type_info.to_string(),
+                    });
                 }
             }
-            TypeInfo::Variadic { ellipse, type_info } => {
-                self.work_stack
-                    .push(ConvertWork::MakeVariadicTypePack { ellipse });
-
+            TypeInfo::Variadic { type_info, .. } => {
                 self.push_work(type_info.as_ref());
             }
-            TypeInfo::VariadicPack { ellipse, name } => {
-                let mut variadic_type_pack =
-                    VariadicTypePack::new(TypeName::new(self.convert_token_to_identifier(name)?));
-                if self.hold_token_data {
-                    variadic_type_pack.set_token(self.convert_token(ellipse)?);
-                }
-                self.variadic_type_packs.push(variadic_type_pack);
+            TypeInfo::VariadicPack { name, .. } => {
+                self.types
+                    .push(TypeName::new(self.convert_token_to_identifier(name)?).into());
             }
             _ => {
                 return Err(ConvertError::TypeInfo {
@@ -2164,6 +2089,14 @@ impl<'a> AstConverter<'a> {
         Ok(())
     }
 
+    fn push_maybe_variadic_type(&mut self, type_info: &'a ast::types::TypeInfo) {
+        if let Some(ellipse) = is_variadic_type(type_info) {
+            self.work_stack
+                .push(ConvertWork::MakeVariadicTypePack { ellipse });
+        }
+        self.push_work(type_info);
+    }
+
     fn push_generic_type_work(
         &mut self,
         base: &'a tokenizer::TokenReference,
@@ -2183,7 +2116,7 @@ impl<'a> AstConverter<'a> {
                     self.push_type_pack_work(types, parentheses);
                 }
                 _ => {
-                    self.push_work(parameter_type);
+                    self.push_maybe_variadic_type(parameter_type);
                 }
             }
         }
@@ -2355,7 +2288,15 @@ impl<'a> AstConverter<'a> {
                         });
                     } else {
                         if let Some(type_specifier) = type_specifier {
-                            builder.set_variadic_type(self.pop_type()?);
+                            builder.set_variadic_type(
+                                if let ast::types::TypeInfo::GenericPack { .. } =
+                                    type_specifier.type_info()
+                                {
+                                    self.pop_generic_type_pack()?.into()
+                                } else {
+                                    self.pop_type()?.into()
+                                },
+                            );
 
                             if self.hold_token_data {
                                 builder.set_variable_arguments_colon(
@@ -2571,6 +2512,124 @@ impl<'a> AstConverter<'a> {
         }
         Ok(())
     }
+
+    fn patch_return_type_tuple(
+        &mut self,
+        r#type: &'a ast::types::TypeInfo,
+    ) -> (&'a ast::types::TypeInfo, Vec<&'a ast::types::TypeInfo>) {
+        use ast::types::TypeInfo;
+        let mut current = r#type;
+        let mut additional_types = Vec::new();
+
+        loop {
+            match current {
+                TypeInfo::Tuple { types, .. } => {
+                    if types.len() == 1 {
+                        break (r#type, additional_types);
+                    } else {
+                        break (current, additional_types);
+                    }
+                }
+                TypeInfo::Optional {
+                    base,
+                    question_mark,
+                } => match base.as_ref() {
+                    TypeInfo::Tuple { types, .. } if types.len() != 1 => {
+                        self.work_stack
+                            .push(ConvertWork::MakeOptionalType { question_mark });
+
+                        current = base;
+                    }
+                    TypeInfo::GenericPack { .. } => {
+                        self.work_stack
+                            .push(ConvertWork::MakeOptionalType { question_mark });
+
+                        break (base, additional_types);
+                    }
+                    _ => break (current, additional_types),
+                },
+                TypeInfo::Intersection {
+                    left,
+                    right,
+                    ampersand,
+                } => match left.as_ref() {
+                    TypeInfo::Tuple { types, .. } if types.len() != 1 => {
+                        self.work_stack.push(ConvertWork::MakeIntersectionType {
+                            operator: ampersand,
+                        });
+                        additional_types.push(right.as_ref());
+
+                        break (left, additional_types);
+                    }
+                    TypeInfo::GenericPack { .. } => {
+                        // if we get a generic pack here then we are
+                        // not making a function type
+                        self.work_stack.push(ConvertWork::MakeIntersectionType {
+                            operator: ampersand,
+                        });
+                        additional_types.push(right.as_ref());
+
+                        break (left, additional_types);
+                    }
+                    _ => break (current, additional_types),
+                },
+                TypeInfo::Union { left, right, pipe } => match left.as_ref() {
+                    TypeInfo::Tuple { types, .. } if types.len() != 1 => {
+                        self.work_stack
+                            .push(ConvertWork::MakeUnionType { operator: pipe });
+                        additional_types.push(right.as_ref());
+
+                        break (left, additional_types);
+                    }
+                    TypeInfo::GenericPack { .. } => {
+                        // if we get a generic pack here then we are
+                        // not making a function type
+                        self.work_stack
+                            .push(ConvertWork::MakeUnionType { operator: pipe });
+                        additional_types.push(right.as_ref());
+
+                        break (left, additional_types);
+                    }
+                    _ => break (current, additional_types),
+                },
+                _ => break (current, additional_types),
+            }
+        }
+    }
+}
+
+fn is_argument_variadic(mut r#type: &ast::types::TypeInfo) -> bool {
+    use ast::types::TypeInfo;
+    loop {
+        match r#type {
+            TypeInfo::GenericPack { .. }
+            | TypeInfo::Variadic { .. }
+            | TypeInfo::VariadicPack { .. } => break true,
+            TypeInfo::Intersection { left, .. }
+            | TypeInfo::Union { left, .. }
+            | TypeInfo::Optional { base: left, .. } => {
+                r#type = left;
+            }
+            _ => break false,
+        }
+    }
+}
+
+fn is_variadic_type(mut r#type: &ast::types::TypeInfo) -> Option<&tokenizer::TokenReference> {
+    use ast::types::TypeInfo;
+    loop {
+        match r#type {
+            TypeInfo::Variadic { ellipse, .. } | TypeInfo::VariadicPack { ellipse, .. } => {
+                break Some(ellipse)
+            }
+            TypeInfo::Intersection { left, .. }
+            | TypeInfo::Union { left, .. }
+            | TypeInfo::Optional { base: left, .. } => {
+                r#type = left;
+            }
+            _ => break None,
+        }
+    }
 }
 
 #[derive(Debug)]
diff --git a/src/generator/dense.rs b/src/generator/dense.rs
index 792c066..e37423a 100644
--- a/src/generator/dense.rs
+++ b/src/generator/dense.rs
@@ -179,7 +179,7 @@ impl DenseLuaGenerator {
         &mut self,
         parameters: &[nodes::TypedIdentifier],
         is_variadic: bool,
-        variadic_type: Option<&nodes::Type>,
+        variadic_type: Option<&nodes::FunctionVariadicType>,
     ) {
         let last_index = parameters.len().saturating_sub(1);
 
@@ -199,7 +199,7 @@ impl DenseLuaGenerator {
 
             if let Some(variadic_type) = variadic_type {
                 self.push_char(':');
-                self.write_type(variadic_type);
+                self.write_function_variadic_type(variadic_type);
             }
         };
     }
diff --git a/src/generator/mod.rs b/src/generator/mod.rs
index 34eeb47..d415122 100644
--- a/src/generator/mod.rs
+++ b/src/generator/mod.rs
@@ -200,6 +200,17 @@ pub trait LuaGenerator {
         }
     }
 
+    fn write_function_variadic_type(&mut self, variadic_type: &nodes::FunctionVariadicType) {
+        match variadic_type {
+            nodes::FunctionVariadicType::Type(r#type) => {
+                self.write_type(r#type);
+            }
+            nodes::FunctionVariadicType::GenericTypePack(generic_pack) => {
+                self.write_generic_type_pack(generic_pack);
+            }
+        }
+    }
+
     fn write_type_parameter(&mut self, type_parameter: &nodes::TypeParameter) {
         match type_parameter {
             nodes::TypeParameter::Type(r#type) => self.write_type(r#type),
diff --git a/src/generator/readable.rs b/src/generator/readable.rs
index aa4792b..f843792 100644
--- a/src/generator/readable.rs
+++ b/src/generator/readable.rs
@@ -265,7 +265,7 @@ impl ReadableLuaGenerator {
         &mut self,
         parameters: &[nodes::TypedIdentifier],
         is_variadic: bool,
-        variadic_type: Option<&nodes::Type>,
+        variadic_type: Option<&nodes::FunctionVariadicType>,
     ) {
         let mut parameters_length = parameters.iter().fold(0, |acc, parameter| {
             acc + parameter.get_name().len()
@@ -310,7 +310,7 @@ impl ReadableLuaGenerator {
                 if let Some(variadic_type) = variadic_type {
                     self.raw_push_char(':');
                     self.raw_push_char(' ');
-                    self.write_type(r#variadic_type);
+                    self.write_function_variadic_type(r#variadic_type);
                 }
             };
         } else {
@@ -337,7 +337,7 @@ impl ReadableLuaGenerator {
                 if let Some(variadic_type) = variadic_type {
                     self.raw_push_char(':');
                     self.raw_push_char(' ');
-                    self.write_type(r#variadic_type);
+                    self.write_function_variadic_type(r#variadic_type);
                 }
             };
 
diff --git a/src/generator/token_based.rs b/src/generator/token_based.rs
index 63bee6d..4813e7a 100644
--- a/src/generator/token_based.rs
+++ b/src/generator/token_based.rs
@@ -326,44 +326,38 @@ impl<'a> TokenBasedLuaGenerator<'a> {
         self.write_expression(assign.get_value());
     }
 
-    fn write_function_statement_with_tokens(
+    #[allow(clippy::too_many_arguments)]
+    fn write_function_attributes<'b>(
         &mut self,
-        function: &FunctionStatement,
         tokens: &FunctionBodyTokens,
+        generic_parameters: Option<&GenericParameters>,
+        parameter_count: usize,
+        parameters: impl Iterator<Item = &'b TypedIdentifier>,
+        is_variadic: bool,
+        variadic_type: Option<&FunctionVariadicType>,
+        return_type: Option<&FunctionReturnType>,
+        block: &Block,
     ) {
-        self.write_token(&tokens.function);
-
-        let name = function.get_name();
-        if let Some(tokens) = name.get_tokens() {
-            self.write_function_name_with_tokens(name, tokens);
-        } else {
-            self.write_function_name_with_tokens(name, &self.generate_function_name_tokens(name));
-        }
-
-        if let Some(generics) = function.get_generic_parameters() {
+        if let Some(generics) = generic_parameters {
             self.write_function_generics(generics);
         }
 
         self.write_token(&tokens.opening_parenthese);
 
-        let parameter_count = function.parameters_count();
         let last_parameter_index = parameter_count.saturating_sub(1);
-        function
-            .iter_parameters()
-            .enumerate()
-            .for_each(|(i, param)| {
-                self.write_typed_identifier(param);
-                if i < last_parameter_index {
-                    if let Some(comma) = tokens.parameter_commas.get(i) {
-                        self.write_token(comma);
-                    } else {
-                        self.write_symbol(",");
-                    }
+        parameters.enumerate().for_each(|(i, param)| {
+            self.write_typed_identifier(param);
+            if i < last_parameter_index {
+                if let Some(comma) = tokens.parameter_commas.get(i) {
+                    self.write_token(comma);
+                } else {
+                    self.write_symbol(",");
                 }
-            });
+            }
+        });
 
-        if function.is_variadic() {
-            if function.has_parameters() {
+        if is_variadic {
+            if parameter_count > 0 {
                 if let Some(comma) = tokens.parameter_commas.get(last_parameter_index) {
                     self.write_token(comma);
                 } else {
@@ -377,19 +371,19 @@ impl<'a> TokenBasedLuaGenerator<'a> {
                 self.write_symbol("...");
             }
 
-            if let Some(variadic_type) = function.get_variadic_type() {
+            if let Some(variadic_type) = variadic_type {
                 if let Some(colon) = &tokens.variable_arguments_colon {
                     self.write_token(colon);
                 } else {
                     self.write_symbol(":")
                 }
-                self.write_type(variadic_type);
+                self.write_function_variadic_type(variadic_type);
             }
         }
 
         self.write_token(&tokens.closing_parenthese);
 
-        if let Some(return_type) = function.get_return_type() {
+        if let Some(return_type) = return_type {
             if let Some(colon) = &tokens.return_type_colon {
                 self.write_token(colon);
             } else {
@@ -399,11 +393,37 @@ impl<'a> TokenBasedLuaGenerator<'a> {
             self.write_function_return_type(return_type);
         }
 
-        self.write_block(function.get_block());
+        self.write_block(block);
 
         self.write_token(&tokens.end);
     }
 
+    fn write_function_statement_with_tokens(
+        &mut self,
+        function: &FunctionStatement,
+        tokens: &FunctionBodyTokens,
+    ) {
+        self.write_token(&tokens.function);
+
+        let name = function.get_name();
+        if let Some(tokens) = name.get_tokens() {
+            self.write_function_name_with_tokens(name, tokens);
+        } else {
+            self.write_function_name_with_tokens(name, &self.generate_function_name_tokens(name));
+        }
+
+        self.write_function_attributes(
+            tokens,
+            function.get_generic_parameters(),
+            function.parameters_count(),
+            function.iter_parameters(),
+            function.is_variadic(),
+            function.get_variadic_type(),
+            function.get_return_type(),
+            function.get_block(),
+        );
+    }
+
     fn write_function_name_with_tokens(
         &mut self,
         name: &FunctionName,
@@ -570,67 +590,16 @@ impl<'a> TokenBasedLuaGenerator<'a> {
         self.write_token(&tokens.function);
         self.write_identifier(function.get_identifier());
 
-        if let Some(generics) = function.get_generic_parameters() {
-            self.write_function_generics(generics);
-        }
-
-        self.write_token(&tokens.opening_parenthese);
-
-        let parameter_count = function.parameters_count();
-        let last_parameter_index = parameter_count.saturating_sub(1);
-        function
-            .iter_parameters()
-            .enumerate()
-            .for_each(|(i, param)| {
-                self.write_typed_identifier(param);
-                if i < last_parameter_index {
-                    if let Some(comma) = tokens.parameter_commas.get(i) {
-                        self.write_token(comma);
-                    } else {
-                        self.write_symbol(",");
-                    }
-                }
-            });
-
-        if function.is_variadic() {
-            if function.has_parameters() {
-                if let Some(comma) = tokens.parameter_commas.get(last_parameter_index) {
-                    self.write_token(comma);
-                } else {
-                    self.write_symbol(",");
-                }
-            }
-
-            if let Some(token) = &tokens.variable_arguments {
-                self.write_token(token);
-            } else {
-                self.write_symbol("...");
-            }
-
-            if let Some(variadic_type) = function.get_variadic_type() {
-                if let Some(colon) = &tokens.variable_arguments_colon {
-                    self.write_token(colon);
-                } else {
-                    self.write_symbol(":")
-                }
-                self.write_type(variadic_type);
-            }
-        }
-
-        self.write_token(&tokens.closing_parenthese);
-
-        if let Some(return_type) = function.get_return_type() {
-            if let Some(colon) = &tokens.return_type_colon {
-                self.write_token(colon);
-            } else {
-                self.write_symbol(":")
-            }
-
-            self.write_function_return_type(return_type);
-        }
-
-        self.write_block(function.get_block());
-        self.write_token(&tokens.end);
+        self.write_function_attributes(
+            tokens,
+            function.get_generic_parameters(),
+            function.parameters_count(),
+            function.iter_parameters(),
+            function.is_variadic(),
+            function.get_variadic_type(),
+            function.get_return_type(),
+            function.get_block(),
+        );
     }
 
     fn write_numeric_for_with_tokens(
@@ -767,67 +736,16 @@ impl<'a> TokenBasedLuaGenerator<'a> {
     ) {
         self.write_token(&tokens.function);
 
-        if let Some(generics) = function.get_generic_parameters() {
-            self.write_function_generics(generics);
-        }
-
-        self.write_token(&tokens.opening_parenthese);
-
-        let parameter_count = function.parameters_count();
-        let last_parameter_index = parameter_count.saturating_sub(1);
-        function
-            .iter_parameters()
-            .enumerate()
-            .for_each(|(i, param)| {
-                self.write_typed_identifier(param);
-                if i < last_parameter_index {
-                    if let Some(comma) = tokens.parameter_commas.get(i) {
-                        self.write_token(comma);
-                    } else {
-                        self.write_symbol(",");
-                    }
-                }
-            });
-
-        if function.is_variadic() {
-            if function.has_parameters() {
-                if let Some(comma) = tokens.parameter_commas.get(last_parameter_index) {
-                    self.write_token(comma);
-                } else {
-                    self.write_symbol(",");
-                }
-            }
-
-            if let Some(token) = &tokens.variable_arguments {
-                self.write_token(token);
-            } else {
-                self.write_symbol("...");
-            }
-
-            if let Some(variadic_type) = function.get_variadic_type() {
-                if let Some(colon) = &tokens.variable_arguments_colon {
-                    self.write_token(colon);
-                } else {
-                    self.write_symbol(":")
-                }
-                self.write_type(variadic_type);
-            }
-        }
-
-        self.write_token(&tokens.closing_parenthese);
-
-        if let Some(return_type) = function.get_return_type() {
-            if let Some(colon) = &tokens.return_type_colon {
-                self.write_token(colon);
-            } else {
-                self.write_symbol(":")
-            }
-
-            self.write_function_return_type(return_type);
-        }
-
-        self.write_block(function.get_block());
-        self.write_token(&tokens.end);
+        self.write_function_attributes(
+            tokens,
+            function.get_generic_parameters(),
+            function.parameters_count(),
+            function.iter_parameters(),
+            function.is_variadic(),
+            function.get_variadic_type(),
+            function.get_return_type(),
+            function.get_block(),
+        );
     }
 
     fn write_type_parameters_with_tokens(
diff --git a/src/nodes/expressions/function.rs b/src/nodes/expressions/function.rs
index aec6053..fc34e31 100644
--- a/src/nodes/expressions/function.rs
+++ b/src/nodes/expressions/function.rs
@@ -1,5 +1,6 @@
 use crate::nodes::{
-    Block, FunctionBodyTokens, FunctionReturnType, GenericParameters, Type, TypedIdentifier,
+    Block, FunctionBodyTokens, FunctionReturnType, FunctionVariadicType, GenericParameters,
+    TypedIdentifier,
 };
 
 #[derive(Clone, Debug, Default, PartialEq, Eq)]
@@ -7,7 +8,7 @@ pub struct FunctionExpression {
     block: Block,
     parameters: Vec<TypedIdentifier>,
     is_variadic: bool,
-    variadic_type: Option<Type>,
+    variadic_type: Option<FunctionVariadicType>,
     return_type: Option<FunctionReturnType>,
     generic_parameters: Option<GenericParameters>,
     tokens: Option<Box<FunctionBodyTokens>>,
@@ -48,7 +49,7 @@ impl FunctionExpression {
         self
     }
 
-    pub fn with_variadic_type(mut self, r#type: impl Into<Type>) -> Self {
+    pub fn with_variadic_type(mut self, r#type: impl Into<FunctionVariadicType>) -> Self {
         self.is_variadic = true;
         self.variadic_type = Some(r#type.into());
         self
@@ -91,13 +92,13 @@ impl FunctionExpression {
         }
     }
 
-    pub fn set_variadic_type(&mut self, r#type: impl Into<Type>) {
+    pub fn set_variadic_type(&mut self, r#type: impl Into<FunctionVariadicType>) {
         self.is_variadic = true;
         self.variadic_type = Some(r#type.into());
     }
 
     #[inline]
-    pub fn get_variadic_type(&self) -> Option<&Type> {
+    pub fn get_variadic_type(&self) -> Option<&FunctionVariadicType> {
         self.variadic_type.as_ref()
     }
 
@@ -107,7 +108,7 @@ impl FunctionExpression {
     }
 
     #[inline]
-    pub fn mutate_variadic_type(&mut self) -> Option<&mut Type> {
+    pub fn mutate_variadic_type(&mut self) -> Option<&mut FunctionVariadicType> {
         self.variadic_type.as_mut()
     }
 
diff --git a/src/nodes/function_body.rs b/src/nodes/function_body.rs
index f377ce6..4e96d2e 100644
--- a/src/nodes/function_body.rs
+++ b/src/nodes/function_body.rs
@@ -1,14 +1,14 @@
 use super::{
     Block, FunctionExpression, FunctionName, FunctionReturnType, FunctionStatement,
-    GenericParameters, Identifier, LocalFunctionStatement, LocalFunctionTokens, Token, Type,
-    TypedIdentifier,
+    FunctionVariadicType, GenericParameters, Identifier, LocalFunctionStatement,
+    LocalFunctionTokens, Token, TypedIdentifier,
 };
 
 pub(crate) struct FunctionBuilder {
     block: Block,
     parameters: Vec<TypedIdentifier>,
     is_variadic: bool,
-    variadic_type: Option<Type>,
+    variadic_type: Option<FunctionVariadicType>,
     return_type: Option<FunctionReturnType>,
 
     function: Option<Token>,
@@ -189,7 +189,7 @@ impl FunctionBuilder {
         self.is_variadic = true;
     }
 
-    pub(crate) fn set_variadic_type(&mut self, r#type: Type) {
+    pub(crate) fn set_variadic_type(&mut self, r#type: FunctionVariadicType) {
         self.is_variadic = true;
         self.variadic_type = Some(r#type);
     }
diff --git a/src/nodes/statements/function.rs b/src/nodes/statements/function.rs
index 4278022..6e60611 100644
--- a/src/nodes/statements/function.rs
+++ b/src/nodes/statements/function.rs
@@ -1,6 +1,6 @@
 use crate::nodes::{
-    Block, FunctionBodyTokens, FunctionReturnType, GenericParameters, Identifier, Token, Type,
-    TypedIdentifier,
+    Block, FunctionBodyTokens, FunctionReturnType, FunctionVariadicType, GenericParameters,
+    Identifier, Token, TypedIdentifier,
 };
 
 #[derive(Clone, Debug, PartialEq, Eq)]
@@ -189,7 +189,7 @@ pub struct FunctionStatement {
     block: Block,
     parameters: Vec<TypedIdentifier>,
     is_variadic: bool,
-    variadic_type: Option<Type>,
+    variadic_type: Option<FunctionVariadicType>,
     return_type: Option<FunctionReturnType>,
     generic_parameters: Option<GenericParameters>,
     tokens: Option<Box<FunctionBodyTokens>>,
@@ -252,19 +252,19 @@ impl FunctionStatement {
         self
     }
 
-    pub fn with_variadic_type(mut self, r#type: impl Into<Type>) -> Self {
+    pub fn with_variadic_type(mut self, r#type: impl Into<FunctionVariadicType>) -> Self {
         self.is_variadic = true;
         self.variadic_type = Some(r#type.into());
         self
     }
 
-    pub fn set_variadic_type(&mut self, r#type: impl Into<Type>) {
+    pub fn set_variadic_type(&mut self, r#type: impl Into<FunctionVariadicType>) {
         self.is_variadic = true;
         self.variadic_type = Some(r#type.into());
     }
 
     #[inline]
-    pub fn get_variadic_type(&self) -> Option<&Type> {
+    pub fn get_variadic_type(&self) -> Option<&FunctionVariadicType> {
         self.variadic_type.as_ref()
     }
 
@@ -274,7 +274,7 @@ impl FunctionStatement {
     }
 
     #[inline]
-    pub fn mutate_variadic_type(&mut self) -> Option<&mut Type> {
+    pub fn mutate_variadic_type(&mut self) -> Option<&mut FunctionVariadicType> {
         self.variadic_type.as_mut()
     }
 
diff --git a/src/nodes/statements/local_function.rs b/src/nodes/statements/local_function.rs
index 635e001..0b562c0 100644
--- a/src/nodes/statements/local_function.rs
+++ b/src/nodes/statements/local_function.rs
@@ -1,6 +1,6 @@
 use crate::nodes::{
-    Block, FunctionBodyTokens, FunctionReturnType, GenericParameters, Identifier, Token, Type,
-    TypedIdentifier,
+    Block, FunctionBodyTokens, FunctionReturnType, FunctionVariadicType, GenericParameters,
+    Identifier, Token, TypedIdentifier,
 };
 
 #[derive(Clone, Debug, PartialEq, Eq)]
@@ -51,7 +51,7 @@ pub struct LocalFunctionStatement {
     block: Block,
     parameters: Vec<TypedIdentifier>,
     is_variadic: bool,
-    variadic_type: Option<Type>,
+    variadic_type: Option<FunctionVariadicType>,
     return_type: Option<FunctionReturnType>,
     generic_parameters: Option<GenericParameters>,
     tokens: Option<Box<LocalFunctionTokens>>,
@@ -114,19 +114,19 @@ impl LocalFunctionStatement {
         self
     }
 
-    pub fn with_variadic_type(mut self, r#type: impl Into<Type>) -> Self {
+    pub fn with_variadic_type(mut self, r#type: impl Into<FunctionVariadicType>) -> Self {
         self.is_variadic = true;
         self.variadic_type = Some(r#type.into());
         self
     }
 
-    pub fn set_variadic_type(&mut self, r#type: impl Into<Type>) {
+    pub fn set_variadic_type(&mut self, r#type: impl Into<FunctionVariadicType>) {
         self.is_variadic = true;
         self.variadic_type = Some(r#type.into());
     }
 
     #[inline]
-    pub fn get_variadic_type(&self) -> Option<&Type> {
+    pub fn get_variadic_type(&self) -> Option<&FunctionVariadicType> {
         self.variadic_type.as_ref()
     }
 
@@ -136,7 +136,7 @@ impl LocalFunctionStatement {
     }
 
     #[inline]
-    pub fn mutate_variadic_type(&mut self) -> Option<&mut Type> {
+    pub fn mutate_variadic_type(&mut self) -> Option<&mut FunctionVariadicType> {
         self.variadic_type.as_mut()
     }
 
diff --git a/src/nodes/types/function_variadic_type.rs b/src/nodes/types/function_variadic_type.rs
new file mode 100644
index 0000000..7a22ef5
--- /dev/null
+++ b/src/nodes/types/function_variadic_type.rs
@@ -0,0 +1,19 @@
+use super::{GenericTypePack, Type};
+
+#[derive(Clone, Debug, PartialEq, Eq)]
+pub enum FunctionVariadicType {
+    Type(Type),
+    GenericTypePack(GenericTypePack),
+}
+
+impl From<GenericTypePack> for FunctionVariadicType {
+    fn from(value: GenericTypePack) -> Self {
+        Self::GenericTypePack(value)
+    }
+}
+
+impl<T: Into<Type>> From<T> for FunctionVariadicType {
+    fn from(value: T) -> Self {
+        Self::Type(value.into())
+    }
+}
diff --git a/src/nodes/types/mod.rs b/src/nodes/types/mod.rs
index 92d1d84..c701a65 100644
--- a/src/nodes/types/mod.rs
+++ b/src/nodes/types/mod.rs
@@ -1,6 +1,7 @@
 mod array;
 mod expression_type;
 mod function;
+mod function_variadic_type;
 mod generics;
 mod intersection;
 mod optional;
@@ -16,6 +17,7 @@ mod variadic_type_pack;
 pub use array::*;
 pub use expression_type::*;
 pub use function::*;
+pub use function_variadic_type::*;
 pub use generics::*;
 pub use intersection::*;
 pub use optional::*;
diff --git a/src/parser.rs b/src/parser.rs
index 2d89b36..9bf4579 100644
--- a/src/parser.rs
+++ b/src/parser.rs
@@ -447,8 +447,17 @@ mod test {
                     #[test]
                     fn $name() {
                         let parser = Parser::default().preserve_tokens();
-                        let block = parser.parse($input)
-                            .expect(&format!("failed to parse `{}`", $input));
+                        let block = match parser.parse($input) {
+                            Ok(block) => block,
+                            Err(err) => {
+                                panic!(
+                                    "failed to parse `{}`: {}\nfull-moon result:\n{:#?}",
+                                    $input,
+                                    err,
+                                    full_moon::parse($input)
+                                );
+                            }
+                        };
 
                         let expect_block = $value;
 
@@ -2205,6 +2214,74 @@ mod test {
                 equal: spaced_token(7, 8),
                 export: None,
             }),
+            type_declaration_to_optional_void_callback("type T = () -> ()?") => TypeDeclarationStatement::new(
+                create_identifier("T", 5, 1),
+                OptionalType::new(
+                    FunctionType::new(
+                        TypePack::default().with_tokens(TypePackTokens {
+                            left_parenthese: token_at_first_line(15, 16),
+                            right_parenthese: token_at_first_line(16, 17),
+                            commas: Vec::new(),
+                        })
+                    )
+                    .with_tokens(FunctionTypeTokens {
+                        opening_parenthese: token_at_first_line(9, 10),
+                        closing_parenthese: spaced_token(10, 11),
+                        arrow: spaced_token(12, 14),
+                        commas: Vec::new(),
+                    })
+                ).with_token(token_at_first_line(17, 18))
+            ).with_tokens(TypeDeclarationTokens {
+                r#type: spaced_token(0, 4),
+                equal: spaced_token(7, 8),
+                export: None,
+            }),
+            type_declaration_to_intersection_of_void_callback_and_string("type T = () -> () & string") => TypeDeclarationStatement::new(
+                create_identifier("T", 5, 1),
+                IntersectionType::new(
+                    FunctionType::new(
+                        TypePack::default().with_tokens(TypePackTokens {
+                            left_parenthese: token_at_first_line(15, 16),
+                            right_parenthese: spaced_token(16, 17),
+                            commas: Vec::new(),
+                        })
+                    )
+                    .with_tokens(FunctionTypeTokens {
+                        opening_parenthese: token_at_first_line(9, 10),
+                        closing_parenthese: spaced_token(10, 11),
+                        arrow: spaced_token(12, 14),
+                        commas: Vec::new(),
+                    }),
+                    TypeName::new(create_identifier("string", 20, 0))
+                ).with_token(spaced_token(18, 19))
+            ).with_tokens(TypeDeclarationTokens {
+                r#type: spaced_token(0, 4),
+                equal: spaced_token(7, 8),
+                export: None,
+            }),
+            type_declaration_to_union_of_void_callback_and_string("type T = () -> () | string") => TypeDeclarationStatement::new(
+                create_identifier("T", 5, 1),
+                UnionType::new(
+                    FunctionType::new(
+                        TypePack::default().with_tokens(TypePackTokens {
+                            left_parenthese: token_at_first_line(15, 16),
+                            right_parenthese: spaced_token(16, 17),
+                            commas: Vec::new(),
+                        })
+                    )
+                    .with_tokens(FunctionTypeTokens {
+                        opening_parenthese: token_at_first_line(9, 10),
+                        closing_parenthese: spaced_token(10, 11),
+                        arrow: spaced_token(12, 14),
+                        commas: Vec::new(),
+                    }),
+                    TypeName::new(create_identifier("string", 20, 0))
+                ).with_token(spaced_token(18, 19))
+            ).with_tokens(TypeDeclarationTokens {
+                r#type: spaced_token(0, 4),
+                equal: spaced_token(7, 8),
+                export: None,
+            }),
             type_declaration_to_callback_returning_type("type T = () -> boolean") => TypeDeclarationStatement::new(
                 create_identifier("T", 5, 1),
                 FunctionType::new(TypeName::new(create_identifier("boolean", 15, 0)))
@@ -2219,6 +2296,45 @@ mod test {
                 equal: spaced_token(7, 8),
                 export: None,
             }),
+            type_declaration_to_callback_returning_multiple_intersected_types("type T = () -> A & B & C") => TypeDeclarationStatement::new(
+                create_identifier("T", 5, 1),
+                FunctionType::new(
+                    IntersectionType::new(
+                        TypeName::new(create_identifier("A", 15, 1)),
+                        IntersectionType::new(
+                            TypeName::new(create_identifier("B", 19, 1)),
+                            TypeName::new(create_identifier("C", 23, 0)),
+                        ).with_token(spaced_token(21, 22))
+                    ).with_token(spaced_token(17, 18))
+                )
+                    .with_tokens(FunctionTypeTokens {
+                        opening_parenthese: token_at_first_line(9, 10),
+                        closing_parenthese: spaced_token(10, 11),
+                        arrow: spaced_token(12, 14),
+                        commas: Vec::new(),
+                    })
+            ).with_tokens(TypeDeclarationTokens {
+                r#type: spaced_token(0, 4),
+                equal: spaced_token(7, 8),
+                export: None,
+            }),
+            type_declaration_to_callback_returning_optional_type("type T = () -> boolean?") => TypeDeclarationStatement::new(
+                create_identifier("T", 5, 1),
+                FunctionType::new(
+                    OptionalType::new(TypeName::new(create_identifier("boolean", 15, 0)))
+                        .with_token(token_at_first_line(22, 23))
+                )
+                    .with_tokens(FunctionTypeTokens {
+                        opening_parenthese: token_at_first_line(9, 10),
+                        closing_parenthese: spaced_token(10, 11),
+                        arrow: spaced_token(12, 14),
+                        commas: Vec::new(),
+                    })
+            ).with_tokens(TypeDeclarationTokens {
+                r#type: spaced_token(0, 4),
+                equal: spaced_token(7, 8),
+                export: None,
+            }),
             type_declaration_to_callback_returning_variadic_type_name("type T = () -> ...string") => TypeDeclarationStatement::new(
                 create_identifier("T", 5, 1),
                 FunctionType::new(
@@ -2423,6 +2539,27 @@ mod test {
                 equal: spaced_token(7, 8),
                 export: None,
             }),
+            type_declaration_to_callback_with_variadic_optional_type_returning_type("type T = (...string?) -> boolean") => TypeDeclarationStatement::new(
+                create_identifier("T", 5, 1),
+                FunctionType::new(TypeName::new(create_identifier("boolean", 25, 0)))
+                    .with_variadic_type(
+                        VariadicTypePack::new(
+                            OptionalType::new(TypeName::new(create_identifier("string", 13, 0)))
+                                .with_token(token_at_first_line(19, 20))
+                        )
+                            .with_token(token_at_first_line(10, 13))
+                    )
+                    .with_tokens(FunctionTypeTokens {
+                        opening_parenthese: token_at_first_line(9, 10),
+                        closing_parenthese: spaced_token(20, 21),
+                        arrow: spaced_token(22, 24),
+                        commas: Vec::new(),
+                    })
+            ).with_tokens(TypeDeclarationTokens {
+                r#type: spaced_token(0, 4),
+                equal: spaced_token(7, 8),
+                export: None,
+            }),
             type_declaration_to_generic_callback("type T = <R>() -> R") => TypeDeclarationStatement::new(
                 create_identifier("T", 5, 1),
                 FunctionType::new(
diff --git a/src/process/visitors.rs b/src/process/visitors.rs
index 5bfc28b..c74185b 100644
--- a/src/process/visitors.rs
+++ b/src/process/visitors.rs
@@ -98,8 +98,8 @@ pub trait NodeVisitor<T: NodeProcessor> {
             Self::visit_type(r#type, processor);
         }
 
-        if let Some(r#type) = function.mutate_variadic_type() {
-            Self::visit_type(r#type, processor);
+        if let Some(variadic_type) = function.mutate_variadic_type() {
+            Self::visit_function_variadic_type(variadic_type, processor);
         }
 
         if let Some(return_type) = function.mutate_return_type() {
@@ -143,8 +143,8 @@ pub trait NodeVisitor<T: NodeProcessor> {
             Self::visit_type(r#type, processor);
         }
 
-        if let Some(r#type) = statement.mutate_variadic_type() {
-            Self::visit_type(r#type, processor);
+        if let Some(variadic_type) = statement.mutate_variadic_type() {
+            Self::visit_function_variadic_type(variadic_type, processor);
         }
 
         if let Some(return_type) = statement.mutate_return_type() {
@@ -207,8 +207,8 @@ pub trait NodeVisitor<T: NodeProcessor> {
             Self::visit_type(r#type, processor);
         }
 
-        if let Some(r#type) = statement.mutate_variadic_type() {
-            Self::visit_type(r#type, processor);
+        if let Some(variadic_type) = statement.mutate_variadic_type() {
+            Self::visit_function_variadic_type(variadic_type, processor);
         }
 
         if let Some(return_type) = statement.mutate_return_type() {
@@ -216,6 +216,17 @@ pub trait NodeVisitor<T: NodeProcessor> {
         }
     }
 
+    fn visit_function_variadic_type(variadic_type: &mut FunctionVariadicType, processor: &mut T) {
+        match variadic_type {
+            FunctionVariadicType::Type(r#type) => {
+                Self::visit_type(r#type, processor);
+            }
+            FunctionVariadicType::GenericTypePack(generic) => {
+                processor.process_generic_type_pack(generic);
+            }
+        }
+    }
+
     fn visit_numeric_for(statement: &mut NumericForStatement, processor: &mut T) {
         processor.process_numeric_for_statement(statement);
 


Test patch:
diff --git a/tests/ast_fuzzer/mod.rs b/tests/ast_fuzzer/mod.rs
index 9fa2c56..7f3d145 100644
--- a/tests/ast_fuzzer/mod.rs
+++ b/tests/ast_fuzzer/mod.rs
@@ -1033,7 +1033,13 @@ impl AstFuzzer {
                     }
 
                     if has_variadic_type {
-                        function.set_variadic_type(self.pop_type());
+                        let variadic_type = self.pop_type();
+                        if self.random.function_variadic_type_is_generic_pack() {
+                            function
+                                .set_variadic_type(GenericTypePack::new(self.random.identifier()));
+                        } else {
+                            function.set_variadic_type(variadic_type);
+                        }
                     }
 
                     self.statements.push(function.into());
diff --git a/tests/ast_fuzzer/random.rs b/tests/ast_fuzzer/random.rs
index f523748..f7c4773 100644
--- a/tests/ast_fuzzer/random.rs
+++ b/tests/ast_fuzzer/random.rs
@@ -272,6 +272,10 @@ impl RandomAst {
     pub fn function_generic_type_is_generic_pack(&self) -> bool {
         thread_rng().gen_bool(0.4)
     }
+
+    pub fn function_variadic_type_is_generic_pack(&self) -> bool {
+        thread_rng().gen_bool(0.2)
+    }
 }
 
 #[inline]