Closed Jarred-Sumner closed 1 year ago
Bisecting, it's between these two: https://github.com/ziglang/zig/compare/11695745e...cec1e973b
Considering that this isn't wasm or cbe which most of the changes in there are for, I'm inclined to think the segfault started with #16318
Additional steps to reproduce
git submodule update --init --recursive
touch src/runtime.out.js
touch src/fallback.out.js
After that, I was able to confirm it. A debug build of the compiler gives a lot more useful info:
andy@ark ~/D/bun (main)> ~/Downloads/zig/build-release/stage4/bin/zig build obj
Build linux-x64 v5.15.108 - v5.15.108 (haswell)
Output: /home/andy/Downloads/bun/packages/debug-bun-linux-x64/bun-debug
zig build-obj bun-debug Debug native-native-gnu.2.27: error: thread 866839 panic: reached unreachable code
Analyzing src/logger.zig: src/logger.zig:Data.writeFormat__anon_48000
%1650 = dbg_block_begin()
%1651 = dbg_stmt(8, 13)
%1659 = block({
%1652 = dbg_stmt(8, 17)
%1653 = field_val(%1640, "text") node_offset:262:13 to :262:22
%1654 = dbg_stmt(8, 22)
%1655 = field_val(%1653, "len") node_offset:262:13 to :262:26
%1656 = cmp_eq(%1655, @InternPool.Index.zero) node_offset:262:13 to :262:31
%1657 = as_node(@InternPool.Index.bool_type, %1656) node_offset:262:13 to :262:31
%1658 = condbr(%1657, {
%1660 = dbg_block_begin()
%1661 = dbg_stmt(8, 33)
%1662 = restore_err_ret_index(%4294967211, %4294967211)
%1663 = ret_node(@InternPool.Index.void_value) node_offset:262:33 to :262:39
%1664 = dbg_block_end()
%1665 = break(%1659, @InternPool.Index.unreachable_value)
}, {
%1666 = break(%1659, @InternPool.Index.void_value)
}) node_offset:262:9 to :262:39
}) node_offset:262:9 to :262:39
%1667 = ensure_result_used(%1659) node_offset:262:9 to :262:39
%1668 = dbg_stmt(10, 9)
%1670 = dbg_stmt(10, 39)
%1672 = enum_literal("err") token_offset:265:14 to :265:17
%1686 = enum_literal("note") token_offset:266:14 to :266:18
%1671 = switch_block(%1644,
else => {
%1708 = dbg_block_begin()
%1709 = block_comptime({
%1710 = decl_ref("Output") token_offset:267:30 to :267:36
%1711 = field_ptr(%1710, "color_map") node_offset:267:30 to :267:46
%1712 = dbg_stmt(13, 50)
%1713 = field_call(.compile_time, %1711, "get", [
{
%1714 = str("d")
%1715 = break_inline(%1713, %1714)
},
]) node_offset:267:30 to :267:55
%1716 = optional_payload_safe(%1713) node_offset:267:30 to :267:57
%1717 = decl_ref("Output") token_offset:267:61 to :267:67
%1718 = field_ptr(%1717, "color_map") node_offset:267:61 to :267:77
%1719 = dbg_stmt(13, 81)
%1720 = field_call(.compile_time, %1718, "get", [
{
%1721 = str("b")
%1722 = break_inline(%1720, %1721)
},
]) node_offset:267:61 to :267:86
%1723 = optional_payload_safe(%1720) node_offset:267:61 to :267:88
%1724 = array_cat(%1716, %1723) node_offset:267:30 to :267:88
%1725 = break(%1709, %1724)
}) node_offset:267:30 to :267:88
%1726 = store_to_block_ptr(%1669, %1709)
%1728 = break(%1671, %1709)
},
%1672 => {
%1673 = dbg_block_begin()
%1674 = block_comptime({
%1675 = decl_ref("Output") token_offset:265:30 to :265:36
%1676 = field_ptr(%1675, "color_map") node_offset:265:30 to :265:46
%1677 = dbg_stmt(11, 50)
%1678 = field_call(.compile_time, %1676, "get", [
{
%1679 = str("b")
%1680 = break_inline(%1678, %1679)
},
]) node_offset:265:30 to :265:55
%1681 = optional_payload_safe(%1678) node_offset:265:30 to :265:57
%1682 = break(%1674, %1681)
}) node_offset:265:30 to :265:57
%1683 = store_to_block_ptr(%1669, %1674)
%1685 = break(%1671, %1674)
},
%1686 => {
%1687 = dbg_block_begin()
%1688 = block_comptime({
%1689 = decl_ref("Output") token_offset:266:31 to :266:37
%1690 = field_ptr(%1689, "color_map") node_offset:266:31 to :266:47
%1691 = dbg_stmt(12, 51)
%1692 = field_call(.compile_time, %1690, "get", [
{
%1693 = str("cyan")
%1694 = break_inline(%1692, %1693)
},
]) node_offset:266:31 to :266:59
%1695 = optional_payload_safe(%1692) node_offset:266:31 to :266:61
%1696 = decl_ref("Output") token_offset:266:65 to :266:71
%1697 = field_ptr(%1696, "color_map") node_offset:266:65 to :266:81
%1698 = dbg_stmt(12, 85)
%1699 = field_call(.compile_time, %1697, "get", [
{
%1700 = str("d")
%1701 = break_inline(%1699, %1700)
},
]) node_offset:266:65 to :266:90
%1702 = optional_payload_safe(%1699) node_offset:266:65 to :266:92
%1703 = array_cat(%1695, %1702) node_offset:266:31 to :266:92
%1704 = break(%1688, %1703)
}) node_offset:266:31 to :266:92
%1705 = store_to_block_ptr(%1669, %1688)
%1707 = break(%1671, %1688)
}) node_offset:264:31 to :264:37
%1730 = save_err_ret_index(%1671)
%1731 = dbg_var_val(%1671, "message_color")
%1732 = dbg_stmt(16, 9)
%1733 = block_comptime({
%1734 = decl_val("string") token_offset:270:27 to :270:33
%1735 = break(%1733, %1734)
}) node_offset:270:27 to :270:33
%1737 = dbg_stmt(16, 44)
%1739 = enum_literal("err") token_offset:271:14 to :271:17
%1753 = enum_literal("note") token_offset:272:14 to :272:18
%1738 = switch_block(%1644,
else => {
%1767 = dbg_block_begin()
%1768 = block_comptime({
%1769 = decl_ref("Output") token_offset:273:30 to :273:36
%1770 = field_ptr(%1769, "color_map") node_offset:273:30 to :273:46
%1771 = dbg_stmt(19, 50)
%1772 = field_call(.compile_time, %1770, "get", [
{
%1773 = str("d")
%1774 = break_inline(%1772, %1773)
},
]) node_offset:273:30 to :273:55
%1775 = optional_payload_safe(%1772) node_offset:273:30 to :273:57
%1776 = break(%1768, %1775)
}) node_offset:273:30 to :273:57
%1777 = as(%1733, %1768)
%1778 = dbg_block_end()
%1779 = break(%1738, %1777)
},
%1739 => {
%1740 = dbg_block_begin()
%1741 = block_comptime({
%1742 = decl_ref("Output") token_offset:271:30 to :271:36
%1743 = field_ptr(%1742, "color_map") node_offset:271:30 to :271:46
%1744 = dbg_stmt(17, 50)
%1745 = field_call(.compile_time, %1743, "get", [
{
%1746 = str("red")
%1747 = break_inline(%1745, %1746)
},
]) node_offset:271:30 to :271:57
%1748 = optional_payload_safe(%1745) node_offset:271:30 to :271:59
%1749 = break(%1741, %1748)
}) node_offset:271:30 to :271:59
%1750 = as(%1733, %1741)
%1751 = dbg_block_end()
%1752 = break(%1738, %1750)
},
%1753 => {
%1754 = dbg_block_begin()
%1755 = block_comptime({
%1756 = decl_ref("Output") token_offset:272:31 to :272:37
%1757 = field_ptr(%1756, "color_map") node_offset:272:31 to :272:47
%1758 = dbg_stmt(18, 51)
%1759 = field_call(.compile_time, %1757, "get", [
{
%1760 = str("cyan")
%1761 = break_inline(%1759, %1760)
},
]) node_offset:272:31 to :272:59
%1762 = optional_payload_safe(%1759) node_offset:272:31 to :272:61
%1763 = break(%1755, %1762)
}) node_offset:272:31 to :272:61
%1764 = as(%1733, %1755)
%1765 = dbg_block_end()
%1766 = break(%1738, %1764)
}) node_offset:270:36 to :270:42
%1781 = save_err_ret_index(%1738)
%1782 = as_node(%1733, %1738) node_offset:270:36 to :270:42
%1783 = dbg_var_val(%1782, "color_name")
%1784 = dbg_stmt(22, 9)
%1785 = ref(%1641) token_offset:276:13 to :276:15
%1786 = dbg_stmt(22, 15)
%1787 = dbg_stmt(22, 24)
%1788 = field_call(.auto, %1785, "writeAll", [
{
%1789 = str("\n\n")
%1790 = break_inline(%1788, %1789)
},
]) node_offset:276:13 to :276:32
%1791 = try(%1788, {
%1792 = err_union_code(%1788) node_offset:276:9 to :276:32
%1793 = dbg_stmt(22, 9)
%1794 = ret_node(%1792) node_offset:276:9 to :276:32
}) node_offset:276:9 to :276:32
%1795 = ensure_result_used(%1791) node_offset:276:9 to :276:32
%1796 = dbg_stmt(24, 13)
%1801 = block({
%1797 = block_comptime({
%1798 = break(%1797, %1646)
}) node_offset:278:22 to :278:40
%1799 = as_node(@InternPool.Index.bool_type, %1797) node_offset:278:22 to :278:40
%1800 = condbr(%1799, {
%1802 = dbg_block_begin()
%1803 = block({
%1804 = dbg_block_begin()
%1805 = dbg_stmt(25, 13)
%1806 = ref(%1641) token_offset:279:17 to :279:19
%1807 = dbg_stmt(25, 19)
%1808 = dbg_stmt(25, 28)
%1809 = field_call(.auto, %1806, "writeAll", [
{
%1810 = break_inline(%1809, %1782)
},
]) node_offset:279:17 to :279:40
%1811 = try(%1809, {
%1812 = err_union_code(%1809) node_offset:279:13 to :279:40
%1813 = dbg_stmt(25, 13)
%1814 = ret_node(%1812) node_offset:279:13 to :279:40
}) node_offset:279:13 to :279:40
%1815 = ensure_result_used(%1811) node_offset:279:13 to :279:40
%1816 = dbg_block_end()
%1817 = restore_err_ret_index(%1803, %4294967211)
%1818 = break(%1803, @InternPool.Index.void_value)
}) node_offset:278:42 to :278:43
%1819 = dbg_block_end()
%1820 = break(%1801, @InternPool.Index.void_value)
}, {
%1821 = break(%1801, @InternPool.Index.void_value)
}) node_offset:278:9 to :278:11
}) node_offset:278:9 to :278:11
%1822 = ensure_result_used(%1801) node_offset:278:9 to :278:11
%1823 = dbg_stmt(28, 9)
%1824 = ref(%1641) token_offset:282:13 to :282:15
%1825 = dbg_stmt(28, 15)
%1826 = dbg_stmt(28, 24)
%1827 = field_call(.auto, %1824, "writeAll", [
{
%1828 = ref(%1644) token_offset:282:25 to :282:29
%1829 = dbg_stmt(28, 29)
%1830 = dbg_stmt(28, 36)
%1831 = field_call(.auto, %1828, "string", []) node_offset:282:25 to :282:38
%1832 = break_inline(%1827, %1831)
},
]) node_offset:282:13 to :282:39
%1833 = try(%1827, {
%1834 = err_union_code(%1827) node_offset:282:9 to :282:39
%1835 = dbg_stmt(28, 9)
%1836 = ret_node(%1834) node_offset:282:9 to :282:39
}) node_offset:282:9 to :282:39
%1837 = ensure_result_used(%1833) node_offset:282:9 to :282:39
%1838 = dbg_stmt(30, 9)
%1839 = decl_ref("std") token_offset:284:13 to :284:16
%1840 = dbg_stmt(30, 16)
%1841 = field_ptr(%1839, "fmt") node_offset:284:13 to :284:20
%1842 = dbg_stmt(30, 20)
%1843 = dbg_stmt(30, 27)
%1844 = field_call(.auto, %1841, "format", [
{
%1845 = break_inline(%1844, %1641)
},
{
%1846 = block_comptime({
%1847 = decl_ref("Output") token_offset:284:41 to :284:47
%1848 = dbg_stmt(30, 57)
%1849 = field_call(.compile_time, %1847, "prettyFmt", [
{
%1850 = str("<r><d>: <r>")
%1851 = break_inline(%1849, %1850)
},
{
%1852 = break_inline(%1849, %1646)
},
]) node_offset:284:41 to :284:92
%1853 = break(%1846, %1849)
}) node_offset:284:41 to :284:92
%1854 = break_inline(%1844, %1846)
},
{
%1855 = break_inline(%1844, @InternPool.Index.empty_struct)
},
]) node_offset:284:13 to :284:98
> %1856 = try(%1844, {
%1857 = err_union_code(%1844) node_offset:284:9 to :284:98
%1858 = dbg_stmt(30, 9)
%1859 = ret_node(%1857) node_offset:284:9 to :284:98
}) node_offset:284:9 to :284:98
%1860 = ensure_result_used(%1856) node_offset:284:9 to :284:98
%1861 = dbg_stmt(32, 13)
%1866 = block({
%1862 = block_comptime({
%1863 = break(%1862, %1646)
}) node_offset:286:22 to :286:40
%1864 = as_node(@InternPool.Index.bool_type, %1862) node_offset:286:22 to :286:40
%1865 = condbr(%1864, {
%1867 = dbg_block_begin()
%1868 = block({
%1869 = dbg_block_begin()
%1870 = dbg_stmt(33, 13)
%1871 = ref(%1641) token_offset:287:17 to :287:19
%1872 = dbg_stmt(33, 19)
%1873 = dbg_stmt(33, 28)
%1874 = field_call(.auto, %1871, "writeAll", [
{
%1875 = break_inline(%1874, %1671)
},
]) node_offset:287:17 to :287:43
%1876 = try(%1874, {
%1877 = err_union_code(%1874) node_offset:287:13 to :287:43
%1878 = dbg_stmt(33, 13)
%1879 = ret_node(%1877) node_offset:287:13 to :287:43
}) node_offset:287:13 to :287:43
%1880 = ensure_result_used(%1876) node_offset:287:13 to :287:43
%1881 = dbg_block_end()
%1882 = restore_err_ret_index(%1868, %4294967211)
%1883 = break(%1868, @InternPool.Index.void_value)
}) node_offset:286:42 to :286:43
%1884 = dbg_block_end()
%1885 = break(%1866, @InternPool.Index.void_value)
}, {
%1886 = break(%1866, @InternPool.Index.void_value)
}) node_offset:286:9 to :286:11
}) node_offset:286:9 to :286:11
%1887 = ensure_result_used(%1866) node_offset:286:9 to :286:11
%1888 = dbg_stmt(36, 9)
%1889 = decl_ref("std") token_offset:290:13 to :290:16
%1890 = dbg_stmt(36, 16)
%1891 = field_ptr(%1889, "fmt") node_offset:290:13 to :290:20
%1892 = dbg_stmt(36, 20)
%1893 = dbg_stmt(36, 27)
%1894 = field_call(.auto, %1891, "format", [
{
%1895 = break_inline(%1894, %1641)
},
{
%1896 = block_comptime({
%1897 = decl_ref("Output") token_offset:290:41 to :290:47
%1898 = dbg_stmt(36, 57)
%1899 = field_call(.compile_time, %1897, "prettyFmt", [
{
%1900 = str("{s}<r>\n")
%1901 = break_inline(%1899, %1900)
},
{
%1902 = break_inline(%1899, %1646)
},
]) node_offset:290:41 to :290:89
%1903 = break(%1896, %1899)
}) node_offset:290:41 to :290:89
%1904 = break_inline(%1894, %1896)
},
{
%1905 = dbg_stmt(36, 97)
%1906 = field_val(%1640, "text") node_offset:290:93 to :290:102
%1907 = array_init_anon({%1906}) node_offset:290:91 to :290:103
%1908 = break_inline(%1894, %1907)
},
]) node_offset:290:13 to :290:104
%1909 = try(%1894, {
%1910 = err_union_code(%1894) node_offset:290:9 to :290:104
%1911 = dbg_stmt(36, 9)
%1912 = ret_node(%1910) node_offset:290:9 to :290:104
}) node_offset:290:9 to :290:104
%1913 = ensure_result_used(%1909) node_offset:290:9 to :290:104
%1914 = dbg_stmt(38, 13)
%1919 = block({
%1915 = dbg_stmt(38, 17)
%1916 = field_val(%1640, "location") node_offset:292:13 to :292:26
%1917 = is_non_null(%1916) node_offset:292:13 to :292:26
%1918 = condbr(%1917, {
%1920 = dbg_block_begin()
%1921 = optional_payload_unsafe(%1916) node_offset:292:39 to :292:40
%1922 = dbg_var_val(%1921, "location")
%1923 = block({
%1924 = dbg_block_begin()
%1925 = dbg_stmt(39, 17)
%1930 = block({
%1926 = dbg_stmt(39, 25)
%1927 = field_val(%1921, "line_text") node_offset:293:17 to :293:35
%1928 = is_non_null(%1927) node_offset:293:17 to :293:35
%1929 = condbr(%1928, {
%1931 = dbg_block_begin()
%1932 = optional_payload_unsafe(%1927) node_offset:293:50 to :293:51
%1933 = dbg_var_val(%1932, "line_text_")
%1934 = block({
%1935 = dbg_block_begin()
%1936 = dbg_stmt(40, 17)
%1938 = decl_ref("std") token_offset:294:35 to :294:38
%1939 = dbg_stmt(40, 38)
%1940 = field_ptr(%1938, "mem") node_offset:294:35 to :294:42
%1941 = dbg_stmt(40, 42)
%1942 = dbg_stmt(40, 52)
%1943 = field_call(.auto, %1940, "trimRight", [
{
%1944 = break_inline(%1943, @InternPool.Index.u8_type)
},
{
%1945 = break_inline(%1943, %1932)
},
{
%1946 = str("\r\n\t")
%1947 = break_inline(%1943, %1946)
},
]) node_offset:294:35 to :294:78
%2004 = ref(%1943) token_offset:303:48 to :303:57
%1949 = save_err_ret_index(%1943)
%1950 = dbg_var_val(%1943, "line_text")
%1951 = dbg_stmt(42, 17)
%1952 = dbg_stmt(42, 78)
%1953 = field_val(%1921, "column") node_offset:296:70 to :296:85
%1954 = max(%1953, @InternPool.Index.one) node_offset:296:65 to :296:89
%1955 = dbg_stmt(42, 90)
%1956 = sub(%1954, @InternPool.Index.one) node_offset:296:65 to :296:93
%1957 = dbg_stmt(42, 56)
%1958 = int_cast(@InternPool.Index.u32_type, %1956) node_offset:296:56 to :296:94
%1959 = as_node(@InternPool.Index.u32_type, %1958) node_offset:296:56 to :296:94
%1960 = dbg_var_val(%1959, "location_in_line_text")
%1961 = save_err_ret_index(%1959)
%1962 = dbg_stmt(43, 17)
%1963 = dbg_stmt(43, 46)
%1964 = field_val(%1921, "column") node_offset:297:38 to :297:53
%1965 = negate(@InternPool.Index.one) node_offset:297:56 to :297:58
%1966 = cmp_gt(%1964, %1965) node_offset:297:38 to :297:58
%1967 = as_node(@InternPool.Index.bool_type, %1966) node_offset:297:38 to :297:58
%1968 = bool_br_and(%1967, {
%1969 = dbg_stmt(43, 72)
%1970 = field_val(%1943, "len") node_offset:297:63 to :297:76
%1971 = cmp_gt(%1970, @InternPool.Index.zero) node_offset:297:63 to :297:80
%1972 = as_node(@InternPool.Index.bool_type, %1971) node_offset:297:63 to :297:80
%1973 = break_inline(%1968, %1972)
}
%1974 = as_node(@InternPool.Index.bool_type, %1968) node_offset:297:38 to :297:80
%1975 = bool_br_and(%1974, {
%1976 = dbg_stmt(43, 118)
%1977 = field_val(%1943, "len") node_offset:297:109 to :297:122
%1978 = cmp_lt(%1959, %1977) node_offset:297:85 to :297:122
%1979 = as_node(@InternPool.Index.bool_type, %1978) node_offset:297:85 to :297:122
%1980 = break_inline(%1975, %1979)
}
%1981 = dbg_var_val(%1975, "has_position")
%1982 = dbg_stmt(45, 21)
%1985 = block({
%1983 = as_node(@InternPool.Index.bool_type, %1975) node_offset:299:21 to :299:33
%1984 = condbr(%1983, {
%1986 = dbg_block_begin()
%1987 = block({
%1988 = dbg_block_begin()
%1989 = dbg_stmt(46, 25)
%1994 = block({
%1990 = block_comptime({
%1991 = break(%1990, %1646)
}) node_offset:300:34 to :300:52
%1992 = as_node(@InternPool.Index.bool_type, %1990) node_offset:300:34 to :300:52
%1993 = condbr(%1992, {
%1995 = dbg_block_begin()
%1996 = block({
%1997 = dbg_block_begin()
%1998 = dbg_stmt(47, 25)
%1999 = dbg_stmt(47, 57)
%2000 = field_val(%1671, "len") node_offset:301:44 to :301:61
%2001 = cmp_gt(%2000, @InternPool.Index.zero) node_offset:301:44 to :301:65
%2002 = dbg_var_val(%2001, "is_colored")
%2003 = dbg_stmt(49, 25)
%2005 = dbg_stmt(49, 57)
%2006 = slice_end(%2004, @InternPool.Index.zero, %1959) node_offset:303:48 to :303:83
%2007 = dbg_var_val(%2006, "before_segment")
%2008 = dbg_stmt(51, 25)
%2009 = ref(%1641) token_offset:305:29 to :305:31
%2010 = dbg_stmt(51, 31)
%2011 = dbg_stmt(51, 40)
%2012 = field_call(.auto, %2009, "writeAll", [
{
%2013 = break_inline(%2012, %2006)
},
]) node_offset:305:29 to :305:56
%2014 = try(%2012, {
%2015 = err_union_code(%2012) node_offset:305:25 to :305:56
%2016 = dbg_stmt(51, 25)
%2017 = ret_node(%2015) node_offset:305:25 to :305:56
}) node_offset:305:25 to :305:56
%2018 = ensure_result_used(%2014) node_offset:305:25 to :305:56
%2019 = dbg_stmt(52, 29)
%2022 = block({
%2020 = as_node(@InternPool.Index.bool_type, %2001) node_offset:306:29 to :306:39
%2021 = condbr(%2020, {
%2023 = dbg_block_begin()
%2024 = block({
%2025 = dbg_block_begin()
%2026 = dbg_stmt(53, 29)
%2027 = ref(%1641) token_offset:307:33 to :307:35
%2028 = dbg_stmt(53, 35)
%2029 = dbg_stmt(53, 44)
%2030 = field_call(.auto, %2027, "writeAll", [
{
%2031 = break_inline(%2030, %1782)
},
]) node_offset:307:33 to :307:56
%2032 = try(%2030, {
%2033 = err_union_code(%2030) node_offset:307:29 to :307:56
%2034 = dbg_stmt(53, 29)
%2035 = ret_node(%2033) node_offset:307:29 to :307:56
}) node_offset:307:29 to :307:56
%2036 = ensure_result_used(%2032) node_offset:307:29 to :307:56
%2037 = dbg_block_end()
%2038 = restore_err_ret_index(%2024, %4294967211)
%2039 = break(%2024, @InternPool.Index.void_value)
}) node_offset:306:41 to :306:42
%2040 = dbg_block_end()
%2041 = break(%2022, @InternPool.Index.void_value)
}, {
%2042 = break(%2022, @InternPool.Index.void_value)
}) node_offset:306:25 to :306:27
}) node_offset:306:25 to :306:27
%2043 = ensure_result_used(%2022) node_offset:306:25 to :306:27
%2044 = dbg_stmt(56, 25)
%2045 = dbg_stmt(56, 55)
%2046 = slice_start(%2004, %1959) node_offset:310:46 to :310:80
%2165 = ref(%2046) token_offset:333:45 to :333:57
%2047 = dbg_var_val(%2046, "rest_of_line")
%2048 = dbg_stmt(58, 29)
%2054 = block({
%2049 = dbg_stmt(58, 41)
%2050 = field_val(%2046, "len") node_offset:312:29 to :312:45
%2051 = cmp_gt(%2050, @InternPool.Index.zero) node_offset:312:29 to :312:49
%2052 = as_node(@InternPool.Index.bool_type, %2051) node_offset:312:29 to :312:49
%2053 = condbr(%2052, {
%2055 = dbg_block_begin()
%2056 = block({
%2057 = dbg_block_begin()
%2058 = dbg_stmt(59, 29)
%2059 = alloc_mut(@InternPool.Index.usize_type) node_offset:313:29 to :313:58
%2060 = store_node(%2059, @InternPool.Index.one) node_offset:313:57 to :313:58
%2061 = dbg_var_ptr(%2059, "end_of_segment")
%2062 = dbg_stmt(60, 29)
%2063 = alloc_inferred_mut() node_offset:314:29 to :314:93
%2064 = decl_ref("strings") token_offset:314:40 to :314:47
%2065 = dbg_stmt(60, 47)
%2066 = field_ptr(%2064, "CodepointIterator") node_offset:314:40 to :314:65
%2067 = dbg_stmt(60, 65)
%2068 = dbg_stmt(60, 76)
%2069 = field_call(.auto, %2066, "initOffset", [
{
%2070 = break_inline(%2069, %2046)
},
{
%2071 = break_inline(%2069, @InternPool.Index.one)
},
]) node_offset:314:40 to :314:93
%2072 = store_to_inferred_ptr(%2063, %2069)
%2073 = resolve_inferred_alloc(%2063) node_offset:314:29 to :314:93
%2074 = dbg_var_ptr(%2063, "iter")
%2075 = dbg_stmt(64, 29)
%2076 = as_node(@InternPool.Index.usize_type, %1959) node_offset:318:47 to :318:68
%2077 = dbg_stmt(64, 46)
%2078 = elem_val_node(%1943, %2076) node_offset:318:37 to :318:69
%2079 = dbg_stmt(64, 37)
%2081 = block_comptime({
%2082 = int(39)
%2083 = break(%2081, %2082)
}) node_offset:319:33 to :319:37
%2099 = block_comptime({
%2100 = int(34)
%2101 = break(%2099, %2100)
}) node_offset:322:33 to :322:36
%2117 = block_comptime({
%2118 = int(60)
%2119 = break(%2117, %2118)
}) node_offset:325:33 to :325:36
%2135 = block_comptime({
%2136 = int(96)
%2137 = break(%2135, %2136)
}) node_offset:328:33 to :328:36
%2080 = switch_block(%2078,
else => {
%2153 = dbg_block_begin()
%2154 = block({
%2155 = restore_err_ret_index(%2154, %4294967211)
%2156 = break(%2154, @InternPool.Index.void_value)
}) node_offset:331:41 to :331:43
%2157 = dbg_block_end()
%2158 = break(%2080, @InternPool.Index.void_value)
},
%2081 => {
%2084 = dbg_block_begin()
%2085 = block({
%2086 = dbg_block_begin()
%2087 = dbg_stmt(66, 37)
%2088 = dbg_stmt(66, 58)
%2089 = dbg_stmt(66, 84)
%2090 = field_call(.auto, %2063, "scanUntilQuotedValueOrEOF", [
{
%2091 = int(39)
%2092 = break_inline(%2090, %2091)
},
]) node_offset:320:54 to :320:90
%2093 = store_node(%2059, %2090) node_offset:320:37 to :320:90
%2094 = dbg_block_end()
%2095 = restore_err_ret_index(%2085, %4294967211)
%2096 = break(%2085, @InternPool.Index.void_value)
}) node_offset:319:41 to :319:42
%2097 = dbg_block_end()
%2098 = break(%2080, @InternPool.Index.void_value)
},
%2099 => {
%2102 = dbg_block_begin()
%2103 = block({
%2104 = dbg_block_begin()
%2105 = dbg_stmt(69, 37)
%2106 = dbg_stmt(69, 58)
%2107 = dbg_stmt(69, 84)
%2108 = field_call(.auto, %2063, "scanUntilQuotedValueOrEOF", [
{
%2109 = int(34)
%2110 = break_inline(%2108, %2109)
},
]) node_offset:323:54 to :323:89
%2111 = store_node(%2059, %2108) node_offset:323:37 to :323:89
%2112 = dbg_block_end()
%2113 = restore_err_ret_index(%2103, %4294967211)
%2114 = break(%2103, @InternPool.Index.void_value)
}) node_offset:322:40 to :322:41
%2115 = dbg_block_end()
%2116 = break(%2080, @InternPool.Index.void_value)
},
%2117 => {
%2120 = dbg_block_begin()
%2121 = block({
%2122 = dbg_block_begin()
%2123 = dbg_stmt(72, 37)
%2124 = dbg_stmt(72, 58)
%2125 = dbg_stmt(72, 84)
%2126 = field_call(.auto, %2063, "scanUntilQuotedValueOrEOF", [
{
%2127 = int(62)
%2128 = break_inline(%2126, %2127)
},
]) node_offset:326:54 to :326:89
%2129 = store_node(%2059, %2126) node_offset:326:37 to :326:89
%2130 = dbg_block_end()
%2131 = restore_err_ret_index(%2121, %4294967211)
%2132 = break(%2121, @InternPool.Index.void_value)
}) node_offset:325:40 to :325:41
%2133 = dbg_block_end()
%2134 = break(%2080, @InternPool.Index.void_value)
},
%2135 => {
%2138 = dbg_block_begin()
%2139 = block({
%2140 = dbg_block_begin()
%2141 = dbg_stmt(75, 37)
%2142 = dbg_stmt(75, 58)
%2143 = dbg_stmt(75, 84)
%2144 = field_call(.auto, %2063, "scanUntilQuotedValueOrEOF", [
{
%2145 = int(96)
%2146 = break_inline(%2144, %2145)
},
]) node_offset:329:54 to :329:89
%2147 = store_node(%2059, %2144) node_offset:329:37 to :329:89
%2148 = dbg_block_end()
%2149 = restore_err_ret_index(%2139, %4294967211)
%2150 = break(%2139, @InternPool.Index.void_value)
}) node_offset:328:40 to :328:41
%2151 = dbg_block_end()
%2152 = break(%2080, @InternPool.Index.void_value)
}) node_offset:318:29 to :318:35
%2159 = ensure_result_used(%2080) node_offset:318:29 to :318:35
%2160 = dbg_stmt(79, 29)
%2161 = ref(%1641) token_offset:333:33 to :333:35
%2162 = dbg_stmt(79, 35)
%2163 = dbg_stmt(79, 44)
%2164 = field_call(.auto, %2161, "writeAll", [
{
%2166 = load(%2059) node_offset:333:61 to :333:75
%2167 = dbg_stmt(79, 57)
%2168 = slice_end(%2165, @InternPool.Index.zero, %2166) node_offset:333:45 to :333:76
%2169 = break_inline(%2164, %2168)
},
]) node_offset:333:33 to :333:77
%2170 = try(%2164, {
%2171 = err_union_code(%2164) node_offset:333:29 to :333:77
%2172 = dbg_stmt(79, 29)
%2173 = ret_node(%2171) node_offset:333:29 to :333:77
}) node_offset:333:29 to :333:77
%2174 = ensure_result_used(%2170) node_offset:333:29 to :333:77
%2175 = dbg_stmt(80, 33)
%2178 = block({
%2176 = as_node(@InternPool.Index.bool_type, %2001) node_offset:334:33 to :334:43
%2177 = condbr(%2176, {
%2179 = dbg_block_begin()
%2180 = block({
%2181 = dbg_block_begin()
%2182 = dbg_stmt(81, 33)
%2183 = ref(%1641) token_offset:335:37 to :335:39
%2184 = dbg_stmt(81, 39)
%2185 = dbg_stmt(81, 48)
%2186 = field_call(.auto, %2183, "writeAll", [
{
%2187 = str("\x1b[0m")
%2188 = break_inline(%2186, %2187)
},
]) node_offset:335:37 to :335:59
%2189 = try(%2186, {
%2190 = err_union_code(%2186) node_offset:335:33 to :335:59
%2191 = dbg_stmt(81, 33)
%2192 = ret_node(%2190) node_offset:335:33 to :335:59
}) node_offset:335:33 to :335:59
%2193 = ensure_result_used(%2189) node_offset:335:33 to :335:59
%2194 = dbg_block_end()
%2195 = restore_err_ret_index(%2180, %4294967211)
%2196 = break(%2180, @InternPool.Index.void_value)
}) node_offset:334:45 to :334:46
%2197 = dbg_block_end()
%2198 = break(%2178, @InternPool.Index.void_value)
}, {
%2199 = break(%2178, @InternPool.Index.void_value)
}) node_offset:334:29 to :334:31
}) node_offset:334:29 to :334:31
%2200 = ensure_result_used(%2178) node_offset:334:29 to :334:31
%2201 = dbg_stmt(84, 29)
%2202 = ref(%1641) token_offset:338:33 to :338:35
%2203 = dbg_stmt(84, 35)
%2204 = dbg_stmt(84, 44)
%2205 = field_call(.auto, %2202, "writeAll", [
{
%2206 = load(%2059) node_offset:338:58 to :338:72
%2207 = dbg_stmt(84, 57)
%2208 = slice_start(%2165, %2206) node_offset:338:45 to :338:75
%2209 = break_inline(%2205, %2208)
},
]) node_offset:338:33 to :338:76
%2210 = try(%2205, {
%2211 = err_union_code(%2205) node_offset:338:29 to :338:76
%2212 = dbg_stmt(84, 29)
%2213 = ret_node(%2211) node_offset:338:29 to :338:76
}) node_offset:338:29 to :338:76
%2214 = ensure_result_used(%2210) node_offset:338:29 to :338:76
%2215 = dbg_block_end()
%2216 = restore_err_ret_index(%2056, %4294967211)
%2217 = break(%2056, @InternPool.Index.void_value)
}) node_offset:312:51 to :312:52
%2218 = dbg_block_end()
%2246 = break(%2054, @InternPool.Index.void_value)
}, {
%2219 = dbg_block_begin()
%2223 = block({
%2220 = dbg_stmt(85, 36)
%2221 = as_node(@InternPool.Index.bool_type, %2001) node_offset:339:36 to :339:46
%2222 = condbr(%2221, {
%2224 = dbg_block_begin()
%2225 = block({
%2226 = dbg_block_begin()
%2227 = dbg_stmt(86, 29)
%2228 = ref(%1641) token_offset:340:33 to :340:35
%2229 = dbg_stmt(86, 35)
%2230 = dbg_stmt(86, 44)
%2231 = field_call(.auto, %2228, "writeAll", [
{
%2232 = str("\x1b[0m")
%2233 = break_inline(%2231, %2232)
},
]) node_offset:340:33 to :340:55
%2234 = try(%2231, {
%2235 = err_union_code(%2231) node_offset:340:29 to :340:55
%2236 = dbg_stmt(86, 29)
%2237 = ret_node(%2235) node_offset:340:29 to :340:55
}) node_offset:340:29 to :340:55
%2238 = ensure_result_used(%2234) node_offset:340:29 to :340:55
%2239 = dbg_block_end()
%2240 = restore_err_ret_index(%2225, %4294967211)
%2241 = break(%2225, @InternPool.Index.void_value)
}) node_offset:339:48 to :339:49
%2242 = dbg_block_end()
%2243 = break(%2223, @InternPool.Index.void_value)
}, {
%2244 = break(%2223, @InternPool.Index.void_value)
}) node_offset:339:32 to :339:34
}) node_offset:339:32 to :339:34
%2245 = dbg_block_end()
%2247 = break(%2054, %2223)
}) node_offset:312:25 to :312:27
}) node_offset:312:25 to :312:27
%2248 = ensure_result_used(%2054) node_offset:312:25 to :312:27
%2249 = dbg_block_end()
%2250 = restore_err_ret_index(%1996, %4294967211)
%2251 = break(%1996, @InternPool.Index.void_value)
}) node_offset:300:54 to :300:55
%2252 = dbg_block_end()
%2271 = break(%1994, @InternPool.Index.void_value)
}, {
%2253 = dbg_block_begin()
%2254 = block({
%2255 = dbg_block_begin()
%2256 = dbg_stmt(89, 25)
%2257 = ref(%1641) token_offset:343:29 to :343:31
%2258 = dbg_stmt(89, 31)
%2259 = dbg_stmt(89, 40)
%2260 = field_call(.auto, %2257, "writeAll", [
{
%2261 = break_inline(%2260, %1943)
},
]) node_offset:343:29 to :343:51
%2262 = try(%2260, {
%2263 = err_union_code(%2260) node_offset:343:25 to :343:51
%2264 = dbg_stmt(89, 25)
%2265 = ret_node(%2263) node_offset:343:25 to :343:51
}) node_offset:343:25 to :343:51
%2266 = ensure_result_used(%2262) node_offset:343:25 to :343:51
%2267 = dbg_block_end()
%2268 = restore_err_ret_index(%2254, %4294967211)
%2269 = break(%2254, @InternPool.Index.void_value)
}) node_offset:342:28 to :342:29
%2270 = dbg_block_end()
%2272 = break(%1994, @InternPool.Index.void_value)
}) node_offset:300:21 to :300:23
}) node_offset:300:21 to :300:23
%2273 = ensure_result_used(%1994) node_offset:300:21 to :300:23
%2274 = dbg_stmt(92, 21)
%2275 = ref(%1641) token_offset:346:25 to :346:27
%2276 = dbg_stmt(92, 27)
%2277 = dbg_stmt(92, 36)
%2278 = field_call(.auto, %2275, "writeAll", [
{
%2279 = str("\n")
%2280 = break_inline(%2278, %2279)
},
]) node_offset:346:25 to :346:42
%2281 = try(%2278, {
%2282 = err_union_code(%2278) node_offset:346:21 to :346:42
%2283 = dbg_stmt(92, 21)
%2284 = ret_node(%2282) node_offset:346:21 to :346:42
}) node_offset:346:21 to :346:42
%2285 = ensure_result_used(%2281) node_offset:346:21 to :346:42
%2286 = dbg_stmt(94, 21)
%2287 = ref(%1641) token_offset:348:25 to :348:27
%2288 = dbg_stmt(94, 27)
%2289 = dbg_stmt(94, 43)
%2290 = field_call(.auto, %2287, "writeByteNTimes", [
{
%2291 = int(32)
%2292 = break_inline(%2290, %2291)
},
{
%2293 = break_inline(%2290, %1959)
},
]) node_offset:348:25 to :348:71
%2294 = try(%2290, {
%2295 = err_union_code(%2290) node_offset:348:21 to :348:71
%2296 = dbg_stmt(94, 21)
%2297 = ret_node(%2295) node_offset:348:21 to :348:71
}) node_offset:348:21 to :348:71
%2298 = ensure_result_used(%2294) node_offset:348:21 to :348:71
%2299 = dbg_stmt(95, 25)
%2304 = block({
%2300 = block_comptime({
%2301 = break(%2300, %1646)
}) node_offset:349:34 to :349:52
%2302 = as_node(@InternPool.Index.bool_type, %2300) node_offset:349:34 to :349:52
%2303 = condbr(%2302, {
%2305 = dbg_block_begin()
%2306 = block({
%2307 = dbg_block_begin()
%2308 = dbg_stmt(96, 25)
%2309 = dbg_stmt(96, 57)
%2310 = field_val(%1671, "len") node_offset:350:44 to :350:61
%2311 = cmp_gt(%2310, @InternPool.Index.zero) node_offset:350:44 to :350:65
%2312 = dbg_var_val(%2311, "is_colored")
%2313 = dbg_stmt(97, 29)
%2316 = block({
%2314 = as_node(@InternPool.Index.bool_type, %2311) node_offset:351:29 to :351:39
%2315 = condbr(%2314, {
%2317 = dbg_block_begin()
%2318 = block({
%2319 = dbg_block_begin()
%2320 = dbg_stmt(98, 29)
%2321 = ref(%1641) token_offset:352:33 to :352:35
%2322 = dbg_stmt(98, 35)
%2323 = dbg_stmt(98, 44)
%2324 = field_call(.auto, %2321, "writeAll", [
{
%2325 = break_inline(%2324, %1671)
},
]) node_offset:352:33 to :352:59
%2326 = try(%2324, {
%2327 = err_union_code(%2324) node_offset:352:29 to :352:59
%2328 = dbg_stmt(98, 29)
%2329 = ret_node(%2327) node_offset:352:29 to :352:59
}) node_offset:352:29 to :352:59
%2330 = ensure_result_used(%2326) node_offset:352:29 to :352:59
%2331 = dbg_stmt(99, 29)
%2332 = ref(%1641) token_offset:353:33 to :353:35
%2333 = dbg_stmt(99, 35)
%2334 = dbg_stmt(99, 44)
%2335 = field_call(.auto, %2332, "writeAll", [
{
%2336 = break_inline(%2335, %1782)
},
]) node_offset:353:33 to :353:56
%2337 = try(%2335, {
%2338 = err_union_code(%2335) node_offset:353:29 to :353:56
%2339 = dbg_stmt(99, 29)
%2340 = ret_node(%2338) node_offset:353:29 to :353:56
}) node_offset:353:29 to :353:56
%2341 = ensure_result_used(%2337) node_offset:353:29 to :353:56
%2342 = dbg_stmt(101, 29)
%2343 = ref(%1641) token_offset:355:33 to :355:35
%2344 = dbg_stmt(101, 35)
%2345 = dbg_stmt(101, 44)
%2346 = field_call(.auto, %2343, "writeAll", [
{
%2347 = block_comptime({
%2348 = decl_ref("Output") token_offset:355:54 to :355:60
%2349 = field_ptr(%2348, "color_map") node_offset:355:54 to :355:70
%2350 = dbg_stmt(101, 74)
%2351 = field_call(.compile_time, %2349, "get", [
{
%2352 = str("b")
%2353 = break_inline(%2351, %2352)
},
]) node_offset:355:54 to :355:79
%2354 = optional_payload_safe(%2351) node_offset:355:54 to :355:81
%2355 = break(%2347, %2354)
}) node_offset:355:54 to :355:81
%2356 = break_inline(%2346, %2347)
},
]) node_offset:355:33 to :355:82
%2357 = try(%2346, {
%2358 = err_union_code(%2346) node_offset:355:29 to :355:82
%2359 = dbg_stmt(101, 29)
%2360 = ret_node(%2358) node_offset:355:29 to :355:82
}) node_offset:355:29 to :355:82
%2361 = ensure_result_used(%2357) node_offset:355:29 to :355:82
%2362 = dbg_block_end()
%2363 = restore_err_ret_index(%2318, %4294967211)
%2364 = break(%2318, @InternPool.Index.void_value)
}) node_offset:351:41 to :351:42
%2365 = dbg_block_end()
%2366 = break(%2316, @InternPool.Index.void_value)
}, {
%2367 = break(%2316, @InternPool.Index.void_value)
}) node_offset:351:25 to :351:27
}) node_offset:351:25 to :351:27
%2368 = ensure_result_used(%2316) node_offset:351:25 to :351:27
%2369 = dbg_stmt(104, 25)
%2370 = ref(%1641) token_offset:358:29 to :358:31
%2371 = dbg_stmt(104, 31)
%2372 = dbg_stmt(104, 41)
%2373 = field_call(.auto, %2370, "writeByte", [
{
%2374 = int(94)
%2375 = break_inline(%2373, %2374)
},
]) node_offset:358:29 to :358:46
%2376 = try(%2373, {
%2377 = err_union_code(%2373) node_offset:358:25 to :358:46
%2378 = dbg_stmt(104, 25)
%2379 = ret_node(%2377) node_offset:358:25 to :358:46
}) node_offset:358:25 to :358:46
%2380 = ensure_result_used(%2376) node_offset:358:25 to :358:46
%2381 = dbg_stmt(106, 29)
%2384 = block({
%2382 = as_node(@InternPool.Index.bool_type, %2311) node_offset:360:29 to :360:39
%2383 = condbr(%2382, {
%2385 = dbg_block_begin()
%2386 = block({
%2387 = dbg_block_begin()
%2388 = dbg_stmt(107, 29)
%2389 = ref(%1641) token_offset:361:33 to :361:35
%2390 = dbg_stmt(107, 35)
%2391 = dbg_stmt(107, 44)
%2392 = field_call(.auto, %2389, "writeAll", [
{
%2393 = str("\x1b[0m\n")
%2394 = break_inline(%2392, %2393)
},
]) node_offset:361:33 to :361:57
%2395 = try(%2392, {
%2396 = err_union_code(%2392) node_offset:361:29 to :361:57
%2397 = dbg_stmt(107, 29)
%2398 = ret_node(%2396) node_offset:361:29 to :361:57
}) node_offset:361:29 to :361:57
%2399 = ensure_result_used(%2395) node_offset:361:29 to :361:57
%2400 = dbg_block_end()
%2401 = restore_err_ret_index(%2386, %4294967211)
%2402 = break(%2386, @InternPool.Index.void_value)
}) node_offset:360:41 to :360:42
%2403 = dbg_block_end()
%2404 = break(%2384, @InternPool.Index.void_value)
}, {
%2405 = break(%2384, @InternPool.Index.void_value)
}) node_offset:360:25 to :360:27
}) node_offset:360:25 to :360:27
%2406 = ensure_result_used(%2384) node_offset:360:25 to :360:27
%2407 = dbg_block_end()
%2408 = restore_err_ret_index(%2306, %4294967211)
%2409 = break(%2306, @InternPool.Index.void_value)
}) node_offset:349:54 to :349:55
%2410 = dbg_block_end()
%2430 = break(%2304, @InternPool.Index.void_value)
}, {
%2411 = dbg_block_begin()
%2412 = block({
%2413 = dbg_block_begin()
%2414 = dbg_stmt(110, 25)
%2415 = ref(%1641) token_offset:364:29 to :364:31
%2416 = dbg_stmt(110, 31)
%2417 = dbg_stmt(110, 40)
%2418 = field_call(.auto, %2415, "writeAll", [
{
%2419 = str("^\n")
%2420 = break_inline(%2418, %2419)
},
]) node_offset:364:29 to :364:47
%2421 = try(%2418, {
%2422 = err_union_code(%2418) node_offset:364:25 to :364:47
%2423 = dbg_stmt(110, 25)
%2424 = ret_node(%2422) node_offset:364:25 to :364:47
}) node_offset:364:25 to :364:47
%2425 = ensure_result_used(%2421) node_offset:364:25 to :364:47
%2426 = dbg_block_end()
%2427 = restore_err_ret_index(%2412, %4294967211)
%2428 = break(%2412, @InternPool.Index.void_value)
}) node_offset:363:28 to :363:29
%2429 = dbg_block_end()
%2431 = break(%2304, @InternPool.Index.void_value)
}) node_offset:349:21 to :349:23
}) node_offset:349:21 to :349:23
%2432 = ensure_result_used(%2304) node_offset:349:21 to :349:23
%2433 = dbg_block_end()
%2434 = restore_err_ret_index(%1987, %4294967211)
%2435 = break(%1987, @InternPool.Index.void_value)
}) node_offset:299:35 to :299:36
%2436 = dbg_block_end()
%2437 = break(%1985, @InternPool.Index.void_value)
}, {
%2438 = break(%1985, @InternPool.Index.void_value)
}) node_offset:299:17 to :299:19
}) node_offset:299:17 to :299:19
%2439 = ensure_result_used(%1985) node_offset:299:17 to :299:19
%2440 = dbg_block_end()
%2441 = restore_err_ret_index(%1934, %4294967211)
%2442 = break(%1934, @InternPool.Index.void_value)
}) node_offset:293:50 to :293:51
%2443 = dbg_block_end()
%2444 = break(%1930, @InternPool.Index.void_value)
}, {
%2445 = break(%1930, @InternPool.Index.void_value)
}) node_offset:293:13 to :293:15
}) node_offset:293:13 to :293:15
%2446 = ensure_result_used(%1930) node_offset:293:13 to :293:15
%2447 = dbg_stmt(115, 17)
%2455 = block({
%2448 = dbg_stmt(115, 25)
%2449 = field_val(%1921, "file") node_offset:369:17 to :369:30
%2450 = dbg_stmt(115, 30)
%2451 = field_val(%2449, "len") node_offset:369:17 to :369:34
%2452 = cmp_gt(%2451, @InternPool.Index.zero) node_offset:369:17 to :369:38
%2453 = as_node(@InternPool.Index.bool_type, %2452) node_offset:369:17 to :369:38
%2454 = condbr(%2453, {
%2456 = dbg_block_begin()
%2457 = block({
%2458 = dbg_block_begin()
%2459 = dbg_stmt(116, 21)
%2464 = block({
%2460 = block_comptime({
%2461 = break(%2460, %1646)
}) node_offset:370:30 to :370:48
%2462 = as_node(@InternPool.Index.bool_type, %2460) node_offset:370:30 to :370:48
%2463 = condbr(%2462, {
%2465 = dbg_block_begin()
%2466 = block({
%2467 = dbg_block_begin()
%2468 = dbg_stmt(117, 25)
%2479 = block({
%2469 = as_node(@InternPool.Index.bool_type, %1648) node_offset:371:26 to :371:33
%2470 = bool_not(%2469) node_offset:371:25 to :371:33
%2471 = as_node(@InternPool.Index.bool_type, %2470) node_offset:371:25 to :371:33
%2472 = bool_br_and(%2471, {
%2473 = enum_literal("err") token_offset:371:47 to :371:50
%2474 = cmp_eq(%1644, %2473) node_offset:371:38 to :371:50
%2475 = as_node(@InternPool.Index.bool_type, %2474) node_offset:371:38 to :371:50
%2476 = break_inline(%2472, %2475)
}
%2477 = as_node(@InternPool.Index.bool_type, %2472) node_offset:371:25 to :371:50
%2478 = condbr(%2477, {
%2480 = dbg_block_begin()
%2481 = block({
%2482 = dbg_block_begin()
%2483 = dbg_stmt(118, 25)
%2484 = ref(%1641) token_offset:372:29 to :372:31
%2485 = dbg_stmt(118, 31)
%2486 = dbg_stmt(118, 40)
%2487 = field_call(.auto, %2484, "writeAll", [
{
%2488 = block_comptime({
%2489 = decl_ref("Output") token_offset:372:50 to :372:56
%2490 = field_ptr(%2489, "color_map") node_offset:372:50 to :372:66
%2491 = dbg_stmt(118, 70)
%2492 = field_call(.compile_time, %2490, "get", [
{
%2493 = str("b")
%2494 = break_inline(%2492, %2493)
},
]) node_offset:372:50 to :372:75
%2495 = optional_payload_safe(%2492) node_offset:372:50 to :372:77
%2496 = break(%2488, %2495)
}) node_offset:372:50 to :372:77
%2497 = break_inline(%2487, %2488)
},
]) node_offset:372:29 to :372:78
%2498 = try(%2487, {
%2499 = err_union_code(%2487) node_offset:372:25 to :372:78
%2500 = dbg_stmt(118, 25)
%2501 = ret_node(%2499) node_offset:372:25 to :372:78
}) node_offset:372:25 to :372:78
%2502 = ensure_result_used(%2498) node_offset:372:25 to :372:78
%2503 = dbg_block_end()
%2504 = restore_err_ret_index(%2481, %4294967211)
%2505 = break(%2481, @InternPool.Index.void_value)
}) node_offset:371:52 to :371:53
%2506 = dbg_block_end()
%2512 = break(%2479, @InternPool.Index.void_value)
}, {
%2507 = dbg_block_begin()
%2508 = block({
%2509 = restore_err_ret_index(%2508, %4294967211)
%2510 = break(%2508, @InternPool.Index.void_value)
}) node_offset:373:28 to :373:30
%2511 = dbg_block_end()
%2513 = break(%2479, @InternPool.Index.void_value)
}) node_offset:371:21 to :371:23
}) node_offset:371:21 to :371:23
%2514 = ensure_result_used(%2479) node_offset:371:21 to :371:23
%2515 = dbg_block_end()
%2516 = restore_err_ret_index(%2466, %4294967211)
%2517 = break(%2466, @InternPool.Index.void_value)
}) node_offset:370:50 to :370:51
%2518 = dbg_block_end()
%2519 = break(%2464, @InternPool.Index.void_value)
}, {
%2520 = break(%2464, @InternPool.Index.void_value)
}) node_offset:370:17 to :370:19
}) node_offset:370:17 to :370:19
%2521 = ensure_result_used(%2464) node_offset:370:17 to :370:19
%2522 = dbg_stmt(122, 17)
%2523 = decl_ref("std") token_offset:376:21 to :376:24
%2524 = dbg_stmt(122, 24)
%2525 = field_ptr(%2523, "fmt") node_offset:376:21 to :376:28
%2526 = dbg_stmt(122, 28)
%2527 = dbg_stmt(122, 35)
%2528 = field_call(.auto, %2525, "format", [
{
%2529 = break_inline(%2528, %1641)
},
{
%2530 = block_comptime({
%2531 = decl_ref("Output") token_offset:376:49 to :376:55
%2532 = dbg_stmt(122, 65)
%2533 = field_call(.compile_time, %2531, "prettyFmt", [
{
%2534 = str("{s}<r>")
%2535 = break_inline(%2533, %2534)
},
{
%2536 = break_inline(%2533, %1646)
},
]) node_offset:376:49 to :376:95
%2537 = break(%2530, %2533)
}) node_offset:376:49 to :376:95
%2538 = break_inline(%2528, %2530)
},
{
%2539 = dbg_stmt(123, 29)
%2540 = field_val(%1921, "file") node_offset:377:21 to :377:34
%2541 = array_init_anon({%2540}) node_offset:376:97 to :376:99
%2542 = break_inline(%2528, %2541)
},
]) node_offset:376:21 to :376:36
%2543 = try(%2528, {
%2544 = err_union_code(%2528) node_offset:376:17 to :376:20
%2545 = dbg_stmt(122, 17)
%2546 = ret_node(%2544) node_offset:376:17 to :376:20
}) node_offset:376:17 to :376:20
%2547 = ensure_result_used(%2543) node_offset:376:17 to :376:20
%2548 = dbg_stmt(126, 21)
%2563 = block({
%2549 = dbg_stmt(126, 29)
%2550 = field_val(%1921, "line") node_offset:380:21 to :380:34
%2551 = negate(@InternPool.Index.one) node_offset:380:37 to :380:39
%2552 = cmp_gt(%2550, %2551) node_offset:380:21 to :380:39
%2553 = as_node(@InternPool.Index.bool_type, %2552) node_offset:380:21 to :380:39
%2554 = bool_br_and(%2553, {
%2555 = dbg_stmt(126, 52)
%2556 = field_val(%1921, "column") node_offset:380:44 to :380:59
%2557 = negate(@InternPool.Index.one) node_offset:380:62 to :380:64
%2558 = cmp_gt(%2556, %2557) node_offset:380:44 to :380:64
%2559 = as_node(@InternPool.Index.bool_type, %2558) node_offset:380:44 to :380:64
%2560 = break_inline(%2554, %2559)
}
%2561 = as_node(@InternPool.Index.bool_type, %2554) node_offset:380:21 to :380:64
%2562 = condbr(%2561, {
%2564 = dbg_block_begin()
%2565 = block({
%2566 = dbg_block_begin()
%2567 = dbg_stmt(127, 21)
%2568 = decl_ref("std") token_offset:381:25 to :381:28
%2569 = dbg_stmt(127, 28)
%2570 = field_ptr(%2568, "fmt") node_offset:381:25 to :381:32
%2571 = dbg_stmt(127, 32)
%2572 = dbg_stmt(127, 39)
%2573 = field_call(.auto, %2570, "format", [
{
%2574 = break_inline(%2573, %1641)
},
{
%2575 = block_comptime({
%2576 = decl_ref("Output") token_offset:381:53 to :381:59
%2577 = dbg_stmt(127, 69)
%2578 = field_call(.compile_time, %2576, "prettyFmt", [
{
%2579 = str("<d>:<r><yellow>{d}<r><d>:<r><yellow>{d}<r> <d>{d}<r>")
%2580 = break_inline(%2578, %2579)
},
{
%2581 = break_inline(%2578, %1646)
},
]) node_offset:381:53 to :381:145
%2582 = break(%2575, %2578)
}) node_offset:381:53 to :381:145
%2583 = break_inline(%2573, %2575)
},
{
%2584 = dbg_stmt(128, 33)
%2585 = field_val(%1921, "line") node_offset:382:25 to :382:38
%2586 = dbg_stmt(129, 33)
%2587 = field_val(%1921, "column") node_offset:383:25 to :383:40
%2588 = dbg_stmt(130, 33)
%2589 = field_val(%1921, "offset") node_offset:384:25 to :384:40
%2590 = array_init_anon({%2585, %2587, %2589}) node_offset:381:147 to :381:149
%2591 = break_inline(%2573, %2590)
},
]) node_offset:381:25 to :381:40
%2592 = try(%2573, {
%2593 = err_union_code(%2573) node_offset:381:21 to :381:24
%2594 = dbg_stmt(127, 21)
%2595 = ret_node(%2593) node_offset:381:21 to :381:24
}) node_offset:381:21 to :381:24
%2596 = ensure_result_used(%2592) node_offset:381:21 to :381:24
%2597 = dbg_block_end()
%2598 = restore_err_ret_index(%2565, %4294967211)
%2599 = break(%2565, @InternPool.Index.void_value)
}) node_offset:380:66 to :380:67
%2600 = dbg_block_end()
%2648 = break(%2563, @InternPool.Index.void_value)
}, {
%2601 = dbg_block_begin()
%2609 = block({
%2602 = dbg_stmt(132, 28)
%2603 = dbg_stmt(132, 36)
%2604 = field_val(%1921, "line") node_offset:386:28 to :386:41
%2605 = negate(@InternPool.Index.one) node_offset:386:44 to :386:46
%2606 = cmp_gt(%2604, %2605) node_offset:386:28 to :386:46
%2607 = as_node(@InternPool.Index.bool_type, %2606) node_offset:386:28 to :386:46
%2608 = condbr(%2607, {
%2610 = dbg_block_begin()
%2611 = block({
%2612 = dbg_block_begin()
%2613 = dbg_stmt(133, 21)
%2614 = decl_ref("std") token_offset:387:25 to :387:28
%2615 = dbg_stmt(133, 28)
%2616 = field_ptr(%2614, "fmt") node_offset:387:25 to :387:32
%2617 = dbg_stmt(133, 32)
%2618 = dbg_stmt(133, 39)
%2619 = field_call(.auto, %2616, "format", [
{
%2620 = break_inline(%2619, %1641)
},
{
%2621 = block_comptime({
%2622 = decl_ref("Output") token_offset:387:53 to :387:59
%2623 = dbg_stmt(133, 69)
%2624 = field_call(.compile_time, %2622, "prettyFmt", [
{
%2625 = str("<d>:<r><yellow>{d}<r> <d>{d}<r>")
%2626 = break_inline(%2624, %2625)
},
{
%2627 = break_inline(%2624, %1646)
},
]) node_offset:387:53 to :387:124
%2628 = break(%2621, %2624)
}) node_offset:387:53 to :387:124
%2629 = break_inline(%2619, %2621)
},
{
%2630 = dbg_stmt(134, 33)
%2631 = field_val(%1921, "line") node_offset:388:25 to :388:38
%2632 = dbg_stmt(135, 33)
%2633 = field_val(%1921, "offset") node_offset:389:25 to :389:40
%2634 = array_init_anon({%2631, %2633}) node_offset:387:126 to :387:128
%2635 = break_inline(%2619, %2634)
},
]) node_offset:387:25 to :387:40
%2636 = try(%2619, {
%2637 = err_union_code(%2619) node_offset:387:21 to :387:24
%2638 = dbg_stmt(133, 21)
%2639 = ret_node(%2637) node_offset:387:21 to :387:24
}) node_offset:387:21 to :387:24
%2640 = ensure_result_used(%2636) node_offset:387:21 to :387:24
%2641 = dbg_block_end()
%2642 = restore_err_ret_index(%2611, %4294967211)
%2643 = break(%2611, @InternPool.Index.void_value)
}) node_offset:386:48 to :386:49
%2644 = dbg_block_end()
%2645 = break(%2609, @InternPool.Index.void_value)
}, {
%2646 = break(%2609, @InternPool.Index.void_value)
}) node_offset:386:24 to :386:26
}) node_offset:386:24 to :386:26
%2647 = dbg_block_end()
%2649 = break(%2563, %2609)
}) node_offset:380:17 to :380:19
}) node_offset:380:17 to :380:19
%2650 = ensure_result_used(%2563) node_offset:380:17 to :380:19
%2651 = dbg_block_end()
%2652 = restore_err_ret_index(%2457, %4294967211)
%2653 = break(%2457, @InternPool.Index.void_value)
}) node_offset:369:40 to :369:41
%2654 = dbg_block_end()
%2655 = break(%2455, @InternPool.Index.void_value)
}, {
%2656 = break(%2455, @InternPool.Index.void_value)
}) node_offset:369:13 to :369:15
}) node_offset:369:13 to :369:15
%2657 = ensure_result_used(%2455) node_offset:369:13 to :369:15
%2658 = dbg_block_end()
%2659 = restore_err_ret_index(%1923, %4294967211)
%2660 = break(%1923, @InternPool.Index.void_value)
}) node_offset:292:39 to :292:40
%2661 = dbg_block_end()
%2662 = break(%1919, @InternPool.Index.void_value)
}, {
%2663 = break(%1919, @InternPool.Index.void_value)
}) node_offset:292:9 to :292:11
}) node_offset:292:9 to :292:11
%2664 = ensure_result_used(%1919) node_offset:292:9 to :292:11
%2665 = dbg_block_end()
%2666 = restore_err_ret_index(%1649, %4294967211)
%2667 = break(%1649, @InternPool.Index.void_value)
For full context, use the command
zig ast-check -t src/logger.zig
in src/logger.zig: src/logger.zig:Data.writeFormat__anon_48000
> %1649 = block({%1650..%2667}) node_offset:261:13 to :261:14
in src/logger.zig: src/logger.zig:Msg.writeFormat__anon_47999
> %3746 = try(%3739, {%3747..%3749}) node_offset:545:9 to :545:74
in src/logger.zig: src/logger.zig:Msg.writeFormat__anon_47999
> %3731 = block({%3732..%3810}) node_offset:544:13 to :544:14
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8442 = try(%8439, {%8443..%8445}) node_offset:1194:25 to :1194:68
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8434 = block({%8435..%8451}) node_offset:1193:59 to :1193:60
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8431 = condbr(%8430, {%8433..%8453}, {%8454}) node_offset:1193:21 to :1193:23
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8432 = block({%8422..%8431}) node_offset:1193:21 to :1193:23
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8418 = block({%8419..%8458}) node_offset:1192:39 to :1192:40
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8415 = condbr(%8414, {%8417..%8460}, {%8461}) node_offset:1192:17 to :1192:19
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8416 = block({%8410..%8415}) node_offset:1192:17 to :1192:19
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8407 = block({%8408..%8465}) node_offset:1191:41 to :1191:42
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8399 = condbr(%8398, {%8404..%8467}, {%8468}) node_offset:1191:13 to :1191:16
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8400 = block({%8398, %8399}) node_offset:1191:13 to :1191:16
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8396 = loop({%8397..%8403}) node_offset:1191:13 to :1191:16
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8386 = block({%8387..%8554}) node_offset:1184:52 to :1184:53
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8383 = condbr(%8382, {%8385..%8627}, {%8556..%8628}) node_offset:1184:9 to :1184:11
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8384 = block({%8372..%8383}) node_offset:1184:9 to :1184:11
in src/logger.zig: src/logger.zig:Log.printForLogLevelWithEnableAnsiColors__anon_47998
> %8364 = block({%8365..%8654}) node_offset:1181:115 to :1181:116
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %623 = is_non_err(%616) node_offset:105:17 to :105:97
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %625 = block({%612..%624}) node_offset:105:17 to :105:97
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %609 = block({%610..%637}) node_offset:104:51 to :104:52
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %606 = condbr(%605, {%608..%670}, {%639..%671}) node_offset:104:13 to :104:15
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %607 = block({%602..%606}) node_offset:104:13 to :104:15
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %599 = block({%600..%689}) node_offset:103:40 to :103:41
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %595 = condbr(%594, {%597, %691}, {%598..%692}) node_offset:103:9 to :103:39
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %596 = block({%590..%595}) node_offset:103:9 to :103:39
in src/bun_js.zig: src/bun_js.zig:Run.bootStandalone
> %163 = block({%164..%860}) node_offset:46:110 to :46:111
in src/cli.zig: src/cli.zig:Command.start
> %8240 = try(%8229, {%8241..%8243}) node_offset:1173:13 to :1173:16
in src/cli.zig: src/cli.zig:Command.start
> %8079 = block({%8080..%8250}) node_offset:1156:90 to :1156:91
in src/cli.zig: src/cli.zig:Command.start
> %8074 = condbr(%8073, {%8076..%8252}, {%8253}) node_offset:1156:9 to :1156:11
in src/cli.zig: src/cli.zig:Command.start
> %8075 = block({%8059..%8074}) node_offset:1156:9 to :1156:11
in src/cli.zig: src/cli.zig:Command.start
> %7943 = block({%7944..%11193}) node_offset:1117:72 to :1117:73
in src/cli.zig: src/cli.zig:Cli.start__anon_4598
> %248 = is_non_err(%244) node_offset:58:9 to :58:44
in src/cli.zig: src/cli.zig:Cli.start__anon_4598
> %250 = block({%241..%249}) node_offset:58:9 to :58:44
in src/cli.zig: src/cli.zig:Cli.start__anon_4598
> %197 = block({%198..%376}) node_offset:49:110 to :49:111
/home/andy/Downloads/zig/lib/std/debug.zig:344:14: 0x598c89c in assert (zig)
if (!ok) unreachable; // assertion failure
^
/home/andy/Downloads/zig/src/value.zig:410:15: 0x5a933ea in toIntern (zig)
assert(val.ip_index != .none);
^
/home/andy/Downloads/zig/src/value.zig:486:63: 0x5ca2e89 in getFunction (zig)
return switch (mod.intern_pool.indexToKey(val.toIntern())) {
^
/home/andy/Downloads/zig/src/codegen/llvm.zig:4260:33: 0x5f0c7de in lowerDeclRefValue (zig)
if (decl.val.getFunction(mod)) |func| {
^
/home/andy/Downloads/zig/src/codegen/llvm.zig:3690:68: 0x5cbc27a in lowerValue (zig)
.mut_decl => |mut_decl| try o.lowerDeclRefValue(ptr_ty, mut_decl.decl),
^
/home/andy/Downloads/zig/src/codegen/llvm.zig:4650:42: 0x665f568 in resolveValue (zig)
const llvm_val = try o.lowerValue(tv.val.toIntern());
^
/home/andy/Downloads/zig/src/codegen/llvm.zig:4639:47: 0x665f220 in resolveInst (zig)
const llvm_val = try self.resolveValue(.{
^
/home/andy/Downloads/zig/src/codegen/llvm.zig:5064:54: 0x66aa502 in airCall (zig)
const llvm_arg = try self.resolveInst(arg);
^
/home/andy/Downloads/zig/src/codegen/llvm.zig:4844:55: 0x612227b in genBody (zig)
.call => try self.airCall(inst, .Auto),
^
/home/andy/Downloads/zig/src/codegen/llvm.zig:1543:19: 0x611be15 in updateFunc (zig)
fg.genBody(air.getMainBody()) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/link/Elf.zig:2583:74: 0x6126699 in updateFunc (zig)
if (self.llvm_object) |llvm_object| return llvm_object.updateFunc(mod, func_index, air, liveness);
^
/home/andy/Downloads/zig/src/link.zig:577:77: 0x5e8fe63 in updateFunc (zig)
.elf => return @fieldParentPtr(Elf, "base", base).updateFunc(module, func_index, air, liveness),
^
/home/andy/Downloads/zig/src/Module.zig:3988:37: 0x5c74472 in ensureFuncBodyAnalyzed (zig)
comp.bin_file.updateFunc(mod, func_index, air, liveness) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x680024c in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34216:40: 0x627358b in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30751:73: 0x623ff4d in analyzeIsNonErrComptimeOnly (zig)
const resolved_ty = try sema.resolveInferredErrorSet(block, src, set_ty);
^
/home/andy/Downloads/zig/src/Sema.zig:18004:60: 0x623ee29 in zirTry (zig)
const is_non_err = try sema.analyzeIsNonErrComptimeOnly(parent_block, operand_src, err_union);
^
/home/andy/Downloads/zig/src/Sema.zig:1694:67: 0x5ebc378 in analyzeBodyInner (zig)
if (!block.is_comptime) break :blk try sema.zirTry(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105988 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8dd94 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73a66 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x680024c in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34216:40: 0x627358b in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30751:73: 0x623ff4d in analyzeIsNonErrComptimeOnly (zig)
const resolved_ty = try sema.resolveInferredErrorSet(block, src, set_ty);
^
/home/andy/Downloads/zig/src/Sema.zig:18004:60: 0x623ee29 in zirTry (zig)
const is_non_err = try sema.analyzeIsNonErrComptimeOnly(parent_block, operand_src, err_union);
^
/home/andy/Downloads/zig/src/Sema.zig:1694:67: 0x5ebc378 in analyzeBodyInner (zig)
if (!block.is_comptime) break :blk try sema.zirTry(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105988 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8dd94 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73a66 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x680024c in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34216:40: 0x627358b in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30751:73: 0x623ff4d in analyzeIsNonErrComptimeOnly (zig)
const resolved_ty = try sema.resolveInferredErrorSet(block, src, set_ty);
^
/home/andy/Downloads/zig/src/Sema.zig:18004:60: 0x623ee29 in zirTry (zig)
const is_non_err = try sema.analyzeIsNonErrComptimeOnly(parent_block, operand_src, err_union);
^
/home/andy/Downloads/zig/src/Sema.zig:1694:67: 0x5ebc378 in analyzeBodyInner (zig)
if (!block.is_comptime) break :blk try sema.zirTry(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da5ce in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17952:37: 0x623dc21 in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, then_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb0ba in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da5ce in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17952:37: 0x623dc21 in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, then_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb0ba in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da5ce in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17952:37: 0x623dc21 in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, then_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb0ba in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105988 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:5506:25: 0x623b3fe in zirLoop (zig)
try sema.analyzeBody(&loop_block, body);
^
/home/andy/Downloads/zig/src/Sema.zig:1528:68: 0x5eba07c in analyzeBodyInner (zig)
if (!block.is_comptime) break :blk try sema.zirLoop(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da5ce in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17952:37: 0x623dc21 in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, then_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb0ba in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105988 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8dd94 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73a66 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x680024c in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34216:40: 0x627358b in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30751:73: 0x623ff4d in analyzeIsNonErrComptimeOnly (zig)
const resolved_ty = try sema.resolveInferredErrorSet(block, src, set_ty);
^
/home/andy/Downloads/zig/src/Sema.zig:30781:56: 0x674a37c in analyzeIsNonErr (zig)
const result = try sema.analyzeIsNonErrComptimeOnly(block, src, operand);
^
/home/andy/Downloads/zig/src/Sema.zig:17888:32: 0x617afa2 in zirIsNonErr (zig)
return sema.analyzeIsNonErr(block, src, operand);
^
/home/andy/Downloads/zig/src/Sema.zig:1046:66: 0x5eaea10 in analyzeBodyInner (zig)
.is_non_err => try sema.zirIsNonErr(block, inst),
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da5ce in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17952:37: 0x623dc21 in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, then_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb0ba in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da5ce in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17971:41: 0x623e5fa in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, else_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb0ba in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105988 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8dd94 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73a66 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x680024c in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34216:40: 0x627358b in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30751:73: 0x623ff4d in analyzeIsNonErrComptimeOnly (zig)
const resolved_ty = try sema.resolveInferredErrorSet(block, src, set_ty);
^
/home/andy/Downloads/zig/src/Sema.zig:18004:60: 0x623ee29 in zirTry (zig)
const is_non_err = try sema.analyzeIsNonErrComptimeOnly(parent_block, operand_src, err_union);
^
/home/andy/Downloads/zig/src/Sema.zig:1694:67: 0x5ebc378 in analyzeBodyInner (zig)
if (!block.is_comptime) break :blk try sema.zirTry(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da5ce in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17952:37: 0x623dc21 in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, then_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb0ba in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105988 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8dd94 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73a66 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x680024c in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34216:40: 0x627358b in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30751:73: 0x623ff4d in analyzeIsNonErrComptimeOnly (zig)
const resolved_ty = try sema.resolveInferredErrorSet(block, src, set_ty);
^
/home/andy/Downloads/zig/src/Sema.zig:30781:56: 0x674a37c in analyzeIsNonErr (zig)
const result = try sema.analyzeIsNonErrComptimeOnly(block, src, operand);
^
/home/andy/Downloads/zig/src/Sema.zig:17888:32: 0x617afa2 in zirIsNonErr (zig)
return sema.analyzeIsNonErr(block, src, operand);
^
/home/andy/Downloads/zig/src/Sema.zig:1046:66: 0x5eaea10 in analyzeBodyInner (zig)
.is_non_err => try sema.zirIsNonErr(block, inst),
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc019 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243d73 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe210 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105988 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8dd94 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73a66 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Compilation.zig:3183:42: 0x5c71b20 in processOneJob (zig)
module.ensureFuncBodyAnalyzed(func) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Compilation.zig:3120:30: 0x5ad3e83 in performAllTheWork (zig)
try processOneJob(comp, work_item, main_progress_node);
^
/home/andy/Downloads/zig/src/Compilation.zig:2067:31: 0x5acf7b1 in update (zig)
try comp.performAllTheWork(main_progress_node);
^
/home/andy/Downloads/zig/src/main.zig:3451:36: 0x5afd9d6 in serve (zig)
try comp.update(main_progress_node);
^
/home/andy/Downloads/zig/src/main.zig:3265:22: 0x5b2d606 in buildOutputType (zig)
try serve(
^
/home/andy/Downloads/zig/src/main.zig:273:31: 0x598ea93 in mainArgs (zig)
return buildOutputType(gpa, arena, args, .{ .build = .Obj });
^
/home/andy/Downloads/zig/src/main.zig:213:20: 0x598bd05 in main (zig)
return mainArgs(gpa, arena, args);
^
/home/andy/Downloads/zig/lib/std/start.zig:608:37: 0x598b75e in main (zig)
const result = root.main() catch |err| {
^
???:?:?: 0x7fcc09df124d in ??? (libc.so.6)
Unwind information for `libc.so.6:0x7fcc09df124d` was not available (error.MissingDebugInfo), trace may be incomplete
???:?:?: 0x7fffbfb01227 in ??? (???)
zig build-obj bun-debug Debug native-native-gnu.2.27: error: the following command terminated unexpectedly:
/home/andy/Downloads/zig/build-release/stage4/bin/zig build-obj /home/andy/Downloads/bun/root.zig -lc -femit-bin=/home/andy/Downloads/bun/packages/debug-bun-linux-x64/bun-debug.o -fno-strip --eh-frame-hdr --emit-relocs -ffunction-sections --cache-dir /home/andy/Downloads/bun/zig-cache --global-cache-dir /home/andy/.cache/zig --name bun-debug -fno-compiler-rt -fno-stack-check -fno-omit-frame-pointer -target native-native-gnu.2.27 -mcpu haswell --mod async_io::/home/andy/Downloads/bun/src/io/io_linux.zig --mod build_options::/home/andy/Downloads/bun/zig-cache/c/2325b468e615f95258b17bc549420780/options.zig --deps async_io,build_options -I /home/andy/Downloads/bun/src/deps -I /home/andy/Downloads/bun/src/deps --main-pkg-path /home/andy/Downloads/bun --listen=-
Build Summary: 1/3 steps succeeded; 1 failed (disable with --summary none)
obj transitive failure
└─ zig build-obj bun-debug Debug native-native-gnu.2.27 failure
error: the following build command failed with exit code 1:
/home/andy/Downloads/bun/zig-cache/o/3c8a36eddd79ba2bdcfe2d0a4d82ecd3/build /home/andy/Downloads/zig/build-release/stage4/bin/zig /home/andy/Downloads/bun /home/andy/Downloads/bun/zig-cache /home/andy/.cache/zig obj
Fixed with
--- a/src/value.zig
+++ b/src/value.zig
@@ -483,6 +483,7 @@ pub const Value = struct {
}
pub fn getFunction(val: Value, mod: *Module) ?InternPool.Key.Func {
+ if (val.ip_index != .none) return null;
return switch (mod.intern_pool.indexToKey(val.toIntern())) {
.func => |x| x,
else => null,
which was a regression introduced in db33ee45b7261c9ec62a1087cfc9377bc4e7aa8f.
With this fixed, there is another issue:
Semantic Analysis [7543] thread 870788 panic: reached unreachable code
Analyzing src/install/install.zig: src/install/install.zig:PackageManager.install
%42723 = dbg_block_begin()
%42724 = dbg_stmt(4, 17)
%42725 = ret_ptr()
%42726 = decl_val("add")
%42727 = dbg_stmt(4, 27)
%42728 = call(.auto, %42726, [
{
%42729 = break_inline(%42728, %42694)
},
])
%42730 = store_node(%42725, %42728)
%42731 = dbg_stmt(4, 17)
%42732 = load(%42725)
> %42733 = restore_err_ret_index(%4294967211, %42732)
%42734 = ret_load(%42725)
%42735 = dbg_block_end()
%42736 = restore_err_ret_index(%42722, %4294967211)
%42737 = break(%42722, @InternPool.Index.void_value)
For full context, use the command
zig ast-check -t src/install/install.zig
in src/install/install.zig: src/install/install.zig:PackageManager.install
> %42722 = block({%42723..%42737})
in src/install/install.zig: src/install/install.zig:PackageManager.install
> %42719 = condbr(%42718, {%42721..%42739}, {%42740})
in src/install/install.zig: src/install/install.zig:PackageManager.install
> %42720 = block({%42716..%42719})
in src/install/install.zig: src/install/install.zig:PackageManager.install
> %42713 = block({%42714..%42750})
in src/install/install.zig: src/install/install.zig:PackageManager.install
> %42707 = condbr(%42706, {%42709, %42753}, {%42711..%42754})
in src/install/install.zig: src/install/install.zig:PackageManager.install
> %42708 = block({%42699..%42707})
in src/install/install.zig: src/install/install.zig:PackageManager.install
> %42695 = block({%42696..%42900})
in src/cli/install_command.zig: src/cli/install_command.zig:InstallCommand.exec
> %22 = field_call(.auto, %19, "install", [
{%23},
])
in src/cli/install_command.zig: src/cli/install_command.zig:InstallCommand.exec
> %16 = block({%17..%31})
in src/cli.zig: src/cli.zig:Command.start
> %8567 = try(%8565, {%8568..%8570})
in src/cli.zig: src/cli.zig:Command.start
> %8516 = block({%8517..%8577})
in src/cli.zig: src/cli.zig:Command.start
> %8341 = switch_block(%8259,
else => {%11186..%11189},
%8342 => {%8343..%8404},
%8405 => {%8406..%8467},
%8468 => {%8469..%8513},
%8514 => {%8515..%8579},
%8580 => {%8581..%8645},
%8646 => {%8647..%8711},
%8712 => {%8713..%8777},
%8778 => {%8779..%8843},
%8844 => {%8845..%8909},
%8910 => {%8911..%8975},
%8976 => {%8977..%9041},
%9042 => {%9043..%9962},
%9963 => {%9964..%10194},
%10195 => {%10196..%10298},
%10299 => {%10300..%10364},
%10365 => {%10366..%11185})
in src/cli.zig: src/cli.zig:Command.start
> %7943 = block({%7944..%11193})
in src/cli.zig: src/cli.zig:Cli.start__anon_4598
> %248 = is_non_err(%244)
in src/cli.zig: src/cli.zig:Cli.start__anon_4598
> %250 = block({%241..%249})
in src/cli.zig: src/cli.zig:Cli.start__anon_4598
> %197 = block({%198..%376})
/home/andy/Downloads/zig/src/Sema.zig:30758:21: 0x6240520 in analyzeIsNonErrComptimeOnly (zig)
else => unreachable,
^
/home/andy/Downloads/zig/src/Sema.zig:30781:56: 0x674a42c in analyzeIsNonErr (zig)
const result = try sema.analyzeIsNonErrComptimeOnly(block, src, operand);
^
/home/andy/Downloads/zig/src/Sema.zig:6423:53: 0x6736257 in popErrorReturnTrace (zig)
is_non_error_inst = try sema.analyzeIsNonErr(block, src, operand);
^
/home/andy/Downloads/zig/src/Sema.zig:18386:36: 0x623a743 in zirRestoreErrRetIndex (zig)
return sema.popErrorReturnTrace(start_block, src, operand, saved_index);
^
/home/andy/Downloads/zig/src/Sema.zig:1468:47: 0x5eb9a48 in analyzeBodyInner (zig)
try sema.zirRestoreErrRetIndex(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da67e in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17952:37: 0x623dcd1 in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, then_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb16a in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da67e in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:17971:41: 0x623e6aa in zirCondbr (zig)
try sema.analyzeBodyRuntimeBreak(&sub_block, else_body);
^
/home/andy/Downloads/zig/src/Sema.zig:1648:61: 0x5ebb16a in analyzeBodyInner (zig)
if (!block.is_comptime) break sema.zirCondbr(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105a38 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:7123:33: 0x67318e0 in analyzeCall (zig)
sema.analyzeBody(&child_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:6640:32: 0x616aa5c in zirCall__anon_142025 (zig)
return sema.analyzeCall(block, func, func_ty, callee_src, call_src, modifier, ensure_result_used, resolved_args, bound_arg_src, call_dbg_node);
^
/home/andy/Downloads/zig/src/Sema.zig:1003:62: 0x5eac8a1 in analyzeBodyInner (zig)
.field_call => try sema.zirCall(block, inst, .field),
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105a38 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8de44 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73aa6 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x68002fc in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34216:40: 0x627363b in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30751:73: 0x623fffd in analyzeIsNonErrComptimeOnly (zig)
const resolved_ty = try sema.resolveInferredErrorSet(block, src, set_ty);
^
/home/andy/Downloads/zig/src/Sema.zig:18004:60: 0x623eed9 in zirTry (zig)
const is_non_err = try sema.analyzeIsNonErrComptimeOnly(parent_block, operand_src, err_union);
^
/home/andy/Downloads/zig/src/Sema.zig:1694:67: 0x5ebc428 in analyzeBodyInner (zig)
if (!block.is_comptime) break :blk try sema.zirTry(block, inst);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67da67e in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:10185:52: 0x676c311 in analyzeProngRuntime (zig)
return sema.analyzeBodyRuntimeBreak(case_block, prong_body);
^
/home/andy/Downloads/zig/src/Sema.zig:11533:40: 0x619029f in zirSwitchBlock (zig)
try spa.analyzeProngRuntime(
^
/home/andy/Downloads/zig/src/Sema.zig:1069:69: 0x5eafcd1 in analyzeBodyInner (zig)
.switch_block => try sema.zirSwitchBlock(block, inst, false),
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105a38 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8de44 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73aa6 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x68002fc in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34216:40: 0x627363b in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30751:73: 0x623fffd in analyzeIsNonErrComptimeOnly (zig)
const resolved_ty = try sema.resolveInferredErrorSet(block, src, set_ty);
^
/home/andy/Downloads/zig/src/Sema.zig:30781:56: 0x674a42c in analyzeIsNonErr (zig)
const result = try sema.analyzeIsNonErrComptimeOnly(block, src, operand);
^
/home/andy/Downloads/zig/src/Sema.zig:17888:32: 0x617b052 in zirIsNonErr (zig)
return sema.analyzeIsNonErr(block, src, operand);
^
/home/andy/Downloads/zig/src/Sema.zig:1046:66: 0x5eaeac0 in analyzeBodyInner (zig)
.is_non_err => try sema.zirIsNonErr(block, inst),
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc0c9 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x6243e23 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2c0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105a38 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8de44 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73aa6 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Compilation.zig:3183:42: 0x5c71b60 in processOneJob (zig)
module.ensureFuncBodyAnalyzed(func) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Compilation.zig:3120:30: 0x5ad3ec3 in performAllTheWork (zig)
try processOneJob(comp, work_item, main_progress_node);
^
/home/andy/Downloads/zig/src/Compilation.zig:2067:31: 0x5acf7f1 in update (zig)
try comp.performAllTheWork(main_progress_node);
^
/home/andy/Downloads/zig/src/main.zig:3887:24: 0x5aff3be in updateModule (zig)
try comp.update(main_progress_node);
^
/home/andy/Downloads/zig/src/main.zig:3308:17: 0x5b2eea8 in buildOutputType (zig)
updateModule(comp) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/main.zig:273:31: 0x598ead3 in mainArgs (zig)
return buildOutputType(gpa, arena, args, .{ .build = .Obj });
^
/home/andy/Downloads/zig/src/main.zig:213:20: 0x598bd45 in main (zig)
return mainArgs(gpa, arena, args);
^
/home/andy/Downloads/zig/lib/std/start.zig:608:37: 0x598b79e in main (zig)
const result = root.main() catch |err| {
^
Alright I have 3 issues resolved in #16495 but there is still another issue left, and I need to work on coming up with a reduced test case in order to solve it.
Semantic Analysis [10463] thread 872992 panic: reached unreachable code
Analyzing src/install/npm.zig: src/install/npm.zig:Registry.BodyPool
%145 = decl_val("ObjectPool") token_offset:40:26 to :40:36
%146 = dbg_stmt(1, 36)
> %147 = call(.compile_time, %145, [
{
%148 = decl_val("MutableString") token_offset:40:37 to :40:50
%149 = break_inline(%147, %148)
},
{
%150 = decl_val("MutableString") token_offset:40:52 to :40:65
%151 = field_val(%150, "init2048") node_offset:40:52 to :40:74
%152 = break_inline(%147, %151)
},
{
%153 = break_inline(%147, @InternPool.Index.bool_true)
},
{
%154 = int(8)
%155 = break_inline(%147, %154)
},
]) node_offset:40:26 to :40:84
%156 = break_inline(%144, %147)
For full context, use the command
zig ast-check -t src/install/npm.zig
in src/install/extract_tarball.zig: src/install/extract_tarball.zig:extract
> %1089 = field_ptr(%1087, "BodyPool") node_offset:192:25 to :192:46
in src/install/extract_tarball.zig: src/install/extract_tarball.zig:extract
> %960 = block({%961..%1500}) node_offset:171:5 to :171:6
in src/install/extract_tarball.zig: src/install/extract_tarball.zig:extract
> %830 = block({%831..%2319}) node_offset:156:85 to :156:86
in src/install/install.zig: src/install/install.zig:Task.callback
> %3511 = field_call(.auto, %3508, "run", [
{%3512},
]) node_offset:643:32 to :643:65
in src/install/install.zig: src/install/install.zig:Task.callback
> %3515 = block({%3503..%3514}) node_offset:645:19 to :645:24
in src/install/install.zig: src/install/install.zig:Task.callback
> %3448 = block({%3449..%3615}) node_offset:635:25 to :635:26
in src/install/install.zig: src/install/install.zig:Task.callback
> %3130 = switch_block(%3128,
%3131 => {%3132..%3445},
%3446 => {%3447..%3617},
%3618 => {%3619..%3882},
%3883 => {%3884..%4050},
%4051 => {%4052..%4217}) node_offset:589:9 to :589:15
in src/install/install.zig: src/install/install.zig:Task.callback
> %3092 = block({%3093..%4223}) node_offset:581:50 to :581:51
/home/andy/Downloads/zig/lib/std/debug.zig:344:14: 0x598c91c in assert (zig)
if (!ok) unreachable; // assertion failure
^
/home/andy/Downloads/zig/src/InternPool.zig:3870:19: 0x59f4701 in get (zig)
assert(opt.val == .none or ip.indexToKey(opt.ty).opt_type == ip.typeOf(opt.val));
^
/home/andy/Downloads/zig/src/Module.zig:6439:31: 0x5a920f2 in intern (zig)
return mod.intern_pool.get(mod.gpa, key);
^
/home/andy/Downloads/zig/src/Sema.zig:31694:53: 0x6262437 in wrapOptional (zig)
return sema.addConstant((try sema.mod.intern(.{ .opt = .{
^
/home/andy/Downloads/zig/src/Sema.zig:26909:41: 0x5ece97c in coerceExtra (zig)
return try sema.wrapOptional(block, dest_ty, intermediate, inst_src);
^
/home/andy/Downloads/zig/src/Sema.zig:7361:48: 0x6bda29a in analyzeInlineCallArg (zig)
const casted_arg = sema.coerceExtra(arg_block, param_ty.toType(), uncasted_arg, arg_src, .{ .param_src = .{
^
/home/andy/Downloads/zig/src/Sema.zig:7008:42: 0x672f405 in analyzeCall (zig)
try sema.analyzeInlineCallArg(
^
/home/andy/Downloads/zig/src/Sema.zig:6640:32: 0x6168b09 in zirCall__anon_142023 (zig)
return sema.analyzeCall(block, func, func_ty, callee_src, call_src, modifier, ensure_result_used, resolved_args, bound_arg_src, call_dbg_node);
^
/home/andy/Downloads/zig/src/Sema.zig:1002:62: 0x5eac7e9 in analyzeBodyInner (zig)
.call => try sema.zirCall(block, inst, .direct),
^
/home/andy/Downloads/zig/src/Sema.zig:898:45: 0x5c93f65 in analyzeBodyBreak (zig)
const break_inst = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:4310:50: 0x5c91142 in semaDecl (zig)
const result_ref = (try sema.analyzeBodyBreak(&block_scope, body)).?.operand;
^
/home/andy/Downloads/zig/src/Module.zig:3828:32: 0x5a91877 in ensureDeclAnalyzed (zig)
break :blk mod.semaDecl(decl_index) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30399:27: 0x676f4c3 in ensureDeclAnalyzed (zig)
mod.ensureDeclAnalyzed(decl_index) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:30463:32: 0x67f6f10 in analyzeDeclRefInner (zig)
try sema.ensureDeclAnalyzed(decl_index);
^
/home/andy/Downloads/zig/src/Sema.zig:30453:36: 0x62892be in analyzeDeclRef (zig)
return sema.analyzeDeclRefInner(decl_index, true);
^
/home/andy/Downloads/zig/src/Sema.zig:25779:35: 0x663282e in namespaceLookupRef (zig)
return try sema.analyzeDeclRef(decl);
^
/home/andy/Downloads/zig/src/Sema.zig:25503:56: 0x6109d50 in fieldPtr (zig)
if (try sema.namespaceLookupRef(block, src, namespace, field_name)) |inst| {
^
/home/andy/Downloads/zig/src/Sema.zig:9541:25: 0x6175917 in zirFieldPtr (zig)
return sema.fieldPtr(block, src, object_ptr, field_name, field_name_src, initializing);
^
/home/andy/Downloads/zig/src/Sema.zig:1031:66: 0x5eadf11 in analyzeBodyInner (zig)
.field_ptr => try sema.zirFieldPtr(block, inst, false),
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc579 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x62442a3 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2d0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc579 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x62442a3 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2d0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105a68 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8de54 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73ae6 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:30412:31: 0x68007ac in ensureFuncBodyAnalyzed (zig)
mod.ensureFuncBodyAnalyzed(func) catch |err| {
^
/home/andy/Downloads/zig/src/Sema.zig:34248:40: 0x6273aeb in resolveInferredErrorSet (zig)
try sema.ensureFuncBodyAnalyzed(func_index);
^
/home/andy/Downloads/zig/src/Sema.zig:34273:49: 0x6110509 in resolveInferredErrorSetPtr (zig)
switch (try sema.resolveInferredErrorSet(block, src, other_ies_index)) {
^
/home/andy/Downloads/zig/src/Sema.zig:34322:40: 0x6be07f8 in resolveAdHocInferredErrorSetTy (zig)
try sema.resolveInferredErrorSetPtr(block, src, ies);
^
/home/andy/Downloads/zig/src/Sema.zig:7173:67: 0x67340d9 in analyzeCall (zig)
const new_ty = try sema.resolveAdHocInferredErrorSetTy(block, call_src, sema.typeOf(result).toIntern());
^
/home/andy/Downloads/zig/src/Sema.zig:6640:32: 0x616aa8c in zirCall__anon_142025 (zig)
return sema.analyzeCall(block, func, func_ty, callee_src, call_src, modifier, ensure_result_used, resolved_args, bound_arg_src, call_dbg_node);
^
/home/andy/Downloads/zig/src/Sema.zig:1003:62: 0x5eac8b1 in analyzeBodyInner (zig)
.field_call => try sema.zirCall(block, inst, .field),
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc579 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x62442a3 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2d0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc579 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x62442a3 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2d0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:861:30: 0x67dab2e in analyzeBodyRuntimeBreak (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Sema.zig:10185:52: 0x676c7c1 in analyzeProngRuntime (zig)
return sema.analyzeBodyRuntimeBreak(case_block, prong_body);
^
/home/andy/Downloads/zig/src/Sema.zig:11533:40: 0x61902cf in zirSwitchBlock (zig)
try spa.analyzeProngRuntime(
^
/home/andy/Downloads/zig/src/Sema.zig:1069:69: 0x5eafce1 in analyzeBodyInner (zig)
.switch_block => try sema.zirSwitchBlock(block, inst, false),
^
/home/andy/Downloads/zig/src/Sema.zig:5725:34: 0x67dc579 in resolveBlockBody (zig)
if (sema.analyzeBodyInner(child_block, body)) |_| {
^
/home/andy/Downloads/zig/src/Sema.zig:5708:33: 0x62442a3 in zirBlock (zig)
return sema.resolveBlockBody(parent_block, src, &child_block, body, inst, &label.merges);
^
/home/andy/Downloads/zig/src/Sema.zig:1543:49: 0x5ebe2d0 in analyzeBodyInner (zig)
break :blk try sema.zirBlock(block, inst, tags[inst] == .block_comptime);
^
/home/andy/Downloads/zig/src/Sema.zig:881:30: 0x6105a68 in analyzeBody (zig)
_ = sema.analyzeBodyInner(block, body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:5323:21: 0x5e8de54 in analyzeFnBody (zig)
sema.analyzeBody(&inner_block, fn_info.body) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Module.zig:3922:40: 0x5c73ae6 in ensureFuncBodyAnalyzed (zig)
var air = mod.analyzeFnBody(func_index, sema_arena) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Compilation.zig:3183:42: 0x5c71ba0 in processOneJob (zig)
module.ensureFuncBodyAnalyzed(func) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/Compilation.zig:3120:30: 0x5ad3f03 in performAllTheWork (zig)
try processOneJob(comp, work_item, main_progress_node);
^
/home/andy/Downloads/zig/src/Compilation.zig:2067:31: 0x5acf831 in update (zig)
try comp.performAllTheWork(main_progress_node);
^
/home/andy/Downloads/zig/src/main.zig:3887:24: 0x5aff3fe in updateModule (zig)
try comp.update(main_progress_node);
^
/home/andy/Downloads/zig/src/main.zig:3308:17: 0x5b2eee8 in buildOutputType (zig)
updateModule(comp) catch |err| switch (err) {
^
/home/andy/Downloads/zig/src/main.zig:273:31: 0x598eb13 in mainArgs (zig)
return buildOutputType(gpa, arena, args, .{ .build = .Obj });
^
/home/andy/Downloads/zig/src/main.zig:213:20: 0x598bd85 in main (zig)
return mainArgs(gpa, arena, args);
^
/home/andy/Downloads/zig/lib/std/start.zig:608:37: 0x598b7de in main (zig)
const result = root.main() catch |err| {
^
Thanks @andrewrk.
Incase this is helpful, here're two unusual patterns in some code mentioned in that last stacktrace:
comptime interface where the decls are either functions or void
conditionally call a comptime-known init
function if it was passed in an if/else and set the else branch to undefined
Thanks!
I have a reduction now:
test {
_ = A;
}
const A = B(void, c);
fn c() !void {}
fn B(comptime T: type, comptime d: ?fn () anyerror!T) type {
_ = d;
return struct {};
}
Alright, I've made it through all the crashes. #16518 is expected to close this issue now.
I do see some compilation errors now:
src/js_lexer/identifier_cache.zig:9:79: error: unable to open 'id_continue_bitset.meta.blob': FileNotFound
return comptime @as(CachedBitset, @bitCast(bun.asByteSlice(@embedFile(filename)).ptr[0..@sizeOf(CachedBitset)].*));
^~~~~~~~
src/js_lexer/identifier_cache.zig:19:51: note: called from here
pub const id_continue_meta = CachedBitset.fromFile("id_continue_bitset.meta.blob");
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/js_lexer/identifier_cache.zig:9:79: error: unable to open 'id_start_bitset.meta.blob': FileNotFound
return comptime @as(CachedBitset, @bitCast(bun.asByteSlice(@embedFile(filename)).ptr[0..@sizeOf(CachedBitset)].*));
^~~~~~~~
src/js_lexer/identifier_cache.zig:18:48: note: called from here
pub const id_start_meta = CachedBitset.fromFile("id_start_bitset.meta.blob");
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bundler.zig:745:52: error: struct 'json.stringify.StringifyOptions' has no member named 'Whitespace'
.whitespace = std.json.StringifyOptions.Whitespace{
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/home/andy/dev/zig/lib/std/json/stringify.zig:10:30: note: struct declared here
pub const StringifyOptions = struct {
^~~~~~
src/css_scanner.zig:1046:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/css_scanner.zig:1046:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/css_scanner.zig:1046:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/css_scanner.zig:1046:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/css_scanner.zig:1046:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/css_scanner.zig:1046:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/css_scanner.zig:1046:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/css_scanner.zig:1046:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
root.zig:7:37: error: unable to open 'packages/bun-error/dist/index.js': FileNotFound
pub const error_js = @embedFile(error_js_path);
^~~~~~~~~~~~~
src/runtime.zig:202:49: error: unable to open './runtime.bun.out.js': FileNotFound
pub const ProdSourceContentBun = @embedFile("./runtime.bun.out.js");
^~~~~~~~~~~~~~~~~~~~~~
src/node_fallbacks.zig:9:40: error: unable to open './node-fallbacks/out/assert.js': FileNotFound
const assert_code: string = @embedFile("./node-fallbacks/out/assert.js");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bun.js/module_loader.zig:100:73: error: unable to open '../js/out/modules_dev/node/wasi.js': FileNotFound
pub const file = @embedFile("../js/out/" ++ moduleFolder ++ "/" ++ input);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
src/bun.js/module_loader.zig:100:73: error: unable to open '../js/out/modules_dev/bun/wasi-runner.js': FileNotFound
pub const file = @embedFile("../js/out/" ++ moduleFolder ++ "/" ++ input);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
src/js_parser.zig:18430:53: error: unable to resolve inferred error set
p.visitStmts(&_stmts, kind) catch unreachable;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
src/js_parser.zig:18430:53: error: unable to resolve inferred error set
p.visitStmts(&_stmts, kind) catch unreachable;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
src/js_parser.zig:18430:53: error: unable to resolve inferred error set
p.visitStmts(&_stmts, kind) catch unreachable;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
src/js_parser.zig:18430:53: error: unable to resolve inferred error set
p.visitStmts(&_stmts, kind) catch unreachable;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
src/js_parser.zig:18430:53: error: unable to resolve inferred error set
p.visitStmts(&_stmts, kind) catch unreachable;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
src/js_parser.zig:18430:53: error: unable to resolve inferred error set
p.visitStmts(&_stmts, kind) catch unreachable;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
src/css_scanner.zig:1031:32: error: unable to resolve inferred error set
return err;
^~~
src/css_scanner.zig:1050:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, true);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/css_scanner.zig:1031:32: error: unable to resolve inferred error set
return err;
^~~
src/css_scanner.zig:1050:20: error: unable to resolve inferred error set
return try writeChunk(writer, chunk, true);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
root.zig:12:38: error: unable to open 'packages/bun-error/dist/bun-error.css': FileNotFound
pub const error_css = @embedFile(error_css_path);
^~~~~~~~~~~~~~
as for those "cannot resolve inferred error set" that's a known behavior change, a limitation of mutually recursing functions that have inferred error sets. In the future this limitation may or may not be lifted. For now, I suggest to work around it by making those affected functions have explicit error sets. One strategy is to just give them an empty error set then see what the compiler says is missing, then create an explicitly named error set with those errors in it.
Zig Version
0.11.0-dev.4059+17255bed4
Steps to Reproduce and Observed Behavior
git clone https://github.com/oven-sh/bun
zig build obj
Here is a very unhelpful error stack trace from lldb:
Expected Behavior
no segfault. maybe an error message if there was a breaking change between bf827d0b5 and 17255bed4