aboutsummaryrefslogtreecommitdiffstats
path: root/epubs/zig-0.5.0.epub
blob: 2b6ed40631137181d9a6f4177b7749e39a8e7177 (plain)
ofshex dumpascii
0000 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 6f 61 ab 2c 14 00 00 00 14 00 00 00 08 00 00 00 6d 69 PK..........!Roa.,............mi
0020 6d 65 74 79 70 65 61 70 70 6c 69 63 61 74 69 6f 6e 2f 65 70 75 62 2b 7a 69 70 50 4b 03 04 14 00 metypeapplication/epub+zipPK....
0040 00 00 00 00 00 00 21 52 6f 92 d0 0a fc 00 00 00 fc 00 00 00 16 00 00 00 4d 45 54 41 2d 49 4e 46 ......!Ro...............META-INF
0060 2f 63 6f 6e 74 61 69 6e 65 72 2e 78 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 /container.xml<?xml.version="1.0
0080 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a 3c 63 6f 6e 74 61 69 6e 65 72 20 ".encoding="utf-8"?>.<container.
00a0 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 6f 61 73 69 73 3a 6e version="1.0".xmlns="urn:oasis:n
00c0 61 6d 65 73 3a 74 63 3a 6f 70 65 6e 64 6f 63 75 6d 65 6e 74 3a 78 6d 6c 6e 73 3a 63 6f 6e 74 61 ames:tc:opendocument:xmlns:conta
00e0 69 6e 65 72 22 3e 0a 20 20 3c 72 6f 6f 74 66 69 6c 65 73 3e 0a 20 20 20 20 3c 72 6f 6f 74 66 69 iner">...<rootfiles>.....<rootfi
0100 6c 65 20 66 75 6c 6c 2d 70 61 74 68 3d 22 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 2e 6f 70 66 22 le.full-path="OEBPS/content.opf"
0120 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 65 62 70 73 2d 70 .media-type="application/oebps-p
0140 61 63 6b 61 67 65 2b 78 6d 6c 22 2f 3e 0a 20 20 3c 2f 72 6f 6f 74 66 69 6c 65 73 3e 0a 3c 2f 63 ackage+xml"/>...</rootfiles>.</c
0160 6f 6e 74 61 69 6e 65 72 3e 0a 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 3c a4 dd ee a7 02 00 00 ontainer>.PK..........!R<.......
0180 a7 02 00 00 11 00 00 00 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 2e 6f 70 66 3c 3f 78 6d 6c 20 76 ........OEBPS/content.opf<?xml.v
01a0 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a ersion="1.0".encoding="utf-8"?>.
01c0 3c 70 61 63 6b 61 67 65 20 78 6d 6c 6e 73 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 69 64 70 66 2e <package.xmlns="http://www.idpf.
01e0 6f 72 67 2f 32 30 30 37 2f 6f 70 66 22 20 76 65 72 73 69 6f 6e 3d 22 33 2e 30 22 20 75 6e 69 71 org/2007/opf".version="3.0".uniq
0200 75 65 2d 69 64 65 6e 74 69 66 69 65 72 3d 22 70 75 62 2d 69 64 22 3e 0a 20 20 3c 6d 65 74 61 64 ue-identifier="pub-id">...<metad
0220 61 74 61 20 78 6d 6c 6e 73 3a 64 63 3d 22 68 74 74 70 3a 2f 2f 70 75 72 6c 2e 6f 72 67 2f 64 63 ata.xmlns:dc="http://purl.org/dc
0240 2f 65 6c 65 6d 65 6e 74 73 2f 31 2e 31 2f 22 3e 0a 20 20 20 20 3c 64 63 3a 69 64 65 6e 74 69 66 /elements/1.1/">.....<dc:identif
0260 69 65 72 20 69 64 3d 22 70 75 62 2d 69 64 22 3e 75 72 6e 3a 7a 69 67 6c 61 6e 67 2d 64 6f 63 73 ier.id="pub-id">urn:ziglang-docs
0280 3a 30 2e 35 2e 30 3c 2f 64 63 3a 69 64 65 6e 74 69 66 69 65 72 3e 0a 20 20 20 20 3c 64 63 3a 74 :0.5.0</dc:identifier>.....<dc:t
02a0 69 74 6c 65 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 35 itle>Zig.Language.Reference.(0.5
02c0 2e 30 29 3c 2f 64 63 3a 74 69 74 6c 65 3e 0a 20 20 20 20 3c 64 63 3a 6c 61 6e 67 75 61 67 65 3e .0)</dc:title>.....<dc:language>
02e0 65 6e 3c 2f 64 63 3a 6c 61 6e 67 75 61 67 65 3e 0a 20 20 20 20 3c 6d 65 74 61 20 70 72 6f 70 65 en</dc:language>.....<meta.prope
0300 72 74 79 3d 22 64 63 74 65 72 6d 73 3a 6d 6f 64 69 66 69 65 64 22 3e 32 30 32 31 2d 30 31 2d 30 rty="dcterms:modified">2021-01-0
0320 31 54 30 30 3a 30 30 3a 30 30 5a 3c 2f 6d 65 74 61 3e 0a 20 20 3c 2f 6d 65 74 61 64 61 74 61 3e 1T00:00:00Z</meta>...</metadata>
0340 0a 20 20 3c 6d 61 6e 69 66 65 73 74 3e 0a 20 20 20 20 3c 69 74 65 6d 20 69 64 3d 22 6e 61 76 22 ...<manifest>.....<item.id="nav"
0360 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 22 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 .href="nav.xhtml".media-type="ap
0380 70 6c 69 63 61 74 69 6f 6e 2f 78 68 74 6d 6c 2b 78 6d 6c 22 20 70 72 6f 70 65 72 74 69 65 73 3d plication/xhtml+xml".properties=
03a0 22 6e 61 76 22 2f 3e 0a 20 20 20 20 3c 69 74 65 6d 20 69 64 3d 22 69 6e 64 65 78 22 20 68 72 65 "nav"/>.....<item.id="index".hre
03c0 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 22 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 70 6c f="index.xhtml".media-type="appl
03e0 69 63 61 74 69 6f 6e 2f 78 68 74 6d 6c 2b 78 6d 6c 22 2f 3e 0a 20 20 3c 2f 6d 61 6e 69 66 65 73 ication/xhtml+xml"/>...</manifes
0400 74 3e 0a 20 20 3c 73 70 69 6e 65 3e 0a 20 20 20 20 3c 69 74 65 6d 72 65 66 20 69 64 72 65 66 3d t>...<spine>.....<itemref.idref=
0420 22 69 6e 64 65 78 22 2f 3e 0a 20 20 3c 2f 73 70 69 6e 65 3e 0a 3c 2f 70 61 63 6b 61 67 65 3e 0a "index"/>...</spine>.</package>.
0440 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 62 1f 38 3c 86 01 00 00 86 01 00 00 0f 00 00 00 4f 45 PK..........!Rb.8<............OE
0460 42 50 53 2f 6e 61 76 2e 78 68 74 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 BPS/nav.xhtml<?xml.version="1.0"
0480 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a 3c 68 74 6d 6c 20 78 6d 6c 6e 73 3d .encoding="utf-8"?>.<html.xmlns=
04a0 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 31 39 39 39 2f 78 68 74 6d 6c 22 20 78 "http://www.w3.org/1999/xhtml".x
04c0 6d 6c 6e 73 3a 65 70 75 62 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 69 64 70 66 2e 6f 72 67 2f 32 mlns:epub="http://www.idpf.org/2
04e0 30 30 37 2f 6f 70 73 22 20 6c 61 6e 67 3d 22 65 6e 22 3e 0a 20 20 3c 68 65 61 64 3e 3c 74 69 74 007/ops".lang="en">...<head><tit
0500 6c 65 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 35 2e 30 le>Zig.Language.Reference.(0.5.0
0520 29 3c 2f 74 69 74 6c 65 3e 3c 2f 68 65 61 64 3e 0a 20 20 3c 62 6f 64 79 3e 0a 20 20 20 20 3c 6e )</title></head>...<body>.....<n
0540 61 76 20 65 70 75 62 3a 74 79 70 65 3d 22 74 6f 63 22 20 69 64 3d 22 74 6f 63 22 3e 0a 20 20 20 av.epub:type="toc".id="toc">....
0560 20 20 20 3c 68 31 3e 43 6f 6e 74 65 6e 74 73 3c 2f 68 31 3e 0a 20 20 20 20 20 20 3c 6f 6c 3e 0a ...<h1>Contents</h1>.......<ol>.
0580 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c ........<li><a.href="index.xhtml
05a0 22 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 35 2e 30 29 ">Zig.Language.Reference.(0.5.0)
05c0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 6f 6c 3e 0a 20 20 20 20 3c 2f 6e 61 76 3e </a></li>.......</ol>.....</nav>
05e0 0a 20 20 3c 2f 62 6f 64 79 3e 0a 3c 2f 68 74 6d 6c 3e 0a 50 4b 03 04 14 00 00 00 00 00 00 00 21 ...</body>.</html>.PK..........!
0600 52 3a a9 15 08 40 f2 0a 00 40 f2 0a 00 11 00 00 00 4f 45 42 50 53 2f 69 6e 64 65 78 2e 78 68 74 R:...@...@.......OEBPS/index.xht
0620 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 ml<?xml.version="1.0".encoding="
0640 75 74 66 2d 38 22 3f 3e 0a 0a 3c 68 74 6d 6c 20 78 6d 6c 6e 73 3d 22 68 74 74 70 3a 2f 2f 77 77 utf-8"?>..<html.xmlns="http://ww
0660 77 2e 77 33 2e 6f 72 67 2f 31 39 39 39 2f 78 68 74 6d 6c 22 3e 0a 20 20 3c 68 65 61 64 3e 0a 20 w.w3.org/1999/xhtml">...<head>..
0680 20 20 20 3c 6d 65 74 61 20 63 68 61 72 73 65 74 3d 22 75 74 66 2d 38 22 2f 3e 0a 20 20 20 20 3c ...<meta.charset="utf-8"/>.....<
06a0 74 69 74 6c 65 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 2d 20 54 68 65 20 5a 69 67 20 50 72 title>Documentation.-.The.Zig.Pr
06c0 6f 67 72 61 6d 6d 69 6e 67 20 4c 61 6e 67 75 61 67 65 3c 2f 74 69 74 6c 65 3e 0a 20 20 20 20 3c ogramming.Language</title>.....<
06e0 6c 69 6e 6b 20 72 65 6c 3d 22 69 63 6f 6e 22 20 68 72 65 66 3d 22 2f 66 61 76 69 63 6f 6e 2e 70 link.rel="icon".href="/favicon.p
0700 6e 67 22 2f 3e 0a 20 20 20 20 3c 6c 69 6e 6b 20 72 65 6c 3d 22 69 63 6f 6e 22 20 68 72 65 66 3d ng"/>.....<link.rel="icon".href=
0720 22 2f 66 61 76 69 63 6f 6e 2e 73 76 67 22 2f 3e 0a 20 20 20 20 3c 73 74 79 6c 65 20 74 79 70 65 "/favicon.svg"/>.....<style.type
0740 3d 22 74 65 78 74 2f 63 73 73 22 3e 0a 20 20 20 20 20 20 62 6f 64 79 7b 0a 20 20 20 20 20 20 20 ="text/css">.......body{........
0760 20 66 6f 6e 74 2d 66 61 6d 69 6c 79 3a 20 73 79 73 74 65 6d 2d 75 69 2c 20 2d 61 70 70 6c 65 2d .font-family:.system-ui,.-apple-
0780 73 79 73 74 65 6d 2c 20 52 6f 62 6f 74 6f 2c 20 22 53 65 67 6f 65 20 55 49 22 2c 20 73 61 6e 73 system,.Roboto,."Segoe.UI",.sans
07a0 2d 73 65 72 69 66 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 61 3a 6e 6f 74 28 3a 68 6f 76 -serif;.......}.......a:not(:hov
07c0 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 20 6e er).{.........text-decoration:.n
07e0 6f 6e 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 74 61 62 6c 65 2c 20 74 68 2c 20 74 64 one;.......}.......table,.th,.td
0800 20 7b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 2d 63 6f 6c 6c 61 70 73 65 3a 20 63 6f 6c 6c .{.........border-collapse:.coll
0820 61 70 73 65 3b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 3a 20 31 70 78 20 73 6f 6c 69 64 20 apse;.........border:.1px.solid.
0840 67 72 65 79 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 74 68 2c 20 74 64 20 7b 0a 20 20 20 grey;.......}.......th,.td.{....
0860 20 20 20 20 20 70 61 64 64 69 6e 67 3a 20 30 2e 31 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 .....padding:.0.1em;.......}....
0880 20 20 20 2e 74 30 5f 31 2c 20 2e 74 33 37 2c 20 2e 74 33 37 5f 31 20 7b 0a 20 20 20 20 20 20 20 ....t0_1,..t37,..t37_1.{........
08a0 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 .font-weight:.bold;.......}.....
08c0 20 20 2e 74 32 5f 30 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 67 72 65 79 3b 0a 20 ...t2_0.{.........color:.grey;..
08e0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 33 31 5f 31 20 7b 0a 20 20 20 20 20 20 20 20 63 6f .....}........t31_1.{.........co
0900 6c 6f 72 3a 20 72 65 64 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 33 32 5f 31 20 7b lor:.red;.......}........t32_1.{
0920 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 67 72 65 65 6e 3b 0a 20 20 20 20 20 20 7d 0a 20 .........color:.green;.......}..
0940 20 20 20 20 20 2e 74 33 36 5f 31 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 ......t36_1.{.........color:.#00
0960 38 36 62 33 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 66 69 6c 65 20 7b 0a 20 20 20 20 86b3;.......}........file.{.....
0980 20 20 20 20 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 20 75 6e 64 65 72 6c 69 6e 65 3b 0a ....text-decoration:.underline;.
09a0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 70 72 65 2c 63 6f 64 65 20 7b 0a 20 20 20 20 20 20 20 ......}.......pre,code.{........
09c0 20 66 6f 6e 74 2d 73 69 7a 65 3a 20 31 32 70 74 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 .font-size:.12pt;.......}.......
09e0 70 72 65 20 3e 20 63 6f 64 65 20 7b 0a 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 3a 20 62 6c pre.>.code.{.........display:.bl
0a00 6f 63 6b 3b 0a 20 20 20 20 20 20 20 20 6f 76 65 72 66 6c 6f 77 3a 20 61 75 74 6f 3b 0a 20 20 20 ock;.........overflow:.auto;....
0a20 20 20 20 20 20 70 61 64 64 69 6e 67 3a 20 30 2e 35 65 6d 3b 0a 20 20 20 20 20 20 20 20 63 6f 6c .....padding:.0.5em;.........col
0a40 6f 72 3a 20 23 33 33 33 3b 0a 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a 20 23 66 or:.#333;.........background:.#f
0a60 38 66 38 66 38 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 61 62 6c 65 2d 77 72 61 70 8f8f8;.......}........table-wrap
0a80 70 65 72 20 7b 0a 20 20 20 20 20 20 20 20 77 69 64 74 68 3a 20 31 30 30 25 3b 0a 20 20 20 20 20 per.{.........width:.100%;......
0aa0 20 20 20 6f 76 65 72 66 6c 6f 77 2d 79 3a 20 61 75 74 6f 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 ...overflow-y:.auto;.......}....
0ac0 20 20 20 20 2e 74 6f 6b 2d 6b 77 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 .....tok-kw.{...........color:.#
0ae0 33 33 33 3b 0a 20 20 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 6f 6c 64 333;...........font-weight:.bold
0b00 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 73 74 72 20 7b 0a 20 20 20 20 20 ;.......}........tok-str.{......
0b20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 64 31 34 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 .....color:.#d14;.......}.......
0b40 2e 74 6f 6b 2d 62 75 69 6c 74 69 6e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 .tok-builtin.{...........color:.
0b60 23 30 30 38 36 62 33 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 63 6f 6d 6d #0086b3;.......}........tok-comm
0b80 65 6e 74 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 37 37 37 3b 0a 20 20 20 ent.{...........color:.#777;....
0ba0 20 20 20 20 20 20 20 66 6f 6e 74 2d 73 74 79 6c 65 3a 20 69 74 61 6c 69 63 3b 0a 20 20 20 20 20 .......font-style:.italic;......
0bc0 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 66 6e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c .}........tok-fn.{...........col
0be0 6f 72 3a 20 23 39 30 30 3b 0a 20 20 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a or:.#900;...........font-weight:
0c00 20 62 6f 6c 64 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 6e 75 6c 6c 20 7b .bold;.......}........tok-null.{
0c20 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 38 30 38 30 3b 0a 20 20 20 20 20 ...........color:.#008080;......
0c40 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 6e 75 6d 62 65 72 20 7b 0a 20 20 20 20 20 20 20 20 20 .}........tok-number.{..........
0c60 20 63 6f 6c 6f 72 3a 20 23 30 30 38 30 38 30 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e .color:.#008080;.......}........
0c80 74 6f 6b 2d 74 79 70 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 34 35 38 tok-type.{...........color:.#458
0ca0 3b 0a 20 20 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 ;...........font-weight:.bold;..
0cc0 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 23 63 6f 6e 74 65 6e 74 73 20 7b 0a 20 20 20 20 20 20 .....}........#contents.{.......
0ce0 20 20 6d 61 78 2d 77 69 64 74 68 3a 20 36 30 65 6d 3b 0a 20 20 20 20 20 20 20 20 6d 61 72 67 69 ..max-width:.60em;.........margi
0d00 6e 3a 20 61 75 74 6f 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 68 31 20 61 2c 20 68 32 n:.auto;.......}........h1.a,.h2
0d20 20 61 2c 20 68 33 20 61 2c 20 68 34 20 61 2c 20 68 35 20 61 20 7b 0a 20 20 20 20 20 20 20 20 74 .a,.h3.a,.h4.a,.h5.a.{.........t
0d40 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 20 6e 6f 6e 65 3b 0a 20 20 20 20 20 20 20 20 63 6f ext-decoration:.none;.........co
0d60 6c 6f 72 3a 20 23 33 33 33 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 61 2e 68 64 72 20 lor:.#333;.......}........a.hdr.
0d80 7b 0a 20 20 20 20 20 20 20 20 76 69 73 69 62 69 6c 69 74 79 3a 20 68 69 64 64 65 6e 3b 0a 20 20 {.........visibility:.hidden;...
0da0 20 20 20 20 7d 0a 20 20 20 20 20 20 68 31 3a 68 6f 76 65 72 20 3e 20 61 2e 68 64 72 2c 20 68 32 ....}.......h1:hover.>.a.hdr,.h2
0dc0 3a 68 6f 76 65 72 20 3e 20 61 2e 68 64 72 2c 20 68 33 3a 68 6f 76 65 72 20 3e 20 61 2e 68 64 72 :hover.>.a.hdr,.h3:hover.>.a.hdr
0de0 2c 20 68 34 3a 68 6f 76 65 72 20 3e 20 61 2e 68 64 72 2c 20 68 35 3a 68 6f 76 65 72 20 3e 20 61 ,.h4:hover.>.a.hdr,.h5:hover.>.a
0e00 2e 68 64 72 20 7b 0a 20 20 20 20 20 20 20 20 76 69 73 69 62 69 6c 69 74 79 3a 20 76 69 73 69 62 .hdr.{.........visibility:.visib
0e20 6c 65 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 40 6d 65 64 69 61 20 28 70 72 65 66 65 le;.......}........@media.(prefe
0e40 72 73 2d 63 6f 6c 6f 72 2d 73 63 68 65 6d 65 3a 20 64 61 72 6b 29 20 7b 0a 20 20 20 20 20 20 20 rs-color-scheme:.dark).{........
0e60 20 62 6f 64 79 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f .body{.............background-co
0e80 6c 6f 72 3a 23 31 31 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 62 62 lor:#111;.............color:.#bb
0ea0 62 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 61 20 7b 0a 20 20 20 20 20 20 20 b;.........}.........a.{........
0ec0 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 38 38 66 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 .....color:.#88f;.........}.....
0ee0 20 20 20 20 74 61 62 6c 65 2c 20 74 68 2c 20 74 64 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....table,.th,.td.{.............
0f00 62 6f 72 64 65 72 2d 63 6f 6c 6f 72 3a 20 67 72 65 79 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 border-color:.grey;.........}...
0f20 20 20 20 20 20 20 2e 74 32 5f 30 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a .......t2_0.{.............color:
0f40 20 67 72 65 79 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2e 74 33 31 5f 31 20 .grey;.........}..........t31_1.
0f60 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 72 65 64 3b 0a 20 20 20 20 20 20 {.............color:.red;.......
0f80 20 20 7d 0a 20 20 20 20 20 20 20 20 2e 74 33 32 5f 31 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ..}..........t32_1.{............
0fa0 20 63 6f 6c 6f 72 3a 20 67 72 65 65 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 .color:.green;.........}........
0fc0 20 2e 74 33 36 5f 31 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 ..t36_1.{.............color:.#00
0fe0 38 36 62 33 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 70 72 65 20 3e 20 63 6f 86b3;.........}.........pre.>.co
1000 64 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 63 63 63 3b 0a 20 20 de.{.............color:.#ccc;...
1020 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a 20 23 32 32 32 3b 0a 20 20 20 20 ..........background:.#222;.....
1040 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2e 74 6f 6b 2d 6b 77 20 7b 0a 20 20 20 20 20 20 20 20 ....}..........tok-kw.{.........
1060 20 20 20 20 63 6f 6c 6f 72 3a 20 23 65 65 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 ....color:.#eee;.........}......
1080 20 20 20 2e 74 6f 6b 2d 73 74 72 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a ....tok-str.{.............color:
10a0 20 23 32 65 35 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2e 74 6f 6b 2d 62 75 .#2e5;.........}..........tok-bu
10c0 69 6c 74 69 6e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 66 66 38 39 iltin.{.............color:.#ff89
10e0 34 63 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2e 74 6f 6b 2d 63 6f 6d 6d 65 4c;.........}..........tok-comme
1100 6e 74 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 61 61 37 3b 0a 20 20 nt.{.............color:.#aa7;...
1120 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2e 74 6f 6b 2d 66 6e 20 7b 0a 20 20 20 20 20 20 ......}..........tok-fn.{.......
1140 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 65 33 33 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ......color:.#e33;.........}....
1160 20 20 20 20 20 2e 74 6f 6b 2d 6e 75 6c 6c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c ......tok-null.{.............col
1180 6f 72 3a 20 23 66 66 38 30 38 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2e or:.#ff8080;.........}..........
11a0 74 6f 6b 2d 6e 75 6d 62 65 72 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 tok-number.{.............color:.
11c0 23 66 66 38 30 38 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2e 74 6f 6b 2d #ff8080;.........}..........tok-
11e0 74 79 70 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 36 38 66 3b 0a type.{.............color:.#68f;.
1200 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 68 31 20 61 2c 20 68 32 20 61 2c 20 68 33 ........}.........h1.a,.h2.a,.h3
1220 20 61 2c 20 68 34 20 61 2c 20 68 35 20 61 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c .a,.h4.a,.h5.a.{.............col
1240 6f 72 3a 20 23 61 61 61 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 or:.#aaa;.........}.......}.....
1260 3c 2f 73 74 79 6c 65 3e 0a 20 20 3c 2f 68 65 61 64 3e 0a 20 20 3c 62 6f 64 79 3e 0a 20 20 20 20 </style>...</head>...<body>.....
1280 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 <a.href="https://ziglang.org/doc
12a0 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 2e 31 2f 22 3e 30 2e 31 2e 31 3c 2f 61 3e 20 7c 0a 3c umentation/0.1.1/">0.1.1</a>.|.<
12c0 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 a.href="https://ziglang.org/docu
12e0 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 32 2e 30 2f 22 3e 30 2e 32 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 mentation/0.2.0/">0.2.0</a>.|.<a
1300 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d .href="https://ziglang.org/docum
1320 65 6e 74 61 74 69 6f 6e 2f 30 2e 33 2e 30 2f 22 3e 30 2e 33 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 entation/0.3.0/">0.3.0</a>.|.<a.
1340 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 href="https://ziglang.org/docume
1360 6e 74 61 74 69 6f 6e 2f 30 2e 34 2e 30 2f 22 3e 30 2e 34 2e 30 3c 2f 61 3e 20 7c 0a 30 2e 35 2e ntation/0.4.0/">0.4.0</a>.|.0.5.
1380 30 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 0.|.<a.href="https://ziglang.org
13a0 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 36 2e 30 2f 22 3e 30 2e 36 2e 30 3c 2f 61 3e /documentation/0.6.0/">0.6.0</a>
13c0 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f .|.<a.href="https://ziglang.org/
13e0 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 37 2e 31 2f 22 3e 30 2e 37 2e 31 3c 2f 61 3e 20 documentation/0.7.1/">0.7.1</a>.
1400 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 |.<a.href="https://ziglang.org/d
1420 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 38 2e 31 2f 22 3e 30 2e 38 2e 31 3c 2f 61 3e 20 7c ocumentation/0.8.1/">0.8.1</a>.|
1440 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f .<a.href="https://ziglang.org/do
1460 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 39 2e 31 2f 22 3e 30 2e 39 2e 31 3c 2f 61 3e 20 7c 0a cumentation/0.9.1/">0.9.1</a>.|.
1480 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 <a.href="https://ziglang.org/doc
14a0 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 30 2e 31 2f 22 3e 30 2e 31 30 2e 31 3c 2f 61 3e 20 7c umentation/0.10.1/">0.10.1</a>.|
14c0 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f .<a.href="https://ziglang.org/do
14e0 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 31 2e 30 2f 22 3e 30 2e 31 31 2e 30 3c 2f 61 3e 20 cumentation/0.11.0/">0.11.0</a>.
1500 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 |.<a.href="https://ziglang.org/d
1520 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 32 2e 31 2f 22 3e 30 2e 31 32 2e 31 3c 2f 61 3e ocumentation/0.12.1/">0.12.1</a>
1540 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f .|.<a.href="https://ziglang.org/
1560 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 33 2e 30 2f 22 3e 30 2e 31 33 2e 30 3c 2f 61 documentation/0.13.0/">0.13.0</a
1580 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 >.|.<a.href="https://ziglang.org
15a0 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 34 2e 31 2f 22 3e 30 2e 31 34 2e 31 3c 2f /documentation/0.14.1/">0.14.1</
15c0 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 a>.|.<a.href="https://ziglang.or
15e0 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 35 2e 32 2f 22 3e 30 2e 31 35 2e 32 3c g/documentation/0.15.2/">0.15.2<
1600 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f /a>.|.<a.href="https://ziglang.o
1620 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 36 2e 30 2f 22 3e 30 2e 31 36 2e 30 rg/documentation/0.16.0/">0.16.0
1640 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e </a>.|.<a.href="https://ziglang.
1660 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 6d 61 73 74 65 72 2f 22 3e 6d 61 73 74 65 org/documentation/master/">maste
1680 72 3c 2f 61 3e 0a 20 20 20 20 3c 64 69 76 20 69 64 3d 22 63 6f 6e 74 65 6e 74 73 22 3e 0a 20 20 r</a>.....<div.id="contents">...
16a0 20 20 20 20 3c 68 31 20 69 64 3d 22 49 6e 74 72 6f 64 75 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 ....<h1.id="Introduction"><a.hre
16c0 66 3d 22 23 74 6f 63 2d 49 6e 74 72 6f 64 75 63 74 69 6f 6e 22 3e 49 6e 74 72 6f 64 75 63 74 69 f="#toc-Introduction">Introducti
16e0 6f 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 74 on</a>.<a.class="hdr".href="#Int
1700 72 6f 64 75 63 74 69 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 roduction">..</a></h1>........<p
1720 3e 0a 20 20 20 20 20 20 5a 69 67 20 69 73 20 61 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 >.......Zig.is.a.general-purpose
1740 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 64 65 73 69 67 6e 65 64 20 66 .programming.language.designed.f
1760 6f 72 20 3c 73 74 72 6f 6e 67 3e 72 6f 62 75 73 74 6e 65 73 73 3c 2f 73 74 72 6f 6e 67 3e 2c 0a or.<strong>robustness</strong>,.
1780 20 20 20 20 20 20 3c 73 74 72 6f 6e 67 3e 6f 70 74 69 6d 61 6c 69 74 79 3c 2f 73 74 72 6f 6e 67 ......<strong>optimality</strong
17a0 3e 2c 20 61 6e 64 20 3c 73 74 72 6f 6e 67 3e 6d 61 69 6e 74 61 69 6e 61 62 69 6c 69 74 79 3c 2f >,.and.<strong>maintainability</
17c0 73 74 72 6f 6e 67 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 strong>........</p>.......<ul>..
17e0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 73 74 72 6f 6e 67 3e 52 6f 62 75 73 74 3c 2f 73 74 72 6f 6e .......<li><strong>Robust</stron
1800 67 3e 20 2d 20 62 65 68 61 76 69 6f 72 20 69 73 20 63 6f 72 72 65 63 74 20 65 76 65 6e 20 66 6f g>.-.behavior.is.correct.even.fo
1820 72 20 65 64 67 65 20 63 61 73 65 73 20 73 75 63 68 20 61 73 20 6f 75 74 20 6f 66 20 6d 65 6d 6f r.edge.cases.such.as.out.of.memo
1840 72 79 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 73 74 72 6f 6e 67 3e 4f 70 74 ry.</li>.........<li><strong>Opt
1860 69 6d 61 6c 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 77 72 69 74 65 20 70 72 6f 67 72 61 6d 73 20 74 imal</strong>.-.write.programs.t
1880 68 65 20 62 65 73 74 20 77 61 79 20 74 68 65 79 20 63 61 6e 20 62 65 68 61 76 65 20 61 6e 64 20 he.best.way.they.can.behave.and.
18a0 70 65 72 66 6f 72 6d 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 73 74 72 6f 6e perform.</li>.........<li><stron
18c0 67 3e 4d 61 69 6e 74 61 69 6e 61 62 6c 65 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 70 72 65 63 69 73 g>Maintainable</strong>.-.precis
18e0 65 6c 79 20 63 6f 6d 6d 75 6e 69 63 61 74 65 20 69 6e 74 65 6e 74 20 74 6f 20 74 68 65 20 63 6f ely.communicate.intent.to.the.co
1900 6d 70 69 6c 65 72 20 61 6e 64 20 6f 74 68 65 72 20 70 72 6f 67 72 61 6d 6d 65 72 73 2e 0a 20 20 mpiler.and.other.programmers....
1920 20 20 20 20 20 20 20 20 20 20 54 68 65 20 6c 61 6e 67 75 61 67 65 20 69 6d 70 6f 73 65 73 20 61 ..........The.language.imposes.a
1940 20 6c 6f 77 20 6f 76 65 72 68 65 61 64 20 74 6f 20 72 65 61 64 69 6e 67 20 63 6f 64 65 20 61 6e .low.overhead.to.reading.code.an
1960 64 20 69 73 20 72 65 73 69 6c 69 65 6e 74 20 74 6f 20 63 68 61 6e 67 69 6e 67 20 72 65 71 75 69 d.is.resilient.to.changing.requi
1980 72 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 65 6e 76 69 72 6f 6e 6d rements.............and.environm
19a0 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e ents.</li>.......</ul>.......<p>
19c0 0a 20 20 20 20 20 20 4f 66 74 65 6e 20 74 68 65 20 6d 6f 73 74 20 65 66 66 69 63 69 65 6e 74 20 .......Often.the.most.efficient.
19e0 77 61 79 20 74 6f 20 6c 65 61 72 6e 20 73 6f 6d 65 74 68 69 6e 67 20 6e 65 77 20 69 73 20 74 6f way.to.learn.something.new.is.to
1a00 20 73 65 65 20 65 78 61 6d 70 6c 65 73 2c 20 73 6f 0a 20 20 20 20 20 20 74 68 69 73 20 64 6f 63 .see.examples,.so.......this.doc
1a20 75 6d 65 6e 74 61 74 69 6f 6e 20 73 68 6f 77 73 20 68 6f 77 20 74 6f 20 75 73 65 20 65 61 63 68 umentation.shows.how.to.use.each
1a40 20 6f 66 20 5a 69 67 27 73 20 66 65 61 74 75 72 65 73 2e 20 49 74 20 69 73 0a 20 20 20 20 20 20 .of.Zig's.features..It.is.......
1a60 61 6c 6c 20 6f 6e 20 6f 6e 65 20 70 61 67 65 20 73 6f 20 79 6f 75 20 63 61 6e 20 73 65 61 72 63 all.on.one.page.so.you.can.searc
1a80 68 20 77 69 74 68 20 79 6f 75 72 20 62 72 6f 77 73 65 72 27 73 20 73 65 61 72 63 68 20 74 6f 6f h.with.your.browser's.search.too
1aa0 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 l........</p>.......<p>.......Th
1ac0 65 20 63 6f 64 65 20 73 61 6d 70 6c 65 73 20 69 6e 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 e.code.samples.in.this.document.
1ae0 61 72 65 20 63 6f 6d 70 69 6c 65 64 20 61 6e 64 20 74 65 73 74 65 64 20 61 73 20 70 61 72 74 20 are.compiled.and.tested.as.part.
1b00 6f 66 20 74 68 65 20 6d 61 69 6e 20 74 65 73 74 20 73 75 69 74 65 20 6f 66 20 5a 69 67 2e 0a 20 of.the.main.test.suite.of.Zig...
1b20 20 20 20 20 20 54 68 69 73 20 48 54 4d 4c 20 64 6f 63 75 6d 65 6e 74 20 64 65 70 65 6e 64 73 20 .....This.HTML.document.depends.
1b40 6f 6e 20 6e 6f 20 65 78 74 65 72 6e 61 6c 20 66 69 6c 65 73 2c 20 73 6f 20 79 6f 75 20 63 61 6e on.no.external.files,.so.you.can
1b60 20 75 73 65 20 69 74 20 6f 66 66 6c 69 6e 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 .use.it.offline........</p>.....
1b80 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 ..<p>.......<a.href="https://git
1ba0 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 77 69 6b 69 2f 46 41 51 23 77 68 65 hub.com/ziglang/zig/wiki/FAQ#whe
1bc0 72 65 2d 69 73 2d 74 68 65 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 6f 72 2d 74 68 65 2d re-is-the-documentation-for-the-
1be0 7a 69 67 2d 73 74 61 6e 64 61 72 64 2d 6c 69 62 72 61 72 79 22 3e 57 68 65 72 65 20 69 73 20 74 zig-standard-library">Where.is.t
1c00 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 5a 69 67 20 73 74 61 he.documentation.for.the.Zig.sta
1c20 6e 64 61 72 64 20 6c 69 62 72 61 72 79 3f 3c 2f 61 3e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 ndard.library?</a>.......</p>...
1c40 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 49 6e 64 65 78 22 3e 3c 61 20 68 72 ............<h1.id="Index"><a.hr
1c60 65 66 3d 22 23 74 6f 63 2d 49 6e 64 65 78 22 3e 49 6e 64 65 78 3c 2f 61 3e 20 3c 61 20 63 6c 61 ef="#toc-Index">Index</a>.<a.cla
1c80 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 64 65 78 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 ss="hdr".href="#Index">..</a></h
1ca0 31 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 1>..............<ul>.........<li
1cc0 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 74 72 6f 64 75 63 74 69 6f 6e 22 20 68 72 65 66 3d 22 ><a.id="toc-Introduction".href="
1ce0 23 49 6e 74 72 6f 64 75 63 74 69 6f 6e 22 3e 49 6e 74 72 6f 64 75 63 74 69 6f 6e 3c 2f 61 3e 3c #Introduction">Introduction</a><
1d00 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 64 65 /li>.........<li><a.id="toc-Inde
1d20 78 22 20 68 72 65 66 3d 22 23 49 6e 64 65 78 22 3e 49 6e 64 65 78 3c 2f 61 3e 3c 2f 6c 69 3e 0a x".href="#Index">Index</a></li>.
1d40 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 48 65 6c 6c 6f 2d 57 6f 72 ........<li><a.id="toc-Hello-Wor
1d60 6c 64 22 20 68 72 65 66 3d 22 23 48 65 6c 6c 6f 2d 57 6f 72 6c 64 22 3e 48 65 6c 6c 6f 20 57 6f ld".href="#Hello-World">Hello.Wo
1d80 72 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 rld</a></li>.........<li><a.id="
1da0 74 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 20 68 72 65 66 3d 22 23 43 6f 6d 6d 65 6e 74 73 22 3e 43 toc-Comments".href="#Comments">C
1dc0 6f 6d 6d 65 6e 74 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 omments</a>.........<ul>........
1de0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 44 6f 63 2d 63 6f 6d 6d 65 6e 74 73 .....<li><a.id="toc-Doc-comments
1e00 22 20 68 72 65 66 3d 22 23 44 6f 63 2d 63 6f 6d 6d 65 6e 74 73 22 3e 44 6f 63 20 63 6f 6d 6d 65 ".href="#Doc-comments">Doc.comme
1e20 6e 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a nts</a></li>.........</ul></li>.
1e40 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 56 61 6c 75 65 73 22 20 68 ........<li><a.id="toc-Values".h
1e60 72 65 66 3d 22 23 56 61 6c 75 65 73 22 3e 56 61 6c 75 65 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 ref="#Values">Values</a>........
1e80 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 .<ul>.............<li><a.id="toc
1ea0 2d 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 -Primitive-Types".href="#Primiti
1ec0 76 65 2d 54 79 70 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c ve-Types">Primitive.Types</a></l
1ee0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 50 72 i>.............<li><a.id="toc-Pr
1f00 69 6d 69 74 69 76 65 2d 56 61 6c 75 65 73 22 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 imitive-Values".href="#Primitive
1f20 2d 56 61 6c 75 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 56 61 6c 75 65 73 3c 2f 61 3e 3c 2f 6c -Values">Primitive.Values</a></l
1f40 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 74 i>.............<li><a.id="toc-St
1f60 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 2d 61 6e 64 2d 43 68 61 72 61 63 74 65 72 2d 4c 69 74 65 ring-Literals-and-Character-Lite
1f80 72 61 6c 73 22 20 68 72 65 66 3d 22 23 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 2d 61 6e 64 rals".href="#String-Literals-and
1fa0 2d 43 68 61 72 61 63 74 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 20 4c 69 74 65 -Character-Literals">String.Lite
1fc0 72 61 6c 73 20 61 6e 64 20 43 68 61 72 61 63 74 65 72 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 0a rals.and.Character.Literals</a>.
1fe0 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............<ul>................
2000 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 73 63 61 70 65 2d 53 65 71 75 65 6e 63 65 73 .<li><a.id="toc-Escape-Sequences
2020 22 20 68 72 65 66 3d 22 23 45 73 63 61 70 65 2d 53 65 71 75 65 6e 63 65 73 22 3e 45 73 63 61 70 ".href="#Escape-Sequences">Escap
2040 65 20 53 65 71 75 65 6e 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 e.Sequences</a></li>............
2060 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 .....<li><a.id="toc-Multiline-St
2080 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 23 4d 75 6c 74 69 6c 69 6e 65 2d ring-Literals".href="#Multiline-
20a0 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 4d 75 6c 74 69 6c 69 6e 65 20 53 74 72 69 6e String-Literals">Multiline.Strin
20c0 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 g.Literals</a></li>.............
20e0 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 </ul></li>.............<li><a.id
2100 3d 22 74 6f 63 2d 41 73 73 69 67 6e 6d 65 6e 74 22 20 68 72 65 66 3d 22 23 41 73 73 69 67 6e 6d ="toc-Assignment".href="#Assignm
2120 65 6e 74 22 3e 41 73 73 69 67 6e 6d 65 6e 74 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ent">Assignment</a>.............
2140 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 <ul>.................<li><a.id="
2160 74 6f 63 2d 75 6e 64 65 66 69 6e 65 64 22 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 6e 65 64 22 toc-undefined".href="#undefined"
2180 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 >undefined</a></li>.............
21a0 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 </ul></li>.........</ul></li>...
21c0 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 56 61 72 69 61 62 6c 65 73 22 20 ......<li><a.id="toc-Variables".
21e0 68 72 65 66 3d 22 23 56 61 72 69 61 62 6c 65 73 22 3e 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 0a href="#Variables">Variables</a>.
2200 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 ........<ul>.............<li><a.
2220 69 64 3d 22 74 6f 63 2d 47 6c 6f 62 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 20 68 72 65 66 3d 22 id="toc-Global-Variables".href="
2240 23 47 6c 6f 62 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 47 6c 6f 62 61 6c 20 56 61 72 69 61 62 #Global-Variables">Global.Variab
2260 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 les</a></li>.............<li><a.
2280 69 64 3d 22 74 6f 63 2d 54 68 72 65 61 64 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 20 id="toc-Thread-Local-Variables".
22a0 68 72 65 66 3d 22 23 54 68 72 65 61 64 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 54 href="#Thread-Local-Variables">T
22c0 68 72 65 61 64 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 hread.Local.Variables</a></li>..
22e0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4c 6f 63 61 6c 2d ...........<li><a.id="toc-Local-
2300 56 61 72 69 61 62 6c 65 73 22 20 68 72 65 66 3d 22 23 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 Variables".href="#Local-Variable
2320 73 22 3e 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 s">Local.Variables</a></li>.....
2340 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 ....</ul></li>.........<li><a.id
2360 3d 22 74 6f 63 2d 49 6e 74 65 67 65 72 73 22 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 ="toc-Integers".href="#Integers"
2380 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 >Integers</a>.........<ul>......
23a0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 74 65 67 65 72 2d 4c 69 .......<li><a.id="toc-Integer-Li
23c0 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 61 6c 73 22 terals".href="#Integer-Literals"
23e0 3e 49 6e 74 65 67 65 72 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 >Integer.Literals</a></li>......
2400 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 75 6e 74 69 6d 65 2d 49 6e .......<li><a.id="toc-Runtime-In
2420 74 65 67 65 72 2d 56 61 6c 75 65 73 22 20 68 72 65 66 3d 22 23 52 75 6e 74 69 6d 65 2d 49 6e 74 teger-Values".href="#Runtime-Int
2440 65 67 65 72 2d 56 61 6c 75 65 73 22 3e 52 75 6e 74 69 6d 65 20 49 6e 74 65 67 65 72 20 56 61 6c eger-Values">Runtime.Integer.Val
2460 75 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a ues</a></li>.........</ul></li>.
2480 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 46 6c 6f 61 74 73 22 20 68 ........<li><a.id="toc-Floats".h
24a0 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 ref="#Floats">Floats</a>........
24c0 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 .<ul>.............<li><a.id="toc
24e0 2d 46 6c 6f 61 74 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 2d 4c 69 -Float-Literals".href="#Float-Li
2500 74 65 72 61 6c 73 22 3e 46 6c 6f 61 74 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a terals">Float.Literals</a></li>.
2520 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 46 6c 6f 61 74 ............<li><a.id="toc-Float
2540 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 23 46 6c 6f ing-Point-Operations".href="#Flo
2560 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 69 6e 67 ating-Point-Operations">Floating
2580 20 50 6f 69 6e 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 .Point.Operations</a></li>......
25a0 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d ...</ul></li>.........<li><a.id=
25c0 22 74 6f 63 2d 4f 70 65 72 61 74 6f 72 73 22 20 68 72 65 66 3d 22 23 4f 70 65 72 61 74 6f 72 73 "toc-Operators".href="#Operators
25e0 22 3e 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 ">Operators</a>.........<ul>....
2600 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 61 62 6c 65 2d 6f 66 .........<li><a.id="toc-Table-of
2620 2d 4f 70 65 72 61 74 6f 72 73 22 20 68 72 65 66 3d 22 23 54 61 62 6c 65 2d 6f 66 2d 4f 70 65 72 -Operators".href="#Table-of-Oper
2640 61 74 6f 72 73 22 3e 54 61 62 6c 65 20 6f 66 20 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 3c 2f 6c ators">Table.of.Operators</a></l
2660 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 50 72 i>.............<li><a.id="toc-Pr
2680 65 63 65 64 65 6e 63 65 22 20 68 72 65 66 3d 22 23 50 72 65 63 65 64 65 6e 63 65 22 3e 50 72 65 ecedence".href="#Precedence">Pre
26a0 63 65 64 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f cedence</a></li>.........</ul></
26c0 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 41 72 72 61 79 li>.........<li><a.id="toc-Array
26e0 73 22 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 0a 20 20 20 s".href="#Arrays">Arrays</a>....
2700 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d .....<ul>.............<li><a.id=
2720 22 74 6f 63 2d 4d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 2d 41 72 72 61 79 73 22 20 68 72 "toc-Multidimensional-Arrays".hr
2740 65 66 3d 22 23 4d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 2d 41 72 72 61 79 73 22 3e 4d 75 ef="#Multidimensional-Arrays">Mu
2760 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 ltidimensional.Arrays</a></li>..
2780 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 .......</ul></li>.........<li><a
27a0 20 69 64 3d 22 74 6f 63 2d 56 65 63 74 6f 72 73 22 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 .id="toc-Vectors".href="#Vectors
27c0 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 ">Vectors</a>.........<ul>......
27e0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 49 4d 44 22 20 68 72 65 66 .......<li><a.id="toc-SIMD".href
2800 3d 22 23 53 49 4d 44 22 3e 53 49 4d 44 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c ="#SIMD">SIMD</a></li>.........<
2820 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 /ul></li>.........<li><a.id="toc
2840 2d 50 6f 69 6e 74 65 72 73 22 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e -Pointers".href="#Pointers">Poin
2860 74 65 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 ters</a>.........<ul>...........
2880 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 76 6f 6c 61 74 69 6c 65 22 20 68 72 65 66 3d ..<li><a.id="toc-volatile".href=
28a0 22 23 76 6f 6c 61 74 69 6c 65 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 "#volatile">volatile</a></li>...
28c0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 41 6c 69 67 6e 6d 65 ..........<li><a.id="toc-Alignme
28e0 6e 74 22 20 68 72 65 66 3d 22 23 41 6c 69 67 6e 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c nt".href="#Alignment">Alignment<
2900 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 /a></li>.............<li><a.id="
2920 74 6f 63 2d 61 6c 6c 6f 77 7a 65 72 6f 22 20 68 72 65 66 3d 22 23 61 6c 6c 6f 77 7a 65 72 6f 22 toc-allowzero".href="#allowzero"
2940 3e 61 6c 6c 6f 77 7a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c >allowzero</a></li>.........</ul
2960 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 6c ></li>.........<li><a.id="toc-Sl
2980 69 63 65 73 22 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c ices".href="#Slices">Slices</a><
29a0 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 74 72 75 /li>.........<li><a.id="toc-stru
29c0 63 74 22 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 0a 20 20 ct".href="#struct">struct</a>...
29e0 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 ......<ul>.............<li><a.id
2a00 3d 22 74 6f 63 2d 44 65 66 61 75 6c 74 2d 46 69 65 6c 64 2d 56 61 6c 75 65 73 22 20 68 72 65 66 ="toc-Default-Field-Values".href
2a20 3d 22 23 44 65 66 61 75 6c 74 2d 46 69 65 6c 64 2d 56 61 6c 75 65 73 22 3e 44 65 66 61 75 6c 74 ="#Default-Field-Values">Default
2a40 20 46 69 65 6c 64 20 56 61 6c 75 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 .Field.Values</a></li>..........
2a60 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 78 74 65 72 6e 2d 73 74 72 75 63 74 22 ...<li><a.id="toc-extern-struct"
2a80 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 73 74 72 75 63 74 22 3e 65 78 74 65 72 6e 20 73 74 .href="#extern-struct">extern.st
2aa0 72 75 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 ruct</a></li>.............<li><a
2ac0 20 69 64 3d 22 74 6f 63 2d 70 61 63 6b 65 64 2d 73 74 72 75 63 74 22 20 68 72 65 66 3d 22 23 70 .id="toc-packed-struct".href="#p
2ae0 61 63 6b 65 64 2d 73 74 72 75 63 74 22 3e 70 61 63 6b 65 64 20 73 74 72 75 63 74 3c 2f 61 3e 3c acked-struct">packed.struct</a><
2b00 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d /li>.............<li><a.id="toc-
2b20 73 74 72 75 63 74 2d 4e 61 6d 69 6e 67 22 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 2d 4e 61 6d struct-Naming".href="#struct-Nam
2b40 69 6e 67 22 3e 73 74 72 75 63 74 20 4e 61 6d 69 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ing">struct.Naming</a></li>.....
2b60 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 ....</ul></li>.........<li><a.id
2b80 3d 22 74 6f 63 2d 65 6e 75 6d 22 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 ="toc-enum".href="#enum">enum</a
2ba0 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c >.........<ul>.............<li><
2bc0 61 20 69 64 3d 22 74 6f 63 2d 65 78 74 65 72 6e 2d 65 6e 75 6d 22 20 68 72 65 66 3d 22 23 65 78 a.id="toc-extern-enum".href="#ex
2be0 74 65 72 6e 2d 65 6e 75 6d 22 3e 65 78 74 65 72 6e 20 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a tern-enum">extern.enum</a></li>.
2c00 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 70 61 63 6b 65 ............<li><a.id="toc-packe
2c20 64 2d 65 6e 75 6d 22 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 65 6e 75 6d 22 3e 70 61 63 6b d-enum".href="#packed-enum">pack
2c40 65 64 20 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 ed.enum</a></li>.............<li
2c60 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d ><a.id="toc-Enum-Literals".href=
2c80 22 23 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 3e 45 6e 75 6d 20 4c 69 74 65 72 61 6c 73 3c 2f "#Enum-Literals">Enum.Literals</
2ca0 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 a></li>.........</ul></li>......
2cc0 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 75 6e 69 6f 6e 22 20 68 72 65 66 3d 22 23 ...<li><a.id="toc-union".href="#
2ce0 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 union">union</a>.........<ul>...
2d00 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 61 67 67 65 64 2d ..........<li><a.id="toc-Tagged-
2d20 75 6e 69 6f 6e 22 20 68 72 65 66 3d 22 23 54 61 67 67 65 64 2d 75 6e 69 6f 6e 22 3e 54 61 67 67 union".href="#Tagged-union">Tagg
2d40 65 64 20 75 6e 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c ed.union</a></li>.............<l
2d60 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 78 74 65 72 6e 2d 75 6e 69 6f 6e 22 20 68 72 65 66 3d i><a.id="toc-extern-union".href=
2d80 22 23 65 78 74 65 72 6e 2d 75 6e 69 6f 6e 22 3e 65 78 74 65 72 6e 20 75 6e 69 6f 6e 3c 2f 61 3e "#extern-union">extern.union</a>
2da0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 </li>.............<li><a.id="toc
2dc0 2d 70 61 63 6b 65 64 2d 75 6e 69 6f 6e 22 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 75 6e 69 -packed-union".href="#packed-uni
2de0 6f 6e 22 3e 70 61 63 6b 65 64 20 75 6e 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 on">packed.union</a></li>.......
2e00 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 ..</ul></li>.........<li><a.id="
2e20 74 6f 63 2d 62 6c 6f 63 6b 73 22 20 68 72 65 66 3d 22 23 62 6c 6f 63 6b 73 22 3e 62 6c 6f 63 6b toc-blocks".href="#blocks">block
2e40 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c s</a>.........<ul>.............<
2e60 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 68 61 64 6f 77 69 6e 67 22 20 68 72 65 66 3d 22 23 li><a.id="toc-Shadowing".href="#
2e80 53 68 61 64 6f 77 69 6e 67 22 3e 53 68 61 64 6f 77 69 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 Shadowing">Shadowing</a></li>...
2ea0 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 ......</ul></li>.........<li><a.
2ec0 69 64 3d 22 74 6f 63 2d 73 77 69 74 63 68 22 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 id="toc-switch".href="#switch">s
2ee0 77 69 74 63 68 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 witch</a>.........<ul>..........
2f00 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 78 68 61 75 73 74 69 76 65 2d 53 77 69 ...<li><a.id="toc-Exhaustive-Swi
2f20 74 63 68 69 6e 67 22 20 68 72 65 66 3d 22 23 45 78 68 61 75 73 74 69 76 65 2d 53 77 69 74 63 68 tching".href="#Exhaustive-Switch
2f40 69 6e 67 22 3e 45 78 68 61 75 73 74 69 76 65 20 53 77 69 74 63 68 69 6e 67 3c 2f 61 3e 3c 2f 6c ing">Exhaustive.Switching</a></l
2f60 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 77 i>.............<li><a.id="toc-Sw
2f80 69 74 63 68 69 6e 67 2d 77 69 74 68 2d 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 itching-with-Enum-Literals".href
2fa0 3d 22 23 53 77 69 74 63 68 69 6e 67 2d 77 69 74 68 2d 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 ="#Switching-with-Enum-Literals"
2fc0 3e 53 77 69 74 63 68 69 6e 67 20 77 69 74 68 20 45 6e 75 6d 20 4c 69 74 65 72 61 6c 73 3c 2f 61 >Switching.with.Enum.Literals</a
2fe0 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 ></li>.........</ul></li>.......
3000 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 77 68 69 6c 65 22 20 68 72 65 66 3d 22 23 77 ..<li><a.id="toc-while".href="#w
3020 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 hile">while</a>.........<ul>....
3040 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4c 61 62 65 6c 65 64 2d .........<li><a.id="toc-Labeled-
3060 77 68 69 6c 65 22 20 68 72 65 66 3d 22 23 4c 61 62 65 6c 65 64 2d 77 68 69 6c 65 22 3e 4c 61 62 while".href="#Labeled-while">Lab
3080 65 6c 65 64 20 77 68 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 eled.while</a></li>.............
30a0 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 77 68 69 6c 65 2d 77 69 74 68 2d 4f 70 74 69 6f 6e <li><a.id="toc-while-with-Option
30c0 61 6c 73 22 20 68 72 65 66 3d 22 23 77 68 69 6c 65 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 als".href="#while-with-Optionals
30e0 22 3e 77 68 69 6c 65 20 77 69 74 68 20 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a ">while.with.Optionals</a></li>.
3100 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 77 68 69 6c 65 ............<li><a.id="toc-while
3120 2d 77 69 74 68 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 20 68 72 65 66 3d 22 23 77 68 69 6c 65 -with-Error-Unions".href="#while
3140 2d 77 69 74 68 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e 77 68 69 6c 65 20 77 69 74 68 20 45 -with-Error-Unions">while.with.E
3160 72 72 6f 72 20 55 6e 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 rror.Unions</a></li>............
3180 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 20 68 72 .<li><a.id="toc-inline-while".hr
31a0 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 3e 69 6e 6c 69 6e 65 20 77 68 69 6c 65 3c ef="#inline-while">inline.while<
31c0 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 /a></li>.........</ul></li>.....
31e0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 6f 72 22 20 68 72 65 66 3d 22 23 66 ....<li><a.id="toc-for".href="#f
3200 6f 72 22 3e 66 6f 72 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 or">for</a>.........<ul>........
3220 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4c 61 62 65 6c 65 64 2d 66 6f 72 22 .....<li><a.id="toc-Labeled-for"
3240 20 68 72 65 66 3d 22 23 4c 61 62 65 6c 65 64 2d 66 6f 72 22 3e 4c 61 62 65 6c 65 64 20 66 6f 72 .href="#Labeled-for">Labeled.for
3260 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d </a></li>.............<li><a.id=
3280 22 74 6f 63 2d 69 6e 6c 69 6e 65 2d 66 6f 72 22 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 66 "toc-inline-for".href="#inline-f
32a0 6f 72 22 3e 69 6e 6c 69 6e 65 20 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 or">inline.for</a></li>.........
32c0 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f </ul></li>.........<li><a.id="to
32e0 63 2d 69 66 22 20 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 c-if".href="#if">if</a></li>....
3300 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 64 65 66 65 72 22 20 68 72 65 66 3d .....<li><a.id="toc-defer".href=
3320 22 23 64 65 66 65 72 22 3e 64 65 66 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 "#defer">defer</a></li>.........
3340 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 75 6e 72 65 61 63 68 61 62 6c 65 22 20 68 72 65 66 <li><a.id="toc-unreachable".href
3360 3d 22 23 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 61 3e 0a ="#unreachable">unreachable</a>.
3380 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 ........<ul>.............<li><a.
33a0 69 64 3d 22 74 6f 63 2d 42 61 73 69 63 73 22 20 68 72 65 66 3d 22 23 42 61 73 69 63 73 22 3e 42 id="toc-Basics".href="#Basics">B
33c0 61 73 69 63 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c asics</a></li>.............<li><
33e0 61 20 69 64 3d 22 74 6f 63 2d 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 20 68 72 65 66 3d a.id="toc-At-Compile-Time".href=
3400 22 23 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 3e 41 74 20 43 6f 6d 70 69 6c 65 2d 54 69 "#At-Compile-Time">At.Compile-Ti
3420 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 me</a></li>.........</ul></li>..
3440 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6e 6f 72 65 74 75 72 6e 22 20 .......<li><a.id="toc-noreturn".
3460 68 72 65 66 3d 22 23 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 61 3e 3c 2f 6c href="#noreturn">noreturn</a></l
3480 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 46 75 6e 63 74 69 i>.........<li><a.id="toc-Functi
34a0 6f 6e 73 22 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e 46 75 6e 63 74 69 6f 6e 73 ons".href="#Functions">Functions
34c0 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c </a>.........<ul>.............<l
34e0 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 2d 50 61 72 61 6d i><a.id="toc-Pass-by-value-Param
3500 65 74 65 72 73 22 20 68 72 65 66 3d 22 23 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 2d 50 61 72 61 eters".href="#Pass-by-value-Para
3520 6d 65 74 65 72 73 22 3e 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 20 50 61 72 61 6d 65 74 65 72 73 meters">Pass-by-value.Parameters
3540 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d </a></li>.............<li><a.id=
3560 22 74 6f 63 2d 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 6f 6e 22 20 68 72 65 66 3d 22 "toc-Function-Reflection".href="
3580 23 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 6f 6e 22 3e 46 75 6e 63 74 69 6f 6e 20 52 #Function-Reflection">Function.R
35a0 65 66 6c 65 63 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e eflection</a></li>.........</ul>
35c0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 72 72 </li>.........<li><a.id="toc-Err
35e0 6f 72 73 22 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 0a 20 ors".href="#Errors">Errors</a>..
3600 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 .......<ul>.............<li><a.i
3620 64 3d 22 74 6f 63 2d 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 20 68 72 65 66 3d 22 23 45 72 d="toc-Error-Set-Type".href="#Er
3640 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 3e 45 72 72 6f 72 20 53 65 74 20 54 79 70 65 3c 2f 61 3e ror-Set-Type">Error.Set.Type</a>
3660 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............<ul>...............
3680 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f ..<li><a.id="toc-The-Global-Erro
36a0 72 2d 53 65 74 22 20 68 72 65 66 3d 22 23 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f 72 2d 53 r-Set".href="#The-Global-Error-S
36c0 65 74 22 3e 54 68 65 20 47 6c 6f 62 61 6c 20 45 72 72 6f 72 20 53 65 74 3c 2f 61 3e 3c 2f 6c 69 et">The.Global.Error.Set</a></li
36e0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 >.............</ul></li>........
3700 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d .....<li><a.id="toc-Error-Union-
3720 54 79 70 65 22 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 3e 45 Type".href="#Error-Union-Type">E
3740 72 72 6f 72 20 55 6e 69 6f 6e 20 54 79 70 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 rror.Union.Type</a>.............
3760 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 <ul>.................<li><a.id="
3780 74 6f 63 2d 63 61 74 63 68 22 20 68 72 65 66 3d 22 23 63 61 74 63 68 22 3e 63 61 74 63 68 3c 2f toc-catch".href="#catch">catch</
37a0 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 a></li>.................<li><a.i
37c0 64 3d 22 74 6f 63 2d 74 72 79 22 20 68 72 65 66 3d 22 23 74 72 79 22 3e 74 72 79 3c 2f 61 3e 3c d="toc-try".href="#try">try</a><
37e0 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 /li>.................<li><a.id="
3800 74 6f 63 2d 65 72 72 64 65 66 65 72 22 20 68 72 65 66 3d 22 23 65 72 72 64 65 66 65 72 22 3e 65 toc-errdefer".href="#errdefer">e
3820 72 72 64 65 66 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rrdefer</a></li>................
3840 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4d 65 72 67 69 6e 67 2d 45 72 72 6f 72 2d 53 65 .<li><a.id="toc-Merging-Error-Se
3860 74 73 22 20 68 72 65 66 3d 22 23 4d 65 72 67 69 6e 67 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 4d ts".href="#Merging-Error-Sets">M
3880 65 72 67 69 6e 67 20 45 72 72 6f 72 20 53 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 erging.Error.Sets</a></li>......
38a0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 66 65 72 72 ...........<li><a.id="toc-Inferr
38c0 65 64 2d 45 72 72 6f 72 2d 53 65 74 73 22 20 68 72 65 66 3d 22 23 49 6e 66 65 72 72 65 64 2d 45 ed-Error-Sets".href="#Inferred-E
38e0 72 72 6f 72 2d 53 65 74 73 22 3e 49 6e 66 65 72 72 65 64 20 45 72 72 6f 72 20 53 65 74 73 3c 2f rror-Sets">Inferred.Error.Sets</
3900 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 a></li>.............</ul></li>..
3920 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 72 72 6f 72 2d ...........<li><a.id="toc-Error-
3940 52 65 74 75 72 6e 2d 54 72 61 63 65 73 22 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 52 65 74 75 Return-Traces".href="#Error-Retu
3960 72 6e 2d 54 72 61 63 65 73 22 3e 45 72 72 6f 72 20 52 65 74 75 72 6e 20 54 72 61 63 65 73 3c 2f rn-Traces">Error.Return.Traces</
3980 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 a>.............<ul>.............
39a0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f ....<li><a.id="toc-Implementatio
39c0 6e 2d 44 65 74 61 69 6c 73 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e n-Details".href="#Implementation
39e0 2d 44 65 74 61 69 6c 73 22 3e 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 44 65 74 61 69 6c 73 -Details">Implementation.Details
3a00 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e </a></li>.............</ul></li>
3a20 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e .........</ul></li>.........<li>
3a40 3c 61 20 69 64 3d 22 74 6f 63 2d 4f 70 74 69 6f 6e 61 6c 73 22 20 68 72 65 66 3d 22 23 4f 70 74 <a.id="toc-Optionals".href="#Opt
3a60 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 ionals">Optionals</a>.........<u
3a80 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4f 70 l>.............<li><a.id="toc-Op
3aa0 74 69 6f 6e 61 6c 2d 54 79 70 65 22 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 54 79 70 tional-Type".href="#Optional-Typ
3ac0 65 22 3e 4f 70 74 69 6f 6e 61 6c 20 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 e">Optional.Type</a></li>.......
3ae0 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6e 75 6c 6c 22 20 68 72 65 66 3d ......<li><a.id="toc-null".href=
3b00 22 23 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 "#null">null</a></li>...........
3b20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 ..<li><a.id="toc-Optional-Pointe
3b40 72 73 22 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 22 3e 4f 70 rs".href="#Optional-Pointers">Op
3b60 74 69 6f 6e 61 6c 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 tional.Pointers</a></li>........
3b80 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 .</ul></li>.........<li><a.id="t
3ba0 6f 63 2d 43 61 73 74 69 6e 67 22 20 68 72 65 66 3d 22 23 43 61 73 74 69 6e 67 22 3e 43 61 73 74 oc-Casting".href="#Casting">Cast
3bc0 69 6e 67 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 ing</a>.........<ul>............
3be0 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 20 .<li><a.id="toc-Implicit-Casts".
3c00 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 49 6d 70 6c 69 63 69 74 20 href="#Implicit-Casts">Implicit.
3c20 43 61 73 74 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 Casts</a>.............<ul>......
3c40 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6c 69 63 ...........<li><a.id="toc-Implic
3c60 69 74 2d 43 61 73 74 2d 53 74 72 69 63 74 65 72 2d 51 75 61 6c 69 66 69 63 61 74 69 6f 6e 22 20 it-Cast-Stricter-Qualification".
3c80 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 53 74 72 69 63 74 65 72 2d 51 75 href="#Implicit-Cast-Stricter-Qu
3ca0 61 6c 69 66 69 63 61 74 69 6f 6e 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 73 74 3a 20 53 74 72 69 alification">Implicit.Cast:.Stri
3cc0 63 74 65 72 20 51 75 61 6c 69 66 69 63 61 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 cter.Qualification</a></li>.....
3ce0 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6c 69 ............<li><a.id="toc-Impli
3d00 63 69 74 2d 43 61 73 74 2d 49 6e 74 65 67 65 72 2d 61 6e 64 2d 46 6c 6f 61 74 2d 57 69 64 65 6e cit-Cast-Integer-and-Float-Widen
3d20 69 6e 67 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 49 6e 74 65 67 65 ing".href="#Implicit-Cast-Intege
3d40 72 2d 61 6e 64 2d 46 6c 6f 61 74 2d 57 69 64 65 6e 69 6e 67 22 3e 49 6d 70 6c 69 63 69 74 20 43 r-and-Float-Widening">Implicit.C
3d60 61 73 74 3a 20 49 6e 74 65 67 65 72 20 61 6e 64 20 46 6c 6f 61 74 20 57 69 64 65 6e 69 6e 67 3c ast:.Integer.and.Float.Widening<
3d80 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 /a></li>.................<li><a.
3da0 69 64 3d 22 74 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 41 72 72 61 79 73 2d 61 6e 64 id="toc-Implicit-Cast-Arrays-and
3dc0 2d 50 6f 69 6e 74 65 72 73 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d -Pointers".href="#Implicit-Cast-
3de0 41 72 72 61 79 73 2d 61 6e 64 2d 50 6f 69 6e 74 65 72 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 Arrays-and-Pointers">Implicit.Ca
3e00 73 74 3a 20 41 72 72 61 79 73 20 61 6e 64 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e st:.Arrays.and.Pointers</a></li>
3e20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d .................<li><a.id="toc-
3e40 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 4f 70 74 69 6f 6e 61 6c 73 22 20 68 72 65 66 3d 22 23 Implicit-Cast-Optionals".href="#
3e60 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 49 6d 70 6c 69 63 69 Implicit-Cast-Optionals">Implici
3e80 74 20 43 61 73 74 3a 20 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 t.Cast:.Optionals</a></li>......
3ea0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6c 69 63 ...........<li><a.id="toc-Implic
3ec0 69 74 2d 43 61 73 74 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 20 68 72 65 66 3d 22 23 49 6d 70 it-Cast-Error-Unions".href="#Imp
3ee0 6c 69 63 69 74 2d 43 61 73 74 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e 49 6d 70 6c 69 63 69 licit-Cast-Error-Unions">Implici
3f00 74 20 43 61 73 74 3a 20 45 72 72 6f 72 20 55 6e 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 t.Cast:.Error.Unions</a></li>...
3f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 ..............<li><a.id="toc-Imp
3f40 6c 69 63 69 74 2d 43 61 73 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 4b 6e 6f 77 6e 2d 4e 75 licit-Cast-Compile-Time-Known-Nu
3f60 6d 62 65 72 73 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 43 6f 6d 70 mbers".href="#Implicit-Cast-Comp
3f80 69 6c 65 2d 54 69 6d 65 2d 4b 6e 6f 77 6e 2d 4e 75 6d 62 65 72 73 22 3e 49 6d 70 6c 69 63 69 74 ile-Time-Known-Numbers">Implicit
3fa0 20 43 61 73 74 3a 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 4b 6e 6f 77 6e 20 4e 75 6d 62 65 72 .Cast:.Compile-Time.Known.Number
3fc0 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c s</a></li>.................<li><
3fe0 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 75 6e 69 6f 6e 73 2d 61 a.id="toc-Implicit-Cast-unions-a
4000 6e 64 2d 65 6e 75 6d 73 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 75 nd-enums".href="#Implicit-Cast-u
4020 6e 69 6f 6e 73 2d 61 6e 64 2d 65 6e 75 6d 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 73 74 3a 20 nions-and-enums">Implicit.Cast:.
4040 75 6e 69 6f 6e 73 20 61 6e 64 20 65 6e 75 6d 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 unions.and.enums</a></li>.......
4060 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6c 69 63 69 ..........<li><a.id="toc-Implici
4080 74 2d 43 61 73 74 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 20 68 72 65 66 3d 22 23 49 6d t-Cast-Zero-Bit-Types".href="#Im
40a0 70 6c 69 63 69 74 2d 43 61 73 74 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e 49 6d 70 6c plicit-Cast-Zero-Bit-Types">Impl
40c0 69 63 69 74 20 43 61 73 74 3a 20 5a 65 72 6f 20 42 69 74 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c icit.Cast:.Zero.Bit.Types</a></l
40e0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f i>.................<li><a.id="to
4100 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 75 6e 64 65 66 69 6e 65 64 22 20 68 72 65 66 3d c-Implicit-Cast-undefined".href=
4120 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 75 6e 64 65 66 69 6e 65 64 22 3e 49 6d 70 6c 69 "#Implicit-Cast-undefined">Impli
4140 63 69 74 20 43 61 73 74 3a 20 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 cit.Cast:.undefined</a></li>....
4160 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........</ul></li>.............
4180 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 78 70 6c 69 63 69 74 2d 43 61 73 74 73 22 20 68 <li><a.id="toc-Explicit-Casts".h
41a0 72 65 66 3d 22 23 45 78 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 45 78 70 6c 69 63 69 74 20 43 ref="#Explicit-Casts">Explicit.C
41c0 61 73 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 asts</a></li>.............<li><a
41e0 20 69 64 3d 22 74 6f 63 2d 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 20 68 .id="toc-Peer-Type-Resolution".h
4200 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 ref="#Peer-Type-Resolution">Peer
4220 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 .Type.Resolution</a></li>.......
4240 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 ..</ul></li>.........<li><a.id="
4260 74 6f 63 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 20 68 72 65 66 3d 22 23 5a 65 72 6f 2d toc-Zero-Bit-Types".href="#Zero-
4280 42 69 74 2d 54 79 70 65 73 22 3e 5a 65 72 6f 20 42 69 74 20 54 79 70 65 73 3c 2f 61 3e 0a 20 20 Bit-Types">Zero.Bit.Types</a>...
42a0 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 ......<ul>.............<li><a.id
42c0 3d 22 74 6f 63 2d 76 6f 69 64 22 20 68 72 65 66 3d 22 23 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 61 ="toc-void".href="#void">void</a
42e0 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f ></li>.............<li><a.id="to
4300 63 2d 50 6f 69 6e 74 65 72 73 2d 74 6f 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 20 68 72 c-Pointers-to-Zero-Bit-Types".hr
4320 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 2d 74 6f 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 ef="#Pointers-to-Zero-Bit-Types"
4340 3e 50 6f 69 6e 74 65 72 73 20 74 6f 20 5a 65 72 6f 20 42 69 74 20 54 79 70 65 73 3c 2f 61 3e 3c >Pointers.to.Zero.Bit.Types</a><
4360 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 /li>.........</ul></li>.........
4380 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 65 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 2d 53 <li><a.id="toc-Result-Location-S
43a0 65 6d 61 6e 74 69 63 73 22 20 68 72 65 66 3d 22 23 52 65 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e emantics".href="#Result-Location
43c0 2d 53 65 6d 61 6e 74 69 63 73 22 3e 52 65 73 75 6c 74 20 4c 6f 63 61 74 69 6f 6e 20 53 65 6d 61 -Semantics">Result.Location.Sema
43e0 6e 74 69 63 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 ntics</a></li>.........<li><a.id
4400 3d 22 74 6f 63 2d 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 22 20 68 72 65 66 3d 22 23 75 73 69 ="toc-usingnamespace".href="#usi
4420 6e 67 6e 61 6d 65 73 70 61 63 65 22 3e 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 3c 2f 61 3e 3c ngnamespace">usingnamespace</a><
4440 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 6f 6d 70 /li>.........<li><a.id="toc-comp
4460 74 69 6d 65 22 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c time".href="#comptime">comptime<
4480 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 /a>.........<ul>.............<li
44a0 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 74 72 6f 64 75 63 69 6e 67 2d 74 68 65 2d 43 6f 6d 70 ><a.id="toc-Introducing-the-Comp
44c0 69 6c 65 2d 54 69 6d 65 2d 43 6f 6e 63 65 70 74 22 20 68 72 65 66 3d 22 23 49 6e 74 72 6f 64 75 ile-Time-Concept".href="#Introdu
44e0 63 69 6e 67 2d 74 68 65 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 43 6f 6e 63 65 70 74 22 3e 49 cing-the-Compile-Time-Concept">I
4500 6e 74 72 6f 64 75 63 69 6e 67 20 74 68 65 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 43 6f 6e 63 ntroducing.the.Compile-Time.Conc
4520 65 70 74 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 ept</a>.............<ul>........
4540 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 6f 6d 70 69 6c 65 2d .........<li><a.id="toc-Compile-
4560 54 69 6d 65 2d 50 61 72 61 6d 65 74 65 72 73 22 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d Time-Parameters".href="#Compile-
4580 54 69 6d 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 50 61 Time-Parameters">Compile-Time.Pa
45a0 72 61 6d 65 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rameters</a></li>...............
45c0 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 56 61 ..<li><a.id="toc-Compile-Time-Va
45e0 72 69 61 62 6c 65 73 22 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 56 61 72 riables".href="#Compile-Time-Var
4600 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 56 61 72 69 61 62 6c 65 73 3c 2f iables">Compile-Time.Variables</
4620 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 a></li>.................<li><a.i
4640 64 3d 22 74 6f 63 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 45 78 70 72 65 73 73 69 6f 6e 73 22 d="toc-Compile-Time-Expressions"
4660 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 45 78 70 72 65 73 73 69 6f 6e 73 .href="#Compile-Time-Expressions
4680 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 45 78 70 72 65 73 73 69 6f 6e 73 3c 2f 61 3e 3c 2f ">Compile-Time.Expressions</a></
46a0 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 li>.............</ul></li>......
46c0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 47 65 6e 65 72 69 63 2d 44 61 .......<li><a.id="toc-Generic-Da
46e0 74 61 2d 53 74 72 75 63 74 75 72 65 73 22 20 68 72 65 66 3d 22 23 47 65 6e 65 72 69 63 2d 44 61 ta-Structures".href="#Generic-Da
4700 74 61 2d 53 74 72 75 63 74 75 72 65 73 22 3e 47 65 6e 65 72 69 63 20 44 61 74 61 20 53 74 72 75 ta-Structures">Generic.Data.Stru
4720 63 74 75 72 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e ctures</a></li>.............<li>
4740 3c 61 20 69 64 3d 22 74 6f 63 2d 43 61 73 65 2d 53 74 75 64 79 2d 70 72 69 6e 74 66 2d 69 6e 2d <a.id="toc-Case-Study-printf-in-
4760 5a 69 67 22 20 68 72 65 66 3d 22 23 43 61 73 65 2d 53 74 75 64 79 2d 70 72 69 6e 74 66 2d 69 6e Zig".href="#Case-Study-printf-in
4780 2d 5a 69 67 22 3e 43 61 73 65 20 53 74 75 64 79 3a 20 70 72 69 6e 74 66 20 69 6e 20 5a 69 67 3c -Zig">Case.Study:.printf.in.Zig<
47a0 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 /a></li>.........</ul></li>.....
47c0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 41 73 73 65 6d 62 6c 79 22 20 68 72 65 ....<li><a.id="toc-Assembly".hre
47e0 66 3d 22 23 41 73 73 65 6d 62 6c 79 22 3e 41 73 73 65 6d 62 6c 79 3c 2f 61 3e 0a 20 20 20 20 20 f="#Assembly">Assembly</a>......
4800 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 ...<ul>.............<li><a.id="t
4820 6f 63 2d 4f 75 74 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 20 68 72 65 66 3d 22 23 4f 75 oc-Output-Constraints".href="#Ou
4840 74 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 3e 4f 75 74 70 75 74 20 43 6f 6e 73 74 72 61 tput-Constraints">Output.Constra
4860 69 6e 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 ints</a></li>.............<li><a
4880 20 69 64 3d 22 74 6f 63 2d 49 6e 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 20 68 72 65 66 .id="toc-Input-Constraints".href
48a0 3d 22 23 49 6e 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 3e 49 6e 70 75 74 20 43 6f 6e 73 ="#Input-Constraints">Input.Cons
48c0 74 72 61 69 6e 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 traints</a></li>.............<li
48e0 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 6c 6f 62 62 65 72 73 22 20 68 72 65 66 3d 22 23 43 6c 6f ><a.id="toc-Clobbers".href="#Clo
4900 62 62 65 72 73 22 3e 43 6c 6f 62 62 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 bbers">Clobbers</a></li>........
4920 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 47 6c 6f 62 61 6c 2d 41 73 73 65 6d .....<li><a.id="toc-Global-Assem
4940 62 6c 79 22 20 68 72 65 66 3d 22 23 47 6c 6f 62 61 6c 2d 41 73 73 65 6d 62 6c 79 22 3e 47 6c 6f bly".href="#Global-Assembly">Glo
4960 62 61 6c 20 41 73 73 65 6d 62 6c 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f bal.Assembly</a></li>.........</
4980 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d ul></li>.........<li><a.id="toc-
49a0 41 74 6f 6d 69 63 73 22 20 68 72 65 66 3d 22 23 41 74 6f 6d 69 63 73 22 3e 41 74 6f 6d 69 63 73 Atomics".href="#Atomics">Atomics
49c0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 </a></li>.........<li><a.id="toc
49e0 2d 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 -Async-Functions".href="#Async-F
4a00 75 6e 63 74 69 6f 6e 73 22 3e 41 73 79 6e 63 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 0a 20 20 unctions">Async.Functions</a>...
4a20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 ......<ul>.............<li><a.id
4a40 3d 22 74 6f 63 2d 53 75 73 70 65 6e 64 2d 61 6e 64 2d 52 65 73 75 6d 65 22 20 68 72 65 66 3d 22 ="toc-Suspend-and-Resume".href="
4a60 23 53 75 73 70 65 6e 64 2d 61 6e 64 2d 52 65 73 75 6d 65 22 3e 53 75 73 70 65 6e 64 20 61 6e 64 #Suspend-and-Resume">Suspend.and
4a80 20 52 65 73 75 6d 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 .Resume</a>.............<ul>....
4aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 65 73 75 .............<li><a.id="toc-Resu
4ac0 6d 69 6e 67 2d 66 72 6f 6d 2d 53 75 73 70 65 6e 64 2d 42 6c 6f 63 6b 73 22 20 68 72 65 66 3d 22 ming-from-Suspend-Blocks".href="
4ae0 23 52 65 73 75 6d 69 6e 67 2d 66 72 6f 6d 2d 53 75 73 70 65 6e 64 2d 42 6c 6f 63 6b 73 22 3e 52 #Resuming-from-Suspend-Blocks">R
4b00 65 73 75 6d 69 6e 67 20 66 72 6f 6d 20 53 75 73 70 65 6e 64 20 42 6c 6f 63 6b 73 3c 2f 61 3e 3c esuming.from.Suspend.Blocks</a><
4b20 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 /li>.............</ul></li>.....
4b40 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 41 73 79 6e 63 2d 61 6e 64 ........<li><a.id="toc-Async-and
4b60 2d 41 77 61 69 74 22 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 61 6e 64 2d 41 77 61 69 74 22 3e -Await".href="#Async-and-Await">
4b80 41 73 79 6e 63 20 61 6e 64 20 41 77 61 69 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 Async.and.Await</a></li>........
4ba0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 41 73 79 6e 63 2d 46 75 6e 63 74 69 .....<li><a.id="toc-Async-Functi
4bc0 6f 6e 2d 45 78 61 6d 70 6c 65 22 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f on-Example".href="#Async-Functio
4be0 6e 2d 45 78 61 6d 70 6c 65 22 3e 41 73 79 6e 63 20 46 75 6e 63 74 69 6f 6e 20 45 78 61 6d 70 6c n-Example">Async.Function.Exampl
4c00 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 e</a></li>.........</ul></li>...
4c20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 42 75 69 6c 74 69 6e 2d 46 75 6e ......<li><a.id="toc-Builtin-Fun
4c40 63 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 23 42 75 69 6c 74 69 6e 2d 46 75 6e 63 74 69 6f 6e 73 ctions".href="#Builtin-Functions
4c60 22 3e 42 75 69 6c 74 69 6e 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 ">Builtin.Functions</a>.........
4c80 3c 75 6c 20 73 74 79 6c 65 3d 22 63 6f 6c 75 6d 6e 73 3a 20 33 22 3e 0a 20 20 20 20 20 20 20 20 <ul.style="columns:.3">.........
4ca0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 61 64 64 57 69 74 68 4f 76 65 72 66 6c ....<li><a.id="toc-addWithOverfl
4cc0 6f 77 22 20 68 72 65 66 3d 22 23 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 61 64 64 ow".href="#addWithOverflow">@add
4ce0 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 WithOverflow</a></li>...........
4d00 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 61 6c 69 67 6e 43 61 73 74 22 20 68 72 65 66 ..<li><a.id="toc-alignCast".href
4d20 3d 22 23 61 6c 69 67 6e 43 61 73 74 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 ="#alignCast">@alignCast</a></li
4d40 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 61 6c 69 >.............<li><a.id="toc-ali
4d60 67 6e 4f 66 22 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f gnOf".href="#alignOf">@alignOf</
4d80 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 a></li>.............<li><a.id="t
4da0 6f 63 2d 41 72 67 54 79 70 65 22 20 68 72 65 66 3d 22 23 41 72 67 54 79 70 65 22 3e 40 41 72 67 oc-ArgType".href="#ArgType">@Arg
4dc0 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 Type</a></li>.............<li><a
4de0 20 69 64 3d 22 74 6f 63 2d 61 73 79 6e 63 43 61 6c 6c 22 20 68 72 65 66 3d 22 23 61 73 79 6e 63 .id="toc-asyncCall".href="#async
4e00 43 61 6c 6c 22 3e 40 61 73 79 6e 63 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 Call">@asyncCall</a></li>.......
4e20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 61 74 6f 6d 69 63 4c 6f 61 64 22 ......<li><a.id="toc-atomicLoad"
4e40 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 4c 6f 61 64 22 3e 40 61 74 6f 6d 69 63 4c 6f 61 64 3c .href="#atomicLoad">@atomicLoad<
4e60 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 /a></li>.............<li><a.id="
4e80 74 6f 63 2d 61 74 6f 6d 69 63 52 6d 77 22 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 52 6d 77 22 toc-atomicRmw".href="#atomicRmw"
4ea0 3e 40 61 74 6f 6d 69 63 52 6d 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 >@atomicRmw</a></li>............
4ec0 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 62 69 74 43 61 73 74 22 20 68 72 65 66 3d 22 23 .<li><a.id="toc-bitCast".href="#
4ee0 62 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 bitCast">@bitCast</a></li>......
4f00 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 62 69 74 4f 66 66 73 65 74 4f .......<li><a.id="toc-bitOffsetO
4f20 66 22 20 68 72 65 66 3d 22 23 62 69 74 4f 66 66 73 65 74 4f 66 22 3e 40 62 69 74 4f 66 66 73 65 f".href="#bitOffsetOf">@bitOffse
4f40 74 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 tOf</a></li>.............<li><a.
4f60 69 64 3d 22 74 6f 63 2d 62 6f 6f 6c 54 6f 49 6e 74 22 20 68 72 65 66 3d 22 23 62 6f 6f 6c 54 6f id="toc-boolToInt".href="#boolTo
4f80 49 6e 74 22 3e 40 62 6f 6f 6c 54 6f 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 Int">@boolToInt</a></li>........
4fa0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 62 72 65 61 6b 70 6f 69 6e 74 22 20 .....<li><a.id="toc-breakpoint".
4fc0 68 72 65 66 3d 22 23 62 72 65 61 6b 70 6f 69 6e 74 22 3e 40 62 72 65 61 6b 70 6f 69 6e 74 3c 2f href="#breakpoint">@breakpoint</
4fe0 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 a></li>.............<li><a.id="t
5000 6f 63 2d 6d 75 6c 41 64 64 22 20 68 72 65 66 3d 22 23 6d 75 6c 41 64 64 22 3e 40 6d 75 6c 41 64 oc-mulAdd".href="#mulAdd">@mulAd
5020 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 d</a></li>.............<li><a.id
5040 3d 22 74 6f 63 2d 62 79 74 65 53 77 61 70 22 20 68 72 65 66 3d 22 23 62 79 74 65 53 77 61 70 22 ="toc-byteSwap".href="#byteSwap"
5060 3e 40 62 79 74 65 53 77 61 70 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 >@byteSwap</a></li>.............
5080 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 62 69 74 52 65 76 65 72 73 65 22 20 68 72 65 66 3d <li><a.id="toc-bitReverse".href=
50a0 22 23 62 69 74 52 65 76 65 72 73 65 22 3e 40 62 69 74 52 65 76 65 72 73 65 3c 2f 61 3e 3c 2f 6c "#bitReverse">@bitReverse</a></l
50c0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 62 79 i>.............<li><a.id="toc-by
50e0 74 65 4f 66 66 73 65 74 4f 66 22 20 68 72 65 66 3d 22 23 62 79 74 65 4f 66 66 73 65 74 4f 66 22 teOffsetOf".href="#byteOffsetOf"
5100 3e 40 62 79 74 65 4f 66 66 73 65 74 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 >@byteOffsetOf</a></li>.........
5120 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 62 79 74 65 73 54 6f 53 6c 69 63 65 22 ....<li><a.id="toc-bytesToSlice"
5140 20 68 72 65 66 3d 22 23 62 79 74 65 73 54 6f 53 6c 69 63 65 22 3e 40 62 79 74 65 73 54 6f 53 6c .href="#bytesToSlice">@bytesToSl
5160 69 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 ice</a></li>.............<li><a.
5180 69 64 3d 22 74 6f 63 2d 63 44 65 66 69 6e 65 22 20 68 72 65 66 3d 22 23 63 44 65 66 69 6e 65 22 id="toc-cDefine".href="#cDefine"
51a0 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c >@cDefine</a></li>.............<
51c0 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 49 6d 70 6f 72 74 22 20 68 72 65 66 3d 22 23 63 49 li><a.id="toc-cImport".href="#cI
51e0 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 mport">@cImport</a></li>........
5200 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 49 6e 63 6c 75 64 65 22 20 68 72 .....<li><a.id="toc-cInclude".hr
5220 65 66 3d 22 23 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 ef="#cInclude">@cInclude</a></li
5240 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 6c 7a >.............<li><a.id="toc-clz
5260 22 20 68 72 65 66 3d 22 23 63 6c 7a 22 3e 40 63 6c 7a 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ".href="#clz">@clz</a></li>.....
5280 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 6d 70 78 63 68 67 53 74 ........<li><a.id="toc-cmpxchgSt
52a0 72 6f 6e 67 22 20 68 72 65 66 3d 22 23 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 22 3e 40 63 6d 70 rong".href="#cmpxchgStrong">@cmp
52c0 78 63 68 67 53 74 72 6f 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 xchgStrong</a></li>.............
52e0 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 6d 70 78 63 68 67 57 65 61 6b 22 20 68 72 65 66 <li><a.id="toc-cmpxchgWeak".href
5300 3d 22 23 63 6d 70 78 63 68 67 57 65 61 6b 22 3e 40 63 6d 70 78 63 68 67 57 65 61 6b 3c 2f 61 3e ="#cmpxchgWeak">@cmpxchgWeak</a>
5320 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 </li>.............<li><a.id="toc
5340 2d 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 45 72 72 -compileError".href="#compileErr
5360 6f 72 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 or">@compileError</a></li>......
5380 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 6f 6d 70 69 6c 65 4c 6f 67 .......<li><a.id="toc-compileLog
53a0 22 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 4c 6f 67 22 3e 40 63 6f 6d 70 69 6c 65 4c 6f 67 ".href="#compileLog">@compileLog
53c0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d </a></li>.............<li><a.id=
53e0 22 74 6f 63 2d 63 74 7a 22 20 68 72 65 66 3d 22 23 63 74 7a 22 3e 40 63 74 7a 3c 2f 61 3e 3c 2f "toc-ctz".href="#ctz">@ctz</a></
5400 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 li>.............<li><a.id="toc-c
5420 55 6e 64 65 66 22 20 68 72 65 66 3d 22 23 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 Undef".href="#cUndef">@cUndef</a
5440 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f ></li>.............<li><a.id="to
5460 63 2d 64 69 76 45 78 61 63 74 22 20 68 72 65 66 3d 22 23 64 69 76 45 78 61 63 74 22 3e 40 64 69 c-divExact".href="#divExact">@di
5480 76 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e vExact</a></li>.............<li>
54a0 3c 61 20 69 64 3d 22 74 6f 63 2d 64 69 76 46 6c 6f 6f 72 22 20 68 72 65 66 3d 22 23 64 69 76 46 <a.id="toc-divFloor".href="#divF
54c0 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 loor">@divFloor</a></li>........
54e0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 64 69 76 54 72 75 6e 63 22 20 68 72 .....<li><a.id="toc-divTrunc".hr
5500 65 66 3d 22 23 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 ef="#divTrunc">@divTrunc</a></li
5520 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 6d 62 >.............<li><a.id="toc-emb
5540 65 64 46 69 6c 65 22 20 68 72 65 66 3d 22 23 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 65 64 edFile".href="#embedFile">@embed
5560 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 File</a></li>.............<li><a
5580 20 69 64 3d 22 74 6f 63 2d 65 6e 75 6d 54 6f 49 6e 74 22 20 68 72 65 66 3d 22 23 65 6e 75 6d 54 .id="toc-enumToInt".href="#enumT
55a0 6f 49 6e 74 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 oInt">@enumToInt</a></li>.......
55c0 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 72 72 6f 72 4e 61 6d 65 22 20 ......<li><a.id="toc-errorName".
55e0 68 72 65 66 3d 22 23 65 72 72 6f 72 4e 61 6d 65 22 3e 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 61 3e href="#errorName">@errorName</a>
5600 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 </li>.............<li><a.id="toc
5620 2d 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 22 20 68 72 65 66 3d 22 23 65 72 72 6f 72 52 -errorReturnTrace".href="#errorR
5640 65 74 75 72 6e 54 72 61 63 65 22 3e 40 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 3c 2f 61 eturnTrace">@errorReturnTrace</a
5660 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f ></li>.............<li><a.id="to
5680 63 2d 65 72 72 6f 72 54 6f 49 6e 74 22 20 68 72 65 66 3d 22 23 65 72 72 6f 72 54 6f 49 6e 74 22 c-errorToInt".href="#errorToInt"
56a0 3e 40 65 72 72 6f 72 54 6f 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 >@errorToInt</a></li>...........
56c0 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 72 72 53 65 74 43 61 73 74 22 20 68 72 65 ..<li><a.id="toc-errSetCast".hre
56e0 66 3d 22 23 65 72 72 53 65 74 43 61 73 74 22 3e 40 65 72 72 53 65 74 43 61 73 74 3c 2f 61 3e 3c f="#errSetCast">@errSetCast</a><
5700 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d /li>.............<li><a.id="toc-
5720 65 78 70 6f 72 74 22 20 68 72 65 66 3d 22 23 65 78 70 6f 72 74 22 3e 40 65 78 70 6f 72 74 3c 2f export".href="#export">@export</
5740 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 a></li>.............<li><a.id="t
5760 6f 63 2d 66 65 6e 63 65 22 20 68 72 65 66 3d 22 23 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f oc-fence".href="#fence">@fence</
5780 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 a></li>.............<li><a.id="t
57a0 6f 63 2d 66 69 65 6c 64 22 20 68 72 65 66 3d 22 23 66 69 65 6c 64 22 3e 40 66 69 65 6c 64 3c 2f oc-field".href="#field">@field</
57c0 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 a></li>.............<li><a.id="t
57e0 6f 63 2d 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 20 68 72 65 66 3d 22 23 66 69 65 6c 64 50 oc-fieldParentPtr".href="#fieldP
5800 61 72 65 6e 74 50 74 72 22 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 3c 2f 61 3e 3c 2f 6c arentPtr">@fieldParentPtr</a></l
5820 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 6c i>.............<li><a.id="toc-fl
5840 6f 61 74 43 61 73 74 22 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 43 61 73 74 22 3e 40 66 6c 6f 61 oatCast".href="#floatCast">@floa
5860 74 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c tCast</a></li>.............<li><
5880 61 20 69 64 3d 22 74 6f 63 2d 66 6c 6f 61 74 54 6f 49 6e 74 22 20 68 72 65 66 3d 22 23 66 6c 6f a.id="toc-floatToInt".href="#flo
58a0 61 74 54 6f 49 6e 74 22 3e 40 66 6c 6f 61 74 54 6f 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 atToInt">@floatToInt</a></li>...
58c0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 72 61 6d 65 22 20 ..........<li><a.id="toc-frame".
58e0 68 72 65 66 3d 22 23 66 72 61 6d 65 22 3e 40 66 72 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 href="#frame">@frame</a></li>...
5900 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 46 72 61 6d 65 22 20 ..........<li><a.id="toc-Frame".
5920 68 72 65 66 3d 22 23 46 72 61 6d 65 22 3e 40 46 72 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 href="#Frame">@Frame</a></li>...
5940 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 72 61 6d 65 41 64 ..........<li><a.id="toc-frameAd
5960 64 72 65 73 73 22 20 68 72 65 66 3d 22 23 66 72 61 6d 65 41 64 64 72 65 73 73 22 3e 40 66 72 61 dress".href="#frameAddress">@fra
5980 6d 65 41 64 64 72 65 73 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c meAddress</a></li>.............<
59a0 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 72 61 6d 65 53 69 7a 65 22 20 68 72 65 66 3d 22 23 li><a.id="toc-frameSize".href="#
59c0 66 72 61 6d 65 53 69 7a 65 22 3e 40 66 72 61 6d 65 53 69 7a 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 frameSize">@frameSize</a></li>..
59e0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 68 61 73 44 65 63 ...........<li><a.id="toc-hasDec
5a00 6c 22 20 68 72 65 66 3d 22 23 68 61 73 44 65 63 6c 22 3e 40 68 61 73 44 65 63 6c 3c 2f 61 3e 3c l".href="#hasDecl">@hasDecl</a><
5a20 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d /li>.............<li><a.id="toc-
5a40 68 61 73 46 69 65 6c 64 22 20 68 72 65 66 3d 22 23 68 61 73 46 69 65 6c 64 22 3e 40 68 61 73 46 hasField".href="#hasField">@hasF
5a60 69 65 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 ield</a></li>.............<li><a
5a80 20 69 64 3d 22 74 6f 63 2d 69 6d 70 6f 72 74 22 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e .id="toc-import".href="#import">
5aa0 40 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 @import</a></li>.............<li
5ac0 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 6c 69 6e 65 43 61 6c 6c 22 20 68 72 65 66 3d 22 23 69 ><a.id="toc-inlineCall".href="#i
5ae0 6e 6c 69 6e 65 43 61 6c 6c 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a nlineCall">@inlineCall</a></li>.
5b00 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 74 43 61 ............<li><a.id="toc-intCa
5b20 73 74 22 20 68 72 65 66 3d 22 23 69 6e 74 43 61 73 74 22 3e 40 69 6e 74 43 61 73 74 3c 2f 61 3e st".href="#intCast">@intCast</a>
5b40 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 </li>.............<li><a.id="toc
5b60 2d 69 6e 74 54 6f 45 6e 75 6d 22 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 45 6e 75 6d 22 3e 40 69 -intToEnum".href="#intToEnum">@i
5b80 6e 74 54 6f 45 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c ntToEnum</a></li>.............<l
5ba0 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 74 54 6f 45 72 72 6f 72 22 20 68 72 65 66 3d 22 23 i><a.id="toc-intToError".href="#
5bc0 69 6e 74 54 6f 45 72 72 6f 72 22 3e 40 69 6e 74 54 6f 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e intToError">@intToError</a></li>
5be0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 74 54 .............<li><a.id="toc-intT
5c00 6f 46 6c 6f 61 74 22 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 46 6c 6f 61 74 22 3e 40 69 6e 74 54 oFloat".href="#intToFloat">@intT
5c20 6f 46 6c 6f 61 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e oFloat</a></li>.............<li>
5c40 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 74 54 6f 50 74 72 22 20 68 72 65 66 3d 22 23 69 6e 74 54 <a.id="toc-intToPtr".href="#intT
5c60 6f 50 74 72 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 oPtr">@intToPtr</a></li>........
5c80 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 74 54 79 70 65 22 20 68 72 65 .....<li><a.id="toc-IntType".hre
5ca0 66 3d 22 23 49 6e 74 54 79 70 65 22 3e 40 49 6e 74 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 f="#IntType">@IntType</a></li>..
5cc0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6d 65 6d 62 65 72 ...........<li><a.id="toc-member
5ce0 43 6f 75 6e 74 22 20 68 72 65 66 3d 22 23 6d 65 6d 62 65 72 43 6f 75 6e 74 22 3e 40 6d 65 6d 62 Count".href="#memberCount">@memb
5d00 65 72 43 6f 75 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 erCount</a></li>.............<li
5d20 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6d 65 6d 62 65 72 4e 61 6d 65 22 20 68 72 65 66 3d 22 23 6d ><a.id="toc-memberName".href="#m
5d40 65 6d 62 65 72 4e 61 6d 65 22 3e 40 6d 65 6d 62 65 72 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a emberName">@memberName</a></li>.
5d60 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6d 65 6d 62 65 ............<li><a.id="toc-membe
5d80 72 54 79 70 65 22 20 68 72 65 66 3d 22 23 6d 65 6d 62 65 72 54 79 70 65 22 3e 40 6d 65 6d 62 65 rType".href="#memberType">@membe
5da0 72 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c rType</a></li>.............<li><
5dc0 61 20 69 64 3d 22 74 6f 63 2d 6d 65 6d 63 70 79 22 20 68 72 65 66 3d 22 23 6d 65 6d 63 70 79 22 a.id="toc-memcpy".href="#memcpy"
5de0 3e 40 6d 65 6d 63 70 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c >@memcpy</a></li>.............<l
5e00 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6d 65 6d 73 65 74 22 20 68 72 65 66 3d 22 23 6d 65 6d 73 i><a.id="toc-memset".href="#mems
5e20 65 74 22 3e 40 6d 65 6d 73 65 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 et">@memset</a></li>............
5e40 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6d 6f 64 22 20 68 72 65 66 3d 22 23 6d 6f 64 22 .<li><a.id="toc-mod".href="#mod"
5e60 3e 40 6d 6f 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c >@mod</a></li>.............<li><
5e80 61 20 69 64 3d 22 74 6f 63 2d 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 3d a.id="toc-mulWithOverflow".href=
5ea0 22 23 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 "#mulWithOverflow">@mulWithOverf
5ec0 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 low</a></li>.............<li><a.
5ee0 69 64 3d 22 74 6f 63 2d 6e 65 77 53 74 61 63 6b 43 61 6c 6c 22 20 68 72 65 66 3d 22 23 6e 65 77 id="toc-newStackCall".href="#new
5f00 53 74 61 63 6b 43 61 6c 6c 22 3e 40 6e 65 77 53 74 61 63 6b 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 StackCall">@newStackCall</a></li
5f20 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6e 6f 49 >.............<li><a.id="toc-noI
5f40 6e 6c 69 6e 65 43 61 6c 6c 22 20 68 72 65 66 3d 22 23 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 22 3e nlineCall".href="#noInlineCall">
5f60 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 @noInlineCall</a></li>..........
5f80 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4f 70 61 71 75 65 54 79 70 65 22 20 68 72 ...<li><a.id="toc-OpaqueType".hr
5fa0 65 66 3d 22 23 4f 70 61 71 75 65 54 79 70 65 22 3e 40 4f 70 61 71 75 65 54 79 70 65 3c 2f 61 3e ef="#OpaqueType">@OpaqueType</a>
5fc0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 </li>.............<li><a.id="toc
5fe0 2d 70 61 6e 69 63 22 20 68 72 65 66 3d 22 23 70 61 6e 69 63 22 3e 40 70 61 6e 69 63 3c 2f 61 3e -panic".href="#panic">@panic</a>
6000 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 </li>.............<li><a.id="toc
6020 2d 70 6f 70 43 6f 75 6e 74 22 20 68 72 65 66 3d 22 23 70 6f 70 43 6f 75 6e 74 22 3e 40 70 6f 70 -popCount".href="#popCount">@pop
6040 43 6f 75 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c Count</a></li>.............<li><
6060 61 20 69 64 3d 22 74 6f 63 2d 70 74 72 43 61 73 74 22 20 68 72 65 66 3d 22 23 70 74 72 43 61 73 a.id="toc-ptrCast".href="#ptrCas
6080 74 22 3e 40 70 74 72 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 t">@ptrCast</a></li>............
60a0 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 70 74 72 54 6f 49 6e 74 22 20 68 72 65 66 3d 22 .<li><a.id="toc-ptrToInt".href="
60c0 23 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 #ptrToInt">@ptrToInt</a></li>...
60e0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 72 65 6d 22 20 68 72 ..........<li><a.id="toc-rem".hr
6100 65 66 3d 22 23 72 65 6d 22 3e 40 72 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 ef="#rem">@rem</a></li>.........
6120 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 72 65 74 75 72 6e 41 64 64 72 65 73 73 ....<li><a.id="toc-returnAddress
6140 22 20 68 72 65 66 3d 22 23 72 65 74 75 72 6e 41 64 64 72 65 73 73 22 3e 40 72 65 74 75 72 6e 41 ".href="#returnAddress">@returnA
6160 64 64 72 65 73 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e ddress</a></li>.............<li>
6180 3c 61 20 69 64 3d 22 74 6f 63 2d 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 22 20 68 72 65 66 3d 22 <a.id="toc-setAlignStack".href="
61a0 23 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 22 3e 40 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 3c 2f #setAlignStack">@setAlignStack</
61c0 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 a></li>.............<li><a.id="t
61e0 6f 63 2d 73 65 74 43 6f 6c 64 22 20 68 72 65 66 3d 22 23 73 65 74 43 6f 6c 64 22 3e 40 73 65 74 oc-setCold".href="#setCold">@set
6200 43 6f 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 Cold</a></li>.............<li><a
6220 20 69 64 3d 22 74 6f 63 2d 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 22 20 68 72 65 .id="toc-setEvalBranchQuota".hre
6240 66 3d 22 23 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 22 3e 40 73 65 74 45 76 61 6c f="#setEvalBranchQuota">@setEval
6260 42 72 61 6e 63 68 51 75 6f 74 61 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 BranchQuota</a></li>............
6280 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 20 68 72 .<li><a.id="toc-setFloatMode".hr
62a0 65 66 3d 22 23 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 ef="#setFloatMode">@setFloatMode
62c0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d </a></li>.............<li><a.id=
62e0 22 74 6f 63 2d 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 22 20 68 72 65 66 3d 22 23 73 65 "toc-setRuntimeSafety".href="#se
6300 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 22 3e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 tRuntimeSafety">@setRuntimeSafet
6320 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 y</a></li>.............<li><a.id
6340 3d 22 74 6f 63 2d 73 68 6c 45 78 61 63 74 22 20 68 72 65 66 3d 22 23 73 68 6c 45 78 61 63 74 22 ="toc-shlExact".href="#shlExact"
6360 3e 40 73 68 6c 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 >@shlExact</a></li>.............
6380 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 20 <li><a.id="toc-shlWithOverflow".
63a0 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 68 href="#shlWithOverflow">@shlWith
63c0 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c Overflow</a></li>.............<l
63e0 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 68 72 45 78 61 63 74 22 20 68 72 65 66 3d 22 23 73 68 i><a.id="toc-shrExact".href="#sh
6400 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 rExact">@shrExact</a></li>......
6420 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 68 75 66 66 6c 65 22 20 68 .......<li><a.id="toc-shuffle".h
6440 72 65 66 3d 22 23 73 68 75 66 66 6c 65 22 3e 40 73 68 75 66 66 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e ref="#shuffle">@shuffle</a></li>
6460 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 69 7a 65 .............<li><a.id="toc-size
6480 4f 66 22 20 68 72 65 66 3d 22 23 73 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 3c 2f Of".href="#sizeOf">@sizeOf</a></
64a0 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 li>.............<li><a.id="toc-s
64c0 6c 69 63 65 54 6f 42 79 74 65 73 22 20 68 72 65 66 3d 22 23 73 6c 69 63 65 54 6f 42 79 74 65 73 liceToBytes".href="#sliceToBytes
64e0 22 3e 40 73 6c 69 63 65 54 6f 42 79 74 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 ">@sliceToBytes</a></li>........
6500 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 70 6c 61 74 22 20 68 72 65 66 3d .....<li><a.id="toc-splat".href=
6520 22 23 73 70 6c 61 74 22 3e 40 73 70 6c 61 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 "#splat">@splat</a></li>........
6540 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 71 72 74 22 20 68 72 65 66 3d 22 .....<li><a.id="toc-sqrt".href="
6560 23 73 71 72 74 22 3e 40 73 71 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 #sqrt">@sqrt</a></li>...........
6580 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 69 6e 22 20 68 72 65 66 3d 22 23 73 69 6e ..<li><a.id="toc-sin".href="#sin
65a0 22 3e 40 73 69 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e ">@sin</a></li>.............<li>
65c0 3c 61 20 69 64 3d 22 74 6f 63 2d 63 6f 73 22 20 68 72 65 66 3d 22 23 63 6f 73 22 3e 40 63 6f 73 <a.id="toc-cos".href="#cos">@cos
65e0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d </a></li>.............<li><a.id=
6600 22 74 6f 63 2d 65 78 70 22 20 68 72 65 66 3d 22 23 65 78 70 22 3e 40 65 78 70 3c 2f 61 3e 3c 2f "toc-exp".href="#exp">@exp</a></
6620 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 li>.............<li><a.id="toc-e
6640 78 70 32 22 20 68 72 65 66 3d 22 23 65 78 70 32 22 3e 40 65 78 70 32 3c 2f 61 3e 3c 2f 6c 69 3e xp2".href="#exp2">@exp2</a></li>
6660 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6c 6e 22 20 .............<li><a.id="toc-ln".
6680 68 72 65 66 3d 22 23 6c 6e 22 3e 40 6c 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 href="#ln">@ln</a></li>.........
66a0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6c 6f 67 32 22 20 68 72 65 66 3d 22 23 ....<li><a.id="toc-log2".href="#
66c0 6c 6f 67 32 22 3e 40 6c 6f 67 32 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 log2">@log2</a></li>............
66e0 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 6c 6f 67 31 30 22 20 68 72 65 66 3d 22 23 6c 6f .<li><a.id="toc-log10".href="#lo
6700 67 31 30 22 3e 40 6c 6f 67 31 30 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 g10">@log10</a></li>............
6720 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 61 62 73 22 20 68 72 65 66 3d 22 23 66 61 62 .<li><a.id="toc-fabs".href="#fab
6740 73 22 3e 40 66 61 62 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c s">@fabs</a></li>.............<l
6760 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 6c 6f 6f 72 22 20 68 72 65 66 3d 22 23 66 6c 6f 6f 72 i><a.id="toc-floor".href="#floor
6780 22 3e 40 66 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c ">@floor</a></li>.............<l
67a0 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 65 69 6c 22 20 68 72 65 66 3d 22 23 63 65 69 6c 22 3e i><a.id="toc-ceil".href="#ceil">
67c0 40 63 65 69 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c @ceil</a></li>.............<li><
67e0 61 20 69 64 3d 22 74 6f 63 2d 74 72 75 6e 63 22 20 68 72 65 66 3d 22 23 74 72 75 6e 63 22 3e 40 a.id="toc-trunc".href="#trunc">@
6800 74 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c trunc</a></li>.............<li><
6820 61 20 69 64 3d 22 74 6f 63 2d 72 6f 75 6e 64 22 20 68 72 65 66 3d 22 23 72 6f 75 6e 64 22 3e 40 a.id="toc-round".href="#round">@
6840 72 6f 75 6e 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c round</a></li>.............<li><
6860 61 20 69 64 3d 22 74 6f 63 2d 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 3d a.id="toc-subWithOverflow".href=
6880 22 23 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 "#subWithOverflow">@subWithOverf
68a0 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 low</a></li>.............<li><a.
68c0 69 64 3d 22 74 6f 63 2d 74 61 67 4e 61 6d 65 22 20 68 72 65 66 3d 22 23 74 61 67 4e 61 6d 65 22 id="toc-tagName".href="#tagName"
68e0 3e 40 74 61 67 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c >@tagName</a></li>.............<
6900 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 61 67 54 79 70 65 22 20 68 72 65 66 3d 22 23 54 61 li><a.id="toc-TagType".href="#Ta
6920 67 54 79 70 65 22 3e 40 54 61 67 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 gType">@TagType</a></li>........
6940 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 68 69 73 22 20 68 72 65 66 3d 22 .....<li><a.id="toc-This".href="
6960 23 54 68 69 73 22 3e 40 54 68 69 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 #This">@This</a></li>...........
6980 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 74 72 75 6e 63 61 74 65 22 20 68 72 65 66 3d ..<li><a.id="toc-truncate".href=
69a0 22 23 74 72 75 6e 63 61 74 65 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 "#truncate">@truncate</a></li>..
69c0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 79 70 65 22 20 ...........<li><a.id="toc-Type".
69e0 68 72 65 66 3d 22 23 54 79 70 65 22 3e 40 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 href="#Type">@Type</a></li>.....
6a00 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 74 79 70 65 49 64 22 20 68 ........<li><a.id="toc-typeId".h
6a20 72 65 66 3d 22 23 74 79 70 65 49 64 22 3e 40 74 79 70 65 49 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 ref="#typeId">@typeId</a></li>..
6a40 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 74 79 70 65 49 6e ...........<li><a.id="toc-typeIn
6a60 66 6f 22 20 68 72 65 66 3d 22 23 74 79 70 65 49 6e 66 6f 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f fo".href="#typeInfo">@typeInfo</
6a80 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 a></li>.............<li><a.id="t
6aa0 6f 63 2d 74 79 70 65 4e 61 6d 65 22 20 68 72 65 66 3d 22 23 74 79 70 65 4e 61 6d 65 22 3e 40 74 oc-typeName".href="#typeName">@t
6ac0 79 70 65 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 ypeName</a></li>.............<li
6ae0 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 74 79 70 65 4f 66 22 20 68 72 65 66 3d 22 23 74 79 70 65 4f ><a.id="toc-typeOf".href="#typeO
6b00 66 22 3e 40 74 79 70 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 f">@typeOf</a></li>.............
6b20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 75 6e 69 6f 6e 49 6e 69 74 22 20 68 72 65 66 3d 22 <li><a.id="toc-unionInit".href="
6b40 23 75 6e 69 6f 6e 49 6e 69 74 22 3e 40 75 6e 69 6f 6e 49 6e 69 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a #unionInit">@unionInit</a></li>.
6b60 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 56 65 63 74 6f ............<li><a.id="toc-Vecto
6b80 72 22 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 22 3e 40 56 65 63 74 6f 72 3c 2f 61 3e 3c 2f 6c r".href="#Vector">@Vector</a></l
6ba0 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c i>.........</ul></li>.........<l
6bc0 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 42 75 69 6c 64 2d 4d 6f 64 65 22 20 68 72 65 66 3d 22 23 i><a.id="toc-Build-Mode".href="#
6be0 42 75 69 6c 64 2d 4d 6f 64 65 22 3e 42 75 69 6c 64 20 4d 6f 64 65 3c 2f 61 3e 0a 20 20 20 20 20 Build-Mode">Build.Mode</a>......
6c00 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 ...<ul>.............<li><a.id="t
6c20 6f 63 2d 44 65 62 75 67 22 20 68 72 65 66 3d 22 23 44 65 62 75 67 22 3e 44 65 62 75 67 3c 2f 61 oc-Debug".href="#Debug">Debug</a
6c40 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f ></li>.............<li><a.id="to
6c60 63 2d 52 65 6c 65 61 73 65 46 61 73 74 22 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 46 61 73 c-ReleaseFast".href="#ReleaseFas
6c80 74 22 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 t">ReleaseFast</a></li>.........
6ca0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 65 6c 65 61 73 65 53 61 66 65 22 20 ....<li><a.id="toc-ReleaseSafe".
6cc0 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 53 61 66 65 22 3e 52 65 6c 65 61 73 65 53 61 66 65 3c href="#ReleaseSafe">ReleaseSafe<
6ce0 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 /a></li>.............<li><a.id="
6d00 74 6f 63 2d 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 toc-ReleaseSmall".href="#Release
6d20 53 6d 61 6c 6c 22 3e 52 65 6c 65 61 73 65 53 6d 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 Small">ReleaseSmall</a></li>....
6d40 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 .....</ul></li>.........<li><a.i
6d60 64 3d 22 74 6f 63 2d 53 69 6e 67 6c 65 2d 54 68 72 65 61 64 65 64 2d 42 75 69 6c 64 73 22 20 68 d="toc-Single-Threaded-Builds".h
6d80 72 65 66 3d 22 23 53 69 6e 67 6c 65 2d 54 68 72 65 61 64 65 64 2d 42 75 69 6c 64 73 22 3e 53 69 ref="#Single-Threaded-Builds">Si
6da0 6e 67 6c 65 20 54 68 72 65 61 64 65 64 20 42 75 69 6c 64 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 ngle.Threaded.Builds</a></li>...
6dc0 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 55 6e 64 65 66 69 6e 65 64 2d 42 ......<li><a.id="toc-Undefined-B
6de0 65 68 61 76 69 6f 72 22 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 ehavior".href="#Undefined-Behavi
6e00 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 0a 20 20 20 20 20 or">Undefined.Behavior</a>......
6e20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 ...<ul>.............<li><a.id="t
6e40 6f 63 2d 52 65 61 63 68 69 6e 67 2d 55 6e 72 65 61 63 68 61 62 6c 65 2d 43 6f 64 65 22 20 68 72 oc-Reaching-Unreachable-Code".hr
6e60 65 66 3d 22 23 52 65 61 63 68 69 6e 67 2d 55 6e 72 65 61 63 68 61 62 6c 65 2d 43 6f 64 65 22 3e ef="#Reaching-Unreachable-Code">
6e80 52 65 61 63 68 69 6e 67 20 55 6e 72 65 61 63 68 61 62 6c 65 20 43 6f 64 65 3c 2f 61 3e 3c 2f 6c Reaching.Unreachable.Code</a></l
6ea0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e i>.............<li><a.id="toc-In
6ec0 64 65 78 2d 6f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 22 20 68 72 65 66 3d 22 23 49 6e 64 65 78 2d dex-out-of-Bounds".href="#Index-
6ee0 6f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 22 3e 49 6e 64 65 78 20 6f 75 74 20 6f 66 20 42 6f 75 6e out-of-Bounds">Index.out.of.Boun
6f00 64 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 ds</a></li>.............<li><a.i
6f20 64 3d 22 74 6f 63 2d 43 61 73 74 2d 4e 65 67 61 74 69 76 65 2d 4e 75 6d 62 65 72 2d 74 6f 2d 55 d="toc-Cast-Negative-Number-to-U
6f40 6e 73 69 67 6e 65 64 2d 49 6e 74 65 67 65 72 22 20 68 72 65 66 3d 22 23 43 61 73 74 2d 4e 65 67 nsigned-Integer".href="#Cast-Neg
6f60 61 74 69 76 65 2d 4e 75 6d 62 65 72 2d 74 6f 2d 55 6e 73 69 67 6e 65 64 2d 49 6e 74 65 67 65 72 ative-Number-to-Unsigned-Integer
6f80 22 3e 43 61 73 74 20 4e 65 67 61 74 69 76 65 20 4e 75 6d 62 65 72 20 74 6f 20 55 6e 73 69 67 6e ">Cast.Negative.Number.to.Unsign
6fa0 65 64 20 49 6e 74 65 67 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ed.Integer</a></li>.............
6fc0 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 61 73 74 2d 54 72 75 6e 63 61 74 65 73 2d 44 61 <li><a.id="toc-Cast-Truncates-Da
6fe0 74 61 22 20 68 72 65 66 3d 22 23 43 61 73 74 2d 54 72 75 6e 63 61 74 65 73 2d 44 61 74 61 22 3e ta".href="#Cast-Truncates-Data">
7000 43 61 73 74 20 54 72 75 6e 63 61 74 65 73 20 44 61 74 61 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 Cast.Truncates.Data</a></li>....
7020 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 74 65 67 65 72 2d .........<li><a.id="toc-Integer-
7040 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 2d 4f 76 65 72 66 6c 6f Overflow".href="#Integer-Overflo
7060 77 22 3e 49 6e 74 65 67 65 72 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 w">Integer.Overflow</a>.........
7080 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 ....<ul>.................<li><a.
70a0 69 64 3d 22 74 6f 63 2d 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 20 68 72 65 66 id="toc-Default-Operations".href
70c0 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 44 65 66 61 75 6c 74 20 4f ="#Default-Operations">Default.O
70e0 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 perations</a></li>..............
7100 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 ...<li><a.id="toc-Standard-Libra
7120 72 79 2d 4d 61 74 68 2d 46 75 6e 63 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 23 53 74 61 6e 64 61 ry-Math-Functions".href="#Standa
7140 72 64 2d 4c 69 62 72 61 72 79 2d 4d 61 74 68 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 53 74 61 6e 64 rd-Library-Math-Functions">Stand
7160 61 72 64 20 4c 69 62 72 61 72 79 20 4d 61 74 68 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f ard.Library.Math.Functions</a></
7180 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 li>.................<li><a.id="t
71a0 6f 63 2d 42 75 69 6c 74 69 6e 2d 4f 76 65 72 66 6c 6f 77 2d 46 75 6e 63 74 69 6f 6e 73 22 20 68 oc-Builtin-Overflow-Functions".h
71c0 72 65 66 3d 22 23 42 75 69 6c 74 69 6e 2d 4f 76 65 72 66 6c 6f 77 2d 46 75 6e 63 74 69 6f 6e 73 ref="#Builtin-Overflow-Functions
71e0 22 3e 42 75 69 6c 74 69 6e 20 4f 76 65 72 66 6c 6f 77 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e ">Builtin.Overflow.Functions</a>
7200 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d </li>.................<li><a.id=
7220 22 74 6f 63 2d 57 72 61 70 70 69 6e 67 2d 4f 70 65 72 61 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 "toc-Wrapping-Operations".href="
7240 23 57 72 61 70 70 69 6e 67 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 57 72 61 70 70 69 6e 67 20 4f #Wrapping-Operations">Wrapping.O
7260 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c perations</a></li>.............<
7280 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d /ul></li>.............<li><a.id=
72a0 22 74 6f 63 2d 45 78 61 63 74 2d 4c 65 66 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 20 "toc-Exact-Left-Shift-Overflow".
72c0 68 72 65 66 3d 22 23 45 78 61 63 74 2d 4c 65 66 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 href="#Exact-Left-Shift-Overflow
72e0 22 3e 45 78 61 63 74 20 4c 65 66 74 20 53 68 69 66 74 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c ">Exact.Left.Shift.Overflow</a><
7300 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d /li>.............<li><a.id="toc-
7320 45 78 61 63 74 2d 52 69 67 68 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 Exact-Right-Shift-Overflow".href
7340 3d 22 23 45 78 61 63 74 2d 52 69 67 68 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 3e 45 ="#Exact-Right-Shift-Overflow">E
7360 78 61 63 74 20 52 69 67 68 74 20 53 68 69 66 74 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c xact.Right.Shift.Overflow</a></l
7380 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 44 69 i>.............<li><a.id="toc-Di
73a0 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d vision-by-Zero".href="#Division-
73c0 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c by-Zero">Division.by.Zero</a></l
73e0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 65 i>.............<li><a.id="toc-Re
7400 6d 61 69 6e 64 65 72 2d 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 20 68 72 65 66 3d 22 mainder-Division-by-Zero".href="
7420 23 52 65 6d 61 69 6e 64 65 72 2d 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 52 65 6d #Remainder-Division-by-Zero">Rem
7440 61 69 6e 64 65 72 20 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e ainder.Division.by.Zero</a></li>
7460 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 78 61 63 .............<li><a.id="toc-Exac
7480 74 2d 44 69 76 69 73 69 6f 6e 2d 52 65 6d 61 69 6e 64 65 72 22 20 68 72 65 66 3d 22 23 45 78 61 t-Division-Remainder".href="#Exa
74a0 63 74 2d 44 69 76 69 73 69 6f 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e 45 78 61 63 74 20 44 69 76 ct-Division-Remainder">Exact.Div
74c0 69 73 69 6f 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 ision.Remainder</a></li>........
74e0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 6c 69 63 65 2d 57 69 64 65 6e 2d .....<li><a.id="toc-Slice-Widen-
7500 52 65 6d 61 69 6e 64 65 72 22 20 68 72 65 66 3d 22 23 53 6c 69 63 65 2d 57 69 64 65 6e 2d 52 65 Remainder".href="#Slice-Widen-Re
7520 6d 61 69 6e 64 65 72 22 3e 53 6c 69 63 65 20 57 69 64 65 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f mainder">Slice.Widen.Remainder</
7540 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 a></li>.............<li><a.id="t
7560 6f 63 2d 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 72 61 70 2d 4e 75 6c 6c 22 20 68 72 65 66 3d oc-Attempt-to-Unwrap-Null".href=
7580 22 23 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 72 61 70 2d 4e 75 6c 6c 22 3e 41 74 74 65 6d 70 "#Attempt-to-Unwrap-Null">Attemp
75a0 74 20 74 6f 20 55 6e 77 72 61 70 20 4e 75 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 t.to.Unwrap.Null</a></li>.......
75c0 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 41 74 74 65 6d 70 74 2d 74 6f 2d ......<li><a.id="toc-Attempt-to-
75e0 55 6e 77 72 61 70 2d 45 72 72 6f 72 22 20 68 72 65 66 3d 22 23 41 74 74 65 6d 70 74 2d 74 6f 2d Unwrap-Error".href="#Attempt-to-
7600 55 6e 77 72 61 70 2d 45 72 72 6f 72 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 20 Unwrap-Error">Attempt.to.Unwrap.
7620 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c Error</a></li>.............<li><
7640 61 20 69 64 3d 22 74 6f 63 2d 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 43 6f 64 65 22 20 68 72 a.id="toc-Invalid-Error-Code".hr
7660 65 66 3d 22 23 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 43 6f 64 65 22 3e 49 6e 76 61 6c 69 64 ef="#Invalid-Error-Code">Invalid
7680 20 45 72 72 6f 72 20 43 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 .Error.Code</a></li>............
76a0 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 76 61 6c 69 64 2d 45 6e 75 6d 2d 43 61 73 .<li><a.id="toc-Invalid-Enum-Cas
76c0 74 22 20 68 72 65 66 3d 22 23 49 6e 76 61 6c 69 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e 49 6e 76 t".href="#Invalid-Enum-Cast">Inv
76e0 61 6c 69 64 20 45 6e 75 6d 20 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 alid.Enum.Cast</a></li>.........
7700 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 ....<li><a.id="toc-Invalid-Error
7720 2d 53 65 74 2d 43 61 73 74 22 20 68 72 65 66 3d 22 23 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d -Set-Cast".href="#Invalid-Error-
7740 53 65 74 2d 43 61 73 74 22 3e 49 6e 76 61 6c 69 64 20 45 72 72 6f 72 20 53 65 74 20 43 61 73 74 Set-Cast">Invalid.Error.Set.Cast
7760 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d </a></li>.............<li><a.id=
7780 22 74 6f 63 2d 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 "toc-Incorrect-Pointer-Alignment
77a0 22 20 68 72 65 66 3d 22 23 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e ".href="#Incorrect-Pointer-Align
77c0 6d 65 6e 74 22 3e 49 6e 63 6f 72 72 65 63 74 20 50 6f 69 6e 74 65 72 20 41 6c 69 67 6e 6d 65 6e ment">Incorrect.Pointer.Alignmen
77e0 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 t</a></li>.............<li><a.id
7800 3d 22 74 6f 63 2d 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 73 73 22 20 ="toc-Wrong-Union-Field-Access".
7820 68 72 65 66 3d 22 23 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 73 73 22 href="#Wrong-Union-Field-Access"
7840 3e 57 72 6f 6e 67 20 55 6e 69 6f 6e 20 46 69 65 6c 64 20 41 63 63 65 73 73 3c 2f 61 3e 3c 2f 6c >Wrong.Union.Field.Access</a></l
7860 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4f 75 i>.............<li><a.id="toc-Ou
7880 74 2d 6f 66 2d 42 6f 75 6e 64 73 2d 46 6c 6f 61 74 2d 74 6f 2d 49 6e 74 65 67 65 72 2d 43 61 73 t-of-Bounds-Float-to-Integer-Cas
78a0 74 22 20 68 72 65 66 3d 22 23 4f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 2d 46 6c 6f 61 74 2d 74 6f t".href="#Out-of-Bounds-Float-to
78c0 2d 49 6e 74 65 67 65 72 2d 43 61 73 74 22 3e 4f 75 74 20 6f 66 20 42 6f 75 6e 64 73 20 46 6c 6f -Integer-Cast">Out.of.Bounds.Flo
78e0 61 74 20 74 6f 20 49 6e 74 65 67 65 72 20 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 at.to.Integer.Cast</a></li>.....
7900 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 50 6f 69 6e 74 65 72 2d 43 ........<li><a.id="toc-Pointer-C
7920 61 73 74 2d 49 6e 76 61 6c 69 64 2d 4e 75 6c 6c 22 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 ast-Invalid-Null".href="#Pointer
7940 2d 43 61 73 74 2d 49 6e 76 61 6c 69 64 2d 4e 75 6c 6c 22 3e 50 6f 69 6e 74 65 72 20 43 61 73 74 -Cast-Invalid-Null">Pointer.Cast
7960 20 49 6e 76 61 6c 69 64 20 4e 75 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c .Invalid.Null</a></li>.........<
7980 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 /ul></li>.........<li><a.id="toc
79a0 2d 4d 65 6d 6f 72 79 22 20 68 72 65 66 3d 22 23 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 79 3c 2f -Memory".href="#Memory">Memory</
79c0 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e a>.........<ul>.............<li>
79e0 3c 61 20 69 64 3d 22 74 6f 63 2d 43 68 6f 6f 73 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 <a.id="toc-Choosing-an-Allocator
7a00 22 20 68 72 65 66 3d 22 23 43 68 6f 6f 73 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 22 3e ".href="#Choosing-an-Allocator">
7a20 43 68 6f 6f 73 69 6e 67 20 61 6e 20 41 6c 6c 6f 63 61 74 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 Choosing.an.Allocator</a></li>..
7a40 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 57 68 65 72 65 2d ...........<li><a.id="toc-Where-
7a60 61 72 65 2d 74 68 65 2d 62 79 74 65 73 22 20 68 72 65 66 3d 22 23 57 68 65 72 65 2d 61 72 65 2d are-the-bytes".href="#Where-are-
7a80 74 68 65 2d 62 79 74 65 73 22 3e 57 68 65 72 65 20 61 72 65 20 74 68 65 20 62 79 74 65 73 3f 3c the-bytes">Where.are.the.bytes?<
7aa0 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 /a></li>.............<li><a.id="
7ac0 74 6f 63 2d 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 22 20 68 toc-Implementing-an-Allocator".h
7ae0 72 65 66 3d 22 23 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 22 ref="#Implementing-an-Allocator"
7b00 3e 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 61 6e 20 41 6c 6c 6f 63 61 74 6f 72 3c 2f 61 3e 3c 2f >Implementing.an.Allocator</a></
7b20 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 48 li>.............<li><a.id="toc-H
7b40 65 61 70 2d 41 6c 6c 6f 63 61 74 69 6f 6e 2d 46 61 69 6c 75 72 65 22 20 68 72 65 66 3d 22 23 48 eap-Allocation-Failure".href="#H
7b60 65 61 70 2d 41 6c 6c 6f 63 61 74 69 6f 6e 2d 46 61 69 6c 75 72 65 22 3e 48 65 61 70 20 41 6c 6c eap-Allocation-Failure">Heap.All
7b80 6f 63 61 74 69 6f 6e 20 46 61 69 6c 75 72 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 ocation.Failure</a></li>........
7ba0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 65 63 75 72 73 69 6f 6e 22 20 68 .....<li><a.id="toc-Recursion".h
7bc0 72 65 66 3d 22 23 52 65 63 75 72 73 69 6f 6e 22 3e 52 65 63 75 72 73 69 6f 6e 3c 2f 61 3e 3c 2f ref="#Recursion">Recursion</a></
7be0 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4c li>.............<li><a.id="toc-L
7c00 69 66 65 74 69 6d 65 2d 61 6e 64 2d 4f 77 6e 65 72 73 68 69 70 22 20 68 72 65 66 3d 22 23 4c 69 ifetime-and-Ownership".href="#Li
7c20 66 65 74 69 6d 65 2d 61 6e 64 2d 4f 77 6e 65 72 73 68 69 70 22 3e 4c 69 66 65 74 69 6d 65 20 61 fetime-and-Ownership">Lifetime.a
7c40 6e 64 20 4f 77 6e 65 72 73 68 69 70 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f nd.Ownership</a></li>.........</
7c60 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d ul></li>.........<li><a.id="toc-
7c80 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c Compile-Variables".href="#Compil
7ca0 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f e-Variables">Compile.Variables</
7cc0 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 a></li>.........<li><a.id="toc-R
7ce0 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 20 68 72 65 66 3d 22 23 52 6f 6f 74 2d 53 6f 75 oot-Source-File".href="#Root-Sou
7d00 72 63 65 2d 46 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c 65 3c 2f 61 3e 3c 2f rce-File">Root.Source.File</a></
7d20 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 5a 69 67 2d 54 li>.........<li><a.id="toc-Zig-T
7d40 65 73 74 22 20 68 72 65 66 3d 22 23 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f est".href="#Zig-Test">Zig.Test</
7d60 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 5a a></li>.........<li><a.id="toc-Z
7d80 69 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 6d 22 20 68 72 65 66 3d 22 23 5a 69 67 2d 42 75 69 6c ig-Build-System".href="#Zig-Buil
7da0 64 2d 53 79 73 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 79 73 74 65 6d 3c 2f 61 3e 3c 2f d-System">Zig.Build.System</a></
7dc0 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 22 20 68 72 li>.........<li><a.id="toc-C".hr
7de0 65 66 3d 22 23 43 22 3e 43 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 ef="#C">C</a>.........<ul>......
7e00 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 2d 54 79 70 65 2d 50 72 69 .......<li><a.id="toc-C-Type-Pri
7e20 6d 69 74 69 76 65 73 22 20 68 72 65 66 3d 22 23 43 2d 54 79 70 65 2d 50 72 69 6d 69 74 69 76 65 mitives".href="#C-Type-Primitive
7e40 73 22 3e 43 20 54 79 70 65 20 50 72 69 6d 69 74 69 76 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 s">C.Type.Primitives</a></li>...
7e60 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 2d 53 74 72 69 6e ..........<li><a.id="toc-C-Strin
7e80 67 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 23 43 2d 53 74 72 69 6e 67 2d 4c 69 74 65 g-Literals".href="#C-String-Lite
7ea0 72 61 6c 73 22 3e 43 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e rals">C.String.Literals</a></li>
7ec0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6f .............<li><a.id="toc-Impo
7ee0 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 20 68 72 65 66 3d 22 23 49 6d rt-from-C-Header-File".href="#Im
7f00 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 port-from-C-Header-File">Import.
7f20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 from.C.Header.File</a></li>.....
7f40 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 2d 50 6f 69 6e 74 65 72 ........<li><a.id="toc-C-Pointer
7f60 73 22 20 68 72 65 66 3d 22 23 43 2d 50 6f 69 6e 74 65 72 73 22 3e 43 20 50 6f 69 6e 74 65 72 73 s".href="#C-Pointers">C.Pointers
7f80 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d </a></li>.............<li><a.id=
7fa0 22 74 6f 63 2d 45 78 70 6f 72 74 69 6e 67 2d 61 2d 43 2d 4c 69 62 72 61 72 79 22 20 68 72 65 66 "toc-Exporting-a-C-Library".href
7fc0 3d 22 23 45 78 70 6f 72 74 69 6e 67 2d 61 2d 43 2d 4c 69 62 72 61 72 79 22 3e 45 78 70 6f 72 74 ="#Exporting-a-C-Library">Export
7fe0 69 6e 67 20 61 20 43 20 4c 69 62 72 61 72 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 ing.a.C.Library</a></li>........
8000 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4d 69 78 69 6e 67 2d 4f 62 6a 65 63 .....<li><a.id="toc-Mixing-Objec
8020 74 2d 46 69 6c 65 73 22 20 68 72 65 66 3d 22 23 4d 69 78 69 6e 67 2d 4f 62 6a 65 63 74 2d 46 69 t-Files".href="#Mixing-Object-Fi
8040 6c 65 73 22 3e 4d 69 78 69 6e 67 20 4f 62 6a 65 63 74 20 46 69 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 les">Mixing.Object.Files</a></li
8060 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 >.........</ul></li>.........<li
8080 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 57 65 62 41 73 73 65 6d 62 6c 79 22 20 68 72 65 66 3d 22 23 ><a.id="toc-WebAssembly".href="#
80a0 57 65 62 41 73 73 65 6d 62 6c 79 22 3e 57 65 62 41 73 73 65 6d 62 6c 79 3c 2f 61 3e 0a 20 20 20 WebAssembly">WebAssembly</a>....
80c0 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d .....<ul>.............<li><a.id=
80e0 22 74 6f 63 2d 46 72 65 65 73 74 61 6e 64 69 6e 67 22 20 68 72 65 66 3d 22 23 46 72 65 65 73 74 "toc-Freestanding".href="#Freest
8100 61 6e 64 69 6e 67 22 3e 46 72 65 65 73 74 61 6e 64 69 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 anding">Freestanding</a></li>...
8120 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 57 41 53 49 22 20 68 ..........<li><a.id="toc-WASI".h
8140 72 65 66 3d 22 23 57 41 53 49 22 3e 57 41 53 49 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 ref="#WASI">WASI</a></li>.......
8160 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 ..</ul></li>.........<li><a.id="
8180 74 6f 63 2d 54 61 72 67 65 74 73 22 20 68 72 65 66 3d 22 23 54 61 72 67 65 74 73 22 3e 54 61 72 toc-Targets".href="#Targets">Tar
81a0 67 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d gets</a></li>.........<li><a.id=
81c0 22 74 6f 63 2d 53 74 79 6c 65 2d 47 75 69 64 65 22 20 68 72 65 66 3d 22 23 53 74 79 6c 65 2d 47 "toc-Style-Guide".href="#Style-G
81e0 75 69 64 65 22 3e 53 74 79 6c 65 20 47 75 69 64 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 uide">Style.Guide</a>.........<u
8200 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 57 68 l>.............<li><a.id="toc-Wh
8220 69 74 65 73 70 61 63 65 22 20 68 72 65 66 3d 22 23 57 68 69 74 65 73 70 61 63 65 22 3e 57 68 69 itespace".href="#Whitespace">Whi
8240 74 65 73 70 61 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 tespace</a></li>.............<li
8260 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4e 61 6d 65 73 22 20 68 72 65 66 3d 22 23 4e 61 6d 65 73 22 ><a.id="toc-Names".href="#Names"
8280 3e 4e 61 6d 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e >Names</a></li>.............<li>
82a0 3c 61 20 69 64 3d 22 74 6f 63 2d 45 78 61 6d 70 6c 65 73 22 20 68 72 65 66 3d 22 23 45 78 61 6d <a.id="toc-Examples".href="#Exam
82c0 70 6c 65 73 22 3e 45 78 61 6d 70 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 ples">Examples</a></li>.........
82e0 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f </ul></li>.........<li><a.id="to
8300 63 2d 53 6f 75 72 63 65 2d 45 6e 63 6f 64 69 6e 67 22 20 68 72 65 66 3d 22 23 53 6f 75 72 63 65 c-Source-Encoding".href="#Source
8320 2d 45 6e 63 6f 64 69 6e 67 22 3e 53 6f 75 72 63 65 20 45 6e 63 6f 64 69 6e 67 3c 2f 61 3e 3c 2f -Encoding">Source.Encoding</a></
8340 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4b 65 79 77 6f li>.........<li><a.id="toc-Keywo
8360 72 64 2d 52 65 66 65 72 65 6e 63 65 22 20 68 72 65 66 3d 22 23 4b 65 79 77 6f 72 64 2d 52 65 66 rd-Reference".href="#Keyword-Ref
8380 65 72 65 6e 63 65 22 3e 4b 65 79 77 6f 72 64 20 52 65 66 65 72 65 6e 63 65 3c 2f 61 3e 0a 20 20 erence">Keyword.Reference</a>...
83a0 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 ......<ul>.............<li><a.id
83c0 3d 22 74 6f 63 2d 4b 65 79 77 6f 72 64 2d 70 75 62 22 20 68 72 65 66 3d 22 23 4b 65 79 77 6f 72 ="toc-Keyword-pub".href="#Keywor
83e0 64 2d 70 75 62 22 3e 4b 65 79 77 6f 72 64 3a 20 70 75 62 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 d-pub">Keyword:.pub</a></li>....
8400 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 .....</ul></li>.........<li><a.i
8420 64 3d 22 74 6f 63 2d 47 72 61 6d 6d 61 72 22 20 68 72 65 66 3d 22 23 47 72 61 6d 6d 61 72 22 3e d="toc-Grammar".href="#Grammar">
8440 47 72 61 6d 6d 61 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 Grammar</a></li>.........<li><a.
8460 69 64 3d 22 74 6f 63 2d 5a 65 6e 22 20 68 72 65 66 3d 22 23 5a 65 6e 22 3e 5a 65 6e 3c 2f 61 3e id="toc-Zen".href="#Zen">Zen</a>
8480 3c 2f 6c 69 3e 0a 20 20 20 20 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c </li>.....</ul>................<
84a0 68 31 20 69 64 3d 22 48 65 6c 6c 6f 2d 57 6f 72 6c 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f h1.id="Hello-World"><a.href="#to
84c0 63 2d 48 65 6c 6c 6f 2d 57 6f 72 6c 64 22 3e 48 65 6c 6c 6f 20 57 6f 72 6c 64 3c 2f 61 3e 20 3c c-Hello-World">Hello.World</a>.<
84e0 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 48 65 6c 6c 6f 2d 57 6f 72 6c 64 a.class="hdr".href="#Hello-World
8500 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 ">..</a></h1>.........<p.class="
8520 66 69 6c 65 22 3e 68 65 6c 6c 6f 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c file">hello.zig</p><pre><code.cl
8540 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
8560 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 onst</span>.std.=.<span.class="t
8580 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ok-builtin">@import</span>(<span
85a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b .class="tok-str">&quot;std&quot;
85c0 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e </span>);..<span.class="tok-kw">
85e0 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pub</span>.<span.class="tok-kw">
8600 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d fn</span>.<span.class="tok-fn">m
8620 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ain</span>().!<span.class="tok-t
8640 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ype">void</span>.{.....<span.cla
8660 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 20 74 68 69 73 20 70 72 6f 67 ss="tok-comment">//.If.this.prog
8680 72 61 6d 20 69 73 20 72 75 6e 20 77 69 74 68 6f 75 74 20 73 74 64 6f 75 74 20 61 74 74 61 63 68 ram.is.run.without.stdout.attach
86a0 65 64 2c 20 65 78 69 74 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 73 70 61 6e 3e 0a 20 ed,.exit.with.an.error.</span>..
86c0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ...<span.class="tok-kw">const</s
86e0 70 61 6e 3e 20 73 74 64 6f 75 74 5f 66 69 6c 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 pan>.stdout_file.=.<span.class="
8700 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 69 6f 2e 67 65 74 53 74 64 tok-kw">try</span>.std.io.getStd
8720 4f 75 74 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d Out();.....<span.class="tok-comm
8740 65 6e 74 22 3e 2f 2f 20 49 66 20 74 68 69 73 20 70 72 6f 67 72 61 6d 20 65 6e 63 6f 75 6e 74 65 ent">//.If.this.program.encounte
8760 72 73 20 70 69 70 65 20 66 61 69 6c 75 72 65 20 77 68 65 6e 20 70 72 69 6e 74 69 6e 67 20 74 6f rs.pipe.failure.when.printing.to
8780 20 73 74 64 6f 75 74 2c 20 65 78 69 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 .stdout,.exit</span>.....<span.c
87a0 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 77 69 74 68 20 61 6e 20 65 72 lass="tok-comment">//.with.an.er
87c0 72 6f 72 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ror.</span>.....<span.class="tok
87e0 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 6f 75 74 5f 66 69 6c 65 2e 77 72 69 74 -kw">try</span>.stdout_file.writ
8800 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 48 65 e(<span.class="tok-str">&quot;He
8820 6c 6c 6f 2c 20 77 6f 72 6c 64 21 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f llo,.world!\n&quot;</span>);.}</
8840 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 code></pre><pre><code.class="she
8860 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 68 65 6c 6c 6f 2e 7a 69 67 0a 24 20 ll">$.zig.build-exe.hello.zig.$.
8880 2e 2f 68 65 6c 6c 6f 0a 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 ./hello.Hello,.world!.</code></p
88a0 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 75 61 6c 6c 79 20 79 6f 75 re>........<p>.......Usually.you
88c0 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 77 72 69 74 65 20 74 6f 20 73 74 64 6f 75 74 2e 20 .don't.want.to.write.to.stdout..
88e0 59 6f 75 20 77 61 6e 74 20 74 6f 20 77 72 69 74 65 20 74 6f 20 73 74 64 65 72 72 2e 20 41 6e 64 You.want.to.write.to.stderr..And
8900 20 79 6f 75 0a 20 20 20 20 20 20 64 6f 6e 27 74 20 63 61 72 65 20 69 66 20 69 74 20 66 61 69 6c .you.......don't.care.if.it.fail
8920 73 2e 20 49 74 27 73 20 6d 6f 72 65 20 6c 69 6b 65 20 61 20 3c 65 6d 3e 77 61 72 6e 69 6e 67 20 s..It's.more.like.a.<em>warning.
8940 6d 65 73 73 61 67 65 3c 2f 65 6d 3e 20 74 68 61 74 20 79 6f 75 20 77 61 6e 74 0a 20 20 20 20 20 message</em>.that.you.want......
8960 20 74 6f 20 65 6d 69 74 2e 20 46 6f 72 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 75 73 65 20 61 .to.emit..For.that.you.can.use.a
8980 20 73 69 6d 70 6c 65 72 20 41 50 49 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c .simpler.API:.......</p>.......<
89a0 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 68 65 6c 6c 6f 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 p.class="file">hello.zig</p><pre
89c0 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
89e0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d 20 3c 73 70 61 tok-kw">const</span>.warn.=.<spa
8a00 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 n.class="tok-builtin">@import</s
8a20 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
8a40 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a ;std&quot;</span>).debug.warn;..
8a60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">pub</span>.
8a80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c <span.class="tok-kw">fn</span>.<
8aa0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 span.class="tok-fn">main</span>(
8ac0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 ).<span.class="tok-type">void</s
8ae0 70 61 6e 3e 20 7b 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b pan>.{.....warn(<span.class="tok
8b00 2d 73 74 72 22 3e 26 71 75 6f 74 3b 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 5c 6e 26 71 75 6f 74 -str">&quot;Hello,.world!\n&quot
8b20 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 ;</span>);.}</code></pre><pre><c
8b40 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 ode.class="shell">$.zig.build-ex
8b60 65 20 68 65 6c 6c 6f 2e 7a 69 67 0a 24 20 2e 2f 68 65 6c 6c 6f 0a 48 65 6c 6c 6f 2c 20 77 6f 72 e.hello.zig.$../hello.Hello,.wor
8b80 6c 64 21 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 ld!.</code></pre>........<p>....
8ba0 20 20 20 4e 6f 74 65 20 74 68 61 74 20 77 65 20 61 6c 73 6f 20 6c 65 66 74 20 6f 66 66 20 74 68 ...Note.that.we.also.left.off.th
8bc0 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 21 3c 2f 63 6f 64 65 3e 20 66 72 6f e.<code.class="zig">!</code>.fro
8be0 6d 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c m.the.return.type........In.Zig,
8c00 20 69 66 20 79 6f 75 72 20 6d 61 69 6e 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6e 6f 74 20 66 61 .if.your.main.function.cannot.fa
8c20 69 6c 2c 20 79 6f 75 20 6d 75 73 74 20 75 73 65 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 il,.you.must.use.the.<code.class
8c40 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f ="zig"><span.class="tok-type">vo
8c60 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 6e 20 74 79 70 65 2e 0a 20 20 id</span></code>.return.type....
8c80 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c ....</p>.......<p>See.also:</p><
8ca0 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 56 61 6c 75 65 73 22 3e 56 61 6c 75 65 73 ul>.<li><a.href="#Values">Values
8cc0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e </a></li>.<li><a.href="#import">
8ce0 40 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 @import</a></li>.<li><a.href="#E
8d00 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 rrors">Errors</a></li>.<li><a.hr
8d20 65 66 3d 22 23 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 ef="#Root-Source-File">Root.Sour
8d40 63 65 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 ce.File</a></li>.</ul>..........
8d60 20 20 20 20 20 3c 68 31 20 69 64 3d 22 43 6f 6d 6d 65 6e 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 .....<h1.id="Comments"><a.href="
8d80 23 74 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 3e 43 6f 6d 6d 65 6e 74 73 3c 2f 61 3e 20 3c 61 20 63 #toc-Comments">Comments</a>.<a.c
8da0 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 6f 6d 6d 65 6e 74 73 22 3e c2 a7 3c 2f lass="hdr".href="#Comments">..</
8dc0 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 a></h1>........<p.class="file">c
8de0 6f 6d 6d 65 6e 74 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d omments.zig</p><pre><code.class=
8e00 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 "zig"><span.class="tok-kw">const
8e20 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.assert.=.<span.class="to
8e40 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
8e60 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
8e80 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 /span>).debug.assert;..<span.cla
8ea0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
8ec0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 6f 6d 6d 65 6e 74 73 26 71 75 6f ass="tok-str">&quot;comments&quo
8ee0 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b t;</span>.{.....<span.class="tok
8f00 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 43 6f 6d 6d 65 6e 74 73 20 69 6e 20 5a 69 67 20 73 74 61 -comment">//.Comments.in.Zig.sta
8f20 72 74 20 77 69 74 68 20 26 71 75 6f 74 3b 2f 2f 26 71 75 6f 74 3b 20 61 6e 64 20 65 6e 64 20 61 rt.with.&quot;//&quot;.and.end.a
8f40 74 20 74 68 65 20 6e 65 78 74 20 4c 46 20 62 79 74 65 20 28 65 6e 64 20 6f 66 20 6c 69 6e 65 29 t.the.next.LF.byte.(end.of.line)
8f60 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f .</span>.....<span.class="tok-co
8f80 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 62 65 6c 6f 77 20 6c 69 6e 65 20 69 73 20 61 20 63 6f mment">//.The.below.line.is.a.co
8fa0 6d 6d 65 6e 74 2c 20 61 6e 64 20 77 6f 6e 27 74 20 62 65 20 65 78 65 63 75 74 65 64 2e 3c 2f 73 mment,.and.won't.be.executed.</s
8fc0 70 61 6e 3e 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 pan>......<span.class="tok-comme
8fe0 6e 74 22 3e 2f 2f 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 nt">//assert(false);</span>.....
9000 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
9020 6e 3e 20 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 n>.x.=.<span.class="tok-null">tr
9040 75 65 3c 2f 73 70 61 6e 3e 3b 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d ue</span>;..<span.class="tok-com
9060 6d 65 6e 74 22 3e 2f 2f 20 61 6e 6f 74 68 65 72 20 63 6f 6d 6d 65 6e 74 3c 2f 73 70 61 6e 3e 0a ment">//.another.comment</span>.
9080 20 20 20 20 61 73 73 65 72 74 28 78 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 ....assert(x);.}</code></pre><pr
90a0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 e><code.class="shell">$.zig.test
90c0 20 63 6f 6d 6d 65 6e 74 73 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 63 6f 6d .comments.zig.1/1.test.&quot;com
90e0 6d 65 6e 74 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 ments&quot;...OK.All.tests.passe
9100 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 d..</code></pre>........<p>.....
9120 20 20 54 68 65 72 65 20 61 72 65 20 6e 6f 20 6d 75 6c 74 69 6c 69 6e 65 20 63 6f 6d 6d 65 6e 74 ..There.are.no.multiline.comment
9140 73 20 69 6e 20 5a 69 67 20 28 65 2e 67 2e 20 6c 69 6b 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d s.in.Zig.(e.g..like.<code.class=
9160 22 63 22 3e 2f 2a 20 2a 2f 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 20 "c">/*.*/</code>.......comments.
9180 69 6e 20 43 29 2e 20 20 54 68 69 73 20 68 65 6c 70 73 20 61 6c 6c 6f 77 20 5a 69 67 20 74 6f 20 in.C)...This.helps.allow.Zig.to.
91a0 68 61 76 65 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 74 68 61 74 20 65 61 63 68 20 6c 69 6e 65 have.the.property.that.each.line
91c0 0a 20 20 20 20 20 20 6f 66 20 63 6f 64 65 20 63 61 6e 20 62 65 20 74 6f 6b 65 6e 69 7a 65 64 20 .......of.code.can.be.tokenized.
91e0 6f 75 74 20 6f 66 20 63 6f 6e 74 65 78 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 out.of.context........</p>......
9200 20 3c 68 32 20 69 64 3d 22 44 6f 63 2d 63 6f 6d 6d 65 6e 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 .<h2.id="Doc-comments"><a.href="
9220 23 74 6f 63 2d 44 6f 63 2d 63 6f 6d 6d 65 6e 74 73 22 3e 44 6f 63 20 63 6f 6d 6d 65 6e 74 73 3c #toc-Doc-comments">Doc.comments<
9240 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 44 6f 63 2d 63 6f /a>.<a.class="hdr".href="#Doc-co
9260 6d 6d 65 6e 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 mments">..</a></h2>........<p>..
9280 20 20 20 20 20 41 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 20 69 73 20 6f 6e 65 20 74 68 61 74 20 62 .....A.doc.comment.is.one.that.b
92a0 65 67 69 6e 73 20 77 69 74 68 20 65 78 61 63 74 6c 79 20 74 68 72 65 65 20 73 6c 61 73 68 65 73 egins.with.exactly.three.slashes
92c0 20 28 69 2e 65 2e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .(i.e........<code.class="zig"><
92e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 3c 2f 73 70 span.class="tok-comment">///</sp
9300 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 75 74 20 6e 6f 74 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 an></code>.but.not.<code.class="
9320 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f zig"><span.class="tok-comment">/
9340 2f 2f 2f 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 3b 0a 20 20 20 20 20 20 6d 75 6c 74 69 70 ///</span></code>);.......multip
9360 6c 65 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 61 20 72 6f 77 20 61 72 65 20 6d 65 72 le.doc.comments.in.a.row.are.mer
9380 67 65 64 20 74 6f 67 65 74 68 65 72 20 74 6f 20 66 6f 72 6d 20 61 20 6d 75 6c 74 69 6c 69 6e 65 ged.together.to.form.a.multiline
93a0 0a 20 20 20 20 20 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 2e 20 20 54 68 65 20 64 6f 63 20 63 6f 6d .......doc.comment...The.doc.com
93c0 6d 65 6e 74 20 64 6f 63 75 6d 65 6e 74 73 20 77 68 61 74 65 76 65 72 20 69 6d 6d 65 64 69 61 74 ment.documents.whatever.immediat
93e0 65 6c 79 20 66 6f 6c 6c 6f 77 73 20 69 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 ely.follows.it........</p>......
9400 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .<pre><code.class="zig"><span.cl
9420 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 41 20 73 74 72 75 63 74 75 72 ass="tok-comment">///.A.structur
9440 65 20 66 6f 72 20 73 74 6f 72 69 6e 67 20 61 20 74 69 6d 65 73 74 61 6d 70 2c 20 77 69 74 68 20 e.for.storing.a.timestamp,.with.
9460 6e 61 6e 6f 73 65 63 6f 6e 64 20 70 72 65 63 69 73 69 6f 6e 20 28 74 68 69 73 20 69 73 20 61 3c nanosecond.precision.(this.is.a<
9480 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 /span>.<span.class="tok-comment"
94a0 3e 2f 2f 2f 20 6d 75 6c 74 69 6c 69 6e 65 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 29 2e 3c 2f 73 70 >///.multiline.doc.comment).</sp
94c0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f an>.<span.class="tok-kw">const</
94e0 73 70 61 6e 3e 20 54 69 6d 65 73 74 61 6d 70 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>.Timestamp.=.<span.class="t
9500 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e ok-kw">struct</span>.{.....<span
9520 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 54 68 65 20 6e 75 6d .class="tok-comment">///.The.num
9540 62 65 72 20 6f 66 20 73 65 63 6f 6e 64 73 20 73 69 6e 63 65 20 74 68 65 20 65 70 6f 63 68 20 28 ber.of.seconds.since.the.epoch.(
9560 74 68 69 73 20 69 73 20 61 6c 73 6f 20 61 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 29 2e 3c 2f 73 70 this.is.also.a.doc.comment).</sp
9580 61 6e 3e 0a 20 20 20 20 73 65 63 6f 6e 64 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f an>.....seconds:.<span.class="to
95a0 6b 2d 74 79 70 65 22 3e 69 36 34 3c 2f 73 70 61 6e 3e 2c 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-type">i64</span>,..<span.class
95c0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 73 69 67 6e 65 64 20 73 6f 20 77 65 20 63 ="tok-comment">//.signed.so.we.c
95e0 61 6e 20 72 65 70 72 65 73 65 6e 74 20 70 72 65 2d 31 39 37 30 20 28 6e 6f 74 20 61 20 64 6f 63 an.represent.pre-1970.(not.a.doc
9600 20 63 6f 6d 6d 65 6e 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 .comment)</span>.....<span.class
9620 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 ="tok-comment">///.The.number.of
9640 20 6e 61 6e 6f 73 65 63 6f 6e 64 73 20 70 61 73 74 20 74 68 65 20 73 65 63 6f 6e 64 20 28 64 6f .nanoseconds.past.the.second.(do
9660 63 20 63 6f 6d 6d 65 6e 74 20 61 67 61 69 6e 29 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 6e 61 6e c.comment.again).</span>.....nan
9680 6f 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f os:.<span.class="tok-type">u32</
96a0 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d span>,......<span.class="tok-com
96c0 6d 65 6e 74 22 3e 2f 2f 2f 20 52 65 74 75 72 6e 73 20 61 20 60 54 69 6d 65 73 74 61 6d 70 60 20 ment">///.Returns.a.`Timestamp`.
96e0 73 74 72 75 63 74 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 55 6e 69 78 20 65 70 6f struct.representing.the.Unix.epo
9700 63 68 3b 20 74 68 61 74 20 69 73 2c 20 74 68 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 ch;.that.is,.the</span>.....<spa
9720 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 6d 6f 6d 65 6e 74 n.class="tok-comment">///.moment
9740 20 6f 66 20 31 39 37 30 20 4a 61 6e 20 31 20 30 30 3a 30 30 3a 30 30 20 55 54 43 20 28 74 68 69 .of.1970.Jan.1.00:00:00.UTC.(thi
9760 73 20 69 73 20 61 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 20 74 6f 6f 29 2e 3c 2f 73 70 61 6e 3e 0a s.is.a.doc.comment.too).</span>.
9780 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 ....<span.class="tok-kw">pub</sp
97a0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 an>.<span.class="tok-kw">fn</spa
97c0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 75 6e 69 78 45 70 6f 63 n>.<span.class="tok-fn">unixEpoc
97e0 68 3c 2f 73 70 61 6e 3e 28 29 20 54 69 6d 65 73 74 61 6d 70 20 7b 0a 20 20 20 20 20 20 20 20 3c h</span>().Timestamp.{.........<
9800 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e span.class="tok-kw">return</span
9820 3e 20 54 69 6d 65 73 74 61 6d 70 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 73 65 63 6f 6e 64 >.Timestamp{..............second
9840 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f s.=.<span.class="tok-number">0</
9860 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 6e 61 6e 6f 73 20 3d 20 3c 73 70 61 span>,..............nanos.=.<spa
9880 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2c 0a 20 n.class="tok-number">0</span>,..
98a0 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 7d 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a .......};.....}.};</code></pre>.
98c0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 44 6f 63 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 ......<p>.......Doc.comments.are
98e0 20 6f 6e 6c 79 20 61 6c 6c 6f 77 65 64 20 69 6e 20 63 65 72 74 61 69 6e 20 70 6c 61 63 65 73 3b .only.allowed.in.certain.places;
9900 20 65 76 65 6e 74 75 61 6c 6c 79 2c 20 69 74 20 77 69 6c 6c 0a 20 20 20 20 20 20 62 65 63 6f 6d .eventually,.it.will.......becom
9920 65 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 74 6f 20 68 61 76 65 20 61 20 64 6f 63 20 e.a.compile.error.to.have.a.doc.
9940 63 6f 6d 6d 65 6e 74 20 69 6e 20 61 6e 20 75 6e 65 78 70 65 63 74 65 64 20 70 6c 61 63 65 2c 20 comment.in.an.unexpected.place,.
9960 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 69 6e 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 61 such.as.......in.the.middle.of.a
9980 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 6f 72 20 6a 75 73 74 20 62 65 66 6f 72 65 20 61 20 6e n.expression,.or.just.before.a.n
99a0 6f 6e 2d 64 6f 63 20 63 6f 6d 6d 65 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 on-doc.comment........</p>......
99c0 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 56 61 6c 75 65 73 22 3e 3c ...............<h1.id="Values"><
99e0 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 56 61 6c 75 65 73 22 3e 56 61 6c 75 65 73 3c 2f 61 3e 20 a.href="#toc-Values">Values</a>.
9a00 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 56 61 6c 75 65 73 22 3e c2 a7 <a.class="hdr".href="#Values">..
9a20 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 </a></h1>........<p.class="file"
9a40 3e 76 61 6c 75 65 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d >values.zig</p><pre><code.class=
9a60 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e "zig"><span.class="tok-comment">
9a80 2f 2f 20 54 6f 70 2d 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 72 65 20 6f 72 //.Top-level.declarations.are.or
9aa0 64 65 72 2d 69 6e 64 65 70 65 6e 64 65 6e 74 3a 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c der-independent:</span>.<span.cl
9ac0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d ass="tok-kw">const</span>.warn.=
9ae0 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .std.debug.warn;.<span.class="to
9b00 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 k-kw">const</span>.std.=.<span.c
9b20 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
9b40 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
9b60 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f d&quot;</span>);.<span.class="to
9b80 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 73 20 3d 20 73 74 64 2e 6f 73 3b 0a k-kw">const</span>.os.=.std.os;.
9ba0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
9bc0 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 >.assert.=.std.debug.assert;..<s
9be0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
9c00 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 pan.class="tok-kw">fn</span>.<sp
9c20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 an.class="tok-fn">main</span>().
9c40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 <span.class="tok-type">void</spa
9c60 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e n>.{.....<span.class="tok-commen
9c80 74 22 3e 2f 2f 20 69 6e 74 65 67 65 72 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 t">//.integers</span>.....<span.
9ca0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 6e 65 5f class="tok-kw">const</span>.one_
9cc0 70 6c 75 73 5f 6f 6e 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 plus_one:.<span.class="tok-type"
9ce0 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e >i32</span>.=.<span.class="tok-n
9d00 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 umber">1</span>.+.<span.class="t
9d20 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 77 61 72 6e 28 3c 73 ok-number">1</span>;.....warn(<s
9d40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 31 20 2b 20 31 20 pan.class="tok-str">&quot;1.+.1.
9d60 3d 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 6f 6e 65 5f 70 6c 75 73 5f 6f 6e =.{}\n&quot;</span>,.one_plus_on
9d80 65 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e e);......<span.class="tok-commen
9da0 74 22 3e 2f 2f 20 66 6c 6f 61 74 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c t">//.floats</span>.....<span.cl
9dc0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 65 76 65 6e 5f ass="tok-kw">const</span>.seven_
9de0 64 69 76 5f 74 68 72 65 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 div_three:.<span.class="tok-type
9e00 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">f32</span>.=.<span.class="tok-
9e20 6e 75 6d 62 65 72 22 3e 37 2e 30 3c 2f 73 70 61 6e 3e 20 2f 20 3c 73 70 61 6e 20 63 6c 61 73 73 number">7.0</span>./.<span.class
9e40 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 2e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 77 61 ="tok-number">3.0</span>;.....wa
9e60 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 37 rn(<span.class="tok-str">&quot;7
9e80 2e 30 20 2f 20 33 2e 30 20 3d 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 73 65 .0./.3.0.=.{}\n&quot;</span>,.se
9ea0 76 65 6e 5f 64 69 76 5f 74 68 72 65 65 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ven_div_three);......<span.class
9ec0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 62 6f 6f 6c 65 61 6e 3c 2f 73 70 61 6e 3e ="tok-comment">//.boolean</span>
9ee0 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e .....warn(<span.class="tok-str">
9f00 26 71 75 6f 74 3b 7b 7d 5c 6e 7b 7d 5c 6e 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c &quot;{}\n{}\n{}\n&quot;</span>,
9f20 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e .........<span.class="tok-null">
9f40 74 72 75 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 true</span>.<span.class="tok-kw"
9f60 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c >and</span>.<span.class="tok-nul
9f80 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 l">false</span>,.........<span.c
9fa0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 lass="tok-null">true</span>.<spa
9fc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e n.class="tok-kw">or</span>.<span
9fe0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 0a .class="tok-null">false</span>,.
a000 20 20 20 20 20 20 20 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e ........!<span.class="tok-null">
a020 74 72 75 65 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 true</span>);......<span.class="
a040 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 70 74 69 6f 6e 61 6c 3c 2f 73 70 61 6e 3e 0a tok-comment">//.optional</span>.
a060 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 ....<span.class="tok-kw">var</sp
a080 61 6e 3e 20 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 3a 20 3f 5b 5d 3c 73 70 61 6e 20 63 6c 61 an>.optional_value:.?[]<span.cla
a0a0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ss="tok-kw">const</span>.<span.c
a0c0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 lass="tok-type">u8</span>.=.<spa
a0e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a n.class="tok-null">null</span>;.
a100 20 20 20 20 61 73 73 65 72 74 28 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 20 3d 3d 20 3c 73 70 ....assert(optional_value.==.<sp
a120 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 29 an.class="tok-null">null</span>)
a140 3b 0a 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 ;......warn(<span.class="tok-str
a160 22 3e 26 71 75 6f 74 3b 5c 6e 6f 70 74 69 6f 6e 61 6c 20 31 5c 6e 74 79 70 65 3a 20 7b 7d 5c 6e ">&quot;\noptional.1\ntype:.{}\n
a180 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 value:.{}\n&quot;</span>,.......
a1a0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 ..<span.class="tok-builtin">@typ
a1c0 65 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 eName</span>(<span.class="tok-bu
a1e0 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6f 70 74 69 6f 6e 61 6c 5f 76 iltin">@typeOf</span>(optional_v
a200 61 6c 75 65 29 29 2c 20 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 29 3b 0a 0a 20 20 20 20 6f 70 alue)),.optional_value);......op
a220 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d tional_value.=.<span.class="tok-
a240 73 74 72 22 3e 26 71 75 6f 74 3b 68 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 str">&quot;hi&quot;</span>;.....
a260 61 73 73 65 72 74 28 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 20 21 3d 20 3c 73 70 61 6e 20 63 assert(optional_value.!=.<span.c
a280 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 lass="tok-null">null</span>);...
a2a0 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 ...warn(<span.class="tok-str">&q
a2c0 75 6f 74 3b 5c 6e 6f 70 74 69 6f 6e 61 6c 20 32 5c 6e 74 79 70 65 3a 20 7b 7d 5c 6e 76 61 6c 75 uot;\noptional.2\ntype:.{}\nvalu
a2e0 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 e:.{}\n&quot;</span>,.........<s
a300 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d pan.class="tok-builtin">@typeNam
a320 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 e</span>(<span.class="tok-builti
a340 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 n">@typeOf</span>(optional_value
a360 29 29 2c 20 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 )),.optional_value);......<span.
a380 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 65 72 72 6f 72 20 75 6e 69 class="tok-comment">//.error.uni
a3a0 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b on</span>.....<span.class="tok-k
a3c0 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 3a 20 3c w">var</span>.number_or_error:.<
a3e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f span.class="tok-type">anyerror</
a400 73 70 61 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 span>!<span.class="tok-type">i32
a420 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 </span>.=.<span.class="tok-kw">e
a440 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 41 72 67 4e 6f 74 46 6f 75 6e 64 3b 0a 0a 20 20 20 20 77 61 rror</span>.ArgNotFound;......wa
a460 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 5c rn(<span.class="tok-str">&quot;\
a480 6e 65 72 72 6f 72 20 75 6e 69 6f 6e 20 31 5c 6e 74 79 70 65 3a 20 7b 7d 5c 6e 76 61 6c 75 65 3a nerror.union.1\ntype:.{}\nvalue:
a4a0 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 .{}\n&quot;</span>,.........<spa
a4c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 3c n.class="tok-builtin">@typeName<
a4e0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 /span>(<span.class="tok-builtin"
a500 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 29 >@typeOf</span>(number_or_error)
a520 29 2c 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 29 3b 0a 0a 20 20 20 20 6e 75 6d 62 65 72 ),.number_or_error);......number
a540 5f 6f 72 5f 65 72 72 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d _or_error.=.<span.class="tok-num
a560 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 ber">1234</span>;......warn(<spa
a580 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 5c 6e 65 72 72 6f 72 20 n.class="tok-str">&quot;\nerror.
a5a0 75 6e 69 6f 6e 20 32 5c 6e 74 79 70 65 3a 20 7b 7d 5c 6e 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 union.2\ntype:.{}\nvalue:.{}\n&q
a5c0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 uot;</span>,.........<span.class
a5e0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 ="tok-builtin">@typeName</span>(
a600 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f <span.class="tok-builtin">@typeO
a620 66 3c 2f 73 70 61 6e 3e 28 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 29 29 2c 20 6e 75 6d 62 f</span>(number_or_error)),.numb
a640 65 72 5f 6f 72 5f 65 72 72 6f 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 er_or_error);.}</code></pre><pre
a660 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 ><code.class="shell">$.zig.build
a680 2d 65 78 65 20 76 61 6c 75 65 73 2e 7a 69 67 0a 24 20 2e 2f 76 61 6c 75 65 73 0a 31 20 2b 20 31 -exe.values.zig.$../values.1.+.1
a6a0 20 3d 20 32 0a 37 2e 30 20 2f 20 33 2e 30 20 3d 20 32 2e 33 33 33 33 33 33 32 35 65 2b 30 30 0a .=.2.7.0./.3.0.=.2.33333325e+00.
a6c0 66 61 6c 73 65 0a 74 72 75 65 0a 66 61 6c 73 65 0a 0a 6f 70 74 69 6f 6e 61 6c 20 31 0a 74 79 70 false.true.false..optional.1.typ
a6e0 65 3a 20 3f 5b 5d 63 6f 6e 73 74 20 75 38 0a 76 61 6c 75 65 3a 20 6e 75 6c 6c 0a 0a 6f 70 74 69 e:.?[]const.u8.value:.null..opti
a700 6f 6e 61 6c 20 32 0a 74 79 70 65 3a 20 3f 5b 5d 63 6f 6e 73 74 20 75 38 0a 76 61 6c 75 65 3a 20 onal.2.type:.?[]const.u8.value:.
a720 68 69 0a 0a 65 72 72 6f 72 20 75 6e 69 6f 6e 20 31 0a 74 79 70 65 3a 20 61 6e 79 65 72 72 6f 72 hi..error.union.1.type:.anyerror
a740 21 69 33 32 0a 76 61 6c 75 65 3a 20 65 72 72 6f 72 2e 41 72 67 4e 6f 74 46 6f 75 6e 64 0a 0a 65 !i32.value:.error.ArgNotFound..e
a760 72 72 6f 72 20 75 6e 69 6f 6e 20 32 0a 74 79 70 65 3a 20 61 6e 79 65 72 72 6f 72 21 69 33 32 0a rror.union.2.type:.anyerror!i32.
a780 76 61 6c 75 65 3a 20 31 32 33 34 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 value:.1234.</code></pre>.......
a7a0 20 3c 68 32 20 69 64 3d 22 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 3c 61 20 68 72 65 .<h2.id="Primitive-Types"><a.hre
a7c0 66 3d 22 23 74 6f 63 2d 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 50 72 69 6d 69 74 69 f="#toc-Primitive-Types">Primiti
a7e0 76 65 20 54 79 70 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 ve.Types</a>.<a.class="hdr".href
a800 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a ="#Primitive-Types">..</a></h2>.
a820 0a 20 20 20 20 20 20 3c 64 69 76 20 63 6c 61 73 73 3d 22 74 61 62 6c 65 2d 77 72 61 70 70 65 72 .......<div.class="table-wrapper
a840 22 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 ">.......<table>.........<tr>...
a860 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 0a 20 20 ........<th>.............Name...
a880 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 ........</th>...........<th>....
a8a0 20 20 20 20 20 20 20 20 20 43 20 45 71 75 69 76 61 6c 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 .........C.Equivalent...........
a8c0 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 </th>...........<th>............
a8e0 20 44 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 .Description...........</th>....
a900 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 .....</tr>.........<tr>.........
a920 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ....<td><code.class="zig"><span.
a940 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 class="tok-type">i8</span></code
a960 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ></td>...........<td><code.class
a980 3d 22 63 22 3e 69 6e 74 38 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 ="c">int8_t</code></td>.........
a9a0 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 38 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a ..<td>signed.8-bit.integer</td>.
a9c0 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 ........</tr>.........<tr>......
a9e0 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .......<td><code.class="zig"><sp
aa00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 3c 2f 63 an.class="tok-type">u8</span></c
aa20 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c ode></td>...........<td><code.cl
aa40 61 73 73 3d 22 63 22 3e 75 69 6e 74 38 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 ass="c">uint8_t</code></td>.....
aa60 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 38 2d 62 69 74 20 69 6e 74 65 67 65 72 ......<td>unsigned.8-bit.integer
aa80 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e </td>.........</tr>.........<tr>
aaa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .............<td><code.class="zi
aac0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 31 36 3c 2f 73 g"><span.class="tok-type">i16</s
aae0 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c pan></code></td>...........<td><
ab00 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 69 6e 74 31 36 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 code.class="c">int16_t</code></t
ab20 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 31 36 2d 62 69 74 20 69 d>...........<td>signed.16-bit.i
ab40 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 nteger</td>.........</tr>.......
ab60 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 ..<tr>.............<td><code.cla
ab80 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ss="zig"><span.class="tok-type">
aba0 75 31 36 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 u16</span></code></td>..........
abc0 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 75 69 6e 74 31 36 5f 74 3c 2f 63 .<td><code.class="c">uint16_t</c
abe0 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 ode></td>...........<td>unsigned
ac00 20 31 36 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 .16-bit.integer</td>.........</t
ac20 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e r>.........<tr>.............<td>
ac40 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
ac60 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a ok-type">i32</span></code></td>.
ac80 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 69 6e ..........<td><code.class="c">in
aca0 74 33 32 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e t32_t</code></td>...........<td>
acc0 73 69 67 6e 65 64 20 33 32 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 signed.32-bit.integer</td>......
ace0 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 ...</tr>.........<tr>...........
ad00 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ..<td><code.class="zig"><span.cl
ad20 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ass="tok-type">u32</span></code>
ad40 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d </td>...........<td><code.class=
ad60 22 63 22 3e 75 69 6e 74 33 32 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 "c">uint32_t</code></td>........
ad80 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 33 32 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f ...<td>unsigned.32-bit.integer</
ada0 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 td>.........</tr>.........<tr>..
adc0 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 ...........<td><code.class="zig"
ade0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 36 34 3c 2f 73 70 61 ><span.class="tok-type">i64</spa
ae00 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f n></code></td>...........<td><co
ae20 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 69 6e 74 36 34 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e de.class="c">int64_t</code></td>
ae40 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 36 34 2d 62 69 74 20 69 6e 74 ...........<td>signed.64-bit.int
ae60 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 eger</td>.........</tr>.........
ae80 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 <tr>.............<td><code.class
aea0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 ="zig"><span.class="tok-type">u6
aec0 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 4</span></code></td>...........<
aee0 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 75 69 6e 74 36 34 5f 74 3c 2f 63 6f 64 td><code.class="c">uint64_t</cod
af00 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 36 e></td>...........<td>unsigned.6
af20 34 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 4-bit.integer</td>.........</tr>
af40 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 .........<tr>.............<td><c
af60 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
af80 2d 74 79 70 65 22 3e 69 31 32 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 -type">i128</span></code></td>..
afa0 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 5f 5f 69 .........<td><code.class="c">__i
afc0 6e 74 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e nt128</code></td>...........<td>
afe0 73 69 67 6e 65 64 20 31 32 38 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 signed.128-bit.integer</td>.....
b000 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 ....</tr>.........<tr>..........
b020 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ...<td><code.class="zig"><span.c
b040 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 32 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 lass="tok-type">u128</span></cod
b060 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 e></td>...........<td><code.clas
b080 73 3d 22 63 22 3e 75 6e 73 69 67 6e 65 64 20 5f 5f 69 6e 74 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f s="c">unsigned.__int128</code></
b0a0 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 31 32 38 2d 62 td>...........<td>unsigned.128-b
b0c0 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 it.integer</td>.........</tr>...
b0e0 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 ......<tr>.............<td><code
b100 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 .class="zig"><span.class="tok-ty
b120 70 65 22 3e 69 73 69 7a 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 pe">isize</span></code></td>....
b140 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 69 6e 74 70 74 .......<td><code.class="c">intpt
b160 72 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 r_t</code></td>...........<td>si
b180 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 73 69 7a 65 64 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a gned.pointer.sized.integer</td>.
b1a0 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 ........</tr>.........<tr>......
b1c0 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .......<td><code.class="zig"><sp
b1e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e an.class="tok-type">usize</span>
b200 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 </code></td>...........<td><code
b220 20 63 6c 61 73 73 3d 22 63 22 3e 75 69 6e 74 70 74 72 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e .class="c">uintptr_t</code></td>
b240 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 ...........<td>unsigned.pointer.
b260 73 69 7a 65 64 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e sized.integer</td>.........</tr>
b280 0a 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c ..........<tr>.............<td><
b2a0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
b2c0 6b 2d 74 79 70 65 22 3e 63 5f 73 68 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 k-type">c_short</span></code></t
b2e0 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 d>...........<td><code.class="c"
b300 3e 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 >short</code></td>...........<td
b320 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 >for.ABI.compatibility.with.C</t
b340 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 d>.........</tr>.........<tr>...
b360 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ..........<td><code.class="zig">
b380 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 75 73 68 6f 72 74 3c <span.class="tok-type">c_ushort<
b3a0 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 /span></code></td>...........<td
b3c0 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 74 3c ><code.class="c">unsigned.short<
b3e0 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 /code></td>...........<td>for.AB
b400 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 I.compatibility.with.C</td>.....
b420 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 ....</tr>.........<tr>..........
b440 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ...<td><code.class="zig"><span.c
b460 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f lass="tok-type">c_int</span></co
b480 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 de></td>...........<td><code.cla
b4a0 73 73 3d 22 63 22 3e 69 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 ss="c">int</code></td>..........
b4c0 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 .<td>for.ABI.compatibility.with.
b4e0 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 C</td>.........</tr>.........<tr
b500 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a >.............<td><code.class="z
b520 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 75 69 6e ig"><span.class="tok-type">c_uin
b540 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c t</span></code></td>...........<
b560 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 75 6e 73 69 67 6e 65 64 20 69 6e 74 3c td><code.class="c">unsigned.int<
b580 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 /code></td>...........<td>for.AB
b5a0 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 I.compatibility.with.C</td>.....
b5c0 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 ....</tr>.........<tr>..........
b5e0 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ...<td><code.class="zig"><span.c
b600 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 6c 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 lass="tok-type">c_long</span></c
b620 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c ode></td>...........<td><code.cl
b640 61 73 73 3d 22 63 22 3e 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 ass="c">long</code></td>........
b660 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 ...<td>for.ABI.compatibility.wit
b680 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c h.C</td>.........</tr>.........<
b6a0 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d tr>.............<td><code.class=
b6c0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 75 "zig"><span.class="tok-type">c_u
b6e0 6c 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 long</span></code></td>.........
b700 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 75 6e 73 69 67 6e 65 64 20 6c ..<td><code.class="c">unsigned.l
b720 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f ong</code></td>...........<td>fo
b740 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a r.ABI.compatibility.with.C</td>.
b760 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 ........</tr>.........<tr>......
b780 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .......<td><code.class="zig"><sp
b7a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 6c 6f 6e 67 6c 6f 6e 67 3c 2f an.class="tok-type">c_longlong</
b7c0 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e span></code></td>...........<td>
b7e0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 6c 6f 6e 67 20 6c 6f 6e 67 3c 2f 63 6f 64 65 3e <code.class="c">long.long</code>
b800 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 </td>...........<td>for.ABI.comp
b820 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f atibility.with.C</td>.........</
b840 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 tr>.........<tr>.............<td
b860 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
b880 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 75 6c 6f 6e 67 6c 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f tok-type">c_ulonglong</span></co
b8a0 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 de></td>...........<td><code.cla
b8c0 73 73 3d 22 63 22 3e 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 6c 6f 6e 67 3c 2f 63 6f 64 65 3e ss="c">unsigned.long.long</code>
b8e0 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 </td>...........<td>for.ABI.comp
b900 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f atibility.with.C</td>.........</
b920 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 tr>.........<tr>.............<td
b940 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
b960 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 6c 6f 6e 67 64 6f 75 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 tok-type">c_longdouble</span></c
b980 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c ode></td>...........<td><code.cl
b9a0 61 73 73 3d 22 63 22 3e 6c 6f 6e 67 20 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a ass="c">long.double</code></td>.
b9c0 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c ..........<td>for.ABI.compatibil
b9e0 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 ity.with.C</td>.........</tr>...
ba00 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 ......<tr>.............<td><code
ba20 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 .class="zig"><span.class="tok-ty
ba40 70 65 22 3e 63 5f 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 pe">c_void</span></code></td>...
ba60 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 76 6f 69 64 ........<td><code.class="c">void
ba80 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 </code></td>...........<td>for.A
baa0 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 BI.compatibility.with.C</td>....
bac0 20 20 20 20 20 3c 2f 74 72 3e 0a 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 .....</tr>..........<tr>........
bae0 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e .....<td><code.class="zig"><span
bb00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 36 3c 2f 73 70 61 6e 3e 3c 2f 63 6f .class="tok-type">f16</span></co
bb20 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 de></td>...........<td><code.cla
bb40 73 73 3d 22 63 22 3e 5f 46 6c 6f 61 74 31 36 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 ss="c">_Float16</code></td>.....
bb60 20 20 20 20 20 20 3c 74 64 3e 31 36 2d 62 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 ......<td>16-bit.floating.point.
bb80 28 31 30 2d 62 69 74 20 6d 61 6e 74 69 73 73 61 29 20 49 45 45 45 2d 37 35 34 2d 32 30 30 38 20 (10-bit.mantissa).IEEE-754-2008.
bba0 62 69 6e 61 72 79 31 36 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 binary16</td>.........</tr>.....
bbc0 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 ....<tr>.............<td><code.c
bbe0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
bc00 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 ">f32</span></code></td>........
bc20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 66 6c 6f 61 74 3c 2f 63 6f ...<td><code.class="c">float</co
bc40 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 33 32 2d 62 69 74 20 66 6c de></td>...........<td>32-bit.fl
bc60 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 32 33 2d 62 69 74 20 6d 61 6e 74 69 73 73 61 29 20 49 oating.point.(23-bit.mantissa).I
bc80 45 45 45 2d 37 35 34 2d 32 30 30 38 20 62 69 6e 61 72 79 33 32 3c 2f 74 64 3e 0a 20 20 20 20 20 EEE-754-2008.binary32</td>......
bca0 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 ...</tr>.........<tr>...........
bcc0 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ..<td><code.class="zig"><span.cl
bce0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ass="tok-type">f64</span></code>
bd00 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d </td>...........<td><code.class=
bd20 22 63 22 3e 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 "c">double</code></td>..........
bd40 20 3c 74 64 3e 36 34 2d 62 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 35 32 2d 62 .<td>64-bit.floating.point.(52-b
bd60 69 74 20 6d 61 6e 74 69 73 73 61 29 20 49 45 45 45 2d 37 35 34 2d 32 30 30 38 20 62 69 6e 61 72 it.mantissa).IEEE-754-2008.binar
bd80 79 36 34 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c y64</td>.........</tr>.........<
bda0 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d tr>.............<td><code.class=
bdc0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 32 "zig"><span.class="tok-type">f12
bde0 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 8</span></code></td>............
be00 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 5f 46 6c 6f 61 74 31 32 38 3c 2f .<td><code.class="c">_Float128</
be20 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 31 32 38 2d 62 69 74 code></td>...........<td>128-bit
be40 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 31 31 32 2d 62 69 74 20 6d 61 6e 74 69 73 73 .floating.point.(112-bit.mantiss
be60 61 29 20 49 45 45 45 2d 37 35 34 2d 32 30 30 38 20 62 69 6e 61 72 79 31 32 38 3c 2f 74 64 3e 0a a).IEEE-754-2008.binary128</td>.
be80 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 ........</tr>.........<tr>......
bea0 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .......<td><code.class="zig"><sp
bec0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c an.class="tok-type">bool</span><
bee0 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 /code></td>...........<td><code.
bf00 63 6c 61 73 73 3d 22 63 22 3e 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 class="c">bool</code></td>......
bf20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e .....<td><code.class="zig"><span
bf40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 .class="tok-null">true</span></c
bf60 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ode>.or.<code.class="zig"><span.
bf80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 class="tok-null">false</span></c
bfa0 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 ode></td>.........</tr>.........
bfc0 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 <tr>.............<td><code.class
bfe0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f ="zig"><span.class="tok-type">vo
c000 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 id</span></code></td>...........
c020 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 30 20 <td>(none)</td>...........<td>0.
c040 62 69 74 20 74 79 70 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 bit.type</td>.........</tr>.....
c060 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 ....<tr>.............<td><code.c
c080 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
c0a0 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 ">noreturn</span></code></td>...
c0c0 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 ........<td>(none)</td>.........
c0e0 20 20 3c 74 64 3e 74 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a ..<td>the.type.of.<code.class="z
c100 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f ig"><span.class="tok-kw">break</
c120 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e span></code>,.<code.class="zig">
c140 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 74 69 6e 75 65 3c 2f 73 <span.class="tok-kw">continue</s
c160 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c pan></code>,.<code.class="zig"><
c180 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e span.class="tok-kw">return</span
c1a0 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 ></code>,.<code.class="zig"><spa
c1c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 n.class="tok-kw">unreachable</sp
c1e0 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 an></code>,.and.<code.class="zig
c200 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 "><span.class="tok-kw">while</sp
c220 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 an>.(<span.class="tok-null">true
c240 3c 2f 73 70 61 6e 3e 29 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 </span>).{}</code></td>.........
c260 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c </tr>.........<tr>.............<
c280 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 td><code.class="zig"><span.class
c2a0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f ="tok-type">type</span></code></
c2c0 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 td>...........<td>(none)</td>...
c2e0 20 20 20 20 20 20 20 20 3c 74 64 3e 74 68 65 20 74 79 70 65 20 6f 66 20 74 79 70 65 73 3c 2f 74 ........<td>the.type.of.types</t
c300 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 d>.........</tr>.........<tr>...
c320 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ..........<td><code.class="zig">
c340 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c <span.class="tok-type">anyerror<
c360 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 /span></code></td>...........<td
c380 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 61 6e 20 65 72 >(none)</td>...........<td>an.er
c3a0 72 6f 72 20 63 6f 64 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 ror.code</td>.........</tr>.....
c3c0 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 ....<tr>.............<td><code.c
c3e0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
c400 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 ">comptime_int</span></code></td
c420 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 >...........<td>(none)</td>.....
c440 20 20 20 20 20 20 3c 74 64 3e 4f 6e 6c 79 20 61 6c 6c 6f 77 65 64 20 66 6f 72 20 3c 61 20 68 72 ......<td>Only.allowed.for.<a.hr
c460 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2d 6b 6e 6f 77 ef="#comptime">comptime</a>-know
c480 6e 20 76 61 6c 75 65 73 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 69 6e 74 65 67 65 72 20 6c 69 n.values..The.type.of.integer.li
c4a0 74 65 72 61 6c 73 2e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 terals.</td>.........</tr>......
c4c0 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c ...<tr>.............<td><code.cl
c4e0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ass="zig"><span.class="tok-type"
c500 3e 63 6f 6d 70 74 69 6d 65 5f 66 6c 6f 61 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 >comptime_float</span></code></t
c520 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 d>...........<td>(none)</td>....
c540 20 20 20 20 20 20 20 3c 74 64 3e 4f 6e 6c 79 20 61 6c 6c 6f 77 65 64 20 66 6f 72 20 3c 61 20 68 .......<td>Only.allowed.for.<a.h
c560 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2d 6b 6e 6f ref="#comptime">comptime</a>-kno
c580 77 6e 20 76 61 6c 75 65 73 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 66 6c 6f 61 74 20 6c 69 74 wn.values..The.type.of.float.lit
c5a0 65 72 61 6c 73 2e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 erals.</td>.........</tr>.......
c5c0 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 3c 70 3e 0a </table>.......</div>.......<p>.
c5e0 20 20 20 20 20 20 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 69 6e 74 65 67 65 72 ......In.addition.to.the.integer
c600 20 74 79 70 65 73 20 61 62 6f 76 65 2c 20 61 72 62 69 74 72 61 72 79 20 62 69 74 2d 77 69 64 74 .types.above,.arbitrary.bit-widt
c620 68 20 69 6e 74 65 67 65 72 73 20 63 61 6e 20 62 65 20 72 65 66 65 72 65 6e 63 65 64 20 62 79 20 h.integers.can.be.referenced.by.
c640 75 73 69 6e 67 0a 20 20 20 20 20 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 20 6f 66 20 3c 63 6f using.......an.identifier.of.<co
c660 64 65 3e 69 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 2f 63 6f 64 65 3e 75 3c 2f 63 6f 64 65 3e 20 66 de>i</code>.or.</code>u</code>.f
c680 6f 6c 6c 6f 77 65 64 20 62 79 20 64 69 67 69 74 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 ollowed.by.digits..For.example,.
c6a0 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 the.identifier.......<code.class
c6c0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 37 ="zig"><span.class="tok-type">i7
c6e0 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 66 65 72 73 20 74 6f 20 61 20 73 69 67 6e 65 </span></code>.refers.to.a.signe
c700 64 20 37 2d 62 69 74 20 69 6e 74 65 67 65 72 2e 20 54 68 65 20 6d 61 78 69 6d 75 6d 20 61 6c 6c d.7-bit.integer..The.maximum.all
c720 6f 77 65 64 20 62 69 74 2d 77 69 64 74 68 20 6f 66 20 61 6e 0a 20 20 20 20 20 20 69 6e 74 65 67 owed.bit-width.of.an.......integ
c740 65 72 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 er.type.is.<code.class="zig"><sp
c760 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 35 35 33 35 3c 2f 73 70 61 an.class="tok-number">65535</spa
c780 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 n></code>........</p>.......<p>S
c7a0 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 ee.also:</p><ul>.<li><a.href="#I
c7c0 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c ntegers">Integers</a></li>.<li><
c7e0 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e a.href="#Floats">Floats</a></li>
c800 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 61 3e 3c 2f 6c .<li><a.href="#void">void</a></l
c820 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c i>.<li><a.href="#Errors">Errors<
c840 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 54 79 70 65 22 3e /a></li>.<li><a.href="#IntType">
c860 40 49 6e 74 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a @IntType</a></li>.</ul>.........
c880 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 50 72 69 6d 69 74 69 76 65 2d 56 61 6c 75 65 73 22 3e ......<h2.id="Primitive-Values">
c8a0 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 50 72 69 6d 69 74 69 76 65 2d 56 61 6c 75 65 73 22 3e <a.href="#toc-Primitive-Values">
c8c0 50 72 69 6d 69 74 69 76 65 20 56 61 6c 75 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 Primitive.Values</a>.<a.class="h
c8e0 64 72 22 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 56 61 6c 75 65 73 22 3e c2 a7 3c dr".href="#Primitive-Values">..<
c900 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 64 69 76 20 63 6c 61 73 73 3d 22 74 61 62 6c /a></h2>........<div.class="tabl
c920 65 2d 77 72 61 70 70 65 72 22 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 e-wrapper">.......<table>.......
c940 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 ..<tr>...........<th>...........
c960 20 20 4e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 ..Name...........</th>..........
c980 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 .<th>.............Description...
c9a0 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 ........</th>.........</tr>.....
c9c0 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 ....<tr>.............<td><code.c
c9e0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c lass="zig"><span.class="tok-null
ca00 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 ">true</span></code>.and.<code.c
ca20 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c lass="zig"><span.class="tok-null
ca40 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 ">false</span></code></td>......
ca60 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .......<td><code.class="zig"><sp
ca80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c an.class="tok-type">bool</span><
caa0 2f 63 6f 64 65 3e 20 76 61 6c 75 65 73 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e /code>.values</td>.........</tr>
cac0 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 .........<tr>.............<td><c
cae0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
cb00 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 -null">null</span></code></td>..
cb20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 73 65 64 20 74 6f 20 73 65 74 20 61 6e 20 6f 70 ...........<td>used.to.set.an.op
cb40 74 69 6f 6e 61 6c 20 74 79 70 65 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 tional.type.to.<code.class="zig"
cb60 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 ><span.class="tok-null">null</sp
cb80 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 an></code></td>.........</tr>...
cba0 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 ......<tr>.............<td><code
cbc0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .class="zig"><span.class="tok-nu
cbe0 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e ll">undefined</span></code></td>
cc00 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 73 65 64 20 74 6f 20 6c 65 61 76 65 20 61 20 76 ...........<td>used.to.leave.a.v
cc20 61 6c 75 65 20 75 6e 73 70 65 63 69 66 69 65 64 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f alue.unspecified</td>.........</
cc40 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a tr>.......</table>.......</div>.
cc60 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c ......<p>See.also:</p><ul>.<li><
cc80 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 a.href="#Optionals">Optionals</a
cca0 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 6e 65 64 22 3e ></li>.<li><a.href="#undefined">
ccc0 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 undefined</a></li>.</ul>........
cce0 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 2d 61 .......<h2.id="String-Literals-a
cd00 6e 64 2d 43 68 61 72 61 63 74 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 nd-Character-Literals"><a.href="
cd20 23 74 6f 63 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 2d 61 6e 64 2d 43 68 61 72 61 63 74 #toc-String-Literals-and-Charact
cd40 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 20 61 6e 64 er-Literals">String.Literals.and
cd60 20 43 68 61 72 61 63 74 65 72 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 .Character.Literals</a>.<a.class
cd80 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 2d 61 6e ="hdr".href="#String-Literals-an
cda0 64 2d 43 68 61 72 61 63 74 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 d-Character-Literals">..</a></h2
cdc0 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 74 72 69 6e 67 20 6c 69 74 65 72 61 >........<p>.......String.litera
cde0 6c 73 20 61 72 65 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 20 62 79 74 65 20 61 72 72 61 79 73 ls.are.UTF-8.encoded.byte.arrays
ce00 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 68 61 ........</p>.......<p>.......Cha
ce20 72 61 63 74 65 72 20 6c 69 74 65 72 61 6c 73 20 68 61 76 65 20 74 79 70 65 20 3c 63 6f 64 65 20 racter.literals.have.type.<code.
ce40 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 class="zig"><span.class="tok-typ
ce60 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 74 e">comptime_int</span></code>,.t
ce80 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 he.same.as.......<a.href="#Integ
cea0 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 49 6e 74 65 67 65 72 20 4c 69 74 65 72 61 6c 73 3c 2f 61 er-Literals">Integer.Literals</a
cec0 3e 2e 20 41 6c 6c 20 3c 61 20 68 72 65 66 3d 22 23 45 73 63 61 70 65 2d 53 65 71 75 65 6e 63 65 >..All.<a.href="#Escape-Sequence
cee0 73 22 3e 45 73 63 61 70 65 20 53 65 71 75 65 6e 63 65 73 3c 2f 61 3e 20 61 72 65 20 76 61 6c 69 s">Escape.Sequences</a>.are.vali
cf00 64 20 69 6e 20 62 6f 74 68 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 20 20 20 20 d.in.both.string.literals.......
cf20 61 6e 64 20 63 68 61 72 61 63 74 65 72 20 6c 69 74 65 72 61 6c 73 2e 20 4f 6e 63 65 20 68 74 74 and.character.literals..Once.htt
cf40 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 ps://github.com/ziglang/zig/issu
cf60 65 73 2f 32 30 39 37 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2c 0a 20 20 20 20 20 20 63 68 es/2097.is.implemented,.......ch
cf80 61 72 61 63 74 65 72 20 6c 69 74 65 72 61 6c 73 20 77 69 6c 6c 20 62 65 20 61 6c 6c 6f 77 65 64 aracter.literals.will.be.allowed
cfa0 20 74 6f 20 68 61 76 65 20 61 20 73 69 6e 67 6c 65 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 20 .to.have.a.single.UTF-8.encoded.
cfc0 63 6f 64 65 70 6f 69 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 codepoint........</p>.......<p.c
cfe0 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f lass="file">test.zig</p><pre><co
d000 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
d020 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 kw">const</span>.assert.=.<span.
d040 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 class="tok-builtin">@import</spa
d060 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 n>(<span.class="tok-str">&quot;s
d080 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c td&quot;</span>).debug.assert;.<
d0a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
d0c0 20 6d 65 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 .mem.=.<span.class="tok-builtin"
d0e0 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
d100 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 65 -str">&quot;std&quot;</span>).me
d120 6d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 m;..<span.class="tok-kw">test</s
d140 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
d160 3b 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a ;string.literals&quot;</span>.{.
d180 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f ....<span.class="tok-comment">//
d1a0 20 49 6e 20 5a 69 67 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 69 73 20 61 6e 20 61 .In.Zig.a.string.literal.is.an.a
d1c0 72 72 61 79 20 6f 66 20 62 79 74 65 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 rray.of.bytes.</span>.....<span.
d1e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 6f 72 6d class="tok-kw">const</span>.norm
d200 61 6c 5f 62 79 74 65 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 al_bytes.=.<span.class="tok-str"
d220 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 >&quot;hello&quot;</span>;.....a
d240 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e ssert(<span.class="tok-builtin">
d260 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 29 20 3d 3d 20 @typeOf</span>(normal_bytes).==.
d280 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 [<span.class="tok-number">5</spa
d2a0 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 n>]<span.class="tok-type">u8</sp
d2c0 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 2e 6c 65 an>);.....assert(normal_bytes.le
d2e0 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c n.==.<span.class="tok-number">5<
d300 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 /span>);.....assert(normal_bytes
d320 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 [<span.class="tok-number">1</spa
d340 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 65 27 n>].==.<span.class="tok-str">'e'
d360 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 </span>);.....assert(<span.class
d380 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 65 27 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 ="tok-str">'e'</span>.==.<span.c
d3a0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 5c 78 36 35 27 3c 2f 73 70 61 6e 3e 29 3b 0a 20 lass="tok-str">'\x65'</span>);..
d3c0 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e ...assert(<span.class="tok-str">
d3e0 27 5c 75 7b 31 66 34 61 39 7d 27 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 '\u{1f4a9}'</span>.==.<span.clas
d400 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 38 31 36 39 3c 2f 73 70 61 6e 3e 29 3b 0a 20 s="tok-number">128169</span>);..
d420 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ...assert(mem.eql(<span.class="t
d440 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-type">u8</span>,.<span.class=
d460 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 "tok-str">&quot;hello&quot;</spa
d480 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b n>,.<span.class="tok-str">&quot;
d4a0 68 5c 78 36 35 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 0a 20 20 20 20 3c 73 h\x65llo&quot;</span>));......<s
d4c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 20 43 20 73 pan.class="tok-comment">//.A.C.s
d4e0 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 69 73 20 61 20 6e 75 6c 6c 20 74 65 72 6d 69 6e 61 74 tring.literal.is.a.null.terminat
d500 65 64 20 70 6f 69 6e 74 65 72 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ed.pointer.</span>.....<span.cla
d520 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6c 6c 5f 74 65 ss="tok-kw">const</span>.null_te
d540 72 6d 69 6e 61 74 65 64 5f 62 79 74 65 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f rminated_bytes.=.<span.class="to
d560 6b 2d 73 74 72 22 3e 63 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e k-str">c&quot;hello&quot;</span>
d580 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ;.....assert(<span.class="tok-bu
d5a0 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6e 75 6c 6c 5f 74 65 72 6d 69 iltin">@typeOf</span>(null_termi
d5c0 6e 61 74 65 64 5f 62 79 74 65 73 29 20 3d 3d 20 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 nated_bytes).==.[*]<span.class="
d5e0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">const</span>.<span.class
d600 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 ="tok-type">u8</span>);.....asse
d620 72 74 28 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 62 79 74 65 73 5b 3c 73 70 61 6e 20 63 rt(null_terminated_bytes[<span.c
d640 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c lass="tok-number">5</span>].==.<
d660 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
d680 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 );.}</code></pre><pre><code.clas
d6a0 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f s="shell">$.zig.test.test.zig.1/
d6c0 31 20 74 65 73 74 20 26 71 75 6f 74 3b 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 26 71 75 6f 1.test.&quot;string.literals&quo
d6e0 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 t;...OK.All.tests.passed..</code
d700 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c ></pre>........<p>See.also:</p><
d720 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 ul>.<li><a.href="#Arrays">Arrays
d740 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 5a 69 67 2d 54 65 73 74 </a></li>.<li><a.href="#Zig-Test
d760 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d ">Zig.Test</a></li>.<li><a.href=
d780 22 23 53 6f 75 72 63 65 2d 45 6e 63 6f 64 69 6e 67 22 3e 53 6f 75 72 63 65 20 45 6e 63 6f 64 69 "#Source-Encoding">Source.Encodi
d7a0 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d ng</a></li>.</ul>........<h3.id=
d7c0 22 45 73 63 61 70 65 2d 53 65 71 75 65 6e 63 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 "Escape-Sequences"><a.href="#toc
d7e0 2d 45 73 63 61 70 65 2d 53 65 71 75 65 6e 63 65 73 22 3e 45 73 63 61 70 65 20 53 65 71 75 65 6e -Escape-Sequences">Escape.Sequen
d800 63 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 73 ces</a>.<a.class="hdr".href="#Es
d820 63 61 70 65 2d 53 65 71 75 65 6e 63 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 cape-Sequences">..</a></h3>.....
d840 20 20 20 3c 64 69 76 20 63 6c 61 73 73 3d 22 74 61 62 6c 65 2d 77 72 61 70 70 65 72 22 3e 0a 20 ...<div.class="table-wrapper">..
d860 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 .....<table>.........<tr>.......
d880 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 73 63 61 70 65 20 53 65 71 75 ....<th>.............Escape.Sequ
d8a0 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c ence...........</th>...........<
d8c0 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 3c th>.............Name...........<
d8e0 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a /th>.........</tr>.........<tr>.
d900 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 6e 3c 2f 63 6f 64 65 3e 3c ............<td><code>\n</code><
d920 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 4e 65 77 6c 69 6e 65 3c 2f 74 64 3e 0a /td>...........<td>Newline</td>.
d940 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 ........</tr>.........<tr>......
d960 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a .......<td><code>\r</code></td>.
d980 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 43 61 72 72 69 61 67 65 20 52 65 74 75 72 6e 3c 2f 74 ..........<td>Carriage.Return</t
d9a0 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 d>.........</tr>.........<tr>...
d9c0 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 74 3c 2f 63 6f 64 65 3e 3c 2f 74 ..........<td><code>\t</code></t
d9e0 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 54 61 62 3c 2f 74 64 3e 0a 20 20 20 20 20 20 d>...........<td>Tab</td>.......
da00 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 ..</tr>.........<tr>............
da20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 5c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 .<td><code>\\</code></td>.......
da40 20 20 20 20 3c 74 64 3e 42 61 63 6b 73 6c 61 73 68 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c ....<td>Backslash</td>.........<
da60 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 /tr>.........<tr>.............<t
da80 64 3e 3c 63 6f 64 65 3e 5c 27 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 d><code>\'</code></td>..........
daa0 20 3c 74 64 3e 53 69 6e 67 6c 65 20 51 75 6f 74 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c .<td>Single.Quote</td>.........<
dac0 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 /tr>.........<tr>.............<t
dae0 64 3e 3c 63 6f 64 65 3e 5c 22 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 d><code>\"</code></td>..........
db00 20 3c 74 64 3e 44 6f 75 62 6c 65 20 51 75 6f 74 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c .<td>Double.Quote</td>.........<
db20 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 /tr>.........<tr>.............<t
db40 64 3e 3c 63 6f 64 65 3e 5c 78 4e 4e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 d><code>\xNN</code></td>........
db60 20 20 20 3c 74 64 3e 68 65 78 61 64 65 63 69 6d 61 6c 20 38 2d 62 69 74 20 63 68 61 72 61 63 74 ...<td>hexadecimal.8-bit.charact
db80 65 72 20 63 6f 64 65 20 28 32 20 64 69 67 69 74 73 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 er.code.(2.digits)</td>.........
dba0 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c </tr>.........<tr>.............<
dbc0 74 64 3e 3c 63 6f 64 65 3e 5c 75 7b 4e 4e 4e 4e 4e 4e 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a td><code>\u{NNNNNN}</code></td>.
dbe0 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 68 65 78 61 64 65 63 69 6d 61 6c 20 55 6e 69 63 6f 64 ..........<td>hexadecimal.Unicod
dc00 65 20 63 68 61 72 61 63 74 65 72 20 63 6f 64 65 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 20 28 e.character.code.UTF-8.encoded.(
dc20 31 20 6f 72 20 6d 6f 72 65 20 64 69 67 69 74 73 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 1.or.more.digits)</td>.........<
dc40 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 3c 2f 64 69 76 3e /tr>.......</table>.......</div>
dc60 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 .......<p>Note.that.the.maximum.
dc80 76 61 6c 69 64 20 55 6e 69 63 6f 64 65 20 70 6f 69 6e 74 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 valid.Unicode.point.is.<code.cla
dca0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 ss="zig"><span.class="tok-number
dcc0 22 3e 30 78 31 30 66 66 66 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 ">0x10ffff</span></code>.</p>...
dce0 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 72 ...........<h3.id="Multiline-Str
dd00 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4d 75 6c 74 ing-Literals"><a.href="#toc-Mult
dd20 69 6c 69 6e 65 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 4d 75 6c 74 69 6c 69 6e 65 iline-String-Literals">Multiline
dd40 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 .String.Literals</a>.<a.class="h
dd60 64 72 22 20 68 72 65 66 3d 22 23 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 72 69 6e 67 2d 4c 69 74 65 dr".href="#Multiline-String-Lite
dd80 72 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 rals">..</a></h3>........<p>....
dda0 20 20 20 4d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 68 61 76 ...Multiline.string.literals.hav
ddc0 65 20 6e 6f 20 65 73 63 61 70 65 73 20 61 6e 64 20 63 61 6e 20 73 70 61 6e 20 61 63 72 6f 73 73 e.no.escapes.and.can.span.across
dde0 20 6d 75 6c 74 69 70 6c 65 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 54 6f 20 73 74 61 72 74 20 .multiple.lines........To.start.
de00 61 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 20 75 73 65 20 a.multiline.string.literal,.use.
de20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 the.<code.class="zig"><span.clas
de40 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 6b s="tok-str">\\</span></code>.tok
de60 65 6e 2e 20 4a 75 73 74 20 6c 69 6b 65 20 61 20 63 6f 6d 6d 65 6e 74 2c 0a 20 20 20 20 20 20 74 en..Just.like.a.comment,.......t
de80 68 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 67 6f 65 73 20 75 6e 74 69 6c 20 74 68 65 he.string.literal.goes.until.the
dea0 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 20 54 68 65 20 65 6e 64 20 6f 66 20 74 68 65 .end.of.the.line..The.end.of.the
dec0 20 6c 69 6e 65 20 69 73 0a 20 20 20 20 20 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 .line.is.......not.included.in.t
dee0 68 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 he.string.literal........However
df00 2c 20 69 66 20 74 68 65 20 6e 65 78 74 20 6c 69 6e 65 20 62 65 67 69 6e 73 20 77 69 74 68 20 3c ,.if.the.next.line.begins.with.<
df20 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
df40 6b 2d 73 74 72 22 3e 5c 5c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 68 65 6e 20 61 20 6e k-str">\\</span></code>.then.a.n
df60 65 77 6c 69 6e 65 20 69 73 20 61 70 70 65 6e 64 65 64 20 61 6e 64 0a 20 20 20 20 20 20 74 68 65 ewline.is.appended.and.......the
df80 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 63 6f 6e 74 69 6e 75 65 73 2e 0a 20 20 20 20 20 .string.literal.continues.......
dfa0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .</p>.......<pre><code.class="zi
dfc0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 g"><span.class="tok-kw">const</s
dfe0 70 61 6e 3e 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 5f 69 6e 5f 63 20 3d 0a 20 20 20 20 3c 73 70 61 pan>.hello_world_in_c.=.....<spa
e000 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 23 69 6e 63 6c 75 64 65 20 26 6c 74 n.class="tok-str">\\#include.&lt
e020 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 6e 20 63 6c ;stdio.h&gt;.</span>....<span.cl
e040 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 ass="tok-str">\\.</span>....<spa
e060 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 69 6e 74 20 6d 61 69 6e 28 69 6e 74 n.class="tok-str">\\int.main(int
e080 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 3c 2f 73 70 61 6e 3e 20 20 20 .argc,.char.**argv).{.</span>...
e0a0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 20 20 20 20 70 72 69 .<span.class="tok-str">\\....pri
e0c0 6e 74 66 28 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 77 6f 72 6c 64 5c 6e 26 71 75 6f 74 3b 29 3b 0a ntf(&quot;hello.world\n&quot;);.
e0e0 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 </span>....<span.class="tok-str"
e100 3e 5c 5c 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 >\\....return.0;.</span>....<spa
e120 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 7d 0a 3c 2f 73 70 61 6e 3e 3b 3c 2f n.class="tok-str">\\}.</span>;</
e140 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 code></pre>.......<p>.......For.
e160 61 20 6d 75 6c 74 69 6c 69 6e 65 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 20 70 72 a.multiline.C.string.literal,.pr
e180 65 70 65 6e 64 20 3c 63 6f 64 65 3e 63 3c 2f 63 6f 64 65 3e 20 74 6f 20 65 61 63 68 20 3c 63 6f epend.<code>c</code>.to.each.<co
e1a0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
e1c0 73 74 72 22 3e 5c 5c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 str">\\</span></code>:.......</p
e1e0 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c >.......<pre><code.class="zig"><
e200 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
e220 20 63 5f 73 74 72 69 6e 67 5f 6c 69 74 65 72 61 6c 20 3d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c .c_string_literal.=.....<span.cl
e240 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 63 5c 5c 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b 73 74 ass="tok-str">c\\#include.&lt;st
e260 64 69 6f 2e 68 26 67 74 3b 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 dio.h&gt;.</span>....<span.class
e280 3d 22 74 6f 6b 2d 73 74 72 22 3e 63 5c 5c 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 6e 20 ="tok-str">c\\.</span>....<span.
e2a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 63 5c 5c 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 class="tok-str">c\\int.main(int.
e2c0 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 argc,.char.**argv).{.</span>....
e2e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 63 5c 5c 20 20 20 20 70 72 69 <span.class="tok-str">c\\....pri
e300 6e 74 66 28 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 77 6f 72 6c 64 5c 6e 26 71 75 6f 74 3b 29 3b 0a ntf(&quot;hello.world\n&quot;);.
e320 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 </span>....<span.class="tok-str"
e340 3e 63 5c 5c 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 >c\\....return.0;.</span>....<sp
e360 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 63 5c 5c 7d 0a 3c 2f 73 70 61 6e 3e 3b an.class="tok-str">c\\}.</span>;
e380 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e </code></pre>.......<p>.......In
e3a0 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 3c 63 6f 64 65 .this.example.the.variable.<code
e3c0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 5f 73 74 72 69 6e 67 5f 6c 69 74 65 72 61 6c 3c 2f 63 .class="zig">c_string_literal</c
e3e0 6f 64 65 3e 20 68 61 73 20 74 79 70 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ode>.has.type.<code.class="zig">
e400 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 [*]<span.class="tok-kw">const</s
e420 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f pan>.<span.class="tok-type">u8</
e440 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 68 61 73 20 61 20 74 65 72 span></code>.and.......has.a.ter
e460 6d 69 6e 61 74 69 6e 67 20 6e 75 6c 6c 20 62 79 74 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 minating.null.byte........</p>..
e480 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 .....<p>See.also:</p><ul>.<li><a
e4a0 20 68 72 65 66 3d 22 23 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 61 .href="#embedFile">@embedFile</a
e4c0 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 ></li>.</ul>....................
e4e0 20 20 3c 68 32 20 69 64 3d 22 41 73 73 69 67 6e 6d 65 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 ..<h2.id="Assignment"><a.href="#
e500 74 6f 63 2d 41 73 73 69 67 6e 6d 65 6e 74 22 3e 41 73 73 69 67 6e 6d 65 6e 74 3c 2f 61 3e 20 3c toc-Assignment">Assignment</a>.<
e520 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 73 73 69 67 6e 6d 65 6e 74 22 a.class="hdr".href="#Assignment"
e540 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 55 73 65 20 74 68 65 20 3c >..</a></h2>........<p>Use.the.<
e560 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
e580 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 k-kw">const</span></code>.keywor
e5a0 64 20 74 6f 20 61 73 73 69 67 6e 20 61 20 76 61 6c 75 65 20 74 6f 20 61 6e 20 69 64 65 6e 74 69 d.to.assign.a.value.to.an.identi
e5c0 66 69 65 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e fier:</p>.......<p.class="file">
e5e0 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 test.zig</p><pre><code.class="zi
e600 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 g"><span.class="tok-kw">const</s
e620 70 61 6e 3e 20 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 pan>.x.=.<span.class="tok-number
e640 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">1234</span>;..<span.class="tok
e660 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d -kw">fn</span>.<span.class="tok-
e680 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f fn">foo</span>().<span.class="to
e6a0 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 k-type">void</span>.{.....<span.
e6c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 74 20 77 6f 72 6b 73 20 class="tok-comment">//.It.works.
e6e0 61 74 20 67 6c 6f 62 61 6c 20 73 63 6f 70 65 20 61 73 20 77 65 6c 6c 20 61 73 20 69 6e 73 69 64 at.global.scope.as.well.as.insid
e700 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c e.functions.</span>.....<span.cl
e720 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 79 20 3d 20 3c 73 ass="tok-kw">const</span>.y.=.<s
e740 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 36 37 38 3c 2f 73 70 61 pan.class="tok-number">5678</spa
e760 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e n>;......<span.class="tok-commen
e780 74 22 3e 2f 2f 20 4f 6e 63 65 20 61 73 73 69 67 6e 65 64 2c 20 61 6e 20 69 64 65 6e 74 69 66 69 t">//.Once.assigned,.an.identifi
e7a0 65 72 20 63 61 6e 6e 6f 74 20 62 65 20 63 68 61 6e 67 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 er.cannot.be.changed.</span>....
e7c0 20 79 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 .y.+=.<span.class="tok-number">1
e7e0 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 </span>;.}..<span.class="tok-kw"
e800 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >test</span>.<span.class="tok-st
e820 72 22 3e 26 71 75 6f 74 3b 61 73 73 69 67 6e 6d 65 6e 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e r">&quot;assignment&quot;</span>
e840 20 7b 0a 20 20 20 20 66 6f 6f 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 .{.....foo();.}</code></pre><pre
e860 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 ><code.class="shell">$.zig.test.
e880 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d test.zig.<span.class="t0_1">/hom
e8a0 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a e/andy/dev/zig/docgen_tmp/test.z
e8c0 69 67 3a 38 3a 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f ig:8:7:.</span><span.class="t31_
e8e0 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 1">error:</span><span.class="t0_
e900 31 22 3e 20 63 61 6e 6e 6f 74 20 61 73 73 69 67 6e 20 74 6f 20 63 6f 6e 73 74 61 6e 74 3c 2f 73 1">.cannot.assign.to.constant</s
e920 70 61 6e 3e 0a 20 20 20 20 79 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 pan>.....y.+=.1;.......<span.cla
e940 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 ss="t32_1">^</span>.</code></pre
e960 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 >........<p><code.class="zig"><s
e980 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 3c pan.class="tok-kw">const</span><
e9a0 2f 63 6f 64 65 3e 20 61 70 70 6c 69 65 73 20 74 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 62 79 74 /code>.applies.to.all.of.the.byt
e9c0 65 73 20 74 68 61 74 20 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 20 69 6d 6d 65 64 69 61 74 65 es.that.the.identifier.immediate
e9e0 6c 79 20 61 64 64 72 65 73 73 65 73 2e 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 ly.addresses..<a.href="#Pointers
ea00 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 68 61 76 65 20 74 68 65 69 72 20 6f 77 6e 20 63 6f ">Pointers</a>.have.their.own.co
ea20 6e 73 74 2d 6e 65 73 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 49 66 20 79 6f 75 20 6e 65 nst-ness.</p>.......<p>If.you.ne
ea40 65 64 20 61 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 6d 6f 64 69 66 ed.a.variable.that.you.can.modif
ea60 79 2c 20 75 73 65 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 y,.use.the.<code.class="zig"><sp
ea80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f an.class="tok-kw">var</span></co
eaa0 64 65 3e 20 6b 65 79 77 6f 72 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d de>.keyword:</p>.......<p.class=
eac0 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c "file">test.zig</p><pre><code.cl
eae0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
eb00 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 onst</span>.assert.=.<span.class
eb20 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 ="tok-builtin">@import</span>(<s
eb40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 pan.class="tok-str">&quot;std&qu
eb60 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e ot;</span>).debug.assert;..<span
eb80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
eba0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 72 26 71 75 6f 74 n.class="tok-str">&quot;var&quot
ebc0 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ;</span>.{.....<span.class="tok-
ebe0 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 kw">var</span>.y:.<span.class="t
ec00 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ok-type">i32</span>.=.<span.clas
ec20 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 36 37 38 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 s="tok-number">5678</span>;.....
ec40 20 79 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 .y.+=.<span.class="tok-number">1
ec60 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 79 20 3d 3d 20 3c 73 70 61 6e 20 </span>;......assert(y.==.<span.
ec80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 36 37 39 3c 2f 73 70 61 6e 3e 29 3b class="tok-number">5679</span>);
eca0 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d .}</code></pre><pre><code.class=
ecc0 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 "shell">$.zig.test.test.zig.1/1.
ece0 74 65 73 74 20 26 71 75 6f 74 3b 76 61 72 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 test.&quot;var&quot;...OK.All.te
ed00 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 sts.passed..</code></pre>.......
ed20 20 3c 70 3e 56 61 72 69 61 62 6c 65 73 20 6d 75 73 74 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 .<p>Variables.must.be.initialize
ed40 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 d:</p>.......<p.class="file">tes
ed60 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e t.zig</p><pre><code.class="zig">
ed80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
eda0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 69 .<span.class="tok-str">&quot;ini
edc0 74 69 61 6c 69 7a 61 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c tialization&quot;</span>.{.....<
ede0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 span.class="tok-kw">var</span>.x
ee00 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 :.<span.class="tok-type">i32</sp
ee20 61 6e 3e 3b 0a 0a 20 20 20 20 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e an>;......x.=.<span.class="tok-n
ee40 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c umber">1</span>;.}</code></pre><
ee60 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 pre><code.class="shell">$.zig.te
ee80 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f st.test.zig.<span.class="t0_1">/
eea0 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 home/andy/dev/zig/docgen_tmp/tes
eec0 74 2e 7a 69 67 3a 32 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t.zig:2:5:.</span><span.class="t
eee0 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 31_1">error:</span><span.class="
ef00 74 30 5f 31 22 3e 20 76 61 72 69 61 62 6c 65 73 20 6d 75 73 74 20 62 65 20 69 6e 69 74 69 61 6c t0_1">.variables.must.be.initial
ef20 69 7a 65 64 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 78 3a 20 69 33 32 3b 0a 20 20 20 20 ized</span>.....var.x:.i32;.....
ef40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 <span.class="t32_1">^</span>.</c
ef60 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e 64 65 66 69 ode></pre>........<h3.id="undefi
ef80 6e 65 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 75 6e 64 65 66 69 6e 65 64 22 3e 75 6e ned"><a.href="#toc-undefined">un
efa0 64 65 66 69 6e 65 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d defined</a>.<a.class="hdr".href=
efc0 22 23 75 6e 64 65 66 69 6e 65 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 "#undefined">..</a></h3>........
efe0 3c 70 3e 55 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 <p>Use.<code.class="zig"><span.c
f000 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e lass="tok-null">undefined</span>
f020 3c 2f 63 6f 64 65 3e 20 74 6f 20 6c 65 61 76 65 20 76 61 72 69 61 62 6c 65 73 20 75 6e 69 6e 69 </code>.to.leave.variables.unini
f040 74 69 61 6c 69 7a 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 tialized:</p>.......<p.class="fi
f060 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 le">test.zig</p><pre><code.class
f080 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ="zig"><span.class="tok-kw">cons
f0a0 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t</span>.assert.=.<span.class="t
f0c0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ok-builtin">@import</span>(<span
f0e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b .class="tok-str">&quot;std&quot;
f100 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c </span>).debug.assert;..<span.cl
f120 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ass="tok-kw">test</span>.<span.c
f140 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 69 74 20 77 69 74 68 20 75 lass="tok-str">&quot;init.with.u
f160 6e 64 65 66 69 6e 65 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 ndefined&quot;</span>.{.....<spa
f180 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c n.class="tok-kw">var</span>.x:.<
f1a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">i32</span>
f1c0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 .=.<span.class="tok-null">undefi
f1e0 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ned</span>;.....x.=.<span.class=
f200 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 72 "tok-number">1</span>;.....asser
f220 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e t(x.==.<span.class="tok-number">
f240 31 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 1</span>);.}</code></pre><pre><c
f260 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
f280 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 69 74 20 77 69 74 68 20 75 t.zig.1/1.test.&quot;init.with.u
f2a0 6e 64 65 66 69 6e 65 64 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 ndefined&quot;...OK.All.tests.pa
f2c0 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 ssed..</code></pre>........<p>..
f2e0 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 .....<code.class="zig"><span.cla
f300 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3c 2f ss="tok-null">undefined</span></
f320 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d code>.can.be.<a.href="#Implicit-
f340 43 61 73 74 73 22 3e 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 3c 2f 61 3e 20 74 6f 20 61 6e Casts">implicitly.cast</a>.to.an
f360 79 20 74 79 70 65 2e 0a 20 20 20 20 20 20 20 20 20 20 4f 6e 63 65 20 74 68 69 73 20 68 61 70 70 y.type............Once.this.happ
f380 65 6e 73 2c 20 69 74 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 70 6f 73 73 69 62 6c 65 20 74 6f ens,.it.is.no.longer.possible.to
f3a0 20 64 65 74 65 63 74 20 74 68 61 74 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 3c 63 6f 64 65 20 .detect.that.the.value.is.<code.
f3c0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c class="zig"><span.class="tok-nul
f3e0 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 l">undefined</span></code>......
f400 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 ..........<code.class="zig"><spa
f420 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 n.class="tok-null">undefined</sp
f440 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6d 65 61 6e 73 20 74 68 65 20 76 61 6c 75 65 20 63 6f 75 6c 64 an></code>.means.the.value.could
f460 20 62 65 20 61 6e 79 74 68 69 6e 67 2c 20 65 76 65 6e 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 .be.anything,.even.something.tha
f480 74 20 69 73 20 6e 6f 6e 73 65 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.is.nonsense...................
f4a0 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 74 79 70 65 2e 20 54 72 61 6e 73 6c 61 74 65 according.to.the.type..Translate
f4c0 64 20 69 6e 74 6f 20 45 6e 67 6c 69 73 68 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 d.into.English,.<code.class="zig
f4e0 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e "><span.class="tok-null">undefin
f500 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6d 65 61 6e 73 20 22 4e 6f 74 20 61 20 6d 65 ed</span></code>.means."Not.a.me
f520 61 6e 69 6e 67 66 75 6c 0a 20 20 20 20 20 20 76 61 6c 75 65 2e 20 55 73 69 6e 67 20 74 68 69 73 aningful.......value..Using.this
f540 20 76 61 6c 75 65 20 77 6f 75 6c 64 20 62 65 20 61 20 62 75 67 2e 20 54 68 65 20 76 61 6c 75 65 .value.would.be.a.bug..The.value
f560 20 77 69 6c 6c 20 62 65 20 75 6e 75 73 65 64 2c 20 6f 72 20 6f 76 65 72 77 72 69 74 74 65 6e 20 .will.be.unused,.or.overwritten.
f580 62 65 66 6f 72 65 20 62 65 69 6e 67 20 75 73 65 64 2e 22 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 before.being.used.".......</p>..
f5a0 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 3c 61 20 68 72 65 66 3d 22 23 44 65 62 75 .....<p>.......In.<a.href="#Debu
f5c0 67 22 3e 44 65 62 75 67 3c 2f 61 3e 20 6d 6f 64 65 2c 20 5a 69 67 20 77 72 69 74 65 73 20 3c 63 g">Debug</a>.mode,.Zig.writes.<c
f5e0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
f600 2d 6e 75 6d 62 65 72 22 3e 30 78 61 61 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 79 74 65 -number">0xaa</span></code>.byte
f620 73 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 20 6d 65 6d 6f 72 79 2e 20 54 68 69 73 20 69 73 20 74 s.to.undefined.memory..This.is.t
f640 6f 20 63 61 74 63 68 0a 20 20 20 20 20 20 62 75 67 73 20 65 61 72 6c 79 2c 20 61 6e 64 20 74 6f o.catch.......bugs.early,.and.to
f660 20 68 65 6c 70 20 64 65 74 65 63 74 20 75 73 65 20 6f 66 20 75 6e 64 65 66 69 6e 65 64 20 6d 65 .help.detect.use.of.undefined.me
f680 6d 6f 72 79 20 69 6e 20 61 20 64 65 62 75 67 67 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 mory.in.a.debugger........</p>..
f6a0 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 ...........................<h1.i
f6c0 64 3d 22 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 56 61 72 69 d="Variables"><a.href="#toc-Vari
f6e0 61 62 6c 65 73 22 3e 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 ables">Variables</a>.<a.class="h
f700 64 72 22 20 68 72 65 66 3d 22 23 56 61 72 69 61 62 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 dr".href="#Variables">..</a></h1
f720 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 76 61 72 69 61 62 6c 65 20 69 73 >........<p>.......A.variable.is
f740 20 61 20 75 6e 69 74 20 6f 66 20 3c 61 20 68 72 65 66 3d 22 23 4d 65 6d 6f 72 79 22 3e 4d 65 6d .a.unit.of.<a.href="#Memory">Mem
f760 6f 72 79 3c 2f 61 3e 20 73 74 6f 72 61 67 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 ory</a>.storage........</p>.....
f780 20 20 3c 70 3e 0a 20 20 20 20 20 20 56 61 72 69 61 62 6c 65 73 20 61 72 65 20 6e 65 76 65 72 20 ..<p>.......Variables.are.never.
f7a0 61 6c 6c 6f 77 65 64 20 74 6f 20 73 68 61 64 6f 77 20 69 64 65 6e 74 69 66 69 65 72 73 20 66 72 allowed.to.shadow.identifiers.fr
f7c0 6f 6d 20 61 6e 20 6f 75 74 65 72 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 om.an.outer.scope........</p>...
f7e0 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 70 72 ....<p>.......It.is.generally.pr
f800 65 66 65 72 61 62 6c 65 20 74 6f 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 eferable.to.use.<code.class="zig
f820 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
f840 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 61 74 68 65 72 20 74 68 61 6e 0a 20 20 20 20 20 20 3c 63 6f an></code>.rather.than.......<co
f860 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
f880 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 68 65 6e 20 64 65 63 6c 61 kw">var</span></code>.when.decla
f8a0 72 69 6e 67 20 61 20 76 61 72 69 61 62 6c 65 2e 20 54 68 69 73 20 63 61 75 73 65 73 20 6c 65 73 ring.a.variable..This.causes.les
f8c0 73 20 77 6f 72 6b 20 66 6f 72 20 62 6f 74 68 0a 20 20 20 20 20 20 68 75 6d 61 6e 73 20 61 6e 64 s.work.for.both.......humans.and
f8e0 20 63 6f 6d 70 75 74 65 72 73 20 74 6f 20 64 6f 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 63 6f .computers.to.do.when.reading.co
f900 64 65 2c 20 61 6e 64 20 63 72 65 61 74 65 73 20 6d 6f 72 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f de,.and.creates.more.optimizatio
f920 6e 20 6f 70 70 6f 72 74 75 6e 69 74 69 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 n.opportunities........</p>.....
f940 20 20 3c 68 32 20 69 64 3d 22 47 6c 6f 62 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 ..<h2.id="Global-Variables"><a.h
f960 72 65 66 3d 22 23 74 6f 63 2d 47 6c 6f 62 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 47 6c 6f 62 ref="#toc-Global-Variables">Glob
f980 61 6c 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 al.Variables</a>.<a.class="hdr".
f9a0 68 72 65 66 3d 22 23 47 6c 6f 62 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c href="#Global-Variables">..</a><
f9c0 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 47 6c 6f 62 61 6c 20 76 61 72 /h2>........<p>.......Global.var
f9e0 69 61 62 6c 65 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 62 65 20 61 20 74 6f iables.are.considered.to.be.a.to
fa00 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 p.level.declaration,.which.means
fa20 20 74 68 61 74 20 74 68 65 79 20 61 72 65 0a 20 20 20 20 20 20 6f 72 64 65 72 2d 69 6e 64 65 70 .that.they.are.......order-indep
fa40 65 6e 64 65 6e 74 20 61 6e 64 20 6c 61 7a 69 6c 79 20 61 6e 61 6c 79 7a 65 64 2e 20 54 68 65 20 endent.and.lazily.analyzed..The.
fa60 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 76 61 6c 75 65 20 6f 66 20 67 6c 6f 62 61 6c 20 76 initialization.value.of.global.v
fa80 61 72 69 61 62 6c 65 73 20 69 73 20 69 6d 70 6c 69 63 69 74 6c 79 0a 20 20 20 20 20 20 3c 61 20 ariables.is.implicitly.......<a.
faa0 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2e 20 49 href="#comptime">comptime</a>..I
fac0 66 20 61 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 f.a.global.variable.is.<code.cla
fae0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f ss="zig"><span.class="tok-kw">co
fb00 6e 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 68 65 6e 20 69 74 73 20 76 61 6c 75 65 nst</span></code>.then.its.value
fb20 20 69 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .is.......<code.class="zig"><spa
fb40 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e n.class="tok-kw">comptime</span>
fb60 3c 2f 63 6f 64 65 3e 2d 6b 6e 6f 77 6e 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 72 </code>-known,.otherwise.it.is.r
fb80 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c untime-known........</p>.......<
fba0 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 67 6c 6f 62 61 6c 5f 76 61 72 69 61 62 6c 65 73 2e p.class="file">global_variables.
fbc0 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
fbe0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 3a pan.class="tok-kw">var</span>.y:
fc00 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 .<span.class="tok-type">i32</spa
fc20 6e 3e 20 3d 20 61 64 64 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 n>.=.add(<span.class="tok-number
fc40 22 3e 31 30 3c 2f 73 70 61 6e 3e 2c 20 78 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">10</span>,.x);.<span.class="to
fc60 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 k-kw">const</span>.x:.<span.clas
fc80 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 61 64 64 28 3c 73 s="tok-type">i32</span>.=.add(<s
fca0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 3c 2f 73 70 61 6e 3e pan.class="tok-number">12</span>
fcc0 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 34 3c 2f 73 ,.<span.class="tok-number">34</s
fce0 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 pan>);..<span.class="tok-kw">tes
fd00 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>.<span.class="tok-str">&
fd20 71 75 6f 74 3b 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73 26 71 75 6f 74 3b 3c 2f 73 70 61 quot;global.variables&quot;</spa
fd40 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 n>.{.....assert(x.==.<span.class
fd60 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 36 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 ="tok-number">46</span>);.....as
fd80 73 65 72 74 28 79 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 sert(y.==.<span.class="tok-numbe
fda0 72 22 3e 35 36 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 r">56</span>);.}..<span.class="t
fdc0 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
fde0 6b 2d 66 6e 22 3e 61 64 64 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-fn">add</span>(a:.<span.class=
fe00 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 "tok-type">i32</span>,.b:.<span.
fe20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 class="tok-type">i32</span>).<sp
fe40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b an.class="tok-type">i32</span>.{
fe60 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e .....<span.class="tok-kw">return
fe80 3c 2f 73 70 61 6e 3e 20 61 20 2b 20 62 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 </span>.a.+.b;.}..<span.class="t
fea0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 ok-kw">const</span>.std.=.<span.
fec0 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 class="tok-builtin">@import</spa
fee0 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 n>(<span.class="tok-str">&quot;s
ff00 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 td&quot;</span>);.<span.class="t
ff20 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 ok-kw">const</span>.assert.=.std
ff40 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e .debug.assert;</code></pre><pre>
ff60 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 67 <code.class="shell">$.zig.test.g
ff80 6c 6f 62 61 6c 5f 76 61 72 69 61 62 6c 65 73 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 lobal_variables.zig.1/1.test.&qu
ffa0 6f 74 3b 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 ot;global.variables&quot;...OK.A
ffc0 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a ll.tests.passed..</code></pre>..
ffe0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 47 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73 ......<p>.......Global.variables
10000 20 6d 61 79 20 62 65 20 64 65 63 6c 61 72 65 64 20 69 6e 73 69 64 65 20 61 20 3c 61 20 68 72 65 .may.be.declared.inside.a.<a.hre
10020 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d f="#struct">struct</a>,.<a.href=
10040 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 2c 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 "#union">union</a>,.or.<a.href="
10060 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 #enum">enum</a>:.......</p>.....
10080 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6e 61 6d 65 73 70 61 63 65 64 5f 67 6c 6f ..<p.class="file">namespaced_glo
100a0 62 61 6c 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 bal.zig</p><pre><code.class="zig
100c0 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
100e0 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 an>.std.=.<span.class="tok-built
10100 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
10120 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
10140 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ;.<span.class="tok-kw">const</sp
10160 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a an>.assert.=.std.debug.assert;..
10180 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
101a0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 61 6d .<span.class="tok-str">&quot;nam
101c0 65 73 70 61 63 65 64 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 26 71 75 6f 74 3b 3c 2f 73 espaced.global.variable&quot;</s
101e0 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 66 6f 6f 28 29 20 3d 3d 20 3c 73 70 61 6e pan>.{.....assert(foo().==.<span
10200 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 35 3c 2f 73 70 61 6e 3e 29 .class="tok-number">1235</span>)
10220 3b 0a 20 20 20 20 61 73 73 65 72 74 28 66 6f 6f 28 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ;.....assert(foo().==.<span.clas
10240 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 36 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a s="tok-number">1236</span>);.}..
10260 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c <span.class="tok-kw">fn</span>.<
10280 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 29 span.class="tok-fn">foo</span>()
102a0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 .<span.class="tok-type">i32</spa
102c0 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f n>.{.....<span.class="tok-kw">co
102e0 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d nst</span>.S.=.<span.class="tok-
10300 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 kw">struct</span>.{.........<spa
10320 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c n.class="tok-kw">var</span>.x:.<
10340 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">i32</span>
10360 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 .=.<span.class="tok-number">1234
10380 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 3b 0a 20 20 20 20 53 2e 78 20 2b 3d 20 3c 73 70 61 6e </span>;.....};.....S.x.+=.<span
103a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">1</span>;...
103c0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 ..<span.class="tok-kw">return</s
103e0 70 61 6e 3e 20 53 2e 78 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f pan>.S.x;.}</code></pre><pre><co
10400 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 6e 61 6d 65 de.class="shell">$.zig.test.name
10420 73 70 61 63 65 64 5f 67 6c 6f 62 61 6c 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 spaced_global.zig.1/1.test.&quot
10440 3b 6e 61 6d 65 73 70 61 63 65 64 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 26 71 75 6f 74 ;namespaced.global.variable&quot
10460 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e ;...OK.All.tests.passed..</code>
10480 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 </pre>........<p>.......The.<cod
104a0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
104c0 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 w">extern</span></code>.keyword.
104e0 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 6c 69 6e 6b 20 61 67 61 69 6e 73 74 20 61 20 76 61 can.be.used.to.link.against.a.va
10500 72 69 61 62 6c 65 20 74 68 61 74 20 69 73 20 65 78 70 6f 72 74 65 64 0a 20 20 20 20 20 20 66 72 riable.that.is.exported.......fr
10520 6f 6d 20 61 6e 6f 74 68 65 72 20 6f 62 6a 65 63 74 2e 20 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 om.another.object..The.<code.cla
10540 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 ss="zig"><span.class="tok-kw">ex
10560 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 6f 72 20 3c 61 port</span></code>.keyword.or.<a
10580 20 68 72 65 66 3d 22 23 65 78 70 6f 72 74 22 3e 40 65 78 70 6f 72 74 3c 2f 61 3e 20 62 75 69 6c .href="#export">@export</a>.buil
105a0 74 69 6e 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 tin.function.......can.be.used.t
105c0 6f 20 6d 61 6b 65 20 61 20 76 61 72 69 61 62 6c 65 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 6f o.make.a.variable.available.to.o
105e0 74 68 65 72 20 6f 62 6a 65 63 74 73 20 61 74 20 6c 69 6e 6b 20 74 69 6d 65 2e 20 49 6e 20 62 6f ther.objects.at.link.time..In.bo
10600 74 68 20 63 61 73 65 73 2c 0a 20 20 20 20 20 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 th.cases,.......the.type.of.the.
10620 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 43 20 41 42 49 20 63 6f 6d 70 61 74 69 62 6c variable.must.be.C.ABI.compatibl
10640 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a e........</p>.......<p>See.also:
10660 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 78 70 6f 72 74 69 6e 67 </p><ul>.<li><a.href="#Exporting
10680 2d 61 2d 43 2d 4c 69 62 72 61 72 79 22 3e 45 78 70 6f 72 74 69 6e 67 20 61 20 43 20 4c 69 62 72 -a-C-Library">Exporting.a.C.Libr
106a0 61 72 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 ary</a></li>.</ul>..............
106c0 20 20 3c 68 32 20 69 64 3d 22 54 68 72 65 61 64 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 ..<h2.id="Thread-Local-Variables
106e0 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 54 68 72 65 61 64 2d 4c 6f 63 61 6c 2d 56 61 72 "><a.href="#toc-Thread-Local-Var
10700 69 61 62 6c 65 73 22 3e 54 68 72 65 61 64 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3c 2f iables">Thread.Local.Variables</
10720 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 68 72 65 61 64 2d a>.<a.class="hdr".href="#Thread-
10740 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 Local-Variables">..</a></h2>....
10760 20 20 20 20 3c 70 3e 41 20 76 61 72 69 61 62 6c 65 20 6d 61 79 20 62 65 20 73 70 65 63 69 66 69 ....<p>A.variable.may.be.specifi
10780 65 64 20 74 6f 20 62 65 20 61 20 74 68 72 65 61 64 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 ed.to.be.a.thread-local.variable
107a0 20 75 73 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .using.the.......<code.class="zi
107c0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 68 72 65 61 64 6c 6f g"><span.class="tok-kw">threadlo
107e0 63 61 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 3a 3c 2f 70 3e 0a 20 cal</span></code>.keyword:</p>..
10800 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 6c 73 2e 7a 69 67 3c 2f 70 3e .....<p.class="file">tls.zig</p>
10820 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
10840 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c ss="tok-kw">const</span>.std.=.<
10860 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
10880 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
108a0 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 uot;std&quot;</span>);.<span.cla
108c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 ss="tok-kw">const</span>.assert.
108e0 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 =.std.debug.assert;..<span.class
10900 3d 22 74 6f 6b 2d 6b 77 22 3e 74 68 72 65 61 64 6c 6f 63 61 6c 3c 2f 73 70 61 6e 3e 20 3c 73 70 ="tok-kw">threadlocal</span>.<sp
10920 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 an.class="tok-kw">var</span>.x:.
10940 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e <span.class="tok-type">i32</span
10960 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 >.=.<span.class="tok-number">123
10980 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 4</span>;..<span.class="tok-kw">
109a0 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 test</span>.<span.class="tok-str
109c0 22 3e 26 71 75 6f 74 3b 74 68 72 65 61 64 20 6c 6f 63 61 6c 20 73 74 6f 72 61 67 65 26 71 75 6f ">&quot;thread.local.storage&quo
109e0 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b t;</span>.{.....<span.class="tok
10a00 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 74 68 72 65 61 64 31 20 3d 20 3c 73 70 61 -kw">const</span>.thread1.=.<spa
10a20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e n.class="tok-kw">try</span>.std.
10a40 54 68 72 65 61 64 2e 73 70 61 77 6e 28 7b 7d 2c 20 74 65 73 74 54 6c 73 29 3b 0a 20 20 20 20 3c Thread.spawn({},.testTls);.....<
10a60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
10a80 20 74 68 72 65 61 64 32 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e .thread2.=.<span.class="tok-kw">
10aa0 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 54 68 72 65 61 64 2e 73 70 61 77 6e 28 7b 7d 2c 20 try</span>.std.Thread.spawn({},.
10ac0 74 65 73 74 54 6c 73 29 3b 0a 20 20 20 20 74 65 73 74 54 6c 73 28 7b 7d 29 3b 0a 20 20 20 20 74 testTls);.....testTls({});.....t
10ae0 68 72 65 61 64 31 2e 77 61 69 74 28 29 3b 0a 20 20 20 20 74 68 72 65 61 64 32 2e 77 61 69 74 28 hread1.wait();.....thread2.wait(
10b00 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 );.}..<span.class="tok-kw">fn</s
10b20 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 65 73 74 54 6c pan>.<span.class="tok-fn">testTl
10b40 73 3c 2f 73 70 61 6e 3e 28 63 6f 6e 74 65 78 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 s</span>(context:.<span.class="t
10b60 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 ok-type">void</span>).<span.clas
10b80 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 s="tok-type">void</span>.{.....a
10ba0 73 73 65 72 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 ssert(x.==.<span.class="tok-numb
10bc0 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 78 20 2b 3d 20 3c 73 70 61 6e er">1234</span>);.....x.+=.<span
10be0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">1</span>;...
10c00 20 20 61 73 73 65 72 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ..assert(x.==.<span.class="tok-n
10c20 75 6d 62 65 72 22 3e 31 32 33 35 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 umber">1235</span>);.}</code></p
10c40 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
10c60 67 20 74 65 73 74 20 74 6c 73 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 74 68 g.test.tls.zig.1/1.test.&quot;th
10c80 72 65 61 64 20 6c 6f 63 61 6c 20 73 74 6f 72 61 67 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c read.local.storage&quot;...OK.Al
10ca0 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 l.tests.passed..</code></pre>...
10cc0 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 53 69 6e .....<p>.......For.<a.href="#Sin
10ce0 67 6c 65 2d 54 68 72 65 61 64 65 64 2d 42 75 69 6c 64 73 22 3e 53 69 6e 67 6c 65 20 54 68 72 65 gle-Threaded-Builds">Single.Thre
10d00 61 64 65 64 20 42 75 69 6c 64 73 3c 2f 61 3e 2c 20 61 6c 6c 20 74 68 72 65 61 64 20 6c 6f 63 61 aded.Builds</a>,.all.thread.loca
10d20 6c 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 74 72 65 61 74 65 64 20 61 73 20 3c 61 20 68 72 l.variables.are.treated.as.<a.hr
10d40 65 66 3d 22 23 47 6c 6f 62 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 47 6c 6f 62 61 6c 20 56 61 ef="#Global-Variables">Global.Va
10d60 72 69 61 62 6c 65 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 riables</a>........</p>.......<p
10d80 3e 0a 20 20 20 20 20 20 54 68 72 65 61 64 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 6d >.......Thread.local.variables.m
10da0 61 79 20 6e 6f 74 20 62 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 ay.not.be.<code.class="zig"><spa
10dc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 n.class="tok-kw">const</span></c
10de0 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c ode>........</p>...............<
10e00 68 32 20 69 64 3d 22 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d h2.id="Local-Variables"><a.href=
10e20 22 23 74 6f 63 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 4c 6f 63 61 6c 20 56 61 72 "#toc-Local-Variables">Local.Var
10e40 69 61 62 6c 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 iables</a>.<a.class="hdr".href="
10e60 23 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 #Local-Variables">..</a></h2>...
10e80 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 6f .....<p>.......Local.variables.o
10ea0 63 63 75 72 20 69 6e 73 69 64 65 20 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 ccur.inside.<a.href="#Functions"
10ec0 3e 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 >Functions</a>,.<a.href="#compti
10ee0 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 20 62 6c 6f 63 6b 73 2c 20 61 6e 64 20 3c 61 20 me">comptime</a>.blocks,.and.<a.
10f00 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 20 62 6c 6f href="#cImport">@cImport</a>.blo
10f20 63 6b 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 cks........</p>.......<p>.......
10f40 57 68 65 6e 20 61 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 69 73 20 3c 63 6f 64 65 20 63 When.a.local.variable.is.<code.c
10f60 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
10f80 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 69 74 20 6d 65 61 6e 73 20 74 68 const</span></code>,.it.means.th
10fa0 61 74 20 61 66 74 65 72 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 2c 20 74 68 65 20 76 61 72 at.after.initialization,.the.var
10fc0 69 61 62 6c 65 27 73 0a 20 20 20 20 20 20 76 61 6c 75 65 20 77 69 6c 6c 20 6e 6f 74 20 63 68 61 iable's.......value.will.not.cha
10fe0 6e 67 65 2e 20 49 66 20 74 68 65 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 76 61 6c 75 65 nge..If.the.initialization.value
11000 20 6f 66 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .of.a.<code.class="zig"><span.cl
11020 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ass="tok-kw">const</span></code>
11040 20 76 61 72 69 61 62 6c 65 20 69 73 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d .variable.is.......<a.href="#com
11060 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2d 6b 6e 6f 77 6e 2c 20 74 68 65 6e 20 ptime">comptime</a>-known,.then.
11080 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 61 6c 73 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 the.variable.is.also.<code.class
110a0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 ="zig"><span.class="tok-kw">comp
110c0 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2d 6b 6e 6f 77 6e 2e 0a 20 20 20 20 20 20 time</span></code>-known........
110e0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 6c 6f 63 61 6c 20 76 61 72 </p>.......<p>.......A.local.var
11100 69 61 62 6c 65 20 6d 61 79 20 62 65 20 71 75 61 6c 69 66 69 65 64 20 77 69 74 68 20 74 68 65 20 iable.may.be.qualified.with.the.
11120 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
11140 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 ok-kw">comptime</span></code>.ke
11160 79 77 6f 72 64 2e 20 54 68 69 73 20 63 61 75 73 65 73 0a 20 20 20 20 20 20 74 68 65 20 76 61 72 yword..This.causes.......the.var
11180 69 61 62 6c 65 27 73 20 76 61 6c 75 65 20 74 6f 20 62 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d iable's.value.to.be.<code.class=
111a0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 "zig"><span.class="tok-kw">compt
111c0 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2d 6b 6e 6f 77 6e 2c 20 61 6e 64 20 61 6c 6c ime</span></code>-known,.and.all
111e0 20 6c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 65 73 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 76 .loads.and.stores.of.the.......v
11200 61 72 69 61 62 6c 65 20 74 6f 20 68 61 70 70 65 6e 20 64 75 72 69 6e 67 20 73 65 6d 61 6e 74 69 ariable.to.happen.during.semanti
11220 63 20 61 6e 61 6c 79 73 69 73 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 72 61 74 68 65 c.analysis.of.the.program,.rathe
11240 72 20 74 68 61 6e 20 61 74 20 72 75 6e 74 69 6d 65 2e 0a 20 20 20 20 20 20 41 6c 6c 20 76 61 72 r.than.at.runtime........All.var
11260 69 61 62 6c 65 73 20 64 65 63 6c 61 72 65 64 20 69 6e 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 iables.declared.in.a.<code.class
11280 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 ="zig"><span.class="tok-kw">comp
112a0 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 20 61 72 time</span></code>.expression.ar
112c0 65 20 69 6d 70 6c 69 63 69 74 6c 79 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 e.implicitly.......<code.class="
112e0 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 zig"><span.class="tok-kw">compti
11300 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 me</span></code>.variables......
11320 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 6f 6d ..</p>.......<p.class="file">com
11340 70 74 69 6d 65 5f 76 61 72 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 ptime_vars.zig</p><pre><code.cla
11360 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f ss="zig"><span.class="tok-kw">co
11380 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f nst</span>.std.=.<span.class="to
113a0 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
113c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
113e0 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f /span>);.<span.class="tok-kw">co
11400 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 nst</span>.assert.=.std.debug.as
11420 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 sert;..<span.class="tok-kw">test
11440 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>.<span.class="tok-str">&q
11460 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 76 61 72 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b uot;comptime.vars&quot;</span>.{
11480 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 .....<span.class="tok-kw">var</s
114a0 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 pan>.x:.<span.class="tok-type">i
114c0 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 32</span>.=.<span.class="tok-num
114e0 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ber">1</span>;.....<span.class="
11500 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c tok-kw">comptime</span>.<span.cl
11520 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 3a 20 3c 73 70 61 6e ass="tok-kw">var</span>.y:.<span
11540 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c .class="tok-type">i32</span>.=.<
11560 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e span.class="tok-number">1</span>
11580 3b 0a 0a 20 20 20 20 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ;......x.+=.<span.class="tok-num
115a0 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 79 20 2b 3d 20 3c 73 70 61 6e 20 63 6c ber">1</span>;.....y.+=.<span.cl
115c0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 ass="tok-number">1</span>;......
115e0 61 73 73 65 72 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d assert(x.==.<span.class="tok-num
11600 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 79 20 3d 3d 20 ber">2</span>);.....assert(y.==.
11620 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e <span.class="tok-number">2</span
11640 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 >);......<span.class="tok-kw">if
11660 3c 2f 73 70 61 6e 3e 20 28 79 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e </span>.(y.!=.<span.class="tok-n
11680 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e umber">2</span>).{.........<span
116a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 63 6f 6d .class="tok-comment">//.This.com
116c0 70 69 6c 65 20 65 72 72 6f 72 20 6e 65 76 65 72 20 74 72 69 67 67 65 72 73 20 62 65 63 61 75 73 pile.error.never.triggers.becaus
116e0 65 20 79 20 69 73 20 61 20 63 6f 6d 70 74 69 6d 65 20 76 61 72 69 61 62 6c 65 2c 3c 2f 73 70 61 e.y.is.a.comptime.variable,</spa
11700 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d n>.........<span.class="tok-comm
11720 65 6e 74 22 3e 2f 2f 20 61 6e 64 20 73 6f 20 60 79 20 21 3d 20 32 60 20 69 73 20 61 20 63 6f 6d ent">//.and.so.`y.!=.2`.is.a.com
11740 70 74 69 6d 65 20 76 61 6c 75 65 2c 20 61 6e 64 20 74 68 69 73 20 69 66 20 69 73 20 73 74 61 74 ptime.value,.and.this.if.is.stat
11760 69 63 61 6c 6c 79 20 65 76 61 6c 75 61 74 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 ically.evaluated.</span>........
11780 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 .<span.class="tok-builtin">@comp
117a0 69 6c 65 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ileError</span>(<span.class="tok
117c0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 77 72 6f 6e 67 20 79 20 76 61 6c 75 65 26 71 75 6f 74 3b 3c -str">&quot;wrong.y.value&quot;<
117e0 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 /span>);.....}.}</code></pre><pr
11800 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 e><code.class="shell">$.zig.test
11820 20 63 6f 6d 70 74 69 6d 65 5f 76 61 72 73 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f .comptime_vars.zig.1/1.test.&quo
11840 74 3b 63 6f 6d 70 74 69 6d 65 20 76 61 72 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 t;comptime.vars&quot;...OK.All.t
11860 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 ests.passed..</code></pre>......
11880 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 49 6e 74 65 67 65 72 .................<h1.id="Integer
118a0 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 s"><a.href="#toc-Integers">Integ
118c0 65 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e ers</a>.<a.class="hdr".href="#In
118e0 74 65 67 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 tegers">..</a></h1>........<h2.i
11900 64 3d 22 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 d="Integer-Literals"><a.href="#t
11920 6f 63 2d 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 49 6e 74 65 67 65 72 20 4c 69 74 oc-Integer-Literals">Integer.Lit
11940 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 erals</a>.<a.class="hdr".href="#
11960 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 Integer-Literals">..</a></h2>...
11980 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
119a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 64 65 n.class="tok-kw">const</span>.de
119c0 63 69 6d 61 6c 5f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d cimal_int.=.<span.class="tok-num
119e0 62 65 72 22 3e 39 38 32 32 32 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ber">98222</span>;.<span.class="
11a00 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 65 78 5f 69 6e 74 20 3d 20 3c tok-kw">const</span>.hex_int.=.<
11a20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 66 66 3c 2f 73 70 span.class="tok-number">0xff</sp
11a40 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c an>;.<span.class="tok-kw">const<
11a60 2f 73 70 61 6e 3e 20 61 6e 6f 74 68 65 72 5f 68 65 78 5f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 /span>.another_hex_int.=.<span.c
11a80 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 46 46 3c 2f 73 70 61 6e 3e 3b 0a 3c lass="tok-number">0xFF</span>;.<
11aa0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
11ac0 20 6f 63 74 61 6c 5f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .octal_int.=.<span.class="tok-nu
11ae0 6d 62 65 72 22 3e 30 6f 37 35 35 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d mber">0o755</span>;.<span.class=
11b00 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 69 6e 61 72 79 5f 69 6e 74 "tok-kw">const</span>.binary_int
11b20 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 31 .=.<span.class="tok-number">0b11
11b40 31 31 30 30 30 30 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 110000</span>;</code></pre>.....
11b60 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 75 6e 74 69 6d 65 2d 49 6e 74 65 67 65 72 .........<h2.id="Runtime-Integer
11b80 2d 56 61 6c 75 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 52 75 6e 74 69 6d 65 2d 49 -Values"><a.href="#toc-Runtime-I
11ba0 6e 74 65 67 65 72 2d 56 61 6c 75 65 73 22 3e 52 75 6e 74 69 6d 65 20 49 6e 74 65 67 65 72 20 56 nteger-Values">Runtime.Integer.V
11bc0 61 6c 75 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 alues</a>.<a.class="hdr".href="#
11be0 52 75 6e 74 69 6d 65 2d 49 6e 74 65 67 65 72 2d 56 61 6c 75 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f Runtime-Integer-Values">..</a></
11c00 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 74 65 67 65 72 20 6c 69 74 h2>........<p>.......Integer.lit
11c20 65 72 61 6c 73 20 68 61 76 65 20 6e 6f 20 73 69 7a 65 20 6c 69 6d 69 74 61 74 69 6f 6e 2c 20 61 erals.have.no.size.limitation,.a
11c40 6e 64 20 69 66 20 61 6e 79 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 6f 63 63 nd.if.any.undefined.behavior.occ
11c60 75 72 73 2c 0a 20 20 20 20 20 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 63 61 74 63 68 65 73 20 urs,.......the.compiler.catches.
11c80 69 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 it........</p>.......<p>.......H
11ca0 6f 77 65 76 65 72 2c 20 6f 6e 63 65 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 69 73 owever,.once.an.integer.value.is
11cc0 20 6e 6f 20 6c 6f 6e 67 65 72 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 .no.longer.known.at.compile-time
11ce0 2c 20 69 74 20 6d 75 73 74 20 68 61 76 65 20 61 0a 20 20 20 20 20 20 6b 6e 6f 77 6e 20 73 69 7a ,.it.must.have.a.......known.siz
11d00 65 2c 20 61 6e 64 20 69 73 20 76 75 6c 6e 65 72 61 62 6c 65 20 74 6f 20 75 6e 64 65 66 69 6e 65 e,.and.is.vulnerable.to.undefine
11d20 64 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 d.behavior........</p>.......<pr
11d40 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
11d60 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
11d80 74 6f 6b 2d 66 6e 22 3e 64 69 76 69 64 65 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 tok-fn">divide</span>(a:.<span.c
11da0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c lass="tok-type">i32</span>,.b:.<
11dc0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">i32</span>
11de0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 ).<span.class="tok-type">i32</sp
11e00 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 an>.{.....<span.class="tok-kw">r
11e20 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 2f 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 eturn</span>.a./.b;.}</code></pr
11e40 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 66 75 6e 63 74 e>.......<p>.......In.this.funct
11e60 69 6f 6e 2c 20 76 61 6c 75 65 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c ion,.values.<code.class="zig">a<
11e80 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f /code>.and.<code.class="zig">b</
11ea0 63 6f 64 65 3e 20 61 72 65 20 6b 6e 6f 77 6e 20 6f 6e 6c 79 20 61 74 20 72 75 6e 74 69 6d 65 2c code>.are.known.only.at.runtime,
11ec0 0a 20 20 20 20 20 20 61 6e 64 20 74 68 75 73 20 74 68 69 73 20 64 69 76 69 73 69 6f 6e 20 6f 70 .......and.thus.this.division.op
11ee0 65 72 61 74 69 6f 6e 20 69 73 20 76 75 6c 6e 65 72 61 62 6c 65 20 74 6f 20 62 6f 74 68 20 3c 61 eration.is.vulnerable.to.both.<a
11f00 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 2d 4f 76 65 72 66 6c 6f 77 22 3e 49 6e 74 65 67 65 .href="#Integer-Overflow">Intege
11f20 72 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 61 6e 64 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 r.Overflow</a>.and.......<a.href
11f40 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 ="#Division-by-Zero">Division.by
11f60 20 5a 65 72 6f 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a .Zero</a>........</p>.......<p>.
11f80 20 20 20 20 20 20 4f 70 65 72 61 74 6f 72 73 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 20 63 6c ......Operators.such.as.<code.cl
11fa0 61 73 73 3d 22 7a 69 67 22 3e 2b 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 ass="zig">+</code>.and.<code.cla
11fc0 73 73 3d 22 7a 69 67 22 3e 2d 3c 2f 63 6f 64 65 3e 20 63 61 75 73 65 20 75 6e 64 65 66 69 6e 65 ss="zig">-</code>.cause.undefine
11fe0 64 20 62 65 68 61 76 69 6f 72 20 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 d.behavior.on...............inte
12000 67 65 72 20 6f 76 65 72 66 6c 6f 77 2e 20 41 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 61 72 65 ger.overflow..Also.available.are
12020 20 6f 70 65 72 61 74 69 6f 6e 73 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d .operations.such.as.<code.class=
12040 22 7a 69 67 22 3e 2b 25 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 "zig">+%</code>.and.............
12060 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 25 3c 2f 63 6f 64 65 ......<code.class="zig">-%</code
12080 3e 20 77 68 69 63 68 20 61 72 65 20 64 65 66 69 6e 65 64 20 74 6f 20 68 61 76 65 20 77 72 61 70 >.which.are.defined.to.have.wrap
120a0 70 69 6e 67 20 61 72 69 74 68 6d 65 74 69 63 20 6f 6e 20 61 6c 6c 20 74 61 72 67 65 74 73 2e 0a ping.arithmetic.on.all.targets..
120c0 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 73 ......</p>.......<p>.......Zig.s
120e0 75 70 70 6f 72 74 73 20 61 72 62 69 74 72 61 72 79 20 62 69 74 2d 77 69 64 74 68 20 69 6e 74 65 upports.arbitrary.bit-width.inte
12100 67 65 72 73 2c 20 72 65 66 65 72 65 6e 63 65 64 20 62 79 20 75 73 69 6e 67 0a 20 20 20 20 20 20 gers,.referenced.by.using.......
12120 61 6e 20 69 64 65 6e 74 69 66 69 65 72 20 6f 66 20 3c 63 6f 64 65 3e 69 3c 2f 63 6f 64 65 3e 20 an.identifier.of.<code>i</code>.
12140 6f 72 20 3c 2f 63 6f 64 65 3e 75 3c 2f 63 6f 64 65 3e 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 64 or.</code>u</code>.followed.by.d
12160 69 67 69 74 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 69 64 65 6e 74 69 66 69 igits..For.example,.the.identifi
12180 65 72 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e er.......<code.class="zig"><span
121a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 37 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 .class="tok-type">i7</span></cod
121c0 65 3e 20 72 65 66 65 72 73 20 74 6f 20 61 20 73 69 67 6e 65 64 20 37 2d 62 69 74 20 69 6e 74 65 e>.refers.to.a.signed.7-bit.inte
121e0 67 65 72 2e 20 54 68 65 20 6d 61 78 69 6d 75 6d 20 61 6c 6c 6f 77 65 64 20 62 69 74 2d 77 69 64 ger..The.maximum.allowed.bit-wid
12200 74 68 20 6f 66 20 61 6e 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 69 73 20 3c th.of.an.......integer.type.is.<
12220 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
12240 6b 2d 6e 75 6d 62 65 72 22 3e 36 35 35 33 35 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 k-number">65535</span></code>...
12260 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e .....</p>.......<p>See.also:</p>
12280 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 57 72 61 70 70 69 6e 67 2d 4f 70 65 72 <ul>.<li><a.href="#Wrapping-Oper
122a0 61 74 69 6f 6e 73 22 3e 57 72 61 70 70 69 6e 67 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c ations">Wrapping.Operations</a><
122c0 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 /li>.</ul>......................
122e0 3c 68 31 20 69 64 3d 22 46 6c 6f 61 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 46 6c <h1.id="Floats"><a.href="#toc-Fl
12300 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 oats">Floats</a>.<a.class="hdr".
12320 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 href="#Floats">..</a></h1>......
12340 20 20 3c 70 3e 5a 69 67 20 68 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 6c 6f 61 74 ..<p>Zig.has.the.following.float
12360 69 6e 67 20 70 6f 69 6e 74 20 74 79 70 65 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a ing.point.types:</p>.......<ul>.
12380 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ..........<li><code.class="zig">
123a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 36 3c 2f 73 70 61 6e <span.class="tok-type">f16</span
123c0 3e 3c 2f 63 6f 64 65 3e 20 2d 20 49 45 45 45 2d 37 35 34 2d 32 30 30 38 20 62 69 6e 61 72 79 31 ></code>.-.IEEE-754-2008.binary1
123e0 36 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 6</li>...........<li><code.class
12400 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 ="zig"><span.class="tok-type">f3
12420 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 2d 20 49 45 45 45 2d 37 35 34 2d 32 30 30 38 20 2</span></code>.-.IEEE-754-2008.
12440 62 69 6e 61 72 79 33 32 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 binary32</li>...........<li><cod
12460 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 e.class="zig"><span.class="tok-t
12480 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 2d 20 49 45 45 45 2d 37 35 ype">f64</span></code>.-.IEEE-75
124a0 34 2d 32 30 30 38 20 62 69 6e 61 72 79 36 34 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 4-2008.binary64</li>...........<
124c0 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 li><code.class="zig"><span.class
124e0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 32 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 2d ="tok-type">f128</span></code>.-
12500 20 49 45 45 45 2d 37 35 34 2d 32 30 30 38 20 62 69 6e 61 72 79 31 32 38 3c 2f 6c 69 3e 0a 20 20 .IEEE-754-2008.binary128</li>...
12520 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 ........<li><code.class="zig"><s
12540 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 6c 6f 6e 67 64 6f 75 62 6c pan.class="tok-type">c_longdoubl
12560 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 2d 20 6d 61 74 63 68 65 73 20 3c 63 6f 64 65 20 e</span></code>.-.matches.<code.
12580 63 6c 61 73 73 3d 22 63 22 3e 6c 6f 6e 67 20 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e 20 66 6f 72 class="c">long.double</code>.for
125a0 20 74 68 65 20 74 61 72 67 65 74 20 43 20 41 42 49 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 .the.target.C.ABI</li>.......</u
125c0 6c 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 46 6c 6f 61 74 2d 4c 69 74 65 72 61 6c 73 22 l>.......<h2.id="Float-Literals"
125e0 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 46 6c 6f 61 74 2d 4c 69 74 65 72 61 6c 73 22 3e 46 ><a.href="#toc-Float-Literals">F
12600 6c 6f 61 74 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 loat.Literals</a>.<a.class="hdr"
12620 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 2d 4c 69 74 65 72 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f .href="#Float-Literals">..</a></
12640 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6c 6f 61 74 20 6c 69 74 65 72 h2>........<p>.......Float.liter
12660 61 6c 73 20 68 61 76 65 20 74 79 70 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e als.have.type.<code.class="zig">
12680 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f <span.class="tok-type">comptime_
126a0 66 6c 6f 61 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 69 73 20 67 75 61 float</span></code>.which.is.gua
126c0 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 0a 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 70 ranteed.to.have.......the.same.p
126e0 72 65 63 69 73 69 6f 6e 20 61 6e 64 20 6f 70 65 72 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 6c recision.and.operations.of.the.l
12700 61 72 67 65 73 74 20 6f 74 68 65 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 74 79 70 65 argest.other.floating.point.type
12720 2c 20 77 68 69 63 68 20 69 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ,.which.is.......<code.class="zi
12740 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 32 38 3c 2f g"><span.class="tok-type">f128</
12760 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c span></code>........</p>.......<
12780 70 3e 0a 20 20 20 20 20 20 46 6c 6f 61 74 20 6c 69 74 65 72 61 6c 73 20 3c 61 20 68 72 65 66 3d p>.......Float.literals.<a.href=
127a0 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 "#Implicit-Casts">implicitly.cas
127c0 74 3c 2f 61 3e 20 74 6f 20 61 6e 79 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 74 79 70 65 t</a>.to.any.floating.point.type
127e0 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 6f 20 61 6e 79 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 ,.......and.to.any.<a.href="#Int
12800 65 67 65 72 73 22 3e 69 6e 74 65 67 65 72 3c 2f 61 3e 20 74 79 70 65 20 77 68 65 6e 20 74 68 65 egers">integer</a>.type.when.the
12820 72 65 20 69 73 20 6e 6f 20 66 72 61 63 74 69 6f 6e 61 6c 20 63 6f 6d 70 6f 6e 65 6e 74 2e 0a 20 re.is.no.fractional.component...
12840 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 .....</p>.......<pre><code.class
12860 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ="zig"><span.class="tok-kw">cons
12880 74 3c 2f 73 70 61 6e 3e 20 66 6c 6f 61 74 69 6e 67 5f 70 6f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 t</span>.floating_point.=.<span.
128a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 2e 30 45 2b 37 37 3c 2f 73 70 class="tok-number">123.0E+77</sp
128c0 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c an>;.<span.class="tok-kw">const<
128e0 2f 73 70 61 6e 3e 20 61 6e 6f 74 68 65 72 5f 66 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 /span>.another_float.=.<span.cla
12900 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 2e 30 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 ss="tok-number">123.0</span>;.<s
12920 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
12940 79 65 74 5f 61 6e 6f 74 68 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e yet_another.=.<span.class="tok-n
12960 75 6d 62 65 72 22 3e 31 32 33 2e 30 65 2b 37 37 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 umber">123.0e+77</span>;..<span.
12980 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 65 78 5f class="tok-kw">const</span>.hex_
129a0 66 6c 6f 61 74 69 6e 67 5f 70 6f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f floating_point.=.<span.class="to
129c0 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 30 33 2e 37 30 70 2d 35 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 k-number">0x103.70p-5</span>;.<s
129e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
12a00 61 6e 6f 74 68 65 72 5f 68 65 78 5f 66 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d another_hex_float.=.<span.class=
12a20 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 30 33 2e 37 30 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 "tok-number">0x103.70</span>;.<s
12a40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
12a60 79 65 74 5f 61 6e 6f 74 68 65 72 5f 68 65 78 5f 66 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c yet_another_hex_float.=.<span.cl
12a80 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 30 33 2e 37 30 50 2d 35 3c 2f 73 70 ass="tok-number">0x103.70P-5</sp
12aa0 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 an>;</code></pre>.......<p>.....
12ac0 20 20 54 68 65 72 65 20 69 73 20 6e 6f 20 73 79 6e 74 61 78 20 66 6f 72 20 4e 61 4e 2c 20 69 6e ..There.is.no.syntax.for.NaN,.in
12ae0 66 69 6e 69 74 79 2c 20 6f 72 20 6e 65 67 61 74 69 76 65 20 69 6e 66 69 6e 69 74 79 2e 20 46 6f finity,.or.negative.infinity..Fo
12b00 72 20 74 68 65 73 65 20 73 70 65 63 69 61 6c 20 76 61 6c 75 65 73 2c 0a 20 20 20 20 20 20 6f 6e r.these.special.values,.......on
12b20 65 20 6d 75 73 74 20 75 73 65 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 3a e.must.use.the.standard.library:
12b40 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .......</p>.......<pre><code.cla
12b60 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f ss="zig"><span.class="tok-kw">co
12b80 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f nst</span>.std.=.<span.class="to
12ba0 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
12bc0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
12be0 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 /span>);..<span.class="tok-kw">c
12c00 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 6e 66 20 3d 20 73 74 64 2e 6d 61 74 68 2e 69 6e 66 28 3c onst</span>.inf.=.std.math.inf(<
12c20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">f32</span>
12c40 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 );.<span.class="tok-kw">const</s
12c60 70 61 6e 3e 20 6e 65 67 61 74 69 76 65 5f 69 6e 66 20 3d 20 2d 73 74 64 2e 6d 61 74 68 2e 69 6e pan>.negative_inf.=.-std.math.in
12c80 66 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 f(<span.class="tok-type">f64</sp
12ca0 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 an>);.<span.class="tok-kw">const
12cc0 3c 2f 73 70 61 6e 3e 20 6e 61 6e 20 3d 20 73 74 64 2e 6d 61 74 68 2e 6e 61 6e 28 3c 73 70 61 6e </span>.nan.=.std.math.nan(<span
12ce0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 32 38 3c 2f 73 70 61 6e 3e 29 3b 3c .class="tok-type">f128</span>);<
12d00 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 /code></pre>..............<h2.id
12d20 3d 22 46 6c 6f 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 3c 61 20 ="Floating-Point-Operations"><a.
12d40 68 72 65 66 3d 22 23 74 6f 63 2d 46 6c 6f 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 72 61 74 href="#toc-Floating-Point-Operat
12d60 69 6f 6e 73 22 3e 46 6c 6f 61 74 69 6e 67 20 50 6f 69 6e 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c ions">Floating.Point.Operations<
12d80 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 69 /a>.<a.class="hdr".href="#Floati
12da0 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e ng-Point-Operations">..</a></h2>
12dc0 0a 0a 20 20 20 20 20 20 3c 70 3e 42 79 20 64 65 66 61 75 6c 74 20 66 6c 6f 61 74 69 6e 67 20 70 ........<p>By.default.floating.p
12de0 6f 69 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d oint.operations.use.<code.class=
12e00 22 7a 69 67 22 3e 53 74 72 69 63 74 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 0a 20 20 20 20 20 20 "zig">Strict</code>.mode,.......
12e20 20 20 20 20 62 75 74 20 79 6f 75 20 63 61 6e 20 73 77 69 74 63 68 20 74 6f 20 3c 63 6f 64 65 20 ....but.you.can.switch.to.<code.
12e40 63 6c 61 73 73 3d 22 7a 69 67 22 3e 4f 70 74 69 6d 69 7a 65 64 3c 2f 63 6f 64 65 3e 20 6d 6f 64 class="zig">Optimized</code>.mod
12e60 65 20 6f 6e 20 61 20 70 65 72 2d 62 6c 6f 63 6b 20 62 61 73 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 e.on.a.per-block.basis:</p>.....
12e80 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 6f 6f 2e 7a 69 67 3c 2f 70 3e 3c 70 72 ..<p.class="file">foo.zig</p><pr
12ea0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
12ec0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 75 69 6c 74 69 6e 20 3d 20 "tok-kw">const</span>.builtin.=.
12ee0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
12f00 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
12f20 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 quot;builtin&quot;</span>);.<spa
12f40 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 69 n.class="tok-kw">const</span>.bi
12f60 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f g.=.<span.class="tok-type">f64</
12f80 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 span>(<span.class="tok-number">1
12fa0 3c 2f 73 70 61 6e 3e 20 26 6c 74 3b 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.&lt;&lt;.<span.class="to
12fc0 6b 2d 6e 75 6d 62 65 72 22 3e 34 30 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 k-number">40</span>);..<span.cla
12fe0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 ss="tok-kw">export</span>.<span.
13000 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 class="tok-kw">fn</span>.<span.c
13020 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 5f 73 74 72 69 63 74 3c 2f 73 70 61 6e 3e 28 lass="tok-fn">foo_strict</span>(
13040 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 x:.<span.class="tok-type">f64</s
13060 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 pan>).<span.class="tok-type">f64
13080 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
130a0 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 78 20 2b 20 62 69 67 20 2d 20 62 69 67 3b 0a w">return</span>.x.+.big.-.big;.
130c0 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f }..<span.class="tok-kw">export</
130e0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
13100 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 5f 6f 70 pan>.<span.class="tok-fn">foo_op
13120 74 69 6d 69 7a 65 64 3c 2f 73 70 61 6e 3e 28 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 timized</span>(x:.<span.class="t
13140 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-type">f64</span>).<span.class
13160 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 ="tok-type">f64</span>.{.....<sp
13180 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 46 6c 6f 61 74 an.class="tok-builtin">@setFloat
131a0 4d 6f 64 65 3c 2f 73 70 61 6e 3e 28 62 75 69 6c 74 69 6e 2e 46 6c 6f 61 74 4d 6f 64 65 2e 4f 70 Mode</span>(builtin.FloatMode.Op
131c0 74 69 6d 69 7a 65 64 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b timized);.....<span.class="tok-k
131e0 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 78 20 2b 20 62 69 67 20 2d 20 62 69 67 3b 0a w">return</span>.x.+.big.-.big;.
13200 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
13220 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 66 6f 6f 2e 7a 69 67 20 2d shell">$.zig.build-obj.foo.zig.-
13240 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 -release-fast</code></pre>......
13260 20 20 3c 70 3e 46 6f 72 20 74 68 69 73 20 74 65 73 74 20 77 65 20 68 61 76 65 20 74 6f 20 73 65 ..<p>For.this.test.we.have.to.se
13280 70 61 72 61 74 65 20 63 6f 64 65 20 69 6e 74 6f 20 74 77 6f 20 6f 62 6a 65 63 74 20 66 69 6c 65 parate.code.into.two.object.file
132a0 73 20 2d 0a 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 s.-.......otherwise.the.optimize
132c0 72 20 66 69 67 75 72 65 73 20 6f 75 74 20 61 6c 6c 20 74 68 65 20 76 61 6c 75 65 73 20 61 74 20 r.figures.out.all.the.values.at.
132e0 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 6f 70 65 72 61 74 compile-time,.......which.operat
13300 65 73 20 69 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 es.in.strict.mode.</p>.......<p.
13320 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 6c 6f 61 74 5f 6d 6f 64 65 2e 7a 69 67 3c 2f 70 3e 3c class="file">float_mode.zig</p><
13340 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
13360 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d 20 3c s="tok-kw">const</span>.warn.=.<
13380 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
133a0 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
133c0 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 77 61 72 6e uot;std&quot;</span>).debug.warn
133e0 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f ;..<span.class="tok-kw">extern</
13400 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
13420 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 5f 73 74 pan>.<span.class="tok-fn">foo_st
13440 72 69 63 74 3c 2f 73 70 61 6e 3e 28 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d rict</span>(x:.<span.class="tok-
13460 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 type">f64</span>).<span.class="t
13480 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ok-type">f64</span>;.<span.class
134a0 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ="tok-kw">extern</span>.<span.cl
134c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
134e0 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 5f 6f 70 74 69 6d 69 7a 65 64 3c 2f 73 70 61 6e 3e ss="tok-fn">foo_optimized</span>
13500 28 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f (x:.<span.class="tok-type">f64</
13520 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 span>).<span.class="tok-type">f6
13540 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 4</span>;..<span.class="tok-kw">
13560 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pub</span>.<span.class="tok-kw">
13580 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d fn</span>.<span.class="tok-fn">m
135a0 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ain</span>().<span.class="tok-ty
135c0 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 pe">void</span>.{.....<span.clas
135e0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 20 3d 20 3c 73 70 61 s="tok-kw">const</span>.x.=.<spa
13600 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 30 31 3c 2f 73 70 61 6e n.class="tok-number">0.001</span
13620 3e 3b 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 >;.....warn(<span.class="tok-str
13640 22 3e 26 71 75 6f 74 3b 6f 70 74 69 6d 69 7a 65 64 20 3d 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f ">&quot;optimized.=.{}\n&quot;</
13660 73 70 61 6e 3e 2c 20 66 6f 6f 5f 6f 70 74 69 6d 69 7a 65 64 28 78 29 29 3b 0a 20 20 20 20 77 61 span>,.foo_optimized(x));.....wa
13680 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 rn(<span.class="tok-str">&quot;s
136a0 74 72 69 63 74 20 3d 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 66 6f 6f 5f 73 trict.=.{}\n&quot;</span>,.foo_s
136c0 74 72 69 63 74 28 78 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 trict(x));.}</code></pre><pre><c
136e0 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 ode.class="shell">$.zig.build-ex
13700 65 20 66 6c 6f 61 74 5f 6d 6f 64 65 2e 7a 69 67 20 2d 2d 6f 62 6a 65 63 74 20 66 6f 6f 2e 6f 0a e.float_mode.zig.--object.foo.o.
13720 24 20 2e 2f 66 6c 6f 61 74 5f 6d 6f 64 65 0a 6f 70 74 69 6d 69 7a 65 64 20 3d 20 31 2e 30 65 2d $../float_mode.optimized.=.1.0e-
13740 30 33 0a 73 74 72 69 63 74 20 3d 20 39 2e 37 36 35 36 32 35 65 2d 30 34 0a 3c 2f 63 6f 64 65 3e 03.strict.=.9.765625e-04.</code>
13760 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 </pre>........<p>See.also:</p><u
13780 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e 40 l>.<li><a.href="#setFloatMode">@
137a0 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 setFloatMode</a></li>.<li><a.hre
137c0 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 f="#Division-by-Zero">Division.b
137e0 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 y.Zero</a></li>.</ul>...........
13800 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 4f 70 65 72 61 74 6f 72 73 22 3e 3c 61 ...........<h1.id="Operators"><a
13820 20 68 72 65 66 3d 22 23 74 6f 63 2d 4f 70 65 72 61 74 6f 72 73 22 3e 4f 70 65 72 61 74 6f 72 73 .href="#toc-Operators">Operators
13840 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4f 70 65 72 61 </a>.<a.class="hdr".href="#Opera
13860 74 6f 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 tors">..</a></h1>........<p>....
13880 20 20 20 54 68 65 72 65 20 69 73 20 6e 6f 20 6f 70 65 72 61 74 6f 72 20 6f 76 65 72 6c 6f 61 64 ...There.is.no.operator.overload
138a0 69 6e 67 2e 20 57 68 65 6e 20 79 6f 75 20 73 65 65 20 61 6e 20 6f 70 65 72 61 74 6f 72 20 69 6e ing..When.you.see.an.operator.in
138c0 20 5a 69 67 2c 20 79 6f 75 20 6b 6e 6f 77 20 74 68 61 74 0a 20 20 20 20 20 20 69 74 20 69 73 20 .Zig,.you.know.that.......it.is.
138e0 64 6f 69 6e 67 20 73 6f 6d 65 74 68 69 6e 67 20 66 72 6f 6d 20 74 68 69 73 20 74 61 62 6c 65 2c doing.something.from.this.table,
13900 20 61 6e 64 20 6e 6f 74 68 69 6e 67 20 65 6c 73 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 .and.nothing.else........</p>...
13920 20 20 20 20 3c 68 32 20 69 64 3d 22 54 61 62 6c 65 2d 6f 66 2d 4f 70 65 72 61 74 6f 72 73 22 3e ....<h2.id="Table-of-Operators">
13940 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 54 61 62 6c 65 2d 6f 66 2d 4f 70 65 72 61 74 6f 72 73 <a.href="#toc-Table-of-Operators
13960 22 3e 54 61 62 6c 65 20 6f 66 20 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 ">Table.of.Operators</a>.<a.clas
13980 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 61 62 6c 65 2d 6f 66 2d 4f 70 65 72 61 74 6f 72 s="hdr".href="#Table-of-Operator
139a0 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 64 69 76 20 63 6c 61 73 73 s">..</a></h2>........<div.class
139c0 3d 22 74 61 62 6c 65 2d 77 72 61 70 70 65 72 22 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a ="table-wrapper">.......<table>.
139e0 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 ........<tr>...........<th>.....
13a00 20 20 20 20 20 20 20 20 53 79 6e 74 61 78 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 ........Syntax...........</th>..
13a20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 6c 65 76 61 .........<th>.............Releva
13a40 6e 74 20 54 79 70 65 73 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 nt.Types...........</th>........
13a60 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e 0a ...<th>.............Description.
13a80 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 ..........</th>...........<th>..
13aa0 20 20 20 20 20 20 20 20 20 20 20 45 78 61 6d 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 ...........Example...........</t
13ac0 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 h>.........</tr>.........<tr>...
13ae0 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ........<td><pre><code.class="zi
13b00 67 22 3e 61 20 2b 20 62 0a 61 20 2b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 g">a.+.b.a.+=.b</code></pre></td
13b20 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c >...........<td>.............<ul
13b40 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e >...............<li><a.href="#In
13b60 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 tegers">Integers</a></li>.......
13b80 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c ........<li><a.href="#Floats">Fl
13ba0 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a oats</a></li>.............</ul>.
13bc0 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 41 64 ..........</td>...........<td>Ad
13be0 64 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 dition..............<ul>........
13c00 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 .......<li>Can.cause.<a.href="#D
13c20 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 efault-Operations">overflow</a>.
13c40 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 for.integers.</li>..............
13c60 20 3c 6c 69 3e 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 .<li>Invokes.<a.href="#Peer-Type
13c80 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f -Resolution">Peer.Type.Resolutio
13ca0 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 n</a>.for.the.operands.</li>....
13cc0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d ...........<li>See.also.<a.href=
13ce0 22 23 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 "#addWithOverflow">@addWithOverf
13d00 6c 6f 77 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a low</a>.</li>.............</ul>.
13d20 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 ..........</td>...........<td>..
13d40 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ...........<pre><code.class="zig
13d60 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 "><span.class="tok-number">2</sp
13d80 61 6e 3e 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 an>.+.<span.class="tok-number">5
13da0 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 </span>.==.<span.class="tok-numb
13dc0 65 72 22 3e 37 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 er">7</span></code></pre>.......
13de0 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 ....</td>.........</tr>.........
13e00 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c <tr>...........<td><pre><code.cl
13e20 61 73 73 3d 22 7a 69 67 22 3e 61 20 2b 25 20 62 0a 61 20 2b 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c ass="zig">a.+%.b.a.+%=.b</code><
13e40 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 /pre></td>...........<td>.......
13e60 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 ......<ul>...............<li><a.
13e80 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c href="#Integers">Integers</a></l
13ea0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c i>.............</ul>...........<
13ec0 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 57 72 61 70 70 69 6e 67 20 41 64 64 69 /td>...........<td>Wrapping.Addi
13ee0 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 tion..............<ul>..........
13f00 20 20 20 20 20 3c 6c 69 3e 47 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 74 77 6f 73 .....<li>Guaranteed.to.have.twos
13f20 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 3c 2f -complement.wrapping.behavior.</
13f40 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 6f 6b 65 73 20 3c 61 li>...............<li>Invokes.<a
13f60 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 .href="#Peer-Type-Resolution">Pe
13f80 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f er.Type.Resolution</a>.for.the.o
13fa0 70 65 72 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e perands.</li>...............<li>
13fc0 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 61 64 64 57 69 74 68 4f 76 65 72 66 6c See.also.<a.href="#addWithOverfl
13fe0 6f 77 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 ow">@addWithOverflow</a>.</li>..
14000 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e ...........</ul>...........</td>
14020 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 ...........<td>.............<pre
14040 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
14060 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 28 73 74 64 2e 6d 61 74 68 2e 6d 61 tok-type">u32</span>(std.math.ma
14080 78 49 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c xInt(<span.class="tok-type">u32<
140a0 2f 73 70 61 6e 3e 29 29 20 2b 25 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d /span>)).+%.<span.class="tok-num
140c0 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ber">1</span>.==.<span.class="to
140e0 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a k-number">0</span></code></pre>.
14100 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 ..........</td>.........</tr>...
14120 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 ......<tr>...........<td><pre><c
14140 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2d 20 62 0a 61 20 2d 3d 20 62 3c 2f 63 6f ode.class="zig">a.-.b.a.-=.b</co
14160 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 de></pre></td>...........<td>...
14180 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 ..........<ul>...............<li
141a0 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 ><a.href="#Integers">Integers</a
141c0 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 ></li>...............<li><a.href
141e0 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 ="#Floats">Floats</a></li>......
14200 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 .......</ul>...........</td>....
14220 20 20 20 20 20 20 20 3c 74 64 3e 53 75 62 74 72 61 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 .......<td>Subtraction..........
14240 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 ....<ul>...............<li>Can.c
14260 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e ause.<a.href="#Default-Operation
14280 73 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c s">overflow</a>.for.integers.</l
142a0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 6f 6b 65 73 20 3c 61 20 i>...............<li>Invokes.<a.
142c0 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 href="#Peer-Type-Resolution">Pee
142e0 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 r.Type.Resolution</a>.for.the.op
14300 65 72 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 erands.</li>...............<li>S
14320 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f ee.also.<a.href="#subWithOverflo
14340 77 22 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 w">@subWithOverflow</a>.</li>...
14360 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a ..........</ul>...........</td>.
14380 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e ..........<td>.............<pre>
143a0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
143c0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 ok-number">2</span>.-.<span.clas
143e0 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 20 3d 3d 20 2d 3c 73 70 61 s="tok-number">5</span>.==.-<spa
14400 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3c 2f 63 n.class="tok-number">3</span></c
14420 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 ode></pre>...........</td>......
14440 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 ...</tr>.........<tr>...........
14460 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2d 25 20 <td><pre><code.class="zig">a.-%.
14480 62 0a 61 20 2d 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 b.a.-%=.b</code></pre></td>.....
144a0 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 ......<td>.............<ul>.....
144c0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 ..........<li><a.href="#Integers
144e0 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ">Integers</a></li>.............
14500 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 </ul>...........</td>...........
14520 3c 74 64 3e 57 72 61 70 70 69 6e 67 20 53 75 62 74 72 61 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 <td>Wrapping.Subtraction........
14540 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 47 75 61 ......<ul>...............<li>Gua
14560 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 ranteed.to.have.twos-complement.
14580 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 wrapping.behavior.</li>.........
145a0 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 72 ......<li>Invokes.<a.href="#Peer
145c0 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f -Type-Resolution">Peer.Type.Reso
145e0 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 3c 2f 6c 69 lution</a>.for.the.operands.</li
14600 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 >...............<li>See.also.<a.
14620 68 72 65 66 3d 22 23 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 75 62 57 69 74 68 href="#subWithOverflow">@subWith
14640 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c Overflow</a>.</li>.............<
14660 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c /ul>...........</td>...........<
14680 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 td>.............<pre><code.class
146a0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 ="zig"><span.class="tok-type">u3
146c0 32 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 2</span>(<span.class="tok-number
146e0 22 3e 30 3c 2f 73 70 61 6e 3e 29 20 2d 25 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">0</span>).-%.<span.class="tok-
14700 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 3d 3d 20 73 74 64 2e 6d 61 74 68 2e 6d 61 78 number">1</span>.==.std.math.max
14720 49 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f Int(<span.class="tok-type">u32</
14740 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f span>)</code></pre>...........</
14760 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 td>.........</tr>.........<tr>..
14780 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a .........<td><pre><code.class="z
147a0 69 67 22 3e 2d 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 ig">-a</code></pre></td>........
147c0 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 ...<td>.............<ul>........
147e0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 .......<li><a.href="#Integers">I
14800 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ntegers</a></li>...............<
14820 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c li><a.href="#Floats">Floats</a><
14840 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 /li>.............</ul>..........
14860 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 .</td>...........<td>...........
14880 20 20 4e 65 67 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 ..Negation..............<ul>....
148a0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 ...........<li>Can.cause.<a.href
148c0 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 6f 76 65 72 66 6c 6f 77 3c ="#Default-Operations">overflow<
148e0 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 /a>.for.integers.</li>..........
14900 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 ...</ul>...........</td>........
14920 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ...<td>.............<pre><code.c
14940 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d lass="zig">-<span.class="tok-num
14960 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ber">1</span>.==.<span.class="to
14980 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-number">0</span>.-.<span.class
149a0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 ="tok-number">1</span></code></p
149c0 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 re>...........</td>.........</tr
149e0 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 >.........<tr>...........<td><pr
14a00 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 25 61 3c 2f 63 6f 64 65 3e 3c 2f e><code.class="zig">-%a</code></
14a20 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 pre></td>...........<td>........
14a40 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 .....<ul>...............<li><a.h
14a60 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 ref="#Integers">Integers</a></li
14a80 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f >.............</ul>...........</
14aa0 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 57 td>...........<td>.............W
14ac0 72 61 70 70 69 6e 67 20 4e 65 67 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 rapping.Negation..............<u
14ae0 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 47 75 61 72 61 6e 74 65 65 64 20 l>...............<li>Guaranteed.
14b00 74 6f 20 68 61 76 65 20 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 to.have.twos-complement.wrapping
14b20 20 62 65 68 61 76 69 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c .behavior.</li>.............</ul
14b40 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e >...........</td>...........<td>
14b60 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a .............<pre><code.class="z
14b80 69 67 22 3e 2d 25 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 ig">-%<span.class="tok-type">i32
14ba0 3c 2f 73 70 61 6e 3e 28 73 74 64 2e 6d 61 74 68 2e 6d 69 6e 49 6e 74 28 3c 73 70 61 6e 20 63 6c </span>(std.math.minInt(<span.cl
14bc0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 29 20 3d 3d 20 73 ass="tok-type">i32</span>)).==.s
14be0 74 64 2e 6d 61 74 68 2e 6d 69 6e 49 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d td.math.minInt(<span.class="tok-
14c00 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 type">i32</span>)</code></pre>..
14c20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 .........</td>.........</tr>....
14c40 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f .....<tr>...........<td><pre><co
14c60 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2a 20 62 0a 61 20 2a 3d 20 62 3c 2f 63 6f 64 de.class="zig">a.*.b.a.*=.b</cod
14c80 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 e></pre></td>...........<td>....
14ca0 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e .........<ul>...............<li>
14cc0 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e <a.href="#Integers">Integers</a>
14ce0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d </li>...............<li><a.href=
14d00 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 "#Floats">Floats</a></li>.......
14d20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 ......</ul>...........</td>.....
14d40 20 20 20 20 20 20 3c 74 64 3e 4d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 ......<td>Multiplication........
14d60 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e ......<ul>...............<li>Can
14d80 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 .cause.<a.href="#Default-Operati
14da0 6f 6e 73 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c ons">overflow</a>.for.integers.<
14dc0 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 6f 6b 65 73 20 3c /li>...............<li>Invokes.<
14de0 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 a.href="#Peer-Type-Resolution">P
14e00 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 eer.Type.Resolution</a>.for.the.
14e20 6f 70 65 72 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 operands.</li>...............<li
14e40 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 6d 75 6c 57 69 74 68 4f 76 65 72 66 >See.also.<a.href="#mulWithOverf
14e60 6c 6f 77 22 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a low">@mulWithOverflow</a>.</li>.
14e80 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 ............</ul>...........</td
14ea0 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 >...........<td>.............<pr
14ec0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
14ee0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 2a 20 3c 73 70 61 6e 20 63 6c "tok-number">2</span>.*.<span.cl
14f00 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 ass="tok-number">5</span>.==.<sp
14f20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 3c an.class="tok-number">10</span><
14f40 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 /code></pre>...........</td>....
14f60 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 .....</tr>.........<tr>.........
14f80 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2a ..<td><pre><code.class="zig">a.*
14fa0 25 20 62 0a 61 20 2a 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 %.b.a.*%=.b</code></pre></td>...
14fc0 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 ........<td>.............<ul>...
14fe0 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 ............<li><a.href="#Intege
15000 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 rs">Integers</a></li>...........
15020 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 ..</ul>...........</td>.........
15040 20 20 3c 74 64 3e 57 72 61 70 70 69 6e 67 20 4d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 ..<td>Wrapping.Multiplication...
15060 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c ...........<ul>...............<l
15080 69 3e 47 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 74 77 6f 73 2d 63 6f 6d 70 6c 65 i>Guaranteed.to.have.twos-comple
150a0 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 ment.wrapping.behavior.</li>....
150c0 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 ...........<li>Invokes.<a.href="
150e0 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 #Peer-Type-Resolution">Peer.Type
15100 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 .Resolution</a>.for.the.operands
15120 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 65 65 20 61 6c 73 .</li>...............<li>See.als
15140 6f 20 3c 61 20 68 72 65 66 3d 22 23 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 6d 75 o.<a.href="#mulWithOverflow">@mu
15160 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 lWithOverflow</a>.</li>.........
15180 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 ....</ul>...........</td>.......
151a0 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 ....<td>.............<pre><code.
151c0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 class="zig"><span.class="tok-typ
151e0 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 e">u8</span>(<span.class="tok-nu
15200 6d 62 65 72 22 3e 32 30 30 3c 2f 73 70 61 6e 3e 29 20 2a 25 20 3c 73 70 61 6e 20 63 6c 61 73 73 mber">200</span>).*%.<span.class
15220 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 ="tok-number">2</span>.==.<span.
15240 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 34 34 3c 2f 73 70 61 6e 3e 3c 2f 63 class="tok-number">144</span></c
15260 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 ode></pre>...........</td>......
15280 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 ...</tr>.........<tr>...........
152a0 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2f 20 62 <td><pre><code.class="zig">a./.b
152c0 0a 61 20 2f 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 .a./=.b</code></pre></td>.......
152e0 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 ....<td>.............<ul>.......
15300 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e ........<li><a.href="#Integers">
15320 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Integers</a></li>...............
15340 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e <li><a.href="#Floats">Floats</a>
15360 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 </li>.............</ul>.........
15380 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 44 69 76 69 73 69 6f 6e 2e 0a ..</td>...........<td>Division..
153a0 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ............<ul>...............<
153c0 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f li>Can.cause.<a.href="#Default-O
153e0 70 65 72 61 74 69 6f 6e 73 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 perations">overflow</a>.for.inte
15400 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e gers.</li>...............<li>Can
15420 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 .cause.<a.href="#Division-by-Zer
15440 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 o">Division.by.Zero</a>.for.inte
15460 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e gers.</li>...............<li>Can
15480 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 .cause.<a.href="#Division-by-Zer
154a0 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 66 6f 72 20 66 6c 6f 61 o">Division.by.Zero</a>.for.floa
154c0 74 73 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f ts.in.<a.href="#Floating-Point-O
154e0 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 4d 6f 64 65 2e 4f 70 74 69 6d 69 7a 65 64 20 4d perations">FloatMode.Optimized.M
15500 6f 64 65 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e ode</a>.</li>...............<li>
15520 46 6f 72 20 6e 6f 6e 2d 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 6b 6e 6f 77 6e 20 73 69 67 6e 65 For.non-compile-time-known.signe
15540 64 20 69 6e 74 65 67 65 72 73 2c 20 6d 75 73 74 20 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 d.integers,.must.use............
15560 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 .....<a.href="#divTrunc">@divTru
15580 6e 63 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d nc</a>,.................<a.href=
155a0 22 23 64 69 76 46 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 2c 20 6f 72 0a 20 20 "#divFloor">@divFloor</a>,.or...
155c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 64 69 76 45 78 61 63 74 ..............<a.href="#divExact
155e0 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 20 69 6e 73 74 65 61 64 20 6f 66 20 3c 63 6f 64 65 ">@divExact</a>.instead.of.<code
15600 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 .class="zig">/</code>...........
15620 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 .....</li>...............<li>Inv
15640 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 okes.<a.href="#Peer-Type-Resolut
15660 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f ion">Peer.Type.Resolution</a>.fo
15680 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 r.the.operands.</li>............
156a0 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 .</ul>...........</td>..........
156c0 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .<td>.............<pre><code.cla
156e0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 ss="zig"><span.class="tok-number
15700 22 3e 31 30 3c 2f 73 70 61 6e 3e 20 2f 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ">10</span>./.<span.class="tok-n
15720 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 umber">5</span>.==.<span.class="
15740 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 tok-number">2</span></code></pre
15760 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a >...........</td>.........</tr>.
15780 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e ........<tr>...........<td><pre>
157a0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 25 20 62 0a 61 20 25 3d 20 62 3c 2f <code.class="zig">a.%.b.a.%=.b</
157c0 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a code></pre></td>...........<td>.
157e0 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ............<ul>...............<
15800 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c li><a.href="#Integers">Integers<
15820 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 /a></li>...............<li><a.hr
15840 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 ef="#Floats">Floats</a></li>....
15860 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 .........</ul>...........</td>..
15880 20 20 20 20 20 20 20 20 20 3c 74 64 3e 52 65 6d 61 69 6e 64 65 72 20 44 69 76 69 73 69 6f 6e 2e .........<td>Remainder.Division.
158a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............<ul>...............
158c0 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e <li>Can.cause.<a.href="#Division
158e0 2d 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 66 -by-Zero">Division.by.Zero</a>.f
15900 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or.integers.</li>...............
15920 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e <li>Can.cause.<a.href="#Division
15940 2d 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 66 -by-Zero">Division.by.Zero</a>.f
15960 6f 72 20 66 6c 6f 61 74 73 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 69 6e 67 2d or.floats.in.<a.href="#Floating-
15980 50 6f 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 4d 6f 64 65 2e 4f 70 74 69 Point-Operations">FloatMode.Opti
159a0 6d 69 7a 65 64 20 4d 6f 64 65 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 mized.Mode</a>.</li>............
159c0 20 20 20 3c 6c 69 3e 46 6f 72 20 6e 6f 6e 2d 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 6b 6e 6f 77 ...<li>For.non-compile-time-know
159e0 6e 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 2c 20 6d 75 73 74 20 75 73 65 0a 20 20 20 20 n.signed.integers,.must.use.....
15a00 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 72 65 6d 22 3e 40 72 65 6d 3c ............<a.href="#rem">@rem<
15a20 2f 61 3e 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 /a>.or.................<a.href="
15a40 23 6d 6f 64 22 3e 40 6d 6f 64 3c 2f 61 3e 20 69 6e 73 74 65 61 64 20 6f 66 20 3c 63 6f 64 65 20 #mod">@mod</a>.instead.of.<code.
15a60 63 6c 61 73 73 3d 22 7a 69 67 22 3e 25 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 class="zig">%</code>............
15a80 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 6f ....</li>...............<li>Invo
15aa0 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 kes.<a.href="#Peer-Type-Resoluti
15ac0 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 on">Peer.Type.Resolution</a>.for
15ae0 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 .the.operands.</li>.............
15b00 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 </ul>...........</td>...........
15b20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 <td>.............<pre><code.clas
15b40 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 s="zig"><span.class="tok-number"
15b60 3e 31 30 3c 2f 73 70 61 6e 3e 20 25 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 >10</span>.%.<span.class="tok-nu
15b80 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 mber">3</span>.==.<span.class="t
15ba0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e ok-number">1</span></code></pre>
15bc0 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 ...........</td>.........</tr>..
15be0 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c .......<tr>...........<td><pre><
15c00 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 6c 74 3b 26 6c 74 3b 20 62 0a 61 20 code.class="zig">a.&lt;&lt;.b.a.
15c20 26 6c 74 3b 26 6c 74 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 &lt;&lt;=.b</code></pre></td>...
15c40 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 ........<td>.............<ul>...
15c60 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 ............<li><a.href="#Intege
15c80 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 rs">Integers</a></li>...........
15ca0 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 ..</ul>...........</td>.........
15cc0 20 20 3c 74 64 3e 42 69 74 20 53 68 69 66 74 20 4c 65 66 74 2e 0a 20 20 20 20 20 20 20 20 20 20 ..<td>Bit.Shift.Left............
15ce0 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 ..<ul>.................<li><code
15d00 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 3c 61 .class="zig">b</code>.must.be.<a
15d20 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e .href="#comptime">comptime-known
15d40 3c 2f 61 3e 20 6f 72 20 68 61 76 65 20 61 20 74 79 70 65 20 77 69 74 68 20 6c 6f 67 32 20 6e 75 </a>.or.have.a.type.with.log2.nu
15d60 6d 62 65 72 20 6f 66 20 62 69 74 73 20 61 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 mber.of.bits.as.<code.class="zig
15d80 22 3e 61 3c 2f 63 6f 64 65 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ">a</code>.</li>...............<
15da0 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 45 78 61 63 74 22 3e li>See.also.<a.href="#shlExact">
15dc0 40 73 68 6c 45 78 61 63 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 @shlExact</a>.</li>.............
15de0 20 20 3c 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 ..<li>See.also.<a.href="#shlWith
15e00 4f 76 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 2e 3c Overflow">@shlWithOverflow</a>.<
15e20 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 /li>.............</ul>..........
15e40 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 .</td>...........<td>...........
15e60 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ..<pre><code.class="zig"><span.c
15e80 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 26 6c 74 3b 26 lass="tok-number">1</span>.&lt;&
15ea0 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f lt;.<span.class="tok-number">8</
15ec0 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 span>.==.<span.class="tok-number
15ee0 22 3e 32 35 36 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 ">256</span></code></pre>.......
15f00 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 ....</td>.........</tr>.........
15f20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c <tr>...........<td><pre><code.cl
15f40 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 67 74 3b 26 67 74 3b 20 62 0a 61 20 26 67 74 3b 26 67 74 ass="zig">a.&gt;&gt;.b.a.&gt;&gt
15f60 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 ;=.b</code></pre></td>..........
15f80 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 .<td>.............<ul>..........
15fa0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 .....<li><a.href="#Integers">Int
15fc0 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e egers</a></li>.............</ul>
15fe0 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 ...........</td>...........<td>B
16000 69 74 20 53 68 69 66 74 20 52 69 67 68 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e it.Shift.Right..............<ul>
16020 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 .................<li><code.class
16040 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 3c 61 20 68 72 65 66 3d ="zig">b</code>.must.be.<a.href=
16060 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 61 3e 20 6f "#comptime">comptime-known</a>.o
16080 72 20 68 61 76 65 20 61 20 74 79 70 65 20 77 69 74 68 20 6c 6f 67 32 20 6e 75 6d 62 65 72 20 6f r.have.a.type.with.log2.number.o
160a0 66 20 62 69 74 73 20 61 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 f.bits.as.<code.class="zig">a</c
160c0 6f 64 65 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 65 65 ode>.</li>...............<li>See
160e0 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 .also.<a.href="#shrExact">@shrEx
16100 61 63 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a act</a>.</li>.............</ul>.
16120 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 ..........</td>...........<td>..
16140 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ...........<pre><code.class="zig
16160 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 "><span.class="tok-number">10</s
16180 70 61 6e 3e 20 26 67 74 3b 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e pan>.&gt;&gt;.<span.class="tok-n
161a0 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 umber">1</span>.==.<span.class="
161c0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 tok-number">5</span></code></pre
161e0 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a >...........</td>.........</tr>.
16200 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e ........<tr>...........<td><pre>
16220 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 61 6d 70 3b 20 62 0a 61 20 26 61 <code.class="zig">a.&amp;.b.a.&a
16240 6d 70 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 mp;=.b</code></pre></td>........
16260 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 ...<td>.............<ul>........
16280 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 .......<li><a.href="#Integers">I
162a0 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 ntegers</a></li>.............</u
162c0 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 l>...........</td>...........<td
162e0 3e 42 69 74 77 69 73 65 20 41 4e 44 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 >Bitwise.AND..............<ul>..
16300 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 .............<li>Invokes.<a.href
16320 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 ="#Peer-Type-Resolution">Peer.Ty
16340 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e pe.Resolution</a>.for.the.operan
16360 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 ds.</li>.............</ul>......
16380 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 .....</td>...........<td>.......
163a0 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
163c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 30 31 31 3c 2f 73 70 61 an.class="tok-number">0b011</spa
163e0 6e 3e 20 26 61 6d 70 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 n>.&amp;.<span.class="tok-number
16400 22 3e 30 62 31 30 31 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ">0b101</span>.==.<span.class="t
16420 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 30 30 31 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f ok-number">0b001</span></code></
16440 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 pre>...........</td>.........</t
16460 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 r>.........<tr>...........<td><p
16480 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 7c 20 62 0a 61 20 7c 3d 20 re><code.class="zig">a.|.b.a.|=.
164a0 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 b</code></pre></td>...........<t
164c0 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 d>.............<ul>.............
164e0 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 ..<li><a.href="#Integers">Intege
16500 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 rs</a></li>.............</ul>...
16520 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 ........</td>...........<td>Bitw
16540 69 73 65 20 4f 52 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 ise.OR..............<ul>........
16560 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 .......<li>Invokes.<a.href="#Pee
16580 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 r-Type-Resolution">Peer.Type.Res
165a0 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 3c 2f 6c olution</a>.for.the.operands.</l
165c0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c i>.............</ul>...........<
165e0 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 /td>...........<td>.............
16600 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
16620 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 30 31 30 3c 2f 73 70 61 6e 3e 20 7c 20 3c ss="tok-number">0b010</span>.|.<
16640 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 30 30 3c 2f 73 span.class="tok-number">0b100</s
16660 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 pan>.==.<span.class="tok-number"
16680 3e 30 62 31 31 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 >0b110</span></code></pre>......
166a0 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 .....</td>.........</tr>........
166c0 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 .<tr>...........<td><pre><code.c
166e0 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 5e 20 62 0a 61 20 5e 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f lass="zig">a.^.b.a.^=.b</code></
16700 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 pre></td>...........<td>........
16720 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 .....<ul>...............<li><a.h
16740 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 ref="#Integers">Integers</a></li
16760 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f >.............</ul>...........</
16780 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 69 73 65 20 58 4f 52 2e 0a 20 td>...........<td>Bitwise.XOR...
167a0 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c ...........<ul>...............<l
167c0 69 3e 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 i>Invokes.<a.href="#Peer-Type-Re
167e0 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f solution">Peer.Type.Resolution</
16800 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 a>.for.the.operands.</li>.......
16820 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 ......</ul>...........</td>.....
16840 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 ......<td>.............<pre><cod
16860 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e e.class="zig"><span.class="tok-n
16880 75 6d 62 65 72 22 3e 30 62 30 31 31 3c 2f 73 70 61 6e 3e 20 5e 20 3c 73 70 61 6e 20 63 6c 61 73 umber">0b011</span>.^.<span.clas
168a0 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 30 31 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c s="tok-number">0b101</span>.==.<
168c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 31 30 3c 2f 73 span.class="tok-number">0b110</s
168e0 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 pan></code></pre>...........</td
16900 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 >.........</tr>.........<tr>....
16920 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 .......<td><pre><code.class="zig
16940 22 3e 7e 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 ">~a</code></pre></td>..........
16960 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 .<td>.............<ul>..........
16980 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 .....<li><a.href="#Integers">Int
169a0 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e egers</a></li>.............</ul>
169c0 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a ...........</td>...........<td>.
169e0 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 77 69 73 65 20 4e 4f 54 2e 0a 20 20 20 20 20 20 20 ............Bitwise.NOT.........
16a00 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 ...</td>...........<td>.........
16a20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 7e 3c 73 70 61 ....<pre><code.class="zig">~<spa
16a40 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 28 3c 73 70 n.class="tok-type">u8</span>(<sp
16a60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 30 31 30 31 31 31 31 an.class="tok-number">0b10101111
16a80 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d </span>).==.<span.class="tok-num
16aa0 62 65 72 22 3e 30 62 30 31 30 31 30 30 30 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 ber">0b01010000</span></code></p
16ac0 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 re>...........</td>.........</tr
16ae0 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 >.........<tr>...........<td><pr
16b00 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3c 73 70 61 6e 20 63 6c 61 73 e><code.class="zig">a.<span.clas
16b20 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 62 3c 2f 63 6f 64 65 s="tok-kw">orelse</span>.b</code
16b40 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 ></pre></td>...........<td>.....
16b60 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c ........<ul>...............<li><
16b80 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 a.href="#Optionals">Optionals</a
16ba0 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 ></li>.............</ul>........
16bc0 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 49 66 20 3c 63 6f 64 65 20 ...</td>...........<td>If.<code.
16be0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 20 63 6c class="zig">a</code>.is.<code.cl
16c00 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 ass="zig"><span.class="tok-null"
16c20 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 >null</span></code>,............
16c40 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ...........returns.<code.class="
16c60 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 20 28 22 64 65 66 61 75 6c 74 20 76 61 6c 75 65 22 29 2c zig">b</code>.("default.value"),
16c80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 ...........................other
16ca0 77 69 73 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 75 6e 77 72 61 70 70 65 64 20 76 61 6c 75 65 wise.returns.the.unwrapped.value
16cc0 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f 64 65 3e 2e 0a .of.<code.class="zig">a</code>..
16ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f ..............................No
16d00 74 65 20 74 68 61 74 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 te.that.<code.class="zig">b</cod
16d20 65 3e 20 6d 61 79 20 62 65 20 61 20 76 61 6c 75 65 20 6f 66 20 74 79 70 65 20 3c 61 20 68 72 65 e>.may.be.a.value.of.type.<a.hre
16d40 66 3d 22 23 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 61 3e 2e 0a 20 20 20 20 f="#noreturn">noreturn</a>......
16d60 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 ......</td>...........<td>......
16d80 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 .......<pre><code.class="zig"><s
16da0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
16dc0 76 61 6c 75 65 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 value:.?<span.class="tok-type">u
16de0 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 32</span>.=.<span.class="tok-nul
16e00 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b l">null</span>;.<span.class="tok
16e20 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 75 6e 77 72 61 70 70 65 64 20 3d 20 76 61 -kw">const</span>.unwrapped.=.va
16e40 6c 75 65 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 65 6c 73 65 3c lue.<span.class="tok-kw">orelse<
16e60 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e /span>.<span.class="tok-number">
16e80 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 75 6e 77 72 61 70 70 65 64 20 3d 3d 20 3c 73 70 61 6e 20 1234</span>;.unwrapped.==.<span.
16ea0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3c 2f class="tok-number">1234</span></
16ec0 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 code></pre>...........</td>.....
16ee0 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 ....</tr>.........<tr>..........
16f00 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 2e 3f 3c .<td><pre><code.class="zig">a.?<
16f20 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e /code></pre></td>...........<td>
16f40 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............<ul>...............
16f60 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e 61 <li><a.href="#Optionals">Optiona
16f80 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 ls</a></li>.............</ul>...
16fa0 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 ........</td>...........<td>....
16fc0 20 20 20 20 20 20 20 20 20 45 71 75 69 76 61 6c 65 6e 74 20 74 6f 3a 0a 20 20 20 20 20 20 20 20 .........Equivalent.to:.........
16fe0 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3c 73 70 ....<pre><code.class="zig">a.<sp
17000 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 an.class="tok-kw">orelse</span>.
17020 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 <span.class="tok-kw">unreachable
17040 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c </span></code></pre>...........<
17060 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 /td>...........<td>.............
17080 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
170a0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 3a 20 ss="tok-kw">const</span>.value:.
170c0 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 ?<span.class="tok-type">u32</spa
170e0 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 36 n>.=.<span.class="tok-number">56
17100 37 38 3c 2f 73 70 61 6e 3e 3b 0a 76 61 6c 75 65 2e 3f 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 78</span>;.value.?.==.<span.clas
17120 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 36 37 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 s="tok-number">5678</span></code
17140 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 ></pre>...........</td>.........
17160 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 </tr>.........<tr>...........<td
17180 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3c 73 70 61 6e 20 ><pre><code.class="zig">a.<span.
171a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 62 0a 61 20 class="tok-kw">catch</span>.b.a.
171c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e <span.class="tok-kw">catch</span
171e0 3e 20 7c 65 72 72 7c 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 >.|err|.b</code></pre></td>.....
17200 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 ......<td>.............<ul>.....
17220 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 3e ..........<li><a.href="#Errors">
17240 45 72 72 6f 72 20 55 6e 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 Error.Unions</a></li>...........
17260 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 ..</ul>...........</td>.........
17280 20 20 3c 74 64 3e 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f ..<td>If.<code.class="zig">a</co
172a0 64 65 3e 20 69 73 20 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 de>.is.an.<code.class="zig"><spa
172c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 n.class="tok-kw">error</span></c
172e0 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ode>,.......................retu
17300 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 20 28 rns.<code.class="zig">b</code>.(
17320 22 64 65 66 61 75 6c 74 20 76 61 6c 75 65 22 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "default.value"),...............
17340 20 20 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 74 68 ............otherwise.returns.th
17360 65 20 75 6e 77 72 61 70 70 65 64 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 e.unwrapped.value.of.<code.class
17380 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ="zig">a</code>.................
173a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 20 63 ...............Note.that.<code.c
173c0 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 20 6d 61 79 20 62 65 20 61 20 76 61 6c lass="zig">b</code>.may.be.a.val
173e0 75 65 20 6f 66 20 74 79 70 65 20 3c 61 20 68 72 65 66 3d 22 23 6e 6f 72 65 74 75 72 6e 22 3e 6e ue.of.type.<a.href="#noreturn">n
17400 6f 72 65 74 75 72 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oreturn</a>.....................
17420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 ...............<code.class="zig"
17440 3e 65 72 72 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 >err</code>.is.the.<code.class="
17460 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c zig"><span.class="tok-kw">error<
17480 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 69 73 20 69 6e 20 73 63 6f 70 65 20 6f 66 /span></code>.and.is.in.scope.of
174a0 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 .the.expression.<code.class="zig
174c0 22 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 ">b</code>............</td>.....
174e0 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 ......<td>.............<pre><cod
17500 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
17520 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 w">const</span>.value:.<span.cla
17540 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 ss="tok-type">anyerror</span>!<s
17560 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 pan.class="tok-type">u32</span>.
17580 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 =.<span.class="tok-kw">error</sp
175a0 61 6e 3e 2e 42 72 6f 6b 65 6e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 an>.Broken;.<span.class="tok-kw"
175c0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 75 6e 77 72 61 70 70 65 64 20 3d 20 76 61 6c 75 65 20 >const</span>.unwrapped.=.value.
175e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e <span.class="tok-kw">catch</span
17600 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c >.<span.class="tok-number">1234<
17620 2f 73 70 61 6e 3e 3b 0a 75 6e 77 72 61 70 70 65 64 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 /span>;.unwrapped.==.<span.class
17640 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ="tok-number">1234</span></code>
17660 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c </pre>...........</td>.........<
17680 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e /tr>.........<tr>...........<td>
176a0 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3c 73 70 61 6e 20 63 <pre><code.class="zig">a.<span.c
176c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 62 3c 2f 63 6f 64 65 lass="tok-kw">and</span>.b</code
176e0 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 ></pre></td>...........<td>.....
17700 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c ........<ul>...............<li><
17720 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f a.href="#Primitive-Types">bool</
17740 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 a></li>.............</ul>.......
17760 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 ....</td>...........<td>........
17780 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 .......If.<code.class="zig">a</c
177a0 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ode>.is.<code.class="zig"><span.
177c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 class="tok-null">false</span></c
177e0 6f 64 65 3e 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ode>,.returns.<code.class="zig">
17800 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 <span.class="tok-null">false</sp
17820 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 an></code>......................
17840 20 20 20 20 20 77 69 74 68 6f 75 74 20 65 76 61 6c 75 61 74 69 6e 67 20 3c 63 6f 64 65 20 63 6c .....without.evaluating.<code.cl
17860 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 72 ass="zig">b</code>..Otherwise,.r
17880 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 eturns.<code.class="zig">b</code
178a0 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 >............</td>...........<td
178c0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 >.............<pre><code.class="
178e0 7a 69 67 22 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c zig">(<span.class="tok-null">fal
17900 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 se</span>.<span.class="tok-kw">a
17920 6e 64 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 nd</span>.<span.class="tok-null"
17940 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >true</span>).==.<span.class="to
17960 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 k-null">false</span></code></pre
17980 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a >...........</td>.........</tr>.
179a0 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e ........<tr>...........<td><pre>
179c0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d <code.class="zig">a.<span.class=
179e0 22 74 6f 6b 2d 6b 77 22 3e 6f 72 3c 2f 73 70 61 6e 3e 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 "tok-kw">or</span>.b</code></pre
17a00 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 ></td>...........<td>...........
17a20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 ..<ul>...............<li><a.href
17a40 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c 69 ="#Primitive-Types">bool</a></li
17a60 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f >.............</ul>...........</
17a80 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 td>...........<td>..............
17aa0 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f 64 65 3e 20 69 .If.<code.class="zig">a</code>.i
17ac0 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d s.<code.class="zig"><span.class=
17ae0 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 72 "tok-null">true</span></code>,.r
17b00 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 eturns.<code.class="zig"><span.c
17b20 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 lass="tok-null">true</span></cod
17b40 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 e>...........................wit
17b60 68 6f 75 74 20 65 76 61 6c 75 61 74 69 6e 67 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 hout.evaluating.<code.class="zig
17b80 22 3e 62 3c 2f 63 6f 64 65 3e 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 72 6e 73 20 3c ">b</code>..Otherwise,.returns.<
17ba0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 code.class="zig">b</code>.......
17bc0 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 .....</td>...........<td>.......
17be0 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
17c00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e an.class="tok-null">false</span>
17c20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">or</span>.
17c40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 <span.class="tok-null">true</spa
17c60 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 n>.==.<span.class="tok-null">tru
17c80 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 e</span></code></pre>...........
17ca0 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e </td>.........</tr>.........<tr>
17cc0 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d ...........<td><pre><code.class=
17ce0 22 7a 69 67 22 3e 21 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 "zig">!a</code></pre></td>......
17d00 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 .....<td>.............<ul>......
17d20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 .........<li><a.href="#Primitive
17d40 2d 54 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 -Types">bool</a></li>...........
17d60 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 ..</ul>...........</td>.........
17d80 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 42 6f 6f 6c 65 61 6e 20 4e 4f 54 2e 0a ..<td>.............Boolean.NOT..
17da0 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 ..........</td>...........<td>..
17dc0 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ...........<pre><code.class="zig
17de0 22 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c ">!<span.class="tok-null">false<
17e00 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 /span>.==.<span.class="tok-null"
17e20 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 >true</span></code></pre>.......
17e40 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 ....</td>.........</tr>.........
17e60 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c <tr>...........<td><pre><code.cl
17e80 61 73 73 3d 22 7a 69 67 22 3e 61 20 3d 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 ass="zig">a.==.b</code></pre></t
17ea0 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 d>...........<td>.............<u
17ec0 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 l>...............<li><a.href="#I
17ee0 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 ntegers">Integers</a></li>......
17f00 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 .........<li><a.href="#Floats">F
17f20 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 loats</a></li>...............<li
17f40 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c ><a.href="#Primitive-Types">bool
17f60 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 </a></li>...............<li><a.h
17f80 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 74 79 70 65 3c 2f 61 3e 3c ref="#Primitive-Types">type</a><
17fa0 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 /li>.............</ul>..........
17fc0 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 .</td>...........<td>...........
17fe0 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 ....Returns.<code.class="zig"><s
18000 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e pan.class="tok-null">true</span>
18020 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 61 6e 64 20 62 20 61 72 65 20 65 71 75 61 6c 2c 20 6f 74 </code>.if.a.and.b.are.equal,.ot
18040 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 herwise.returns.<code.class="zig
18060 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f "><span.class="tok-null">false</
18080 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 76 6f 6b 65 span></code>..............Invoke
180a0 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e s.<a.href="#Peer-Type-Resolution
180c0 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 ">Peer.Type.Resolution</a>.for.t
180e0 68 65 20 6f 70 65 72 61 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 he.operands............</td>....
18100 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f .......<td>.............<pre><co
18120 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b de.class="zig">(<span.class="tok
18140 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 -number">1</span>.==.<span.class
18160 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e ="tok-number">1</span>).==.<span
18180 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 .class="tok-null">true</span></c
181a0 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 ode></pre>...........</td>......
181c0 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 ...</tr>.........<tr>...........
181e0 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3d 3d 20 <td><pre><code.class="zig">a.==.
18200 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 <span.class="tok-null">null</spa
18220 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c n></code></pre></td>...........<
18240 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 td>.............<ul>............
18260 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 ...<li><a.href="#Optionals">Opti
18280 6f 6e 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e onals</a></li>.............</ul>
182a0 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a ...........</td>...........<td>.
182c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 ..............Returns.<code.clas
182e0 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 s="zig"><span.class="tok-null">t
18300 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 3c 63 6f 64 65 20 rue</span></code>.if.a.is.<code.
18320 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c class="zig"><span.class="tok-nul
18340 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 6f 74 68 65 72 77 69 73 65 l">null</span></code>,.otherwise
18360 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e .returns.<code.class="zig"><span
18380 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f .class="tok-null">false</span></
183a0 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 code>............</td>..........
183c0 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .<td>.............<pre><code.cla
183e0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f ss="zig"><span.class="tok-kw">co
18400 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 nst</span>.value:.?<span.class="
18420 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 tok-type">u32</span>.=.<span.cla
18440 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 76 61 6c 75 65 ss="tok-null">null</span>;.value
18460 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c .==.<span.class="tok-null">null<
18480 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f /span></code></pre>...........</
184a0 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 td>.........</tr>.........<tr>..
184c0 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a .........<td><pre><code.class="z
184e0 69 67 22 3e 61 20 21 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 ig">a.!=.b</code></pre></td>....
18500 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 .......<td>.............<ul>....
18520 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 ...........<li><a.href="#Integer
18540 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 s">Integers</a></li>............
18560 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c ...<li><a.href="#Floats">Floats<
18580 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 /a></li>...............<li><a.hr
185a0 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f ef="#Primitive-Types">bool</a></
185c0 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 li>...............<li><a.href="#
185e0 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 74 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 Primitive-Types">type</a></li>..
18600 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e ...........</ul>...........</td>
18620 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 ...........<td>...............Re
18640 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c turns.<code.class="zig"><span.cl
18660 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 ass="tok-null">false</span></cod
18680 65 3e 20 69 66 20 61 20 61 6e 64 20 62 20 61 72 65 20 65 71 75 61 6c 2c 20 6f 74 68 65 72 77 69 e>.if.a.and.b.are.equal,.otherwi
186a0 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 se.returns.<code.class="zig"><sp
186c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c an.class="tok-null">true</span><
186e0 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 76 6f 6b 65 73 20 3c 61 20 68 /code>..............Invokes.<a.h
18700 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 ref="#Peer-Type-Resolution">Peer
18720 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 .Type.Resolution</a>.for.the.ope
18740 72 61 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 rands............</td>..........
18760 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .<td>.............<pre><code.cla
18780 73 73 3d 22 7a 69 67 22 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 ss="zig">(<span.class="tok-numbe
187a0 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r">1</span>.!=.<span.class="tok-
187c0 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 number">1</span>).==.<span.class
187e0 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c ="tok-null">false</span></code><
18800 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f /pre>...........</td>.........</
18820 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c tr>.........<tr>...........<td><
18840 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 67 74 3b 20 62 3c 2f pre><code.class="zig">a.&gt;.b</
18860 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a code></pre></td>...........<td>.
18880 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ............<ul>...............<
188a0 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c li><a.href="#Integers">Integers<
188c0 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 /a></li>...............<li><a.hr
188e0 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 ef="#Floats">Floats</a></li>....
18900 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 .........</ul>...........</td>..
18920 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 .........<td>...............Retu
18940 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 rns.<code.class="zig"><span.clas
18960 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 s="tok-null">true</span></code>.
18980 69 66 20 61 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 62 2c 20 6f 74 68 65 72 77 69 73 if.a.is.greater.than.b,.otherwis
189a0 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 e.returns.<code.class="zig"><spa
189c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c n.class="tok-null">false</span><
189e0 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 76 6f 6b 65 73 20 3c 61 20 68 /code>..............Invokes.<a.h
18a00 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 ref="#Peer-Type-Resolution">Peer
18a20 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 .Type.Resolution</a>.for.the.ope
18a40 72 61 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 rands............</td>..........
18a60 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .<td>.............<pre><code.cla
18a80 73 73 3d 22 7a 69 67 22 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 ss="zig">(<span.class="tok-numbe
18aa0 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f r">2</span>.&gt;.<span.class="to
18ac0 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 k-number">1</span>).==.<span.cla
18ae0 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ss="tok-null">true</span></code>
18b00 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c </pre>...........</td>.........<
18b20 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e /tr>.........<tr>...........<td>
18b40 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 67 74 3b 3d 20 62 <pre><code.class="zig">a.&gt;=.b
18b60 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 </code></pre></td>...........<td
18b80 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 >.............<ul>..............
18ba0 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 .<li><a.href="#Integers">Integer
18bc0 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 s</a></li>...............<li><a.
18be0 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 href="#Floats">Floats</a></li>..
18c00 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e ...........</ul>...........</td>
18c20 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 ...........<td>...............Re
18c40 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c turns.<code.class="zig"><span.cl
18c60 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ass="tok-null">true</span></code
18c80 3e 20 69 66 20 61 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 >.if.a.is.greater.than.or.equal.
18ca0 74 6f 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c to.b,.otherwise.returns.<code.cl
18cc0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 ass="zig"><span.class="tok-null"
18ce0 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 >false</span></code>............
18d00 20 20 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 ..Invokes.<a.href="#Peer-Type-Re
18d20 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f solution">Peer.Type.Resolution</
18d40 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 20 20 3c a>.for.the.operands............<
18d60 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 /td>...........<td>.............
18d80 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 3c 73 70 61 6e 20 63 6c <pre><code.class="zig">(<span.cl
18da0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 26 67 74 3b 3d 20 ass="tok-number">2</span>.&gt;=.
18dc0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e <span.class="tok-number">1</span
18de0 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 >).==.<span.class="tok-null">tru
18e00 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 e</span></code></pre>...........
18e20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e </td>.........</tr>.........<tr>
18e40 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d ...........<td><pre><code.class=
18e60 22 7a 69 67 22 3e 61 20 26 6c 74 3b 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e "zig">a.&lt;.b</code></pre></td>
18e80 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e ...........<td>.............<ul>
18ea0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 ...............<li><a.href="#Int
18ec0 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 egers">Integers</a></li>........
18ee0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f .......<li><a.href="#Floats">Flo
18f00 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 ats</a></li>.............</ul>..
18f20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 .........</td>...........<td>...
18f40 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d ............Returns.<code.class=
18f60 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 "zig"><span.class="tok-null">tru
18f80 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 6c 65 73 73 20 74 68 61 e</span></code>.if.a.is.less.tha
18fa0 6e 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 n.b,.otherwise.returns.<code.cla
18fc0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e ss="zig"><span.class="tok-null">
18fe0 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 false</span></code>.............
19000 20 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 .Invokes.<a.href="#Peer-Type-Res
19020 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 olution">Peer.Type.Resolution</a
19040 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f >.for.the.operands............</
19060 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c td>...........<td>.............<
19080 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 3c 73 70 61 6e 20 63 6c 61 pre><code.class="zig">(<span.cla
190a0 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 26 6c 74 3b 20 3c 73 ss="tok-number">1</span>.&lt;.<s
190c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">2</span>)
190e0 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c .==.<span.class="tok-null">true<
19100 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c /span></code>></pre>...........<
19120 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a /td>.........</tr>.........<tr>.
19140 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ..........<td><pre><code.class="
19160 7a 69 67 22 3e 61 20 26 6c 74 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e zig">a.&lt;=.b</code></pre></td>
19180 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e ...........<td>.............<ul>
191a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 ...............<li><a.href="#Int
191c0 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 egers">Integers</a></li>........
191e0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f .......<li><a.href="#Floats">Flo
19200 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 ats</a></li>.............</ul>..
19220 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 .........</td>...........<td>...
19240 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d ............Returns.<code.class=
19260 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 "zig"><span.class="tok-null">tru
19280 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 6c 65 73 73 20 74 68 61 e</span></code>.if.a.is.less.tha
192a0 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 n.or.equal.to.b,.otherwise.retur
192c0 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 ns.<code.class="zig"><span.class
192e0 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e ="tok-null">false</span></code>.
19300 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 76 6f 6b 65 73 20 3c 61 20 68 72 65 66 3d 22 23 50 .............Invokes.<a.href="#P
19320 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 65 72 20 54 79 70 65 20 52 eer-Type-Resolution">Peer.Type.R
19340 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 6f 70 65 72 61 6e 64 73 2e 0a esolution</a>.for.the.operands..
19360 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 ..........</td>...........<td>..
19380 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ...........<pre><code.class="zig
193a0 22 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 ">(<span.class="tok-number">1</s
193c0 70 61 6e 3e 20 26 6c 74 3b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 pan>.&lt;=.<span.class="tok-numb
193e0 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f er">2</span>).==.<span.class="to
19400 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e k-null">true</span></code></pre>
19420 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 ...........</td>.........</tr>..
19440 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c .......<tr>...........<td><pre><
19460 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2b 2b 20 62 3c 2f 63 6f 64 65 3e 3c 2f code.class="zig">a.++.b</code></
19480 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 pre></td>...........<td>........
194a0 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 .....<ul>...............<li><a.h
194c0 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 ref="#Arrays">Arrays</a></li>...
194e0 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a ..........</ul>...........</td>.
19500 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 72 72 61 79 ..........<td>.............Array
19520 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e .concatenation..............<ul>
19540 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 6e 6c 79 20 61 76 61 69 6c 61 .................<li>Only.availa
19560 62 6c 65 20 77 68 65 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f ble.when.<code.class="zig">a</co
19580 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 de>.and.<code.class="zig">b</cod
195a0 65 3e 20 61 72 65 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 69 e>.are.<a.href="#comptime">compi
195c0 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c le-time.known</a>..............<
195e0 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c /ul>...........</td>...........<
19600 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 td>.............<pre><code.class
19620 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ="zig"><span.class="tok-kw">cons
19640 74 3c 2f 73 70 61 6e 3e 20 6d 65 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d t</span>.mem.=.<span.class="tok-
19660 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c builtin">@import</span>(<span.cl
19680 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 ass="tok-str">&quot;std&quot;</s
196a0 70 61 6e 3e 29 2e 6d 65 6d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>).mem;.<span.class="tok-kw">
196c0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 31 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 const</span>.array1.=.[_]<span.c
196e0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 7b 3c 73 70 61 6e lass="tok-type">u32</span>{<span
19700 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 3c 73 70 .class="tok-number">1</span>,<sp
19720 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 7d 3b an.class="tok-number">2</span>};
19740 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
19760 6e 3e 20 61 72 72 61 79 32 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n>.array2.=.[_]<span.class="tok-
19780 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f type">u32</span>{<span.class="to
197a0 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-number">3</span>,<span.class="
197c0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 tok-number">4</span>};.<span.cla
197e0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 74 6f 67 65 74 68 65 ss="tok-kw">const</span>.togethe
19800 72 20 3d 20 61 72 72 61 79 31 20 2b 2b 20 61 72 72 61 79 32 3b 0a 6d 65 6d 2e 65 71 6c 28 3c 73 r.=.array1.++.array2;.mem.eql(<s
19820 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c pan.class="tok-type">u32</span>,
19840 20 74 6f 67 65 74 68 65 72 2c 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 .together,.[_]<span.class="tok-t
19860 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ype">u32</span>{<span.class="tok
19880 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -number">1</span>,<span.class="t
198a0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-number">2</span>,<span.class=
198c0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 3c 73 70 61 6e 20 63 6c 61 73 "tok-number">3</span>,<span.clas
198e0 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 7d 29 3c 2f 63 6f 64 65 3e s="tok-number">4</span>})</code>
19900 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c </pre>...........</td>.........<
19920 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e /tr>.........<tr>...........<td>
19940 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2a 2a 20 62 3c 2f 63 <pre><code.class="zig">a.**.b</c
19960 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 ode></pre></td>...........<td>..
19980 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c ...........<ul>...............<l
199a0 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f i><a.href="#Arrays">Arrays</a></
199c0 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 li>.............</ul>...........
199e0 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 </td>...........<td>............
19a00 20 41 72 72 61 79 20 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 .Array.multiplication...........
19a20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 6e 6c 79 ...<ul>.................<li>Only
19a40 20 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 .available.when.<code.class="zig
19a60 22 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 ">a</code>.and.<code.class="zig"
19a80 3e 62 3c 2f 63 6f 64 65 3e 20 61 72 65 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 >b</code>.are.<a.href="#comptime
19aa0 22 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 ">compile-time.known</a>........
19ac0 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 ......</ul>...........</td>.....
19ae0 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 ......<td>.............<pre><cod
19b00 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
19b20 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 65 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 w">const</span>.mem.=.<span.clas
19b40 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c s="tok-builtin">@import</span>(<
19b60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 span.class="tok-str">&quot;std&q
19b80 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 65 6d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>).mem;.<span.class="t
19ba0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 61 74 74 65 72 6e 20 3d 20 3c 73 ok-kw">const</span>.pattern.=.<s
19bc0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 62 26 71 75 6f pan.class="tok-str">&quot;ab&quo
19be0 74 3b 3c 2f 73 70 61 6e 3e 20 2a 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 t;</span>.**.<span.class="tok-nu
19c00 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 0a 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c mber">3</span>;.mem.eql(<span.cl
19c20 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 70 61 74 74 65 72 ass="tok-type">u8</span>,.patter
19c40 6e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 n,.<span.class="tok-str">&quot;a
19c60 62 61 62 61 62 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e babab&quot;</span>)</code></pre>
19c80 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 ...........</td>.........</tr>..
19ca0 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c .......<tr>...........<td><pre><
19cc0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 2e 2a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 code.class="zig">a.*</code></pre
19ce0 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 ></td>...........<td>...........
19d00 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 ..<ul>...............<li><a.href
19d20 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 ="#Pointers">Pointers</a></li>..
19d40 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e ...........</ul>...........</td>
19d60 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 6f 69 6e ...........<td>.............Poin
19d80 74 65 72 20 64 65 72 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e ter.dereference............</td>
19da0 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 ...........<td>.............<pre
19dc0 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
19de0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c tok-kw">const</span>.x:.<span.cl
19e00 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 ass="tok-type">u32</span>.=.<spa
19e20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e n.class="tok-number">1234</span>
19e40 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ;.<span.class="tok-kw">const</sp
19e60 61 6e 3e 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 70 74 72 2e 2a 20 3d 3d 20 3c 73 70 61 6e an>.ptr.=.&amp;x;.ptr.*.==.<span
19e80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3c .class="tok-number">1234</span><
19ea0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 /code></pre>...........</td>....
19ec0 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 .....</tr>.........<tr>.........
19ee0 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 26 61 6d ..<td><pre><code.class="zig">&am
19f00 70 3b 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 p;a</code></pre></td>...........
19f20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 6c 6c 20 74 79 70 65 73 0a 20 20 20 20 20 <td>.............All.types......
19f40 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 .....</td>...........<td>.......
19f60 20 20 20 20 20 20 41 64 64 72 65 73 73 20 6f 66 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 ......Address.of............</td
19f80 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 >...........<td>.............<pr
19fa0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
19fc0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 "tok-kw">const</span>.x:.<span.c
19fe0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 lass="tok-type">u32</span>.=.<sp
1a000 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e an.class="tok-number">1234</span
1a020 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 >;.<span.class="tok-kw">const</s
1a040 70 61 6e 3e 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 70 74 72 2e 2a 20 3d 3d 20 3c 73 70 61 pan>.ptr.=.&amp;x;.ptr.*.==.<spa
1a060 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e n.class="tok-number">1234</span>
1a080 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 </code></pre>...........</td>...
1a0a0 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 ......</tr>.........<tr>........
1a0c0 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 ...<td><pre><code.class="zig">a.
1a0e0 7c 7c 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 ||.b</code></pre></td>..........
1a100 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 .<td>.............<ul>..........
1a120 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 .....<li><a.href="#Error-Set-Typ
1a140 65 22 3e 45 72 72 6f 72 20 53 65 74 20 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 e">Error.Set.Type</a></li>......
1a160 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 .......</ul>...........</td>....
1a180 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 .......<td>...............<a.hre
1a1a0 66 3d 22 23 4d 65 72 67 69 6e 67 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 4d 65 72 67 69 6e 67 20 f="#Merging-Error-Sets">Merging.
1a1c0 45 72 72 6f 72 20 53 65 74 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 Error.Sets</a>...........</td>..
1a1e0 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c .........<td>.............<pre><
1a200 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
1a220 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 20 3d 20 3c 73 70 61 6e 20 63 6c 61 k-kw">const</span>.A.=.<span.cla
1a240 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 4f 6e 65 7d 3b 0a 3c ss="tok-kw">error</span>{One};.<
1a260 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
1a280 20 42 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c .B.=.<span.class="tok-kw">error<
1a2a0 2f 73 70 61 6e 3e 7b 54 77 6f 7d 3b 0a 28 41 20 7c 7c 20 42 29 20 3d 3d 20 3c 73 70 61 6e 20 63 /span>{Two};.(A.||.B).==.<span.c
1a2c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 4f 6e 65 2c 20 lass="tok-kw">error</span>{One,.
1a2e0 54 77 6f 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 Two}</code></pre>...........</td
1a300 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 >.........</tr>.......</table>..
1a320 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d .....</div>..............<h2.id=
1a340 22 50 72 65 63 65 64 65 6e 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 50 72 65 63 65 "Precedence"><a.href="#toc-Prece
1a360 64 65 6e 63 65 22 3e 50 72 65 63 65 64 65 6e 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 dence">Precedence</a>.<a.class="
1a380 68 64 72 22 20 68 72 65 66 3d 22 23 50 72 65 63 65 64 65 6e 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f hdr".href="#Precedence">..</a></
1a3a0 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 h2>........<pre><code.class="zig
1a3c0 22 3e 78 28 29 20 78 5b 5d 20 78 2e 79 0a 61 21 62 0a 21 78 20 2d 78 20 2d 25 78 20 7e 78 20 26 ">x().x[].x.y.a!b.!x.-x.-%x.~x.&
1a3e0 61 6d 70 3b 78 20 3f 78 0a 78 7b 7d 20 78 2e 2a 20 78 2e 3f 0a 21 20 2a 20 2f 20 25 20 2a 2a 20 amp;x.?x.x{}.x.*.x.?.!.*./.%.**.
1a400 2a 25 20 7c 7c 0a 2b 20 2d 20 2b 2b 20 2b 25 20 2d 25 0a 26 6c 74 3b 26 6c 74 3b 20 26 67 74 3b *%.||.+.-.++.+%.-%.&lt;&lt;.&gt;
1a420 26 67 74 3b 0a 26 61 6d 70 3b 0a 5e 0a 7c 0a 3d 3d 20 21 3d 20 26 6c 74 3b 20 26 67 74 3b 20 26 &gt;.&amp;.^.|.==.!=.&lt;.&gt;.&
1a440 6c 74 3b 3d 20 26 67 74 3b 3d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lt;=.&gt;=.<span.class="tok-kw">
1a460 61 6e 64 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e and</span>.<span.class="tok-kw">
1a480 6f 72 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f or</span>.<span.class="tok-kw">o
1a4a0 72 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 relse</span>.<span.class="tok-kw
1a4c0 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 0a 3d 20 2a 3d 20 2f 3d 20 25 3d 20 2b 3d 20 2d 3d 20 ">catch</span>.=.*=./=.%=.+=.-=.
1a4e0 26 6c 74 3b 26 6c 74 3b 3d 20 26 67 74 3b 26 67 74 3b 3d 20 26 61 6d 70 3b 3d 20 5e 3d 20 7c 3d &lt;&lt;=.&gt;&gt;=.&amp;=.^=.|=
1a500 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 </code></pre>...................
1a520 20 20 3c 68 31 20 69 64 3d 22 41 72 72 61 79 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d ..<h1.id="Arrays"><a.href="#toc-
1a540 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 Arrays">Arrays</a>.<a.class="hdr
1a560 22 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 ".href="#Arrays">..</a></h1>....
1a580 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 61 72 72 61 79 73 2e 7a 69 67 3c 2f ....<p.class="file">arrays.zig</
1a5a0 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 p><pre><code.class="zig"><span.c
1a5c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 lass="tok-kw">const</span>.asser
1a5e0 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 t.=.<span.class="tok-builtin">@i
1a600 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 mport</span>(<span.class="tok-st
1a620 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 r">&quot;std&quot;</span>).debug
1a640 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f .assert;.<span.class="tok-kw">co
1a660 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 65 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f nst</span>.mem.=.<span.class="to
1a680 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
1a6a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
1a6c0 2f 73 70 61 6e 3e 29 2e 6d 65 6d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 /span>).mem;..<span.class="tok-c
1a6e0 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 72 72 61 79 20 6c 69 74 65 72 61 6c 3c 2f 73 70 61 6e 3e 0a omment">//.array.literal</span>.
1a700 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
1a720 3e 20 6d 65 73 73 61 67 65 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >.message.=.[_]<span.class="tok-
1a740 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f type">u8</span>{.<span.class="to
1a760 6b 2d 73 74 72 22 3e 27 68 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-str">'h'</span>,.<span.class="
1a780 74 6f 6b 2d 73 74 72 22 3e 27 65 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-str">'e'</span>,.<span.class
1a7a0 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6c 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 ="tok-str">'l'</span>,.<span.cla
1a7c0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6c 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 ss="tok-str">'l'</span>,.<span.c
1a7e0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6f 27 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 0a 3c 73 lass="tok-str">'o'</span>.};..<s
1a800 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 67 65 74 20 74 pan.class="tok-comment">//.get.t
1a820 68 65 20 73 69 7a 65 20 6f 66 20 61 6e 20 61 72 72 61 79 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e he.size.of.an.array</span>.<span
1a840 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 .class="tok-kw">comptime</span>.
1a860 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 73 73 61 67 65 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 {.....assert(message.len.==.<spa
1a880 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 29 3b 0a n.class="tok-number">5</span>);.
1a8a0 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 }..<span.class="tok-comment">//.
1a8c0 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 69 73 20 61 6e 20 61 72 72 61 79 20 6c 69 74 a.string.literal.is.an.array.lit
1a8e0 65 72 61 6c 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 eral</span>.<span.class="tok-kw"
1a900 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 61 6d 65 5f 6d 65 73 73 61 67 65 20 3d 20 3c 73 70 >const</span>.same_message.=.<sp
1a920 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 an.class="tok-str">&quot;hello&q
1a940 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b uot;</span>;..<span.class="tok-k
1a960 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 w">comptime</span>.{.....assert(
1a980 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 mem.eql(<span.class="tok-type">u
1a9a0 38 3c 2f 73 70 61 6e 3e 2c 20 6d 65 73 73 61 67 65 2c 20 73 61 6d 65 5f 6d 65 73 73 61 67 65 29 8</span>,.message,.same_message)
1a9c0 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 );.....assert(<span.class="tok-b
1a9e0 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6d 65 73 73 61 67 65 29 20 uiltin">@typeOf</span>(message).
1aa00 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 ==.<span.class="tok-builtin">@ty
1aa20 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 73 61 6d 65 5f 6d 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a 3c peOf</span>(same_message));.}..<
1aa40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">test</span>.
1aa60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 74 65 72 <span.class="tok-str">&quot;iter
1aa80 61 74 65 20 6f 76 65 72 20 61 6e 20 61 72 72 61 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b ate.over.an.array&quot;</span>.{
1aaa0 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 .....<span.class="tok-kw">var</s
1aac0 70 61 6e 3e 20 73 75 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 pan>.sum:.<span.class="tok-type"
1aae0 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >usize</span>.=.<span.class="tok
1ab00 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 -number">0</span>;.....<span.cla
1ab20 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 6d 65 73 73 61 67 65 29 ss="tok-kw">for</span>.(message)
1ab40 20 7c 62 79 74 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 62 79 74 65 3b 0a 20 .|byte|.{.........sum.+=.byte;..
1ab60 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 ...}.....assert(sum.==.<span.cla
1ab80 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ss="tok-type">usize</span>(<span
1aba0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 68 27 3c 2f 73 70 61 6e 3e 29 20 2b 20 3c .class="tok-str">'h'</span>).+.<
1abc0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 span.class="tok-type">usize</spa
1abe0 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 65 27 3c 2f 73 70 n>(<span.class="tok-str">'e'</sp
1ac00 61 6e 3e 29 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 an>).+.<span.class="tok-type">us
1ac20 69 7a 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 ize</span>(<span.class="tok-str"
1ac40 3e 27 6c 27 3c 2f 73 70 61 6e 3e 29 20 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >'l'</span>).*.<span.class="tok-
1ac60 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 number">2</span>.+.<span.class="
1ac80 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 tok-type">usize</span>(<span.cla
1aca0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6f 27 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a 3c 73 ss="tok-str">'o'</span>));.}..<s
1acc0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6d 6f 64 69 66 pan.class="tok-comment">//.modif
1ace0 69 61 62 6c 65 20 61 72 72 61 79 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 iable.array</span>.<span.class="
1ad00 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 tok-kw">var</span>.some_integers
1ad20 3a 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 3c :.[<span.class="tok-number">100<
1ad40 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 /span>]<span.class="tok-type">i3
1ad60 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 2</span>.=.<span.class="tok-null
1ad80 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ">undefined</span>;..<span.class
1ada0 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ="tok-kw">test</span>.<span.clas
1adc0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6d 6f 64 69 66 79 20 61 6e 20 61 72 72 61 s="tok-str">&quot;modify.an.arra
1ade0 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 y&quot;</span>.{.....<span.class
1ae00 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 73 6f 6d 65 5f 69 6e 74 65 67 ="tok-kw">for</span>.(some_integ
1ae20 65 72 73 29 20 7c 2a 69 74 65 6d 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 69 74 65 6d 2e 2a ers).|*item,.i|.{.........item.*
1ae40 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e .=.<span.class="tok-builtin">@in
1ae60 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 tCast</span>(<span.class="tok-ty
1ae80 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 69 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 pe">i32</span>,.i);.....}.....as
1aea0 73 65 72 74 28 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 sert(some_integers[<span.class="
1aec0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 tok-number">10</span>].==.<span.
1aee0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 class="tok-number">10</span>);..
1af00 20 20 20 61 73 73 65 72 74 28 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 5b 3c 73 70 61 6e 20 63 6c ...assert(some_integers[<span.cl
1af20 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 39 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c ass="tok-number">99</span>].==.<
1af40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 39 3c 2f 73 70 61 6e span.class="tok-number">99</span
1af60 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 >);.}..<span.class="tok-comment"
1af80 3e 2f 2f 20 61 72 72 61 79 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 77 6f 72 6b 73 20 69 66 >//.array.concatenation.works.if
1afa0 20 74 68 65 20 76 61 6c 75 65 73 20 61 72 65 20 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 .the.values.are.known</span>.<sp
1afc0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 74 20 63 6f 6d an.class="tok-comment">//.at.com
1afe0 70 69 6c 65 20 74 69 6d 65 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pile.time</span>.<span.class="to
1b000 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 61 72 74 5f 6f 6e 65 20 3d 20 5b 5f k-kw">const</span>.part_one.=.[_
1b020 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 ]<span.class="tok-type">i32</spa
1b040 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f n>{.<span.class="tok-number">1</
1b060 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e span>,.<span.class="tok-number">
1b080 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 2</span>,.<span.class="tok-numbe
1b0a0 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 r">3</span>,.<span.class="tok-nu
1b0c0 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 mber">4</span>.};.<span.class="t
1b0e0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 61 72 74 5f 74 77 6f 20 3d 20 5b ok-kw">const</span>.part_two.=.[
1b100 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 _]<span.class="tok-type">i32</sp
1b120 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c an>{.<span.class="tok-number">5<
1b140 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>,.<span.class="tok-number"
1b160 3e 36 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 >6</span>,.<span.class="tok-numb
1b180 65 72 22 3e 37 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e er">7</span>,.<span.class="tok-n
1b1a0 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 umber">8</span>.};.<span.class="
1b1c0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6c 6c 5f 6f 66 5f 69 74 20 3d tok-kw">const</span>.all_of_it.=
1b1e0 20 70 61 72 74 5f 6f 6e 65 20 2b 2b 20 70 61 72 74 5f 74 77 6f 3b 0a 3c 73 70 61 6e 20 63 6c 61 .part_one.++.part_two;.<span.cla
1b200 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 ss="tok-kw">comptime</span>.{...
1b220 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..assert(mem.eql(<span.class="to
1b240 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 61 6c 6c 5f 6f 66 5f 69 74 2c 20 5b k-type">i32</span>,.all_of_it,.[
1b260 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 _]<span.class="tok-type">i32</sp
1b280 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c an>{.<span.class="tok-number">1<
1b2a0 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>,.<span.class="tok-number"
1b2c0 3e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 >2</span>,.<span.class="tok-numb
1b2e0 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e er">3</span>,.<span.class="tok-n
1b300 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f umber">4</span>,.<span.class="to
1b320 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-number">5</span>,.<span.class=
1b340 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 "tok-number">6</span>,.<span.cla
1b360 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 37 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 ss="tok-number">7</span>,.<span.
1b380 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 20 7d 29 29 3b class="tok-number">8</span>.}));
1b3a0 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f .}..<span.class="tok-comment">//
1b3c0 20 72 65 6d 65 6d 62 65 72 20 74 68 61 74 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 61 .remember.that.string.literals.a
1b3e0 72 65 20 61 72 72 61 79 73 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f re.arrays</span>.<span.class="to
1b400 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 65 6c 6c 6f 20 3d 20 3c 73 70 61 6e k-kw">const</span>.hello.=.<span
1b420 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f .class="tok-str">&quot;hello&quo
1b440 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e t;</span>;.<span.class="tok-kw">
1b460 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 6f 72 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 const</span>.world.=.<span.class
1b480 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 77 6f 72 6c 64 26 71 75 6f 74 3b 3c 2f 73 70 ="tok-str">&quot;world&quot;</sp
1b4a0 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c an>;.<span.class="tok-kw">const<
1b4c0 2f 73 70 61 6e 3e 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 20 3d 20 68 65 6c 6c 6f 20 2b 2b 20 3c 73 /span>.hello_world.=.hello.++.<s
1b4e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 20 26 71 75 6f 74 pan.class="tok-str">&quot;.&quot
1b500 3b 3c 2f 73 70 61 6e 3e 20 2b 2b 20 77 6f 72 6c 64 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ;</span>.++.world;.<span.class="
1b520 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 tok-kw">comptime</span>.{.....as
1b540 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 sert(mem.eql(<span.class="tok-ty
1b560 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 2c 20 3c 73 70 61 pe">u8</span>,.hello_world,.<spa
1b580 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 77 6f n.class="tok-str">&quot;hello.wo
1b5a0 72 6c 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 rld&quot;</span>));.}..<span.cla
1b5c0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 2a 2a 20 64 6f 65 73 20 72 65 70 65 ss="tok-comment">//.**.does.repe
1b5e0 61 74 69 6e 67 20 70 61 74 74 65 72 6e 73 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 ating.patterns</span>.<span.clas
1b600 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 61 74 74 65 72 6e 20 s="tok-kw">const</span>.pattern.
1b620 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 62 =.<span.class="tok-str">&quot;ab
1b640 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 2a 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f &quot;</span>.**.<span.class="to
1b660 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-number">3</span>;.<span.class=
1b680 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 "tok-kw">comptime</span>.{.....a
1b6a0 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ssert(mem.eql(<span.class="tok-t
1b6c0 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 70 61 74 74 65 72 6e 2c 20 3c 73 70 61 6e 20 63 ype">u8</span>,.pattern,.<span.c
1b6e0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 62 61 62 61 62 26 71 75 6f 74 lass="tok-str">&quot;ababab&quot
1b700 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ;</span>));.}..<span.class="tok-
1b720 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 6e 20 61 72 72 61 79 20 comment">//.initialize.an.array.
1b740 74 6f 20 7a 65 72 6f 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d to.zero</span>.<span.class="tok-
1b760 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6c 6c 5f 7a 65 72 6f 20 3d 20 5b 5f 5d 3c kw">const</span>.all_zero.=.[_]<
1b780 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e span.class="tok-type">u16</span>
1b7a0 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 {<span.class="tok-number">0</spa
1b7c0 6e 3e 7d 20 2a 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e n>}.**.<span.class="tok-number">
1b7e0 31 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 10</span>;..<span.class="tok-kw"
1b800 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 61 6c >comptime</span>.{.....assert(al
1b820 6c 5f 7a 65 72 6f 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e l_zero.len.==.<span.class="tok-n
1b840 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 61 6c umber">10</span>);.....assert(al
1b860 6c 5f 7a 65 72 6f 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e l_zero[<span.class="tok-number">
1b880 35 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 5</span>].==.<span.class="tok-nu
1b8a0 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d mber">0</span>);.}..<span.class=
1b8c0 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 75 73 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d "tok-comment">//.use.compile-tim
1b8e0 65 20 63 6f 64 65 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 6e 20 61 72 72 61 79 3c 2f 73 e.code.to.initialize.an.array</s
1b900 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 pan>.<span.class="tok-kw">var</s
1b920 70 61 6e 3e 20 66 61 6e 63 79 5f 61 72 72 61 79 20 3d 20 69 6e 69 74 3a 20 7b 0a 20 20 20 20 3c pan>.fancy_array.=.init:.{.....<
1b940 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 span.class="tok-kw">var</span>.i
1b960 6e 69 74 69 61 6c 5f 76 61 6c 75 65 3a 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d nitial_value:.[<span.class="tok-
1b980 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 5d 50 6f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 number">10</span>]Point.=.<span.
1b9a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e class="tok-null">undefined</span
1b9c0 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c >;.....<span.class="tok-kw">for<
1b9e0 2f 73 70 61 6e 3e 20 28 69 6e 69 74 69 61 6c 5f 76 61 6c 75 65 29 20 7c 2a 70 74 2c 20 69 7c 20 /span>.(initial_value).|*pt,.i|.
1ba00 7b 0a 20 20 20 20 20 20 20 20 70 74 2e 2a 20 3d 20 50 6f 69 6e 74 7b 0a 20 20 20 20 20 20 20 20 {.........pt.*.=.Point{.........
1ba20 20 20 20 20 2e 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 .....x.=.<span.class="tok-builti
1ba40 6e 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n">@intCast</span>(<span.class="
1ba60 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 69 29 2c 0a 20 20 20 20 20 20 tok-type">i32</span>,.i),.......
1ba80 20 20 20 20 20 20 2e 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c .......y.=.<span.class="tok-buil
1baa0 74 69 6e 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 tin">@intCast</span>(<span.class
1bac0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 69 29 20 2a 20 3c 73 70 ="tok-type">i32</span>,.i).*.<sp
1bae0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 0a an.class="tok-number">2</span>,.
1bb00 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ........};.....}.....<span.class
1bb20 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3a 69 6e 69 74 20 69 6e 69 ="tok-kw">break</span>.:init.ini
1bb40 74 69 61 6c 5f 76 61 6c 75 65 3b 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d tial_value;.};.<span.class="tok-
1bb60 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 6f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 kw">const</span>.Point.=.<span.c
1bb80 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-kw">struct</span>.{...
1bba0 20 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c ..x:.<span.class="tok-type">i32<
1bbc0 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d /span>,.....y:.<span.class="tok-
1bbe0 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 type">i32</span>,.};..<span.clas
1bc00 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">test</span>.<span.cla
1bc20 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 ss="tok-str">&quot;compile-time.
1bc40 61 72 72 61 79 20 69 6e 69 74 61 6c 69 7a 61 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e array.initalization&quot;</span>
1bc60 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6e 63 79 5f 61 72 72 61 79 5b 3c 73 70 61 6e 20 .{.....assert(fancy_array[<span.
1bc80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 2e 78 20 3d class="tok-number">4</span>].x.=
1bca0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 =.<span.class="tok-number">4</sp
1bcc0 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6e 63 79 5f 61 72 72 61 79 5b 3c 73 70 an>);.....assert(fancy_array[<sp
1bce0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 2e an.class="tok-number">4</span>].
1bd00 79 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c y.==.<span.class="tok-number">8<
1bd20 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d /span>);.}..<span.class="tok-com
1bd40 6d 65 6e 74 22 3e 2f 2f 20 63 61 6c 6c 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 69 6e 69 74 ment">//.call.a.function.to.init
1bd60 69 61 6c 69 7a 65 20 61 6e 20 61 72 72 61 79 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ialize.an.array</span>.<span.cla
1bd80 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6d 6f 72 65 5f 70 6f 69 6e ss="tok-kw">var</span>.more_poin
1bda0 74 73 20 3d 20 5b 5f 5d 50 6f 69 6e 74 7b 6d 61 6b 65 50 6f 69 6e 74 28 3c 73 70 61 6e 20 63 6c ts.=.[_]Point{makePoint(<span.cl
1bdc0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 7d 20 2a 2a 20 3c ass="tok-number">3</span>)}.**.<
1bde0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e span.class="tok-number">10</span
1be00 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e >;.<span.class="tok-kw">fn</span
1be20 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 6b 65 50 6f 69 6e 74 >.<span.class="tok-fn">makePoint
1be40 3c 2f 73 70 61 6e 3e 28 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>(x:.<span.class="tok-type
1be60 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 ">i32</span>).Point.{.....<span.
1be80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 50 6f 69 class="tok-kw">return</span>.Poi
1bea0 6e 74 7b 0a 20 20 20 20 20 20 20 20 2e 78 20 3d 20 78 2c 0a 20 20 20 20 20 20 20 20 2e 79 20 3d nt{..........x.=.x,..........y.=
1bec0 20 78 20 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c .x.*.<span.class="tok-number">2<
1bee0 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>,.....};.}.<span.class="to
1bf00 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 k-kw">test</span>.<span.class="t
1bf20 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 ok-str">&quot;array.initializati
1bf40 6f 6e 20 77 69 74 68 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 26 71 75 6f 74 3b 3c 2f 73 70 on.with.function.calls&quot;</sp
1bf60 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 6f 72 65 5f 70 6f 69 6e 74 73 5b 3c 73 70 an>.{.....assert(more_points[<sp
1bf80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 2e an.class="tok-number">4</span>].
1bfa0 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c x.==.<span.class="tok-number">3<
1bfc0 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 6f 72 65 5f 70 6f 69 6e 74 73 5b /span>);.....assert(more_points[
1bfe0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e <span.class="tok-number">4</span
1c000 3e 5d 2e 79 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 >].y.==.<span.class="tok-number"
1c020 3e 36 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 6f 72 65 5f 70 6f 69 6e >6</span>);.....assert(more_poin
1c040 74 73 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 ts.len.==.<span.class="tok-numbe
1c060 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 r">10</span>);.}</code></pre><pr
1c080 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 e><code.class="shell">$.zig.test
1c0a0 20 61 72 72 61 79 73 2e 7a 69 67 0a 31 2f 34 20 74 65 73 74 20 26 71 75 6f 74 3b 69 74 65 72 61 .arrays.zig.1/4.test.&quot;itera
1c0c0 74 65 20 6f 76 65 72 20 61 6e 20 61 72 72 61 79 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 34 20 te.over.an.array&quot;...OK.2/4.
1c0e0 74 65 73 74 20 26 71 75 6f 74 3b 6d 6f 64 69 66 79 20 61 6e 20 61 72 72 61 79 26 71 75 6f 74 3b test.&quot;modify.an.array&quot;
1c100 2e 2e 2e 4f 4b 0a 33 2f 34 20 74 65 73 74 20 26 71 75 6f 74 3b 63 6f 6d 70 69 6c 65 2d 74 69 6d ...OK.3/4.test.&quot;compile-tim
1c120 65 20 61 72 72 61 79 20 69 6e 69 74 61 6c 69 7a 61 74 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b e.array.initalization&quot;...OK
1c140 0a 34 2f 34 20 74 65 73 74 20 26 71 75 6f 74 3b 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 61 .4/4.test.&quot;array.initializa
1c160 74 69 6f 6e 20 77 69 74 68 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 26 71 75 6f 74 3b 2e 2e tion.with.function.calls&quot;..
1c180 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 .OK.All.tests.passed..</code></p
1c1a0 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a re>........<p>See.also:</p><ul>.
1c1c0 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a <li><a.href="#for">for</a></li>.
1c1e0 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e <li><a.href="#Slices">Slices</a>
1c200 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 4d 75 6c 74 </li>.</ul>.........<h2.id="Mult
1c220 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 2d 41 72 72 61 79 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 idimensional-Arrays"><a.href="#t
1c240 6f 63 2d 4d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 2d 41 72 72 61 79 73 22 3e 4d 75 6c 74 oc-Multidimensional-Arrays">Mult
1c260 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 41 72 72 61 79 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 idimensional.Arrays</a>.<a.class
1c280 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 2d 41 ="hdr".href="#Multidimensional-A
1c2a0 72 72 61 79 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 rrays">..</a></h2>........<p>...
1c2c0 20 20 20 20 4d 75 74 6c 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 61 72 72 61 79 73 20 63 61 6e 20 ....Mutlidimensional.arrays.can.
1c2e0 62 65 20 63 72 65 61 74 65 64 20 62 79 20 6e 65 73 74 69 6e 67 20 61 72 72 61 79 73 3a 0a 20 20 be.created.by.nesting.arrays:...
1c300 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6d ....</p>.......<p.class="file">m
1c320 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 ultidimensional.zig</p><pre><cod
1c340 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
1c360 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 w">const</span>.std.=.<span.clas
1c380 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c s="tok-builtin">@import</span>(<
1c3a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 span.class="tok-str">&quot;std&q
1c3c0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b uot;</span>);.<span.class="tok-k
1c3e0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 w">const</span>.assert.=.std.deb
1c400 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ug.assert;..<span.class="tok-kw"
1c420 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 61 74 34 78 34 20 3d 20 5b 3c 73 70 61 6e 20 63 6c >const</span>.mat4x4.=.[<span.cl
1c440 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 5b 3c 73 70 61 6e ass="tok-number">4</span>][<span
1c460 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 3c 73 70 .class="tok-number">4</span>]<sp
1c480 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 7b 0a an.class="tok-type">f32</span>{.
1c4a0 20 20 20 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 ....[_]<span.class="tok-type">f3
1c4c0 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 2</span>{.<span.class="tok-numbe
1c4e0 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r">1.0</span>,.<span.class="tok-
1c500 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d number">0.0</span>,.<span.class=
1c520 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 "tok-number">0.0</span>,.<span.c
1c540 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 20 7d 2c 0a lass="tok-number">0.0</span>.},.
1c560 20 20 20 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 ....[_]<span.class="tok-type">f3
1c580 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 2</span>{.<span.class="tok-numbe
1c5a0 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r">0.0</span>,.<span.class="tok-
1c5c0 6e 75 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d number">1.0</span>,.<span.class=
1c5e0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 "tok-number">0.0</span>,.<span.c
1c600 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 20 7d 2c 0a lass="tok-number">1.0</span>.},.
1c620 20 20 20 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 ....[_]<span.class="tok-type">f3
1c640 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 2</span>{.<span.class="tok-numbe
1c660 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r">0.0</span>,.<span.class="tok-
1c680 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d number">0.0</span>,.<span.class=
1c6a0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 "tok-number">1.0</span>,.<span.c
1c6c0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 20 7d 2c 0a lass="tok-number">0.0</span>.},.
1c6e0 20 20 20 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 ....[_]<span.class="tok-type">f3
1c700 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 2</span>{.<span.class="tok-numbe
1c720 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r">0.0</span>,.<span.class="tok-
1c740 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d number">0.0</span>,.<span.class=
1c760 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 "tok-number">0.0</span>,.<span.c
1c780 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 20 7d 2c 0a lass="tok-number">1.0</span>.},.
1c7a0 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 };.<span.class="tok-kw">test</sp
1c7c0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b an>.<span.class="tok-str">&quot;
1c7e0 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 61 72 72 61 79 73 26 71 75 6f 74 3b 3c 2f 73 multidimensional.arrays&quot;</s
1c800 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d pan>.{.....<span.class="tok-comm
1c820 65 6e 74 22 3e 2f 2f 20 41 63 63 65 73 73 20 74 68 65 20 32 44 20 61 72 72 61 79 20 62 79 20 69 ent">//.Access.the.2D.array.by.i
1c840 6e 64 65 78 69 6e 67 20 74 68 65 20 6f 75 74 65 72 20 61 72 72 61 79 2c 20 61 6e 64 20 74 68 65 ndexing.the.outer.array,.and.the
1c860 6e 20 74 68 65 20 69 6e 6e 65 72 20 61 72 72 61 79 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 n.the.inner.array.</span>.....as
1c880 73 65 72 74 28 6d 61 74 34 78 34 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d sert(mat4x4[<span.class="tok-num
1c8a0 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ber">1</span>][<span.class="tok-
1c8c0 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 number">1</span>].==.<span.class
1c8e0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 ="tok-number">1.0</span>);......
1c900 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 48 65 72 <span.class="tok-comment">//.Her
1c920 65 20 77 65 20 69 74 65 72 61 74 65 20 77 69 74 68 20 66 6f 72 20 6c 6f 6f 70 73 2e 3c 2f 73 70 e.we.iterate.with.for.loops.</sp
1c940 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 an>.....<span.class="tok-kw">for
1c960 3c 2f 73 70 61 6e 3e 20 28 6d 61 74 34 78 34 29 20 7c 72 6f 77 2c 20 72 6f 77 5f 69 6e 64 65 78 </span>.(mat4x4).|row,.row_index
1c980 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 |.{.........<span.class="tok-kw"
1c9a0 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 72 6f 77 29 20 7c 63 65 6c 6c 2c 20 63 6f 6c 75 6d 6e 5f >for</span>.(row).|cell,.column_
1c9c0 69 6e 64 65 78 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 index|.{.............<span.class
1c9e0 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 72 6f 77 5f 69 6e 64 65 78 20 3d ="tok-kw">if</span>.(row_index.=
1ca00 3d 20 63 6f 6c 75 6d 6e 5f 69 6e 64 65 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.column_index).{...............
1ca20 20 20 61 73 73 65 72 74 28 63 65 6c 6c 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..assert(cell.==.<span.class="to
1ca40 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 20 k-number">1.0</span>);..........
1ca60 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 ...}.........}.....}.}</code></p
1ca80 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
1caa0 67 20 74 65 73 74 20 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 2e 7a 69 67 0a 31 2f 31 20 g.test.multidimensional.zig.1/1.
1cac0 74 65 73 74 20 26 71 75 6f 74 3b 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 61 72 72 61 test.&quot;multidimensional.arra
1cae0 79 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a ys&quot;...OK.All.tests.passed..
1cb00 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 </code></pre>...................
1cb20 20 20 20 20 3c 68 31 20 69 64 3d 22 56 65 63 74 6f 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 ....<h1.id="Vectors"><a.href="#t
1cb40 6f 63 2d 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 oc-Vectors">Vectors</a>.<a.class
1cb60 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 ="hdr".href="#Vectors">..</a></h
1cb80 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 76 65 63 74 6f 72 20 69 73 20 1>........<p>.......A.vector.is.
1cba0 61 20 67 72 6f 75 70 20 6f 66 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 a.group.of.<a.href="#Integers">I
1cbc0 6e 74 65 67 65 72 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 ntegers</a>,.<a.href="#Floats">F
1cbe0 6c 6f 61 74 73 3c 2f 61 3e 2c 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 loats</a>,.or.<a.href="#Pointers
1cc00 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 77 68 69 63 68 20 61 72 65 20 6f 70 65 72 61 74 65 ">Pointers</a>.which.are.operate
1cc20 64 20 6f 6e 0a 20 20 20 20 20 20 69 6e 20 70 61 72 61 6c 6c 65 6c 20 75 73 69 6e 67 20 61 20 73 d.on.......in.parallel.using.a.s
1cc40 69 6e 67 6c 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 28 3c 61 20 68 72 65 66 3d 22 23 53 49 4d ingle.instruction.(<a.href="#SIM
1cc60 44 22 3e 53 49 4d 44 3c 2f 61 3e 29 2e 20 56 65 63 74 6f 72 20 74 79 70 65 73 20 61 72 65 20 63 D">SIMD</a>)..Vector.types.are.c
1cc80 72 65 61 74 65 64 20 77 69 74 68 20 74 68 65 20 62 75 69 6c 74 69 6e 0a 20 20 20 20 20 20 66 75 reated.with.the.builtin.......fu
1cca0 6e 63 74 69 6f 6e 20 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 22 3e 40 56 65 63 74 6f 72 nction.<a.href="#Vector">@Vector
1ccc0 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 </a>........</p>.......<p>......
1cce0 20 54 4f 44 4f 20 74 61 6c 6b 20 61 62 6f 75 74 20 43 20 41 42 49 20 69 6e 74 65 72 6f 70 0a 20 .TODO.talk.about.C.ABI.interop..
1cd00 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 53 49 4d 44 22 3e 3c 61 .....</p>.......<h2.id="SIMD"><a
1cd20 20 68 72 65 66 3d 22 23 74 6f 63 2d 53 49 4d 44 22 3e 53 49 4d 44 3c 2f 61 3e 20 3c 61 20 63 6c .href="#toc-SIMD">SIMD</a>.<a.cl
1cd40 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 49 4d 44 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 ass="hdr".href="#SIMD">..</a></h
1cd60 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 4f 44 4f 20 5a 69 67 27 73 20 53 2>........<p>.......TODO.Zig's.S
1cd80 49 4d 44 20 61 62 69 6c 69 74 69 65 73 20 61 72 65 20 6a 75 73 74 20 62 65 67 69 6e 6e 69 6e 67 IMD.abilities.are.just.beginning
1cda0 20 74 6f 20 62 65 20 66 6c 65 73 68 65 64 20 6f 75 74 2e 20 48 65 72 65 20 61 72 65 20 73 6f 6d .to.be.fleshed.out..Here.are.som
1cdc0 65 20 74 61 6c 6b 69 6e 67 20 70 6f 69 6e 74 73 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 0a 20 e.talking.points.to.update.the..
1cde0 20 20 20 20 20 64 6f 63 73 20 77 69 74 68 3a 0a 20 20 20 20 20 20 2a 20 57 68 61 74 20 6b 69 6e .....docs.with:.......*.What.kin
1ce00 64 20 6f 66 20 6f 70 65 72 61 74 69 6f 6e 73 20 63 61 6e 20 79 6f 75 20 64 6f 3f 20 41 6c 6c 20 d.of.operations.can.you.do?.All.
1ce20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 6f 6e 20 69 6e 74 65 67 65 72 73 20 61 6e 64 20 66 the.operations.on.integers.and.f
1ce40 6c 6f 61 74 73 3f 20 57 68 61 74 20 61 62 6f 75 74 20 6d 69 78 69 6e 67 20 73 63 61 6c 61 72 20 loats?.What.about.mixing.scalar.
1ce60 61 6e 64 20 76 65 63 74 6f 72 3f 0a 20 20 20 20 20 20 2a 20 48 6f 77 20 74 6f 20 63 6f 6e 76 65 and.vector?.......*.How.to.conve
1ce80 72 74 20 74 6f 2f 66 72 6f 6d 20 76 65 63 74 6f 72 73 2f 61 72 72 61 79 73 0a 20 20 20 20 20 20 rt.to/from.vectors/arrays.......
1cea0 2a 20 48 6f 77 20 74 6f 20 61 63 63 65 73 73 20 69 6e 64 69 76 69 64 75 61 6c 20 65 6c 65 6d 65 *.How.to.access.individual.eleme
1cec0 6e 74 73 20 66 72 6f 6d 20 76 65 63 74 6f 72 73 2c 20 68 6f 77 20 74 6f 20 6c 6f 6f 70 20 6f 76 nts.from.vectors,.how.to.loop.ov
1cee0 65 72 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 2a 20 22 73 68 75 66 66 6c 65 er.the.elements.......*."shuffle
1cf00 22 0a 20 20 20 20 20 20 2a 20 41 64 76 69 63 65 20 6f 6e 20 77 72 69 74 69 6e 67 20 68 69 67 68 ".......*.Advice.on.writing.high
1cf20 20 70 65 72 66 20 73 6f 66 74 77 61 72 65 2c 20 68 6f 77 20 74 6f 20 61 62 73 74 72 61 63 74 20 .perf.software,.how.to.abstract.
1cf40 74 68 65 20 62 65 73 74 20 77 61 79 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 the.best.way.......</p>.........
1cf60 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 50 6f 69 6e 74 65 72 73 22 3e 3c .............<h1.id="Pointers"><
1cf80 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c a.href="#toc-Pointers">Pointers<
1cfa0 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 /a>.<a.class="hdr".href="#Pointe
1cfc0 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 rs">..</a></h1>........<p>......
1cfe0 20 5a 69 67 20 68 61 73 20 74 77 6f 20 6b 69 6e 64 73 20 6f 66 20 70 6f 69 6e 74 65 72 73 3a 0a .Zig.has.two.kinds.of.pointers:.
1d000 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 ......</p>.......<ul>...........
1d020 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 54 3c 2f 63 6f 64 65 3e 20 <li><code.class="zig">*T</code>.
1d040 2d 20 70 6f 69 6e 74 65 72 20 74 6f 20 65 78 61 63 74 6c 79 20 6f 6e 65 20 69 74 65 6d 2e 0a 20 -.pointer.to.exactly.one.item...
1d060 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c ...........<ul>...............<l
1d080 69 3e 53 75 70 70 6f 72 74 73 20 64 65 72 65 66 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 20 63 i>Supports.deref.syntax:.<code.c
1d0a0 6c 61 73 73 3d 22 7a 69 67 22 3e 70 74 72 2e 2a 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 lass="zig">ptr.*</code></li>....
1d0c0 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 .........</ul>...........</li>..
1d0e0 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 5b .........<li><code.class="zig">[
1d100 2a 5d 54 3c 2f 63 6f 64 65 3e 20 2d 20 70 6f 69 6e 74 65 72 20 74 6f 20 75 6e 6b 6e 6f 77 6e 20 *]T</code>.-.pointer.to.unknown.
1d120 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 6d 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c number.of.items..............<ul
1d140 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 73 20 69 6e 64 >...............<li>Supports.ind
1d160 65 78 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 74 72 ex.syntax:.<code.class="zig">ptr
1d180 5b 69 5d 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c [i]</code></li>...............<l
1d1a0 69 3e 53 75 70 70 6f 72 74 73 20 73 6c 69 63 65 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 20 63 i>Supports.slice.syntax:.<code.c
1d1c0 6c 61 73 73 3d 22 7a 69 67 22 3e 70 74 72 5b 73 74 61 72 74 2e 2e 65 6e 64 5d 3c 2f 63 6f 64 65 lass="zig">ptr[start..end]</code
1d1e0 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 ></li>...............<li>Support
1d200 73 20 70 6f 69 6e 74 65 72 20 61 72 69 74 68 6d 65 74 69 63 3a 20 3c 63 6f 64 65 20 63 6c 61 73 s.pointer.arithmetic:.<code.clas
1d220 73 3d 22 7a 69 67 22 3e 70 74 72 20 2b 20 78 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c s="zig">ptr.+.x</code>,.<code.cl
1d240 61 73 73 3d 22 7a 69 67 22 3e 70 74 72 20 2d 20 78 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 ass="zig">ptr.-.x</code></li>...
1d260 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ............<li><code.class="zig
1d280 22 3e 54 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 68 61 76 65 20 61 20 6b 6e 6f 77 6e 20 73 69 7a ">T</code>.must.have.a.known.siz
1d2a0 65 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 61 74 20 69 74 20 63 61 6e 6e 6f 74 20 62 65 e,.which.means.that.it.cannot.be
1d2c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 ...............<code.class="zig"
1d2e0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 76 6f 69 64 3c 2f ><span.class="tok-type">c_void</
1d300 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 3c 61 20 68 72 65 span></code>.or.any.other.<a.hre
1d320 66 3d 22 23 4f 70 61 71 75 65 54 79 70 65 22 3e 40 4f 70 61 71 75 65 54 79 70 65 3c 2f 61 3e 2e f="#OpaqueType">@OpaqueType</a>.
1d340 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 </li>.............</ul>.........
1d360 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 ..</li>.......</ul>.......<p>The
1d380 73 65 20 74 79 70 65 73 20 61 72 65 20 63 6c 6f 73 65 6c 79 20 72 65 6c 61 74 65 64 20 74 6f 20 se.types.are.closely.related.to.
1d3a0 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 20 61 6e 64 <a.href="#Arrays">Arrays</a>.and
1d3c0 20 3c 61 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3a 3c 2f .<a.href="#Slices">Slices</a>:</
1d3e0 70 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e p>.........<ul>.............<li>
1d400 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 5b 4e 5d 54 3c 2f 63 6f 64 65 3e 20 2d <code.class="zig">*[N]T</code>.-
1d420 20 70 6f 69 6e 74 65 72 20 74 6f 20 4e 20 69 74 65 6d 73 2c 20 73 61 6d 65 20 61 73 20 73 69 6e .pointer.to.N.items,.same.as.sin
1d440 67 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 72 72 61 79 2e 0a 20 20 20 20 20 gle-item.pointer.to.array.......
1d460 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e .......<ul>.................<li>
1d480 53 75 70 70 6f 72 74 73 20 69 6e 64 65 78 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 20 63 6c 61 Supports.index.syntax:.<code.cla
1d4a0 73 73 3d 22 7a 69 67 22 3e 61 72 72 61 79 5f 70 74 72 5b 69 5d 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 ss="zig">array_ptr[i]</code></li
1d4c0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 73 20 73 >.................<li>Supports.s
1d4e0 6c 69 63 65 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 lice.syntax:.<code.class="zig">a
1d500 72 72 61 79 5f 70 74 72 5b 73 74 61 72 74 2e 2e 65 6e 64 5d 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e rray_ptr[start..end]</code></li>
1d520 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 73 20 6c 65 .................<li>Supports.le
1d540 6e 20 70 72 6f 70 65 72 74 79 3a 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 72 n.property:.<code.class="zig">ar
1d560 72 61 79 5f 70 74 72 2e 6c 65 6e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 ray_ptr.len</code></li>.........
1d580 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 ....</ul>.............</li>.....
1d5a0 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 ....</ul>.........<ul>..........
1d5c0 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 5b 5d 54 3c 2f 63 6f ...<li><code.class="zig">[]T</co
1d5e0 64 65 3e 20 2d 20 70 6f 69 6e 74 65 72 20 74 6f 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 20 6e de>.-.pointer.to.runtime-known.n
1d600 75 6d 62 65 72 20 6f 66 20 69 74 65 6d 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e umber.of.items..............<ul>
1d620 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 73 20 69 6e .................<li>Supports.in
1d640 64 65 78 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 6c dex.syntax:.<code.class="zig">sl
1d660 69 63 65 5b 69 5d 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ice[i]</code></li>..............
1d680 20 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 73 20 73 6c 69 63 65 20 73 79 6e 74 61 78 3a 20 3c 63 ...<li>Supports.slice.syntax:.<c
1d6a0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 6c 69 63 65 5b 73 74 61 72 74 2e 2e 65 6e 64 ode.class="zig">slice[start..end
1d6c0 5d 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c ]</code></li>.................<l
1d6e0 69 3e 53 75 70 70 6f 72 74 73 20 6c 65 6e 20 70 72 6f 70 65 72 74 79 3a 20 3c 63 6f 64 65 20 63 i>Supports.len.property:.<code.c
1d700 6c 61 73 73 3d 22 7a 69 67 22 3e 73 6c 69 63 65 2e 6c 65 6e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e lass="zig">slice.len</code></li>
1d720 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c .............</ul>.............<
1d740 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 70 3e 55 73 /li>.........</ul>.........<p>Us
1d760 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 26 61 6d 70 3b 78 3c 2f 63 6f 64 65 e.<code.class="zig">&amp;x</code
1d780 3e 20 74 6f 20 6f 62 74 61 69 6e 20 61 20 73 69 6e 67 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 >.to.obtain.a.single-item.pointe
1d7a0 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 r:</p>.........<p.class="file">t
1d7c0 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
1d7e0 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
1d800 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 an>.assert.=.<span.class="tok-bu
1d820 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 iltin">@import</span>(<span.clas
1d840 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;std&quot;</spa
1d860 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n>).debug.assert;..<span.class="
1d880 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">test</span>.<span.class=
1d8a0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 64 64 72 65 73 73 20 6f 66 20 73 79 6e 74 61 "tok-str">&quot;address.of.synta
1d8c0 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 x&quot;</span>.{.....<span.class
1d8e0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 47 65 74 20 74 68 65 20 61 64 64 72 65 73 ="tok-comment">//.Get.the.addres
1d900 73 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 s.of.a.variable:</span>.....<spa
1d920 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a n.class="tok-kw">const</span>.x:
1d940 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 .<span.class="tok-type">i32</spa
1d960 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 n>.=.<span.class="tok-number">12
1d980 33 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 34</span>;.....<span.class="tok-
1d9a0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 5f 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b kw">const</span>.x_ptr.=.&amp;x;
1d9c0 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e ......<span.class="tok-comment">
1d9e0 2f 2f 20 44 65 72 65 66 65 72 65 6e 63 65 20 61 20 70 6f 69 6e 74 65 72 3a 3c 2f 73 70 61 6e 3e //.Dereference.a.pointer:</span>
1da00 0a 20 20 20 20 61 73 73 65 72 74 28 78 5f 70 74 72 2e 2a 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 .....assert(x_ptr.*.==.<span.cla
1da20 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 ss="tok-number">1234</span>);...
1da40 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 ...<span.class="tok-comment">//.
1da60 57 68 65 6e 20 79 6f 75 20 67 65 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 61 20 63 6f When.you.get.the.address.of.a.co
1da80 6e 73 74 20 76 61 72 69 61 62 6c 65 2c 20 79 6f 75 20 67 65 74 20 61 20 63 6f 6e 73 74 20 70 6f nst.variable,.you.get.a.const.po
1daa0 69 6e 74 65 72 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 69 74 65 6d 2e 3c 2f 73 70 61 6e 3e 0a 20 inter.to.a.single.item.</span>..
1dac0 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 ...assert(<span.class="tok-built
1dae0 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 78 5f 70 74 72 29 20 3d 3d 20 2a 3c 73 in">@typeOf</span>(x_ptr).==.*<s
1db00 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
1db20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e <span.class="tok-type">i32</span
1db40 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e >);......<span.class="tok-commen
1db60 74 22 3e 2f 2f 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6d 75 74 61 74 65 20 74 68 65 20 t">//.If.you.want.to.mutate.the.
1db80 76 61 6c 75 65 2c 20 79 6f 75 27 64 20 6e 65 65 64 20 61 6e 20 61 64 64 72 65 73 73 20 6f 66 20 value,.you'd.need.an.address.of.
1dba0 61 20 6d 75 74 61 62 6c 65 20 76 61 72 69 61 62 6c 65 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c a.mutable.variable:</span>.....<
1dbc0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 span.class="tok-kw">var</span>.y
1dbe0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 :.<span.class="tok-type">i32</sp
1dc00 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 an>.=.<span.class="tok-number">5
1dc20 36 37 38 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 678</span>;.....<span.class="tok
1dc40 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 79 5f 70 74 72 20 3d 20 26 61 6d 70 3b 79 -kw">const</span>.y_ptr.=.&amp;y
1dc60 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ;.....assert(<span.class="tok-bu
1dc80 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 79 5f 70 74 72 29 20 3d 3d 20 iltin">@typeOf</span>(y_ptr).==.
1dca0 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 *<span.class="tok-type">i32</spa
1dcc0 6e 3e 29 3b 0a 20 20 20 20 79 5f 70 74 72 2e 2a 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d n>);.....y_ptr.*.+=.<span.class=
1dce0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 72 "tok-number">1</span>;.....asser
1dd00 74 28 79 5f 70 74 72 2e 2a 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 t(y_ptr.*.==.<span.class="tok-nu
1dd20 6d 62 65 72 22 3e 35 36 37 39 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 mber">5679</span>);.}..<span.cla
1dd40 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
1dd60 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 61 72 72 61 ass="tok-str">&quot;pointer.arra
1dd80 79 20 61 63 63 65 73 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 y.access&quot;</span>.{.....<spa
1dda0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 61 6b 69 6e 67 20 n.class="tok-comment">//.Taking.
1ddc0 61 6e 20 61 64 64 72 65 73 73 20 6f 66 20 61 6e 20 69 6e 64 69 76 69 64 75 61 6c 20 65 6c 65 6d an.address.of.an.individual.elem
1dde0 65 6e 74 20 67 69 76 65 73 20 61 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ent.gives.a</span>.....<span.cla
1de00 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 ss="tok-comment">//.pointer.to.a
1de20 20 73 69 6e 67 6c 65 20 69 74 65 6d 2e 20 54 68 69 73 20 6b 69 6e 64 20 6f 66 20 70 6f 69 6e 74 .single.item..This.kind.of.point
1de40 65 72 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 er</span>.....<span.class="tok-c
1de60 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 70 6f 69 6e omment">//.does.not.support.poin
1de80 74 65 72 20 61 72 69 74 68 6d 65 74 69 63 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e ter.arithmetic.</span>.....<span
1dea0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 .class="tok-kw">var</span>.array
1dec0 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c .=.[_]<span.class="tok-type">u8<
1dee0 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>{.<span.class="tok-number"
1df00 3e 31 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 >1</span>,.<span.class="tok-numb
1df20 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e er">2</span>,.<span.class="tok-n
1df40 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f umber">3</span>,.<span.class="to
1df60 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-number">4</span>,.<span.class=
1df80 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 "tok-number">5</span>,.<span.cla
1dfa0 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 ss="tok-number">6</span>,.<span.
1dfc0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 37 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 class="tok-number">7</span>,.<sp
1dfe0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 2c 20 an.class="tok-number">8</span>,.
1e000 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e <span.class="tok-number">9</span
1e020 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f >,.<span.class="tok-number">10</
1e040 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 span>.};.....<span.class="tok-kw
1e060 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b ">const</span>.ptr.=.&amp;array[
1e080 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e <span.class="tok-number">2</span
1e0a0 3e 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >];.....assert(<span.class="tok-
1e0c0 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 70 74 72 29 20 3d 3d 20 builtin">@typeOf</span>(ptr).==.
1e0e0 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e *<span.class="tok-type">u8</span
1e100 3e 29 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 73 >);......assert(array[<span.clas
1e120 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 s="tok-number">2</span>].==.<spa
1e140 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a n.class="tok-number">3</span>);.
1e160 20 20 20 20 70 74 72 2e 2a 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 ....ptr.*.+=.<span.class="tok-nu
1e180 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 72 74 28 61 72 72 61 79 mber">1</span>;.....assert(array
1e1a0 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 [<span.class="tok-number">2</spa
1e1c0 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e n>].==.<span.class="tok-number">
1e1e0 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 4</span>);.}</code></pre><pre><c
1e200 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
1e220 74 2e 7a 69 67 0a 31 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 61 64 64 72 65 73 73 20 6f 66 20 t.zig.1/2.test.&quot;address.of.
1e240 73 79 6e 74 61 78 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 32 20 74 65 73 74 20 26 71 75 6f 74 syntax&quot;...OK.2/2.test.&quot
1e260 3b 70 6f 69 6e 74 65 72 20 61 72 72 61 79 20 61 63 63 65 73 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b ;pointer.array.access&quot;...OK
1e280 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e .All.tests.passed..</code></pre>
1e2a0 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 77 65 20 70 ........<p>.........In.Zig,.we.p
1e2c0 72 65 66 65 72 20 73 6c 69 63 65 73 20 6f 76 65 72 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 6e 75 refer.slices.over.pointers.to.nu
1e2e0 6c 6c 2d 74 65 72 6d 69 6e 61 74 65 64 20 61 72 72 61 79 73 2e 0a 20 20 20 20 20 20 20 20 59 6f ll-terminated.arrays..........Yo
1e300 75 20 63 61 6e 20 74 75 72 6e 20 61 6e 20 61 72 72 61 79 20 6f 72 20 70 6f 69 6e 74 65 72 20 69 u.can.turn.an.array.or.pointer.i
1e320 6e 74 6f 20 61 20 73 6c 69 63 65 20 75 73 69 6e 67 20 73 6c 69 63 65 20 73 79 6e 74 61 78 2e 0a nto.a.slice.using.slice.syntax..
1e340 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 53 6c 69 ......</p>.......<p>.........Sli
1e360 63 65 73 20 68 61 76 65 20 62 6f 75 6e 64 73 20 63 68 65 63 6b 69 6e 67 20 61 6e 64 20 61 72 65 ces.have.bounds.checking.and.are
1e380 20 74 68 65 72 65 66 6f 72 65 20 70 72 6f 74 65 63 74 65 64 0a 20 20 20 20 20 20 20 20 61 67 61 .therefore.protected.........aga
1e3a0 69 6e 73 74 20 74 68 69 73 20 6b 69 6e 64 20 6f 66 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 inst.this.kind.of.undefined.beha
1e3c0 76 69 6f 72 2e 20 54 68 69 73 20 69 73 20 6f 6e 65 20 72 65 61 73 6f 6e 0a 20 20 20 20 20 20 20 vior..This.is.one.reason........
1e3e0 20 77 65 20 70 72 65 66 65 72 20 73 6c 69 63 65 73 20 74 6f 20 70 6f 69 6e 74 65 72 73 2e 0a 20 .we.prefer.slices.to.pointers...
1e400 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e .....</p>.......<p.class="file">
1e420 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 test.zig</p><pre><code.class="zi
1e440 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 g"><span.class="tok-kw">const</s
1e460 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 pan>.assert.=.<span.class="tok-b
1e480 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 uiltin">@import</span>(<span.cla
1e4a0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 ss="tok-str">&quot;std&quot;</sp
1e4c0 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d an>).debug.assert;..<span.class=
1e4e0 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
1e500 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 73 6c 69 63 69 6e 67 ="tok-str">&quot;pointer.slicing
1e520 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d &quot;</span>.{.....<span.class=
1e540 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 20 3d 20 5b 5f 5d 3c "tok-kw">var</span>.array.=.[_]<
1e560 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b span.class="tok-type">u8</span>{
1e580 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 .<span.class="tok-number">1</spa
1e5a0 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f n>,.<span.class="tok-number">2</
1e5c0 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e span>,.<span.class="tok-number">
1e5e0 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 3</span>,.<span.class="tok-numbe
1e600 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 r">4</span>,.<span.class="tok-nu
1e620 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b mber">5</span>,.<span.class="tok
1e640 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -number">6</span>,.<span.class="
1e660 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 37 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 tok-number">7</span>,.<span.clas
1e680 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 s="tok-number">8</span>,.<span.c
1e6a0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 lass="tok-number">9</span>,.<spa
1e6c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 20 7d n.class="tok-number">10</span>.}
1e6e0 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 ;.....<span.class="tok-kw">const
1e700 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 20 3d 20 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 73 </span>.slice.=.array[<span.clas
1e720 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2e 2e 3c 73 70 61 6e 20 63 s="tok-number">2</span>..<span.c
1e740 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 3b 0a 20 20 20 lass="tok-number">4</span>];....
1e760 20 61 73 73 65 72 74 28 73 6c 69 63 65 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 .assert(slice.len.==.<span.class
1e780 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 61 73 ="tok-number">2</span>);......as
1e7a0 73 65 72 74 28 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 sert(array[<span.class="tok-numb
1e7c0 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f er">3</span>].==.<span.class="to
1e7e0 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 73 6c 69 63 65 5b 3c k-number">4</span>);.....slice[<
1e800 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e span.class="tok-number">1</span>
1e820 5d 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c ].+=.<span.class="tok-number">1<
1e840 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 72 74 28 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 /span>;.....assert(array[<span.c
1e860 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c lass="tok-number">3</span>].==.<
1e880 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e span.class="tok-number">5</span>
1e8a0 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 );.}</code></pre><pre><code.clas
1e8c0 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f s="shell">$.zig.test.test.zig.1/
1e8e0 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 73 6c 69 63 69 6e 67 26 71 75 6f 1.test.&quot;pointer.slicing&quo
1e900 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 t;...OK.All.tests.passed..</code
1e920 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 50 6f 69 6e 74 65 72 73 20 77 6f 72 6b 20 ></pre>........<p>Pointers.work.
1e940 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 74 6f 6f 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 at.compile-time.too,.as.long.as.
1e960 74 68 65 20 63 6f 64 65 20 64 6f 65 73 20 6e 6f 74 20 64 65 70 65 6e 64 20 6f 6e 0a 20 20 20 20 the.code.does.not.depend.on.....
1e980 20 20 61 6e 20 75 6e 64 65 66 69 6e 65 64 20 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 3a 3c 2f 70 ..an.undefined.memory.layout:</p
1e9a0 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 >.......<p.class="file">test.zig
1e9c0 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e </p><pre><code.class="zig"><span
1e9e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 .class="tok-kw">const</span>.ass
1ea00 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e ert.=.<span.class="tok-builtin">
1ea20 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d @import</span>(<span.class="tok-
1ea40 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 str">&quot;std&quot;</span>).deb
1ea60 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ug.assert;..<span.class="tok-kw"
1ea80 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >test</span>.<span.class="tok-st
1eaa0 72 22 3e 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 70 6f 69 6e 74 65 72 73 26 71 75 6f 74 3b r">&quot;comptime.pointers&quot;
1eac0 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
1eae0 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 w">comptime</span>.{.........<sp
1eb00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 an.class="tok-kw">var</span>.x:.
1eb20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e <span.class="tok-type">i32</span
1eb40 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f >.=.<span.class="tok-number">1</
1eb60 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d span>;.........<span.class="tok-
1eb80 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 20 kw">const</span>.ptr.=.&amp;x;..
1eba0 20 20 20 20 20 20 20 70 74 72 2e 2a 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .......ptr.*.+=.<span.class="tok
1ebc0 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 78 20 2b 3d 20 -number">1</span>;.........x.+=.
1ebe0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e <span.class="tok-number">1</span
1ec00 3e 3b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 70 74 72 2e 2a 20 3d 3d 20 3c 73 70 61 6e >;.........assert(ptr.*.==.<span
1ec20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a 20 .class="tok-number">3</span>);..
1ec40 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c ...}.}</code></pre><pre><code.cl
1ec60 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a ass="shell">$.zig.test.test.zig.
1ec80 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 70 6f 69 6e 74 65 72 73 1/1.test.&quot;comptime.pointers
1eca0 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f &quot;...OK.All.tests.passed..</
1ecc0 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 6f 20 63 6f 6e 76 65 72 74 code></pre>........<p>To.convert
1ece0 20 61 6e 20 69 6e 74 65 67 65 72 20 61 64 64 72 65 73 73 20 69 6e 74 6f 20 61 20 70 6f 69 6e 74 .an.integer.address.into.a.point
1ed00 65 72 2c 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 er,.use.<code.class="zig"><span.
1ed20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 73 class="tok-builtin">@intToPtr</s
1ed40 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 54 6f 20 63 6f 6e 76 65 72 74 20 61 20 pan></code>........To.convert.a.
1ed60 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 2c 20 75 73 65 20 3c 63 6f 64 65 pointer.to.an.integer,.use.<code
1ed80 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
1eda0 69 6c 74 69 6e 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3a 3c iltin">@ptrToInt</span></code>:<
1edc0 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a /p>.......<p.class="file">test.z
1ede0 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ig</p><pre><code.class="zig"><sp
1ee00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 an.class="tok-kw">const</span>.a
1ee20 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e ssert.=.<span.class="tok-builtin
1ee40 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">@import</span>(<span.class="to
1ee60 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 k-str">&quot;std&quot;</span>).d
1ee80 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ebug.assert;..<span.class="tok-k
1eea0 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d w">test</span>.<span.class="tok-
1eec0 73 74 72 22 3e 26 71 75 6f 74 3b 40 70 74 72 54 6f 49 6e 74 20 61 6e 64 20 40 69 6e 74 54 6f 50 str">&quot;@ptrToInt.and.@intToP
1eee0 74 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 tr&quot;</span>.{.....<span.clas
1ef00 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 3c 73 s="tok-kw">const</span>.ptr.=.<s
1ef20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 pan.class="tok-builtin">@intToPt
1ef40 72 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 r</span>(*<span.class="tok-type"
1ef60 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 >i32</span>,.<span.class="tok-nu
1ef80 6d 62 65 72 22 3e 30 78 64 65 61 64 62 65 65 66 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 mber">0xdeadbeef</span>);.....<s
1efa0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
1efc0 61 64 64 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 addr.=.<span.class="tok-builtin"
1efe0 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 70 74 72 29 3b 0a 20 20 20 20 61 73 73 65 >@ptrToInt</span>(ptr);.....asse
1f000 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 rt(<span.class="tok-builtin">@ty
1f020 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 61 64 64 72 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 peOf</span>(addr).==.<span.class
1f040 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 ="tok-type">usize</span>);.....a
1f060 73 73 65 72 74 28 61 64 64 72 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ssert(addr.==.<span.class="tok-n
1f080 75 6d 62 65 72 22 3e 30 78 64 65 61 64 62 65 65 66 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f umber">0xdeadbeef</span>);.}</co
1f0a0 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
1f0c0 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 ">$.zig.test.test.zig.1/1.test.&
1f0e0 71 75 6f 74 3b 40 70 74 72 54 6f 49 6e 74 20 61 6e 64 20 40 69 6e 74 54 6f 50 74 72 26 71 75 6f quot;@ptrToInt.and.@intToPtr&quo
1f100 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 t;...OK.All.tests.passed..</code
1f120 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 69 73 20 61 62 6c 65 20 74 6f ></pre>........<p>Zig.is.able.to
1f140 20 70 72 65 73 65 72 76 65 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 65 73 20 69 6e 20 63 6f .preserve.memory.addresses.in.co
1f160 6d 70 74 69 6d 65 20 63 6f 64 65 2c 20 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 20 20 74 68 mptime.code,.as.long.as.......th
1f180 65 20 70 6f 69 6e 74 65 72 20 69 73 20 6e 65 76 65 72 20 64 65 72 65 66 65 72 65 6e 63 65 64 3a e.pointer.is.never.dereferenced:
1f1a0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e </p>.......<p.class="file">test.
1f1c0 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
1f1e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
1f200 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 assert.=.<span.class="tok-builti
1f220 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">@import</span>(<span.class="t
1f240 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e ok-str">&quot;std&quot;</span>).
1f260 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d debug.assert;..<span.class="tok-
1f280 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">test</span>.<span.class="tok
1f2a0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 40 69 6e 74 54 6f 50 74 72 26 71 -str">&quot;comptime.@intToPtr&q
1f2c0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>.{.....<span.class="t
1f2e0 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 ok-kw">comptime</span>.{........
1f300 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 5a 69 .<span.class="tok-comment">//.Zi
1f320 67 20 69 73 20 61 62 6c 65 20 74 6f 20 64 6f 20 74 68 69 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d g.is.able.to.do.this.at.compile-
1f340 74 69 6d 65 2c 20 61 73 20 6c 6f 6e 67 20 61 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 time,.as.long.as</span>.........
1f360 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 70 74 72 <span.class="tok-comment">//.ptr
1f380 20 69 73 20 6e 65 76 65 72 20 64 65 72 65 66 65 72 65 6e 63 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 .is.never.dereferenced.</span>..
1f3a0 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 .......<span.class="tok-kw">cons
1f3c0 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d t</span>.ptr.=.<span.class="tok-
1f3e0 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 61 6e builtin">@intToPtr</span>(*<span
1f400 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 .class="tok-type">i32</span>,.<s
1f420 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 64 65 61 64 62 65 65 pan.class="tok-number">0xdeadbee
1f440 66 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 f</span>);.........<span.class="
1f460 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 64 64 72 20 3d 20 3c 73 70 61 tok-kw">const</span>.addr.=.<spa
1f480 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 54 6f 49 6e 74 3c n.class="tok-builtin">@ptrToInt<
1f4a0 2f 73 70 61 6e 3e 28 70 74 72 29 3b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 /span>(ptr);.........assert(<spa
1f4c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 n.class="tok-builtin">@typeOf</s
1f4e0 70 61 6e 3e 28 61 64 64 72 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 pan>(addr).==.<span.class="tok-t
1f500 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 61 73 73 65 ype">usize</span>);.........asse
1f520 72 74 28 61 64 64 72 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 rt(addr.==.<span.class="tok-numb
1f540 65 72 22 3e 30 78 64 65 61 64 62 65 65 66 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c er">0xdeadbeef</span>);.....}.}<
1f560 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 /code></pre><pre><code.class="sh
1f580 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 ell">$.zig.test.test.zig.1/1.tes
1f5a0 74 20 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 40 69 6e 74 54 6f 50 74 72 26 71 75 6f 74 3b t.&quot;comptime.@intToPtr&quot;
1f5c0 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c ...OK.All.tests.passed..</code><
1f5e0 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c /pre>........<p>See.also:</p><ul
1f600 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 >.<li><a.href="#Optional-Pointer
1f620 73 22 3e 4f 70 74 69 6f 6e 61 6c 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c s">Optional.Pointers</a></li>.<l
1f640 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 50 74 72 22 3e 40 69 6e 74 54 6f 50 74 72 3c i><a.href="#intToPtr">@intToPtr<
1f660 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 74 72 54 6f 49 6e 74 22 /a></li>.<li><a.href="#ptrToInt"
1f680 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d >@ptrToInt</a></li>.<li><a.href=
1f6a0 22 23 43 2d 50 6f 69 6e 74 65 72 73 22 3e 43 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 "#C-Pointers">C.Pointers</a></li
1f6c0 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 2d 74 6f 2d 5a 65 72 6f >.<li><a.href="#Pointers-to-Zero
1f6e0 2d 42 69 74 2d 54 79 70 65 73 22 3e 50 6f 69 6e 74 65 72 73 20 74 6f 20 5a 65 72 6f 20 42 69 74 -Bit-Types">Pointers.to.Zero.Bit
1f700 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 32 .Types</a></li>.</ul>........<h2
1f720 20 69 64 3d 22 76 6f 6c 61 74 69 6c 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 76 6f 6c .id="volatile"><a.href="#toc-vol
1f740 61 74 69 6c 65 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 atile">volatile</a>.<a.class="hd
1f760 72 22 20 68 72 65 66 3d 22 23 76 6f 6c 61 74 69 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a r".href="#volatile">..</a></h2>.
1f780 0a 20 20 20 20 20 20 3c 70 3e 4c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 65 73 20 61 72 65 20 61 .......<p>Loads.and.stores.are.a
1f7a0 73 73 75 6d 65 64 20 74 6f 20 6e 6f 74 20 68 61 76 65 20 73 69 64 65 20 65 66 66 65 63 74 73 2e ssumed.to.not.have.side.effects.
1f7c0 20 49 66 20 61 20 67 69 76 65 6e 20 6c 6f 61 64 20 6f 72 20 73 74 6f 72 65 0a 20 20 20 20 20 20 .If.a.given.load.or.store.......
1f7e0 73 68 6f 75 6c 64 20 68 61 76 65 20 73 69 64 65 20 65 66 66 65 63 74 73 2c 20 73 75 63 68 20 61 should.have.side.effects,.such.a
1f800 73 20 4d 65 6d 6f 72 79 20 4d 61 70 70 65 64 20 49 6e 70 75 74 2f 4f 75 74 70 75 74 20 28 4d 4d s.Memory.Mapped.Input/Output.(MM
1f820 49 4f 29 2c 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e IO),.use.<code.class="zig"><span
1f840 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 73 70 61 6e 3e 3c .class="tok-kw">volatile</span><
1f860 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 49 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 /code>........In.the.following.c
1f880 6f 64 65 2c 20 6c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 65 73 20 77 69 74 68 20 3c 63 6f 64 65 ode,.loads.and.stores.with.<code
1f8a0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6d 6d 69 6f 5f 70 74 72 3c 2f 63 6f 64 65 3e 20 61 72 65 .class="zig">mmio_ptr</code>.are
1f8c0 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 61 6c 6c 20 68 61 70 70 65 6e 0a 20 20 20 20 20 20 .guaranteed.to.all.happen.......
1f8e0 61 6e 64 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6f 72 64 65 72 20 61 73 20 69 6e 20 73 6f 75 72 and.in.the.same.order.as.in.sour
1f900 63 65 20 63 6f 64 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c ce.code:</p>.......<p.class="fil
1f920 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
1f940 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 "zig"><span.class="tok-kw">const
1f960 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.assert.=.<span.class="to
1f980 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
1f9a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
1f9c0 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 /span>).debug.assert;..<span.cla
1f9e0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
1fa00 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 6f 6c 61 74 69 6c 65 26 71 75 6f ass="tok-str">&quot;volatile&quo
1fa20 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b t;</span>.{.....<span.class="tok
1fa40 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 6d 69 6f 5f 70 74 72 20 3d 20 3c 73 70 -kw">const</span>.mmio_ptr.=.<sp
1fa60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 72 an.class="tok-builtin">@intToPtr
1fa80 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 6f </span>(*<span.class="tok-kw">vo
1faa0 6c 61 74 69 6c 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 latile</span>.<span.class="tok-t
1fac0 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ype">u8</span>,.<span.class="tok
1fae0 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 33 34 35 36 37 38 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 -number">0x12345678</span>);....
1fb00 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e .assert(<span.class="tok-builtin
1fb20 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6d 6d 69 6f 5f 70 74 72 29 20 3d 3d 20 2a 3c ">@typeOf</span>(mmio_ptr).==.*<
1fb40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 73 70 span.class="tok-kw">volatile</sp
1fb60 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 an>.<span.class="tok-type">u8</s
1fb80 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 pan>);.}</code></pre><pre><code.
1fba0 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 class="shell">$.zig.test.test.zi
1fbc0 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 76 6f 6c 61 74 69 6c 65 26 71 75 6f 74 3b 2e g.1/1.test.&quot;volatile&quot;.
1fbe0 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f ..OK.All.tests.passed..</code></
1fc00 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 pre>........<p>.......Note.that.
1fc20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
1fc40 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 73 ok-kw">volatile</span></code>.is
1fc60 20 75 6e 72 65 6c 61 74 65 64 20 74 6f 20 63 6f 6e 63 75 72 72 65 6e 63 79 20 61 6e 64 20 3c 61 .unrelated.to.concurrency.and.<a
1fc80 20 68 72 65 66 3d 22 23 41 74 6f 6d 69 63 73 22 3e 41 74 6f 6d 69 63 73 3c 2f 61 3e 2e 0a 20 20 .href="#Atomics">Atomics</a>....
1fca0 20 20 20 20 49 66 20 79 6f 75 20 73 65 65 20 63 6f 64 65 20 74 68 61 74 20 69 73 20 75 73 69 6e ....If.you.see.code.that.is.usin
1fcc0 67 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d g.<code.class="zig"><span.class=
1fce0 22 74 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 "tok-kw">volatile</span></code>.
1fd00 66 6f 72 20 73 6f 6d 65 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 4d 65 6d 6f 72 79 20 for.something.other.than.Memory.
1fd20 4d 61 70 70 65 64 0a 20 20 20 20 20 20 49 6e 70 75 74 2f 4f 75 74 70 75 74 2c 20 69 74 20 69 73 Mapped.......Input/Output,.it.is
1fd40 20 70 72 6f 62 61 62 6c 79 20 61 20 62 75 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 .probably.a.bug........</p>.....
1fd60 20 20 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 63 6f 6e 76 65 72 74 20 6f 6e .........<p>.......To.convert.on
1fd80 65 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 74 6f 20 61 6e 6f 74 68 65 72 2c 20 75 73 65 20 3c e.pointer.type.to.another,.use.<
1fda0 61 20 68 72 65 66 3d 22 23 70 74 72 43 61 73 74 22 3e 40 70 74 72 43 61 73 74 3c 2f 61 3e 2e 20 a.href="#ptrCast">@ptrCast</a>..
1fdc0 54 68 69 73 20 69 73 20 61 6e 20 75 6e 73 61 66 65 0a 20 20 20 20 20 20 6f 70 65 72 61 74 69 6f This.is.an.unsafe.......operatio
1fde0 6e 20 74 68 61 74 20 5a 69 67 20 63 61 6e 6e 6f 74 20 70 72 6f 74 65 63 74 20 79 6f 75 20 61 67 n.that.Zig.cannot.protect.you.ag
1fe00 61 69 6e 73 74 2e 20 55 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ainst..Use.<code.class="zig"><sp
1fe20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 43 61 73 74 3c an.class="tok-builtin">@ptrCast<
1fe40 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 6e 6c 79 20 77 68 65 6e 20 6f 74 68 65 72 0a 20 20 /span></code>.only.when.other...
1fe60 20 20 20 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 ....conversions.are.not.possible
1fe80 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c ........</p>.......<p.class="fil
1fea0 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
1fec0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 "zig"><span.class="tok-kw">const
1fee0 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.assert.=.<span.class="to
1ff00 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
1ff20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
1ff40 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 /span>).debug.assert;..<span.cla
1ff60 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
1ff80 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 63 61 73 74 ass="tok-str">&quot;pointer.cast
1ffa0 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ing&quot;</span>.{.....<span.cla
1ffc0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 79 74 65 73 20 3c ss="tok-kw">const</span>.bytes.<
1ffe0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e span.class="tok-kw">align</span>
20000 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 6c 69 67 (<span.class="tok-builtin">@alig
20020 6e 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 nOf</span>(<span.class="tok-type
20040 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 29 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d ">u32</span>)).=.[_]<span.class=
20060 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 "tok-type">u8</span>{.<span.clas
20080 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 s="tok-number">0x12</span>,.<spa
200a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 3c 2f 73 70 61 6e 3e n.class="tok-number">0x12</span>
200c0 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 3c ,.<span.class="tok-number">0x12<
200e0 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>,.<span.class="tok-number"
20100 3e 30 78 31 32 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >0x12</span>.};.....<span.class=
20120 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 75 33 32 5f 70 74 72 20 3d 20 "tok-kw">const</span>.u32_ptr.=.
20140 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 43 61 <span.class="tok-builtin">@ptrCa
20160 73 74 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e st</span>(*<span.class="tok-kw">
20180 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 const</span>.<span.class="tok-ty
201a0 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 26 61 6d 70 3b 62 79 74 65 73 29 3b 0a 20 20 20 pe">u32</span>,.&amp;bytes);....
201c0 20 61 73 73 65 72 74 28 75 33 32 5f 70 74 72 2e 2a 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 .assert(u32_ptr.*.==.<span.class
201e0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 31 32 31 32 31 32 3c 2f 73 70 61 6e 3e 29 ="tok-number">0x12121212</span>)
20200 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 ;......<span.class="tok-comment"
20220 3e 2f 2f 20 45 76 65 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 63 6f 6e 74 72 69 76 >//.Even.this.example.is.contriv
20240 65 64 20 2d 20 74 68 65 72 65 20 61 72 65 20 62 65 74 74 65 72 20 77 61 79 73 20 74 6f 20 64 6f ed.-.there.are.better.ways.to.do
20260 20 74 68 65 20 61 62 6f 76 65 20 74 68 61 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e .the.above.than</span>.....<span
20280 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 70 6f 69 6e 74 65 72 20 .class="tok-comment">//.pointer.
202a0 63 61 73 74 69 6e 67 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 75 73 69 6e 67 20 61 20 73 6c casting..For.example,.using.a.sl
202c0 69 63 65 20 6e 61 72 72 6f 77 69 6e 67 20 63 61 73 74 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c ice.narrowing.cast:</span>.....<
202e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
20300 20 75 33 32 5f 76 61 6c 75 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .u32_value.=.<span.class="tok-bu
20320 69 6c 74 69 6e 22 3e 40 62 79 74 65 73 54 6f 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 iltin">@bytesToSlice</span>(<spa
20340 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 n.class="tok-type">u32</span>,.b
20360 79 74 65 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c ytes[<span.class="tok-number">0<
20380 2f 73 70 61 6e 3e 2e 2e 5d 29 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 /span>..])[<span.class="tok-numb
203a0 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 75 33 32 5f 76 61 er">0</span>];.....assert(u32_va
203c0 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e lue.==.<span.class="tok-number">
203e0 30 78 31 32 31 32 31 32 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 0x12121212</span>);......<span.c
20400 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 6e 64 20 65 76 65 6e 20 61 lass="tok-comment">//.And.even.a
20420 6e 6f 74 68 65 72 20 77 61 79 2c 20 74 68 65 20 6d 6f 73 74 20 73 74 72 61 69 67 68 74 66 6f 72 nother.way,.the.most.straightfor
20440 77 61 72 64 20 77 61 79 20 74 6f 20 64 6f 20 69 74 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 ward.way.to.do.it:</span>.....as
20460 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 sert(<span.class="tok-builtin">@
20480 62 69 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d bitCast</span>(<span.class="tok-
204a0 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 79 74 65 73 29 20 3d 3d 20 3c 73 70 61 type">u32</span>,.bytes).==.<spa
204c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 31 32 31 32 31 32 3c n.class="tok-number">0x12121212<
204e0 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>);.}..<span.class="tok-kw"
20500 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >test</span>.<span.class="tok-st
20520 72 22 3e 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 63 68 69 6c 64 20 74 79 70 65 26 71 75 6f 74 r">&quot;pointer.child.type&quot
20540 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ;</span>.{.....<span.class="tok-
20560 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 20 68 61 76 65 20 61 comment">//.pointer.types.have.a
20580 20 60 63 68 69 6c 64 60 20 66 69 65 6c 64 20 77 68 69 63 68 20 74 65 6c 6c 73 20 79 6f 75 20 74 .`child`.field.which.tells.you.t
205a0 68 65 20 74 79 70 65 20 74 68 65 79 20 70 6f 69 6e 74 20 74 6f 2e 3c 2f 73 70 61 6e 3e 0a 20 20 he.type.they.point.to.</span>...
205c0 20 20 61 73 73 65 72 74 28 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 ..assert((*<span.class="tok-type
205e0 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 2e 43 68 69 6c 64 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 ">u32</span>).Child.==.<span.cla
20600 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f ss="tok-type">u32</span>);.}</co
20620 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
20640 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 32 20 74 65 73 74 20 26 ">$.zig.test.test.zig.1/2.test.&
20660 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 63 61 73 74 69 6e 67 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a quot;pointer.casting&quot;...OK.
20680 32 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 63 68 69 6c 64 20 74 79 70 2/2.test.&quot;pointer.child.typ
206a0 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c e&quot;...OK.All.tests.passed..<
206c0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 6c 69 67 /code></pre>........<h2.id="Alig
206e0 6e 6d 65 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e nment"><a.href="#toc-Alignment">
20700 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 Alignment</a>.<a.class="hdr".hre
20720 66 3d 22 23 41 6c 69 67 6e 6d 65 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 f="#Alignment">..</a></h2>......
20740 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 61 63 68 20 74 79 70 65 20 68 61 73 20 61 6e 20 3c 73 74 ..<p>.......Each.type.has.an.<st
20760 72 6f 6e 67 3e 61 6c 69 67 6e 6d 65 6e 74 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 61 20 6e 75 6d 62 rong>alignment</strong>.-.a.numb
20780 65 72 20 6f 66 20 62 79 74 65 73 20 73 75 63 68 20 74 68 61 74 2c 0a 20 20 20 20 20 20 77 68 65 er.of.bytes.such.that,.......whe
207a0 6e 20 61 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 74 79 70 65 20 69 73 20 6c 6f 61 64 65 64 20 n.a.value.of.the.type.is.loaded.
207c0 66 72 6f 6d 20 6f 72 20 73 74 6f 72 65 64 20 74 6f 20 6d 65 6d 6f 72 79 2c 0a 20 20 20 20 20 20 from.or.stored.to.memory,.......
207e0 74 68 65 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 20 6d 75 73 74 20 62 65 20 65 76 65 6e 6c the.memory.address.must.be.evenl
20800 79 20 64 69 76 69 73 69 62 6c 65 20 62 79 20 74 68 69 73 20 6e 75 6d 62 65 72 2e 20 59 6f 75 20 y.divisible.by.this.number..You.
20820 63 61 6e 20 75 73 65 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 4f 66 22 can.use.......<a.href="#alignOf"
20840 3e 40 61 6c 69 67 6e 4f 66 3c 2f 61 3e 20 74 6f 20 66 69 6e 64 20 6f 75 74 20 74 68 69 73 20 76 >@alignOf</a>.to.find.out.this.v
20860 61 6c 75 65 20 66 6f 72 20 61 6e 79 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 alue.for.any.type........</p>...
20880 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6c 69 67 6e 6d 65 6e 74 20 64 65 70 65 6e 64 73 20 ....<p>.......Alignment.depends.
208a0 6f 6e 20 74 68 65 20 43 50 55 20 61 72 63 68 69 74 65 63 74 75 72 65 2c 20 62 75 74 20 69 73 20 on.the.CPU.architecture,.but.is.
208c0 61 6c 77 61 79 73 20 61 20 70 6f 77 65 72 20 6f 66 20 74 77 6f 2c 20 61 6e 64 0a 20 20 20 20 20 always.a.power.of.two,.and......
208e0 20 6c 65 73 73 20 74 68 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .less.than.<code.class="zig"><sp
20900 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 26 an.class="tok-number">1</span>.&
20920 6c 74 3b 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 lt;&lt;.<span.class="tok-number"
20940 3e 32 39 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 >29</span></code>........</p>...
20960 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 61 20 70 6f 69 6e 74 65 72 20 ....<p>.......In.Zig,.a.pointer.
20980 74 79 70 65 20 68 61 73 20 61 6e 20 61 6c 69 67 6e 6d 65 6e 74 20 76 61 6c 75 65 2e 20 49 66 20 type.has.an.alignment.value..If.
209a0 74 68 65 20 76 61 6c 75 65 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 0a 20 20 20 20 20 20 the.value.is.equal.to.the.......
209c0 61 6c 69 67 6e 6d 65 6e 74 20 6f 66 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 74 79 70 65 alignment.of.the.underlying.type
209e0 2c 20 69 74 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 20 66 72 6f 6d 20 74 68 65 20 74 79 70 ,.it.can.be.omitted.from.the.typ
20a00 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 e:.......</p>.......<p.class="fi
20a20 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 le">test.zig</p><pre><code.class
20a40 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ="zig"><span.class="tok-kw">cons
20a60 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t</span>.assert.=.<span.class="t
20a80 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ok-builtin">@import</span>(<span
20aa0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b .class="tok-str">&quot;std&quot;
20ac0 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 </span>).debug.assert;.<span.cla
20ae0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 75 69 6c 74 69 6e ss="tok-kw">const</span>.builtin
20b00 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d .=.<span.class="tok-builtin">@im
20b20 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 port</span>(<span.class="tok-str
20b40 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a ">&quot;builtin&quot;</span>);..
20b60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
20b80 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 72 .<span.class="tok-str">&quot;var
20ba0 69 61 62 6c 65 20 61 6c 69 67 6e 6d 65 6e 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 iable.alignment&quot;</span>.{..
20bc0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
20be0 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 n>.x:.<span.class="tok-type">i32
20c00 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 </span>.=.<span.class="tok-numbe
20c20 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d r">1234</span>;.....<span.class=
20c40 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6c 69 67 6e 5f 6f 66 5f 69 "tok-kw">const</span>.align_of_i
20c60 33 32 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 32.=.<span.class="tok-builtin">@
20c80 61 6c 69 67 6e 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d alignOf</span>(<span.class="tok-
20ca0 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 78 29 29 3b 0a 20 20 20 builtin">@typeOf</span>(x));....
20cc0 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e .assert(<span.class="tok-builtin
20ce0 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 78 29 20 3d 3d 20 2a 3c 73 70 ">@typeOf</span>(&amp;x).==.*<sp
20d00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 3b an.class="tok-type">i32</span>);
20d20 0a 20 20 20 20 61 73 73 65 72 74 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 .....assert(*<span.class="tok-ty
20d40 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 3d 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 pe">i32</span>.==.*<span.class="
20d60 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 61 6c 69 67 6e 5f 6f 66 5f 69 33 tok-kw">align</span>(align_of_i3
20d80 32 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 2).<span.class="tok-type">i32</s
20da0 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>);.....<span.class="tok-kw">
20dc0 69 66 3c 2f 73 70 61 6e 3e 20 28 62 75 69 6c 74 69 6e 2e 61 72 63 68 20 3d 3d 20 62 75 69 6c 74 if</span>.(builtin.arch.==.built
20de0 69 6e 2e 41 72 63 68 2e 78 38 36 5f 36 34 29 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 in.Arch.x86_64).{.........assert
20e00 28 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 ((*<span.class="tok-type">i32</s
20e20 70 61 6e 3e 29 2e 61 6c 69 67 6e 6d 65 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 pan>).alignment.==.<span.class="
20e40 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f tok-number">4</span>);.....}.}</
20e60 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 code></pre><pre><code.class="she
20e80 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 ll">$.zig.test.test.zig.1/1.test
20ea0 20 26 71 75 6f 74 3b 76 61 72 69 61 62 6c 65 20 61 6c 69 67 6e 6d 65 6e 74 26 71 75 6f 74 3b 2e .&quot;variable.alignment&quot;.
20ec0 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f ..OK.All.tests.passed..</code></
20ee0 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 49 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 pre>........<p>In.the.same.way.t
20f00 68 61 74 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 3c 73 70 61 6e 20 63 hat.a.<code.class="zig">*<span.c
20f20 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 lass="tok-type">i32</span></code
20f40 3e 20 63 61 6e 20 62 65 20 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 >.can.be.<a.href="#Implicit-Cast
20f60 73 22 3e 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 3c 2f 61 3e 20 74 6f 20 61 0a 20 20 20 20 s">implicitly.cast</a>.to.a.....
20f80 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 3c 73 70 61 6e 20 63 ......<code.class="zig">*<span.c
20fa0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e lass="tok-kw">const</span>.<span
20fc0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f .class="tok-type">i32</span></co
20fe0 64 65 3e 2c 20 61 20 70 6f 69 6e 74 65 72 20 77 69 74 68 20 61 20 6c 61 72 67 65 72 20 61 6c 69 de>,.a.pointer.with.a.larger.ali
21000 67 6e 6d 65 6e 74 20 63 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 0a 20 20 20 20 20 20 63 gnment.can.be.implicitly.......c
21020 61 73 74 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 20 77 69 74 68 20 61 20 73 6d 61 6c 6c 65 72 20 ast.to.a.pointer.with.a.smaller.
21040 61 6c 69 67 6e 6d 65 6e 74 2c 20 62 75 74 20 6e 6f 74 20 76 69 63 65 20 76 65 72 73 61 2e 0a 20 alignment,.but.not.vice.versa...
21060 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 .....</p>.......<p>.......You.ca
21080 6e 20 73 70 65 63 69 66 79 20 61 6c 69 67 6e 6d 65 6e 74 20 6f 6e 20 76 61 72 69 61 62 6c 65 73 n.specify.alignment.on.variables
210a0 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 2e 20 49 66 20 79 6f 75 20 64 6f 20 74 68 69 73 2c 20 .and.functions..If.you.do.this,.
210c0 74 68 65 6e 0a 20 20 20 20 20 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 74 68 65 6d 20 67 65 74 20 then.......pointers.to.them.get.
210e0 74 68 65 20 73 70 65 63 69 66 69 65 64 20 61 6c 69 67 6e 6d 65 6e 74 3a 0a 20 20 20 20 20 20 3c the.specified.alignment:.......<
21100 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a /p>.......<p.class="file">test.z
21120 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ig</p><pre><code.class="zig"><sp
21140 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 an.class="tok-kw">const</span>.a
21160 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e ssert.=.<span.class="tok-builtin
21180 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">@import</span>(<span.class="to
211a0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 k-str">&quot;std&quot;</span>).d
211c0 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ebug.assert;..<span.class="tok-k
211e0 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 6f 6f 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 w">var</span>.foo:.<span.class="
21200 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-type">u8</span>.<span.class=
21220 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 "tok-kw">align</span>(<span.clas
21240 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 3d 20 3c 73 70 61 6e s="tok-number">4</span>).=.<span
21260 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 3c 2f 73 70 61 6e 3e 3b 0a .class="tok-number">100</span>;.
21280 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
212a0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 67 6c >.<span.class="tok-str">&quot;gl
212c0 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 61 6c 69 67 6e 6d 65 6e 74 26 71 75 6f 74 3b 3c 2f 73 obal.variable.alignment&quot;</s
212e0 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>.{.....assert(<span.class="t
21300 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b ok-builtin">@typeOf</span>(&amp;
21320 66 6f 6f 29 2e 61 6c 69 67 6e 6d 65 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 foo).alignment.==.<span.class="t
21340 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 ok-number">4</span>);.....assert
21360 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 (<span.class="tok-builtin">@type
21380 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 66 6f 6f 29 20 3d 3d 20 2a 3c 73 70 61 6e 20 63 6c Of</span>(&amp;foo).==.*<span.cl
213a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 ass="tok-kw">align</span>(<span.
213c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 class="tok-number">4</span>).<sp
213e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 3b 0a an.class="tok-type">u8</span>);.
21400 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f ....<span.class="tok-kw">const</
21420 73 70 61 6e 3e 20 73 6c 69 63 65 20 3d 20 28 2a 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f span>.slice.=.(*[<span.class="to
21440 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-number">1</span>]<span.class="
21460 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 28 26 61 6d 70 3b 66 6f 6f 29 5b 3c tok-type">u8</span>)(&amp;foo)[<
21480 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
214a0 2e 2e 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ..];.....assert(<span.class="tok
214c0 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 73 6c 69 63 65 29 20 -builtin">@typeOf</span>(slice).
214e0 3d 3d 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c ==.[]<span.class="tok-kw">align<
21500 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e /span>(<span.class="tok-number">
21520 34 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 4</span>).<span.class="tok-type"
21540 3e 75 38 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >u8</span>);.}..<span.class="tok
21560 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d -kw">fn</span>.<span.class="tok-
21580 66 6e 22 3e 64 65 72 70 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 fn">derp</span>().<span.class="t
215a0 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-kw">align</span>(<span.class=
215c0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 "tok-builtin">@sizeOf</span>(<sp
215e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e an.class="tok-type">usize</span>
21600 29 20 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f ).*.<span.class="tok-number">2</
21620 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 span>).<span.class="tok-type">i3
21640 32 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 2</span>.{.<span.class="tok-kw">
21660 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e return</span>.<span.class="tok-n
21680 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 20 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 umber">1234</span>;.}.<span.clas
216a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
216c0 3d 22 74 6f 6b 2d 66 6e 22 3e 6e 6f 6f 70 31 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 ="tok-fn">noop1</span>().<span.c
216e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e lass="tok-kw">align</span>(<span
21700 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 3c 73 .class="tok-number">1</span>).<s
21720 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e pan.class="tok-type">void</span>
21740 20 7b 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 .{}.<span.class="tok-kw">fn</spa
21760 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6e 6f 6f 70 34 3c 2f 73 n>.<span.class="tok-fn">noop4</s
21780 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 pan>().<span.class="tok-kw">alig
217a0 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 n</span>(<span.class="tok-number
217c0 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 ">4</span>).<span.class="tok-typ
217e0 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 e">void</span>.{}..<span.class="
21800 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">test</span>.<span.class=
21820 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 75 6e 63 74 69 6f 6e 20 61 6c 69 67 6e 6d 65 "tok-str">&quot;function.alignme
21840 6e 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 64 65 72 nt&quot;</span>.{.....assert(der
21860 70 28 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e p().==.<span.class="tok-number">
21880 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 1234</span>);.....assert(<span.c
218a0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e lass="tok-builtin">@typeOf</span
218c0 3e 28 6e 6f 6f 70 31 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 >(noop1).==.<span.class="tok-kw"
218e0 3e 66 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 >fn</span>().<span.class="tok-kw
21900 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">align</span>(<span.class="tok-
21920 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 number">1</span>).<span.class="t
21940 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 ok-type">void</span>);.....asser
21960 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 t(<span.class="tok-builtin">@typ
21980 65 4f 66 3c 2f 73 70 61 6e 3e 28 6e 6f 6f 70 34 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 eOf</span>(noop4).==.<span.class
219a0 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 ="tok-kw">fn</span>().<span.clas
219c0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c s="tok-kw">align</span>(<span.cl
219e0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e ass="tok-number">4</span>).<span
21a00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 29 3b 0a .class="tok-type">void</span>);.
21a20 20 20 20 20 6e 6f 6f 70 31 28 29 3b 0a 20 20 20 20 6e 6f 6f 70 34 28 29 3b 0a 7d 3c 2f 63 6f 64 ....noop1();.....noop4();.}</cod
21a40 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 e></pre><pre><code.class="shell"
21a60 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 32 20 74 65 73 74 20 26 71 >$.zig.test.test.zig.1/2.test.&q
21a80 75 6f 74 3b 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 61 6c 69 67 6e 6d 65 6e 74 26 71 75 uot;global.variable.alignment&qu
21aa0 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 66 75 6e 63 74 69 6f 6e ot;...OK.2/2.test.&quot;function
21ac0 20 61 6c 69 67 6e 6d 65 6e 74 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 .alignment&quot;...OK.All.tests.
21ae0 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e passed..</code></pre>........<p>
21b00 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 20 70 6f 69 6e 74 65 72 20 6f 72 20 .......If.you.have.a.pointer.or.
21b20 61 20 73 6c 69 63 65 20 74 68 61 74 20 68 61 73 20 61 20 73 6d 61 6c 6c 20 61 6c 69 67 6e 6d 65 a.slice.that.has.a.small.alignme
21b40 6e 74 2c 20 62 75 74 20 79 6f 75 20 6b 6e 6f 77 20 74 68 61 74 20 69 74 20 61 63 74 75 61 6c 6c nt,.but.you.know.that.it.actuall
21b60 79 0a 20 20 20 20 20 20 68 61 73 20 61 20 62 69 67 67 65 72 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 y.......has.a.bigger.alignment,.
21b80 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 43 61 73 74 22 3e 40 61 6c 69 67 6e 43 use.<a.href="#alignCast">@alignC
21ba0 61 73 74 3c 2f 61 3e 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 0a 20 20 20 20 20 20 70 6f 69 6e ast</a>.to.change.the.......poin
21bc0 74 65 72 20 69 6e 74 6f 20 61 20 6d 6f 72 65 20 61 6c 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 2e ter.into.a.more.aligned.pointer.
21be0 20 54 68 69 73 20 69 73 20 61 20 6e 6f 2d 6f 70 20 61 74 20 72 75 6e 74 69 6d 65 2c 20 62 75 74 .This.is.a.no-op.at.runtime,.but
21c00 20 69 6e 73 65 72 74 73 20 61 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 63 6f 72 .inserts.a.......<a.href="#Incor
21c20 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e 73 61 66 65 74 79 20 63 rect-Pointer-Alignment">safety.c
21c40 68 65 63 6b 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c heck</a>:.......</p>.......<p.cl
21c60 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 ass="file">test.zig</p><pre><cod
21c80 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
21ca0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 w">const</span>.assert.=.<span.c
21cc0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
21ce0 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
21d00 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c d&quot;</span>).debug.assert;..<
21d20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">test</span>.
21d40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 6f 69 6e <span.class="tok-str">&quot;poin
21d60 74 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 73 61 66 65 74 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e ter.alignment.safety&quot;</span
21d80 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 >.{.....<span.class="tok-kw">var
21da0 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.array.<span.class="tok-k
21dc0 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b w">align</span>(<span.class="tok
21de0 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c -number">4</span>).=.[_]<span.cl
21e00 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e ass="tok-type">u32</span>{.<span
21e20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 31 31 31 31 31 31 31 3c 2f .class="tok-number">0x11111111</
21e40 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e span>,.<span.class="tok-number">
21e60 30 78 31 31 31 31 31 31 31 31 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 0x11111111</span>.};.....<span.c
21e80 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 79 74 65 73 lass="tok-kw">const</span>.bytes
21ea0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 6c .=.<span.class="tok-builtin">@sl
21ec0 69 63 65 54 6f 42 79 74 65 73 3c 2f 73 70 61 6e 3e 28 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c iceToBytes</span>(array[<span.cl
21ee0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 29 3b 0a 20 ass="tok-number">0</span>..]);..
21f00 20 20 20 61 73 73 65 72 74 28 66 6f 6f 28 62 79 74 65 73 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c ...assert(foo(bytes).==.<span.cl
21f20 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 31 31 31 31 31 31 31 3c 2f 73 70 61 ass="tok-number">0x11111111</spa
21f40 6e 3e 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f n>);.}.<span.class="tok-kw">fn</
21f60 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f span>.<span.class="tok-fn">foo</
21f80 73 70 61 6e 3e 28 62 79 74 65 73 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d span>(bytes:.[]<span.class="tok-
21fa0 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f type">u8</span>).<span.class="to
21fc0 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 k-type">u32</span>.{.....<span.c
21fe0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 lass="tok-kw">const</span>.slice
22000 34 20 3d 20 62 79 74 65 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 4.=.bytes[<span.class="tok-numbe
22020 72 22 3e 31 3c 2f 73 70 61 6e 3e 2e 2e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 r">1</span>..<span.class="tok-nu
22040 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 mber">5</span>];.....<span.class
22060 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 6e 74 5f 73 6c 69 63 65 ="tok-kw">const</span>.int_slice
22080 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 79 .=.<span.class="tok-builtin">@by
220a0 74 65 73 54 6f 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 tesToSlice</span>(<span.class="t
220c0 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-type">u32</span>,.<span.class
220e0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 73 70 61 6e 3e ="tok-builtin">@alignCast</span>
22100 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 (<span.class="tok-number">4</spa
22120 6e 3e 2c 20 73 6c 69 63 65 34 29 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n>,.slice4));.....<span.class="t
22140 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 69 6e 74 5f 73 6c 69 63 65 5b 3c ok-kw">return</span>.int_slice[<
22160 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
22180 5d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 ];.}</code></pre><pre><code.clas
221a0 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f s="shell">$.zig.test.test.zig.1/
221c0 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 73 1.test.&quot;pointer.alignment.s
221e0 61 66 65 74 79 26 71 75 6f 74 3b 2e 2e 2e 69 6e 63 6f 72 72 65 63 74 20 61 6c 69 67 6e 6d 65 6e afety&quot;...incorrect.alignmen
22200 74 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 t.<span.class="t37_1">/home/andy
22220 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a /dev/zig/docgen_tmp/test.zig:10:
22240 35 36 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 56</span>:.<span.class="t2_0">0x
22260 32 30 35 37 61 65 20 69 6e 20 66 6f 6f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 2057ae.in.foo.(test)</span>.....
22280 63 6f 6e 73 74 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 40 62 79 74 65 73 54 6f 53 6c 69 63 65 28 const.int_slice.=.@bytesToSlice(
222a0 75 33 32 2c 20 40 61 6c 69 67 6e 43 61 73 74 28 34 2c 20 73 6c 69 63 65 34 29 29 3b 0a 20 20 20 u32,.@alignCast(4,.slice4));....
222c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
222e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ....................<span.class=
22300 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 "t32_1">^</span>.<span.class="t3
22320 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 7_1">/home/andy/dev/zig/docgen_t
22340 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 31 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 mp/test.zig:6:15</span>:.<span.c
22360 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 35 35 62 30 20 69 6e 20 74 65 73 74 20 26 71 75 lass="t2_0">0x2055b0.in.test.&qu
22380 6f 74 3b 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 73 61 66 65 74 79 26 71 75 6f 74 ot;pointer.alignment.safety&quot
223a0 3b 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 66 6f 6f 28 62 ;.(test)</span>.....assert(foo(b
223c0 79 74 65 73 29 20 3d 3d 20 30 78 31 31 31 31 31 31 31 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ytes).==.0x11111111);...........
223e0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e ....<span.class="t32_1">^</span>
22400 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f .<span.class="t37_1">/home/andy/
22420 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 74 5f 72 75 6e dev/zig/lib/std/special/test_run
22440 6e 65 72 2e 7a 69 67 3a 31 33 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 ner.zig:13:25</span>:.<span.clas
22460 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 34 65 31 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c s="t2_0">0x2284e1.in.std.special
22480 2e 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 69 66 20 28 .main.(test)</span>.........if.(
224a0 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 29 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 test_fn.func()).|_|.{...........
224c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 ..............<span.class="t32_1
224e0 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f ">^</span>.<span.class="t37_1">/
22500 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 home/andy/dev/zig/lib/std/specia
22520 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 32 30 34 3a 33 37 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e l/start.zig:204:37</span>:.<span
22540 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 33 35 35 20 69 6e 20 73 74 64 2e 73 70 .class="t2_0">0x227355.in.std.sp
22560 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 ecial.posixCallMainAndExit.(test
22580 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 72 65 73 75 6c )</span>.............const.resul
225a0 74 20 3d 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 72 7c 20 7b 0a 20 20 t.=.root.main().catch.|err|.{...
225c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
225e0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
22600 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 span.class="t37_1">/home/andy/de
22620 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a v/zig/lib/std/special/start.zig:
22640 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 102:5</span>:.<span.class="t2_0"
22660 3e 30 78 32 32 37 31 63 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 >0x2271cf.in.std.special._start.
22680 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 (test)</span>.....@noInlineCall(
226a0 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e posixCallMainAndExit);.....<span
226c0 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 65 73 74 73 20 66 .class="t32_1">^</span>..Tests.f
226e0 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 ailed..Use.the.following.command
22700 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a 2f 68 6f 6d 65 .to.reproduce.the.failure:./home
22720 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 0a 3c 2f /andy/dev/zig/docgen_tmp/test.</
22740 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 code></pre>................<h2.i
22760 64 3d 22 61 6c 6c 6f 77 7a 65 72 6f 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 61 6c 6c 6f d="allowzero"><a.href="#toc-allo
22780 77 7a 65 72 6f 22 3e 61 6c 6c 6f 77 7a 65 72 6f 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 wzero">allowzero</a>.<a.class="h
227a0 64 72 22 20 68 72 65 66 3d 22 23 61 6c 6c 6f 77 7a 65 72 6f 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 dr".href="#allowzero">..</a></h2
227c0 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 70 6f 69 6e 74 65 72 20 >........<p>.......This.pointer.
227e0 61 74 74 72 69 62 75 74 65 20 61 6c 6c 6f 77 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 68 61 attribute.allows.a.pointer.to.ha
22800 76 65 20 61 64 64 72 65 73 73 20 7a 65 72 6f 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 65 76 ve.address.zero..This.is.only.ev
22820 65 72 20 6e 65 65 64 65 64 20 6f 6e 20 74 68 65 0a 20 20 20 20 20 20 66 72 65 65 73 74 61 6e 64 er.needed.on.the.......freestand
22840 69 6e 67 20 4f 53 20 74 61 72 67 65 74 2c 20 77 68 65 72 65 20 74 68 65 20 61 64 64 72 65 73 73 ing.OS.target,.where.the.address
22860 20 7a 65 72 6f 20 69 73 20 6d 61 70 70 61 62 6c 65 2e 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 .zero.is.mappable..If.you.want.t
22880 6f 20 72 65 70 72 65 73 65 6e 74 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 73 2c 20 75 73 65 0a 20 o.represent.null.pointers,.use..
228a0 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 .....<a.href="#Optional-Pointers
228c0 22 3e 4f 70 74 69 6f 6e 61 6c 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 69 6e 73 74 65 61 64 2e ">Optional.Pointers</a>.instead.
228e0 20 49 6e 20 74 68 69 73 20 63 6f 64 65 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 74 68 65 20 70 6f .In.this.code.example,.if.the.po
22900 69 6e 74 65 72 20 64 69 64 20 6e 6f 74 20 68 61 76 65 20 74 68 65 0a 20 20 20 20 20 20 3c 63 6f inter.did.not.have.the.......<co
22920 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
22940 6b 77 22 3e 61 6c 6c 6f 77 7a 65 72 6f 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 74 74 72 kw">allowzero</span></code>.attr
22960 69 62 75 74 65 2c 20 74 68 69 73 20 77 6f 75 6c 64 20 62 65 20 61 20 3c 61 20 68 72 65 66 3d 22 ibute,.this.would.be.a.<a.href="
22980 23 50 6f 69 6e 74 65 72 2d 43 61 73 74 2d 49 6e 76 61 6c 69 64 2d 4e 75 6c 6c 22 3e 50 6f 69 6e #Pointer-Cast-Invalid-Null">Poin
229a0 74 65 72 20 43 61 73 74 20 49 6e 76 61 6c 69 64 20 4e 75 6c 6c 3c 2f 61 3e 20 70 61 6e 69 63 3a ter.Cast.Invalid.Null</a>.panic:
229c0 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 .......</p>.......<p.class="file
229e0 22 3e 61 6c 6c 6f 77 7a 65 72 6f 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c ">allowzero.zig</p><pre><code.cl
22a00 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
22a20 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 onst</span>.std.=.<span.class="t
22a40 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ok-builtin">@import</span>(<span
22a60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b .class="tok-str">&quot;std&quot;
22a80 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 </span>);.<span.class="tok-kw">c
22aa0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 onst</span>.assert.=.std.debug.a
22ac0 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 ssert;..<span.class="tok-kw">tes
22ae0 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>.<span.class="tok-str">&
22b00 71 75 6f 74 3b 61 6c 6c 6f 77 7a 65 72 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 quot;allowzero&quot;</span>.{...
22b20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e ..<span.class="tok-kw">var</span
22b40 3e 20 7a 65 72 6f 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 >.zero:.<span.class="tok-type">u
22b60 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e size</span>.=.<span.class="tok-n
22b80 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 umber">0</span>;.....<span.class
22ba0 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 3c 73 70 61 6e ="tok-kw">var</span>.ptr.=.<span
22bc0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f .class="tok-builtin">@intToPtr</
22be0 73 70 61 6e 3e 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 6c 6f span>(*<span.class="tok-kw">allo
22c00 77 7a 65 72 6f 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 wzero</span>.<span.class="tok-ty
22c20 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 7a 65 72 6f 29 3b 0a 20 20 20 20 61 73 73 65 72 pe">i32</span>,.zero);.....asser
22c40 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 t(<span.class="tok-builtin">@ptr
22c60 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 70 74 72 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ToInt</span>(ptr).==.<span.class
22c80 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 ="tok-number">0</span>);.}</code
22ca0 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e ></pre><pre><code.class="shell">
22cc0 24 20 7a 69 67 20 74 65 73 74 20 61 6c 6c 6f 77 7a 65 72 6f 2e 7a 69 67 0a 31 2f 31 20 74 65 73 $.zig.test.allowzero.zig.1/1.tes
22ce0 74 20 26 71 75 6f 74 3b 61 6c 6c 6f 77 7a 65 72 6f 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c t.&quot;allowzero&quot;...OK.All
22d00 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 .tests.passed..</code></pre>....
22d20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 53 6c 69 63 65 ...................<h1.id="Slice
22d40 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c s"><a.href="#toc-Slices">Slices<
22d60 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 /a>.<a.class="hdr".href="#Slices
22d80 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 ">..</a></h1>........<p.class="f
22da0 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 ile">test.zig</p><pre><code.clas
22dc0 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e s="zig"><span.class="tok-kw">con
22de0 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 st</span>.assert.=.<span.class="
22e00 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 tok-builtin">@import</span>(<spa
22e20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 n.class="tok-str">&quot;std&quot
22e40 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 ;</span>).debug.assert;..<span.c
22e60 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 lass="tok-kw">test</span>.<span.
22e80 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 61 73 69 63 20 73 6c 69 63 class="tok-str">&quot;basic.slic
22ea0 65 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 es&quot;</span>.{.....<span.clas
22ec0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 20 3d 20 5b 5f s="tok-kw">var</span>.array.=.[_
22ee0 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 ]<span.class="tok-type">i32</spa
22f00 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f n>{.<span.class="tok-number">1</
22f20 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e span>,.<span.class="tok-number">
22f40 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 2</span>,.<span.class="tok-numbe
22f60 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 r">3</span>,.<span.class="tok-nu
22f80 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 mber">4</span>.};.....<span.clas
22fa0 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 20 73 6c 69 63 65 20 69 73 20 61 20 s="tok-comment">//.A.slice.is.a.
22fc0 70 6f 69 6e 74 65 72 20 61 6e 64 20 61 20 6c 65 6e 67 74 68 2e 20 54 68 65 20 64 69 66 66 65 72 pointer.and.a.length..The.differ
22fe0 65 6e 63 65 20 62 65 74 77 65 65 6e 20 61 6e 20 61 72 72 61 79 20 61 6e 64 3c 2f 73 70 61 6e 3e ence.between.an.array.and</span>
23000 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f .....<span.class="tok-comment">/
23020 2f 20 61 20 73 6c 69 63 65 20 69 73 20 74 68 61 74 20 74 68 65 20 61 72 72 61 79 27 73 20 6c 65 /.a.slice.is.that.the.array's.le
23040 6e 67 74 68 20 69 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 6b 6e 6f ngth.is.part.of.the.type.and.kno
23060 77 6e 20 61 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f wn.at</span>.....<span.class="to
23080 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 77 68 65 72 k-comment">//.compile-time,.wher
230a0 65 61 73 20 74 68 65 20 73 6c 69 63 65 27 73 20 6c 65 6e 67 74 68 20 69 73 20 6b 6e 6f 77 6e 20 eas.the.slice's.length.is.known.
230c0 61 74 20 72 75 6e 74 69 6d 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 at.runtime.</span>.....<span.cla
230e0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 42 6f 74 68 20 63 61 6e 20 62 65 20 ss="tok-comment">//.Both.can.be.
23100 61 63 63 65 73 73 65 64 20 77 69 74 68 20 74 68 65 20 60 6c 65 6e 60 20 66 69 65 6c 64 2e 3c 2f accessed.with.the.`len`.field.</
23120 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 span>.....<span.class="tok-kw">c
23140 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 20 3d 20 61 72 72 61 79 5b 3c 73 70 61 6e 20 onst</span>.slice.=.array[<span.
23160 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 61 72 72 class="tok-number">0</span>..arr
23180 61 79 2e 6c 65 6e 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 26 61 6d 70 3b 73 6c 69 63 65 5b 3c ay.len];.....assert(&amp;slice[<
231a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
231c0 5d 20 3d 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ].==.&amp;array[<span.class="tok
231e0 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 -number">0</span>]);.....assert(
23200 73 6c 69 63 65 2e 6c 65 6e 20 3d 3d 20 61 72 72 61 79 2e 6c 65 6e 29 3b 0a 0a 20 20 20 20 3c 73 slice.len.==.array.len);......<s
23220 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 55 73 69 6e 67 pan.class="tok-comment">//.Using
23240 20 74 68 65 20 61 64 64 72 65 73 73 2d 6f 66 20 6f 70 65 72 61 74 6f 72 20 6f 6e 20 61 20 73 6c .the.address-of.operator.on.a.sl
23260 69 63 65 20 67 69 76 65 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 73 69 6e 67 6c 65 3c ice.gives.a.pointer.to.a.single<
23280 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d /span>.....<span.class="tok-comm
232a0 65 6e 74 22 3e 2f 2f 20 69 74 65 6d 2c 20 77 68 69 6c 65 20 75 73 69 6e 67 20 74 68 65 20 60 70 ent">//.item,.while.using.the.`p
232c0 74 72 60 20 66 69 65 6c 64 20 67 69 76 65 73 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20 6c 65 6e 67 74 tr`.field.gives.an.unknown.lengt
232e0 68 20 70 6f 69 6e 74 65 72 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 h.pointer.</span>.....assert(<sp
23300 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f an.class="tok-builtin">@typeOf</
23320 73 70 61 6e 3e 28 73 6c 69 63 65 2e 70 74 72 29 20 3d 3d 20 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 span>(slice.ptr).==.[*]<span.cla
23340 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 ss="tok-type">i32</span>);.....a
23360 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e ssert(<span.class="tok-builtin">
23380 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 73 6c 69 63 65 5b 3c 73 70 61 6e 20 @typeOf</span>(&amp;slice[<span.
233a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 29 20 3d 3d class="tok-number">0</span>]).==
233c0 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 .*<span.class="tok-type">i32</sp
233e0 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f an>);.....assert(<span.class="to
23400 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 73 6c 69 63 k-builtin">@ptrToInt</span>(slic
23420 65 2e 70 74 72 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 e.ptr).==.<span.class="tok-built
23440 69 6e 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 73 6c 69 63 65 5b in">@ptrToInt</span>(&amp;slice[
23460 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e <span.class="tok-number">0</span
23480 3e 5d 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d >]));......<span.class="tok-comm
234a0 65 6e 74 22 3e 2f 2f 20 53 6c 69 63 65 73 20 68 61 76 65 20 61 72 72 61 79 20 62 6f 75 6e 64 73 ent">//.Slices.have.array.bounds
234c0 20 63 68 65 63 6b 69 6e 67 2e 20 49 66 20 79 6f 75 20 74 72 79 20 74 6f 20 61 63 63 65 73 73 20 .checking..If.you.try.to.access.
234e0 73 6f 6d 65 74 68 69 6e 67 20 6f 75 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 something.out</span>.....<span.c
23500 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 66 20 62 6f 75 6e 64 73 2c lass="tok-comment">//.of.bounds,
23520 20 79 6f 75 27 6c 6c 20 67 65 74 20 61 20 73 61 66 65 74 79 20 63 68 65 63 6b 20 66 61 69 6c 75 .you'll.get.a.safety.check.failu
23540 72 65 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 6c 69 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 re:</span>.....slice[<span.class
23560 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 5d 20 2b 3d 20 3c 73 70 61 ="tok-number">10</span>].+=.<spa
23580 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 0a n.class="tok-number">1</span>;..
235a0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f ....<span.class="tok-comment">//
235c0 20 4e 6f 74 65 20 74 68 61 74 20 60 73 6c 69 63 65 2e 70 74 72 60 20 64 6f 65 73 20 6e 6f 74 20 .Note.that.`slice.ptr`.does.not.
235e0 69 6e 76 6f 6b 65 20 73 61 66 65 74 79 20 63 68 65 63 6b 69 6e 67 2c 20 77 68 69 6c 65 20 60 26 invoke.safety.checking,.while.`&
23600 61 6d 70 3b 73 6c 69 63 65 5b 30 5d 60 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 amp;slice[0]`</span>.....<span.c
23620 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 73 73 65 72 74 73 20 74 68 lass="tok-comment">//.asserts.th
23640 61 74 20 74 68 65 20 73 6c 69 63 65 20 68 61 73 20 6c 65 6e 20 26 67 74 3b 3d 20 31 2e 3c 2f 73 at.the.slice.has.len.&gt;=.1.</s
23660 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c pan>.}</code></pre><pre><code.cl
23680 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a ass="shell">$.zig.test.test.zig.
236a0 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 62 61 73 69 63 20 73 6c 69 63 65 73 26 71 75 6f 74 1/1.test.&quot;basic.slices&quot
236c0 3b 2e 2e 2e 69 6e 64 65 78 20 6f 75 74 20 6f 66 20 62 6f 75 6e 64 73 0a 3c 73 70 61 6e 20 63 6c ;...index.out.of.bounds.<span.cl
236e0 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 ass="t37_1">/home/andy/dev/zig/d
23700 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 31 3a 31 30 3c 2f 73 70 61 6e 3e 3a ocgen_tmp/test.zig:21:10</span>:
23720 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 35 36 38 34 20 69 6e 20 .<span.class="t2_0">0x205684.in.
23740 74 65 73 74 20 26 71 75 6f 74 3b 62 61 73 69 63 20 73 6c 69 63 65 73 26 71 75 6f 74 3b 20 28 74 test.&quot;basic.slices&quot;.(t
23760 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 6c 69 63 65 5b 31 30 5d 20 2b 3d 20 31 3b 0a est)</span>.....slice[10].+=.1;.
23780 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f .........<span.class="t32_1">^</
237a0 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f span>.<span.class="t37_1">/home/
237c0 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 andy/dev/zig/lib/std/special/tes
237e0 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 33 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e t_runner.zig:13:25</span>:.<span
23800 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 34 65 31 20 69 6e 20 73 74 64 2e 73 70 .class="t2_0">0x2284e1.in.std.sp
23820 65 63 69 61 6c 2e 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 ecial.main.(test)</span>........
23840 20 69 66 20 28 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 29 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 .if.(test_fn.func()).|_|.{......
23860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...................<span.class="
23880 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 t32_1">^</span>.<span.class="t37
238a0 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 _1">/home/andy/dev/zig/lib/std/s
238c0 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 32 30 34 3a 33 37 3c 2f 73 70 61 6e 3e 3a 20 pecial/start.zig:204:37</span>:.
238e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 33 35 35 20 69 6e 20 73 <span.class="t2_0">0x227355.in.s
23900 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 td.special.posixCallMainAndExit.
23920 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 (test)</span>.............const.
23940 72 65 73 75 6c 74 20 3d 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 72 7c result.=.root.main().catch.|err|
23960 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .{..............................
23980 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 .......<span.class="t32_1">^</sp
239a0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e an>.<span.class="t37_1">/home/an
239c0 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 dy/dev/zig/lib/std/special/start
239e0 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .zig:102:5</span>:.<span.class="
23a00 74 32 5f 30 22 3e 30 78 32 32 37 31 63 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 t2_0">0x2271cf.in.std.special._s
23a20 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 tart.(test)</span>.....@noInline
23a40 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 Call(posixCallMainAndExit);.....
23a60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 65 <span.class="t32_1">^</span>..Te
23a80 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f sts.failed..Use.the.following.co
23aa0 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a mmand.to.reproduce.the.failure:.
23ac0 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 /home/andy/dev/zig/docgen_tmp/te
23ae0 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 st.</code></pre>........<p>This.
23b00 69 73 20 6f 6e 65 20 72 65 61 73 6f 6e 20 77 65 20 70 72 65 66 65 72 20 73 6c 69 63 65 73 20 74 is.one.reason.we.prefer.slices.t
23b20 6f 20 70 6f 69 6e 74 65 72 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 o.pointers.</p>.......<p.class="
23b40 66 69 6c 65 22 3e 73 6c 69 63 65 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 file">slices.zig</p><pre><code.c
23b60 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
23b80 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 const</span>.assert.=.<span.clas
23ba0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c s="tok-builtin">@import</span>(<
23bc0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 span.class="tok-str">&quot;std&q
23be0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e uot;</span>).debug.assert;.<span
23c00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 65 6d .class="tok-kw">const</span>.mem
23c20 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d .=.<span.class="tok-builtin">@im
23c40 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 port</span>(<span.class="tok-str
23c60 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 65 6d 3b 0a 3c ">&quot;std&quot;</span>).mem;.<
23c80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
23ca0 20 66 6d 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 .fmt.=.<span.class="tok-builtin"
23cc0 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
23ce0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 66 6d -str">&quot;std&quot;</span>).fm
23d00 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 t;..<span.class="tok-kw">test</s
23d20 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
23d40 3b 75 73 69 6e 67 20 73 6c 69 63 65 73 20 66 6f 72 20 73 74 72 69 6e 67 73 26 71 75 6f 74 3b 3c ;using.slices.for.strings&quot;<
23d60 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f /span>.{.....<span.class="tok-co
23d80 6d 6d 65 6e 74 22 3e 2f 2f 20 5a 69 67 20 68 61 73 20 6e 6f 20 63 6f 6e 63 65 70 74 20 6f 66 20 mment">//.Zig.has.no.concept.of.
23da0 73 74 72 69 6e 67 73 2e 20 53 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 61 72 65 20 61 72 72 strings..String.literals.are.arr
23dc0 61 79 73 20 6f 66 20 75 38 2c 20 61 6e 64 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 ays.of.u8,.and</span>.....<span.
23de0 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 6e 20 67 65 6e 65 72 61 class="tok-comment">//.in.genera
23e00 6c 20 74 68 65 20 73 74 72 69 6e 67 20 74 79 70 65 20 69 73 20 5b 5d 75 38 20 28 73 6c 69 63 65 l.the.string.type.is.[]u8.(slice
23e20 20 6f 66 20 75 38 29 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .of.u8).</span>.....<span.class=
23e40 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 48 65 72 65 20 77 65 20 69 6d 70 6c 69 63 69 "tok-comment">//.Here.we.implici
23e60 74 6c 79 20 63 61 73 74 20 5b 35 5d 75 38 20 74 6f 20 5b 5d 63 6f 6e 73 74 20 75 38 3c 2f 73 70 tly.cast.[5]u8.to.[]const.u8</sp
23e80 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e an>.....<span.class="tok-kw">con
23ea0 73 74 3c 2f 73 70 61 6e 3e 20 68 65 6c 6c 6f 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 st</span>.hello:.[]<span.class="
23ec0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">const</span>.<span.class
23ee0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c ="tok-type">u8</span>.=.<span.cl
23f00 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c ass="tok-str">&quot;hello&quot;<
23f20 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>;.....<span.class="tok-kw"
23f40 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 6f 72 6c 64 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 >const</span>.world:.[]<span.cla
23f60 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ss="tok-kw">const</span>.<span.c
23f80 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 lass="tok-type">u8</span>.=.<spa
23fa0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b e4 b8 96 e7 95 8c 26 71 n.class="tok-str">&quot;......&q
23fc0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>;......<span.class="t
23fe0 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 6c 6c 5f 74 6f 67 65 74 68 65 72 3a 20 ok-kw">var</span>.all_together:.
24000 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 3c 2f 73 [<span.class="tok-number">100</s
24020 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f pan>]<span.class="tok-type">u8</
24040 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 span>.=.<span.class="tok-null">u
24060 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ndefined</span>;.....<span.class
24080 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 73 6c ="tok-comment">//.You.can.use.sl
240a0 69 63 65 20 73 79 6e 74 61 78 20 6f 6e 20 61 6e 20 61 72 72 61 79 20 74 6f 20 63 6f 6e 76 65 72 ice.syntax.on.an.array.to.conver
240c0 74 20 61 6e 20 61 72 72 61 79 20 69 6e 74 6f 20 61 20 73 6c 69 63 65 2e 3c 2f 73 70 61 6e 3e 0a t.an.array.into.a.slice.</span>.
240e0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f ....<span.class="tok-kw">const</
24100 73 70 61 6e 3e 20 61 6c 6c 5f 74 6f 67 65 74 68 65 72 5f 73 6c 69 63 65 20 3d 20 61 6c 6c 5f 74 span>.all_together_slice.=.all_t
24120 6f 67 65 74 68 65 72 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 ogether[<span.class="tok-number"
24140 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >0</span>..];.....<span.class="t
24160 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 74 72 69 6e 67 20 63 6f 6e 63 61 74 65 6e 61 74 ok-comment">//.String.concatenat
24180 69 6f 6e 20 65 78 61 6d 70 6c 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ion.example.</span>.....<span.cl
241a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 65 6c 6c 6f 5f ass="tok-kw">const</span>.hello_
241c0 77 6f 72 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 world.=.<span.class="tok-kw">try
241e0 3c 2f 73 70 61 6e 3e 20 66 6d 74 2e 62 75 66 50 72 69 6e 74 28 61 6c 6c 5f 74 6f 67 65 74 68 65 </span>.fmt.bufPrint(all_togethe
24200 72 5f 73 6c 69 63 65 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 r_slice,.<span.class="tok-str">&
24220 71 75 6f 74 3b 7b 7d 20 7b 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 68 65 6c 6c 6f 2c 20 quot;{}.{}&quot;</span>,.hello,.
24240 77 6f 72 6c 64 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f world);......<span.class="tok-co
24260 6d 6d 65 6e 74 22 3e 2f 2f 20 47 65 6e 65 72 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 mment">//.Generally,.you.can.use
24280 20 55 54 46 2d 38 20 61 6e 64 20 6e 6f 74 20 77 6f 72 72 79 20 61 62 6f 75 74 20 77 68 65 74 68 .UTF-8.and.not.worry.about.wheth
242a0 65 72 20 73 6f 6d 65 74 68 69 6e 67 20 69 73 20 61 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 er.something.is.a</span>.....<sp
242c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 73 74 72 69 6e 67 an.class="tok-comment">//.string
242e0 2e 20 49 66 20 79 6f 75 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 64 65 61 6c 20 77 69 74 68 ..If.you.don't.need.to.deal.with
24300 20 69 6e 64 69 76 69 64 75 61 6c 20 63 68 61 72 61 63 74 65 72 73 2c 20 6e 6f 20 6e 65 65 64 3c .individual.characters,.no.need<
24320 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d /span>.....<span.class="tok-comm
24340 65 6e 74 22 3e 2f 2f 20 74 6f 20 64 65 63 6f 64 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 ent">//.to.decode.</span>.....as
24360 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 sert(mem.eql(<span.class="tok-ty
24380 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 2c 20 3c 73 70 61 pe">u8</span>,.hello_world,.<spa
243a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 e4 b8 n.class="tok-str">&quot;hello...
243c0 96 e7 95 8c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c ....&quot;</span>));.}..<span.cl
243e0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ass="tok-kw">test</span>.<span.c
24400 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 6c 69 63 65 20 70 6f 69 6e 74 lass="tok-str">&quot;slice.point
24420 65 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 er&quot;</span>.{.....<span.clas
24440 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 3a 20 5b 3c 73 s="tok-kw">var</span>.array:.[<s
24460 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e pan.class="tok-number">10</span>
24480 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e ]<span.class="tok-type">u8</span
244a0 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 >.=.<span.class="tok-null">undef
244c0 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ined</span>;.....<span.class="to
244e0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 26 61 6d 70 3b 61 72 k-kw">const</span>.ptr.=.&amp;ar
24500 72 61 79 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 ray;......<span.class="tok-comme
24520 6e 74 22 3e 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 73 6c 69 63 69 6e 67 20 73 79 6e 74 61 nt">//.You.can.use.slicing.synta
24540 78 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 73 6c x.to.convert.a.pointer.into.a.sl
24560 69 63 65 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ice:</span>.....<span.class="tok
24580 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 20 3d 20 70 74 72 5b 3c 73 -kw">const</span>.slice.=.ptr[<s
245a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e pan.class="tok-number">0</span>.
245c0 2e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 .<span.class="tok-number">5</spa
245e0 6e 3e 5d 3b 0a 20 20 20 20 73 6c 69 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n>];.....slice[<span.class="tok-
24600 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 5d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d number">2</span>].=.<span.class=
24620 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 72 "tok-number">3</span>;.....asser
24640 74 28 73 6c 69 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 t(slice[<span.class="tok-number"
24660 3e 32 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e >2</span>].==.<span.class="tok-n
24680 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 umber">3</span>);.....<span.clas
246a0 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 73 6c 69 63 65 20 69 73 20 s="tok-comment">//.The.slice.is.
246c0 6d 75 74 61 62 6c 65 20 62 65 63 61 75 73 65 20 77 65 20 73 6c 69 63 65 64 20 61 20 6d 75 74 61 mutable.because.we.sliced.a.muta
246e0 62 6c 65 20 70 6f 69 6e 74 65 72 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 3c ble.pointer.</span>.....assert(<
24700 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 span.class="tok-builtin">@typeOf
24720 3c 2f 73 70 61 6e 3e 28 73 6c 69 63 65 29 20 3d 3d 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d </span>(slice).==.[]<span.class=
24740 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 "tok-type">u8</span>);......<spa
24760 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 59 6f 75 20 63 61 6e n.class="tok-comment">//.You.can
24780 20 61 6c 73 6f 20 73 6c 69 63 65 20 61 20 73 6c 69 63 65 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 .also.slice.a.slice:</span>.....
247a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
247c0 3e 20 73 6c 69 63 65 32 20 3d 20 73 6c 69 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >.slice2.=.slice[<span.class="to
247e0 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2e 2e 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-number">2</span>..<span.class=
24800 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 5d 3b 0a 20 20 20 20 61 73 73 65 "tok-number">3</span>];.....asse
24820 72 74 28 73 6c 69 63 65 32 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f rt(slice2.len.==.<span.class="to
24840 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 k-number">1</span>);.....assert(
24860 73 6c 69 63 65 32 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e slice2[<span.class="tok-number">
24880 30 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 0</span>].==.<span.class="tok-nu
248a0 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d mber">3</span>);.}..<span.class=
248c0 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
248e0 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 6c 69 63 65 20 77 69 64 65 6e 69 6e 67 26 ="tok-str">&quot;slice.widening&
24900 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 quot;</span>.{.....<span.class="
24920 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 5a 69 67 20 73 75 70 70 6f 72 74 73 20 73 6c 69 tok-comment">//.Zig.supports.sli
24940 63 65 20 77 69 64 65 6e 69 6e 67 20 61 6e 64 20 73 6c 69 63 65 20 6e 61 72 72 6f 77 69 6e 67 2e ce.widening.and.slice.narrowing.
24960 20 43 61 73 74 20 61 20 73 6c 69 63 65 20 6f 66 20 75 38 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c .Cast.a.slice.of.u8</span>.....<
24980 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 6f 20 61 span.class="tok-comment">//.to.a
249a0 20 73 6c 69 63 65 20 6f 66 20 61 6e 79 74 68 69 6e 67 20 65 6c 73 65 2c 20 61 6e 64 20 5a 69 67 .slice.of.anything.else,.and.Zig
249c0 20 77 69 6c 6c 20 70 65 72 66 6f 72 6d 20 74 68 65 20 6c 65 6e 67 74 68 20 63 6f 6e 76 65 72 73 .will.perform.the.length.convers
249e0 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ion.</span>.....<span.class="tok
24a00 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 20 3c 73 70 61 6e 20 63 6c -kw">const</span>.array.<span.cl
24a20 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 ass="tok-kw">align</span>(<span.
24a40 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 73 70 class="tok-builtin">@alignOf</sp
24a60 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f an>(<span.class="tok-type">u32</
24a80 73 70 61 6e 3e 29 29 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 span>)).=.[_]<span.class="tok-ty
24aa0 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pe">u8</span>{.<span.class="tok-
24ac0 6e 75 6d 62 65 72 22 3e 30 78 31 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 number">0x12</span>,.<span.class
24ae0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e ="tok-number">0x12</span>,.<span
24b00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 3c 2f 73 70 61 6e 3e 2c .class="tok-number">0x12</span>,
24b20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 3c 2f .<span.class="tok-number">0x12</
24b40 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e span>,.<span.class="tok-number">
24b60 30 78 31 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 0x13</span>,.<span.class="tok-nu
24b80 6d 62 65 72 22 3e 30 78 31 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 mber">0x13</span>,.<span.class="
24ba0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 tok-number">0x13</span>,.<span.c
24bc0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 33 3c 2f 73 70 61 6e 3e 20 7d 3b lass="tok-number">0x13</span>.};
24be0 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c .....<span.class="tok-kw">const<
24c00 2f 73 70 61 6e 3e 20 73 6c 69 63 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d /span>.slice.=.<span.class="tok-
24c20 62 75 69 6c 74 69 6e 22 3e 40 62 79 74 65 73 54 6f 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 3c 73 builtin">@bytesToSlice</span>(<s
24c40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c pan.class="tok-type">u32</span>,
24c60 20 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e .array[<span.class="tok-number">
24c80 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 2e 6c 0</span>..]);.....assert(slice.l
24ca0 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 en.==.<span.class="tok-number">2
24cc0 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 5b 3c 73 70 61 6e </span>);.....assert(slice[<span
24ce0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 20 3d 3d .class="tok-number">0</span>].==
24d00 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 31 32 .<span.class="tok-number">0x1212
24d20 31 32 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 5b 3c 1212</span>);.....assert(slice[<
24d40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e span.class="tok-number">1</span>
24d60 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 ].==.<span.class="tok-number">0x
24d80 31 33 31 33 31 33 31 33 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 13131313</span>);.}</code></pre>
24da0 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 <pre><code.class="shell">$.zig.t
24dc0 65 73 74 20 73 6c 69 63 65 73 2e 7a 69 67 0a 31 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 75 73 est.slices.zig.1/3.test.&quot;us
24de0 69 6e 67 20 73 6c 69 63 65 73 20 66 6f 72 20 73 74 72 69 6e 67 73 26 71 75 6f 74 3b 2e 2e 2e 4f ing.slices.for.strings&quot;...O
24e00 4b 0a 32 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 73 6c 69 63 65 20 70 6f 69 6e 74 65 72 26 71 K.2/3.test.&quot;slice.pointer&q
24e20 75 6f 74 3b 2e 2e 2e 4f 4b 0a 33 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 73 6c 69 63 65 20 77 uot;...OK.3/3.test.&quot;slice.w
24e40 69 64 65 6e 69 6e 67 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 idening&quot;...OK.All.tests.pas
24e60 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 sed..</code></pre>........<p>See
24e80 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 .also:</p><ul>.<li><a.href="#Poi
24ea0 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 nters">Pointers</a></li>.<li><a.
24ec0 68 72 65 66 3d 22 23 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 href="#for">for</a></li>.<li><a.
24ee0 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c href="#Arrays">Arrays</a></li>.<
24f00 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 73 74 72 75 63 /ul>...............<h1.id="struc
24f20 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c t"><a.href="#toc-struct">struct<
24f40 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 /a>.<a.class="hdr".href="#struct
24f60 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 ">..</a></h1>........<p.class="f
24f80 69 6c 65 22 3e 73 74 72 75 63 74 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ile">structs.zig</p><pre><code.c
24fa0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d lass="zig"><span.class="tok-comm
24fc0 65 6e 74 22 3e 2f 2f 20 44 65 63 6c 61 72 65 20 61 20 73 74 72 75 63 74 2e 3c 2f 73 70 61 6e 3e ent">//.Declare.a.struct.</span>
24fe0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 5a 69 .<span.class="tok-comment">//.Zi
25000 67 20 67 69 76 65 73 20 6e 6f 20 67 75 61 72 61 6e 74 65 65 73 20 61 62 6f 75 74 20 74 68 65 20 g.gives.no.guarantees.about.the.
25020 6f 72 64 65 72 20 6f 66 20 66 69 65 6c 64 73 20 61 6e 64 20 74 68 65 20 73 69 7a 65 20 6f 66 3c order.of.fields.and.the.size.of<
25040 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 /span>.<span.class="tok-comment"
25060 3e 2f 2f 20 74 68 65 20 73 74 72 75 63 74 20 62 75 74 20 74 68 65 20 66 69 65 6c 64 73 20 61 72 >//.the.struct.but.the.fields.ar
25080 65 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 41 42 49 2d 61 6c 69 67 6e 65 64 2e 3c e.guaranteed.to.be.ABI-aligned.<
250a0 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 /span>.<span.class="tok-kw">cons
250c0 74 3c 2f 73 70 61 6e 3e 20 50 6f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f t</span>.Point.=.<span.class="to
250e0 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 78 3a 20 3c 73 70 k-kw">struct</span>.{.....x:.<sp
25100 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a an.class="tok-type">f32</span>,.
25120 20 20 20 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 ....y:.<span.class="tok-type">f3
25140 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 2</span>,.};..<span.class="tok-c
25160 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4d 61 79 62 65 20 77 65 20 77 61 6e 74 20 74 6f 20 70 61 73 73 omment">//.Maybe.we.want.to.pass
25180 20 69 74 20 74 6f 20 4f 70 65 6e 47 4c 20 73 6f 20 77 65 20 77 61 6e 74 20 74 6f 20 62 65 20 70 .it.to.OpenGL.so.we.want.to.be.p
251a0 61 72 74 69 63 75 6c 61 72 20 61 62 6f 75 74 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 articular.about</span>.<span.cla
251c0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 68 6f 77 20 74 68 65 20 62 79 74 65 ss="tok-comment">//.how.the.byte
251e0 73 20 61 72 65 20 61 72 72 61 6e 67 65 64 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 s.are.arranged.</span>.<span.cla
25200 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 6f 69 6e 74 32 20 ss="tok-kw">const</span>.Point2.
25220 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 =.<span.class="tok-kw">packed</s
25240 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 pan>.<span.class="tok-kw">struct
25260 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.{.....x:.<span.class="to
25280 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 79 3a 20 3c 73 70 61 6e k-type">f32</span>,.....y:.<span
252a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b .class="tok-type">f32</span>,.};
252c0 0a 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 ...<span.class="tok-comment">//.
252e0 44 65 63 6c 61 72 65 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 61 20 73 74 72 75 63 74 2e Declare.an.instance.of.a.struct.
25300 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e </span>.<span.class="tok-kw">con
25320 73 74 3c 2f 73 70 61 6e 3e 20 70 20 3d 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 2e 78 20 3d 20 3c st</span>.p.=.Point.{......x.=.<
25340 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 31 32 3c 2f 73 70 span.class="tok-number">0.12</sp
25360 61 6e 3e 2c 0a 20 20 20 20 2e 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e an>,......y.=.<span.class="tok-n
25380 75 6d 62 65 72 22 3e 30 2e 33 34 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c umber">0.34</span>,.};..<span.cl
253a0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4d 61 79 62 65 20 77 65 27 72 65 ass="tok-comment">//.Maybe.we're
253c0 20 6e 6f 74 20 72 65 61 64 79 20 74 6f 20 66 69 6c 6c 20 6f 75 74 20 73 6f 6d 65 20 6f 66 20 74 .not.ready.to.fill.out.some.of.t
253e0 68 65 20 66 69 65 6c 64 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 he.fields.</span>.<span.class="t
25400 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 32 20 3d 20 50 6f 69 6e 74 20 7b 0a 20 ok-kw">var</span>.p2.=.Point.{..
25420 20 20 20 2e 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 ....x.=.<span.class="tok-number"
25440 3e 30 2e 31 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 >0.12</span>,......y.=.<span.cla
25460 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 2c 0a ss="tok-null">undefined</span>,.
25480 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f };..<span.class="tok-comment">//
254a0 20 53 74 72 75 63 74 73 20 63 61 6e 20 68 61 76 65 20 6d 65 74 68 6f 64 73 3c 2f 73 70 61 6e 3e .Structs.can.have.methods</span>
254c0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 74 .<span.class="tok-comment">//.St
254e0 72 75 63 74 20 6d 65 74 68 6f 64 73 20 61 72 65 20 6e 6f 74 20 73 70 65 63 69 61 6c 2c 20 74 68 ruct.methods.are.not.special,.th
25500 65 79 20 61 72 65 20 6f 6e 6c 79 20 6e 61 6d 65 73 70 61 63 65 64 3c 2f 73 70 61 6e 3e 0a 3c 73 ey.are.only.namespaced</span>.<s
25520 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 66 75 6e 63 74 pan.class="tok-comment">//.funct
25540 69 6f 6e 73 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 77 69 74 68 20 64 6f 74 20 ions.that.you.can.call.with.dot.
25560 73 79 6e 74 61 78 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d syntax.</span>.<span.class="tok-
25580 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 56 65 63 33 20 3d 20 3c 73 70 61 6e 20 63 6c kw">const</span>.Vec3.=.<span.cl
255a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 ass="tok-kw">struct</span>.{....
255c0 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f .x:.<span.class="tok-type">f32</
255e0 73 70 61 6e 3e 2c 0a 20 20 20 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 span>,.....y:.<span.class="tok-t
25600 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7a 3a 20 3c 73 70 61 6e 20 63 6c ype">f32</span>,.....z:.<span.cl
25620 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 ass="tok-type">f32</span>,......
25640 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">pub</span>.
25660 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c <span.class="tok-kw">fn</span>.<
25680 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 69 6e 69 74 3c 2f 73 70 61 6e 3e 28 span.class="tok-fn">init</span>(
256a0 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 x:.<span.class="tok-type">f32</s
256c0 70 61 6e 3e 2c 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e pan>,.y:.<span.class="tok-type">
256e0 66 33 32 3c 2f 73 70 61 6e 3e 2c 20 7a 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d f32</span>,.z:.<span.class="tok-
25700 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 29 20 56 65 63 33 20 7b 0a 20 20 20 20 20 20 20 type">f32</span>).Vec3.{........
25720 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 .<span.class="tok-kw">return</sp
25740 61 6e 3e 20 56 65 63 33 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 78 20 3d 20 78 2c 0a 20 an>.Vec3.{..............x.=.x,..
25760 20 20 20 20 20 20 20 20 20 20 20 2e 79 20 3d 20 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e ............y.=.y,..............
25780 7a 20 3d 20 7a 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 z.=.z,.........};.....}......<sp
257a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 an.class="tok-kw">pub</span>.<sp
257c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 an.class="tok-kw">fn</span>.<spa
257e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 6f 74 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 n.class="tok-fn">dot</span>(self
25800 3a 20 56 65 63 33 2c 20 6f 74 68 65 72 3a 20 56 65 63 33 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 :.Vec3,.other:.Vec3).<span.class
25820 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 ="tok-type">f32</span>.{........
25840 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 .<span.class="tok-kw">return</sp
25860 61 6e 3e 20 73 65 6c 66 2e 78 20 2a 20 6f 74 68 65 72 2e 78 20 2b 20 73 65 6c 66 2e 79 20 2a 20 an>.self.x.*.other.x.+.self.y.*.
25880 6f 74 68 65 72 2e 79 20 2b 20 73 65 6c 66 2e 7a 20 2a 20 6f 74 68 65 72 2e 7a 3b 0a 20 20 20 20 other.y.+.self.z.*.other.z;.....
258a0 7d 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 }.};..<span.class="tok-kw">const
258c0 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.assert.=.<span.class="to
258e0 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
25900 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
25920 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 /span>).debug.assert;.<span.clas
25940 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">test</span>.<span.cla
25960 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 64 6f 74 20 70 72 6f 64 75 63 74 26 71 ss="tok-str">&quot;dot.product&q
25980 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>.{.....<span.class="t
259a0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 31 20 3d 20 56 65 63 33 2e 69 6e ok-kw">const</span>.v1.=.Vec3.in
259c0 69 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 30 3c it(<span.class="tok-number">1.0<
259e0 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>,.<span.class="tok-number"
25a00 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 >0.0</span>,.<span.class="tok-nu
25a20 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 mber">0.0</span>);.....<span.cla
25a40 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 32 20 3d 20 56 65 ss="tok-kw">const</span>.v2.=.Ve
25a60 63 33 2e 69 6e 69 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 c3.init(<span.class="tok-number"
25a80 3e 30 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 >0.0</span>,.<span.class="tok-nu
25aa0 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 mber">1.0</span>,.<span.class="t
25ac0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 ok-number">0.0</span>);.....asse
25ae0 72 74 28 76 31 2e 64 6f 74 28 76 32 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f rt(v1.dot(v2).==.<span.class="to
25b00 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 k-number">0.0</span>);......<spa
25b20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4f 74 68 65 72 20 74 n.class="tok-comment">//.Other.t
25b40 68 61 6e 20 62 65 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 63 61 6c 6c 20 77 69 74 68 han.being.available.to.call.with
25b60 20 64 6f 74 20 73 79 6e 74 61 78 2c 20 73 74 72 75 63 74 20 6d 65 74 68 6f 64 73 20 61 72 65 3c .dot.syntax,.struct.methods.are<
25b80 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d /span>.....<span.class="tok-comm
25ba0 65 6e 74 22 3e 2f 2f 20 6e 6f 74 20 73 70 65 63 69 61 6c 2e 20 59 6f 75 20 63 61 6e 20 72 65 66 ent">//.not.special..You.can.ref
25bc0 65 72 65 6e 63 65 20 74 68 65 6d 20 61 73 20 61 6e 79 20 6f 74 68 65 72 20 64 65 63 6c 61 72 61 erence.them.as.any.other.declara
25be0 74 69 6f 6e 20 69 6e 73 69 64 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 tion.inside</span>.....<span.cla
25c00 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 73 74 72 75 63 74 3a 3c ss="tok-comment">//.the.struct:<
25c20 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 56 65 63 33 2e 64 6f 74 28 76 31 2c 20 76 /span>.....assert(Vec3.dot(v1,.v
25c40 32 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2).==.<span.class="tok-number">0
25c60 2e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .0</span>);.}..<span.class="tok-
25c80 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 74 72 75 63 74 73 20 63 61 6e 20 68 61 76 65 20 67 6c 6f comment">//.Structs.can.have.glo
25ca0 62 61 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 bal.declarations.</span>.<span.c
25cc0 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 74 72 75 63 74 73 20 63 61 lass="tok-comment">//.Structs.ca
25ce0 6e 20 68 61 76 65 20 30 20 66 69 65 6c 64 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c n.have.0.fields.</span>.<span.cl
25d00 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 6d 70 74 79 20 ass="tok-kw">const</span>.Empty.
25d20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 =.<span.class="tok-kw">struct</s
25d40 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
25d60 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pub</span>.<span.class="tok-kw">
25d80 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 49 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 const</span>.PI.=.<span.class="t
25da0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 2e 31 34 3c 2f 73 70 61 6e 3e 3b 0a 7d 3b 0a 3c 73 70 61 6e ok-number">3.14</span>;.};.<span
25dc0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
25de0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 72 75 63 74 20 6e n.class="tok-str">&quot;struct.n
25e00 61 6d 65 73 70 61 63 65 64 20 76 61 72 69 61 62 6c 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 amespaced.variable&quot;</span>.
25e20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 45 6d 70 74 79 2e 50 49 20 3d 3d 20 3c 73 70 61 6e 20 63 {.....assert(Empty.PI.==.<span.c
25e40 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 2e 31 34 3c 2f 73 70 61 6e 3e 29 3b 0a lass="tok-number">3.14</span>);.
25e60 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c ....assert(<span.class="tok-buil
25e80 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 45 6d 70 74 79 29 20 3d 3d 20 3c 73 tin">@sizeOf</span>(Empty).==.<s
25ea0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">0</span>)
25ec0 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 ;......<span.class="tok-comment"
25ee0 3e 2f 2f 20 79 6f 75 20 63 61 6e 20 73 74 69 6c 6c 20 69 6e 73 74 61 6e 74 69 61 74 65 20 61 6e >//.you.can.still.instantiate.an
25f00 20 65 6d 70 74 79 20 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 .empty.struct</span>.....<span.c
25f20 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 64 6f 65 73 5f lass="tok-kw">const</span>.does_
25f40 6e 6f 74 68 69 6e 67 20 3d 20 45 6d 70 74 79 20 7b 7d 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 nothing.=.Empty.{};.}..<span.cla
25f60 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 73 74 72 75 63 74 20 66 69 65 6c 64 ss="tok-comment">//.struct.field
25f80 20 6f 72 64 65 72 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 63 6f 6d 70 .order.is.determined.by.the.comp
25fa0 69 6c 65 72 20 66 6f 72 20 6f 70 74 69 6d 61 6c 20 70 65 72 66 6f 72 6d 61 6e 63 65 2e 3c 2f 73 iler.for.optimal.performance.</s
25fc0 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f pan>.<span.class="tok-comment">/
25fe0 2f 20 68 6f 77 65 76 65 72 2c 20 79 6f 75 20 63 61 6e 20 73 74 69 6c 6c 20 63 61 6c 63 75 6c 61 /.however,.you.can.still.calcula
26000 74 65 20 61 20 73 74 72 75 63 74 20 62 61 73 65 20 70 6f 69 6e 74 65 72 20 67 69 76 65 6e 20 61 te.a.struct.base.pointer.given.a
26020 20 66 69 65 6c 64 20 70 6f 69 6e 74 65 72 3a 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 .field.pointer:</span>.<span.cla
26040 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ss="tok-kw">fn</span>.<span.clas
26060 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 65 74 59 42 61 73 65 64 4f 6e 58 3c 2f 73 70 61 6e 3e 28 78 s="tok-fn">setYBasedOnX</span>(x
26080 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 :.*<span.class="tok-type">f32</s
260a0 70 61 6e 3e 2c 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e pan>,.y:.<span.class="tok-type">
260c0 66 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 f32</span>).<span.class="tok-typ
260e0 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 e">void</span>.{.....<span.class
26100 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 6f 69 6e 74 20 3d 20 3c ="tok-kw">const</span>.point.=.<
26120 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 69 65 6c 64 50 span.class="tok-builtin">@fieldP
26140 61 72 65 6e 74 50 74 72 3c 2f 73 70 61 6e 3e 28 50 6f 69 6e 74 2c 20 3c 73 70 61 6e 20 63 6c 61 arentPtr</span>(Point,.<span.cla
26160 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e ss="tok-str">&quot;x&quot;</span
26180 3e 2c 20 78 29 3b 0a 20 20 20 20 70 6f 69 6e 74 2e 79 20 3d 20 79 3b 0a 7d 0a 3c 73 70 61 6e 20 >,.x);.....point.y.=.y;.}.<span.
261a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e class="tok-kw">test</span>.<span
261c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 69 65 6c 64 20 70 61 72 .class="tok-str">&quot;field.par
261e0 65 6e 74 20 70 6f 69 6e 74 65 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c ent.pointer&quot;</span>.{.....<
26200 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 span.class="tok-kw">var</span>.p
26220 6f 69 6e 74 20 3d 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 20 20 20 20 2e 78 20 3d 20 3c 73 70 61 oint.=.Point.{..........x.=.<spa
26240 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 31 32 33 34 3c 2f 73 70 61 n.class="tok-number">0.1234</spa
26260 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f n>,..........y.=.<span.class="to
26280 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 35 36 37 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a k-number">0.5678</span>,.....};.
262a0 20 20 20 20 73 65 74 59 42 61 73 65 64 4f 6e 58 28 26 61 6d 70 3b 70 6f 69 6e 74 2e 78 2c 20 3c ....setYBasedOnX(&amp;point.x,.<
262c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 39 3c 2f 73 70 61 span.class="tok-number">0.9</spa
262e0 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 6f 69 6e 74 2e 79 20 3d 3d 20 3c 73 70 61 6e n>);.....assert(point.y.==.<span
26300 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 39 3c 2f 73 70 61 6e 3e 29 3b .class="tok-number">0.9</span>);
26320 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f .}..<span.class="tok-comment">//
26340 20 59 6f 75 20 63 61 6e 20 72 65 74 75 72 6e 20 61 20 73 74 72 75 63 74 20 66 72 6f 6d 20 61 20 .You.can.return.a.struct.from.a.
26360 66 75 6e 63 74 69 6f 6e 2e 20 54 68 69 73 20 69 73 20 68 6f 77 20 77 65 20 64 6f 20 67 65 6e 65 function..This.is.how.we.do.gene
26380 72 69 63 73 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d rics</span>.<span.class="tok-com
263a0 6d 65 6e 74 22 3e 2f 2f 20 69 6e 20 5a 69 67 3a 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c ment">//.in.Zig:</span>.<span.cl
263c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
263e0 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 4c 69 6e 6b 65 64 4c 69 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 ss="tok-fn">LinkedList</span>(<s
26400 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
26420 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 n>.T:.<span.class="tok-type">typ
26440 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 e</span>).<span.class="tok-type"
26460 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >type</span>.{.....<span.class="
26480 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 tok-kw">return</span>.<span.clas
264a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 s="tok-kw">struct</span>.{......
264c0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 ...<span.class="tok-kw">pub</spa
264e0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 n>.<span.class="tok-kw">const</s
26500 70 61 6e 3e 20 4e 6f 64 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 pan>.Node.=.<span.class="tok-kw"
26520 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 >struct</span>.{.............pre
26540 76 3a 20 3f 2a 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3a 20 3f 2a 4e v:.?*Node,.............next:.?*N
26560 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 3a 20 54 2c 0a 20 20 20 20 20 20 ode,.............data:.T,.......
26580 20 20 7d 3b 0a 0a 20 20 20 20 20 20 20 20 66 69 72 73 74 3a 20 3f 2a 4e 6f 64 65 2c 0a 20 20 20 ..};..........first:.?*Node,....
265a0 20 20 20 20 20 6c 61 73 74 3a 20 20 3f 2a 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 6c 65 6e 3a .....last:..?*Node,.........len:
265c0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c ...<span.class="tok-type">usize<
265e0 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 /span>,.....};.}..<span.class="t
26600 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ok-kw">test</span>.<span.class="
26620 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6c 69 6e 6b 65 64 20 6c 69 73 74 26 71 75 6f 74 3b tok-str">&quot;linked.list&quot;
26640 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 </span>.{.....<span.class="tok-c
26660 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 46 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 61 74 20 63 omment">//.Functions.called.at.c
26680 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 72 65 20 6d 65 6d 6f 69 7a 65 64 2e 20 54 68 69 73 20 6d ompile-time.are.memoized..This.m
266a0 65 61 6e 73 20 79 6f 75 20 63 61 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c eans.you.can</span>.....<span.cl
266c0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 64 6f 20 74 68 69 73 3a 3c 2f 73 ass="tok-comment">//.do.this:</s
266e0 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 4c 69 6e 6b 65 64 4c 69 73 74 28 3c 73 70 61 6e pan>.....assert(LinkedList(<span
26700 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3d 3d .class="tok-type">i32</span>).==
26720 20 4c 69 6e 6b 65 64 4c 69 73 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 .LinkedList(<span.class="tok-typ
26740 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 e">i32</span>));......<span.clas
26760 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6c 69 73 74 20 3d 20 4c 69 6e s="tok-kw">var</span>.list.=.Lin
26780 6b 65 64 4c 69 73 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 kedList(<span.class="tok-type">i
267a0 33 32 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 66 69 72 73 74 20 3d 20 3c 73 32</span>).{..........first.=.<s
267c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e pan.class="tok-null">null</span>
267e0 2c 0a 20 20 20 20 20 20 20 20 2e 6c 61 73 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ,..........last.=.<span.class="t
26800 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 6c ok-null">null</span>,..........l
26820 65 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c en.=.<span.class="tok-number">0<
26840 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6c 69 73 74 2e 6c /span>,.....};.....assert(list.l
26860 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 en.==.<span.class="tok-number">0
26880 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d </span>);......<span.class="tok-
268a0 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 69 6e 63 65 20 74 79 70 65 73 20 61 72 65 20 66 69 72 73 comment">//.Since.types.are.firs
268c0 74 20 63 6c 61 73 73 20 76 61 6c 75 65 73 20 79 6f 75 20 63 61 6e 20 69 6e 73 74 61 6e 74 69 61 t.class.values.you.can.instantia
268e0 74 65 20 74 68 65 20 74 79 70 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 te.the.type</span>.....<span.cla
26900 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 62 79 20 61 73 73 69 67 6e 69 6e 67 ss="tok-comment">//.by.assigning
26920 20 69 74 20 74 6f 20 61 20 76 61 72 69 61 62 6c 65 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 .it.to.a.variable:</span>.....<s
26940 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
26960 4c 69 73 74 4f 66 49 6e 74 73 20 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 3c 73 70 61 6e 20 63 6c ListOfInts.=.LinkedList(<span.cl
26980 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 ass="tok-type">i32</span>);.....
269a0 61 73 73 65 72 74 28 4c 69 73 74 4f 66 49 6e 74 73 20 3d 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 assert(ListOfInts.==.LinkedList(
269c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e <span.class="tok-type">i32</span
269e0 3e 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 >));......<span.class="tok-kw">v
26a00 61 72 3c 2f 73 70 61 6e 3e 20 6e 6f 64 65 20 3d 20 4c 69 73 74 4f 66 49 6e 74 73 2e 4e 6f 64 65 ar</span>.node.=.ListOfInts.Node
26a20 20 7b 0a 20 20 20 20 20 20 20 20 2e 70 72 65 76 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .{..........prev.=.<span.class="
26a40 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e tok-null">null</span>,..........
26a60 6e 65 78 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 next.=.<span.class="tok-null">nu
26a80 6c 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 64 61 74 61 20 3d 20 3c 73 70 61 6e ll</span>,..........data.=.<span
26aa0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 2c .class="tok-number">1234</span>,
26ac0 0a 20 20 20 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 .....};.....<span.class="tok-kw"
26ae0 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6c 69 73 74 32 20 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 3c >var</span>.list2.=.LinkedList(<
26b00 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">i32</span>
26b20 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 66 69 72 73 74 20 3d 20 26 61 6d 70 3b 6e 6f 64 65 2c 0a ).{..........first.=.&amp;node,.
26b40 20 20 20 20 20 20 20 20 2e 6c 61 73 74 20 3d 20 26 61 6d 70 3b 6e 6f 64 65 2c 0a 20 20 20 20 20 .........last.=.&amp;node,......
26b60 20 20 20 2e 6c 65 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 ....len.=.<span.class="tok-numbe
26b80 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6c r">1</span>,.....};.....assert(l
26ba0 69 73 74 32 2e 66 69 72 73 74 2e 3f 2e 64 61 74 61 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ist2.first.?.data.==.<span.class
26bc0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 ="tok-number">1234</span>);.}</c
26be0 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
26c00 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 74 72 75 63 74 73 2e 7a 69 67 0a 31 2f 34 20 74 65 l">$.zig.test.structs.zig.1/4.te
26c20 73 74 20 26 71 75 6f 74 3b 64 6f 74 20 70 72 6f 64 75 63 74 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a st.&quot;dot.product&quot;...OK.
26c40 32 2f 34 20 74 65 73 74 20 26 71 75 6f 74 3b 73 74 72 75 63 74 20 6e 61 6d 65 73 70 61 63 65 64 2/4.test.&quot;struct.namespaced
26c60 20 76 61 72 69 61 62 6c 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 33 2f 34 20 74 65 73 74 20 26 71 .variable&quot;...OK.3/4.test.&q
26c80 75 6f 74 3b 66 69 65 6c 64 20 70 61 72 65 6e 74 20 70 6f 69 6e 74 65 72 26 71 75 6f 74 3b 2e 2e uot;field.parent.pointer&quot;..
26ca0 2e 4f 4b 0a 34 2f 34 20 74 65 73 74 20 26 71 75 6f 74 3b 6c 69 6e 6b 65 64 20 6c 69 73 74 26 71 .OK.4/4.test.&quot;linked.list&q
26cc0 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f uot;...OK.All.tests.passed..</co
26ce0 64 65 3e 3c 2f 70 72 65 3e 0a 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 44 65 66 61 75 6c de></pre>.........<h2.id="Defaul
26d00 74 2d 46 69 65 6c 64 2d 56 61 6c 75 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 44 65 t-Field-Values"><a.href="#toc-De
26d20 66 61 75 6c 74 2d 46 69 65 6c 64 2d 56 61 6c 75 65 73 22 3e 44 65 66 61 75 6c 74 20 46 69 65 6c fault-Field-Values">Default.Fiel
26d40 64 20 56 61 6c 75 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 d.Values</a>.<a.class="hdr".href
26d60 3d 22 23 44 65 66 61 75 6c 74 2d 46 69 65 6c 64 2d 56 61 6c 75 65 73 22 3e c2 a7 3c 2f 61 3e 3c ="#Default-Field-Values">..</a><
26d80 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 61 63 68 20 73 74 72 75 63 /h2>........<p>.......Each.struc
26da0 74 20 66 69 65 6c 64 20 6d 61 79 20 68 61 76 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 t.field.may.have.an.expression.i
26dc0 6e 64 69 63 61 74 69 6e 67 20 74 68 65 20 64 65 66 61 75 6c 74 20 66 69 65 6c 64 20 76 61 6c 75 ndicating.the.default.field.valu
26de0 65 2e 20 53 75 63 68 20 65 78 70 72 65 73 73 69 6f 6e 73 0a 20 20 20 20 20 20 61 72 65 20 65 78 e..Such.expressions.......are.ex
26e00 65 63 75 74 65 64 20 61 74 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f ecuted.at.<a.href="#comptime">co
26e20 6d 70 74 69 6d 65 3c 2f 61 3e 2c 20 61 6e 64 20 61 6c 6c 6f 77 20 74 68 65 20 66 69 65 6c 64 20 mptime</a>,.and.allow.the.field.
26e40 74 6f 20 62 65 20 6f 6d 69 74 74 65 64 20 69 6e 20 61 20 73 74 72 75 63 74 20 6c 69 74 65 72 61 to.be.omitted.in.a.struct.litera
26e60 6c 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c l.expression:.......</p>.......<
26e80 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e p.class="file">test.zig</p><pre>
26ea0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
26ec0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 ok-kw">const</span>.Foo.=.<span.
26ee0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 class="tok-kw">struct</span>.{..
26f00 20 20 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 ...a:.<span.class="tok-type">i32
26f20 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 </span>.=.<span.class="tok-numbe
26f40 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 r">1234</span>,.....b:.<span.cla
26f60 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 ss="tok-type">i32</span>,.};..<s
26f80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c pan.class="tok-kw">test</span>.<
26fa0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 64 65 66 61 75 span.class="tok-str">&quot;defau
26fc0 6c 74 20 73 74 72 75 63 74 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 65 6c 64 73 26 lt.struct.initialization.fields&
26fe0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 quot;</span>.{.....<span.class="
27000 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 20 3d 20 46 6f 6f 7b 0a 20 20 tok-kw">const</span>.x.=.Foo{...
27020 20 20 20 20 20 20 2e 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 .......b.=.<span.class="tok-numb
27040 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 er">5</span>,.....};.....<span.c
27060 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 78 2e 61 20 2b 20 78 lass="tok-kw">if</span>.(x.a.+.x
27080 2e 62 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 .b.!=.<span.class="tok-number">1
270a0 32 33 39 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 239</span>).{.........<span.clas
270c0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 73 s="tok-builtin">@compileError</s
270e0 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
27100 3b 69 74 27 73 20 65 76 65 6e 20 63 6f 6d 70 74 69 6d 65 20 6b 6e 6f 77 6e 21 26 71 75 6f 74 3b ;it's.even.comptime.known!&quot;
27120 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 </span>);.....}.}</code></pre><p
27140 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
27160 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 64 65 66 61 75 6c t.test.zig.1/1.test.&quot;defaul
27180 74 20 73 74 72 75 63 74 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 65 6c 64 73 26 71 t.struct.initialization.fields&q
271a0 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f uot;...OK.All.tests.passed..</co
271c0 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d de></pre>................<h2.id=
271e0 22 65 78 74 65 72 6e 2d 73 74 72 75 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 65 78 "extern-struct"><a.href="#toc-ex
27200 74 65 72 6e 2d 73 74 72 75 63 74 22 3e 65 78 74 65 72 6e 20 73 74 72 75 63 74 3c 2f 61 3e 20 3c tern-struct">extern.struct</a>.<
27220 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 73 74 72 75 a.class="hdr".href="#extern-stru
27240 63 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e 20 3c 63 6f ct">..</a></h2>........<p>An.<co
27260 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
27280 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 kw">extern</span>.<span.class="t
272a0 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 ok-kw">struct</span></code>.has.
272c0 69 6e 2d 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 6d in-memory.layout.guaranteed.to.m
272e0 61 74 63 68 20 74 68 65 0a 20 20 20 20 20 20 43 20 41 42 49 20 66 6f 72 20 74 68 65 20 74 61 72 atch.the.......C.ABI.for.the.tar
27300 67 65 74 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 6b 69 6e 64 20 6f 66 20 73 get.</p>.......<p>This.kind.of.s
27320 74 72 75 63 74 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 66 6f 72 20 63 6f truct.should.only.be.used.for.co
27340 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 74 68 65 20 43 20 41 42 49 2e 20 45 76 65 72 mpatibility.with.the.C.ABI..Ever
27360 79 20 6f 74 68 65 72 0a 20 20 20 20 20 20 75 73 65 20 63 61 73 65 20 73 68 6f 75 6c 64 20 62 65 y.other.......use.case.should.be
27380 20 73 6f 6c 76 65 64 20 77 69 74 68 20 3c 61 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 73 74 .solved.with.<a.href="#packed-st
273a0 72 75 63 74 22 3e 70 61 63 6b 65 64 20 73 74 72 75 63 74 3c 2f 61 3e 20 6f 72 20 6e 6f 72 6d 61 ruct">packed.struct</a>.or.norma
273c0 6c 20 3c 61 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 2e 3c l.<a.href="#struct">struct</a>.<
273e0 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c /p>.......<p>See.also:</p><ul>.<
27400 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 75 6e 69 6f 6e 22 3e 65 78 74 65 72 li><a.href="#extern-union">exter
27420 6e 20 75 6e 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 n.union</a></li>.<li><a.href="#e
27440 78 74 65 72 6e 2d 65 6e 75 6d 22 3e 65 78 74 65 72 6e 20 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e xtern-enum">extern.enum</a></li>
27460 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 70 61 .</ul>................<h2.id="pa
27480 63 6b 65 64 2d 73 74 72 75 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 70 61 63 6b 65 cked-struct"><a.href="#toc-packe
274a0 64 2d 73 74 72 75 63 74 22 3e 70 61 63 6b 65 64 20 73 74 72 75 63 74 3c 2f 61 3e 20 3c 61 20 63 d-struct">packed.struct</a>.<a.c
274c0 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 73 74 72 75 63 74 22 lass="hdr".href="#packed-struct"
274e0 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 6e >..</a></h2>........<p>.......Un
27500 6c 69 6b 65 20 6e 6f 72 6d 61 6c 20 73 74 72 75 63 74 73 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 like.normal.structs,.<code.class
27520 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b ="zig"><span.class="tok-kw">pack
27540 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 73 74 72 75 63 74 73 20 68 61 76 65 20 67 75 ed</span></code>.structs.have.gu
27560 61 72 61 6e 74 65 65 64 20 69 6e 2d 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 3a 0a 20 20 20 20 20 aranteed.in-memory.layout:......
27580 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 69 65 .</p>.......<ul>.........<li>Fie
275a0 6c 64 73 20 72 65 6d 61 69 6e 20 69 6e 20 74 68 65 20 6f 72 64 65 72 20 64 65 63 6c 61 72 65 64 lds.remain.in.the.order.declared
275c0 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 65 72 65 20 69 73 20 6e 6f 20 70 .</li>.........<li>There.is.no.p
275e0 61 64 64 69 6e 67 20 62 65 74 77 65 65 6e 20 66 69 65 6c 64 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 adding.between.fields.</li>.....
27600 20 20 20 20 3c 6c 69 3e 5a 69 67 20 73 75 70 70 6f 72 74 73 20 61 72 62 69 74 72 61 72 79 20 77 ....<li>Zig.supports.arbitrary.w
27620 69 64 74 68 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 idth.<a.href="#Integers">Integer
27640 73 3c 2f 61 3e 20 61 6e 64 20 61 6c 74 68 6f 75 67 68 20 6e 6f 72 6d 61 6c 6c 79 2c 20 69 6e 74 s</a>.and.although.normally,.int
27660 65 67 65 72 73 20 77 69 74 68 20 66 65 77 65 72 0a 20 20 20 20 20 20 20 20 74 68 61 6e 20 38 20 egers.with.fewer.........than.8.
27680 62 69 74 73 20 77 69 6c 6c 20 73 74 69 6c 6c 20 75 73 65 20 31 20 62 79 74 65 20 6f 66 20 6d 65 bits.will.still.use.1.byte.of.me
276a0 6d 6f 72 79 2c 20 69 6e 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 73 2c 20 74 68 65 79 20 75 73 mory,.in.packed.structs,.they.us
276c0 65 0a 20 20 20 20 20 20 20 20 65 78 61 63 74 6c 79 20 74 68 65 69 72 20 62 69 74 20 77 69 64 74 e.........exactly.their.bit.widt
276e0 68 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f h..........</li>.........<li><co
27700 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
27720 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 69 65 6c 64 73 20 type">bool</span></code>.fields.
27740 75 73 65 20 65 78 61 63 74 6c 79 20 31 20 62 69 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 use.exactly.1.bit.</li>.........
27760 3c 6c 69 3e 41 20 3c 61 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 65 6e 75 6d 22 3e 70 61 63 <li>A.<a.href="#packed-enum">pac
27780 6b 65 64 20 65 6e 75 6d 3c 2f 61 3e 20 66 69 65 6c 64 20 75 73 65 73 20 65 78 61 63 74 6c 79 20 ked.enum</a>.field.uses.exactly.
277a0 74 68 65 20 62 69 74 20 77 69 64 74 68 20 6f 66 20 69 74 73 20 69 6e 74 65 67 65 72 20 74 61 67 the.bit.width.of.its.integer.tag
277c0 20 74 79 70 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 20 3c 61 20 68 72 65 .type.</li>.........<li>A.<a.hre
277e0 66 3d 22 23 70 61 63 6b 65 64 2d 75 6e 69 6f 6e 22 3e 70 61 63 6b 65 64 20 75 6e 69 6f 6e 3c 2f f="#packed-union">packed.union</
27800 61 3e 20 66 69 65 6c 64 20 75 73 65 73 20 65 78 61 63 74 6c 79 20 74 68 65 20 62 69 74 20 77 69 a>.field.uses.exactly.the.bit.wi
27820 64 74 68 20 6f 66 20 74 68 65 20 75 6e 69 6f 6e 20 66 69 65 6c 64 20 77 69 74 68 0a 20 20 20 20 dth.of.the.union.field.with.....
27840 20 20 20 20 74 68 65 20 6c 61 72 67 65 73 74 20 62 69 74 20 77 69 64 74 68 2e 3c 2f 6c 69 3e 0a ....the.largest.bit.width.</li>.
27860 20 20 20 20 20 20 20 20 3c 6c 69 3e 4e 6f 6e 2d 41 42 49 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c ........<li>Non-ABI-aligned.fiel
27880 64 73 20 61 72 65 20 70 61 63 6b 65 64 20 69 6e 74 6f 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 ds.are.packed.into.the.smallest.
278a0 70 6f 73 73 69 62 6c 65 0a 20 20 20 20 20 20 20 20 41 42 49 2d 61 6c 69 67 6e 65 64 20 69 6e 74 possible.........ABI-aligned.int
278c0 65 67 65 72 73 20 69 6e 20 61 63 63 6f 72 64 61 6e 63 65 20 77 69 74 68 20 74 68 65 20 74 61 72 egers.in.accordance.with.the.tar
278e0 67 65 74 20 65 6e 64 69 61 6e 6e 65 73 73 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 get.endianness..........</li>...
27900 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 6d ....</ul>.......<p>.......This.m
27920 65 61 6e 73 20 74 68 61 74 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 eans.that.a.<code.class="zig"><s
27940 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e 3e pan.class="tok-kw">packed</span>
27960 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 .<span.class="tok-kw">struct</sp
27980 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 70 61 72 74 69 63 69 70 61 74 65 0a 20 20 20 20 20 an></code>.can.participate......
279a0 20 69 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 62 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 .in.a.<a.href="#bitCast">@bitCas
279c0 74 3c 2f 61 3e 20 6f 72 20 61 20 3c 61 20 68 72 65 66 3d 22 23 70 74 72 43 61 73 74 22 3e 40 70 t</a>.or.a.<a.href="#ptrCast">@p
279e0 74 72 43 61 73 74 3c 2f 61 3e 20 74 6f 20 72 65 69 6e 74 65 72 70 72 65 74 20 6d 65 6d 6f 72 79 trCast</a>.to.reinterpret.memory
27a00 2e 0a 20 20 20 20 20 20 54 68 69 73 20 65 76 65 6e 20 77 6f 72 6b 73 20 61 74 20 3c 61 20 68 72 ........This.even.works.at.<a.hr
27a20 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3a 0a 20 20 20 ef="#comptime">comptime</a>:....
27a40 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ...</p>.......<p.class="file">te
27a60 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 st.zig</p><pre><code.class="zig"
27a80 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 ><span.class="tok-kw">const</spa
27aa0 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 n>.std.=.<span.class="tok-builti
27ac0 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">@import</span>(<span.class="t
27ae0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b ok-str">&quot;std&quot;</span>);
27b00 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
27b20 6e 3e 20 62 75 69 6c 74 69 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 n>.builtin.=.<span.class="tok-bu
27b40 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 iltin">@import</span>(<span.clas
27b60 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c s="tok-str">&quot;builtin&quot;<
27b80 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f /span>);.<span.class="tok-kw">co
27ba0 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 nst</span>.assert.=.std.debug.as
27bc0 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 sert;..<span.class="tok-kw">cons
27be0 74 3c 2f 73 70 61 6e 3e 20 46 75 6c 6c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b t</span>.Full.=.<span.class="tok
27c00 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -kw">packed</span>.<span.class="
27c20 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 6e 75 6d 62 tok-kw">struct</span>.{.....numb
27c40 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f er:.<span.class="tok-type">u16</
27c60 73 70 61 6e 3e 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 span>,.};.<span.class="tok-kw">c
27c80 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 44 69 76 69 64 65 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 onst</span>.Divided.=.<span.clas
27ca0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 s="tok-kw">packed</span>.<span.c
27cc0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-kw">struct</span>.{...
27ce0 20 20 68 61 6c 66 31 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ..half1:.<span.class="tok-type">
27d00 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 71 75 61 72 74 65 72 33 3a 20 3c 73 70 61 6e 20 63 u8</span>,.....quarter3:.<span.c
27d20 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 71 lass="tok-type">u4</span>,.....q
27d40 75 61 72 74 65 72 34 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e uarter4:.<span.class="tok-type">
27d60 75 34 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d u4</span>,.};..<span.class="tok-
27d80 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">test</span>.<span.class="tok
27da0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 62 69 74 43 61 73 74 20 62 65 74 77 65 65 6e 20 70 61 63 -str">&quot;@bitCast.between.pac
27dc0 6b 65 64 20 73 74 72 75 63 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 64 ked.structs&quot;</span>.{.....d
27de0 6f 54 68 65 54 65 73 74 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b oTheTest();.....<span.class="tok
27e00 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 64 6f 54 68 65 54 65 73 74 28 29 -kw">comptime</span>.doTheTest()
27e20 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 ;.}..<span.class="tok-kw">fn</sp
27e40 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 6f 54 68 65 54 65 an>.<span.class="tok-fn">doTheTe
27e60 73 74 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 st</span>().<span.class="tok-typ
27e80 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 e">void</span>.{.....assert(<spa
27ea0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 n.class="tok-builtin">@sizeOf</s
27ec0 70 61 6e 3e 28 46 75 6c 6c 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e pan>(Full).==.<span.class="tok-n
27ee0 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 umber">2</span>);.....assert(<sp
27f00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f an.class="tok-builtin">@sizeOf</
27f20 73 70 61 6e 3e 28 44 69 76 69 64 65 64 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>(Divided).==.<span.class="t
27f40 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 ok-number">2</span>);.....<span.
27f60 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 75 6c 6c 20 3d class="tok-kw">var</span>.full.=
27f80 20 46 75 6c 6c 7b 20 2e 6e 75 6d 62 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .Full{..number.=.<span.class="to
27fa0 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 33 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c k-number">0x1234</span>.};.....<
27fc0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 64 span.class="tok-kw">var</span>.d
27fe0 69 76 69 64 65 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ivided.=.<span.class="tok-builti
28000 6e 22 3e 40 62 69 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 44 69 76 69 64 65 64 2c 20 66 75 6c 6c n">@bitCast</span>(Divided,.full
28020 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 );.....<span.class="tok-kw">swit
28040 63 68 3c 2f 73 70 61 6e 3e 20 28 62 75 69 6c 74 69 6e 2e 65 6e 64 69 61 6e 29 20 7b 0a 20 20 20 ch</span>.(builtin.endian).{....
28060 20 20 20 20 20 2e 42 69 67 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 73 ......Big.=&gt;.{.............as
28080 73 65 72 74 28 64 69 76 69 64 65 64 2e 68 61 6c 66 31 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 sert(divided.half1.==.<span.clas
280a0 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 s="tok-number">0x12</span>);....
280c0 20 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 64 69 76 69 64 65 64 2e 71 75 61 72 74 65 72 33 .........assert(divided.quarter3
280e0 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 33 .==.<span.class="tok-number">0x3
28100 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 64 69 76 </span>);.............assert(div
28120 69 64 65 64 2e 71 75 61 72 74 65 72 34 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ided.quarter4.==.<span.class="to
28140 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 7d k-number">0x4</span>);.........}
28160 2c 0a 20 20 20 20 20 20 20 20 2e 4c 69 74 74 6c 65 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 ,..........Little.=&gt;.{.......
28180 20 20 20 20 20 20 61 73 73 65 72 74 28 64 69 76 69 64 65 64 2e 68 61 6c 66 31 20 3d 3d 20 3c 73 ......assert(divided.half1.==.<s
281a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 33 34 3c 2f 73 70 61 pan.class="tok-number">0x34</spa
281c0 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 64 69 76 69 64 65 64 2e n>);.............assert(divided.
281e0 71 75 61 72 74 65 72 33 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d quarter3.==.<span.class="tok-num
28200 62 65 72 22 3e 30 78 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 73 ber">0x2</span>);.............as
28220 73 65 72 74 28 64 69 76 69 64 65 64 2e 71 75 61 72 74 65 72 34 20 3d 3d 20 3c 73 70 61 6e 20 63 sert(divided.quarter4.==.<span.c
28240 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 lass="tok-number">0x1</span>);..
28260 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 .......},.....}.}</code></pre><p
28280 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
282a0 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 40 62 69 74 43 61 t.test.zig.1/1.test.&quot;@bitCa
282c0 73 74 20 62 65 74 77 65 65 6e 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 73 26 71 75 6f 74 3b 2e st.between.packed.structs&quot;.
282e0 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f ..OK.All.tests.passed..</code></
28300 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 61 6c 6c 6f 77 73 pre>........<p>.......Zig.allows
28320 20 74 68 65 20 61 64 64 72 65 73 73 20 74 6f 20 62 65 20 74 61 6b 65 6e 20 6f 66 20 61 20 6e 6f .the.address.to.be.taken.of.a.no
28340 6e 2d 62 79 74 65 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 3a 0a 20 20 20 20 20 20 3c 2f 70 3e n-byte-aligned.field:.......</p>
28360 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c .......<p.class="file">test.zig<
28380 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 /p><pre><code.class="zig"><span.
283a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 class="tok-kw">const</span>.std.
283c0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 =.<span.class="tok-builtin">@imp
283e0 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 ort</span>(<span.class="tok-str"
28400 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 >&quot;std&quot;</span>);.<span.
28420 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 class="tok-kw">const</span>.asse
28440 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c rt.=.std.debug.assert;..<span.cl
28460 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 42 69 74 46 69 65 ass="tok-kw">const</span>.BitFie
28480 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 ld.=.<span.class="tok-kw">packed
284a0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 </span>.<span.class="tok-kw">str
284c0 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d uct</span>.{.....a:.<span.class=
284e0 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 62 3a 20 3c 73 70 "tok-type">u3</span>,.....b:.<sp
28500 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 2c 0a 20 an.class="tok-type">u3</span>,..
28520 20 20 20 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 3c ...c:.<span.class="tok-type">u2<
28540 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>,.};..<span.class="tok-kw"
28560 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 6f 6f 20 3d 20 42 69 74 46 69 65 6c 64 7b 0a 20 20 20 20 >var</span>.foo.=.BitField{.....
28580 2e 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c .a.=.<span.class="tok-number">1<
285a0 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>,......b.=.<span.class="to
285c0 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 63 20 3d 20 3c 73 70 k-number">2</span>,......c.=.<sp
285e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 0a an.class="tok-number">3</span>,.
28600 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 };..<span.class="tok-kw">test</s
28620 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
28640 3b 70 6f 69 6e 74 65 72 20 74 6f 20 6e 6f 6e 2d 62 79 74 65 2d 61 6c 69 67 6e 65 64 20 66 69 65 ;pointer.to.non-byte-aligned.fie
28660 6c 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ld&quot;</span>.{.....<span.clas
28680 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 26 61 s="tok-kw">const</span>.ptr.=.&a
286a0 6d 70 3b 66 6f 6f 2e 62 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 74 72 2e 2a 20 3d 3d 20 3c 73 mp;foo.b;.....assert(ptr.*.==.<s
286c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">2</span>)
286e0 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ;.}</code></pre><pre><code.class
28700 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 ="shell">$.zig.test.test.zig.1/1
28720 20 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 74 6f 20 6e 6f 6e 2d 62 79 74 65 2d .test.&quot;pointer.to.non-byte-
28740 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 aligned.field&quot;...OK.All.tes
28760 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 ts.passed..</code></pre>........
28780 3c 70 3e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 <p>.......However,.the.pointer.t
287a0 6f 20 61 20 6e 6f 6e 2d 62 79 74 65 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 20 68 61 73 20 73 o.a.non-byte-aligned.field.has.s
287c0 70 65 63 69 61 6c 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 63 61 6e 6e 6f 74 0a 20 20 20 pecial.properties.and.cannot....
287e0 20 20 20 62 65 20 70 61 73 73 65 64 20 77 68 65 6e 20 61 20 6e 6f 72 6d 61 6c 20 70 6f 69 6e 74 ...be.passed.when.a.normal.point
28800 65 72 20 69 73 20 65 78 70 65 63 74 65 64 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 er.is.expected:.......</p>......
28820 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 .<p.class="file">test.zig</p><pr
28840 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
28860 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 "tok-kw">const</span>.std.=.<spa
28880 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 n.class="tok-builtin">@import</s
288a0 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
288c0 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ;std&quot;</span>);.<span.class=
288e0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 "tok-kw">const</span>.assert.=.s
28900 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 td.debug.assert;..<span.class="t
28920 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 42 69 74 46 69 65 6c 64 20 3d 20 3c ok-kw">const</span>.BitField.=.<
28940 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e span.class="tok-kw">packed</span
28960 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 >.<span.class="tok-kw">struct</s
28980 70 61 6e 3e 20 7b 0a 20 20 20 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 pan>.{.....a:.<span.class="tok-t
289a0 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 ype">u3</span>,.....b:.<span.cla
289c0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 63 3a 20 ss="tok-type">u3</span>,.....c:.
289e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 3c 2f 73 70 61 6e 3e <span.class="tok-type">u2</span>
28a00 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f ,.};..<span.class="tok-kw">var</
28a20 73 70 61 6e 3e 20 62 69 74 5f 66 69 65 6c 64 20 3d 20 42 69 74 46 69 65 6c 64 7b 0a 20 20 20 20 span>.bit_field.=.BitField{.....
28a40 2e 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c .a.=.<span.class="tok-number">1<
28a60 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>,......b.=.<span.class="to
28a80 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 63 20 3d 20 3c 73 70 k-number">2</span>,......c.=.<sp
28aa0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 0a an.class="tok-number">3</span>,.
28ac0 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 };..<span.class="tok-kw">test</s
28ae0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
28b00 3b 70 6f 69 6e 74 65 72 20 74 6f 20 6e 6f 6e 2d 62 69 74 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c ;pointer.to.non-bit-aligned.fiel
28b20 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 62 61 72 28 d&quot;</span>.{.....assert(bar(
28b40 26 61 6d 70 3b 62 69 74 5f 66 69 65 6c 64 2e 62 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 &amp;bit_field.b).==.<span.class
28b60 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 ="tok-number">2</span>);.}..<spa
28b80 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e n.class="tok-kw">fn</span>.<span
28ba0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 72 3c 2f 73 70 61 6e 3e 28 78 3a 20 2a 3c .class="tok-fn">bar</span>(x:.*<
28bc0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
28be0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e .<span.class="tok-type">u3</span
28c00 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 >).<span.class="tok-type">u3</sp
28c20 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 an>.{.....<span.class="tok-kw">r
28c40 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 78 2e 2a 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e eturn</span>.x.*;.}</code></pre>
28c60 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 <pre><code.class="shell">$.zig.t
28c80 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e est.test.zig.<span.class="t0_1">
28ca0 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 /home/andy/dev/zig/docgen_tmp/te
28cc0 73 74 2e 7a 69 67 3a 31 37 3a 32 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 st.zig:17:26:.</span><span.class
28ce0 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 ="t31_1">error:</span><span.clas
28d00 73 3d 22 74 30 5f 31 22 3e 20 65 78 70 65 63 74 65 64 20 74 79 70 65 20 27 2a 63 6f 6e 73 74 20 s="t0_1">.expected.type.'*const.
28d20 75 33 27 2c 20 66 6f 75 6e 64 20 27 2a 61 6c 69 67 6e 28 3a 33 3a 31 29 20 75 33 27 3c 2f 73 70 u3',.found.'*align(:3:1).u3'</sp
28d40 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 62 61 72 28 26 61 6d 70 3b 62 69 74 5f 66 69 65 6c an>.....assert(bar(&amp;bit_fiel
28d60 64 2e 62 29 20 3d 3d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.b).==.2);.....................
28d80 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e .....<span.class="t32_1">^</span
28da0 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f >.<span.class="t0_1">/home/andy/
28dc0 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 37 3a 31 dev/zig/docgen_tmp/test.zig:17:1
28de0 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 5:.</span><span.class="t36_1">no
28e00 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 te:</span><span.class="t0_1">.re
28e20 66 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 ferenced.here</span>.....assert(
28e40 62 61 72 28 26 61 6d 70 3b 62 69 74 5f 66 69 65 6c 64 2e 62 29 20 3d 3d 20 32 29 3b 0a 20 20 20 bar(&amp;bit_field.b).==.2);....
28e60 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e ...........<span.class="t32_1">^
28e80 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e </span>.</code></pre>........<p>
28ea0 0a 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 74 68 65 20 66 75 6e 63 74 69 6f .......In.this.case,.the.functio
28ec0 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 61 72 3c 2f 63 6f 64 65 3e 20 63 n.<code.class="zig">bar</code>.c
28ee0 61 6e 6e 6f 74 20 62 65 20 63 61 6c 6c 65 64 20 62 65 63 75 73 65 20 74 68 65 20 70 6f 69 6e 74 annot.be.called.becuse.the.point
28f00 65 72 0a 20 20 20 20 20 20 74 6f 20 74 68 65 20 6e 6f 6e 2d 41 42 49 2d 61 6c 69 67 6e 65 64 20 er.......to.the.non-ABI-aligned.
28f20 66 69 65 6c 64 20 6d 65 6e 74 69 6f 6e 73 20 74 68 65 20 62 69 74 20 6f 66 66 73 65 74 2c 20 62 field.mentions.the.bit.offset,.b
28f40 75 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 65 63 74 73 20 61 6e 20 41 42 49 2d 61 ut.the.function.expects.an.ABI-a
28f60 6c 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 ligned.pointer........</p>......
28f80 20 3c 70 3e 0a 20 20 20 20 20 20 50 6f 69 6e 74 65 72 73 20 74 6f 20 6e 6f 6e 2d 41 42 49 2d 61 .<p>.......Pointers.to.non-ABI-a
28fa0 6c 69 67 6e 65 64 20 66 69 65 6c 64 73 20 73 68 61 72 65 20 74 68 65 20 73 61 6d 65 20 61 64 64 ligned.fields.share.the.same.add
28fc0 72 65 73 73 20 61 73 20 74 68 65 20 6f 74 68 65 72 20 66 69 65 6c 64 73 20 77 69 74 68 69 6e 20 ress.as.the.other.fields.within.
28fe0 74 68 65 69 72 20 68 6f 73 74 20 69 6e 74 65 67 65 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 their.host.integer:.......</p>..
29000 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 .....<p.class="file">test.zig</p
29020 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ><pre><code.class="zig"><span.cl
29040 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 ass="tok-kw">const</span>.std.=.
29060 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
29080 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
290a0 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c quot;std&quot;</span>);.<span.cl
290c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 ass="tok-kw">const</span>.assert
290e0 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 .=.std.debug.assert;..<span.clas
29100 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 42 69 74 46 69 65 6c 64 s="tok-kw">const</span>.BitField
29120 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f .=.<span.class="tok-kw">packed</
29140 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 span>.<span.class="tok-kw">struc
29160 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t</span>.{.....a:.<span.class="t
29180 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 62 3a 20 3c 73 70 61 6e ok-type">u3</span>,.....b:.<span
291a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 .class="tok-type">u3</span>,....
291c0 20 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 3c 2f 73 .c:.<span.class="tok-type">u2</s
291e0 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 pan>,.};..<span.class="tok-kw">v
29200 61 72 3c 2f 73 70 61 6e 3e 20 62 69 74 5f 66 69 65 6c 64 20 3d 20 42 69 74 46 69 65 6c 64 7b 0a ar</span>.bit_field.=.BitField{.
29220 20 20 20 20 2e 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 .....a.=.<span.class="tok-number
29240 22 3e 31 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">1</span>,......b.=.<span.class
29260 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 63 20 3d ="tok-number">2</span>,......c.=
29280 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 .<span.class="tok-number">3</spa
292a0 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 n>,.};..<span.class="tok-kw">tes
292c0 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>.<span.class="tok-str">&
292e0 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 74 6f 20 6e 6f 6e 2d 62 69 74 2d 61 6c 69 67 6e 65 64 20 quot;pointer.to.non-bit-aligned.
29300 66 69 65 6c 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 field&quot;</span>.{.....assert(
29320 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 54 6f <span.class="tok-builtin">@ptrTo
29340 49 6e 74 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 62 69 74 5f 66 69 65 6c 64 2e 61 29 20 3d 3d 20 Int</span>(&amp;bit_field.a).==.
29360 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 54 6f <span.class="tok-builtin">@ptrTo
29380 49 6e 74 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 62 69 74 5f 66 69 65 6c 64 2e 62 29 29 3b 0a 20 Int</span>(&amp;bit_field.b));..
293a0 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 ...assert(<span.class="tok-built
293c0 69 6e 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 62 69 74 5f 66 69 in">@ptrToInt</span>(&amp;bit_fi
293e0 65 6c 64 2e 61 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 eld.a).==.<span.class="tok-built
29400 69 6e 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 62 69 74 5f 66 69 in">@ptrToInt</span>(&amp;bit_fi
29420 65 6c 64 2e 63 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 eld.c));.}</code></pre><pre><cod
29440 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e e.class="shell">$.zig.test.test.
29460 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 74 6f 20 6e 6f zig.1/1.test.&quot;pointer.to.no
29480 6e 2d 62 69 74 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 n-bit-aligned.field&quot;...OK.A
294a0 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a ll.tests.passed..</code></pre>..
294c0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 6f 62 73 65 ......<p>.......This.can.be.obse
294e0 72 76 65 64 20 77 69 74 68 20 3c 61 20 68 72 65 66 3d 22 23 62 69 74 4f 66 66 73 65 74 4f 66 22 rved.with.<a.href="#bitOffsetOf"
29500 3e 40 62 69 74 4f 66 66 73 65 74 4f 66 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 >@bitOffsetOf</a>.and.<a.href="#
29520 62 79 74 65 4f 66 66 73 65 74 4f 66 22 3e 62 79 74 65 4f 66 66 73 65 74 4f 66 3c 2f 61 3e 3a 0a byteOffsetOf">byteOffsetOf</a>:.
29540 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ......</p>.......<p.class="file"
29560 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a >test.zig</p><pre><code.class="z
29580 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f ig"><span.class="tok-kw">const</
295a0 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 span>.std.=.<span.class="tok-bui
295c0 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 ltin">@import</span>(<span.class
295e0 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e ="tok-str">&quot;std&quot;</span
29600 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f >);.<span.class="tok-kw">const</
29620 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b span>.assert.=.std.debug.assert;
29640 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
29660 61 6e 3e 20 42 69 74 46 69 65 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d an>.BitField.=.<span.class="tok-
29680 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 kw">packed</span>.<span.class="t
296a0 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 3a 20 3c 73 ok-kw">struct</span>.{.....a:.<s
296c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 2c 0a pan.class="tok-type">u3</span>,.
296e0 20 20 20 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 ....b:.<span.class="tok-type">u3
29700 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>,.....c:.<span.class="tok
29720 2d 74 79 70 65 22 3e 75 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 -type">u2</span>,.};..<span.clas
29740 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">test</span>.<span.cla
29760 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 74 6f 20 6e 6f ss="tok-str">&quot;pointer.to.no
29780 6e 2d 62 69 74 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e n-bit-aligned.field&quot;</span>
297a0 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 .{.....<span.class="tok-kw">comp
297c0 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 time</span>.{.........assert(<sp
297e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 69 74 4f 66 66 73 65 an.class="tok-builtin">@bitOffse
29800 74 4f 66 3c 2f 73 70 61 6e 3e 28 42 69 74 46 69 65 6c 64 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 tOf</span>(BitField,.<span.class
29820 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 ="tok-str">&quot;a&quot;</span>)
29840 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f .==.<span.class="tok-number">0</
29860 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 span>);.........assert(<span.cla
29880 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 69 74 4f 66 66 73 65 74 4f 66 3c 2f 73 ss="tok-builtin">@bitOffsetOf</s
298a0 70 61 6e 3e 28 42 69 74 46 69 65 6c 64 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pan>(BitField,.<span.class="tok-
298c0 73 74 72 22 3e 26 71 75 6f 74 3b 62 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 str">&quot;b&quot;</span>).==.<s
298e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">3</span>)
29900 3b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ;.........assert(<span.class="to
29920 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 69 74 4f 66 66 73 65 74 4f 66 3c 2f 73 70 61 6e 3e 28 42 k-builtin">@bitOffsetOf</span>(B
29940 69 74 46 69 65 6c 64 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 itField,.<span.class="tok-str">&
29960 71 75 6f 74 3b 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c quot;c&quot;</span>).==.<span.cl
29980 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 ass="tok-number">6</span>);.....
299a0 20 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 .....assert(<span.class="tok-bui
299c0 6c 74 69 6e 22 3e 40 62 79 74 65 4f 66 66 73 65 74 4f 66 3c 2f 73 70 61 6e 3e 28 42 69 74 46 69 ltin">@byteOffsetOf</span>(BitFi
299e0 65 6c 64 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 eld,.<span.class="tok-str">&quot
29a00 3b 61 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ;a&quot;</span>).==.<span.class=
29a20 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 "tok-number">0</span>);.........
29a40 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 assert(<span.class="tok-builtin"
29a60 3e 40 62 79 74 65 4f 66 66 73 65 74 4f 66 3c 2f 73 70 61 6e 3e 28 42 69 74 46 69 65 6c 64 2c 20 >@byteOffsetOf</span>(BitField,.
29a80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 26 71 75 <span.class="tok-str">&quot;b&qu
29aa0 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ot;</span>).==.<span.class="tok-
29ac0 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 number">0</span>);.........asser
29ae0 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 79 74 t(<span.class="tok-builtin">@byt
29b00 65 4f 66 66 73 65 74 4f 66 3c 2f 73 70 61 6e 3e 28 42 69 74 46 69 65 6c 64 2c 20 3c 73 70 61 6e eOffsetOf</span>(BitField,.<span
29b20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 26 71 75 6f 74 3b 3c 2f .class="tok-str">&quot;c&quot;</
29b40 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 span>).==.<span.class="tok-numbe
29b60 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 r">0</span>);.....}.}</code></pr
29b80 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 e><pre><code.class="shell">$.zig
29ba0 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 6f .test.test.zig.1/1.test.&quot;po
29bc0 69 6e 74 65 72 20 74 6f 20 6e 6f 6e 2d 62 69 74 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 26 71 inter.to.non-bit-aligned.field&q
29be0 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f uot;...OK.All.tests.passed..</co
29c00 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 61 63 6b 65 de></pre>........<p>.......Packe
29c20 64 20 73 74 72 75 63 74 73 20 68 61 76 65 20 31 2d 62 79 74 65 20 61 6c 69 67 6e 6d 65 6e 74 2e d.structs.have.1-byte.alignment.
29c40 20 48 6f 77 65 76 65 72 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 6e 20 6f 76 65 72 61 6c 69 67 .However.if.you.have.an.overalig
29c60 6e 65 64 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 2c 0a ned.pointer.to.a.packed.struct,.
29c80 20 20 20 20 20 20 5a 69 67 20 73 68 6f 75 6c 64 20 63 6f 72 72 65 63 74 6c 79 20 75 6e 64 65 72 ......Zig.should.correctly.under
29ca0 73 74 61 6e 64 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 20 6f 66 20 66 69 65 6c 64 73 2e 20 48 stand.the.alignment.of.fields..H
29cc0 6f 77 65 76 65 72 20 74 68 65 72 65 20 69 73 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 owever.there.is.......<a.href="h
29ce0 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 ttps://github.com/ziglang/zig/is
29d00 73 75 65 73 2f 31 39 39 34 22 3e 61 20 62 75 67 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e sues/1994">a.bug</a>:.......</p>
29d20 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c .......<p.class="file">test.zig<
29d40 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 /p><pre><code.class="zig"><span.
29d60 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 20 3d 20 class="tok-kw">const</span>.S.=.
29d80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 <span.class="tok-kw">packed</spa
29da0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f n>.<span.class="tok-kw">struct</
29dc0 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d span>.{.....a:.<span.class="tok-
29de0 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 62 3a 20 3c 73 70 61 6e 20 63 type">u32</span>,.....b:.<span.c
29e00 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 3c lass="tok-type">u32</span>,.};.<
29e20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">test</span>.
29e40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6f 76 65 72 <span.class="tok-str">&quot;over
29e60 61 6c 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 74 6f 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 aligned.pointer.to.packed.struct
29e80 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d &quot;</span>.{.....<span.class=
29ea0 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 6f 6f 3a 20 53 20 3c 73 70 61 6e "tok-kw">var</span>.foo:.S.<span
29ec0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 .class="tok-kw">align</span>(<sp
29ee0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 an.class="tok-number">4</span>).
29f00 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e =.<span.class="tok-null">undefin
29f20 65 64 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ed</span>;.....<span.class="tok-
29f40 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 kw">const</span>.ptr:.*<span.cla
29f60 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 ss="tok-kw">align</span>(<span.c
29f80 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 53 20 3d 20 lass="tok-number">4</span>).S.=.
29fa0 26 61 6d 70 3b 66 6f 6f 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b &amp;foo;.....<span.class="tok-k
29fc0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 5f 74 6f 5f 62 3a 20 2a 3c 73 70 61 6e w">const</span>.ptr_to_b:.*<span
29fe0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 .class="tok-type">u32</span>.=.&
2a000 61 6d 70 3b 70 74 72 2e 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 amp;ptr.b;.}</code></pre><pre><c
2a020 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
2a040 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 t.zig.<span.class="t0_1">/home/a
2a060 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a ndy/dev/zig/docgen_tmp/test.zig:
2a080 38 3a 33 32 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 8:32:.</span><span.class="t31_1"
2a0a0 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 >error:</span><span.class="t0_1"
2a0c0 3e 20 65 78 70 65 63 74 65 64 20 74 79 70 65 20 27 2a 75 33 32 27 2c 20 66 6f 75 6e 64 20 27 2a >.expected.type.'*u32',.found.'*
2a0e0 61 6c 69 67 6e 28 31 29 20 75 33 32 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 70 align(1).u32'</span>.....const.p
2a100 74 72 5f 74 6f 5f 62 3a 20 2a 75 33 32 20 3d 20 26 61 6d 70 3b 70 74 72 2e 62 3b 0a 20 20 20 20 tr_to_b:.*u32.=.&amp;ptr.b;.....
2a120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e ...........................<span
2a140 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c .class="t32_1">^</span>.<span.cl
2a160 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f ass="t0_1">/home/andy/dev/zig/do
2a180 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 38 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 cgen_tmp/test.zig:8:5:.</span><s
2a1a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 pan.class="t36_1">note:</span><s
2a1c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 68 65 72 pan.class="t0_1">.referenced.her
2a1e0 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 5f 74 6f 5f 62 3a 20 2a 75 33 e</span>.....const.ptr_to_b:.*u3
2a200 32 20 3d 20 26 61 6d 70 3b 70 74 72 2e 62 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 2.=.&amp;ptr.b;.....<span.class=
2a220 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a "t32_1">^</span>.</code></pre>..
2a240 20 20 20 20 20 20 3c 70 3e 57 68 65 6e 20 74 68 69 73 20 62 75 67 20 69 73 20 66 69 78 65 64 2c ......<p>When.this.bug.is.fixed,
2a260 20 74 68 65 20 61 62 6f 76 65 20 74 65 73 74 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 .the.above.test.in.the.documenta
2a280 74 69 6f 6e 20 77 69 6c 6c 20 75 6e 65 78 70 65 63 74 65 64 6c 79 20 70 61 73 73 2c 20 77 68 69 tion.will.unexpectedly.pass,.whi
2a2a0 63 68 20 77 69 6c 6c 0a 20 20 20 20 20 20 63 61 75 73 65 20 74 68 65 20 74 65 73 74 20 73 75 69 ch.will.......cause.the.test.sui
2a2c0 74 65 20 74 6f 20 66 61 69 6c 2c 20 6e 6f 74 69 66 79 69 6e 67 20 74 68 65 20 62 75 67 20 66 69 te.to.fail,.notifying.the.bug.fi
2a2e0 78 65 72 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 73 65 20 64 6f 63 73 2e 0a 20 20 20 20 20 20 xer.to.update.these.docs........
2a300 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 27 73 20 61 6c 73 6f 0a 20 </p>.......<p>.......It's.also..
2a320 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d .....<a.href="https://github.com
2a340 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 31 35 31 32 22 3e 70 6c 61 6e 6e 65 /ziglang/zig/issues/1512">planne
2a360 64 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 73 65 74 20 61 6c 69 67 6e 6d 65 6e 74 20 6f 66 d.to.be.able.to.set.alignment.of
2a380 20 73 74 72 75 63 74 20 66 69 65 6c 64 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 .struct.fields</a>........</p>..
2a3a0 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 69 6e 67 20 70 61 63 6b 65 64 20 73 74 72 75 .....<p>.......Using.packed.stru
2a3c0 63 74 73 20 77 69 74 68 20 3c 61 20 68 72 65 66 3d 22 23 76 6f 6c 61 74 69 6c 65 22 3e 76 6f 6c cts.with.<a.href="#volatile">vol
2a3e0 61 74 69 6c 65 3c 2f 61 3e 20 69 73 20 70 72 6f 62 6c 65 6d 61 74 69 63 2c 20 61 6e 64 20 6d 61 atile</a>.is.problematic,.and.ma
2a400 79 20 62 65 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 6e 20 74 68 65 20 66 75 74 75 y.be.a.compile.error.in.the.futu
2a420 72 65 2e 0a 20 20 20 20 20 20 46 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 69 73 20 73 75 re........For.details.on.this.su
2a440 62 73 63 72 69 62 65 20 74 6f 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a bscribe.to.......<a.href="https:
2a460 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f //github.com/ziglang/zig/issues/
2a480 31 37 36 31 22 3e 74 68 69 73 20 69 73 73 75 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 54 4f 44 4f 1761">this.issue</a>........TODO
2a4a0 20 75 70 64 61 74 65 20 74 68 65 73 65 20 64 6f 63 73 20 77 69 74 68 20 61 20 72 65 63 6f 6d 6d .update.these.docs.with.a.recomm
2a4c0 65 6e 64 61 74 69 6f 6e 20 6f 6e 20 68 6f 77 20 74 6f 20 75 73 65 20 70 61 63 6b 65 64 20 73 74 endation.on.how.to.use.packed.st
2a4e0 72 75 63 74 73 20 77 69 74 68 20 4d 4d 49 4f 0a 20 20 20 20 20 20 28 74 68 65 20 75 73 65 20 63 ructs.with.MMIO.......(the.use.c
2a500 61 73 65 20 66 6f 72 20 76 6f 6c 61 74 69 6c 65 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 73 29 ase.for.volatile.packed.structs)
2a520 20 6f 6e 63 65 20 74 68 69 73 20 69 73 73 75 65 20 69 73 20 72 65 73 6f 6c 76 65 64 2e 0a 20 20 .once.this.issue.is.resolved....
2a540 20 20 20 20 44 6f 6e 27 74 20 77 6f 72 72 79 2c 20 74 68 65 72 65 20 77 69 6c 6c 20 62 65 20 61 ....Don't.worry,.there.will.be.a
2a560 20 67 6f 6f 64 20 73 6f 6c 75 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 20 75 73 65 20 63 61 73 65 .good.solution.for.this.use.case
2a580 20 69 6e 20 7a 69 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 .in.zig........</p>.............
2a5a0 20 3c 68 32 20 69 64 3d 22 73 74 72 75 63 74 2d 4e 61 6d 69 6e 67 22 3e 3c 61 20 68 72 65 66 3d .<h2.id="struct-Naming"><a.href=
2a5c0 22 23 74 6f 63 2d 73 74 72 75 63 74 2d 4e 61 6d 69 6e 67 22 3e 73 74 72 75 63 74 20 4e 61 6d 69 "#toc-struct-Naming">struct.Nami
2a5e0 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 74 72 ng</a>.<a.class="hdr".href="#str
2a600 75 63 74 2d 4e 61 6d 69 6e 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c uct-Naming">..</a></h2>........<
2a620 70 3e 53 69 6e 63 65 20 61 6c 6c 20 73 74 72 75 63 74 73 20 61 72 65 20 61 6e 6f 6e 79 6d 6f 75 p>Since.all.structs.are.anonymou
2a640 73 2c 20 5a 69 67 20 69 6e 66 65 72 73 20 74 68 65 20 74 79 70 65 20 6e 61 6d 65 20 62 61 73 65 s,.Zig.infers.the.type.name.base
2a660 64 20 6f 6e 20 61 20 66 65 77 20 72 75 6c 65 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e d.on.a.few.rules.</p>.......<ul>
2a680 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 74 68 65 20 73 74 72 75 63 74 20 69 73 20 ...........<li>If.the.struct.is.
2a6a0 69 6e 20 74 68 65 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e in.the.initialization.expression
2a6c0 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 2c 20 69 74 20 67 65 74 73 20 6e 61 6d 65 64 20 61 66 .of.a.variable,.it.gets.named.af
2a6e0 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 74 68 61 74 20 76 61 72 69 61 62 6c 65 2e 3c 2f 6c 69 ter...........that.variable.</li
2a700 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 74 68 65 20 73 74 72 75 63 74 20 69 73 >...........<li>If.the.struct.is
2a720 20 69 6e 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 .in.the.<code.class="zig"><span.
2a740 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f class="tok-kw">return</span></co
2a760 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 69 74 20 67 65 74 73 20 6e 61 6d 65 64 20 61 66 de>.expression,.it.gets.named.af
2a780 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 74 20 69 73 ter...........the.function.it.is
2a7a0 20 72 65 74 75 72 6e 69 6e 67 20 66 72 6f 6d 2c 20 77 69 74 68 20 74 68 65 20 70 61 72 61 6d 65 .returning.from,.with.the.parame
2a7c0 74 65 72 20 76 61 6c 75 65 73 20 73 65 72 69 61 6c 69 7a 65 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 ter.values.serialized.</li>.....
2a7e0 20 20 20 20 20 20 3c 6c 69 3e 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 73 74 72 75 63 74 20 ......<li>Otherwise,.the.struct.
2a800 67 65 74 73 20 61 20 6e 61 6d 65 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 28 61 6e 6f 6e 79 gets.a.name.such.as.<code>(anony
2a820 6d 6f 75 73 20 73 74 72 75 63 74 20 61 74 20 66 69 6c 65 2e 7a 69 67 3a 37 3a 33 38 29 3c 2f 63 mous.struct.at.file.zig:7:38)</c
2a840 6f 64 65 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 20 ode>.</li>.......</ul>.......<p.
2a860 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 74 72 75 63 74 5f 6e 61 6d 65 2e 7a 69 67 3c 2f 70 3e class="file">struct_name.zig</p>
2a880 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
2a8a0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c ss="tok-kw">const</span>.std.=.<
2a8c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
2a8e0 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
2a900 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c uot;std&quot;</span>);..<span.cl
2a920 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ass="tok-kw">pub</span>.<span.cl
2a940 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
2a960 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 ss="tok-fn">main</span>().<span.
2a980 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 class="tok-type">void</span>.{..
2a9a0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ...<span.class="tok-kw">const</s
2a9c0 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.Foo.=.<span.class="tok-kw">
2a9e0 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 7d 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e struct</span>.{};.....std.debug.
2aa00 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 warn(<span.class="tok-str">&quot
2aa20 3b 76 61 72 69 61 62 6c 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 ;variable:.{}\n&quot;</span>,.<s
2aa40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d pan.class="tok-builtin">@typeNam
2aa60 65 3c 2f 73 70 61 6e 3e 28 46 6f 6f 29 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 e</span>(Foo));.....std.debug.wa
2aa80 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 rn(<span.class="tok-str">&quot;a
2aaa0 6e 6f 6e 79 6d 6f 75 73 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 nonymous:.{}\n&quot;</span>,.<sp
2aac0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 an.class="tok-builtin">@typeName
2aae0 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 </span>(<span.class="tok-kw">str
2ab00 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 7d 29 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 uct</span>.{}));.....std.debug.w
2ab20 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b arn(<span.class="tok-str">&quot;
2ab40 66 75 6e 63 74 69 6f 6e 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 function:.{}\n&quot;</span>,.<sp
2ab60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 an.class="tok-builtin">@typeName
2ab80 3c 2f 73 70 61 6e 3e 28 4c 69 73 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 </span>(List(<span.class="tok-ty
2aba0 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 pe">i32</span>)));.}..<span.clas
2abc0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
2abe0 3d 22 74 6f 6b 2d 66 6e 22 3e 4c 69 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 ="tok-fn">List</span>(<span.clas
2ac00 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 s="tok-kw">comptime</span>.T:.<s
2ac20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e pan.class="tok-type">type</span>
2ac40 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 ).<span.class="tok-type">type</s
2ac60 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
2ac80 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b return</span>.<span.class="tok-k
2aca0 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 78 3a 20 54 2c w">struct</span>.{.........x:.T,
2acc0 0a 20 20 20 20 7d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 .....};.}</code></pre><pre><code
2ace0 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 73 .class="shell">$.zig.build-exe.s
2ad00 74 72 75 63 74 5f 6e 61 6d 65 2e 7a 69 67 0a 24 20 2e 2f 73 74 72 75 63 74 5f 6e 61 6d 65 0a 76 truct_name.zig.$../struct_name.v
2ad20 61 72 69 61 62 6c 65 3a 20 46 6f 6f 0a 61 6e 6f 6e 79 6d 6f 75 73 3a 20 73 74 72 75 63 74 3a 36 ariable:.Foo.anonymous:.struct:6
2ad40 3a 34 39 0a 66 75 6e 63 74 69 6f 6e 3a 20 4c 69 73 74 28 69 33 32 29 0a 3c 2f 63 6f 64 65 3e 3c :49.function:.List(i32).</code><
2ad60 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a /pre>...............<p>See.also:
2ad80 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 </p><ul>.<li><a.href="#comptime"
2ada0 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 >comptime</a></li>.<li><a.href="
2adc0 23 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 #fieldParentPtr">@fieldParentPtr
2ade0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 </a></li>.</ul>...............<h
2ae00 31 20 69 64 3d 22 65 6e 75 6d 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 65 6e 75 6d 22 3e 1.id="enum"><a.href="#toc-enum">
2ae20 65 6e 75 6d 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 enum</a>.<a.class="hdr".href="#e
2ae40 6e 75 6d 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 num">..</a></h1>........<p.class
2ae60 3d 22 66 69 6c 65 22 3e 65 6e 75 6d 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 ="file">enums.zig</p><pre><code.
2ae80 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
2aea0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 >const</span>.assert.=.<span.cla
2aec0 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 ss="tok-builtin">@import</span>(
2aee0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 <span.class="tok-str">&quot;std&
2af00 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 quot;</span>).debug.assert;.<spa
2af20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 65 n.class="tok-kw">const</span>.me
2af40 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 m.=.<span.class="tok-builtin">@i
2af60 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 mport</span>(<span.class="tok-st
2af80 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 65 6d 3b 0a r">&quot;std&quot;</span>).mem;.
2afa0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 44 65 .<span.class="tok-comment">//.De
2afc0 63 6c 61 72 65 20 61 6e 20 65 6e 75 6d 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 clare.an.enum.</span>.<span.clas
2afe0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 54 79 70 65 20 3d 20 3c s="tok-kw">const</span>.Type.=.<
2b000 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">enum</span>.
2b020 7b 0a 20 20 20 20 4f 6b 2c 0a 20 20 20 20 4e 6f 74 4f 6b 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 {.....Ok,.....NotOk,.};..<span.c
2b040 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 44 65 63 6c 61 72 65 20 61 20 lass="tok-comment">//.Declare.a.
2b060 73 70 65 63 69 66 69 63 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 65 20 65 6e 75 6d 20 76 61 specific.instance.of.the.enum.va
2b080 72 69 61 6e 74 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b riant.</span>.<span.class="tok-k
2b0a0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 54 79 70 65 2e 4f 6b 3b 0a 0a 3c 73 w">const</span>.c.=.Type.Ok;..<s
2b0c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 20 79 6f pan.class="tok-comment">//.If.yo
2b0e0 75 20 77 61 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c u.want.access.to.the.ordinal.val
2b100 75 65 20 6f 66 20 61 6e 20 65 6e 75 6d 2c 20 79 6f 75 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 ue.of.an.enum,.you</span>.<span.
2b120 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 63 61 6e 20 73 70 65 63 69 class="tok-comment">//.can.speci
2b140 66 79 20 74 68 65 20 74 61 67 20 74 79 70 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c fy.the.tag.type.</span>.<span.cl
2b160 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 56 61 6c 75 65 20 ass="tok-kw">const</span>.Value.
2b180 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 =.<span.class="tok-kw">enum</spa
2b1a0 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 3c 2f 73 70 n>(<span.class="tok-type">u2</sp
2b1c0 61 6e 3e 29 20 7b 0a 20 20 20 20 5a 65 72 6f 2c 0a 20 20 20 20 4f 6e 65 2c 0a 20 20 20 20 54 77 an>).{.....Zero,.....One,.....Tw
2b1e0 6f 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 o,.};..<span.class="tok-comment"
2b200 3e 2f 2f 20 4e 6f 77 20 79 6f 75 20 63 61 6e 20 63 61 73 74 20 62 65 74 77 65 65 6e 20 75 32 20 >//.Now.you.can.cast.between.u2.
2b220 61 6e 64 20 56 61 6c 75 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 and.Value.</span>.<span.class="t
2b240 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 ok-comment">//.The.ordinal.value
2b260 20 73 74 61 72 74 73 20 66 72 6f 6d 20 30 2c 20 63 6f 75 6e 74 69 6e 67 20 75 70 20 66 6f 72 20 .starts.from.0,.counting.up.for.
2b280 65 61 63 68 20 6d 65 6d 62 65 72 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d each.member.</span>.<span.class=
2b2a0 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
2b2c0 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 6e 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 ="tok-str">&quot;enum.ordinal.va
2b2e0 6c 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 lue&quot;</span>.{.....assert(<s
2b300 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 6e 75 6d 54 6f 49 pan.class="tok-builtin">@enumToI
2b320 6e 74 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 2e 5a 65 72 6f 29 20 3d 3d 20 3c 73 70 61 6e 20 63 nt</span>(Value.Zero).==.<span.c
2b340 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 lass="tok-number">0</span>);....
2b360 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e .assert(<span.class="tok-builtin
2b380 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 2e 4f 6e 65 29 20 3d ">@enumToInt</span>(Value.One).=
2b3a0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 =.<span.class="tok-number">1</sp
2b3c0 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f an>);.....assert(<span.class="to
2b3e0 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 56 61 6c k-builtin">@enumToInt</span>(Val
2b400 75 65 2e 54 77 6f 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 ue.Two).==.<span.class="tok-numb
2b420 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 er">2</span>);.}..<span.class="t
2b440 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 59 6f 75 20 63 61 6e 20 6f 76 65 72 72 69 64 65 20 ok-comment">//.You.can.override.
2b460 74 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 20 65 6e 75 6d 2e 3c 2f the.ordinal.value.for.an.enum.</
2b480 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
2b4a0 3c 2f 73 70 61 6e 3e 20 56 61 6c 75 65 32 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.Value2.=.<span.class="to
2b4c0 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 k-kw">enum</span>(<span.class="t
2b4e0 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 48 75 6e 64 72 ok-type">u32</span>).{.....Hundr
2b500 65 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 ed.=.<span.class="tok-number">10
2b520 30 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 54 68 6f 75 73 61 6e 64 20 3d 20 3c 73 70 61 6e 20 63 0</span>,.....Thousand.=.<span.c
2b540 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 30 3c 2f 73 70 61 6e 3e 2c 0a 20 lass="tok-number">1000</span>,..
2b560 20 20 20 4d 69 6c 6c 69 6f 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 ...Million.=.<span.class="tok-nu
2b580 6d 62 65 72 22 3e 31 30 30 30 30 30 30 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 mber">1000000</span>,.};.<span.c
2b5a0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 lass="tok-kw">test</span>.<span.
2b5c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 65 74 20 65 6e 75 6d 20 6f class="tok-str">&quot;set.enum.o
2b5e0 72 64 69 6e 61 6c 20 76 61 6c 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 rdinal.value&quot;</span>.{.....
2b600 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 assert(<span.class="tok-builtin"
2b620 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 32 2e 48 75 6e 64 72 65 >@enumToInt</span>(Value2.Hundre
2b640 64 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 d).==.<span.class="tok-number">1
2b660 30 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 00</span>);.....assert(<span.cla
2b680 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 73 70 61 ss="tok-builtin">@enumToInt</spa
2b6a0 6e 3e 28 56 61 6c 75 65 32 2e 54 68 6f 75 73 61 6e 64 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 n>(Value2.Thousand).==.<span.cla
2b6c0 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 ss="tok-number">1000</span>);...
2b6e0 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ..assert(<span.class="tok-builti
2b700 6e 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 32 2e 4d 69 6c 6c n">@enumToInt</span>(Value2.Mill
2b720 69 6f 6e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 ion).==.<span.class="tok-number"
2b740 3e 31 30 30 30 30 30 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 >1000000</span>);.}..<span.class
2b760 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 45 6e 75 6d 73 20 63 61 6e 20 68 61 76 65 ="tok-comment">//.Enums.can.have
2b780 20 6d 65 74 68 6f 64 73 2c 20 74 68 65 20 73 61 6d 65 20 61 73 20 73 74 72 75 63 74 73 20 61 6e .methods,.the.same.as.structs.an
2b7a0 64 20 75 6e 69 6f 6e 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f d.unions.</span>.<span.class="to
2b7c0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 45 6e 75 6d 20 6d 65 74 68 6f 64 73 20 61 72 65 20 6e k-comment">//.Enum.methods.are.n
2b7e0 6f 74 20 73 70 65 63 69 61 6c 2c 20 74 68 65 79 20 61 72 65 20 6f 6e 6c 79 20 6e 61 6d 65 73 70 ot.special,.they.are.only.namesp
2b800 61 63 65 64 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d aced</span>.<span.class="tok-com
2b820 6d 65 6e 74 22 3e 2f 2f 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 ment">//.functions.that.you.can.
2b840 63 61 6c 6c 20 77 69 74 68 20 64 6f 74 20 73 79 6e 74 61 78 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 call.with.dot.syntax.</span>.<sp
2b860 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 an.class="tok-kw">const</span>.S
2b880 75 69 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c uit.=.<span.class="tok-kw">enum<
2b8a0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 43 6c 75 62 73 2c 0a 20 20 20 20 53 70 61 64 65 73 2c 0a /span>.{.....Clubs,.....Spades,.
2b8c0 20 20 20 20 44 69 61 6d 6f 6e 64 73 2c 0a 20 20 20 20 48 65 61 72 74 73 2c 0a 0a 20 20 20 20 3c ....Diamonds,.....Hearts,......<
2b8e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c span.class="tok-kw">pub</span>.<
2b900 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 span.class="tok-kw">fn</span>.<s
2b920 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 69 73 43 6c 75 62 73 3c 2f 73 70 61 6e pan.class="tok-fn">isClubs</span
2b940 3e 28 73 65 6c 66 3a 20 53 75 69 74 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 >(self:.Suit).<span.class="tok-t
2b960 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e ype">bool</span>.{.........<span
2b980 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 73 65 .class="tok-kw">return</span>.se
2b9a0 6c 66 20 3d 3d 20 53 75 69 74 2e 43 6c 75 62 73 3b 0a 20 20 20 20 7d 0a 7d 3b 0a 3c 73 70 61 6e lf.==.Suit.Clubs;.....}.};.<span
2b9c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
2b9e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 6e 75 6d 20 6d 65 74 n.class="tok-str">&quot;enum.met
2ba00 68 6f 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 hod&quot;</span>.{.....<span.cla
2ba20 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 20 3d 20 53 75 69 ss="tok-kw">const</span>.p.=.Sui
2ba40 74 2e 53 70 61 64 65 73 3b 0a 20 20 20 20 61 73 73 65 72 74 28 21 70 2e 69 73 43 6c 75 62 73 28 t.Spades;.....assert(!p.isClubs(
2ba60 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 ));.}..<span.class="tok-comment"
2ba80 3e 2f 2f 20 41 6e 20 65 6e 75 6d 20 76 61 72 69 61 6e 74 20 6f 66 20 64 69 66 66 65 72 65 6e 74 >//.An.enum.variant.of.different
2baa0 20 74 79 70 65 73 20 63 61 6e 20 62 65 20 73 77 69 74 63 68 65 64 20 75 70 6f 6e 2e 3c 2f 73 70 .types.can.be.switched.upon.</sp
2bac0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f an>.<span.class="tok-kw">const</
2bae0 73 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.Foo.=.<span.class="tok-kw"
2bb00 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 53 74 72 69 6e 67 2c 0a 20 20 20 20 4e >enum</span>.{.....String,.....N
2bb20 75 6d 62 65 72 2c 0a 20 20 20 20 4e 6f 6e 65 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d umber,.....None,.};.<span.class=
2bb40 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
2bb60 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 6e 75 6d 20 76 61 72 69 61 6e 74 20 73 77 ="tok-str">&quot;enum.variant.sw
2bb80 69 74 63 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c itch&quot;</span>.{.....<span.cl
2bba0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 20 3d 20 46 6f ass="tok-kw">const</span>.p.=.Fo
2bbc0 6f 2e 4e 75 6d 62 65 72 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b o.Number;.....<span.class="tok-k
2bbe0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 68 61 74 5f 69 73 5f 69 74 20 3d 20 3c 73 70 w">const</span>.what_is_it.=.<sp
2bc00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 an.class="tok-kw">switch</span>.
2bc20 28 70 29 20 7b 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 53 74 72 69 6e 67 20 3d 26 67 74 3b 20 3c (p).{.........Foo.String.=&gt;.<
2bc40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 68 69 73 20 span.class="tok-str">&quot;this.
2bc60 69 73 20 61 20 73 74 72 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 is.a.string&quot;</span>,.......
2bc80 20 20 46 6f 6f 2e 4e 75 6d 62 65 72 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ..Foo.Number.=&gt;.<span.class="
2bca0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 61 20 6e 75 6d 62 65 72 26 tok-str">&quot;this.is.a.number&
2bcc0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 4e 6f 6e 65 20 3d quot;</span>,.........Foo.None.=
2bce0 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 &gt;.<span.class="tok-str">&quot
2bd00 3b 74 68 69 73 20 69 73 20 61 20 6e 6f 6e 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 ;this.is.a.none&quot;</span>,...
2bd20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c ..};.....assert(mem.eql(<span.cl
2bd40 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 77 68 61 74 5f 69 ass="tok-type">u8</span>,.what_i
2bd60 73 5f 69 74 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f s_it,.<span.class="tok-str">&quo
2bd80 74 3b 74 68 69 73 20 69 73 20 61 20 6e 75 6d 62 65 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 t;this.is.a.number&quot;</span>)
2bda0 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e );.}..<span.class="tok-comment">
2bdc0 2f 2f 20 40 54 61 67 54 79 70 65 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 61 63 63 65 73 //.@TagType.can.be.used.to.acces
2bde0 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 61 67 20 74 79 70 65 20 6f 66 20 61 6e 20 65 6e 75 s.the.integer.tag.type.of.an.enu
2be00 6d 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 m.</span>.<span.class="tok-kw">c
2be20 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 6d 61 6c 6c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d onst</span>.Small.=.<span.class=
2be40 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 4f 6e 65 2c 0a "tok-kw">enum</span>.{.....One,.
2be60 20 20 20 20 54 77 6f 2c 0a 20 20 20 20 54 68 72 65 65 2c 0a 20 20 20 20 46 6f 75 72 2c 0a 7d 3b ....Two,.....Three,.....Four,.};
2be80 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
2bea0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 54 >.<span.class="tok-str">&quot;@T
2bec0 61 67 54 79 70 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 agType&quot;</span>.{.....assert
2bee0 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 61 67 54 (<span.class="tok-builtin">@TagT
2bf00 79 70 65 3c 2f 73 70 61 6e 3e 28 53 6d 61 6c 6c 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ype</span>(Small).==.<span.class
2bf20 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e ="tok-type">u2</span>);.}..<span
2bf40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 40 6d 65 6d 62 65 72 43 .class="tok-comment">//.@memberC
2bf60 6f 75 6e 74 20 74 65 6c 6c 73 20 68 6f 77 20 6d 61 6e 79 20 66 69 65 6c 64 73 20 61 6e 20 65 6e ount.tells.how.many.fields.an.en
2bf80 75 6d 20 68 61 73 3a 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d um.has:</span>.<span.class="tok-
2bfa0 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">test</span>.<span.class="tok
2bfc0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 6d 65 6d 62 65 72 43 6f 75 6e 74 26 71 75 6f 74 3b 3c 2f -str">&quot;@memberCount&quot;</
2bfe0 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 span>.{.....assert(<span.class="
2c000 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 3c 2f 73 70 61 6e 3e tok-builtin">@memberCount</span>
2c020 28 53 6d 61 6c 6c 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 (Small).==.<span.class="tok-numb
2c040 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 er">4</span>);.}..<span.class="t
2c060 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 40 6d 65 6d 62 65 72 4e 61 6d 65 20 74 65 6c 6c 73 ok-comment">//.@memberName.tells
2c080 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 66 69 65 6c 64 20 69 6e 20 61 6e 20 65 6e 75 6d 3a .the.name.of.a.field.in.an.enum:
2c0a0 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 </span>.<span.class="tok-kw">tes
2c0c0 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>.<span.class="tok-str">&
2c0e0 71 75 6f 74 3b 40 6d 65 6d 62 65 72 4e 61 6d 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a quot;@memberName&quot;</span>.{.
2c100 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ....assert(mem.eql(<span.class="
2c120 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-type">u8</span>,.<span.class
2c140 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 65 6d 62 65 72 4e 61 6d 65 3c 2f 73 70 61 6e ="tok-builtin">@memberName</span
2c160 3e 28 53 6d 61 6c 6c 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 >(Small,.<span.class="tok-number
2c180 22 3e 31 3c 2f 73 70 61 6e 3e 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 ">1</span>),.<span.class="tok-st
2c1a0 72 22 3e 26 71 75 6f 74 3b 54 77 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a r">&quot;Two&quot;</span>));.}..
2c1c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 40 74 61 <span.class="tok-comment">//.@ta
2c1e0 67 4e 61 6d 65 20 67 69 76 65 73 20 61 20 5b 5d 63 6f 6e 73 74 20 75 38 20 72 65 70 72 65 73 65 gName.gives.a.[]const.u8.represe
2c200 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 6e 75 6d 20 76 61 6c 75 65 3a 3c 2f 73 70 61 6e 3e ntation.of.an.enum.value:</span>
2c220 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
2c240 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 74 >.<span.class="tok-str">&quot;@t
2c260 61 67 4e 61 6d 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 agName&quot;</span>.{.....assert
2c280 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e (mem.eql(<span.class="tok-type">
2c2a0 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c u8</span>,.<span.class="tok-buil
2c2c0 74 69 6e 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 53 6d 61 6c 6c 2e 54 68 72 65 65 tin">@tagName</span>(Small.Three
2c2e0 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 54 ),.<span.class="tok-str">&quot;T
2c300 68 72 65 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 hree&quot;</span>));.}</code></p
2c320 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
2c340 67 20 74 65 73 74 20 65 6e 75 6d 73 2e 7a 69 67 0a 31 2f 38 20 74 65 73 74 20 26 71 75 6f 74 3b g.test.enums.zig.1/8.test.&quot;
2c360 65 6e 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f enum.ordinal.value&quot;...OK.2/
2c380 38 20 74 65 73 74 20 26 71 75 6f 74 3b 73 65 74 20 65 6e 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 8.test.&quot;set.enum.ordinal.va
2c3a0 6c 75 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 33 2f 38 20 74 65 73 74 20 26 71 75 6f 74 3b 65 6e lue&quot;...OK.3/8.test.&quot;en
2c3c0 75 6d 20 6d 65 74 68 6f 64 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 34 2f 38 20 74 65 73 74 20 26 71 um.method&quot;...OK.4/8.test.&q
2c3e0 75 6f 74 3b 65 6e 75 6d 20 76 61 72 69 61 6e 74 20 73 77 69 74 63 68 26 71 75 6f 74 3b 2e 2e 2e uot;enum.variant.switch&quot;...
2c400 4f 4b 0a 35 2f 38 20 74 65 73 74 20 26 71 75 6f 74 3b 40 54 61 67 54 79 70 65 26 71 75 6f 74 3b OK.5/8.test.&quot;@TagType&quot;
2c420 2e 2e 2e 4f 4b 0a 36 2f 38 20 74 65 73 74 20 26 71 75 6f 74 3b 40 6d 65 6d 62 65 72 43 6f 75 6e ...OK.6/8.test.&quot;@memberCoun
2c440 74 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 37 2f 38 20 74 65 73 74 20 26 71 75 6f 74 3b 40 6d 65 6d t&quot;...OK.7/8.test.&quot;@mem
2c460 62 65 72 4e 61 6d 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 38 2f 38 20 74 65 73 74 20 26 71 75 6f berName&quot;...OK.8/8.test.&quo
2c480 74 3b 40 74 61 67 4e 61 6d 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 t;@tagName&quot;...OK.All.tests.
2c4a0 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e passed..</code></pre>........<p>
2c4c0 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 See.also:</p><ul>.<li><a.href="#
2c4e0 6d 65 6d 62 65 72 4e 61 6d 65 22 3e 40 6d 65 6d 62 65 72 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e memberName">@memberName</a></li>
2c500 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 65 6d 62 65 72 43 6f 75 6e 74 22 3e 40 6d 65 6d .<li><a.href="#memberCount">@mem
2c520 62 65 72 43 6f 75 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 berCount</a></li>.<li><a.href="#
2c540 74 61 67 4e 61 6d 65 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c tagName">@tagName</a></li>.<li><
2c560 61 20 68 72 65 66 3d 22 23 73 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 a.href="#sizeOf">@sizeOf</a></li
2c580 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 78 74 65 72 6e 2d 65 >.</ul>.........<h2.id="extern-e
2c5a0 6e 75 6d 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 65 78 74 65 72 6e 2d 65 6e 75 6d 22 3e num"><a.href="#toc-extern-enum">
2c5c0 65 78 74 65 72 6e 20 65 6e 75 6d 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 extern.enum</a>.<a.class="hdr".h
2c5e0 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 65 6e 75 6d 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a ref="#extern-enum">..</a></h2>..
2c600 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 79 20 64 65 66 61 75 6c 74 2c 20 65 6e 75 6d ......<p>.......By.default,.enum
2c620 73 20 61 72 65 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 63 6f 6d 70 61 s.are.not.guaranteed.to.be.compa
2c640 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 43 20 41 42 49 3a 0a 20 20 20 20 20 20 3c 2f 70 3e tible.with.the.C.ABI:.......</p>
2c660 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c .......<p.class="file">test.zig<
2c680 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 /p><pre><code.class="zig"><span.
2c6a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6f 6f 20 class="tok-kw">const</span>.Foo.
2c6c0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 =.<span.class="tok-kw">enum</spa
2c6e0 6e 3e 20 7b 20 41 2c 20 42 2c 20 43 20 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b n>.{.A,.B,.C.};.<span.class="tok
2c700 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -kw">export</span>.<span.class="
2c720 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 tok-kw">fn</span>.<span.class="t
2c740 6f 6b 2d 66 6e 22 3e 65 6e 74 72 79 3c 2f 73 70 61 6e 3e 28 66 6f 6f 3a 20 46 6f 6f 29 20 3c 73 ok-fn">entry</span>(foo:.Foo).<s
2c760 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e pan.class="tok-type">void</span>
2c780 20 7b 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 .{.}</code></pre><pre><code.clas
2c7a0 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a s="shell">$.zig.build-obj.test.z
2c7c0 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 ig.<span.class="t0_1">/home/andy
2c7e0 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 32 /dev/zig/docgen_tmp/test.zig:2:2
2c800 32 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 2:.</span><span.class="t31_1">er
2c820 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 70 ror:</span><span.class="t0_1">.p
2c840 61 72 61 6d 65 74 65 72 20 6f 66 20 74 79 70 65 20 27 46 6f 6f 27 20 6e 6f 74 20 61 6c 6c 6f 77 arameter.of.type.'Foo'.not.allow
2c860 65 64 20 69 6e 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 ed.in.function.with.calling.conv
2c880 65 6e 74 69 6f 6e 20 27 63 63 63 27 3c 2f 73 70 61 6e 3e 0a 65 78 70 6f 72 74 20 66 6e 20 65 6e ention.'ccc'</span>.export.fn.en
2c8a0 74 72 79 28 66 6f 6f 3a 20 46 6f 6f 29 20 76 6f 69 64 20 7b 20 0a 20 20 20 20 20 20 20 20 20 20 try(foo:.Foo).void.{............
2c8c0 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e ...........<span.class="t32_1">^
2c8e0 3c 2f 73 70 61 6e 3e 0a 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f </span>..</code></pre>.</code></
2c900 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 61 20 43 2d 41 42 pre>........<p>.......For.a.C-AB
2c920 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 65 6e 75 6d 2c 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 I-compatible.enum,.use.<code.cla
2c940 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 ss="zig"><span.class="tok-kw">ex
2c960 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 tern</span>.<span.class="tok-kw"
2c980 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a >enum</span></code>:.......</p>.
2c9a0 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f ......<p.class="file">test.zig</
2c9c0 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 p><pre><code.class="zig"><span.c
2c9e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6f 6f 20 3d lass="tok-kw">const</span>.Foo.=
2ca00 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 .<span.class="tok-kw">extern</sp
2ca20 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 an>.<span.class="tok-kw">enum</s
2ca40 70 61 6e 3e 20 7b 20 41 2c 20 42 2c 20 43 20 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>.{.A,.B,.C.};.<span.class="t
2ca60 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-kw">export</span>.<span.class
2ca80 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="tok-kw">fn</span>.<span.class=
2caa0 22 74 6f 6b 2d 66 6e 22 3e 65 6e 74 72 79 3c 2f 73 70 61 6e 3e 28 66 6f 6f 3a 20 46 6f 6f 29 20 "tok-fn">entry</span>(foo:.Foo).
2cac0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 <span.class="tok-type">void</spa
2cae0 6e 3e 20 7b 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c n>.{.}</code></pre><pre><code.cl
2cb00 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 ass="shell">$.zig.build-obj.test
2cb20 2e 7a 69 67 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 .zig</code></pre>...............
2cb40 20 3c 68 32 20 69 64 3d 22 70 61 63 6b 65 64 2d 65 6e 75 6d 22 3e 3c 61 20 68 72 65 66 3d 22 23 .<h2.id="packed-enum"><a.href="#
2cb60 74 6f 63 2d 70 61 63 6b 65 64 2d 65 6e 75 6d 22 3e 70 61 63 6b 65 64 20 65 6e 75 6d 3c 2f 61 3e toc-packed-enum">packed.enum</a>
2cb80 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 65 6e .<a.class="hdr".href="#packed-en
2cba0 75 6d 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 42 79 20 64 65 66 um">..</a></h2>........<p>By.def
2cbc0 61 75 6c 74 2c 20 74 68 65 20 73 69 7a 65 20 6f 66 20 65 6e 75 6d 73 20 69 73 20 6e 6f 74 20 67 ault,.the.size.of.enums.is.not.g
2cbe0 75 61 72 61 6e 74 65 65 64 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c uaranteed.</p>.......<p><code.cl
2cc00 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 ass="zig"><span.class="tok-kw">p
2cc20 61 63 6b 65 64 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 acked</span>.<span.class="tok-kw
2cc40 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 75 73 65 73 20 74 68 65 20 ">enum</span></code>.causes.the.
2cc60 73 69 7a 65 20 6f 66 20 74 68 65 20 65 6e 75 6d 20 74 6f 20 62 65 20 74 68 65 20 73 61 6d 65 20 size.of.the.enum.to.be.the.same.
2cc80 61 73 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 as.the.size.of.the.......integer
2cca0 20 74 61 67 20 74 79 70 65 20 6f 66 20 74 68 65 20 65 6e 75 6d 3a 3c 2f 70 3e 0a 20 20 20 20 20 .tag.type.of.the.enum:</p>......
2ccc0 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 .<p.class="file">test.zig</p><pr
2cce0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
2cd00 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 "tok-kw">const</span>.std.=.<spa
2cd20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 n.class="tok-builtin">@import</s
2cd40 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
2cd60 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ;std&quot;</span>);..<span.class
2cd80 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ="tok-kw">test</span>.<span.clas
2cda0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 61 63 6b 65 64 20 65 6e 75 6d 26 71 75 s="tok-str">&quot;packed.enum&qu
2cdc0 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ot;</span>.{.....<span.class="to
2cde0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 4e 75 6d 62 65 72 20 3d 20 3c 73 70 61 k-kw">const</span>.Number.=.<spa
2ce00 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e 3e 20 3c n.class="tok-kw">packed</span>.<
2ce20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 28 span.class="tok-kw">enum</span>(
2ce40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
2ce60 29 20 7b 0a 20 20 20 20 20 20 20 20 4f 6e 65 2c 0a 20 20 20 20 20 20 20 20 54 77 6f 2c 0a 20 20 ).{.........One,.........Two,...
2ce80 20 20 20 20 20 20 54 68 72 65 65 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 ......Three,.....};.....std.debu
2cea0 67 2e 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 g.assert(<span.class="tok-builti
2cec0 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 4e 75 6d 62 65 72 29 20 3d 3d 20 3c 73 70 n">@sizeOf</span>(Number).==.<sp
2cee0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f an.class="tok-builtin">@sizeOf</
2cf00 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c span>(<span.class="tok-type">u8<
2cf20 2f 73 70 61 6e 3e 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f /span>));.}</code></pre><pre><co
2cf40 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 de.class="shell">$.zig.test.test
2cf60 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 61 63 6b 65 64 20 65 6e 75 6d 26 .zig.1/1.test.&quot;packed.enum&
2cf80 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 quot;...OK.All.tests.passed..</c
2cfa0 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 6d 61 6b 65 73 20 ode></pre>........<p>This.makes.
2cfc0 74 68 65 20 65 6e 75 6d 20 65 6c 69 67 69 62 6c 65 20 74 6f 20 62 65 20 69 6e 20 61 20 3c 61 20 the.enum.eligible.to.be.in.a.<a.
2cfe0 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 73 74 72 75 63 74 22 3e 70 61 63 6b 65 64 20 73 74 72 href="#packed-struct">packed.str
2d000 75 63 74 3c 2f 61 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 uct</a>.</p>...............<h2.i
2d020 64 3d 22 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d d="Enum-Literals"><a.href="#toc-
2d040 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 3e 45 6e 75 6d 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e Enum-Literals">Enum.Literals</a>
2d060 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 6e 75 6d 2d 4c 69 74 65 .<a.class="hdr".href="#Enum-Lite
2d080 72 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 rals">..</a></h2>........<p>....
2d0a0 20 20 20 45 6e 75 6d 20 6c 69 74 65 72 61 6c 73 20 61 6c 6c 6f 77 20 73 70 65 63 69 66 79 69 6e ...Enum.literals.allow.specifyin
2d0c0 67 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 6e 20 65 6e 75 6d 20 66 69 65 6c 64 20 77 69 74 68 g.the.name.of.an.enum.field.with
2d0e0 6f 75 74 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 65 20 65 6e 75 6d 20 74 79 70 65 3a 0a 20 20 out.specifying.the.enum.type:...
2d100 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ....</p>.......<p.class="file">t
2d120 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
2d140 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
2d160 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 an>.std.=.<span.class="tok-built
2d180 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
2d1a0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
2d1c0 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ;.<span.class="tok-kw">const</sp
2d1e0 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a an>.assert.=.std.debug.assert;..
2d200 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
2d220 3e 20 43 6f 6c 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 >.Color.=.<span.class="tok-kw">e
2d240 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 41 75 74 6f 2c 0a 20 20 20 20 4f 66 66 2c 0a num</span>.{.....Auto,.....Off,.
2d260 20 20 20 20 4f 6e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ....On,.};..<span.class="tok-kw"
2d280 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >test</span>.<span.class="tok-st
2d2a0 72 22 3e 26 71 75 6f 74 3b 65 6e 75 6d 20 6c 69 74 65 72 61 6c 73 26 71 75 6f 74 3b 3c 2f 73 70 r">&quot;enum.literals&quot;</sp
2d2c0 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 an>.{.....<span.class="tok-kw">c
2d2e0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 6f 6c 6f 72 31 3a 20 43 6f 6c 6f 72 20 3d 20 2e 41 75 74 onst</span>.color1:.Color.=..Aut
2d300 6f 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 o;.....<span.class="tok-kw">cons
2d320 74 3c 2f 73 70 61 6e 3e 20 63 6f 6c 6f 72 32 20 3d 20 43 6f 6c 6f 72 2e 41 75 74 6f 3b 0a 20 20 t</span>.color2.=.Color.Auto;...
2d340 20 20 61 73 73 65 72 74 28 63 6f 6c 6f 72 31 20 3d 3d 20 63 6f 6c 6f 72 32 29 3b 0a 7d 0a 0a 3c ..assert(color1.==.color2);.}..<
2d360 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">test</span>.
2d380 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 77 69 74 <span.class="tok-str">&quot;swit
2d3a0 63 68 20 75 73 69 6e 67 20 65 6e 75 6d 20 6c 69 74 65 72 61 6c 73 26 71 75 6f 74 3b 3c 2f 73 70 ch.using.enum.literals&quot;</sp
2d3c0 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 an>.{.....<span.class="tok-kw">c
2d3e0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 6f 6c 6f 72 20 3d 20 43 6f 6c 6f 72 2e 4f 6e 3b 0a 20 20 onst</span>.color.=.Color.On;...
2d400 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
2d420 61 6e 3e 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 an>.result.=.<span.class="tok-kw
2d440 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 63 6f 6c 6f 72 29 20 7b 0a 20 20 20 20 20 20 ">switch</span>.(color).{.......
2d460 20 20 2e 41 75 74 6f 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ...Auto.=&gt;.<span.class="tok-n
2d480 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 4f 6e 20 3d ull">false</span>,..........On.=
2d4a0 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 &gt;.<span.class="tok-null">true
2d4c0 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 4f 66 66 20 3d 26 67 74 3b 20 3c 73 70 61 </span>,..........Off.=&gt;.<spa
2d4e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c n.class="tok-null">false</span>,
2d500 0a 20 20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 72 65 73 75 6c 74 29 3b 0a 7d 3c 2f 63 .....};.....assert(result);.}</c
2d520 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
2d540 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 32 20 74 65 73 74 20 l">$.zig.test.test.zig.1/2.test.
2d560 26 71 75 6f 74 3b 65 6e 75 6d 20 6c 69 74 65 72 61 6c 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 &quot;enum.literals&quot;...OK.2
2d580 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 73 77 69 74 63 68 20 75 73 69 6e 67 20 65 6e 75 6d 20 /2.test.&quot;switch.using.enum.
2d5a0 6c 69 74 65 72 61 6c 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 literals&quot;...OK.All.tests.pa
2d5c0 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 ssed..</code></pre>.............
2d5e0 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 75 6e 69 6f 6e 22 3e 3c 61 20 68 72 65 66 ..........<h1.id="union"><a.href
2d600 3d 22 23 74 6f 63 2d 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 ="#toc-union">union</a>.<a.class
2d620 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e ="hdr".href="#union">..</a></h1>
2d640 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 62 61 72 65 20 3c 63 6f 64 65 20 63 ........<p>.......A.bare.<code.c
2d660 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
2d680 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 66 69 6e 65 73 20 61 20 73 65 union</span></code>.defines.a.se
2d6a0 74 20 6f 66 20 70 6f 73 73 69 62 6c 65 20 74 79 70 65 73 20 74 68 61 74 20 61 20 76 61 6c 75 65 t.of.possible.types.that.a.value
2d6c0 0a 20 20 20 20 20 20 63 61 6e 20 62 65 20 61 73 20 61 20 6c 69 73 74 20 6f 66 20 66 69 65 6c 64 .......can.be.as.a.list.of.field
2d6e0 73 2e 20 4f 6e 6c 79 20 6f 6e 65 20 66 69 65 6c 64 20 63 61 6e 20 62 65 20 61 63 74 69 76 65 20 s..Only.one.field.can.be.active.
2d700 61 74 20 61 20 74 69 6d 65 2e 0a 20 20 20 20 20 20 54 68 65 20 69 6e 2d 6d 65 6d 6f 72 79 20 72 at.a.time........The.in-memory.r
2d720 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 62 61 72 65 20 75 6e 69 6f 6e 73 20 69 73 20 epresentation.of.bare.unions.is.
2d740 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 64 2e 0a 20 20 20 20 20 20 42 61 72 65 20 75 6e 69 6f 6e not.guaranteed........Bare.union
2d760 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 69 6e 74 65 72 70 72 65 74 20 s.cannot.be.used.to.reinterpret.
2d780 6d 65 6d 6f 72 79 2e 20 46 6f 72 20 74 68 61 74 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 memory..For.that,.use.<a.href="#
2d7a0 70 74 72 43 61 73 74 22 3e 40 70 74 72 43 61 73 74 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 6f 72 20 ptrCast">@ptrCast</a>,.......or.
2d7c0 75 73 65 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 75 6e 69 6f 6e 22 3e 65 use.an.<a.href="#extern-union">e
2d7e0 78 74 65 72 6e 20 75 6e 69 6f 6e 3c 2f 61 3e 20 6f 72 20 61 20 3c 61 20 68 72 65 66 3d 22 23 70 xtern.union</a>.or.a.<a.href="#p
2d800 61 63 6b 65 64 2d 75 6e 69 6f 6e 22 3e 70 61 63 6b 65 64 20 75 6e 69 6f 6e 3c 2f 61 3e 20 77 68 acked-union">packed.union</a>.wh
2d820 69 63 68 20 68 61 76 65 0a 20 20 20 20 20 20 67 75 61 72 61 6e 74 65 65 64 20 69 6e 2d 6d 65 6d ich.have.......guaranteed.in-mem
2d840 6f 72 79 20 6c 61 79 6f 75 74 2e 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 57 72 6f 6e ory.layout........<a.href="#Wron
2d860 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 73 73 22 3e 41 63 63 65 73 73 69 6e 67 20 g-Union-Field-Access">Accessing.
2d880 74 68 65 20 6e 6f 6e 2d 61 63 74 69 76 65 20 66 69 65 6c 64 3c 2f 61 3e 20 69 73 0a 20 20 20 20 the.non-active.field</a>.is.....
2d8a0 20 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 ..safety-checked.<a.href="#Undef
2d8c0 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f ined-Behavior">Undefined.Behavio
2d8e0 72 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 r</a>:.......</p>.......<p.class
2d900 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ="file">test.zig</p><pre><code.c
2d920 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
2d940 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 61 79 6c 6f 61 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 const</span>.Payload.=.<span.cla
2d960 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 49 ss="tok-kw">union</span>.{.....I
2d980 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 36 34 3c 2f nt:.<span.class="tok-type">i64</
2d9a0 73 70 61 6e 3e 2c 0a 20 20 20 20 46 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>,.....Float:.<span.class="t
2d9c0 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 42 6f 6f 6c 3a 20 3c ok-type">f64</span>,.....Bool:.<
2d9e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e span.class="tok-type">bool</span
2da00 3e 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c >,.};.<span.class="tok-kw">test<
2da20 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>.<span.class="tok-str">&qu
2da40 6f 74 3b 73 69 6d 70 6c 65 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 ot;simple.union&quot;</span>.{..
2da60 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
2da80 6e 3e 20 70 61 79 6c 6f 61 64 20 3d 20 50 61 79 6c 6f 61 64 7b 20 2e 49 6e 74 20 3d 20 3c 73 70 n>.payload.=.Payload{..Int.=.<sp
2daa0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e an.class="tok-number">1234</span
2dac0 3e 20 7d 3b 0a 20 20 20 20 70 61 79 6c 6f 61 64 2e 46 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 >.};.....payload.Float.=.<span.c
2dae0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 6e 3e 3b 0a lass="tok-number">12.34</span>;.
2db00 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
2db20 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 shell">$.zig.test.test.zig.1/1.t
2db40 65 73 74 20 26 71 75 6f 74 3b 73 69 6d 70 6c 65 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 61 est.&quot;simple.union&quot;...a
2db60 63 63 65 73 73 20 6f 66 20 69 6e 61 63 74 69 76 65 20 75 6e 69 6f 6e 20 66 69 65 6c 64 0a 3c 73 ccess.of.inactive.union.field.<s
2db80 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 pan.class="t37_1">/home/andy/dev
2dba0 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 38 3a 31 32 3c 2f 73 /zig/docgen_tmp/test.zig:8:12</s
2dbc0 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 35 35 62 pan>:.<span.class="t2_0">0x2055b
2dbe0 35 20 69 6e 20 74 65 73 74 20 26 71 75 6f 74 3b 73 69 6d 70 6c 65 20 75 6e 69 6f 6e 26 71 75 6f 5.in.test.&quot;simple.union&quo
2dc00 74 3b 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 61 79 6c 6f 61 64 2e 46 6c 6f t;.(test)</span>.....payload.Flo
2dc20 61 74 20 3d 20 31 32 2e 33 34 3b 0a 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 at.=.12.34;............<span.cla
2dc40 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ss="t32_1">^</span>.<span.class=
2dc60 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 "t37_1">/home/andy/dev/zig/lib/s
2dc80 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 33 3a 32 35 td/special/test_runner.zig:13:25
2dca0 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 </span>:.<span.class="t2_0">0x22
2dcc0 38 33 64 31 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 6d 61 69 6e 20 28 74 65 73 74 29 3c 83d1.in.std.special.main.(test)<
2dce0 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 /span>.........if.(test_fn.func(
2dd00 29 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )).|_|.{........................
2dd20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 .<span.class="t32_1">^</span>.<s
2dd40 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 pan.class="t37_1">/home/andy/dev
2dd60 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 32 /zig/lib/std/special/start.zig:2
2dd80 30 34 3a 33 37 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 04:37</span>:.<span.class="t2_0"
2dda0 3e 30 78 32 32 37 32 34 35 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 >0x227245.in.std.special.posixCa
2ddc0 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 llMainAndExit.(test)</span>.....
2dde0 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 72 65 73 75 6c 74 20 3d 20 72 6f 6f 74 2e 6d 61 69 6e ........const.result.=.root.main
2de00 28 29 20 63 61 74 63 68 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ().catch.|err|.{................
2de20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 .....................<span.class
2de40 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ="t32_1">^</span>.<span.class="t
2de60 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 37_1">/home/andy/dev/zig/lib/std
2de80 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a /special/start.zig:102:5</span>:
2dea0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 30 62 66 20 69 6e 20 .<span.class="t2_0">0x2270bf.in.
2dec0 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e std.special._start.(test)</span>
2dee0 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e .....@noInlineCall(posixCallMain
2df00 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 AndExit);.....<span.class="t32_1
2df20 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 ">^</span>..Tests.failed..Use.th
2df40 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 e.following.command.to.reproduce
2df60 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 .the.failure:./home/andy/dev/zig
2df80 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a /docgen_tmp/test.</code></pre>..
2dfa0 20 20 20 20 20 20 3c 70 3e 59 6f 75 20 63 61 6e 20 61 63 74 69 76 61 74 65 20 61 6e 6f 74 68 65 ......<p>You.can.activate.anothe
2dfc0 72 20 66 69 65 6c 64 20 62 79 20 61 73 73 69 67 6e 69 6e 67 20 74 68 65 20 65 6e 74 69 72 65 20 r.field.by.assigning.the.entire.
2dfe0 75 6e 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 union:</p>.......<p.class="file"
2e000 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a >test.zig</p><pre><code.class="z
2e020 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f ig"><span.class="tok-kw">const</
2e040 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 span>.std.=.<span.class="tok-bui
2e060 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 ltin">@import</span>(<span.class
2e080 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e ="tok-str">&quot;std&quot;</span
2e0a0 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f >);.<span.class="tok-kw">const</
2e0c0 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b span>.assert.=.std.debug.assert;
2e0e0 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
2e100 61 6e 3e 20 50 61 79 6c 6f 61 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b an>.Payload.=.<span.class="tok-k
2e120 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 49 6e 74 3a 20 3c 73 70 61 6e w">union</span>.{.....Int:.<span
2e140 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 36 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 .class="tok-type">i64</span>,...
2e160 20 20 46 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ..Float:.<span.class="tok-type">
2e180 66 36 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 42 6f 6f 6c 3a 20 3c 73 70 61 6e 20 63 6c 61 73 f64</span>,.....Bool:.<span.clas
2e1a0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 3c 73 70 s="tok-type">bool</span>,.};.<sp
2e1c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 an.class="tok-kw">test</span>.<s
2e1e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 69 6d 70 6c 65 pan.class="tok-str">&quot;simple
2e200 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 .union&quot;</span>.{.....<span.
2e220 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 61 79 6c 6f 61 class="tok-kw">var</span>.payloa
2e240 64 20 3d 20 50 61 79 6c 6f 61 64 7b 20 2e 49 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d d.=.Payload{..Int.=.<span.class=
2e260 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 "tok-number">1234</span>.};.....
2e280 61 73 73 65 72 74 28 70 61 79 6c 6f 61 64 2e 49 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 assert(payload.Int.==.<span.clas
2e2a0 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 s="tok-number">1234</span>);....
2e2c0 20 70 61 79 6c 6f 61 64 20 3d 20 50 61 79 6c 6f 61 64 7b 20 2e 46 6c 6f 61 74 20 3d 20 3c 73 70 .payload.=.Payload{..Float.=.<sp
2e2e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 an.class="tok-number">12.34</spa
2e300 6e 3e 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 61 79 6c 6f 61 64 2e 46 6c 6f 61 74 20 3d n>.};.....assert(payload.Float.=
2e320 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 2e 33 34 =.<span.class="tok-number">12.34
2e340 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f </span>);.}</code></pre><pre><co
2e360 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 de.class="shell">$.zig.test.test
2e380 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 73 69 6d 70 6c 65 20 75 6e 69 6f 6e .zig.1/1.test.&quot;simple.union
2e3a0 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f &quot;...OK.All.tests.passed..</
2e3c0 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 code></pre>........<p>.......In.
2e3e0 6f 72 64 65 72 20 74 6f 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 order.to.use.<a.href="#switch">s
2e400 77 69 74 63 68 3c 2f 61 3e 20 77 69 74 68 20 61 20 75 6e 69 6f 6e 2c 20 69 74 20 6d 75 73 74 20 witch</a>.with.a.union,.it.must.
2e420 62 65 20 61 20 3c 61 20 68 72 65 66 3d 22 23 54 61 67 67 65 64 2d 75 6e 69 6f 6e 22 3e 54 61 67 be.a.<a.href="#Tagged-union">Tag
2e440 67 65 64 20 75 6e 69 6f 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 ged.union</a>........</p>.......
2e460 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 75 6e 69 6f 6e 20 <p>.......To.initialize.a.union.
2e480 77 68 65 6e 20 74 68 65 20 74 61 67 20 69 73 20 61 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 when.the.tag.is.a.<a.href="#comp
2e4a0 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2d 6b 6e 6f 77 6e 20 6e 61 6d 65 2c 20 73 time">comptime</a>-known.name,.s
2e4c0 65 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 49 6e 69 74 22 3e 40 75 6e 69 6f 6e 49 6e ee.<a.href="#unionInit">@unionIn
2e4e0 69 74 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 it</a>........</p>........<h2.id
2e500 3d 22 54 61 67 67 65 64 2d 75 6e 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 54 61 ="Tagged-union"><a.href="#toc-Ta
2e520 67 67 65 64 2d 75 6e 69 6f 6e 22 3e 54 61 67 67 65 64 20 75 6e 69 6f 6e 3c 2f 61 3e 20 3c 61 20 gged-union">Tagged.union</a>.<a.
2e540 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 61 67 67 65 64 2d 75 6e 69 6f 6e 22 class="hdr".href="#Tagged-union"
2e560 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 55 6e 69 6f 6e 73 20 63 61 >..</a></h2>........<p>Unions.ca
2e580 6e 20 62 65 20 64 65 63 6c 61 72 65 64 20 77 69 74 68 20 61 6e 20 65 6e 75 6d 20 74 61 67 20 74 n.be.declared.with.an.enum.tag.t
2e5a0 79 70 65 2e 0a 20 20 20 20 20 20 54 68 69 73 20 74 75 72 6e 73 20 74 68 65 20 75 6e 69 6f 6e 20 ype........This.turns.the.union.
2e5c0 69 6e 74 6f 20 61 20 3c 65 6d 3e 74 61 67 67 65 64 3c 2f 65 6d 3e 20 75 6e 69 6f 6e 2c 20 77 68 into.a.<em>tagged</em>.union,.wh
2e5e0 69 63 68 20 6d 61 6b 65 73 20 69 74 20 65 6c 69 67 69 62 6c 65 0a 20 20 20 20 20 20 74 6f 20 75 ich.makes.it.eligible.......to.u
2e600 73 65 20 77 69 74 68 20 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 se.with.<a.href="#switch">switch
2e620 3c 2f 61 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 4f 6e 65 20 63 61 6e 20 75 73 65 20 3c 61 </a>.expressions..One.can.use.<a
2e640 20 68 72 65 66 3d 22 23 54 61 67 54 79 70 65 22 3e 40 54 61 67 54 79 70 65 3c 2f 61 3e 20 74 6f .href="#TagType">@TagType</a>.to
2e660 0a 20 20 20 20 20 20 6f 62 74 61 69 6e 20 74 68 65 20 65 6e 75 6d 20 74 79 70 65 20 66 72 6f 6d .......obtain.the.enum.type.from
2e680 20 74 68 65 20 75 6e 69 6f 6e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 .the.union.type........</p>.....
2e6a0 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 ..<p.class="file">test.zig</p><p
2e6c0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
2e6e0 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 ="tok-kw">const</span>.std.=.<sp
2e700 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f an.class="tok-builtin">@import</
2e720 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>(<span.class="tok-str">&quo
2e740 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 t;std&quot;</span>);.<span.class
2e760 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 ="tok-kw">const</span>.assert.=.
2e780 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 std.debug.assert;..<span.class="
2e7a0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 6f 6d 70 6c 65 78 54 79 70 65 tok-kw">const</span>.ComplexType
2e7c0 54 61 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c Tag.=.<span.class="tok-kw">enum<
2e7e0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 4f 6b 2c 0a 20 20 20 20 4e 6f 74 4f 6b 2c 0a 7d 3b 0a 3c /span>.{.....Ok,.....NotOk,.};.<
2e800 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
2e820 20 43 6f 6d 70 6c 65 78 54 79 70 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .ComplexType.=.<span.class="tok-
2e840 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 28 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 29 kw">union</span>(ComplexTypeTag)
2e860 20 7b 0a 20 20 20 20 4f 6b 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .{.....Ok:.<span.class="tok-type
2e880 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 4e 6f 74 4f 6b 3a 20 3c 73 70 61 6e 20 63 6c ">u8</span>,.....NotOk:.<span.cl
2e8a0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a ass="tok-type">void</span>,.};..
2e8c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
2e8e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 77 69 .<span.class="tok-str">&quot;swi
2e900 74 63 68 20 6f 6e 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e tch.on.tagged.union&quot;</span>
2e920 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 .{.....<span.class="tok-kw">cons
2e940 74 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 43 6f 6d 70 6c 65 78 54 79 70 65 7b 20 2e 4f 6b 20 3d 20 t</span>.c.=.ComplexType{..Ok.=.
2e960 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 <span.class="tok-number">42</spa
2e980 6e 3e 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 28 n>.};.....assert(ComplexTypeTag(
2e9a0 63 29 20 3d 3d 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 2e 4f 6b 29 3b 0a 0a 20 20 20 20 3c c).==.ComplexTypeTag.Ok);......<
2e9c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e span.class="tok-kw">switch</span
2e9e0 3e 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 2e 4f >.(c).{.........ComplexTypeTag.O
2ea00 6b 20 3d 26 67 74 3b 20 7c 76 61 6c 75 65 7c 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 k.=&gt;.|value|.assert(value.==.
2ea20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 <span.class="tok-number">42</spa
2ea40 6e 3e 29 2c 0a 20 20 20 20 20 20 20 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 2e 4e 6f 74 4f n>),.........ComplexTypeTag.NotO
2ea60 6b 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 k.=&gt;.<span.class="tok-kw">unr
2ea80 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 eachable</span>,.....}.}..<span.
2eaa0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e class="tok-kw">test</span>.<span
2eac0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 54 61 67 54 79 70 65 26 .class="tok-str">&quot;@TagType&
2eae0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 quot;</span>.{.....assert(<span.
2eb00 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 61 67 54 79 70 65 3c 2f 73 70 class="tok-builtin">@TagType</sp
2eb20 61 6e 3e 28 43 6f 6d 70 6c 65 78 54 79 70 65 29 20 3d 3d 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 an>(ComplexType).==.ComplexTypeT
2eb40 61 67 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c ag);.}</code></pre><pre><code.cl
2eb60 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a ass="shell">$.zig.test.test.zig.
2eb80 31 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 73 77 69 74 63 68 20 6f 6e 20 74 61 67 67 65 64 20 1/2.test.&quot;switch.on.tagged.
2eba0 75 6e 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b union&quot;...OK.2/2.test.&quot;
2ebc0 40 54 61 67 54 79 70 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 @TagType&quot;...OK.All.tests.pa
2ebe0 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 49 6e ssed..</code></pre>........<p>In
2ec00 20 6f 72 64 65 72 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 70 61 79 6c 6f 61 64 20 6f 66 20 .order.to.modify.the.payload.of.
2ec20 61 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 20 69 6e 20 61 20 73 77 69 74 63 68 20 65 78 70 72 65 a.tagged.union.in.a.switch.expre
2ec40 73 73 69 6f 6e 2c 0a 20 20 20 20 20 20 70 6c 61 63 65 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 ssion,.......place.a.<code.class
2ec60 3d 22 7a 69 67 22 3e 2a 3c 2f 63 6f 64 65 3e 20 62 65 66 6f 72 65 20 74 68 65 20 76 61 72 69 61 ="zig">*</code>.before.the.varia
2ec80 62 6c 65 20 6e 61 6d 65 20 74 6f 20 6d 61 6b 65 20 69 74 20 61 20 70 6f 69 6e 74 65 72 3a 0a 20 ble.name.to.make.it.a.pointer:..
2eca0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e .....</p>.......<p.class="file">
2ecc0 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 test.zig</p><pre><code.class="zi
2ece0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 g"><span.class="tok-kw">const</s
2ed00 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c pan>.std.=.<span.class="tok-buil
2ed20 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d tin">@import</span>(<span.class=
2ed40 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e "tok-str">&quot;std&quot;</span>
2ed60 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 );.<span.class="tok-kw">const</s
2ed80 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a pan>.assert.=.std.debug.assert;.
2eda0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
2edc0 6e 3e 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d n>.ComplexTypeTag.=.<span.class=
2ede0 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 4f 6b 2c 0a 20 "tok-kw">enum</span>.{.....Ok,..
2ee00 20 20 20 4e 6f 74 4f 6b 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ...NotOk,.};.<span.class="tok-kw
2ee20 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 6f 6d 70 6c 65 78 54 79 70 65 20 3d 20 3c 73 70 ">const</span>.ComplexType.=.<sp
2ee40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 28 43 an.class="tok-kw">union</span>(C
2ee60 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 29 20 7b 0a 20 20 20 20 4f 6b 3a 20 3c 73 70 61 6e 20 63 omplexTypeTag).{.....Ok:.<span.c
2ee80 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 4e lass="tok-type">u8</span>,.....N
2eea0 6f 74 4f 6b 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 otOk:.<span.class="tok-type">voi
2eec0 64 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b d</span>,.};..<span.class="tok-k
2eee0 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d w">test</span>.<span.class="tok-
2ef00 73 74 72 22 3e 26 71 75 6f 74 3b 6d 6f 64 69 66 79 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 20 69 str">&quot;modify.tagged.union.i
2ef20 6e 20 73 77 69 74 63 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 n.switch&quot;</span>.{.....<spa
2ef40 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 n.class="tok-kw">var</span>.c.=.
2ef60 43 6f 6d 70 6c 65 78 54 79 70 65 7b 20 2e 4f 6b 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ComplexType{..Ok.=.<span.class="
2ef80 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 61 73 73 tok-number">42</span>.};.....ass
2efa0 65 72 74 28 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 28 63 29 20 3d 3d 20 43 6f 6d 70 6c 65 78 ert(ComplexTypeTag(c).==.Complex
2efc0 54 79 70 65 54 61 67 2e 4f 6b 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 TypeTag.Ok);......<span.class="t
2efe0 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7b 0a 20 20 20 20 20 ok-kw">switch</span>.(c).{......
2f000 20 20 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 2e 4f 6b 20 3d 26 67 74 3b 20 7c 2a 76 61 6c ...ComplexTypeTag.Ok.=&gt;.|*val
2f020 75 65 7c 20 76 61 6c 75 65 2e 2a 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ue|.value.*.+=.<span.class="tok-
2f040 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 43 6f 6d 70 6c 65 number">1</span>,.........Comple
2f060 78 54 79 70 65 54 61 67 2e 4e 6f 74 4f 6b 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 xTypeTag.NotOk.=&gt;.<span.class
2f080 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 ="tok-kw">unreachable</span>,...
2f0a0 20 20 7d 0a 0a 20 20 20 20 61 73 73 65 72 74 28 63 2e 4f 6b 20 3d 3d 20 3c 73 70 61 6e 20 63 6c ..}......assert(c.Ok.==.<span.cl
2f0c0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 33 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f ass="tok-number">43</span>);.}</
2f0e0 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 code></pre><pre><code.class="she
2f100 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 ll">$.zig.test.test.zig.1/1.test
2f120 20 26 71 75 6f 74 3b 6d 6f 64 69 66 79 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 20 69 6e 20 73 77 .&quot;modify.tagged.union.in.sw
2f140 69 74 63 68 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 itch&quot;...OK.All.tests.passed
2f160 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 ..</code></pre>........<p>......
2f180 20 55 6e 69 6f 6e 73 20 63 61 6e 20 62 65 20 6d 61 64 65 20 74 6f 20 69 6e 66 65 72 20 74 68 65 .Unions.can.be.made.to.infer.the
2f1a0 20 65 6e 75 6d 20 74 61 67 20 74 79 70 65 2e 0a 20 20 20 20 20 20 46 75 72 74 68 65 72 2c 20 75 .enum.tag.type........Further,.u
2f1c0 6e 69 6f 6e 73 20 63 61 6e 20 68 61 76 65 20 6d 65 74 68 6f 64 73 20 6a 75 73 74 20 6c 69 6b 65 nions.can.have.methods.just.like
2f1e0 20 73 74 72 75 63 74 73 20 61 6e 64 20 65 6e 75 6d 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 .structs.and.enums........</p>..
2f200 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 .....<p.class="file">test.zig</p
2f220 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ><pre><code.class="zig"><span.cl
2f240 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 ass="tok-kw">const</span>.std.=.
2f260 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
2f280 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
2f2a0 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c quot;std&quot;</span>);.<span.cl
2f2c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 ass="tok-kw">const</span>.assert
2f2e0 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 .=.std.debug.assert;..<span.clas
2f300 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 56 61 72 69 61 6e 74 20 s="tok-kw">const</span>.Variant.
2f320 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 =.<span.class="tok-kw">union</sp
2f340 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 an>(<span.class="tok-kw">enum</s
2f360 70 61 6e 3e 29 20 7b 0a 20 20 20 20 49 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pan>).{.....Int:.<span.class="to
2f380 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 42 6f 6f 6c 3a 20 3c 73 k-type">i32</span>,.....Bool:.<s
2f3a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e pan.class="tok-type">bool</span>
2f3c0 2c 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 ,......<span.class="tok-comment"
2f3e0 3e 2f 2f 20 76 6f 69 64 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 20 77 68 65 6e 20 69 6e 66 >//.void.can.be.omitted.when.inf
2f400 65 72 72 69 6e 67 20 65 6e 75 6d 20 74 61 67 20 74 79 70 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 erring.enum.tag.type.</span>....
2f420 20 4e 6f 6e 65 2c 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 .None,......<span.class="tok-kw"
2f440 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e >fn</span>.<span.class="tok-fn">
2f460 74 72 75 74 68 79 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 56 61 72 69 61 6e 74 29 20 3c 73 70 truthy</span>(self:.Variant).<sp
2f480 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 20 an.class="tok-type">bool</span>.
2f4a0 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 {.........<span.class="tok-kw">r
2f4c0 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 eturn</span>.<span.class="tok-kw
2f4e0 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 73 65 6c 66 29 20 7b 0a 20 20 20 20 20 20 20 ">switch</span>.(self).{........
2f500 20 20 20 20 20 56 61 72 69 61 6e 74 2e 49 6e 74 20 3d 26 67 74 3b 20 7c 78 5f 69 6e 74 7c 20 78 .....Variant.Int.=&gt;.|x_int|.x
2f520 5f 69 6e 74 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 _int.!=.<span.class="tok-number"
2f540 3e 30 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 61 72 69 61 6e 74 2e 42 >0</span>,.............Variant.B
2f560 6f 6f 6c 20 3d 26 67 74 3b 20 7c 78 5f 62 6f 6f 6c 7c 20 78 5f 62 6f 6f 6c 2c 0a 20 20 20 20 20 ool.=&gt;.|x_bool|.x_bool,......
2f580 20 20 20 20 20 20 20 56 61 72 69 61 6e 74 2e 4e 6f 6e 65 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 .......Variant.None.=&gt;.<span.
2f5a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 0a 20 class="tok-null">false</span>,..
2f5c0 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 7d 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d .......};.....}.};..<span.class=
2f5e0 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
2f600 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 6e 69 6f 6e 20 6d 65 74 68 6f 64 26 71 75 ="tok-str">&quot;union.method&qu
2f620 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ot;</span>.{.....<span.class="to
2f640 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 76 31 20 3d 20 56 61 72 69 61 6e 74 7b 20 2e k-kw">var</span>.v1.=.Variant{..
2f660 49 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 Int.=.<span.class="tok-number">1
2f680 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d </span>.};.....<span.class="tok-
2f6a0 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 76 32 20 3d 20 56 61 72 69 61 6e 74 7b 20 2e 42 6f kw">var</span>.v2.=.Variant{..Bo
2f6c0 6f 6c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 ol.=.<span.class="tok-null">fals
2f6e0 65 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 76 31 2e 74 72 75 74 68 e</span>.};......assert(v1.truth
2f700 79 28 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 21 76 32 2e 74 72 75 74 68 79 28 29 29 3b 0a y());.....assert(!v2.truthy());.
2f720 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
2f740 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 shell">$.zig.test.test.zig.1/1.t
2f760 65 73 74 20 26 71 75 6f 74 3b 75 6e 69 6f 6e 20 6d 65 74 68 6f 64 26 71 75 6f 74 3b 2e 2e 2e 4f est.&quot;union.method&quot;...O
2f780 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 K.All.tests.passed..</code></pre
2f7a0 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 74 61 67 >........<p>.......<a.href="#tag
2f7c0 4e 61 6d 65 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 61 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 Name">@tagName</a>.can.be.used.t
2f7e0 6f 20 72 65 74 75 72 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 o.return.a.<a.href="#comptime">c
2f800 6f 6d 70 74 69 6d 65 3c 2f 61 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a omptime</a>.......<code.class="z
2f820 69 67 22 3e 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 ig">[]<span.class="tok-kw">const
2f840 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 </span>.<span.class="tok-type">u
2f860 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 76 61 6c 75 65 20 72 65 70 72 65 73 65 6e 74 69 8</span></code>.value.representi
2f880 6e 67 20 74 68 65 20 66 69 65 6c 64 20 6e 61 6d 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 ng.the.field.name:.......</p>...
2f8a0 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e ....<p.class="file">test.zig</p>
2f8c0 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
2f8e0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c ss="tok-kw">const</span>.std.=.<
2f900 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
2f920 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
2f940 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 uot;std&quot;</span>);.<span.cla
2f960 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 ss="tok-kw">const</span>.assert.
2f980 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 =.std.debug.assert;..<span.class
2f9a0 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 6d 61 6c 6c 32 20 3d 20 ="tok-kw">const</span>.Small2.=.
2f9c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e <span.class="tok-kw">union</span
2f9e0 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 >(<span.class="tok-kw">enum</spa
2fa00 6e 3e 29 20 7b 0a 20 20 20 20 41 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 n>).{.....A:.<span.class="tok-ty
2fa20 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 42 3a 20 3c 73 70 61 6e 20 63 6c 61 pe">i32</span>,.....B:.<span.cla
2fa40 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 43 ss="tok-type">bool</span>,.....C
2fa60 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 :.<span.class="tok-type">u8</spa
2fa80 6e 3e 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 n>,.};.<span.class="tok-kw">test
2faa0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>.<span.class="tok-str">&q
2fac0 75 6f 74 3b 40 74 61 67 4e 61 6d 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 uot;@tagName&quot;</span>.{.....
2fae0 61 73 73 65 72 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 assert(std.mem.eql(<span.class="
2fb00 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-type">u8</span>,.<span.class
2fb20 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 53 ="tok-builtin">@tagName</span>(S
2fb40 6d 61 6c 6c 32 2e 43 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e mall2.C),.<span.class="tok-str">
2fb60 26 71 75 6f 74 3b 43 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e &quot;C&quot;</span>));.}</code>
2fb80 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 </pre><pre><code.class="shell">$
2fba0 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f .zig.test.test.zig.1/1.test.&quo
2fbc0 74 3b 40 74 61 67 4e 61 6d 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 t;@tagName&quot;...OK.All.tests.
2fbe0 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 passed..</code></pre>...........
2fc00 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 78 74 65 72 6e 2d 75 6e 69 6f 6e 22 3e 3c 61 20 68 72 .....<h2.id="extern-union"><a.hr
2fc20 65 66 3d 22 23 74 6f 63 2d 65 78 74 65 72 6e 2d 75 6e 69 6f 6e 22 3e 65 78 74 65 72 6e 20 75 6e ef="#toc-extern-union">extern.un
2fc40 69 6f 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 78 ion</a>.<a.class="hdr".href="#ex
2fc60 74 65 72 6e 2d 75 6e 69 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c tern-union">..</a></h2>........<
2fc80 70 3e 0a 20 20 20 20 20 20 41 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 p>.......An.<code.class="zig"><s
2fca0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e pan.class="tok-kw">extern</span>
2fcc0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 .<span.class="tok-kw">union</spa
2fce0 6e 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 20 67 75 61 72 n></code>.has.memory.layout.guar
2fd00 61 6e 74 65 65 64 20 74 6f 20 62 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 0a 20 20 20 anteed.to.be.compatible.with....
2fd20 20 20 20 74 68 65 20 74 61 72 67 65 74 20 43 20 41 42 49 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ...the.target.C.ABI........</p>.
2fd40 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c ......<p>See.also:</p><ul>.<li><
2fd60 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 73 74 72 75 63 74 22 3e 65 78 74 65 72 6e 20 73 a.href="#extern-struct">extern.s
2fd80 74 72 75 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 truct</a></li>.</ul>............
2fda0 20 20 20 20 3c 68 32 20 69 64 3d 22 70 61 63 6b 65 64 2d 75 6e 69 6f 6e 22 3e 3c 61 20 68 72 65 ....<h2.id="packed-union"><a.hre
2fdc0 66 3d 22 23 74 6f 63 2d 70 61 63 6b 65 64 2d 75 6e 69 6f 6e 22 3e 70 61 63 6b 65 64 20 75 6e 69 f="#toc-packed-union">packed.uni
2fde0 6f 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 70 61 63 on</a>.<a.class="hdr".href="#pac
2fe00 6b 65 64 2d 75 6e 69 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 ked-union">..</a></h2>........<p
2fe20 3e 41 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 >A.<code.class="zig"><span.class
2fe40 3d 22 74 6f 6b 2d 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ="tok-kw">packed</span>.<span.cl
2fe60 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ass="tok-kw">union</span></code>
2fe80 20 68 61 73 20 77 65 6c 6c 2d 64 65 66 69 6e 65 64 20 69 6e 2d 6d 65 6d 6f 72 79 20 6c 61 79 6f .has.well-defined.in-memory.layo
2fea0 75 74 20 61 6e 64 20 69 73 20 65 6c 69 67 69 62 6c 65 0a 20 20 20 20 20 20 74 6f 20 62 65 20 69 ut.and.is.eligible.......to.be.i
2fec0 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 73 74 72 75 63 74 22 3e 70 61 63 n.a.<a.href="#packed-struct">pac
2fee0 6b 65 64 20 73 74 72 75 63 74 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 ked.struct</a>..................
2ff00 20 20 20 20 20 3c 68 31 20 69 64 3d 22 62 6c 6f 63 6b 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 .....<h1.id="blocks"><a.href="#t
2ff20 6f 63 2d 62 6c 6f 63 6b 73 22 3e 62 6c 6f 63 6b 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 oc-blocks">blocks</a>.<a.class="
2ff40 68 64 72 22 20 68 72 65 66 3d 22 23 62 6c 6f 63 6b 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a hdr".href="#blocks">..</a></h1>.
2ff60 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 6c 6f 63 6b 73 20 61 72 65 20 75 73 65 64 .......<p>.......Blocks.are.used
2ff80 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 73 63 6f 70 65 20 6f 66 20 76 61 72 69 61 62 6c 65 20 .to.limit.the.scope.of.variable.
2ffa0 64 65 63 6c 61 72 61 74 69 6f 6e 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c declarations:.......</p>.......<
2ffc0 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e p.class="file">test.zig</p><pre>
2ffe0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
30000 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ok-kw">test</span>.<span.class="
30020 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 63 63 65 73 73 20 76 61 72 69 61 62 6c 65 20 61 tok-str">&quot;access.variable.a
30040 66 74 65 72 20 62 6c 6f 63 6b 20 73 63 6f 70 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a fter.block.scope&quot;</span>.{.
30060 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ....{.........<span.class="tok-k
30080 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f w">var</span>.x:.<span.class="to
300a0 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-type">i32</span>.=.<span.class
300c0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 20 20 ="tok-number">1</span>;.....}...
300e0 20 20 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e ..x.+=.<span.class="tok-number">
30100 31 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 1</span>;.}</code></pre><pre><co
30120 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 de.class="shell">$.zig.test.test
30140 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e .zig.<span.class="t0_1">/home/an
30160 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 dy/dev/zig/docgen_tmp/test.zig:5
30180 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 :5:.</span><span.class="t31_1">e
301a0 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 rror:</span><span.class="t0_1">.
301c0 75 73 65 20 6f 66 20 75 6e 64 65 63 6c 61 72 65 64 20 69 64 65 6e 74 69 66 69 65 72 20 27 78 27 use.of.undeclared.identifier.'x'
301e0 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 78 20 2b 3d 20 31 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c </span>.....x.+=.1;.....<span.cl
30200 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ass="t32_1">^</span>.</code></pr
30220 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 42 6c 6f 63 6b 73 20 61 72 65 20 65 78 70 72 65 73 73 69 e>........<p>Blocks.are.expressi
30240 6f 6e 73 2e 20 57 68 65 6e 20 6c 61 62 65 6c 65 64 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ons..When.labeled,.<code.class="
30260 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c zig"><span.class="tok-kw">break<
30280 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 64 0a 20 20 20 20 20 20 /span></code>.can.be.used.......
302a0 74 6f 20 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 20 66 72 6f 6d 20 74 68 65 20 62 6c 6f 63 6b to.return.a.value.from.the.block
302c0 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c :.......</p>.......<p.class="fil
302e0 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
30300 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 "zig"><span.class="tok-kw">const
30320 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 </span>.std.=.<span.class="tok-b
30340 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 uiltin">@import</span>(<span.cla
30360 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 ss="tok-str">&quot;std&quot;</sp
30380 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 an>);.<span.class="tok-kw">const
303a0 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 </span>.assert.=.std.debug.asser
303c0 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 t;..<span.class="tok-kw">test</s
303e0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
30400 3b 6c 61 62 65 6c 65 64 20 62 72 65 61 6b 20 66 72 6f 6d 20 6c 61 62 65 6c 65 64 20 62 6c 6f 63 ;labeled.break.from.labeled.bloc
30420 6b 20 65 78 70 72 65 73 73 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 k.expression&quot;</span>.{.....
30440 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">var</span>.
30460 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 y:.<span.class="tok-type">i32</s
30480 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e pan>.=.<span.class="tok-number">
304a0 31 32 33 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 123</span>;......<span.class="to
304c0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 20 3d 20 62 6c 6b 3a 20 7b 0a 20 20 k-kw">const</span>.x.=.blk:.{...
304e0 20 20 20 20 20 20 79 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 ......y.+=.<span.class="tok-numb
30500 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 er">1</span>;.........<span.clas
30520 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3a 62 6c 6b 20 79 3b 0a s="tok-kw">break</span>.:blk.y;.
30540 20 20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 ....};.....assert(x.==.<span.cla
30560 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 ss="tok-number">124</span>);....
30580 20 61 73 73 65 72 74 28 79 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .assert(y.==.<span.class="tok-nu
305a0 6d 62 65 72 22 3e 31 32 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 mber">124</span>);.}</code></pre
305c0 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 ><pre><code.class="shell">$.zig.
305e0 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 6c 61 62 test.test.zig.1/1.test.&quot;lab
30600 65 6c 65 64 20 62 72 65 61 6b 20 66 72 6f 6d 20 6c 61 62 65 6c 65 64 20 62 6c 6f 63 6b 20 65 78 eled.break.from.labeled.block.ex
30620 70 72 65 73 73 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 pression&quot;...OK.All.tests.pa
30640 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 48 65 ssed..</code></pre>........<p>He
30660 72 65 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 6c 6b 3c 2f 63 6f 64 65 3e re,.<code.class="zig">blk</code>
30680 20 63 61 6e 20 62 65 20 61 6e 79 20 6e 61 6d 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 .can.be.any.name.</p>.......<p>S
306a0 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4c ee.also:</p><ul>.<li><a.href="#L
306c0 61 62 65 6c 65 64 2d 77 68 69 6c 65 22 3e 4c 61 62 65 6c 65 64 20 77 68 69 6c 65 3c 2f 61 3e 3c abeled-while">Labeled.while</a><
306e0 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4c 61 62 65 6c 65 64 2d 66 6f 72 22 3e /li>.<li><a.href="#Labeled-for">
30700 4c 61 62 65 6c 65 64 20 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 Labeled.for</a></li>.</ul>......
30720 20 20 20 3c 68 32 20 69 64 3d 22 53 68 61 64 6f 77 69 6e 67 22 3e 3c 61 20 68 72 65 66 3d 22 23 ...<h2.id="Shadowing"><a.href="#
30740 74 6f 63 2d 53 68 61 64 6f 77 69 6e 67 22 3e 53 68 61 64 6f 77 69 6e 67 3c 2f 61 3e 20 3c 61 20 toc-Shadowing">Shadowing</a>.<a.
30760 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 68 61 64 6f 77 69 6e 67 22 3e c2 a7 class="hdr".href="#Shadowing">..
30780 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 49 74 20 69 73 20 6e 65 76 65 72 20 </a></h2>........<p>It.is.never.
307a0 61 6c 6c 6f 77 65 64 20 66 6f 72 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 20 74 6f 20 22 68 69 allowed.for.an.identifier.to."hi
307c0 64 65 22 20 61 6e 6f 74 68 65 72 20 6f 6e 65 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 73 61 6d de".another.one.by.using.the.sam
307e0 65 20 6e 61 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 e.name:</p>.......<p.class="file
30800 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">test.zig</p><pre><code.class="
30820 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c zig"><span.class="tok-kw">const<
30840 2f 73 70 61 6e 3e 20 70 69 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d /span>.pi.=.<span.class="tok-num
30860 62 65 72 22 3e 33 2e 31 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ber">3.14</span>;..<span.class="
30880 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">test</span>.<span.class=
308a0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 73 69 64 65 20 74 65 73 74 20 62 6c 6f 63 "tok-str">&quot;inside.test.bloc
308c0 6b 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 k&quot;</span>.{.....<span.class
308e0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4c 65 74 27 73 20 65 76 65 6e 20 67 6f 20 ="tok-comment">//.Let's.even.go.
30900 69 6e 73 69 64 65 20 61 6e 6f 74 68 65 72 20 62 6c 6f 63 6b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 inside.another.block</span>.....
30920 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 {.........<span.class="tok-kw">v
30940 61 72 3c 2f 73 70 61 6e 3e 20 70 69 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ar</span>.pi:.<span.class="tok-t
30960 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ype">i32</span>.=.<span.class="t
30980 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 7d 3c ok-number">1234</span>;.....}.}<
309a0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 /code></pre><pre><code.class="sh
309c0 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 ell">$.zig.test.test.zig.<span.c
309e0 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 lass="t0_1">/home/andy/dev/zig/d
30a00 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c ocgen_tmp/test.zig:6:9:.</span><
30a20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e span.class="t31_1">error:</span>
30a40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 64 65 66 69 6e 69 74 69 6f 6e <span.class="t0_1">.redefinition
30a60 20 6f 66 20 27 70 69 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 76 61 72 20 70 69 3a 20 .of.'pi'</span>.........var.pi:.
30a80 69 33 32 20 3d 20 31 32 33 34 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d i32.=.1234;.........<span.class=
30aa0 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 "t32_1">^</span>.<span.class="t0
30ac0 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d _1">/home/andy/dev/zig/docgen_tm
30ae0 70 2f 74 65 73 74 2e 7a 69 67 3a 31 3a 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 p/test.zig:1:1:.</span><span.cla
30b00 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 ss="t36_1">note:</span><span.cla
30b20 73 73 3d 22 74 30 5f 31 22 3e 20 70 72 65 76 69 6f 75 73 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 ss="t0_1">.previous.definition.i
30b40 73 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 63 6f 6e 73 74 20 70 69 20 3d 20 33 2e 31 34 3b 0a 3c s.here</span>.const.pi.=.3.14;.<
30b60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f span.class="t32_1">^</span>.</co
30b80 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 65 63 61 75 de></pre>........<p>.......Becau
30ba0 73 65 20 6f 66 20 74 68 69 73 2c 20 77 68 65 6e 20 79 6f 75 20 72 65 61 64 20 5a 69 67 20 63 6f se.of.this,.when.you.read.Zig.co
30bc0 64 65 20 79 6f 75 20 63 61 6e 20 72 65 6c 79 20 6f 6e 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 de.you.can.rely.on.an.identifier
30be0 20 61 6c 77 61 79 73 20 6d 65 61 6e 69 6e 67 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 2c 0a .always.meaning.the.same.thing,.
30c00 20 20 20 20 20 20 77 69 74 68 69 6e 20 74 68 65 20 73 63 6f 70 65 20 69 74 20 69 73 20 64 65 66 ......within.the.scope.it.is.def
30c20 69 6e 65 64 2e 20 4e 6f 74 65 20 74 68 61 74 20 79 6f 75 20 63 61 6e 2c 20 68 6f 77 65 76 65 72 ined..Note.that.you.can,.however
30c40 20 75 73 65 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 69 66 20 74 68 65 20 73 63 6f 70 65 73 .use.the.same.name.if.the.scopes
30c60 20 61 72 65 20 73 65 70 61 72 61 74 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 .are.separate:.......</p>.......
30c80 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 <p.class="file">test.zig</p><pre
30ca0 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
30cc0 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">test</span>.<span.class=
30ce0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 65 70 61 72 61 74 65 20 73 63 6f 70 65 73 26 "tok-str">&quot;separate.scopes&
30d00 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 quot;</span>.{.....{.........<sp
30d20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 an.class="tok-kw">const</span>.p
30d40 69 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 2e 31 i.=.<span.class="tok-number">3.1
30d60 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 4</span>;.....}.....{.........<s
30d80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 69 pan.class="tok-kw">var</span>.pi
30da0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 :.<span.class="tok-type">bool</s
30dc0 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 pan>.=.<span.class="tok-null">tr
30de0 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c ue</span>;.....}.}</code></pre><
30e00 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 pre><code.class="shell">$.zig.te
30e20 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 73 65 70 61 72 st.test.zig.1/1.test.&quot;separ
30e40 61 74 65 20 73 63 6f 70 65 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 ate.scopes&quot;...OK.All.tests.
30e60 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 passed..</code></pre>...........
30e80 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 73 77 69 74 63 68 22 3e 3c 61 20 68 ............<h1.id="switch"><a.h
30ea0 72 65 66 3d 22 23 74 6f 63 2d 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 20 3c 61 20 ref="#toc-switch">switch</a>.<a.
30ec0 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e c2 a7 3c 2f 61 class="hdr".href="#switch">..</a
30ee0 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 77 ></h1>........<p.class="file">sw
30f00 69 74 63 68 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 itch.zig</p><pre><code.class="zi
30f20 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 g"><span.class="tok-kw">const</s
30f40 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 pan>.assert.=.<span.class="tok-b
30f60 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 uiltin">@import</span>(<span.cla
30f80 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 ss="tok-str">&quot;std&quot;</sp
30fa0 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 an>).debug.assert;.<span.class="
30fc0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 75 69 6c 74 69 6e 20 3d 20 3c tok-kw">const</span>.builtin.=.<
30fe0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
31000 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
31020 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 uot;builtin&quot;</span>);..<spa
31040 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 n.class="tok-kw">test</span>.<sp
31060 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 77 69 74 63 68 20 an.class="tok-str">&quot;switch.
31080 73 69 6d 70 6c 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 simple&quot;</span>.{.....<span.
310a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c class="tok-kw">const</span>.a:.<
310c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e span.class="tok-type">u64</span>
310e0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f .=.<span.class="tok-number">10</
31100 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e span>;.....<span.class="tok-kw">
31120 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 7a 7a 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f const</span>.zz:.<span.class="to
31140 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-type">u64</span>.=.<span.class
31160 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 33 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c ="tok-number">103</span>;......<
31180 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 6c 6c 20 span.class="tok-comment">//.All.
311a0 62 72 61 6e 63 68 65 73 20 6f 66 20 61 20 73 77 69 74 63 68 20 65 78 70 72 65 73 73 69 6f 6e 20 branches.of.a.switch.expression.
311c0 6d 75 73 74 20 62 65 20 61 62 6c 65 20 74 6f 20 62 65 20 63 6f 65 72 63 65 64 20 74 6f 20 61 3c must.be.able.to.be.coerced.to.a<
311e0 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d /span>.....<span.class="tok-comm
31200 65 6e 74 22 3e 2f 2f 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 ent">//.common.type.</span>.....
31220 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 3c 2f 73 70 <span.class="tok-comment">//</sp
31240 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 an>.....<span.class="tok-comment
31260 22 3e 2f 2f 20 42 72 61 6e 63 68 65 73 20 63 61 6e 6e 6f 74 20 66 61 6c 6c 74 68 72 6f 75 67 68 ">//.Branches.cannot.fallthrough
31280 2e 20 49 66 20 66 61 6c 6c 74 68 72 6f 75 67 68 20 62 65 68 61 76 69 6f 72 20 69 73 20 64 65 73 ..If.fallthrough.behavior.is.des
312a0 69 72 65 64 2c 20 63 6f 6d 62 69 6e 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 ired,.combine</span>.....<span.c
312c0 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 63 61 73 65 73 20 lass="tok-comment">//.the.cases.
312e0 61 6e 64 20 75 73 65 20 61 6e 20 69 66 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 and.use.an.if.</span>.....<span.
31300 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 20 3d 20 class="tok-kw">const</span>.b.=.
31320 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 <span.class="tok-kw">switch</spa
31340 6e 3e 20 28 61 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f n>.(a).{.........<span.class="to
31360 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4d 75 6c 74 69 70 6c 65 20 63 61 73 65 73 20 63 61 6e k-comment">//.Multiple.cases.can
31380 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 76 69 61 20 61 20 27 2c 27 3c 2f 73 70 61 6e 3e 0a 20 20 .be.combined.via.a.','</span>...
313a0 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 ......<span.class="tok-number">1
313c0 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 </span>,.<span.class="tok-number
313e0 22 3e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ">2</span>,.<span.class="tok-num
31400 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ber">3</span>.=&gt;.<span.class=
31420 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 20 20 20 20 "tok-number">0</span>,..........
31440 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 52 61 6e <span.class="tok-comment">//.Ran
31460 67 65 73 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65 64 20 75 73 69 6e 67 20 74 68 65 20 2e ges.can.be.specified.using.the..
31480 2e 2e 20 73 79 6e 74 61 78 2e 20 54 68 65 73 65 20 61 72 65 20 69 6e 63 6c 75 73 69 76 65 3c 2f ...syntax..These.are.inclusive</
314a0 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 span>.........<span.class="tok-c
314c0 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 62 6f 74 68 20 65 6e 64 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 omment">//.both.ends.</span>....
314e0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c .....<span.class="tok-number">5<
31500 2f 73 70 61 6e 3e 2e 2e 2e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 /span>...<span.class="tok-number
31520 22 3e 31 30 30 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">100</span>.=&gt;.<span.class="
31540 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 20 20 20 20 3c tok-number">1</span>,..........<
31560 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 42 72 61 6e span.class="tok-comment">//.Bran
31580 63 68 65 73 20 63 61 6e 20 62 65 20 61 72 62 69 74 72 61 72 69 6c 79 20 63 6f 6d 70 6c 65 78 2e ches.can.be.arbitrarily.complex.
315a0 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>.........<span.class="tok
315c0 2d 6e 75 6d 62 65 72 22 3e 31 30 31 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 62 6c 6b 3a 20 7b -number">101</span>.=&gt;.blk:.{
315e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .............<span.class="tok-kw
31600 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ">const</span>.c:.<span.class="t
31620 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ok-type">u64</span>.=.<span.clas
31640 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 s="tok-number">5</span>;........
31660 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c .....<span.class="tok-kw">break<
31680 2f 73 70 61 6e 3e 20 3a 62 6c 6b 20 63 20 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /span>.:blk.c.*.<span.class="tok
316a0 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d -number">2</span>.+.<span.class=
316c0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 7d "tok-number">1</span>;.........}
316e0 2c 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d ,..........<span.class="tok-comm
31700 65 6e 74 22 3e 2f 2f 20 53 77 69 74 63 68 69 6e 67 20 6f 6e 20 61 72 62 69 74 72 61 72 79 20 65 ent">//.Switching.on.arbitrary.e
31720 78 70 72 65 73 73 69 6f 6e 73 20 69 73 20 61 6c 6c 6f 77 65 64 20 61 73 20 6c 6f 6e 67 20 61 73 xpressions.is.allowed.as.long.as
31740 20 74 68 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .the</span>.........<span.class=
31760 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6b "tok-comment">//.expression.is.k
31780 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 nown.at.compile-time.</span>....
317a0 20 20 20 20 20 7a 7a 20 3d 26 67 74 3b 20 7a 7a 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 .....zz.=&gt;.zz,.........<span.
317c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 62 class="tok-kw">comptime</span>.b
317e0 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 lk:.{.............<span.class="t
31800 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 64 3a 20 3c 73 70 61 6e 20 63 6c 61 ok-kw">const</span>.d:.<span.cla
31820 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e ss="tok-type">u32</span>.=.<span
31840 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">5</span>;...
31860 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ..........<span.class="tok-kw">c
31880 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d onst</span>.e:.<span.class="tok-
318a0 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 type">u32</span>.=.<span.class="
318c0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 tok-number">100</span>;.........
318e0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f ....<span.class="tok-kw">break</
31900 73 70 61 6e 3e 20 3a 62 6c 6b 20 64 20 2b 20 65 3b 0a 20 20 20 20 20 20 20 20 7d 20 3d 26 67 74 span>.:blk.d.+.e;.........}.=&gt
31920 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 37 3c 2f ;.<span.class="tok-number">107</
31940 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b span>,..........<span.class="tok
31960 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 63 61 74 -comment">//.The.else.branch.cat
31980 63 68 65 73 20 65 76 65 72 79 74 68 69 6e 67 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 63 61 70 74 ches.everything.not.already.capt
319a0 75 72 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ured.</span>.........<span.class
319c0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 45 6c 73 65 20 62 72 61 6e 63 68 65 73 20 ="tok-comment">//.Else.branches.
319e0 61 72 65 20 6d 61 6e 64 61 74 6f 72 79 20 75 6e 6c 65 73 73 20 74 68 65 20 65 6e 74 69 72 65 20 are.mandatory.unless.the.entire.
31a00 72 61 6e 67 65 20 6f 66 20 76 61 6c 75 65 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c range.of.values</span>.........<
31a20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 73 20 68 span.class="tok-comment">//.is.h
31a40 61 6e 64 6c 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 andled.</span>.........<span.cla
31a60 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 ss="tok-kw">else</span>.=&gt;.<s
31a80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 2c pan.class="tok-number">9</span>,
31aa0 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 62 20 3d 3d 20 3c 73 70 61 6e 20 63 .....};......assert(b.==.<span.c
31ac0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a lass="tok-number">1</span>);.}..
31ae0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 77 69 <span.class="tok-comment">//.Swi
31b00 74 63 68 20 65 78 70 72 65 73 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 6f 75 74 73 tch.expressions.can.be.used.outs
31b20 69 64 65 20 61 20 66 75 6e 63 74 69 6f 6e 3a 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ide.a.function:</span>.<span.cla
31b40 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 73 5f 6d 73 67 20 ss="tok-kw">const</span>.os_msg.
31b60 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 =.<span.class="tok-kw">switch</s
31b80 70 61 6e 3e 20 28 62 75 69 6c 74 69 6e 2e 6f 73 29 20 7b 0a 20 20 20 20 62 75 69 6c 74 69 6e 2e pan>.(builtin.os).{.....builtin.
31ba0 4f 73 2e 6c 69 6e 75 78 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d Os.linux.=&gt;.<span.class="tok-
31bc0 73 74 72 22 3e 26 71 75 6f 74 3b 77 65 20 66 6f 75 6e 64 20 61 20 6c 69 6e 75 78 20 75 73 65 72 str">&quot;we.found.a.linux.user
31be0 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 &quot;</span>,.....<span.class="
31c00 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 tok-kw">else</span>.=&gt;.<span.
31c20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 6f 74 20 61 20 6c 69 6e 75 class="tok-str">&quot;not.a.linu
31c40 78 20 75 73 65 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 x.user&quot;</span>,.};..<span.c
31c60 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 6e 73 69 64 65 20 61 20 66 lass="tok-comment">//.Inside.a.f
31c80 75 6e 63 74 69 6f 6e 2c 20 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6d 70 6c 69 unction,.switch.statements.impli
31ca0 63 69 74 6c 79 20 61 72 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3c 2f 73 70 61 6e 3e 0a 3c 73 citly.are.compile-time</span>.<s
31cc0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 65 76 61 6c 75 pan.class="tok-comment">//.evalu
31ce0 61 74 65 64 20 69 66 20 74 68 65 20 74 61 72 67 65 74 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 ated.if.the.target.expression.is
31d00 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 .compile-time.known.</span>.<spa
31d20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 n.class="tok-kw">test</span>.<sp
31d40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 77 69 74 63 68 20 an.class="tok-str">&quot;switch.
31d60 69 6e 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 inside.function&quot;</span>.{..
31d80 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f ...<span.class="tok-kw">switch</
31da0 73 70 61 6e 3e 20 28 62 75 69 6c 74 69 6e 2e 6f 73 29 20 7b 0a 20 20 20 20 20 20 20 20 62 75 69 span>.(builtin.os).{.........bui
31dc0 6c 74 69 6e 2e 4f 73 2e 66 75 63 68 73 69 61 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 ltin.Os.fuchsia.=&gt;.{.........
31de0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f ....<span.class="tok-comment">//
31e00 20 4f 6e 20 61 6e 20 4f 53 20 6f 74 68 65 72 20 74 68 61 6e 20 66 75 63 68 73 69 61 2c 20 62 6c .On.an.OS.other.than.fuchsia,.bl
31e20 6f 63 6b 20 69 73 20 6e 6f 74 20 65 76 65 6e 20 61 6e 61 6c 79 7a 65 64 2c 3c 2f 73 70 61 6e 3e ock.is.not.even.analyzed,</span>
31e40 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f .............<span.class="tok-co
31e60 6d 6d 65 6e 74 22 3e 2f 2f 20 73 6f 20 74 68 69 73 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 mment">//.so.this.compile.error.
31e80 69 73 20 6e 6f 74 20 74 72 69 67 67 65 72 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 is.not.triggered.</span>........
31ea0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f .....<span.class="tok-comment">/
31ec0 2f 20 4f 6e 20 66 75 63 68 73 69 61 20 74 68 69 73 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 /.On.fuchsia.this.compile.error.
31ee0 77 6f 75 6c 64 20 62 65 20 74 72 69 67 67 65 72 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 would.be.triggered.</span>......
31f00 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 .......<span.class="tok-builtin"
31f20 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 >@compileError</span>(<span.clas
31f40 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 75 63 68 73 69 61 20 6e 6f 74 20 73 75 s="tok-str">&quot;fuchsia.not.su
31f60 70 70 6f 72 74 65 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 7d pported&quot;</span>);.........}
31f80 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 ,.........<span.class="tok-kw">e
31fa0 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f lse</span>.=&gt;.{},.....}.}</co
31fc0 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
31fe0 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 77 69 74 63 68 2e 7a 69 67 0a 31 2f 32 20 74 65 73 74 ">$.zig.test.switch.zig.1/2.test
32000 20 26 71 75 6f 74 3b 73 77 69 74 63 68 20 73 69 6d 70 6c 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a .&quot;switch.simple&quot;...OK.
32020 32 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 73 77 69 74 63 68 20 69 6e 73 69 64 65 20 66 75 6e 2/2.test.&quot;switch.inside.fun
32040 63 74 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 ction&quot;...OK.All.tests.passe
32060 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 d..</code></pre>........<p>.....
32080 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..<code.class="zig"><span.class=
320a0 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 "tok-kw">switch</span></code>.ca
320c0 6e 20 62 65 20 75 73 65 64 20 74 6f 20 63 61 70 74 75 72 65 20 74 68 65 20 66 69 65 6c 64 20 76 n.be.used.to.capture.the.field.v
320e0 61 6c 75 65 73 0a 20 20 20 20 20 20 6f 66 20 61 20 3c 61 20 68 72 65 66 3d 22 23 54 61 67 67 65 alues.......of.a.<a.href="#Tagge
32100 64 2d 75 6e 69 6f 6e 22 3e 54 61 67 67 65 64 20 75 6e 69 6f 6e 3c 2f 61 3e 2e 20 4d 6f 64 69 66 d-union">Tagged.union</a>..Modif
32120 69 63 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 66 69 65 6c 64 20 76 61 6c 75 65 73 20 63 61 6e ications.to.the.field.values.can
32140 20 62 65 0a 20 20 20 20 20 20 64 6f 6e 65 20 62 79 20 70 6c 61 63 69 6e 67 20 61 20 3c 63 6f 64 .be.......done.by.placing.a.<cod
32160 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 3c 2f 63 6f 64 65 3e 20 62 65 66 6f 72 65 20 74 68 e.class="zig">*</code>.before.th
32180 65 20 63 61 70 74 75 72 65 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 2c 0a 20 20 20 20 20 20 74 e.capture.variable.name,.......t
321a0 75 72 6e 69 6e 67 20 69 74 20 69 6e 74 6f 20 61 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 20 20 urning.it.into.a.pointer........
321c0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e </p>.......<p.class="file">test.
321e0 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
32200 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
32220 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 assert.=.<span.class="tok-builti
32240 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">@import</span>(<span.class="t
32260 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e ok-str">&quot;std&quot;</span>).
32280 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d debug.assert;..<span.class="tok-
322a0 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">test</span>.<span.class="tok
322c0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 77 69 74 63 68 20 6f 6e 20 74 61 67 67 65 64 20 75 6e 69 -str">&quot;switch.on.tagged.uni
322e0 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 on&quot;</span>.{.....<span.clas
32300 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 6f 69 6e 74 20 3d 20 s="tok-kw">const</span>.Point.=.
32320 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 <span.class="tok-kw">struct</spa
32340 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b n>.{.........x:.<span.class="tok
32360 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 79 3a 20 3c 73 70 -type">u8</span>,.........y:.<sp
32380 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 an.class="tok-type">u8</span>,..
323a0 20 20 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ...};.....<span.class="tok-kw">c
323c0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 49 74 65 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 onst</span>.Item.=.<span.class="
323e0 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">union</span>(<span.class
32400 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 ="tok-kw">enum</span>).{........
32420 20 41 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f .A:.<span.class="tok-type">u32</
32440 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 43 3a 20 50 6f 69 6e 74 2c 0a 20 20 20 20 20 20 20 span>,.........C:.Point,........
32460 20 44 2c 0a 20 20 20 20 20 20 20 20 45 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .D,.........E:.<span.class="tok-
32480 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 type">u32</span>,.....};......<s
324a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 20 pan.class="tok-kw">var</span>.a.
324c0 3d 20 49 74 65 6d 7b 20 2e 43 20 3d 20 50 6f 69 6e 74 7b 20 2e 78 20 3d 20 3c 73 70 61 6e 20 63 =.Item{..C.=.Point{..x.=.<span.c
324e0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 2e 79 20 3d lass="tok-number">1</span>,..y.=
32500 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 .<span.class="tok-number">2</spa
32520 6e 3e 20 7d 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f n>.}.};......<span.class="tok-co
32540 6d 6d 65 6e 74 22 3e 2f 2f 20 53 77 69 74 63 68 69 6e 67 20 6f 6e 20 6d 6f 72 65 20 63 6f 6d 70 mment">//.Switching.on.more.comp
32560 6c 65 78 20 65 6e 75 6d 73 20 69 73 20 61 6c 6c 6f 77 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 lex.enums.is.allowed.</span>....
32580 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
325a0 6e 3e 20 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 n>.b.=.<span.class="tok-kw">swit
325c0 63 68 3c 2f 73 70 61 6e 3e 20 28 61 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c ch</span>.(a).{.........<span.cl
325e0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 20 63 61 70 74 75 72 65 20 67 ass="tok-comment">//.A.capture.g
32600 72 6f 75 70 20 69 73 20 61 6c 6c 6f 77 65 64 20 6f 6e 20 61 20 6d 61 74 63 68 2c 20 61 6e 64 20 roup.is.allowed.on.a.match,.and.
32620 77 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 65 6e 75 6d 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 will.return.the.enum</span>.....
32640 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f ....<span.class="tok-comment">//
32660 20 76 61 6c 75 65 20 6d 61 74 63 68 65 64 2e 20 49 66 20 74 68 65 20 70 61 79 6c 6f 61 64 20 74 .value.matched..If.the.payload.t
32680 79 70 65 73 20 6f 66 20 62 6f 74 68 20 63 61 73 65 73 20 61 72 65 20 74 68 65 20 73 61 6d 65 3c ypes.of.both.cases.are.the.same<
326a0 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d /span>.........<span.class="tok-
326c0 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 79 20 63 61 6e 20 62 65 20 70 75 74 20 69 6e 74 6f comment">//.they.can.be.put.into
326e0 20 74 68 65 20 73 61 6d 65 20 73 77 69 74 63 68 20 70 72 6f 6e 67 2e 3c 2f 73 70 61 6e 3e 0a 20 .the.same.switch.prong.</span>..
32700 20 20 20 20 20 20 20 49 74 65 6d 2e 41 2c 20 49 74 65 6d 2e 45 20 3d 26 67 74 3b 20 7c 69 74 65 .......Item.A,.Item.E.=&gt;.|ite
32720 6d 7c 20 69 74 65 6d 2c 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 m|.item,..........<span.class="t
32740 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68 ok-comment">//.A.reference.to.th
32760 65 20 6d 61 74 63 68 65 64 20 76 61 6c 75 65 20 63 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 e.matched.value.can.be.obtained.
32780 75 73 69 6e 67 20 60 2a 60 20 73 79 6e 74 61 78 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 using.`*`.syntax.</span>........
327a0 20 49 74 65 6d 2e 43 20 3d 26 67 74 3b 20 7c 2a 69 74 65 6d 7c 20 62 6c 6b 3a 20 7b 0a 20 20 20 .Item.C.=&gt;.|*item|.blk:.{....
327c0 20 20 20 20 20 20 20 20 20 69 74 65 6d 2e 2a 2e 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 .........item.*.x.+=.<span.class
327e0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 ="tok-number">1</span>;.........
32800 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f ....<span.class="tok-kw">break</
32820 73 70 61 6e 3e 20 3a 62 6c 6b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 span>.:blk.<span.class="tok-numb
32840 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 7d 2c 0a 0a 20 20 20 20 20 20 er">6</span>;.........},........
32860 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e ..<span.class="tok-comment">//.N
32880 6f 20 65 6c 73 65 20 69 73 20 72 65 71 75 69 72 65 64 20 69 66 20 74 68 65 20 74 79 70 65 73 20 o.else.is.required.if.the.types.
328a0 63 61 73 65 73 20 77 61 73 20 65 78 68 61 75 73 74 69 76 65 6c 79 20 68 61 6e 64 6c 65 64 3c 2f cases.was.exhaustively.handled</
328c0 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 49 74 65 6d 2e 44 20 3d 26 67 74 3b 20 3c 73 70 61 6e span>.........Item.D.=&gt;.<span
328e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 .class="tok-number">8</span>,...
32900 20 20 7d 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 62 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ..};......assert(b.==.<span.clas
32920 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 s="tok-number">6</span>);.....as
32940 73 65 72 74 28 61 2e 43 2e 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e sert(a.C.x.==.<span.class="tok-n
32960 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e umber">2</span>);.}</code></pre>
32980 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 <pre><code.class="shell">$.zig.t
329a0 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 73 77 69 74 est.test.zig.1/1.test.&quot;swit
329c0 63 68 20 6f 6e 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c ch.on.tagged.union&quot;...OK.Al
329e0 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 l.tests.passed..</code></pre>...
32a00 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 .....<p>See.also:</p><ul>.<li><a
32a20 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f .href="#comptime">comptime</a></
32a40 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e li>.<li><a.href="#enum">enum</a>
32a60 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 45 72 72 6f 72 </li>.<li><a.href="#compileError
32a80 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 ">@compileError</a></li>.<li><a.
32aa0 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c href="#Compile-Variables">Compil
32ac0 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 e.Variables</a></li>.</ul>......
32ae0 20 20 20 3c 68 32 20 69 64 3d 22 45 78 68 61 75 73 74 69 76 65 2d 53 77 69 74 63 68 69 6e 67 22 ...<h2.id="Exhaustive-Switching"
32b00 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 45 78 68 61 75 73 74 69 76 65 2d 53 77 69 74 63 68 ><a.href="#toc-Exhaustive-Switch
32b20 69 6e 67 22 3e 45 78 68 61 75 73 74 69 76 65 20 53 77 69 74 63 68 69 6e 67 3c 2f 61 3e 20 3c 61 ing">Exhaustive.Switching</a>.<a
32b40 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 78 68 61 75 73 74 69 76 65 2d 53 .class="hdr".href="#Exhaustive-S
32b60 77 69 74 63 68 69 6e 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e witching">..</a></h2>........<p>
32b80 0a 20 20 20 20 20 20 57 68 65 6e 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e .......When.a.<code.class="zig">
32ba0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 <span.class="tok-kw">switch</spa
32bc0 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 68 61 n></code>.expression.does.not.ha
32be0 76 65 20 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ve.an.<code.class="zig"><span.cl
32c00 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 ass="tok-kw">else</span></code>.
32c20 63 6c 61 75 73 65 2c 0a 20 20 20 20 20 20 69 74 20 6d 75 73 74 20 65 78 68 61 75 73 74 69 76 65 clause,.......it.must.exhaustive
32c40 6c 79 20 6c 69 73 74 20 61 6c 6c 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 2e ly.list.all.the.possible.values.
32c60 20 46 61 69 6c 75 72 65 20 74 6f 20 64 6f 20 73 6f 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 .Failure.to.do.so.is.a.compile.e
32c80 72 72 6f 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d rror:.......</p>.......<p.class=
32ca0 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c "file">test.zig</p><pre><code.cl
32cc0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
32ce0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 6f 6c 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d onst</span>.Color.=.<span.class=
32d00 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 41 75 74 6f 2c "tok-kw">enum</span>.{.....Auto,
32d20 0a 20 20 20 20 4f 66 66 2c 0a 20 20 20 20 4f 6e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 .....Off,.....On,.};..<span.clas
32d40 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">test</span>.<span.cla
32d60 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 78 68 61 75 73 74 69 76 65 20 73 77 ss="tok-str">&quot;exhaustive.sw
32d80 69 74 63 68 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e itching&quot;</span>.{.....<span
32da0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 6f 6c .class="tok-kw">const</span>.col
32dc0 6f 72 20 3d 20 43 6f 6c 6f 72 2e 4f 66 66 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d or.=.Color.Off;.....<span.class=
32de0 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 63 6f 6c 6f 72 29 20 7b "tok-kw">switch</span>.(color).{
32e00 0a 20 20 20 20 20 20 20 20 43 6f 6c 6f 72 2e 41 75 74 6f 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 .........Color.Auto.=&gt;.{},...
32e20 20 20 20 20 20 20 43 6f 6c 6f 72 2e 4f 6e 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 20 20 7d 0a 7d ......Color.On.=&gt;.{},.....}.}
32e40 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 </code></pre><pre><code.class="s
32e60 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 hell">$.zig.test.test.zig.<span.
32e80 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f class="t0_1">/home/andy/dev/zig/
32ea0 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 39 3a 35 3a 20 3c 2f 73 70 61 6e 3e docgen_tmp/test.zig:9:5:.</span>
32ec0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e <span.class="t31_1">error:</span
32ee0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 65 6e 75 6d 65 72 61 74 69 6f 6e ><span.class="t0_1">.enumeration
32f00 20 76 61 6c 75 65 20 27 43 6f 6c 6f 72 2e 4f 66 66 27 20 6e 6f 74 20 68 61 6e 64 6c 65 64 20 69 .value.'Color.Off'.not.handled.i
32f20 6e 20 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 77 69 74 63 68 20 28 63 6f 6c 6f n.switch</span>.....switch.(colo
32f40 72 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f r).{.....<span.class="t32_1">^</
32f60 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 span>.</code></pre>.............
32f80 20 20 20 3c 68 32 20 69 64 3d 22 53 77 69 74 63 68 69 6e 67 2d 77 69 74 68 2d 45 6e 75 6d 2d 4c ...<h2.id="Switching-with-Enum-L
32fa0 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 53 77 69 74 63 68 69 6e 67 iterals"><a.href="#toc-Switching
32fc0 2d 77 69 74 68 2d 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 3e 53 77 69 74 63 68 69 6e 67 20 77 -with-Enum-Literals">Switching.w
32fe0 69 74 68 20 45 6e 75 6d 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 ith.Enum.Literals</a>.<a.class="
33000 68 64 72 22 20 68 72 65 66 3d 22 23 53 77 69 74 63 68 69 6e 67 2d 77 69 74 68 2d 45 6e 75 6d 2d hdr".href="#Switching-with-Enum-
33020 4c 69 74 65 72 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e Literals">..</a></h2>........<p>
33040 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 3e .......<a.href="#Enum-Literals">
33060 45 6e 75 6d 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 Enum.Literals</a>.can.be.useful.
33080 74 6f 20 75 73 65 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 to.use.with.<code.class="zig"><s
330a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e pan.class="tok-kw">switch</span>
330c0 3c 2f 63 6f 64 65 3e 20 74 6f 20 61 76 6f 69 64 0a 20 20 20 20 20 20 72 65 70 65 74 69 74 69 76 </code>.to.avoid.......repetitiv
330e0 65 6c 79 20 73 70 65 63 69 66 79 69 6e 67 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 ely.specifying.<a.href="#enum">e
33100 6e 75 6d 3c 2f 61 3e 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f num</a>.or.<a.href="#union">unio
33120 6e 3c 2f 61 3e 20 74 79 70 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 n</a>.types:.......</p>.......<p
33140 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
33160 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
33180 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 k-kw">const</span>.std.=.<span.c
331a0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
331c0 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
331e0 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f d&quot;</span>);.<span.class="to
33200 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e k-kw">const</span>.assert.=.std.
33220 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d debug.assert;..<span.class="tok-
33240 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 6f 6c 6f 72 20 3d 20 3c 73 70 61 6e 20 63 kw">const</span>.Color.=.<span.c
33260 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 lass="tok-kw">enum</span>.{.....
33280 41 75 74 6f 2c 0a 20 20 20 20 4f 66 66 2c 0a 20 20 20 20 4f 6e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e Auto,.....Off,.....On,.};..<span
332a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
332c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 6e 75 6d 20 6c 69 74 n.class="tok-str">&quot;enum.lit
332e0 65 72 61 6c 73 20 77 69 74 68 20 73 77 69 74 63 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b erals.with.switch&quot;</span>.{
33300 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c .....<span.class="tok-kw">const<
33320 2f 73 70 61 6e 3e 20 63 6f 6c 6f 72 20 3d 20 43 6f 6c 6f 72 2e 4f 66 66 3b 0a 20 20 20 20 3c 73 /span>.color.=.Color.Off;.....<s
33340 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
33360 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 result.=.<span.class="tok-kw">sw
33380 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 63 6f 6c 6f 72 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 41 itch</span>.(color).{..........A
333a0 75 74 6f 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 uto.=&gt;.<span.class="tok-null"
333c0 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 4f 6e 20 3d 26 67 74 3b >false</span>,..........On.=&gt;
333e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 .<span.class="tok-null">false</s
33400 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 4f 66 66 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 pan>,..........Off.=&gt;.<span.c
33420 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 lass="tok-null">true</span>,....
33440 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 72 65 73 75 6c 74 29 3b 0a 7d 3c 2f 63 6f 64 65 3e .};.....assert(result);.}</code>
33460 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 </pre><pre><code.class="shell">$
33480 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f .zig.test.test.zig.1/1.test.&quo
334a0 74 3b 65 6e 75 6d 20 6c 69 74 65 72 61 6c 73 20 77 69 74 68 20 73 77 69 74 63 68 26 71 75 6f 74 t;enum.literals.with.switch&quot
334c0 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e ;...OK.All.tests.passed..</code>
334e0 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 </pre>.......................<h1
33500 20 69 64 3d 22 77 68 69 6c 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 77 68 69 6c 65 22 .id="while"><a.href="#toc-while"
33520 3e 77 68 69 6c 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 >while</a>.<a.class="hdr".href="
33540 23 77 68 69 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 #while">..</a></h1>........<p>..
33560 20 20 20 20 20 41 20 77 68 69 6c 65 20 6c 6f 6f 70 20 69 73 20 75 73 65 64 20 74 6f 20 72 65 70 .....A.while.loop.is.used.to.rep
33580 65 61 74 65 64 6c 79 20 65 78 65 63 75 74 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 75 6e eatedly.execute.an.expression.un
335a0 74 69 6c 0a 20 20 20 20 20 20 73 6f 6d 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 6e 6f 20 6c til.......some.condition.is.no.l
335c0 6f 6e 67 65 72 20 74 72 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 onger.true........</p>.......<p.
335e0 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 77 68 69 6c 65 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c class="file">while.zig</p><pre><
33600 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
33620 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 k-kw">const</span>.assert.=.<spa
33640 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 n.class="tok-builtin">@import</s
33660 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
33680 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b ;std&quot;</span>).debug.assert;
336a0 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 ..<span.class="tok-kw">test</spa
336c0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 77 n>.<span.class="tok-str">&quot;w
336e0 68 69 6c 65 20 62 61 73 69 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 hile.basic&quot;</span>.{.....<s
33700 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 3a pan.class="tok-kw">var</span>.i:
33720 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 .<span.class="tok-type">usize</s
33740 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e pan>.=.<span.class="tok-number">
33760 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 0</span>;.....<span.class="tok-k
33780 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 69 20 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c w">while</span>.(i.&lt;.<span.cl
337a0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 ass="tok-number">10</span>).{...
337c0 20 20 20 20 20 20 69 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 ......i.+=.<span.class="tok-numb
337e0 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 69 er">1</span>;.....}.....assert(i
33800 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c .==.<span.class="tok-number">10<
33820 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 /span>);.}</code></pre><pre><cod
33840 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 77 68 69 6c 65 e.class="shell">$.zig.test.while
33860 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 62 61 73 69 63 26 .zig.1/1.test.&quot;while.basic&
33880 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 quot;...OK.All.tests.passed..</c
338a0 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 65 20 ode></pre>........<p>.......Use.
338c0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
338e0 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 65 78 ok-kw">break</span></code>.to.ex
33900 69 74 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 20 65 61 72 6c 79 2e 0a 20 20 20 20 20 20 3c 2f 70 it.a.while.loop.early........</p
33920 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 77 68 69 6c 65 2e 7a 69 >.......<p.class="file">while.zi
33940 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 g</p><pre><code.class="zig"><spa
33960 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 n.class="tok-kw">const</span>.as
33980 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 sert.=.<span.class="tok-builtin"
339a0 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
339c0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 -str">&quot;std&quot;</span>).de
339e0 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 bug.assert;..<span.class="tok-kw
33a00 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 ">test</span>.<span.class="tok-s
33a20 74 72 22 3e 26 71 75 6f 74 3b 77 68 69 6c 65 20 62 72 65 61 6b 26 71 75 6f 74 3b 3c 2f 73 70 61 tr">&quot;while.break&quot;</spa
33a40 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 n>.{.....<span.class="tok-kw">va
33a60 72 3c 2f 73 70 61 6e 3e 20 69 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 r</span>.i:.<span.class="tok-typ
33a80 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 e">usize</span>.=.<span.class="t
33aa0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 ok-number">0</span>;.....<span.c
33ac0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 lass="tok-kw">while</span>.(<spa
33ae0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 n.class="tok-null">true</span>).
33b00 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 {.........<span.class="tok-kw">i
33b20 66 3c 2f 73 70 61 6e 3e 20 28 69 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d f</span>.(i.==.<span.class="tok-
33b40 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c number">10</span>).............<
33b60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e span.class="tok-kw">break</span>
33b80 3b 0a 20 20 20 20 20 20 20 20 69 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ;.........i.+=.<span.class="tok-
33ba0 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 number">1</span>;.....}.....asse
33bc0 72 74 28 69 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 rt(i.==.<span.class="tok-number"
33be0 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e >10</span>);.}</code></pre><pre>
33c00 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 77 <code.class="shell">$.zig.test.w
33c20 68 69 6c 65 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 62 72 hile.zig.1/1.test.&quot;while.br
33c40 65 61 6b 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e eak&quot;...OK.All.tests.passed.
33c60 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 .</code></pre>........<p>.......
33c80 55 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 Use.<code.class="zig"><span.clas
33ca0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 s="tok-kw">continue</span></code
33cc0 3e 20 74 6f 20 6a 75 6d 70 20 62 61 63 6b 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 >.to.jump.back.to.the.beginning.
33ce0 6f 66 20 74 68 65 20 6c 6f 6f 70 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 of.the.loop........</p>.......<p
33d00 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 77 68 69 6c 65 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e .class="file">while.zig</p><pre>
33d20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
33d40 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 ok-kw">const</span>.assert.=.<sp
33d60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f an.class="tok-builtin">@import</
33d80 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>(<span.class="tok-str">&quo
33da0 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 t;std&quot;</span>).debug.assert
33dc0 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 ;..<span.class="tok-kw">test</sp
33de0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b an>.<span.class="tok-str">&quot;
33e00 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 while.continue&quot;</span>.{...
33e20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e ..<span.class="tok-kw">var</span
33e40 3e 20 69 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a >.i:.<span.class="tok-type">usiz
33e60 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 e</span>.=.<span.class="tok-numb
33e80 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 er">0</span>;.....<span.class="t
33ea0 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 ok-kw">while</span>.(<span.class
33ec0 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 ="tok-null">true</span>).{......
33ee0 20 20 20 69 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 ...i.+=.<span.class="tok-number"
33f00 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >1</span>;.........<span.class="
33f20 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 69 20 26 6c 74 3b 20 3c 73 70 61 6e 20 tok-kw">if</span>.(i.&lt;.<span.
33f40 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 0a 20 20 class="tok-number">10</span>)...
33f60 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ..........<span.class="tok-kw">c
33f80 6f 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c ontinue</span>;.........<span.cl
33fa0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d ass="tok-kw">break</span>;.....}
33fc0 0a 20 20 20 20 61 73 73 65 72 74 28 69 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .....assert(i.==.<span.class="to
33fe0 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f k-number">10</span>);.}</code></
34000 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a pre><pre><code.class="shell">$.z
34020 69 67 20 74 65 73 74 20 77 68 69 6c 65 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 ig.test.while.zig.1/1.test.&quot
34040 3b 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 ;while.continue&quot;...OK.All.t
34060 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 ests.passed..</code></pre>......
34080 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 69 6c 65 20 6c 6f 6f 70 73 20 73 75 70 70 6f 72 74 20 ..<p>.......While.loops.support.
340a0 61 20 63 6f 6e 74 69 6e 75 65 20 65 78 70 72 65 73 73 69 6f 6e 20 77 68 69 63 68 20 69 73 20 65 a.continue.expression.which.is.e
340c0 78 65 63 75 74 65 64 20 77 68 65 6e 20 74 68 65 20 6c 6f 6f 70 0a 20 20 20 20 20 20 69 73 20 63 xecuted.when.the.loop.......is.c
340e0 6f 6e 74 69 6e 75 65 64 2e 20 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ontinued..The.<code.class="zig">
34100 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 74 69 6e 75 65 3c 2f 73 <span.class="tok-kw">continue</s
34120 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 72 65 73 70 65 63 74 73 20 74 68 69 pan></code>.keyword.respects.thi
34140 73 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c s.expression........</p>.......<
34160 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 77 68 69 6c 65 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 p.class="file">while.zig</p><pre
34180 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
341a0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 tok-kw">const</span>.assert.=.<s
341c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c pan.class="tok-builtin">@import<
341e0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>(<span.class="tok-str">&qu
34200 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 ot;std&quot;</span>).debug.asser
34220 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 t;..<span.class="tok-kw">test</s
34240 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
34260 3b 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 65 20 65 78 70 72 65 73 73 69 6f 6e 26 ;while.loop.continue.expression&
34280 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 quot;</span>.{.....<span.class="
342a0 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 3a 20 3c 73 70 61 6e 20 63 6c 61 73 tok-kw">var</span>.i:.<span.clas
342c0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 s="tok-type">usize</span>.=.<spa
342e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 n.class="tok-number">0</span>;..
34300 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 ...<span.class="tok-kw">while</s
34320 70 61 6e 3e 20 28 69 20 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 pan>.(i.&lt;.<span.class="tok-nu
34340 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 20 3a 20 28 69 20 2b 3d 20 3c 73 70 61 6e 20 63 mber">10</span>).:.(i.+=.<span.c
34360 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 7b 7d 0a 20 lass="tok-number">1</span>).{}..
34380 20 20 20 61 73 73 65 72 74 28 69 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ...assert(i.==.<span.class="tok-
343a0 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 number">10</span>);.}..<span.cla
343c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
343e0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 77 68 69 6c 65 20 6c 6f 6f 70 20 63 ass="tok-str">&quot;while.loop.c
34400 6f 6e 74 69 6e 75 65 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 6d 6f 72 65 20 63 6f 6d 70 6c 69 63 ontinue.expression,.more.complic
34420 61 74 65 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ated&quot;</span>.{.....<span.cl
34440 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 3a 20 3c 73 70 61 6e ass="tok-kw">var</span>.i:.<span
34460 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d .class="tok-type">usize</span>.=
34480 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 .<span.class="tok-number">1</spa
344a0 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 n>;.....<span.class="tok-kw">var
344c0 3c 2f 73 70 61 6e 3e 20 6a 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>.j:.<span.class="tok-type
344e0 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">usize</span>.=.<span.class="to
34500 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c k-number">1</span>;.....<span.cl
34520 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 69 20 2a 20 6a ass="tok-kw">while</span>.(i.*.j
34540 20 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 .&lt;.<span.class="tok-number">2
34560 30 30 30 3c 2f 73 70 61 6e 3e 29 20 3a 20 28 7b 20 69 20 2a 3d 20 3c 73 70 61 6e 20 63 6c 61 73 000</span>).:.({.i.*=.<span.clas
34580 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3b 20 6a 20 2a 3d 20 3c 73 s="tok-number">2</span>;.j.*=.<s
345a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b pan.class="tok-number">3</span>;
345c0 20 7d 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b .}).{.........<span.class="tok-k
345e0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 79 5f 69 6a 20 3d 20 69 20 2a 20 6a 3b 0a 20 w">const</span>.my_ij.=.i.*.j;..
34600 20 20 20 20 20 20 20 61 73 73 65 72 74 28 6d 79 5f 69 6a 20 26 6c 74 3b 20 3c 73 70 61 6e 20 63 .......assert(my_ij.&lt;.<span.c
34620 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 30 30 30 3c 2f 73 70 61 6e 3e 29 3b 0a lass="tok-number">2000</span>);.
34640 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ....}.}</code></pre><pre><code.c
34660 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 77 68 69 6c 65 2e 7a 69 lass="shell">$.zig.test.while.zi
34680 67 0a 31 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f 6e 74 g.1/2.test.&quot;while.loop.cont
346a0 69 6e 75 65 20 65 78 70 72 65 73 73 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 32 20 74 inue.expression&quot;...OK.2/2.t
346c0 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 65 20 65 78 est.&quot;while.loop.continue.ex
346e0 70 72 65 73 73 69 6f 6e 2c 20 6d 6f 72 65 20 63 6f 6d 70 6c 69 63 61 74 65 64 26 71 75 6f 74 3b pression,.more.complicated&quot;
34700 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c ...OK.All.tests.passed..</code><
34720 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 69 6c 65 20 6c 6f 6f /pre>........<p>.......While.loo
34740 70 73 20 61 72 65 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 54 68 65 20 72 65 73 75 6c 74 20 6f ps.are.expressions..The.result.o
34760 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 74 68 65 0a 20 20 20 20 20 20 72 65 f.the.expression.is.the.......re
34780 73 75 6c 74 20 6f 66 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 sult.of.the.<code.class="zig"><s
347a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f pan.class="tok-kw">else</span></
347c0 63 6f 64 65 3e 20 63 6c 61 75 73 65 20 6f 66 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 2c 20 77 68 code>.clause.of.a.while.loop,.wh
347e0 69 63 68 20 69 73 20 65 78 65 63 75 74 65 64 20 77 68 65 6e 0a 20 20 20 20 20 20 74 68 65 20 63 ich.is.executed.when.......the.c
34800 6f 6e 64 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 68 69 6c 65 20 6c 6f 6f 70 20 69 73 20 74 65 ondition.of.the.while.loop.is.te
34820 73 74 65 64 20 61 73 20 66 61 6c 73 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 sted.as.false........</p>.......
34840 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 <p>.......<code.class="zig"><spa
34860 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 3c 2f 63 n.class="tok-kw">break</span></c
34880 6f 64 65 3e 2c 20 6c 69 6b 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ode>,.like.<code.class="zig"><sp
348a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c an.class="tok-kw">return</span><
348c0 2f 63 6f 64 65 3e 2c 20 61 63 63 65 70 74 73 20 61 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 /code>,.accepts.a.value.........
348e0 20 20 20 20 20 20 70 61 72 61 6d 65 74 65 72 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 72 65 73 ......parameter..This.is.the.res
34900 75 6c 74 20 6f 66 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ult.of.the.<code.class="zig"><sp
34920 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f an.class="tok-kw">while</span></
34940 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 code>.expression................
34960 20 20 20 20 57 68 65 6e 20 79 6f 75 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ....When.you.<code.class="zig"><
34980 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e span.class="tok-kw">break</span>
349a0 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 2c 20 74 68 65 20 3c </code>.from.a.while.loop,.the.<
349c0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
349e0 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 72 61 6e 63 68 20 k-kw">else</span></code>.branch.
34a00 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 65 76 61 6c 75 61 74 65 64 2e 0a 20 20 20 20 20 20 3c 2f is.not.......evaluated........</
34a20 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 77 68 69 6c 65 2e 7a p>.......<p.class="file">while.z
34a40 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ig</p><pre><code.class="zig"><sp
34a60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 an.class="tok-kw">const</span>.a
34a80 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e ssert.=.<span.class="tok-builtin
34aa0 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">@import</span>(<span.class="to
34ac0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 k-str">&quot;std&quot;</span>).d
34ae0 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ebug.assert;..<span.class="tok-k
34b00 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d w">test</span>.<span.class="tok-
34b20 73 74 72 22 3e 26 71 75 6f 74 3b 77 68 69 6c 65 20 65 6c 73 65 26 71 75 6f 74 3b 3c 2f 73 70 61 str">&quot;while.else&quot;</spa
34b40 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 72 61 6e 67 65 48 61 73 4e 75 6d 62 65 72 28 3c n>.{.....assert(rangeHasNumber(<
34b60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
34b80 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 ,.<span.class="tok-number">10</s
34ba0 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 pan>,.<span.class="tok-number">5
34bc0 3c 2f 73 70 61 6e 3e 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 21 72 61 6e 67 65 48 61 73 4e </span>));.....assert(!rangeHasN
34be0 75 6d 62 65 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 umber(<span.class="tok-number">0
34c00 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 </span>,.<span.class="tok-number
34c20 22 3e 31 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 ">10</span>,.<span.class="tok-nu
34c40 6d 62 65 72 22 3e 31 35 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 mber">15</span>));.}..<span.clas
34c60 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
34c80 3d 22 74 6f 6b 2d 66 6e 22 3e 72 61 6e 67 65 48 61 73 4e 75 6d 62 65 72 3c 2f 73 70 61 6e 3e 28 ="tok-fn">rangeHasNumber</span>(
34ca0 62 65 67 69 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 begin:.<span.class="tok-type">us
34cc0 69 7a 65 3c 2f 73 70 61 6e 3e 2c 20 65 6e 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ize</span>,.end:.<span.class="to
34ce0 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 20 6e 75 6d 62 65 72 3a 20 3c 73 k-type">usize</span>,.number:.<s
34d00 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e pan.class="tok-type">usize</span
34d20 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f >).<span.class="tok-type">bool</
34d40 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
34d60 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 20 3d 20 62 65 67 69 6e 3b 0a 20 20 20 20 3c 73 70 61 6e >var</span>.i.=.begin;.....<span
34d80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 .class="tok-kw">return</span>.<s
34da0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">while</span>.
34dc0 28 69 20 26 6c 74 3b 20 65 6e 64 29 20 3a 20 28 69 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 (i.&lt;.end).:.(i.+=.<span.class
34de0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 ="tok-number">1</span>).{.......
34e00 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e ..<span.class="tok-kw">if</span>
34e20 20 28 69 20 3d 3d 20 6e 75 6d 62 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 .(i.==.number).{.............<sp
34e40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3c an.class="tok-kw">break</span>.<
34e60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e span.class="tok-null">true</span
34e80 3e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >;.........}.....}.<span.class="
34ea0 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">else</span>.<span.class=
34ec0 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 "tok-null">false</span>;.}</code
34ee0 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e ></pre><pre><code.class="shell">
34f00 24 20 7a 69 67 20 74 65 73 74 20 77 68 69 6c 65 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 $.zig.test.while.zig.1/1.test.&q
34f20 75 6f 74 3b 77 68 69 6c 65 20 65 6c 73 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 uot;while.else&quot;...OK.All.te
34f40 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 sts.passed..</code></pre>.......
34f60 20 3c 68 32 20 69 64 3d 22 4c 61 62 65 6c 65 64 2d 77 68 69 6c 65 22 3e 3c 61 20 68 72 65 66 3d .<h2.id="Labeled-while"><a.href=
34f80 22 23 74 6f 63 2d 4c 61 62 65 6c 65 64 2d 77 68 69 6c 65 22 3e 4c 61 62 65 6c 65 64 20 77 68 69 "#toc-Labeled-while">Labeled.whi
34fa0 6c 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4c 61 62 le</a>.<a.class="hdr".href="#Lab
34fc0 65 6c 65 64 2d 77 68 69 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c eled-while">..</a></h2>........<
34fe0 70 3e 57 68 65 6e 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e p>When.a.<code.class="zig"><span
35000 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f .class="tok-kw">while</span></co
35020 64 65 3e 20 6c 6f 6f 70 20 69 73 20 6c 61 62 65 6c 65 64 2c 20 69 74 20 63 61 6e 20 62 65 20 72 de>.loop.is.labeled,.it.can.be.r
35040 65 66 65 72 65 6e 63 65 64 20 66 72 6f 6d 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 eferenced.from.a.<code.class="zi
35060 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 g"><span.class="tok-kw">break</s
35080 70 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 3c 63 6f pan></code>...............or.<co
350a0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
350c0 6b 77 22 3e 63 6f 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d 20 kw">continue</span></code>.from.
350e0 77 69 74 68 69 6e 20 61 20 6e 65 73 74 65 64 20 6c 6f 6f 70 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 within.a.nested.loop:</p>.......
35100 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 <p.class="file">test.zig</p><pre
35120 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
35140 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">test</span>.<span.class=
35160 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 65 73 74 65 64 20 62 72 65 61 6b 26 71 75 6f "tok-str">&quot;nested.break&quo
35180 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 6f 75 74 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 t;</span>.{.....outer:.<span.cla
351a0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 ss="tok-kw">while</span>.(<span.
351c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 7b 0a class="tok-null">true</span>).{.
351e0 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 ........<span.class="tok-kw">whi
35200 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c le</span>.(<span.class="tok-null
35220 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 ">true</span>).{.............<sp
35240 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3a an.class="tok-kw">break</span>.:
35260 6f 75 74 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 outer;.........}.....}.}..<span.
35280 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e class="tok-kw">test</span>.<span
352a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 65 73 74 65 64 20 63 6f .class="tok-str">&quot;nested.co
352c0 6e 74 69 6e 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 ntinue&quot;</span>.{.....<span.
352e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 3a 20 3c 73 70 class="tok-kw">var</span>.i:.<sp
35300 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e an.class="tok-type">usize</span>
35320 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 .=.<span.class="tok-number">0</s
35340 70 61 6e 3e 3b 0a 20 20 20 20 6f 75 74 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pan>;.....outer:.<span.class="to
35360 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 69 20 26 6c 74 3b 20 3c 73 70 61 6e k-kw">while</span>.(i.&lt;.<span
35380 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 20 3a .class="tok-number">10</span>).:
353a0 20 28 69 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e .(i.+=.<span.class="tok-number">
353c0 31 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 1</span>).{.........<span.class=
353e0 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 "tok-kw">while</span>.(<span.cla
35400 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 ss="tok-null">true</span>).{....
35420 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f .........<span.class="tok-kw">co
35440 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 20 3a 6f 75 74 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a ntinue</span>.:outer;.........}.
35460 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ....}.}</code></pre><pre><code.c
35480 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 lass="shell">$.zig.test.test.zig
354a0 0a 31 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 6e 65 73 74 65 64 20 62 72 65 61 6b 26 71 75 6f .1/2.test.&quot;nested.break&quo
354c0 74 3b 2e 2e 2e 4f 4b 0a 32 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 6e 65 73 74 65 64 20 63 6f t;...OK.2/2.test.&quot;nested.co
354e0 6e 74 69 6e 75 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 ntinue&quot;...OK.All.tests.pass
35500 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 ed..</code></pre>...............
35520 3c 68 32 20 69 64 3d 22 77 68 69 6c 65 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 3c 61 <h2.id="while-with-Optionals"><a
35540 20 68 72 65 66 3d 22 23 74 6f 63 2d 77 68 69 6c 65 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 .href="#toc-while-with-Optionals
35560 22 3e 77 68 69 6c 65 20 77 69 74 68 20 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c ">while.with.Optionals</a>.<a.cl
35580 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 77 68 69 6c 65 2d 77 69 74 68 2d 4f 70 74 69 ass="hdr".href="#while-with-Opti
355a0 6f 6e 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 onals">..</a></h2>........<p>...
355c0 20 20 20 20 4a 75 73 74 20 6c 69 6b 65 20 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f ....Just.like.<a.href="#if">if</
355e0 61 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 77 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 6e 20 a>.expressions,.while.loops.can.
35600 74 61 6b 65 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 61 73 20 74 68 65 0a 20 20 20 20 20 20 63 6f take.an.optional.as.the.......co
35620 6e 64 69 74 69 6f 6e 20 61 6e 64 20 63 61 70 74 75 72 65 20 74 68 65 20 70 61 79 6c 6f 61 64 2e ndition.and.capture.the.payload.
35640 20 57 68 65 6e 20 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 20 69 .When.<a.href="#null">null</a>.i
35660 73 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 74 68 65 20 6c 6f 6f 70 0a 20 20 20 20 20 20 65 78 69 s.encountered.the.loop.......exi
35680 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 ts........</p>.......<p>.......W
356a0 68 65 6e 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 7c 78 7c 3c 2f 63 hen.the.<code.class="zig">|x|</c
356c0 6f 64 65 3e 20 73 79 6e 74 61 78 20 69 73 20 70 72 65 73 65 6e 74 20 6f 6e 20 61 20 3c 63 6f 64 ode>.syntax.is.present.on.a.<cod
356e0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
35700 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f w">while</span></code>.expressio
35720 6e 2c 0a 20 20 20 20 20 20 74 68 65 20 77 68 69 6c 65 20 63 6f 6e 64 69 74 69 6f 6e 20 6d 75 73 n,.......the.while.condition.mus
35740 74 20 68 61 76 65 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 54 79 70 t.have.an.<a.href="#Optional-Typ
35760 65 22 3e 4f 70 74 69 6f 6e 61 6c 20 54 79 70 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e e">Optional.Type</a>........</p>
35780 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 .......<p>.......The.<code.class
357a0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 ="zig"><span.class="tok-kw">else
357c0 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 72 61 6e 63 68 20 69 73 20 61 6c 6c 6f 77 65 64 </span></code>.branch.is.allowed
357e0 20 6f 6e 20 6f 70 74 69 6f 6e 61 6c 20 69 74 65 72 61 74 69 6f 6e 2e 20 49 6e 20 74 68 69 73 20 .on.optional.iteration..In.this.
35800 63 61 73 65 2c 20 69 74 20 77 69 6c 6c 0a 20 20 20 20 20 20 62 65 20 65 78 65 63 75 74 65 64 20 case,.it.will.......be.executed.
35820 6f 6e 20 74 68 65 20 66 69 72 73 74 20 6e 75 6c 6c 20 76 61 6c 75 65 20 65 6e 63 6f 75 6e 74 65 on.the.first.null.value.encounte
35840 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 red........</p>.......<p.class="
35860 66 69 6c 65 22 3e 77 68 69 6c 65 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c file">while.zig</p><pre><code.cl
35880 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
358a0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 onst</span>.assert.=.<span.class
358c0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 ="tok-builtin">@import</span>(<s
358e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 pan.class="tok-str">&quot;std&qu
35900 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e ot;</span>).debug.assert;..<span
35920 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
35940 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 77 68 69 6c 65 20 6e 75 n.class="tok-str">&quot;while.nu
35960 6c 6c 20 63 61 70 74 75 72 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 ll.capture&quot;</span>.{.....<s
35980 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 75 pan.class="tok-kw">var</span>.su
359a0 6d 31 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f m1:.<span.class="tok-type">u32</
359c0 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 span>.=.<span.class="tok-number"
359e0 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 20 3c 73 >0</span>;.....numbers_left.=.<s
35a00 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b pan.class="tok-number">3</span>;
35a20 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c .....<span.class="tok-kw">while<
35a40 2f 73 70 61 6e 3e 20 28 65 76 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 65 28 29 /span>.(eventuallyNullSequence()
35a60 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 31 20 2b 3d 20 76 61 6c 75 ).|value|.{.........sum1.+=.valu
35a80 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 31 20 3d 3d 20 3c 73 70 61 e;.....}.....assert(sum1.==.<spa
35aa0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a n.class="tok-number">3</span>);.
35ac0 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 .....<span.class="tok-kw">var</s
35ae0 70 61 6e 3e 20 73 75 6d 32 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 pan>.sum2:.<span.class="tok-type
35b00 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">u32</span>.=.<span.class="tok-
35b20 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 number">0</span>;.....numbers_le
35b40 66 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c ft.=.<span.class="tok-number">3<
35b60 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>;.....<span.class="tok-kw"
35b80 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 65 76 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 >while</span>.(eventuallyNullSeq
35ba0 75 65 6e 63 65 28 29 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 32 20 uence()).|value|.{.........sum2.
35bc0 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b +=.value;.....}.<span.class="tok
35be0 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 -kw">else</span>.{.........asser
35c00 74 28 73 75 6d 32 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 t(sum2.==.<span.class="tok-numbe
35c20 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 r">3</span>);.....}.}..<span.cla
35c40 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 73 5f 6c ss="tok-kw">var</span>.numbers_l
35c60 65 66 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c eft:.<span.class="tok-type">u32<
35c80 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e /span>.=.<span.class="tok-null">
35ca0 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 undefined</span>;.<span.class="t
35cc0 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
35ce0 6b 2d 66 6e 22 3e 65 76 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 65 3c 2f 73 70 k-fn">eventuallyNullSequence</sp
35d00 61 6e 3e 28 29 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 an>().?<span.class="tok-type">u3
35d20 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 2</span>.{.....<span.class="tok-
35d40 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 kw">return</span>.<span.class="t
35d60 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d ok-kw">if</span>.(numbers_left.=
35d80 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 =.<span.class="tok-number">0</sp
35da0 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c an>).<span.class="tok-null">null
35dc0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 </span>.<span.class="tok-kw">els
35de0 65 3c 2f 73 70 61 6e 3e 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 73 5f e</span>.blk:.{.........numbers_
35e00 6c 65 66 74 20 2d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 left.-=.<span.class="tok-number"
35e20 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >1</span>;.........<span.class="
35e40 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3a 62 6c 6b 20 6e 75 6d 62 65 72 tok-kw">break</span>.:blk.number
35e60 73 5f 6c 65 66 74 3b 0a 20 20 20 20 7d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 s_left;.....};.}</code></pre><pr
35e80 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 e><code.class="shell">$.zig.test
35ea0 20 77 68 69 6c 65 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 .while.zig.1/1.test.&quot;while.
35ec0 6e 75 6c 6c 20 63 61 70 74 75 72 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 null.capture&quot;...OK.All.test
35ee0 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a s.passed..</code></pre>.........
35f00 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 77 68 69 6c 65 2d 77 69 74 68 2d 45 72 72 6f 72 2d .......<h2.id="while-with-Error-
35f20 55 6e 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 77 68 69 6c 65 2d 77 69 74 68 Unions"><a.href="#toc-while-with
35f40 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e 77 68 69 6c 65 20 77 69 74 68 20 45 72 72 6f 72 20 -Error-Unions">while.with.Error.
35f60 55 6e 69 6f 6e 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 Unions</a>.<a.class="hdr".href="
35f80 23 77 68 69 6c 65 2d 77 69 74 68 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e #while-with-Error-Unions">..</a>
35fa0 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4a 75 73 74 20 6c 69 6b 65 </h2>........<p>.......Just.like
35fc0 20 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 20 65 78 70 72 65 73 73 69 6f 6e .<a.href="#if">if</a>.expression
35fe0 73 2c 20 77 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 6e 20 74 61 6b 65 20 61 6e 20 65 72 72 6f 72 s,.while.loops.can.take.an.error
36000 20 75 6e 69 6f 6e 20 61 73 0a 20 20 20 20 20 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 20 61 6e .union.as.......the.condition.an
36020 64 20 63 61 70 74 75 72 65 20 74 68 65 20 70 61 79 6c 6f 61 64 20 6f 72 20 74 68 65 20 65 72 72 d.capture.the.payload.or.the.err
36040 6f 72 20 63 6f 64 65 2e 20 57 68 65 6e 20 74 68 65 0a 20 20 20 20 20 20 63 6f 6e 64 69 74 69 6f or.code..When.the.......conditio
36060 6e 20 72 65 73 75 6c 74 73 20 69 6e 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 74 68 65 20 65 n.results.in.an.error.code.the.e
36080 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 61 6e 64 0a 20 20 20 20 lse.branch.is.evaluated.and.....
360a0 20 20 74 68 65 20 6c 6f 6f 70 20 69 73 20 66 69 6e 69 73 68 65 64 2e 0a 20 20 20 20 20 20 3c 2f ..the.loop.is.finished........</
360c0 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 74 68 65 20 3c 63 6f 64 p>.......<p>.......When.the.<cod
360e0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
36100 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 78 7c 3c 2f 63 6f 64 65 3e 20 73 79 6e 74 61 78 w">else</span>.|x|</code>.syntax
36120 20 69 73 20 70 72 65 73 65 6e 74 20 6f 6e 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .is.present.on.a.<code.class="zi
36140 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 g"><span.class="tok-kw">while</s
36160 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 2c 0a 20 20 20 20 20 20 74 68 pan></code>.expression,.......th
36180 65 20 77 68 69 6c 65 20 63 6f 6e 64 69 74 69 6f 6e 20 6d 75 73 74 20 68 61 76 65 20 61 6e 20 3c e.while.condition.must.have.an.<
361a0 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 3e 45 72 72 6f 72 a.href="#Error-Union-Type">Error
361c0 20 55 6e 69 6f 6e 20 54 79 70 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 .Union.Type</a>........</p>.....
361e0 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 77 68 69 6c 65 2e 7a 69 67 3c 2f 70 3e 3c ..<p.class="file">while.zig</p><
36200 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
36220 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d s="tok-kw">const</span>.assert.=
36240 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f .<span.class="tok-builtin">@impo
36260 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e rt</span>(<span.class="tok-str">
36280 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 &quot;std&quot;</span>).debug.as
362a0 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 sert;..<span.class="tok-kw">test
362c0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>.<span.class="tok-str">&q
362e0 75 6f 74 3b 77 68 69 6c 65 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 63 61 70 74 75 72 65 26 71 75 uot;while.error.union.capture&qu
36300 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ot;</span>.{.....<span.class="to
36320 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 75 6d 31 3a 20 3c 73 70 61 6e 20 63 6c 61 k-kw">var</span>.sum1:.<span.cla
36340 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e ss="tok-type">u32</span>.=.<span
36360 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">0</span>;...
36380 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..numbers_left.=.<span.class="to
363a0 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c k-number">3</span>;.....<span.cl
363c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 65 76 65 6e 74 ass="tok-kw">while</span>.(event
363e0 75 61 6c 6c 79 45 72 72 6f 72 53 65 71 75 65 6e 63 65 28 29 29 20 7c 76 61 6c 75 65 7c 20 7b 0a uallyErrorSequence()).|value|.{.
36400 20 20 20 20 20 20 20 20 73 75 6d 31 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 20 3c 73 70 ........sum1.+=.value;.....}.<sp
36420 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 65 an.class="tok-kw">else</span>.|e
36440 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 65 72 72 20 3d 3d 20 3c 73 70 61 rr|.{.........assert(err.==.<spa
36460 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 52 65 n.class="tok-kw">error</span>.Re
36480 61 63 68 65 64 5a 65 72 6f 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 achedZero);.....}.}..<span.class
364a0 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 73 5f 6c 65 66 ="tok-kw">var</span>.numbers_lef
364c0 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 t:.<span.class="tok-type">u32</s
364e0 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e pan>.=.<span.class="tok-null">un
36500 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f defined</span>;..<span.class="to
36520 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b k-kw">fn</span>.<span.class="tok
36540 2d 66 6e 22 3e 65 76 65 6e 74 75 61 6c 6c 79 45 72 72 6f 72 53 65 71 75 65 6e 63 65 3c 2f 73 70 -fn">eventuallyErrorSequence</sp
36560 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 an>().<span.class="tok-type">any
36580 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 error</span>!<span.class="tok-ty
365a0 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 pe">u32</span>.{.....<span.class
365c0 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ="tok-kw">return</span>.<span.cl
365e0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 73 5f ass="tok-kw">if</span>.(numbers_
36600 6c 65 66 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 left.==.<span.class="tok-number"
36620 3e 30 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e >0</span>).<span.class="tok-kw">
36640 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 52 65 61 63 68 65 64 5a 65 72 6f 20 3c 73 70 61 6e 20 63 error</span>.ReachedZero.<span.c
36660 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 62 6c 6b 3a 20 7b lass="tok-kw">else</span>.blk:.{
36680 0a 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 2d 3d 20 3c 73 70 61 6e 20 63 .........numbers_left.-=.<span.c
366a0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 lass="tok-number">1</span>;.....
366c0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f ....<span.class="tok-kw">break</
366e0 73 70 61 6e 3e 20 3a 62 6c 6b 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 3b 0a 20 20 20 20 7d 3b 0a span>.:blk.numbers_left;.....};.
36700 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
36720 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 77 68 69 6c 65 2e 7a 69 67 0a 31 2f 31 20 shell">$.zig.test.while.zig.1/1.
36740 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 63 61 70 test.&quot;while.error.union.cap
36760 74 75 72 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 ture&quot;...OK.All.tests.passed
36780 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c ..</code></pre>................<
367a0 68 32 20 69 64 3d 22 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 h2.id="inline-while"><a.href="#t
367c0 6f 63 2d 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 3e 69 6e 6c 69 6e 65 20 77 68 69 6c 65 3c 2f 61 oc-inline-while">inline.while</a
367e0 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 77 >.<a.class="hdr".href="#inline-w
36800 68 69 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 hile">..</a></h2>........<p>....
36820 20 20 20 57 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 6e 20 62 65 20 69 6e 6c 69 6e 65 64 2e 20 54 ...While.loops.can.be.inlined..T
36840 68 69 73 20 63 61 75 73 65 73 20 74 68 65 20 6c 6f 6f 70 20 74 6f 20 62 65 20 75 6e 72 6f 6c 6c his.causes.the.loop.to.be.unroll
36860 65 64 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 6f 64 65 20 ed,.which.......allows.the.code.
36880 74 6f 20 64 6f 20 73 6f 6d 65 20 74 68 69 6e 67 73 20 77 68 69 63 68 20 6f 6e 6c 79 20 77 6f 72 to.do.some.things.which.only.wor
368a0 6b 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2c 0a 20 20 20 20 20 20 73 75 63 68 20 61 73 k.at.compile.time,.......such.as
368c0 20 75 73 65 20 74 79 70 65 73 20 61 73 20 66 69 72 73 74 20 63 6c 61 73 73 20 76 61 6c 75 65 73 .use.types.as.first.class.values
368e0 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c ........</p>.......<p.class="fil
36900 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
36920 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 "zig"><span.class="tok-kw">const
36940 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.assert.=.<span.class="to
36960 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
36980 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
369a0 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 /span>).debug.assert;..<span.cla
369c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
369e0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 6c 69 6e 65 20 77 68 69 6c 65 ass="tok-str">&quot;inline.while
36a00 20 6c 6f 6f 70 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 .loop&quot;</span>.{.....<span.c
36a20 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 3c 73 lass="tok-kw">comptime</span>.<s
36a40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 20 pan.class="tok-kw">var</span>.i.
36a60 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 =.<span.class="tok-number">0</sp
36a80 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 an>;.....<span.class="tok-kw">va
36aa0 72 3c 2f 73 70 61 6e 3e 20 73 75 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 r</span>.sum:.<span.class="tok-t
36ac0 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ype">usize</span>.=.<span.class=
36ae0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e "tok-number">0</span>;.....<span
36b00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 6e 6c 69 6e 65 3c 2f 73 70 61 6e 3e 20 3c 73 .class="tok-kw">inline</span>.<s
36b20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">while</span>.
36b40 28 69 20 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 (i.&lt;.<span.class="tok-number"
36b60 3e 33 3c 2f 73 70 61 6e 3e 29 20 3a 20 28 69 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >3</span>).:.(i.+=.<span.class="
36b80 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 tok-number">1</span>).{.........
36ba0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
36bc0 3e 20 54 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 >.T.=.<span.class="tok-kw">switc
36be0 68 3c 2f 73 70 61 6e 3e 20 28 69 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e h</span>.(i).{.............<span
36c00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 20 3d 26 67 .class="tok-number">0</span>.=&g
36c20 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 t;.<span.class="tok-type">f32</s
36c40 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>,.............<span.class="t
36c60 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 ok-number">1</span>.=&gt;.<span.
36c80 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 class="tok-type">i8</span>,.....
36ca0 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 ........<span.class="tok-number"
36cc0 3e 32 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >2</span>.=&gt;.<span.class="tok
36ce0 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 -type">bool</span>,.............
36d00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e <span.class="tok-kw">else</span>
36d20 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 .=&gt;.<span.class="tok-kw">unre
36d40 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 achable</span>,.........};......
36d60 20 20 20 73 75 6d 20 2b 3d 20 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 68 28 54 29 3b 0a 20 20 20 ...sum.+=.typeNameLength(T);....
36d80 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 .}.....assert(sum.==.<span.class
36da0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 ="tok-number">9</span>);.}..<spa
36dc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e n.class="tok-kw">fn</span>.<span
36de0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 68 3c 2f .class="tok-fn">typeNameLength</
36e00 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 span>(<span.class="tok-kw">compt
36e20 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ime</span>.T:.<span.class="tok-t
36e40 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ype">type</span>).<span.class="t
36e60 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 ok-type">usize</span>.{.....<spa
36e80 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c n.class="tok-kw">return</span>.<
36ea0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 span.class="tok-builtin">@typeNa
36ec0 6d 65 3c 2f 73 70 61 6e 3e 28 54 29 2e 6c 65 6e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e me</span>(T).len;.}</code></pre>
36ee0 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 <pre><code.class="shell">$.zig.t
36f00 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 6c 69 est.test.zig.1/1.test.&quot;inli
36f20 6e 65 20 77 68 69 6c 65 20 6c 6f 6f 70 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 ne.while.loop&quot;...OK.All.tes
36f40 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 ts.passed..</code></pre>........
36f60 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 <p>.......It.is.recommended.to.u
36f80 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 se.<code.class="zig"><span.class
36fa0 3d 22 74 6f 6b 2d 6b 77 22 3e 69 6e 6c 69 6e 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6c ="tok-kw">inline</span></code>.l
36fc0 6f 6f 70 73 20 6f 6e 6c 79 20 66 6f 72 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 72 65 61 73 6f oops.only.for.one.of.these.reaso
36fe0 6e 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 ns:.......</p>.......<ul>.......
37000 20 20 3c 6c 69 3e 59 6f 75 20 6e 65 65 64 20 74 68 65 20 6c 6f 6f 70 20 74 6f 20 65 78 65 63 75 ..<li>You.need.the.loop.to.execu
37020 74 65 20 61 74 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 te.at.<a.href="#comptime">compti
37040 6d 65 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 73 65 6d 61 6e 74 69 63 73 20 74 6f 20 77 6f 72 6b me</a>.for.the.semantics.to.work
37060 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 59 6f 75 20 .</li>.........<li>.........You.
37080 68 61 76 65 20 61 20 62 65 6e 63 68 6d 61 72 6b 20 74 6f 20 70 72 6f 76 65 20 74 68 61 74 20 66 have.a.benchmark.to.prove.that.f
370a0 6f 72 63 69 62 6c 79 20 75 6e 72 6f 6c 6c 69 6e 67 20 74 68 65 20 6c 6f 6f 70 20 69 6e 20 74 68 orcibly.unrolling.the.loop.in.th
370c0 69 73 20 77 61 79 20 69 73 20 6d 65 61 73 75 72 61 62 6c 79 20 66 61 73 74 65 72 2e 0a 20 20 20 is.way.is.measurably.faster.....
370e0 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 .....</li>.......</ul>..........
37100 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 ....<p>See.also:</p><ul>.<li><a.
37120 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 href="#if">if</a></li>.<li><a.hr
37140 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 3c 2f 6c ef="#Optionals">Optionals</a></l
37160 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c i>.<li><a.href="#Errors">Errors<
37180 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 /a></li>.<li><a.href="#comptime"
371a0 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 >comptime</a></li>.<li><a.href="
371c0 23 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 61 3e 3c 2f 6c #unreachable">unreachable</a></l
371e0 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 66 i>.</ul>...............<h1.id="f
37200 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 20 3c or"><a.href="#toc-for">for</a>.<
37220 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 66 6f 72 22 3e c2 a7 3c 2f 61 3e a.class="hdr".href="#for">..</a>
37240 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 6f 72 </h1>........<p.class="file">for
37260 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .zig</p><pre><code.class="zig"><
37280 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
372a0 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 .assert.=.<span.class="tok-built
372c0 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
372e0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
37300 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .debug.assert;..<span.class="tok
37320 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f -kw">test</span>.<span.class="to
37340 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 72 20 62 61 73 69 63 73 26 71 75 6f 74 3b 3c 2f 73 k-str">&quot;for.basics&quot;</s
37360 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
37380 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 74 65 6d 73 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c const</span>.items.=.[_]<span.cl
373a0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 ass="tok-type">i32</span>.{.<spa
373c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c n.class="tok-number">4</span>,.<
373e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e span.class="tok-number">5</span>
37400 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 ,.<span.class="tok-number">3</sp
37420 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c an>,.<span.class="tok-number">4<
37440 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>,.<span.class="tok-number"
37460 3e 30 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >0</span>.};.....<span.class="to
37480 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 75 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 k-kw">var</span>.sum:.<span.clas
374a0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 s="tok-type">i32</span>.=.<span.
374c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 class="tok-number">0</span>;....
374e0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 46 ..<span.class="tok-comment">//.F
37500 6f 72 20 6c 6f 6f 70 73 20 69 74 65 72 61 74 65 20 6f 76 65 72 20 73 6c 69 63 65 73 20 61 6e 64 or.loops.iterate.over.slices.and
37520 20 61 72 72 61 79 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .arrays.</span>.....<span.class=
37540 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 69 74 65 6d 73 29 20 7c 76 61 6c "tok-kw">for</span>.(items).|val
37560 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 ue|.{.........<span.class="tok-c
37580 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 42 72 65 61 6b 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 61 72 omment">//.Break.and.continue.ar
375a0 65 20 73 75 70 70 6f 72 74 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 e.supported.</span>.........<spa
375c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 76 61 6c 75 n.class="tok-kw">if</span>.(valu
375e0 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c e.==.<span.class="tok-number">0<
37600 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 /span>).{.............<span.clas
37620 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 s="tok-kw">continue</span>;.....
37640 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 ....}.........sum.+=.value;.....
37660 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d }.....assert(sum.==.<span.class=
37680 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 36 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 "tok-number">16</span>);......<s
376a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 6f 20 69 74 pan.class="tok-comment">//.To.it
376c0 65 72 61 74 65 20 6f 76 65 72 20 61 20 70 6f 72 74 69 6f 6e 20 6f 66 20 61 20 73 6c 69 63 65 2c erate.over.a.portion.of.a.slice,
376e0 20 72 65 73 6c 69 63 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 .reslice.</span>.....<span.class
37700 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 69 74 65 6d 73 5b 3c 73 70 61 ="tok-kw">for</span>.(items[<spa
37720 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 3c n.class="tok-number">0</span>..<
37740 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e span.class="tok-number">1</span>
37760 5d 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 76 61 6c 75 ]).|value|.{.........sum.+=.valu
37780 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 3c 73 70 61 6e e;.....}.....assert(sum.==.<span
377a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 30 3c 2f 73 70 61 6e 3e 29 3b 0a .class="tok-number">20</span>);.
377c0 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f .....<span.class="tok-comment">/
377e0 2f 20 54 6f 20 61 63 63 65 73 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 69 74 65 72 61 74 69 /.To.access.the.index.of.iterati
37800 6f 6e 2c 20 73 70 65 63 69 66 79 20 61 20 73 65 63 6f 6e 64 20 63 61 70 74 75 72 65 20 76 61 6c on,.specify.a.second.capture.val
37820 75 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ue.</span>.....<span.class="tok-
37840 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 69 73 20 7a 65 72 6f 2d 69 6e 64 65 78 65 64 comment">//.This.is.zero-indexed
37860 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .</span>.....<span.class="tok-kw
37880 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 75 6d 32 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">var</span>.sum2:.<span.class="
378a0 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 tok-type">i32</span>.=.<span.cla
378c0 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 ss="tok-number">0</span>;.....<s
378e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 69 pan.class="tok-kw">for</span>.(i
37900 74 65 6d 73 29 20 7c 76 61 6c 75 65 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 tems).|value,.i|.{.........asser
37920 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 t(<span.class="tok-builtin">@typ
37940 65 4f 66 3c 2f 73 70 61 6e 3e 28 69 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f eOf</span>(i).==.<span.class="to
37960 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 73 k-type">usize</span>);.........s
37980 75 6d 32 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 um2.+=.<span.class="tok-builtin"
379a0 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >@intCast</span>(<span.class="to
379c0 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 69 29 3b 0a 20 20 20 20 7d 0a 20 20 k-type">i32</span>,.i);.....}...
379e0 20 20 61 73 73 65 72 74 28 73 75 6d 32 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..assert(sum2.==.<span.class="to
37a00 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 k-number">10</span>);.}..<span.c
37a20 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 lass="tok-kw">test</span>.<span.
37a40 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 72 20 72 65 66 65 72 65 class="tok-str">&quot;for.refere
37a60 6e 63 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 nce&quot;</span>.{.....<span.cla
37a80 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 74 65 6d 73 20 3d 20 5b ss="tok-kw">var</span>.items.=.[
37aa0 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 _]<span.class="tok-type">i32</sp
37ac0 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 an>.{.<span.class="tok-number">3
37ae0 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 </span>,.<span.class="tok-number
37b00 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ">4</span>,.<span.class="tok-num
37b20 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ber">2</span>.};......<span.clas
37b40 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 74 65 72 61 74 65 20 6f 76 65 72 20 s="tok-comment">//.Iterate.over.
37b60 74 68 65 20 73 6c 69 63 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 20 62 79 3c 2f 73 70 61 6e 3e the.slice.by.reference.by</span>
37b80 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f .....<span.class="tok-comment">/
37ba0 2f 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 61 74 20 74 68 65 20 63 61 70 74 75 72 65 20 76 61 /.specifying.that.the.capture.va
37bc0 6c 75 65 20 69 73 20 61 20 70 6f 69 6e 74 65 72 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 lue.is.a.pointer.</span>.....<sp
37be0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 69 74 an.class="tok-kw">for</span>.(it
37c00 65 6d 73 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 2e 2a 20 ems).|*value|.{.........value.*.
37c20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 +=.<span.class="tok-number">1</s
37c40 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 3c 73 pan>;.....}......assert(items[<s
37c60 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d pan.class="tok-number">0</span>]
37c80 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f .==.<span.class="tok-number">4</
37ca0 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 3c 73 70 61 6e 20 63 span>);.....assert(items[<span.c
37cc0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c lass="tok-number">1</span>].==.<
37ce0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e span.class="tok-number">5</span>
37d00 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d );.....assert(items[<span.class=
37d20 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 "tok-number">2</span>].==.<span.
37d40 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a class="tok-number">3</span>);.}.
37d60 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
37d80 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f >.<span.class="tok-str">&quot;fo
37da0 72 20 65 6c 73 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 r.else&quot;</span>.{.....<span.
37dc0 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 46 6f 72 20 61 6c 6c 6f 77 class="tok-comment">//.For.allow
37de0 73 20 61 6e 20 65 6c 73 65 20 61 74 74 61 63 68 65 64 20 74 6f 20 69 74 2c 20 74 68 65 20 73 61 s.an.else.attached.to.it,.the.sa
37e00 6d 65 20 61 73 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c me.as.a.while.loop.</span>.....<
37e20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 span.class="tok-kw">var</span>.i
37e40 74 65 6d 73 20 3d 20 5b 5f 5d 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 tems.=.[_]?<span.class="tok-type
37e60 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">i32</span>.{.<span.class="tok-
37e80 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 number">3</span>,.<span.class="t
37ea0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-number">4</span>,.<span.class
37ec0 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 ="tok-null">null</span>,.<span.c
37ee0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 0a 20 lass="tok-number">5</span>.};...
37f00 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 ...<span.class="tok-comment">//.
37f20 46 6f 72 20 6c 6f 6f 70 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 61 73 20 65 78 For.loops.can.also.be.used.as.ex
37f40 70 72 65 73 73 69 6f 6e 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 pressions.</span>.....<span.clas
37f60 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 69 6d 69 6c 61 72 20 74 6f 20 77 68 s="tok-comment">//.Similar.to.wh
37f80 69 6c 65 20 6c 6f 6f 70 73 2c 20 77 68 65 6e 20 79 6f 75 20 62 72 65 61 6b 20 66 72 6f 6d 20 61 ile.loops,.when.you.break.from.a
37fa0 20 66 6f 72 20 6c 6f 6f 70 2c 20 74 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 6e 6f .for.loop,.the.else.branch.is.no
37fc0 74 20 65 76 61 6c 75 61 74 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c t.evaluated.</span>.....<span.cl
37fe0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 75 6d 3a 20 3c 73 70 ass="tok-kw">var</span>.sum:.<sp
38000 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d an.class="tok-type">i32</span>.=
38020 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 .<span.class="tok-number">0</spa
38040 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e n>;.....<span.class="tok-kw">con
38060 73 74 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 st</span>.result.=.<span.class="
38080 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 69 74 65 6d 73 29 20 7c 76 61 6c 75 tok-kw">for</span>.(items).|valu
380a0 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 e|.{.........<span.class="tok-kw
380c0 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 76 61 6c 75 65 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ">if</span>.(value.!=.<span.clas
380e0 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 s="tok-null">null</span>).{.....
38100 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 76 61 6c 75 65 2e 3f 3b 0a 20 20 20 20 20 20 20 20 ........sum.+=.value.?;.........
38120 7d 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 }.....}.<span.class="tok-kw">els
38140 65 3c 2f 73 70 61 6e 3e 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 73 e</span>.blk:.{.........assert(s
38160 75 6d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 um.==.<span.class="tok-number">1
38180 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 2</span>);.........<span.class="
381a0 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3a 62 6c 6b 20 73 75 6d 3b 0a 20 tok-kw">break</span>.:blk.sum;..
381c0 20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 72 65 73 75 6c 74 20 3d 3d 20 3c 73 70 61 6e ...};.....assert(result.==.<span
381e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a .class="tok-number">12</span>);.
38200 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
38220 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 66 6f 72 2e 7a 69 67 0a 31 2f 33 20 74 65 shell">$.zig.test.for.zig.1/3.te
38240 73 74 20 26 71 75 6f 74 3b 66 6f 72 20 62 61 73 69 63 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 st.&quot;for.basics&quot;...OK.2
38260 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 72 20 72 65 66 65 72 65 6e 63 65 26 71 75 6f 74 /3.test.&quot;for.reference&quot
38280 3b 2e 2e 2e 4f 4b 0a 33 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 72 20 65 6c 73 65 26 71 ;...OK.3/3.test.&quot;for.else&q
382a0 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f uot;...OK.All.tests.passed..</co
382c0 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 4c 61 62 65 6c 65 64 de></pre>........<h2.id="Labeled
382e0 2d 66 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4c 61 62 65 6c 65 64 2d 66 6f 72 22 -for"><a.href="#toc-Labeled-for"
38300 3e 4c 61 62 65 6c 65 64 20 66 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 >Labeled.for</a>.<a.class="hdr".
38320 68 72 65 66 3d 22 23 4c 61 62 65 6c 65 64 2d 66 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a href="#Labeled-for">..</a></h2>.
38340 0a 20 20 20 20 20 20 3c 70 3e 57 68 65 6e 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .......<p>When.a.<code.class="zi
38360 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 g"><span.class="tok-kw">for</spa
38380 6e 3e 3c 2f 63 6f 64 65 3e 20 6c 6f 6f 70 20 69 73 20 6c 61 62 65 6c 65 64 2c 20 69 74 20 63 61 n></code>.loop.is.labeled,.it.ca
383a0 6e 20 62 65 20 72 65 66 65 72 65 6e 63 65 64 20 66 72 6f 6d 20 61 20 3c 63 6f 64 65 20 63 6c 61 n.be.referenced.from.a.<code.cla
383c0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 ss="zig"><span.class="tok-kw">br
383e0 65 61 6b 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eak</span></code>...............
38400 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 or.<code.class="zig"><span.class
38420 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ="tok-kw">continue</span></code>
38440 20 66 72 6f 6d 20 77 69 74 68 69 6e 20 61 20 6e 65 73 74 65 64 20 6c 6f 6f 70 3a 3c 2f 70 3e 0a .from.within.a.nested.loop:</p>.
38460 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f ......<p.class="file">test.zig</
38480 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 p><pre><code.class="zig"><span.c
384a0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d lass="tok-kw">const</span>.std.=
384c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f .<span.class="tok-builtin">@impo
384e0 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e rt</span>(<span.class="tok-str">
38500 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 &quot;std&quot;</span>);.<span.c
38520 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 lass="tok-kw">const</span>.asser
38540 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 t.=.std.debug.assert;..<span.cla
38560 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
38580 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 65 73 74 65 64 20 62 72 65 61 6b ass="tok-str">&quot;nested.break
385a0 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d &quot;</span>.{.....<span.class=
385c0 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 63 6f 75 6e 74 3a 20 3c 73 70 61 6e "tok-kw">var</span>.count:.<span
385e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d .class="tok-type">usize</span>.=
38600 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 .<span.class="tok-number">0</spa
38620 6e 3e 3b 0a 20 20 20 20 6f 75 74 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n>;.....outer:.<span.class="tok-
38640 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 kw">for</span>.([_]<span.class="
38660 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 tok-type">i32</span>{.<span.clas
38680 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 s="tok-number">1</span>,.<span.c
386a0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 lass="tok-number">2</span>,.<spa
386c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c n.class="tok-number">3</span>,.<
386e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e span.class="tok-number">4</span>
38700 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 ,.<span.class="tok-number">5</sp
38720 61 6e 3e 20 7d 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 an>.}).|_|.{.........<span.class
38740 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 5b 5f 5d 3c 73 70 61 6e 20 63 ="tok-kw">for</span>.([_]<span.c
38760 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 lass="tok-type">i32</span>{.<spa
38780 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 3c n.class="tok-number">1</span>,.<
387a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e span.class="tok-number">2</span>
387c0 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 ,.<span.class="tok-number">3</sp
387e0 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c an>,.<span.class="tok-number">4<
38800 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>,.<span.class="tok-number"
38820 3e 35 3c 2f 73 70 61 6e 3e 20 7d 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 >5</span>.}).|_|.{.............c
38840 6f 75 6e 74 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 ount.+=.<span.class="tok-number"
38860 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 >1</span>;.............<span.cla
38880 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3a 6f 75 74 65 72 3b ss="tok-kw">break</span>.:outer;
388a0 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 63 6f 75 6e .........}.....}.....assert(coun
388c0 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c t.==.<span.class="tok-number">1<
388e0 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>);.}..<span.class="tok-kw"
38900 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >test</span>.<span.class="tok-st
38920 72 22 3e 26 71 75 6f 74 3b 6e 65 73 74 65 64 20 63 6f 6e 74 69 6e 75 65 26 71 75 6f 74 3b 3c 2f r">&quot;nested.continue&quot;</
38940 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
38960 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 63 6f 75 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >var</span>.count:.<span.class="
38980 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 tok-type">usize</span>.=.<span.c
389a0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 lass="tok-number">0</span>;.....
389c0 6f 75 74 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c outer:.<span.class="tok-kw">for<
389e0 2f 73 70 61 6e 3e 20 28 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 /span>.([_]<span.class="tok-type
38a00 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ">i32</span>{.<span.class="tok-n
38a20 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f umber">1</span>,.<span.class="to
38a40 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-number">2</span>,.<span.class=
38a60 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 "tok-number">3</span>,.<span.cla
38a80 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 ss="tok-number">4</span>,.<span.
38aa0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 class="tok-number">5</span>,.<sp
38ac0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 2c 20 an.class="tok-number">6</span>,.
38ae0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 37 3c 2f 73 70 61 6e <span.class="tok-number">7</span
38b00 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 >,.<span.class="tok-number">8</s
38b20 70 61 6e 3e 20 7d 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 pan>.}).|_|.{.........<span.clas
38b40 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 5b 5f 5d 3c 73 70 61 6e 20 s="tok-kw">for</span>.([_]<span.
38b60 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 class="tok-type">i32</span>{.<sp
38b80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 an.class="tok-number">1</span>,.
38ba0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e <span.class="tok-number">2</span
38bc0 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 >,.<span.class="tok-number">3</s
38be0 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 pan>,.<span.class="tok-number">4
38c00 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 </span>,.<span.class="tok-number
38c20 22 3e 35 3c 2f 73 70 61 6e 3e 20 7d 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ">5</span>.}).|_|.{.............
38c40 63 6f 75 6e 74 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 count.+=.<span.class="tok-number
38c60 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c ">1</span>;.............<span.cl
38c80 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 20 3a 6f 75 ass="tok-kw">continue</span>.:ou
38ca0 74 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 61 73 73 65 72 74 ter;.........}.....}......assert
38cc0 28 63 6f 75 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 (count.==.<span.class="tok-numbe
38ce0 72 22 3e 38 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 r">8</span>);.}</code></pre><pre
38d00 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 ><code.class="shell">$.zig.test.
38d20 74 65 73 74 2e 7a 69 67 0a 31 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 6e 65 73 74 65 64 20 62 test.zig.1/2.test.&quot;nested.b
38d40 72 65 61 6b 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 6e reak&quot;...OK.2/2.test.&quot;n
38d60 65 73 74 65 64 20 63 6f 6e 74 69 6e 75 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 ested.continue&quot;...OK.All.te
38d80 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 sts.passed..</code></pre>.......
38da0 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 6c 69 6e 65 2d 66 6f 72 22 3e 3c 61 20 68 ........<h2.id="inline-for"><a.h
38dc0 72 65 66 3d 22 23 74 6f 63 2d 69 6e 6c 69 6e 65 2d 66 6f 72 22 3e 69 6e 6c 69 6e 65 20 66 6f 72 ref="#toc-inline-for">inline.for
38de0 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e </a>.<a.class="hdr".href="#inlin
38e00 65 2d 66 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 e-for">..</a></h2>........<p>...
38e20 20 20 20 20 46 6f 72 20 6c 6f 6f 70 73 20 63 61 6e 20 62 65 20 69 6e 6c 69 6e 65 64 2e 20 54 68 ....For.loops.can.be.inlined..Th
38e40 69 73 20 63 61 75 73 65 73 20 74 68 65 20 6c 6f 6f 70 20 74 6f 20 62 65 20 75 6e 72 6f 6c 6c 65 is.causes.the.loop.to.be.unrolle
38e60 64 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 6f 64 65 20 74 d,.which.......allows.the.code.t
38e80 6f 20 64 6f 20 73 6f 6d 65 20 74 68 69 6e 67 73 20 77 68 69 63 68 20 6f 6e 6c 79 20 77 6f 72 6b o.do.some.things.which.only.work
38ea0 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2c 0a 20 20 20 20 20 20 73 75 63 68 20 61 73 20 .at.compile.time,.......such.as.
38ec0 75 73 65 20 74 79 70 65 73 20 61 73 20 66 69 72 73 74 20 63 6c 61 73 73 20 76 61 6c 75 65 73 2e use.types.as.first.class.values.
38ee0 0a 20 20 20 20 20 20 54 68 65 20 63 61 70 74 75 72 65 20 76 61 6c 75 65 20 61 6e 64 20 69 74 65 .......The.capture.value.and.ite
38f00 72 61 74 6f 72 20 76 61 6c 75 65 20 6f 66 20 69 6e 6c 69 6e 65 64 20 66 6f 72 20 6c 6f 6f 70 73 rator.value.of.inlined.for.loops
38f20 20 61 72 65 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 2e 0a 20 .are.......compile-time.known...
38f40 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e .....</p>.......<p.class="file">
38f60 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 test.zig</p><pre><code.class="zi
38f80 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 g"><span.class="tok-kw">const</s
38fa0 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 pan>.assert.=.<span.class="tok-b
38fc0 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 uiltin">@import</span>(<span.cla
38fe0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 ss="tok-str">&quot;std&quot;</sp
39000 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d an>).debug.assert;..<span.class=
39020 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
39040 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 6c 69 6e 65 20 66 6f 72 20 6c 6f 6f 70 ="tok-str">&quot;inline.for.loop
39060 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d &quot;</span>.{.....<span.class=
39080 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 73 20 3d 20 5b 5f 5d "tok-kw">const</span>.nums.=.[_]
390a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e <span.class="tok-type">i32</span
390c0 3e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 >{<span.class="tok-number">2</sp
390e0 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c an>,.<span.class="tok-number">4<
39100 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>,.<span.class="tok-number"
39120 3e 36 3c 2f 73 70 61 6e 3e 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >6</span>};.....<span.class="tok
39140 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 75 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 -kw">var</span>.sum:.<span.class
39160 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e ="tok-type">usize</span>.=.<span
39180 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">0</span>;...
391a0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 6e 6c 69 6e 65 3c 2f 73 ..<span.class="tok-kw">inline</s
391c0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 pan>.<span.class="tok-kw">for</s
391e0 70 61 6e 3e 20 28 6e 75 6d 73 29 20 7c 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 pan>.(nums).|i|.{.........<span.
39200 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 54 20 3d 20 class="tok-kw">const</span>.T.=.
39220 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 <span.class="tok-kw">switch</spa
39240 6e 3e 20 28 69 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 n>.(i).{.............<span.class
39260 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 ="tok-number">2</span>.=&gt;.<sp
39280 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a an.class="tok-type">f32</span>,.
392a0 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ............<span.class="tok-num
392c0 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ber">4</span>.=&gt;.<span.class=
392e0 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 "tok-type">i8</span>,...........
39300 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 ..<span.class="tok-number">6</sp
39320 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 an>.=&gt;.<span.class="tok-type"
39340 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 >bool</span>,.............<span.
39360 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b class="tok-kw">else</span>.=&gt;
39380 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c .<span.class="tok-kw">unreachabl
393a0 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 73 75 6d e</span>,.........};.........sum
393c0 20 2b 3d 20 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 68 28 54 29 3b 0a 20 20 20 20 7d 0a 20 20 20 .+=.typeNameLength(T);.....}....
393e0 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .assert(sum.==.<span.class="tok-
39400 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 number">9</span>);.}..<span.clas
39420 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
39440 3d 22 74 6f 6b 2d 66 6e 22 3e 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 68 3c 2f 73 70 61 6e 3e 28 ="tok-fn">typeNameLength</span>(
39460 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 <span.class="tok-kw">comptime</s
39480 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 pan>.T:.<span.class="tok-type">t
394a0 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 ype</span>).<span.class="tok-typ
394c0 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 e">usize</span>.{.....<span.clas
394e0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 s="tok-kw">return</span>.<span.c
39500 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 lass="tok-builtin">@typeName</sp
39520 61 6e 3e 28 54 29 2e 6c 65 6e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c an>(T).len;.}</code></pre><pre><
39540 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 code.class="shell">$.zig.test.te
39560 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 6c 69 6e 65 20 66 6f 72 st.zig.1/1.test.&quot;inline.for
39580 20 6c 6f 6f 70 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 .loop&quot;...OK.All.tests.passe
395a0 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 d..</code></pre>........<p>.....
395c0 20 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 3c 63 6f 64 65 ..It.is.recommended.to.use.<code
395e0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
39600 22 3e 69 6e 6c 69 6e 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6c 6f 6f 70 73 20 6f 6e 6c ">inline</span></code>.loops.onl
39620 79 20 66 6f 72 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 72 65 61 73 6f 6e 73 3a 0a 20 20 20 20 y.for.one.of.these.reasons:.....
39640 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 59 6f ..</p>.......<ul>.........<li>Yo
39660 75 20 6e 65 65 64 20 74 68 65 20 6c 6f 6f 70 20 74 6f 20 65 78 65 63 75 74 65 20 61 74 20 3c 61 u.need.the.loop.to.execute.at.<a
39680 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 20 66 .href="#comptime">comptime</a>.f
396a0 6f 72 20 74 68 65 20 73 65 6d 61 6e 74 69 63 73 20 74 6f 20 77 6f 72 6b 2e 3c 2f 6c 69 3e 0a 20 or.the.semantics.to.work.</li>..
396c0 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 59 6f 75 20 68 61 76 65 20 61 20 62 .......<li>.........You.have.a.b
396e0 65 6e 63 68 6d 61 72 6b 20 74 6f 20 70 72 6f 76 65 20 74 68 61 74 20 66 6f 72 63 69 62 6c 79 20 enchmark.to.prove.that.forcibly.
39700 75 6e 72 6f 6c 6c 69 6e 67 20 74 68 65 20 6c 6f 6f 70 20 69 6e 20 74 68 69 73 20 77 61 79 20 69 unrolling.the.loop.in.this.way.i
39720 73 20 6d 65 61 73 75 72 61 62 6c 79 20 66 61 73 74 65 72 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c s.measurably.faster..........</l
39740 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 70 3e 53 i>.......</ul>..............<p>S
39760 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 77 ee.also:</p><ul>.<li><a.href="#w
39780 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 hile">while</a></li>.<li><a.href
397a0 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c ="#comptime">comptime</a></li>.<
397c0 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c li><a.href="#Arrays">Arrays</a><
397e0 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 /li>.<li><a.href="#Slices">Slice
39800 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c s</a></li>.</ul>...............<
39820 68 31 20 69 64 3d 22 69 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 69 66 22 3e 69 66 3c h1.id="if"><a.href="#toc-if">if<
39840 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 66 22 3e c2 a7 /a>.<a.class="hdr".href="#if">..
39860 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 </a></h1>........<p.class="file"
39880 3e 69 66 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 >if.zig</p><pre><code.class="zig
398a0 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 "><span.class="tok-comment">//.I
398c0 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 68 61 76 65 20 74 68 72 65 65 20 75 73 65 73 2c 20 63 f.expressions.have.three.uses,.c
398e0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 74 68 72 65 65 20 74 79 70 65 73 3a orresponding.to.the.three.types:
39900 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 </span>.<span.class="tok-comment
39920 22 3e 2f 2f 20 2a 20 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">//.*.bool</span>.<span.class="
39940 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 2a 20 3f 54 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 tok-comment">//.*.?T</span>.<spa
39960 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 2a 20 61 6e 79 65 72 n.class="tok-comment">//.*.anyer
39980 72 6f 72 21 54 3c 2f 73 70 61 6e 3e 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ror!T</span>..<span.class="tok-k
399a0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 w">const</span>.assert.=.<span.c
399c0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
399e0 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
39a00 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c d&quot;</span>).debug.assert;..<
39a20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">test</span>.
39a40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 66 20 62 <span.class="tok-str">&quot;if.b
39a60 6f 6f 6c 65 61 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 oolean&quot;</span>.{.....<span.
39a80 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 20 65 78 70 72 65 73 class="tok-comment">//.If.expres
39aa0 73 69 6f 6e 73 20 74 65 73 74 20 62 6f 6f 6c 65 61 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 3c 2f sions.test.boolean.conditions.</
39ac0 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 span>.....<span.class="tok-kw">c
39ae0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d onst</span>.a:.<span.class="tok-
39b00 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 type">u32</span>.=.<span.class="
39b20 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 tok-number">5</span>;.....<span.
39b40 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c class="tok-kw">const</span>.b:.<
39b60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">u32</span>
39b80 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 .=.<span.class="tok-number">4</s
39ba0 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 pan>;.....<span.class="tok-kw">i
39bc0 66 3c 2f 73 70 61 6e 3e 20 28 61 20 21 3d 20 62 29 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 f</span>.(a.!=.b).{.........asse
39be0 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f rt(<span.class="tok-null">true</
39c00 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b span>);.....}.<span.class="tok-k
39c20 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d w">else</span>.<span.class="tok-
39c40 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d kw">if</span>.(a.==.<span.class=
39c60 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 "tok-number">9</span>).{........
39c80 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c .<span.class="tok-kw">unreachabl
39ca0 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e</span>;.....}.<span.class="tok
39cc0 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e -kw">else</span>.{.........<span
39ce0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 .class="tok-kw">unreachable</spa
39d00 6e 3e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n>;.....}......<span.class="tok-
39d20 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 75 comment">//.If.expressions.are.u
39d40 73 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 74 65 72 6e 61 72 79 20 65 78 70 72 65 73 73 sed.instead.of.a.ternary.express
39d60 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ion.</span>.....<span.class="tok
39d80 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e -kw">const</span>.result.=.<span
39da0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 20 21 3d 20 .class="tok-kw">if</span>.(a.!=.
39dc0 62 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 37 3c 2f b).<span.class="tok-number">47</
39de0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c span>.<span.class="tok-kw">else<
39e00 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e /span>.<span.class="tok-number">
39e20 33 30 38 39 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 72 74 28 72 65 73 75 6c 74 20 3d 3089</span>;.....assert(result.=
39e40 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 37 3c 2f 73 =.<span.class="tok-number">47</s
39e60 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 pan>);.}..<span.class="tok-kw">t
39e80 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 est</span>.<span.class="tok-str"
39ea0 3e 26 71 75 6f 74 3b 69 66 20 6f 70 74 69 6f 6e 61 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 >&quot;if.optional&quot;</span>.
39ec0 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e {.....<span.class="tok-comment">
39ee0 2f 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 65 73 74 20 66 6f 72 20 6e 75 6c 6c 2e //.If.expressions.test.for.null.
39f00 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 </span>......<span.class="tok-kw
39f20 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">const</span>.a:.?<span.class="
39f40 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 tok-type">u32</span>.=.<span.cla
39f60 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 ss="tok-number">0</span>;.....<s
39f80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 29 pan.class="tok-kw">if</span>.(a)
39fa0 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 .|value|.{.........assert(value.
39fc0 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 ==.<span.class="tok-number">0</s
39fe0 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 pan>);.....}.<span.class="tok-kw
3a000 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c ">else</span>.{.........<span.cl
3a020 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b ass="tok-kw">unreachable</span>;
3a040 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 .....}......<span.class="tok-kw"
3a060 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >const</span>.b:.?<span.class="t
3a080 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ok-type">u32</span>.=.<span.clas
3a0a0 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 s="tok-null">null</span>;.....<s
3a0c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 29 pan.class="tok-kw">if</span>.(b)
3a0e0 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .|value|.{.........<span.class="
3a100 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 tok-kw">unreachable</span>;.....
3a120 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 }.<span.class="tok-kw">else</spa
3a140 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d n>.{.........assert(<span.class=
3a160 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 0a "tok-null">true</span>);.....}..
3a180 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f ....<span.class="tok-comment">//
3a1a0 20 54 68 65 20 65 6c 73 65 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 2e 3c 2f 73 70 61 6e .The.else.is.not.required.</span
3a1c0 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 >.....<span.class="tok-kw">if</s
3a1e0 70 61 6e 3e 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 pan>.(a).|value|.{.........asser
3a200 74 28 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 t(value.==.<span.class="tok-numb
3a220 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 er">0</span>);.....}......<span.
3a240 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 6f 20 74 65 73 74 20 61 class="tok-comment">//.To.test.a
3a260 67 61 69 6e 73 74 20 6e 75 6c 6c 20 6f 6e 6c 79 2c 20 75 73 65 20 74 68 65 20 62 69 6e 61 72 79 gainst.null.only,.use.the.binary
3a280 20 65 71 75 61 6c 69 74 79 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c .equality.operator.</span>.....<
3a2a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 span.class="tok-kw">if</span>.(b
3a2c0 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c .==.<span.class="tok-null">null<
3a2e0 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 /span>).{.........assert(<span.c
3a300 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 lass="tok-null">true</span>);...
3a320 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e ..}......<span.class="tok-commen
3a340 74 22 3e 2f 2f 20 41 63 63 65 73 73 20 74 68 65 20 76 61 6c 75 65 20 62 79 20 72 65 66 65 72 65 t">//.Access.the.value.by.refere
3a360 6e 63 65 20 75 73 69 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 63 61 70 74 75 72 65 2e 3c 2f 73 70 nce.using.a.pointer.capture.</sp
3a380 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 an>.....<span.class="tok-kw">var
3a3a0 3c 2f 73 70 61 6e 3e 20 63 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 </span>.c:.?<span.class="tok-typ
3a3c0 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e">u32</span>.=.<span.class="tok
3a3e0 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 -number">3</span>;.....<span.cla
3a400 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7c 2a 76 61 6c 75 ss="tok-kw">if</span>.(c).|*valu
3a420 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 2e 2a 20 3d 20 3c 73 70 61 6e 20 63 6c 61 e|.{.........value.*.=.<span.cla
3a440 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a ss="tok-number">2</span>;.....}.
3a460 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 .....<span.class="tok-kw">if</sp
3a480 61 6e 3e 20 28 63 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 an>.(c).|value|.{.........assert
3a4a0 28 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 (value.==.<span.class="tok-numbe
3a4c0 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d r">2</span>);.....}.<span.class=
3a4e0 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c "tok-kw">else</span>.{.........<
3a500 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c span.class="tok-kw">unreachable<
3a520 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>;.....}.}..<span.class="to
3a540 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 k-kw">test</span>.<span.class="t
3a560 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 66 20 65 72 72 6f 72 20 75 6e 69 6f 6e 26 71 75 6f ok-str">&quot;if.error.union&quo
3a580 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b t;</span>.{.....<span.class="tok
3a5a0 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 65 73 74 -comment">//.If.expressions.test
3a5c0 20 66 6f 72 20 65 72 72 6f 72 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c .for.errors.</span>.....<span.cl
3a5e0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 6f 74 65 20 74 68 65 20 7c 65 ass="tok-comment">//.Note.the.|e
3a600 72 72 7c 20 63 61 70 74 75 72 65 20 6f 6e 20 74 68 65 20 65 6c 73 65 2e 3c 2f 73 70 61 6e 3e 0a rr|.capture.on.the.else.</span>.
3a620 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c .....<span.class="tok-kw">const<
3a640 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 /span>.a:.<span.class="tok-type"
3a660 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >anyerror</span>!<span.class="to
3a680 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-type">u32</span>.=.<span.class
3a6a0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 ="tok-number">0</span>;.....<spa
3a6c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 29 20 7c n.class="tok-kw">if</span>.(a).|
3a6e0 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d value|.{.........assert(value.==
3a700 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 .<span.class="tok-number">0</spa
3a720 6e 3e 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e n>);.....}.<span.class="tok-kw">
3a740 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 else</span>.|err|.{.........<spa
3a760 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 n.class="tok-kw">unreachable</sp
3a780 61 6e 3e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b an>;.....}......<span.class="tok
3a7a0 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 -kw">const</span>.b:.<span.class
3a7c0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 ="tok-type">anyerror</span>!<spa
3a7e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 n.class="tok-type">u32</span>.=.
3a800 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e <span.class="tok-kw">error</span
3a820 3e 2e 42 61 64 56 61 6c 75 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >.BadValue;.....<span.class="tok
3a840 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 -kw">if</span>.(b).|value|.{....
3a860 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 .....<span.class="tok-kw">unreac
3a880 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d hable</span>;.....}.<span.class=
3a8a0 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 7b 0a 20 20 20 "tok-kw">else</span>.|err|.{....
3a8c0 20 20 20 20 20 61 73 73 65 72 74 28 65 72 72 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .....assert(err.==.<span.class="
3a8e0 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 42 61 64 56 61 6c 75 65 29 3b 0a tok-kw">error</span>.BadValue);.
3a900 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d ....}......<span.class="tok-comm
3a920 65 6e 74 22 3e 2f 2f 20 54 68 65 20 65 6c 73 65 20 61 6e 64 20 7c 65 72 72 7c 20 63 61 70 74 75 ent">//.The.else.and.|err|.captu
3a940 72 65 20 69 73 20 73 74 72 69 63 74 6c 79 20 72 65 71 75 69 72 65 64 2e 3c 2f 73 70 61 6e 3e 0a re.is.strictly.required.</span>.
3a960 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 ....<span.class="tok-kw">if</spa
3a980 6e 3e 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 n>.(a).|value|.{.........assert(
3a9a0 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 value.==.<span.class="tok-number
3a9c0 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">0</span>);.....}.<span.class="
3a9e0 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 5f 7c 20 7b 7d 0a 0a 20 20 20 20 tok-kw">else</span>.|_|.{}......
3aa00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 6f 20 <span.class="tok-comment">//.To.
3aa20 63 68 65 63 6b 20 6f 6e 6c 79 20 74 68 65 20 65 72 72 6f 72 20 76 61 6c 75 65 2c 20 75 73 65 20 check.only.the.error.value,.use.
3aa40 61 6e 20 65 6d 70 74 79 20 62 6c 6f 63 6b 20 65 78 70 72 65 73 73 69 6f 6e 2e 3c 2f 73 70 61 6e an.empty.block.expression.</span
3aa60 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 >.....<span.class="tok-kw">if</s
3aa80 70 61 6e 3e 20 28 62 29 20 7c 5f 7c 20 7b 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b pan>.(b).|_|.{}.<span.class="tok
3aaa0 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 -kw">else</span>.|err|.{........
3aac0 20 61 73 73 65 72 74 28 65 72 72 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .assert(err.==.<span.class="tok-
3aae0 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 42 61 64 56 61 6c 75 65 29 3b 0a 20 20 20 20 kw">error</span>.BadValue);.....
3ab00 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 }......<span.class="tok-comment"
3ab20 3e 2f 2f 20 41 63 63 65 73 73 20 74 68 65 20 76 61 6c 75 65 20 62 79 20 72 65 66 65 72 65 6e 63 >//.Access.the.value.by.referenc
3ab40 65 20 75 73 69 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 63 61 70 74 75 72 65 2e 3c 2f 73 70 61 6e e.using.a.pointer.capture.</span
3ab60 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f >.....<span.class="tok-kw">var</
3ab80 73 70 61 6e 3e 20 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e span>.c:.<span.class="tok-type">
3aba0 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b anyerror</span>!<span.class="tok
3abc0 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d -type">u32</span>.=.<span.class=
3abe0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e "tok-number">3</span>;.....<span
3ac00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7c 2a .class="tok-kw">if</span>.(c).|*
3ac20 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 2e 2a 20 3d 20 3c 73 70 61 6e value|.{.........value.*.=.<span
3ac40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">9</span>;...
3ac60 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 ..}.<span.class="tok-kw">else</s
3ac80 70 61 6e 3e 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 pan>.|err|.{.........<span.class
3aca0 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 ="tok-kw">unreachable</span>;...
3acc0 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 ..}......<span.class="tok-kw">if
3ace0 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 </span>.(c).|value|.{.........as
3ad00 73 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e sert(value.==.<span.class="tok-n
3ad20 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c umber">9</span>);.....}.<span.cl
3ad40 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 7b ass="tok-kw">else</span>.|err|.{
3ad60 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e .........<span.class="tok-kw">un
3ad80 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e reachable</span>;.....}.}</code>
3ada0 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 </pre><pre><code.class="shell">$
3adc0 20 7a 69 67 20 74 65 73 74 20 69 66 2e 7a 69 67 0a 31 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b .zig.test.if.zig.1/3.test.&quot;
3ade0 69 66 20 62 6f 6f 6c 65 61 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 33 20 74 65 73 74 20 26 if.boolean&quot;...OK.2/3.test.&
3ae00 71 75 6f 74 3b 69 66 20 6f 70 74 69 6f 6e 61 6c 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 33 2f 33 20 quot;if.optional&quot;...OK.3/3.
3ae20 74 65 73 74 20 26 71 75 6f 74 3b 69 66 20 65 72 72 6f 72 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 2e test.&quot;if.error.union&quot;.
3ae40 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f ..OK.All.tests.passed..</code></
3ae60 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e pre>........<p>See.also:</p><ul>
3ae80 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e .<li><a.href="#Optionals">Option
3aea0 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 als</a></li>.<li><a.href="#Error
3aec0 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 s">Errors</a></li>.</ul>........
3aee0 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 64 65 66 65 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 .......<h1.id="defer"><a.href="#
3af00 74 6f 63 2d 64 65 66 65 72 22 3e 64 65 66 65 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 toc-defer">defer</a>.<a.class="h
3af20 64 72 22 20 68 72 65 66 3d 22 23 64 65 66 65 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 dr".href="#defer">..</a></h1>...
3af40 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 64 65 66 65 72 2e 7a 69 67 3c 2f .....<p.class="file">defer.zig</
3af60 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 p><pre><code.class="zig"><span.c
3af80 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d lass="tok-kw">const</span>.std.=
3afa0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f .<span.class="tok-builtin">@impo
3afc0 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e rt</span>(<span.class="tok-str">
3afe0 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 &quot;std&quot;</span>);.<span.c
3b000 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 lass="tok-kw">const</span>.asser
3b020 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 t.=.std.debug.assert;.<span.clas
3b040 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d 20 73 s="tok-kw">const</span>.warn.=.s
3b060 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b td.debug.warn;..<span.class="tok
3b080 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 64 65 66 65 72 20 77 69 6c 6c 20 65 78 65 63 75 74 65 20 -comment">//.defer.will.execute.
3b0a0 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 an.expression.at.the.end.of.the.
3b0c0 63 75 72 72 65 6e 74 20 73 63 6f 70 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 current.scope.</span>.<span.clas
3b0e0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
3b100 3d 22 74 6f 6b 2d 66 6e 22 3e 64 65 66 65 72 45 78 61 6d 70 6c 65 3c 2f 73 70 61 6e 3e 28 29 20 ="tok-fn">deferExample</span>().
3b120 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 <span.class="tok-type">usize</sp
3b140 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 an>.{.....<span.class="tok-kw">v
3b160 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ar</span>.a:.<span.class="tok-ty
3b180 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 pe">usize</span>.=.<span.class="
3b1a0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 7b 0a 20 20 20 tok-number">1</span>;......{....
3b1c0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 64 65 66 65 72 3c .....<span.class="tok-kw">defer<
3b1e0 2f 73 70 61 6e 3e 20 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 /span>.a.=.<span.class="tok-numb
3b200 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 61 20 3d 20 3c 73 70 61 6e 20 er">2</span>;.........a.=.<span.
3b220 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 class="tok-number">1</span>;....
3b240 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 61 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .}.....assert(a.==.<span.class="
3b260 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 61 20 3d 20 tok-number">2</span>);......a.=.
3b280 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e <span.class="tok-number">5</span
3b2a0 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 >;.....<span.class="tok-kw">retu
3b2c0 72 6e 3c 2f 73 70 61 6e 3e 20 61 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b rn</span>.a;.}..<span.class="tok
3b2e0 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f -kw">test</span>.<span.class="to
3b300 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 64 65 66 65 72 20 62 61 73 69 63 73 26 71 75 6f 74 3b 3c k-str">&quot;defer.basics&quot;<
3b320 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 64 65 66 65 72 45 78 61 6d 70 6c 65 /span>.{.....assert(deferExample
3b340 28 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 ().==.<span.class="tok-number">5
3b360 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f </span>);.}..<span.class="tok-co
3b380 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 20 6d 75 6c 74 69 70 6c 65 20 64 65 66 65 72 20 73 74 61 74 mment">//.If.multiple.defer.stat
3b3a0 65 6d 65 6e 74 73 20 61 72 65 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 79 20 77 69 6c 6c 20 ements.are.specified,.they.will.
3b3c0 62 65 20 65 78 65 63 75 74 65 64 20 69 6e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 be.executed.in</span>.<span.clas
3b3e0 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 72 65 76 65 72 73 65 20 6f s="tok-comment">//.the.reverse.o
3b400 72 64 65 72 20 74 68 65 79 20 77 65 72 65 20 72 75 6e 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e rder.they.were.run.</span>.<span
3b420 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 .class="tok-kw">fn</span>.<span.
3b440 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 65 66 65 72 55 6e 77 69 6e 64 45 78 61 6d 70 6c class="tok-fn">deferUnwindExampl
3b460 65 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 e</span>().<span.class="tok-type
3b480 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 ">void</span>.{.....warn(<span.c
3b4a0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 5c 6e 26 71 75 6f 74 3b 3c 2f 73 lass="tok-str">&quot;\n&quot;</s
3b4c0 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 pan>);......<span.class="tok-kw"
3b4e0 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 3c 73 70 >defer</span>.{.........warn(<sp
3b500 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 31 20 26 71 75 6f 74 an.class="tok-str">&quot;1.&quot
3b520 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ;</span>);.....}.....<span.class
3b540 3d 22 74 6f 6b 2d 6b 77 22 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 ="tok-kw">defer</span>.{........
3b560 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f .warn(<span.class="tok-str">&quo
3b580 74 3b 32 20 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 t;2.&quot;</span>);.....}.....<s
3b5a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 pan.class="tok-kw">if</span>.(<s
3b5c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e pan.class="tok-null">false</span
3b5e0 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f >).{.........<span.class="tok-co
3b600 6d 6d 65 6e 74 22 3e 2f 2f 20 64 65 66 65 72 73 20 61 72 65 20 6e 6f 74 20 72 75 6e 20 69 66 20 mment">//.defers.are.not.run.if.
3b620 74 68 65 79 20 61 72 65 20 6e 65 76 65 72 20 65 78 65 63 75 74 65 64 2e 3c 2f 73 70 61 6e 3e 0a they.are.never.executed.</span>.
3b640 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 64 65 66 ........<span.class="tok-kw">def
3b660 65 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 61 72 6e 28 3c 73 70 er</span>.{.............warn(<sp
3b680 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 33 20 26 71 75 6f 74 an.class="tok-str">&quot;3.&quot
3b6a0 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 ;</span>);.........}.....}.}..<s
3b6c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c pan.class="tok-kw">test</span>.<
3b6e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 64 65 66 65 72 span.class="tok-str">&quot;defer
3b700 20 75 6e 77 69 6e 64 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 64 65 .unwinding&quot;</span>.{.....de
3b720 66 65 72 55 6e 77 69 6e 64 45 78 61 6d 70 6c 65 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 ferUnwindExample();.}..<span.cla
3b740 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 65 72 72 64 65 66 65 72 ss="tok-comment">//.The.errdefer
3b760 20 6b 65 79 77 6f 72 64 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 64 65 66 65 72 2c 20 62 75 .keyword.is.similar.to.defer,.bu
3b780 74 20 77 69 6c 6c 20 6f 6e 6c 79 20 65 78 65 63 75 74 65 20 69 66 20 74 68 65 3c 2f 73 70 61 6e t.will.only.execute.if.the</span
3b7a0 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 73 >.<span.class="tok-comment">//.s
3b7c0 63 6f 70 65 20 72 65 74 75 72 6e 73 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 73 70 61 cope.returns.with.an.error.</spa
3b7e0 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 3c n>.<span.class="tok-comment">//<
3b800 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 /span>.<span.class="tok-comment"
3b820 3e 2f 2f 20 54 68 69 73 20 69 73 20 65 73 70 65 63 69 61 6c 6c 79 20 75 73 65 66 75 6c 20 69 6e >//.This.is.especially.useful.in
3b840 20 61 6c 6c 6f 77 69 6e 67 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 6c 65 61 6e 20 75 70 .allowing.a.function.to.clean.up
3b860 20 70 72 6f 70 65 72 6c 79 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .properly</span>.<span.class="to
3b880 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 6e 20 65 72 72 6f 72 2c 20 61 6e 64 20 72 65 70 6c k-comment">//.on.error,.and.repl
3b8a0 61 63 65 73 20 67 6f 74 6f 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 74 61 63 74 69 63 73 aces.goto.error.handling.tactics
3b8c0 20 61 73 20 73 65 65 6e 20 69 6e 20 63 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 .as.seen.in.c.</span>.<span.clas
3b8e0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
3b900 3d 22 74 6f 6b 2d 66 6e 22 3e 64 65 66 65 72 45 72 72 6f 72 45 78 61 6d 70 6c 65 3c 2f 73 70 61 ="tok-fn">deferErrorExample</spa
3b920 6e 3e 28 69 73 5f 65 72 72 6f 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 n>(is_error:.<span.class="tok-ty
3b940 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pe">bool</span>).!<span.class="t
3b960 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 77 61 72 6e 28 ok-type">void</span>.{.....warn(
3b980 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 5c 6e 73 74 <span.class="tok-str">&quot;\nst
3b9a0 61 72 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b art.of.function\n&quot;</span>);
3b9c0 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e ......<span.class="tok-comment">
3b9e0 2f 2f 20 54 68 69 73 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 62 65 20 65 78 65 63 75 74 65 64 20 //.This.will.always.be.executed.
3ba00 6f 6e 20 65 78 69 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 on.exit</span>.....<span.class="
3ba20 74 6f 6b 2d 6b 77 22 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 77 tok-kw">defer</span>.{.........w
3ba40 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b arn(<span.class="tok-str">&quot;
3ba60 65 6e 64 20 6f 66 20 66 75 6e 63 74 69 6f 6e 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b end.of.function\n&quot;</span>);
3ba80 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 .....}......<span.class="tok-kw"
3baa0 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 >errdefer</span>.{.........warn(
3bac0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 6e 63 6f <span.class="tok-str">&quot;enco
3bae0 75 6e 74 65 72 65 64 20 61 6e 20 65 72 72 6f 72 21 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e untered.an.error!\n&quot;</span>
3bb00 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b );.....}......<span.class="tok-k
3bb20 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 69 73 5f 65 72 72 6f 72 29 20 7b 0a 20 20 20 20 20 20 w">if</span>.(is_error).{.......
3bb40 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 ..<span.class="tok-kw">return</s
3bb60 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c pan>.<span.class="tok-kw">error<
3bb80 2f 73 70 61 6e 3e 2e 44 65 66 65 72 45 72 72 6f 72 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 /span>.DeferError;.....}.}..<spa
3bba0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 n.class="tok-kw">test</span>.<sp
3bbc0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 72 72 64 65 66 65 an.class="tok-str">&quot;errdefe
3bbe0 72 20 75 6e 77 69 6e 64 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 64 r.unwinding&quot;</span>.{.....d
3bc00 65 66 65 72 45 72 72 6f 72 45 78 61 6d 70 6c 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f eferErrorExample(<span.class="to
3bc20 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 k-null">false</span>).<span.clas
3bc40 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 7b 7d 3b 0a 20 20 20 20 s="tok-kw">catch</span>.{};.....
3bc60 64 65 66 65 72 45 72 72 6f 72 45 78 61 6d 70 6c 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 deferErrorExample(<span.class="t
3bc80 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 ok-null">true</span>).<span.clas
3bca0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 7b 7d 3b 0a 7d 3c 2f 63 s="tok-kw">catch</span>.{};.}</c
3bcc0 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
3bce0 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 64 65 66 65 72 2e 7a 69 67 0a 31 2f 33 20 74 65 73 74 l">$.zig.test.defer.zig.1/3.test
3bd00 20 26 71 75 6f 74 3b 64 65 66 65 72 20 62 61 73 69 63 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 .&quot;defer.basics&quot;...OK.2
3bd20 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 26 71 75 /3.test.&quot;defer.unwinding&qu
3bd40 6f 74 3b 2e 2e 2e 0a 32 20 31 20 4f 4b 0a 33 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 65 72 72 ot;....2.1.OK.3/3.test.&quot;err
3bd60 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 26 71 75 6f 74 3b 2e 2e 2e 0a 73 74 61 72 74 20 6f defer.unwinding&quot;....start.o
3bd80 66 20 66 75 6e 63 74 69 6f 6e 0a 65 6e 64 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 0a 73 74 61 72 f.function.end.of.function..star
3bda0 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 65 6e 63 6f 75 6e 74 65 72 65 64 20 61 6e 20 65 72 72 t.of.function.encountered.an.err
3bdc0 6f 72 21 0a 65 6e 64 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 or!.end.of.function.OK.All.tests
3bde0 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 .passed..</code></pre>........<p
3be00 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 >See.also:</p><ul>.<li><a.href="
3be20 23 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a #Errors">Errors</a></li>.</ul>..
3be40 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 75 6e 72 65 61 63 68 61 62 6c 65 .............<h1.id="unreachable
3be60 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 75 6e 72 "><a.href="#toc-unreachable">unr
3be80 65 61 63 68 61 62 6c 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 eachable</a>.<a.class="hdr".href
3bea0 3d 22 23 75 6e 72 65 61 63 68 61 62 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 ="#unreachable">..</a></h1>.....
3bec0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ...<p>.......In.<code.class="zig
3bee0 22 3e 44 65 62 75 67 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">Debug</code>.and.<code.class="
3bf00 7a 69 67 22 3e 52 65 6c 65 61 73 65 53 61 66 65 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 20 61 6e zig">ReleaseSafe</code>.mode,.an
3bf20 64 20 77 68 65 6e 20 75 73 69 6e 67 20 3c 63 6f 64 65 3e 7a 69 67 20 74 65 73 74 3c 2f 63 6f 64 d.when.using.<code>zig.test</cod
3bf40 65 3e 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 e>,.......<code.class="zig"><spa
3bf60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 n.class="tok-kw">unreachable</sp
3bf80 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 6d 69 74 73 20 61 20 63 61 6c 6c 20 74 6f 20 3c 63 6f 64 65 an></code>.emits.a.call.to.<code
3bfa0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 20 77 69 74 68 20 74 .class="zig">panic</code>.with.t
3bfc0 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 he.message.<code>reached.unreach
3bfe0 61 62 6c 65 20 63 6f 64 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 able.code</code>........</p>....
3c000 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ...<p>.......In.<code.class="zig
3c020 22 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 20 74 68 65 20 6f ">ReleaseFast</code>.mode,.the.o
3c040 70 74 69 6d 69 7a 65 72 20 75 73 65 73 20 74 68 65 20 61 73 73 75 6d 70 74 69 6f 6e 20 74 68 61 ptimizer.uses.the.assumption.tha
3c060 74 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d t.<code.class="zig"><span.class=
3c080 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 "tok-kw">unreachable</span></cod
3c0a0 65 3e 20 63 6f 64 65 0a 20 20 20 20 20 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 68 69 74 20 e>.code.......will.never.be.hit.
3c0c0 74 6f 20 70 65 72 66 6f 72 6d 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 20 48 6f 77 65 76 65 to.perform.optimizations..Howeve
3c0e0 72 2c 20 3c 63 6f 64 65 3e 7a 69 67 20 74 65 73 74 3c 2f 63 6f 64 65 3e 20 65 76 65 6e 20 69 6e r,.<code>zig.test</code>.even.in
3c100 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f .<code.class="zig">ReleaseFast</
3c120 63 6f 64 65 3e 20 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 69 code>.mode...................sti
3c140 6c 6c 20 65 6d 69 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ll.emits.<code.class="zig"><span
3c160 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 .class="tok-kw">unreachable</spa
3c180 6e 3e 3c 2f 63 6f 64 65 3e 20 61 73 20 63 61 6c 6c 73 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 n></code>.as.calls.to.<code.clas
3c1a0 73 3d 22 7a 69 67 22 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e s="zig">panic</code>........</p>
3c1c0 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 42 61 73 69 63 73 22 3e 3c 61 20 68 72 65 66 3d 22 .......<h2.id="Basics"><a.href="
3c1e0 23 74 6f 63 2d 42 61 73 69 63 73 22 3e 42 61 73 69 63 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 #toc-Basics">Basics</a>.<a.class
3c200 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 42 61 73 69 63 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 ="hdr".href="#Basics">..</a></h2
3c220 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 >........<p.class="file">test.zi
3c240 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 g</p><pre><code.class="zig"><spa
3c260 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 75 6e 72 65 61 63 68 n.class="tok-comment">//.unreach
3c280 61 62 6c 65 20 69 73 20 75 73 65 64 20 74 6f 20 61 73 73 65 72 74 20 74 68 61 74 20 63 6f 6e 74 able.is.used.to.assert.that.cont
3c2a0 72 6f 6c 20 66 6c 6f 77 20 77 69 6c 6c 20 6e 65 76 65 72 20 68 61 70 70 65 6e 20 75 70 6f 6e 20 rol.flow.will.never.happen.upon.
3c2c0 61 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e a</span>.<span.class="tok-commen
3c2e0 74 22 3e 2f 2f 20 70 61 72 74 69 63 75 6c 61 72 20 6c 6f 63 61 74 69 6f 6e 3a 3c 2f 73 70 61 6e t">//.particular.location:</span
3c300 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 >.<span.class="tok-kw">test</spa
3c320 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 n>.<span.class="tok-str">&quot;b
3c340 61 73 69 63 20 6d 61 74 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 asic.math&quot;</span>.{.....<sp
3c360 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 an.class="tok-kw">const</span>.x
3c380 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 .=.<span.class="tok-number">1</s
3c3a0 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pan>;.....<span.class="tok-kw">c
3c3c0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b onst</span>.y.=.<span.class="tok
3c3e0 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 -number">2</span>;.....<span.cla
3c400 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 78 20 2b 20 79 20 21 3d 20 ss="tok-kw">if</span>.(x.+.y.!=.
3c420 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e <span.class="tok-number">3</span
3c440 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 >).{.........<span.class="tok-kw
3c460 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 ">unreachable</span>;.....}.}</c
3c480 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
3c4a0 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 l">$.zig.test.test.zig.1/1.test.
3c4c0 26 71 75 6f 74 3b 62 61 73 69 63 20 6d 61 74 68 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 &quot;basic.math&quot;...OK.All.
3c4e0 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 tests.passed..</code></pre>.....
3c500 20 20 20 3c 70 3e 49 6e 20 66 61 63 74 2c 20 74 68 69 73 20 69 73 20 68 6f 77 20 61 73 73 65 72 ...<p>In.fact,.this.is.how.asser
3c520 74 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 t.is.implemented:</p>.......<p.c
3c540 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f lass="file">test.zig</p><pre><co
3c560 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
3c580 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 kw">fn</span>.<span.class="tok-f
3c5a0 6e 22 3e 61 73 73 65 72 74 3c 2f 73 70 61 6e 3e 28 6f 6b 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 n">assert</span>(ok:.<span.class
3c5c0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 ="tok-type">bool</span>).<span.c
3c5e0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-type">void</span>.{...
3c600 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e ..<span.class="tok-kw">if</span>
3c620 20 28 21 6f 6b 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 .(!ok).<span.class="tok-kw">unre
3c640 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b achable</span>;.<span.class="tok
3c660 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 3c 2f -comment">//.assertion.failure</
3c680 73 70 61 6e 3e 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e span>.}..<span.class="tok-commen
3c6a0 74 22 3e 2f 2f 20 54 68 69 73 20 74 65 73 74 20 77 69 6c 6c 20 66 61 69 6c 20 62 65 63 61 75 73 t">//.This.test.will.fail.becaus
3c6c0 65 20 77 65 20 68 69 74 20 75 6e 72 65 61 63 68 61 62 6c 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 e.we.hit.unreachable.</span>.<sp
3c6e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 an.class="tok-kw">test</span>.<s
3c700 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 68 69 73 20 77 pan.class="tok-str">&quot;this.w
3c720 69 6c 6c 20 66 61 69 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 ill.fail&quot;</span>.{.....asse
3c740 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c rt(<span.class="tok-null">false<
3c760 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 /span>);.}</code></pre><pre><cod
3c780 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e e.class="shell">$.zig.test.test.
3c7a0 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 74 68 69 73 20 77 69 6c 6c 20 66 61 69 zig.1/1.test.&quot;this.will.fai
3c7c0 6c 26 71 75 6f 74 3b 2e 2e 2e 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f l&quot;...reached.unreachable.co
3c7e0 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 de.<span.class="t37_1">/home/and
3c800 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a y/dev/zig/docgen_tmp/test.zig:2:
3c820 31 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 14</span>:.<span.class="t2_0">0x
3c840 32 30 35 36 64 62 20 69 6e 20 61 73 73 65 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 2056db.in.assert.(test)</span>..
3c860 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 20 2f 2f 20 61 73 73 65 ...if.(!ok).unreachable;.//.asse
3c880 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e rtion.failure..............<span
3c8a0 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c .class="t32_1">^</span>.<span.cl
3c8c0 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 ass="t37_1">/home/andy/dev/zig/d
3c8e0 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 37 3a 31 31 3c 2f 73 70 61 6e 3e 3a 20 ocgen_tmp/test.zig:7:11</span>:.
3c900 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 35 35 37 61 20 69 6e 20 74 <span.class="t2_0">0x20557a.in.t
3c920 65 73 74 20 26 71 75 6f 74 3b 74 68 69 73 20 77 69 6c 6c 20 66 61 69 6c 26 71 75 6f 74 3b 20 28 est.&quot;this.will.fail&quot;.(
3c940 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a test)</span>.....assert(false);.
3c960 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ..........<span.class="t32_1">^<
3c980 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 /span>.<span.class="t37_1">/home
3c9a0 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 /andy/dev/zig/lib/std/special/te
3c9c0 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 33 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 st_runner.zig:13:25</span>:.<spa
3c9e0 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 33 64 31 20 69 6e 20 73 74 64 2e 73 n.class="t2_0">0x2283d1.in.std.s
3ca00 70 65 63 69 61 6c 2e 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 pecial.main.(test)</span>.......
3ca20 20 20 69 66 20 28 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 29 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 ..if.(test_fn.func()).|_|.{.....
3ca40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ....................<span.class=
3ca60 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 "t32_1">^</span>.<span.class="t3
3ca80 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 7_1">/home/andy/dev/zig/lib/std/
3caa0 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 32 30 34 3a 33 37 3c 2f 73 70 61 6e 3e 3a special/start.zig:204:37</span>:
3cac0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 32 34 35 20 69 6e 20 .<span.class="t2_0">0x227245.in.
3cae0 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 std.special.posixCallMainAndExit
3cb00 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 .(test)</span>.............const
3cb20 20 72 65 73 75 6c 74 20 3d 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 72 .result.=.root.main().catch.|err
3cb40 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.{.............................
3cb60 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
3cb80 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 pan>.<span.class="t37_1">/home/a
3cba0 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 ndy/dev/zig/lib/std/special/star
3cbc0 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d t.zig:102:5</span>:.<span.class=
3cbe0 22 74 32 5f 30 22 3e 30 78 32 32 37 30 62 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f "t2_0">0x2270bf.in.std.special._
3cc00 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e start.(test)</span>.....@noInlin
3cc20 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 eCall(posixCallMainAndExit);....
3cc40 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 .<span.class="t32_1">^</span>..T
3cc60 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 ests.failed..Use.the.following.c
3cc80 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a ommand.to.reproduce.the.failure:
3cca0 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 ./home/andy/dev/zig/docgen_tmp/t
3ccc0 65 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 est.</code></pre>...............
3cce0 3c 68 32 20 69 64 3d 22 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 3e 3c 61 20 68 72 65 66 <h2.id="At-Compile-Time"><a.href
3cd00 3d 22 23 74 6f 63 2d 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 3e 41 74 20 43 6f 6d 70 69 ="#toc-At-Compile-Time">At.Compi
3cd20 6c 65 2d 54 69 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d le-Time</a>.<a.class="hdr".href=
3cd40 22 23 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a "#At-Compile-Time">..</a></h2>..
3cd60 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f ......<p.class="file">test.zig</
3cd80 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 p><pre><code.class="zig"><span.c
3cda0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 lass="tok-kw">const</span>.asser
3cdc0 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 t.=.<span.class="tok-builtin">@i
3cde0 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 mport</span>(<span.class="tok-st
3ce00 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 r">&quot;std&quot;</span>).debug
3ce20 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 .assert;..<span.class="tok-kw">t
3ce40 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 est</span>.<span.class="tok-str"
3ce60 3e 26 71 75 6f 74 3b 74 79 70 65 20 6f 66 20 75 6e 72 65 61 63 68 61 62 6c 65 26 71 75 6f 74 3b >&quot;type.of.unreachable&quot;
3ce80 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
3cea0 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 w">comptime</span>.{.........<sp
3cec0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 74 79 an.class="tok-comment">//.The.ty
3cee0 70 65 20 6f 66 20 75 6e 72 65 61 63 68 61 62 6c 65 20 69 73 20 6e 6f 72 65 74 75 72 6e 2e 3c 2f pe.of.unreachable.is.noreturn.</
3cf00 73 70 61 6e 3e 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d span>..........<span.class="tok-
3cf20 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 48 6f 77 65 76 65 72 20 74 68 69 73 20 61 73 73 65 72 74 69 comment">//.However.this.asserti
3cf40 6f 6e 20 77 69 6c 6c 20 73 74 69 6c 6c 20 66 61 69 6c 20 62 65 63 61 75 73 65 3c 2f 73 70 61 6e on.will.still.fail.because</span
3cf60 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 >.........<span.class="tok-comme
3cf80 6e 74 22 3e 2f 2f 20 65 76 61 6c 75 61 74 69 6e 67 20 75 6e 72 65 61 63 68 61 62 6c 65 20 61 74 nt">//.evaluating.unreachable.at
3cfa0 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 .compile-time.is.a.compile.error
3cfc0 2e 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 .</span>..........assert(<span.c
3cfe0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e lass="tok-builtin">@typeOf</span
3d000 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 >(<span.class="tok-kw">unreachab
3d020 6c 65 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 le</span>).==.<span.class="tok-t
3d040 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f ype">noreturn</span>);.....}.}</
3d060 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 code></pre><pre><code.class="she
3d080 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c ll">$.zig.test.test.zig.<span.cl
3d0a0 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f ass="t0_1">/home/andy/dev/zig/do
3d0c0 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 31 36 3a 20 3c 2f 73 70 61 6e 3e cgen_tmp/test.zig:10:16:.</span>
3d0e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e <span.class="t31_1">error:</span
3d100 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 75 6e 72 65 61 63 68 61 62 6c 65 ><span.class="t0_1">.unreachable
3d120 20 63 6f 64 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 .code</span>.........assert(@typ
3d140 65 4f 66 28 75 6e 72 65 61 63 68 61 62 6c 65 29 20 3d 3d 20 6e 6f 72 65 74 75 72 6e 29 3b 0a 20 eOf(unreachable).==.noreturn);..
3d160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 ..............<span.class="t32_1
3d180 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 ">^</span>.</code></pre>........
3d1a0 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 <p>See.also:</p><ul>.<li><a.href
3d1c0 3d 22 23 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c ="#Zig-Test">Zig.Test</a></li>.<
3d1e0 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 42 75 69 6c 64 2d 4d 6f 64 65 22 3e 42 75 69 6c 64 20 4d li><a.href="#Build-Mode">Build.M
3d200 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 ode</a></li>.<li><a.href="#compt
3d220 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 ime">comptime</a></li>.</ul>....
3d240 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 6e 6f 72 65 74 75 ..................<h1.id="noretu
3d260 72 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 rn"><a.href="#toc-noreturn">nore
3d280 74 75 72 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6e turn</a>.<a.class="hdr".href="#n
3d2a0 6f 72 65 74 75 72 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a oreturn">..</a></h1>........<p>.
3d2c0 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ......<code.class="zig"><span.cl
3d2e0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f ass="tok-type">noreturn</span></
3d300 63 6f 64 65 3e 20 69 73 20 74 68 65 20 74 79 70 65 20 6f 66 3a 0a 20 20 20 20 20 20 3c 2f 70 3e code>.is.the.type.of:.......</p>
3d320 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 .......<ul>...........<li><code.
3d340 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
3d360 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 >break</span></code></li>.......
3d380 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ....<li><code.class="zig"><span.
3d3a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 3c 2f class="tok-kw">continue</span></
3d3c0 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 code></li>...........<li><code.c
3d3e0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
3d400 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 return</span></code></li>.......
3d420 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ....<li><code.class="zig"><span.
3d440 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e class="tok-kw">unreachable</span
3d460 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 ></code></li>...........<li><cod
3d480 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
3d4a0 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f w">while</span>.(<span.class="to
3d4c0 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f k-null">true</span>).{}</code></
3d4e0 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 57 68 65 6e 20 72 65 li>.......</ul>.......<p>When.re
3d500 73 6f 6c 76 69 6e 67 20 74 79 70 65 73 20 74 6f 67 65 74 68 65 72 2c 20 73 75 63 68 20 61 73 20 solving.types.together,.such.as.
3d520 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
3d540 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 6c 61 75 73 65 73 20 ok-kw">if</span></code>.clauses.
3d560 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 or.<code.class="zig"><span.class
3d580 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 70 ="tok-kw">switch</span></code>.p
3d5a0 72 6f 6e 67 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 20 63 rongs,...............the.<code.c
3d5c0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
3d5e0 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 79 70 65 20 69 73 ">noreturn</span></code>.type.is
3d600 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 65 76 65 72 79 20 6f 74 68 65 72 20 74 79 70 .compatible.with.every.other.typ
3d620 65 2e 20 43 6f 6e 73 69 64 65 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 e..Consider:.......</p>.......<p
3d640 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
3d660 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
3d680 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b k-kw">fn</span>.<span.class="tok
3d6a0 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 63 6f 6e 64 69 74 69 6f 6e 3a 20 3c 73 70 61 6e -fn">foo</span>(condition:.<span
3d6c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 20 62 .class="tok-type">bool</span>,.b
3d6e0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 :.<span.class="tok-type">u32</sp
3d700 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 an>).<span.class="tok-type">void
3d720 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
3d740 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d w">const</span>.a.=.<span.class=
3d760 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 62 "tok-kw">if</span>.(condition).b
3d780 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e .<span.class="tok-kw">else</span
3d7a0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 >.<span.class="tok-kw">return</s
3d7c0 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 pan>;.....<span.class="tok-built
3d7e0 69 6e 22 3e 40 70 61 6e 69 63 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 in">@panic</span>(<span.class="t
3d800 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 64 6f 20 73 6f 6d 65 74 68 69 6e 67 20 77 69 74 68 20 ok-str">&quot;do.something.with.
3d820 61 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 a&quot;</span>);.}.<span.class="
3d840 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">test</span>.<span.class=
3d860 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 6f 72 65 74 75 72 6e 26 71 75 6f 74 3b 3c 2f "tok-str">&quot;noreturn&quot;</
3d880 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b span>.{.....foo(<span.class="tok
3d8a0 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 -null">false</span>,.<span.class
3d8c0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 ="tok-number">1</span>);.}</code
3d8e0 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e ></pre><pre><code.class="shell">
3d900 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 $.zig.test.test.zig.1/1.test.&qu
3d920 6f 74 3b 6e 6f 72 65 74 75 72 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 ot;noreturn&quot;...OK.All.tests
3d940 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 .passed..</code></pre>........<p
3d960 3e 41 6e 6f 74 68 65 72 20 75 73 65 20 63 61 73 65 20 66 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 >Another.use.case.for.<code.clas
3d980 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e s="zig"><span.class="tok-type">n
3d9a0 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 3c 63 6f oreturn</span></code>.is.the.<co
3d9c0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 65 78 69 74 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 de.class="zig">exit</code>.funct
3d9e0 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ion:</p>.......<p.class="file">t
3da00 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
3da20 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e "><span.class="tok-kw">pub</span
3da40 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 >.<span.class="tok-kw">extern</s
3da60 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
3da80 3b 6b 65 72 6e 65 6c 33 32 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ;kernel32&quot;</span>.<span.cla
3daa0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 64 63 61 6c 6c 63 63 3c 2f 73 70 61 6e 3e 20 3c 73 70 ss="tok-kw">stdcallcc</span>.<sp
3dac0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 an.class="tok-kw">fn</span>.<spa
3dae0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 45 78 69 74 50 72 6f 63 65 73 73 3c 2f 73 70 n.class="tok-fn">ExitProcess</sp
3db00 61 6e 3e 28 65 78 69 74 5f 63 6f 64 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d an>(exit_code:.<span.class="tok-
3db20 74 79 70 65 22 3e 63 5f 75 69 6e 74 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 type">c_uint</span>).<span.class
3db40 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 ="tok-type">noreturn</span>;..<s
3db60 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c pan.class="tok-kw">test</span>.<
3db80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 26 71 span.class="tok-str">&quot;foo&q
3dba0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>.{.....<span.class="t
3dbc0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 20 3d 20 62 61 72 28 ok-kw">const</span>.value.=.bar(
3dbe0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 ).<span.class="tok-kw">catch</sp
3dc00 61 6e 3e 20 45 78 69 74 50 72 6f 63 65 73 73 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b an>.ExitProcess(<span.class="tok
3dc20 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 76 -number">1</span>);.....assert(v
3dc40 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 alue.==.<span.class="tok-number"
3dc60 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >1234</span>);.}..<span.class="t
3dc80 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
3dca0 6b 2d 66 6e 22 3e 62 61 72 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-fn">bar</span>().<span.class="
3dcc0 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 6e 20 tok-type">anyerror</span>!<span.
3dce0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 class="tok-type">u32</span>.{...
3dd00 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 ..<span.class="tok-kw">return</s
3dd20 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 pan>.<span.class="tok-number">12
3dd40 33 34 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 34</span>;.}..<span.class="tok-k
3dd60 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 w">const</span>.assert.=.<span.c
3dd80 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
3dda0 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
3ddc0 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 3c 2f 63 d&quot;</span>).debug.assert;</c
3dde0 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
3de00 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 20 2d 74 61 72 67 65 74 20 78 l">$.zig.test.test.zig.-target.x
3de20 38 36 5f 36 34 2d 77 69 6e 64 6f 77 73 0a 43 72 65 61 74 65 64 20 2f 68 6f 6d 65 2f 61 6e 64 79 86_64-windows.Created./home/andy
3de40 2f 64 65 76 2f 7a 69 67 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 32 2d 62 4d 77 5a 6e 73 46 65 76 /dev/zig/zig-cache/o/2-bMwZnsFev
3de60 65 6c 55 36 52 32 30 6e 52 66 4b 4c 4d 6e 76 67 53 55 49 61 4d 48 38 55 52 47 46 52 58 68 4a 6a elU6R20nRfKLMnvgSUIaMH8URGFRXhJj
3de80 79 58 39 43 45 35 69 37 7a 5f 47 45 41 77 4b 52 42 7a 59 54 48 2f 74 65 73 74 2e 65 78 65 20 62 yX9CE5i7z_GEAwKRBzYTH/test.exe.b
3dea0 75 74 20 73 6b 69 70 70 69 6e 67 20 65 78 65 63 75 74 69 6f 6e 20 62 65 63 61 75 73 65 20 69 74 ut.skipping.execution.because.it
3dec0 20 69 73 20 6e 6f 6e 2d 6e 61 74 69 76 65 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 .is.non-native..</code></pre>...
3dee0 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 46 75 6e 63 74 69 6f 6e 73 22 3e 3c ............<h1.id="Functions"><
3df00 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 46 75 6e 63 74 69 6f 6e a.href="#toc-Functions">Function
3df20 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 46 75 6e 63 s</a>.<a.class="hdr".href="#Func
3df40 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 tions">..</a></h1>........<p.cla
3df60 73 73 3d 22 66 69 6c 65 22 3e 66 75 6e 63 74 69 6f 6e 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e ss="file">functions.zig</p><pre>
3df80 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
3dfa0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 ok-kw">const</span>.assert.=.<sp
3dfc0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f an.class="tok-builtin">@import</
3dfe0 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>(<span.class="tok-str">&quo
3e000 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 t;std&quot;</span>).debug.assert
3e020 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 ;..<span.class="tok-comment">//.
3e040 46 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 65 63 6c 61 72 65 64 20 6c 69 6b 65 20 74 68 69 73 Functions.are.declared.like.this
3e060 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c </span>.<span.class="tok-kw">fn<
3e080 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 64 64 3c /span>.<span.class="tok-fn">add<
3e0a0 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 /span>(a:.<span.class="tok-type"
3e0c0 3e 69 38 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >i8</span>,.b:.<span.class="tok-
3e0e0 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f type">i8</span>).<span.class="to
3e100 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c k-type">i8</span>.{.....<span.cl
3e120 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 20 3d 3d 20 3c 73 70 ass="tok-kw">if</span>.(a.==.<sp
3e140 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 20 an.class="tok-number">0</span>).
3e160 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 {.........<span.class="tok-kw">r
3e180 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 62 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e eturn</span>.b;.....}......<span
3e1a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 .class="tok-kw">return</span>.a.
3e1c0 2b 20 62 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 +.b;.}..<span.class="tok-comment
3e1e0 22 3e 2f 2f 20 54 68 65 20 65 78 70 6f 72 74 20 73 70 65 63 69 66 69 65 72 20 6d 61 6b 65 73 20 ">//.The.export.specifier.makes.
3e200 61 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 65 72 6e 61 6c 6c 79 20 76 69 73 69 62 6c 65 20 69 6e a.function.externally.visible.in
3e220 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 .the.generated</span>.<span.clas
3e240 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 62 6a 65 63 74 20 66 69 6c 65 2c 20 s="tok-comment">//.object.file,.
3e260 61 6e 64 20 6d 61 6b 65 73 20 69 74 20 75 73 65 20 74 68 65 20 43 20 41 42 49 2e 3c 2f 73 70 61 and.makes.it.use.the.C.ABI.</spa
3e280 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f n>.<span.class="tok-kw">export</
3e2a0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
3e2c0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 75 62 3c 2f 73 pan>.<span.class="tok-fn">sub</s
3e2e0 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 pan>(a:.<span.class="tok-type">i
3e300 38 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 8</span>,.b:.<span.class="tok-ty
3e320 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pe">i8</span>).<span.class="tok-
3e340 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 type">i8</span>.{.<span.class="t
3e360 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 2d 20 62 3b 20 7d 0a 0a 3c ok-kw">return</span>.a.-.b;.}..<
3e380 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 span.class="tok-comment">//.The.
3e3a0 65 78 74 65 72 6e 20 73 70 65 63 69 66 69 65 72 20 69 73 20 75 73 65 64 20 74 6f 20 64 65 63 6c extern.specifier.is.used.to.decl
3e3c0 61 72 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 72 65 73 6f are.a.function.that.will.be.reso
3e3e0 6c 76 65 64 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d lved</span>.<span.class="tok-com
3e400 6d 65 6e 74 22 3e 2f 2f 20 61 74 20 6c 69 6e 6b 20 74 69 6d 65 2c 20 77 68 65 6e 20 6c 69 6e 6b ment">//.at.link.time,.when.link
3e420 69 6e 67 20 73 74 61 74 69 63 61 6c 6c 79 2c 20 6f 72 20 61 74 20 72 75 6e 74 69 6d 65 2c 20 77 ing.statically,.or.at.runtime,.w
3e440 68 65 6e 20 6c 69 6e 6b 69 6e 67 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 hen.linking</span>.<span.class="
3e460 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 64 79 6e 61 6d 69 63 61 6c 6c 79 2e 3c 2f 73 70 tok-comment">//.dynamically.</sp
3e480 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f an>.<span.class="tok-comment">//
3e4a0 20 54 68 65 20 73 74 64 63 61 6c 6c 63 63 20 73 70 65 63 69 66 69 65 72 20 63 68 61 6e 67 65 73 .The.stdcallcc.specifier.changes
3e4c0 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 .the.calling.convention.of.the.f
3e4e0 75 6e 63 74 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b unction.</span>.<span.class="tok
3e500 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -kw">extern</span>.<span.class="
3e520 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6b 65 72 6e 65 6c 33 32 26 71 75 6f 74 3b 3c 2f 73 tok-str">&quot;kernel32&quot;</s
3e540 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 64 63 61 6c pan>.<span.class="tok-kw">stdcal
3e560 6c 63 63 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lcc</span>.<span.class="tok-kw">
3e580 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 45 fn</span>.<span.class="tok-fn">E
3e5a0 78 69 74 50 72 6f 63 65 73 73 3c 2f 73 70 61 6e 3e 28 65 78 69 74 5f 63 6f 64 65 3a 20 3c 73 70 xitProcess</span>(exit_code:.<sp
3e5c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 20 an.class="tok-type">u32</span>).
3e5e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c <span.class="tok-type">noreturn<
3e600 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 /span>;.<span.class="tok-kw">ext
3e620 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 ern</span>.<span.class="tok-str"
3e640 3e 26 71 75 6f 74 3b 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 >&quot;c&quot;</span>.<span.clas
3e660 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
3e680 3d 22 74 6f 6b 2d 66 6e 22 3e 61 74 61 6e 32 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 ="tok-fn">atan2</span>(a:.<span.
3e6a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 class="tok-type">f64</span>,.b:.
3e6c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e <span.class="tok-type">f64</span
3e6e0 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 >).<span.class="tok-type">f64</s
3e700 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 pan>;..<span.class="tok-comment"
3e720 3e 2f 2f 20 54 68 65 20 40 73 65 74 43 6f 6c 64 20 62 75 69 6c 74 69 6e 20 74 65 6c 6c 73 20 74 >//.The.@setCold.builtin.tells.t
3e740 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 74 68 61 74 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 he.optimizer.that.a.function.is.
3e760 72 61 72 65 6c 79 20 63 61 6c 6c 65 64 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 rarely.called.</span>.<span.clas
3e780 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
3e7a0 3d 22 74 6f 6b 2d 66 6e 22 3e 61 62 6f 72 74 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 ="tok-fn">abort</span>().<span.c
3e7c0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 lass="tok-type">noreturn</span>.
3e7e0 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e {.....<span.class="tok-builtin">
3e800 40 73 65 74 43 6f 6c 64 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b @setCold</span>(<span.class="tok
3e820 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 -null">true</span>);.....<span.c
3e840 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 lass="tok-kw">while</span>.(<spa
3e860 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 n.class="tok-null">true</span>).
3e880 7b 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e {}.}..<span.class="tok-comment">
3e8a0 2f 2f 20 54 68 65 20 6e 61 6b 65 64 63 63 20 73 70 65 63 69 66 69 65 72 20 6d 61 6b 65 73 20 61 //.The.nakedcc.specifier.makes.a
3e8c0 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 66 75 6e 63 74 69 6f 6e 20 .function.not.have.any.function.
3e8e0 70 72 6f 6c 6f 67 75 65 20 6f 72 20 65 70 69 6c 6f 67 75 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 prologue.or.epilogue.</span>.<sp
3e900 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 63 an.class="tok-comment">//.This.c
3e920 61 6e 20 62 65 20 75 73 65 66 75 6c 20 77 68 65 6e 20 69 6e 74 65 67 72 61 74 69 6e 67 20 77 69 an.be.useful.when.integrating.wi
3e940 74 68 20 61 73 73 65 6d 62 6c 79 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d th.assembly.</span>.<span.class=
3e960 22 74 6f 6b 2d 6b 77 22 3e 6e 61 6b 65 64 63 63 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c "tok-kw">nakedcc</span>.<span.cl
3e980 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
3e9a0 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 5f 73 74 61 72 74 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 ss="tok-fn">_start</span>().<spa
3e9c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 n.class="tok-type">noreturn</spa
3e9e0 6e 3e 20 7b 0a 20 20 20 20 61 62 6f 72 74 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 n>.{.....abort();.}..<span.class
3ea00 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 69 6e 6c 69 6e 65 20 73 70 65 ="tok-comment">//.The.inline.spe
3ea20 63 69 66 69 65 72 20 66 6f 72 63 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 69 cifier.forces.a.function.to.be.i
3ea40 6e 6c 69 6e 65 64 20 61 74 20 61 6c 6c 20 63 61 6c 6c 20 73 69 74 65 73 2e 3c 2f 73 70 61 6e 3e nlined.at.all.call.sites.</span>
3ea60 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 .<span.class="tok-comment">//.If
3ea80 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6e 6f 74 20 62 65 20 69 6e 6c 69 6e 65 64 2c .the.function.cannot.be.inlined,
3eaa0 20 69 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 65 72 72 6f 72 2e 3c 2f 73 70 .it.is.a.compile-time.error.</sp
3eac0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 6e 6c 69 6e 65 3c an>.<span.class="tok-kw">inline<
3eae0 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f /span>.<span.class="tok-kw">fn</
3eb00 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 68 69 66 74 span>.<span.class="tok-fn">shift
3eb20 4c 65 66 74 4f 6e 65 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 LeftOne</span>(a:.<span.class="t
3eb40 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-type">u32</span>).<span.class
3eb60 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 ="tok-type">u32</span>.{.....<sp
3eb80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 an.class="tok-kw">return</span>.
3eba0 61 20 26 6c 74 3b 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 a.&lt;&lt;.<span.class="tok-numb
3ebc0 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f er">1</span>;.}..<span.class="to
3ebe0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 70 75 62 20 73 70 65 63 69 66 69 65 72 20 k-comment">//.The.pub.specifier.
3ec00 61 6c 6c 6f 77 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 76 69 73 69 62 6c allows.the.function.to.be.visibl
3ec20 65 20 77 68 65 6e 20 69 6d 70 6f 72 74 69 6e 67 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 e.when.importing.</span>.<span.c
3ec40 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 6e 6f 74 68 65 72 20 66 69 lass="tok-comment">//.Another.fi
3ec60 6c 65 20 63 61 6e 20 75 73 65 20 40 69 6d 70 6f 72 74 20 61 6e 64 20 63 61 6c 6c 20 73 75 62 32 le.can.use.@import.and.call.sub2
3ec80 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 </span>.<span.class="tok-kw">pub
3eca0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c </span>.<span.class="tok-kw">fn<
3ecc0 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 75 62 32 /span>.<span.class="tok-fn">sub2
3ece0 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>(a:.<span.class="tok-type
3ed00 22 3e 69 38 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">i8</span>,.b:.<span.class="tok
3ed20 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -type">i8</span>).<span.class="t
3ed40 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-type">i8</span>.{.<span.class
3ed60 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 2d 20 62 3b 20 7d ="tok-kw">return</span>.a.-.b;.}
3ed80 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 46 ..<span.class="tok-comment">//.F
3eda0 75 6e 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 76 61 6c 75 65 73 20 61 unctions.can.be.used.as.values.a
3edc0 6e 64 20 61 72 65 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 70 6f 69 6e 74 65 72 73 2e 3c 2f nd.are.equivalent.to.pointers.</
3ede0 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
3ee00 3c 2f 73 70 61 6e 3e 20 63 61 6c 6c 32 5f 6f 70 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>.call2_op.=.<span.class="
3ee20 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 tok-kw">fn</span>.(a:.<span.clas
3ee40 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e s="tok-type">i8</span>,.b:.<span
3ee60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 .class="tok-type">i8</span>).<sp
3ee80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 3b 0a 3c an.class="tok-type">i8</span>;.<
3eea0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 span.class="tok-kw">fn</span>.<s
3eec0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 6f 5f 6f 70 3c 2f 73 70 61 6e 3e 28 pan.class="tok-fn">do_op</span>(
3eee0 66 6e 5f 63 61 6c 6c 3a 20 63 61 6c 6c 32 5f 6f 70 2c 20 6f 70 31 3a 20 3c 73 70 61 6e 20 63 6c fn_call:.call2_op,.op1:.<span.cl
3ef00 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 2c 20 6f 70 32 3a 20 3c ass="tok-type">i8</span>,.op2:.<
3ef20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 29 span.class="tok-type">i8</span>)
3ef40 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e .<span.class="tok-type">i8</span
3ef60 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 >.{.....<span.class="tok-kw">ret
3ef80 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 6e 5f 63 61 6c 6c 28 6f 70 31 2c 20 6f 70 32 29 3b 0a 7d 0a urn</span>.fn_call(op1,.op2);.}.
3efa0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
3efc0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 75 >.<span.class="tok-str">&quot;fu
3efe0 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 nction&quot;</span>.{.....assert
3f000 28 64 6f 5f 6f 70 28 61 64 64 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d (do_op(add,.<span.class="tok-num
3f020 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ber">5</span>,.<span.class="tok-
3f040 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 number">6</span>).==.<span.class
3f060 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 ="tok-number">11</span>);.....as
3f080 73 65 72 74 28 64 6f 5f 6f 70 28 73 75 62 32 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f sert(do_op(sub2,.<span.class="to
3f0a0 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-number">5</span>,.<span.class=
3f0c0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 2d 3c 73 70 61 6e "tok-number">6</span>).==.-<span
3f0e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 7d .class="tok-number">1</span>);.}
3f100 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 </code></pre><pre><code.class="s
3f120 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 73 2e 7a 69 67 0a 31 hell">$.zig.test.functions.zig.1
3f140 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f /1.test.&quot;function&quot;...O
3f160 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 K.All.tests.passed..</code></pre
3f180 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 46 75 6e 63 74 69 6f 6e 20 76 61 6c 75 65 73 20 61 72 65 20 >........<p>Function.values.are.
3f1a0 6c 69 6b 65 20 70 6f 69 6e 74 65 72 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 like.pointers:</p>.......<p.clas
3f1c0 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 s="file">test.zig</p><pre><code.
3f1e0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
3f200 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 >const</span>.assert.=.<span.cla
3f220 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 ss="tok-builtin">@import</span>(
3f240 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 <span.class="tok-str">&quot;std&
3f260 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 quot;</span>).debug.assert;..<sp
3f280 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e an.class="tok-kw">comptime</span
3f2a0 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >.{.....assert(<span.class="tok-
3f2c0 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 66 6f 6f 29 20 3d 3d 20 builtin">@typeOf</span>(foo).==.
3f2e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 28 29 <span.class="tok-kw">fn</span>()
3f300 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 <span.class="tok-type">void</spa
3f320 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b n>);.....assert(<span.class="tok
3f340 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 -builtin">@sizeOf</span>(<span.c
3f360 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 28 29 3c 73 70 61 6e 20 63 lass="tok-kw">fn</span>()<span.c
3f380 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 lass="tok-type">void</span>).==.
3f3a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f <span.class="tok-builtin">@sizeO
3f3c0 66 3c 2f 73 70 61 6e 3e 28 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 f</span>(?<span.class="tok-kw">f
3f3e0 6e 3c 2f 73 70 61 6e 3e 28 29 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 n</span>()<span.class="tok-type"
3f400 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >void</span>));.}..<span.class="
3f420 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 tok-kw">fn</span>.<span.class="t
3f440 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-fn">foo</span>().<span.class=
3f460 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 20 7d 3c 2f 63 6f 64 65 "tok-type">void</span>.{.}</code
3f480 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e ></pre><pre><code.class="shell">
3f4a0 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 3c 2f 63 6f 64 65 3e 3c $.zig.build-obj.test.zig</code><
3f4c0 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 50 61 73 73 2d 62 79 2d 76 61 6c /pre>........<h2.id="Pass-by-val
3f4e0 75 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 50 61 73 ue-Parameters"><a.href="#toc-Pas
3f500 73 2d 62 79 2d 76 61 6c 75 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e 50 61 73 73 2d 62 79 2d 76 s-by-value-Parameters">Pass-by-v
3f520 61 6c 75 65 20 50 61 72 61 6d 65 74 65 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 alue.Parameters</a>.<a.class="hd
3f540 72 22 20 68 72 65 66 3d 22 23 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 2d 50 61 72 61 6d 65 74 65 r".href="#Pass-by-value-Paramete
3f560 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 rs">..</a></h2>........<p>......
3f580 20 50 72 69 6d 69 74 69 76 65 20 74 79 70 65 73 20 73 75 63 68 20 61 73 20 3c 61 20 68 72 65 66 .Primitive.types.such.as.<a.href
3f5a0 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 ="#Integers">Integers</a>.and.<a
3f5c0 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 70 61 73 73 65 .href="#Floats">Floats</a>.passe
3f5e0 64 20 61 73 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 20 20 61 72 65 20 63 6f 70 69 65 64 d.as.parameters.......are.copied
3f600 2c 20 61 6e 64 20 74 68 65 6e 20 74 68 65 20 63 6f 70 79 20 69 73 20 61 76 61 69 6c 61 62 6c 65 ,.and.then.the.copy.is.available
3f620 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 2e 20 54 68 69 73 20 69 73 20 63 .in.the.function.body..This.is.c
3f640 61 6c 6c 65 64 20 22 70 61 73 73 69 6e 67 20 62 79 20 76 61 6c 75 65 22 2e 0a 20 20 20 20 20 20 alled."passing.by.value"........
3f660 43 6f 70 79 69 6e 67 20 61 20 70 72 69 6d 69 74 69 76 65 20 74 79 70 65 20 69 73 20 65 73 73 65 Copying.a.primitive.type.is.esse
3f680 6e 74 69 61 6c 6c 79 20 66 72 65 65 20 61 6e 64 20 74 79 70 69 63 61 6c 6c 79 20 69 6e 76 6f 6c ntially.free.and.typically.invol
3f6a0 76 65 73 20 6e 6f 74 68 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 0a 20 20 20 20 20 20 73 65 74 74 ves.nothing.more.than.......sett
3f6c0 69 6e 67 20 61 20 72 65 67 69 73 74 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 ing.a.register........</p>......
3f6e0 20 3c 70 3e 0a 20 20 20 20 20 20 53 74 72 75 63 74 73 2c 20 75 6e 69 6f 6e 73 2c 20 61 6e 64 20 .<p>.......Structs,.unions,.and.
3f700 61 72 72 61 79 73 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 62 65 20 6d 6f 72 65 20 65 66 66 arrays.can.sometimes.be.more.eff
3f720 69 63 69 65 6e 74 6c 79 20 70 61 73 73 65 64 20 61 73 20 61 20 72 65 66 65 72 65 6e 63 65 2c 20 iciently.passed.as.a.reference,.
3f740 73 69 6e 63 65 20 61 20 63 6f 70 79 0a 20 20 20 20 20 20 63 6f 75 6c 64 20 62 65 20 61 72 62 69 since.a.copy.......could.be.arbi
3f760 74 72 61 72 69 6c 79 20 65 78 70 65 6e 73 69 76 65 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 trarily.expensive.depending.on.t
3f780 68 65 20 73 69 7a 65 2e 20 57 68 65 6e 20 74 68 65 73 65 20 74 79 70 65 73 20 61 72 65 20 70 61 he.size..When.these.types.are.pa
3f7a0 73 73 65 64 0a 20 20 20 20 20 20 61 73 20 70 61 72 61 6d 65 74 65 72 73 2c 20 5a 69 67 20 6d 61 ssed.......as.parameters,.Zig.ma
3f7c0 79 20 63 68 6f 6f 73 65 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 70 61 73 73 20 62 79 20 76 61 6c y.choose.to.copy.and.pass.by.val
3f7e0 75 65 2c 20 6f 72 20 70 61 73 73 20 62 79 20 72 65 66 65 72 65 6e 63 65 2c 20 77 68 69 63 68 65 ue,.or.pass.by.reference,.whiche
3f800 76 65 72 20 77 61 79 0a 20 20 20 20 20 20 5a 69 67 20 64 65 63 69 64 65 73 20 77 69 6c 6c 20 62 ver.way.......Zig.decides.will.b
3f820 65 20 66 61 73 74 65 72 2e 20 54 68 69 73 20 69 73 20 6d 61 64 65 20 70 6f 73 73 69 62 6c 65 2c e.faster..This.is.made.possible,
3f840 20 69 6e 20 70 61 72 74 2c 20 62 79 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 70 61 72 61 6d .in.part,.by.the.fact.that.param
3f860 65 74 65 72 73 20 61 72 65 20 69 6d 6d 75 74 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a eters.are.immutable........</p>.
3f880 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f ......<p.class="file">test.zig</
3f8a0 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 p><pre><code.class="zig"><span.c
3f8c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 6f 69 6e 74 lass="tok-kw">const</span>.Point
3f8e0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f .=.<span.class="tok-kw">struct</
3f900 73 70 61 6e 3e 20 7b 0a 20 20 20 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d span>.{.....x:.<span.class="tok-
3f920 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 79 3a 20 3c 73 70 61 6e 20 63 type">i32</span>,.....y:.<span.c
3f940 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a lass="tok-type">i32</span>,.};..
3f960 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c <span.class="tok-kw">fn</span>.<
3f980 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 70 span.class="tok-fn">foo</span>(p
3f9a0 6f 69 6e 74 3a 20 50 6f 69 6e 74 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 oint:.Point).<span.class="tok-ty
3f9c0 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 pe">i32</span>.{.....<span.class
3f9e0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 48 65 72 65 2c 20 60 70 6f 69 6e 74 60 20 ="tok-comment">//.Here,.`point`.
3fa00 63 6f 75 6c 64 20 62 65 20 61 20 72 65 66 65 72 65 6e 63 65 2c 20 6f 72 20 61 20 63 6f 70 79 2e could.be.a.reference,.or.a.copy.
3fa20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 .The.function.body</span>.....<s
3fa40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 63 61 6e 20 69 pan.class="tok-comment">//.can.i
3fa60 67 6e 6f 72 65 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 61 6e 64 20 74 72 65 61 74 20 69 gnore.the.difference.and.treat.i
3fa80 74 20 61 73 20 61 20 76 61 6c 75 65 2e 20 42 65 20 76 65 72 79 20 63 61 72 65 66 75 6c 3c 2f 73 t.as.a.value..Be.very.careful</s
3faa0 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e pan>.....<span.class="tok-commen
3fac0 74 22 3e 2f 2f 20 74 61 6b 69 6e 67 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 t">//.taking.the.address.of.the.
3fae0 70 61 72 61 6d 65 74 65 72 20 2d 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 74 65 64 parameter.-.it.should.be.treated
3fb00 20 61 73 20 69 66 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .as.if</span>.....<span.class="t
3fb20 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 61 64 64 72 65 73 73 20 77 69 6c 6c 20 ok-comment">//.the.address.will.
3fb40 62 65 63 6f 6d 65 20 69 6e 76 61 6c 69 64 20 77 68 65 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e become.invalid.when.the.function
3fb60 20 72 65 74 75 72 6e 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 .returns.</span>.....<span.class
3fb80 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 70 6f 69 6e 74 2e 78 20 ="tok-kw">return</span>.point.x.
3fba0 2b 20 70 6f 69 6e 74 2e 79 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b +.point.y;.}..<span.class="tok-k
3fbc0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 w">const</span>.assert.=.<span.c
3fbe0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
3fc00 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
3fc20 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c d&quot;</span>).debug.assert;..<
3fc40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">test</span>.
3fc60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 61 73 73 <span.class="tok-str">&quot;pass
3fc80 20 73 74 72 75 63 74 20 74 6f 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e .struct.to.function&quot;</span>
3fca0 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 66 6f 6f 28 50 6f 69 6e 74 7b 20 2e 78 20 3d 20 3c 73 .{.....assert(foo(Point{..x.=.<s
3fcc0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c pan.class="tok-number">1</span>,
3fce0 20 2e 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 ..y.=.<span.class="tok-number">2
3fd00 3c 2f 73 70 61 6e 3e 20 7d 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e </span>.}).==.<span.class="tok-n
3fd20 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e umber">3</span>);.}</code></pre>
3fd40 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 <pre><code.class="shell">$.zig.t
3fd60 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 61 73 73 est.test.zig.1/1.test.&quot;pass
3fd80 20 73 74 72 75 63 74 20 74 6f 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 .struct.to.function&quot;...OK.A
3fda0 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a ll.tests.passed..</code></pre>..
3fdc0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 74 65 72 6e 20 66 75 6e 63 74 ......<p>.......For.extern.funct
3fde0 69 6f 6e 73 2c 20 5a 69 67 20 66 6f 6c 6c 6f 77 73 20 74 68 65 20 43 20 41 42 49 20 66 6f 72 20 ions,.Zig.follows.the.C.ABI.for.
3fe00 70 61 73 73 69 6e 67 20 73 74 72 75 63 74 73 20 61 6e 64 20 75 6e 69 6f 6e 73 20 62 79 20 76 61 passing.structs.and.unions.by.va
3fe20 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 lue........</p>..............<h2
3fe40 20 69 64 3d 22 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 .id="Function-Reflection"><a.hre
3fe60 66 3d 22 23 74 6f 63 2d 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 6f 6e 22 3e 46 75 6e f="#toc-Function-Reflection">Fun
3fe80 63 74 69 6f 6e 20 52 65 66 6c 65 63 74 69 6f 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 ction.Reflection</a>.<a.class="h
3fea0 64 72 22 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 6f 6e 22 3e dr".href="#Function-Reflection">
3fec0 c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c ..</a></h2>........<p.class="fil
3fee0 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
3ff00 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 "zig"><span.class="tok-kw">const
3ff20 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.assert.=.<span.class="to
3ff40 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
3ff60 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
3ff80 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 /span>).debug.assert;..<span.cla
3ffa0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
3ffc0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6e 20 72 65 66 6c 65 63 74 69 6f ass="tok-str">&quot;fn.reflectio
3ffe0 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 n&quot;</span>.{.....assert(<spa
40000 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 n.class="tok-builtin">@typeOf</s
40020 70 61 6e 3e 28 61 73 73 65 72 74 29 2e 52 65 74 75 72 6e 54 79 70 65 20 3d 3d 20 3c 73 70 61 6e pan>(assert).ReturnType.==.<span
40040 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 29 3b 0a .class="tok-type">void</span>);.
40060 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c ....assert(<span.class="tok-buil
40080 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 61 73 73 65 72 74 29 2e 69 73 5f 76 tin">@typeOf</span>(assert).is_v
400a0 61 72 5f 61 72 67 73 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c ar_args.==.<span.class="tok-null
400c0 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c ">false</span>);.}</code></pre><
400e0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 pre><code.class="shell">$.zig.te
40100 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 66 6e 20 72 65 st.test.zig.1/1.test.&quot;fn.re
40120 66 6c 65 63 74 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 flection&quot;...OK.All.tests.pa
40140 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 ssed..</code></pre>.............
40160 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 45 72 72 6f 72 73 22 3e 3c 61 20 68 72 65 66 .........<h1.id="Errors"><a.href
40180 3d 22 23 74 6f 63 2d 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 ="#toc-Errors">Errors</a>.<a.cla
401a0 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f ss="hdr".href="#Errors">..</a></
401c0 68 31 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 h1>........<h2.id="Error-Set-Typ
401e0 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 e"><a.href="#toc-Error-Set-Type"
40200 3e 45 72 72 6f 72 20 53 65 74 20 54 79 70 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 >Error.Set.Type</a>.<a.class="hd
40220 72 22 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 3e c2 a7 3c 2f 61 3e r".href="#Error-Set-Type">..</a>
40240 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6e 20 65 72 72 6f 72 20 </h2>........<p>.......An.error.
40260 73 65 74 20 69 73 20 6c 69 6b 65 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 set.is.like.an.<a.href="#enum">e
40280 6e 75 6d 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 65 61 63 68 20 65 72 72 num</a>........However,.each.err
402a0 6f 72 20 6e 61 6d 65 20 61 63 72 6f 73 73 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6d 70 69 6c or.name.across.the.entire.compil
402c0 61 74 69 6f 6e 20 67 65 74 73 20 61 73 73 69 67 6e 65 64 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 ation.gets.assigned.an.unsigned.
402e0 69 6e 74 65 67 65 72 0a 20 20 20 20 20 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 30 2e 20 59 6f integer.......greater.than.0..Yo
40300 75 20 61 72 65 20 61 6c 6c 6f 77 65 64 20 74 6f 20 64 65 63 6c 61 72 65 20 74 68 65 20 73 61 6d u.are.allowed.to.declare.the.sam
40320 65 20 65 72 72 6f 72 20 6e 61 6d 65 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 63 65 2c 20 61 6e 64 e.error.name.more.than.once,.and
40340 20 69 66 20 79 6f 75 20 64 6f 2c 20 69 74 0a 20 20 20 20 20 20 67 65 74 73 20 61 73 73 69 67 6e .if.you.do,.it.......gets.assign
40360 65 64 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 ed.the.same.integer.value.......
40380 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6e 75 6d 62 65 72 .</p>.......<p>.......The.number
403a0 20 6f 66 20 75 6e 69 71 75 65 20 65 72 72 6f 72 20 76 61 6c 75 65 73 20 61 63 72 6f 73 73 20 74 .of.unique.error.values.across.t
403c0 68 65 20 65 6e 74 69 72 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 68 6f 75 6c 64 20 64 65 74 he.entire.compilation.should.det
403e0 65 72 6d 69 6e 65 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 ermine.the.size.of.the.error.set
40400 20 74 79 70 65 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 20 72 69 67 68 74 20 6e 6f 77 20 69 .type........However.right.now.i
40420 74 20 69 73 20 68 61 72 64 20 63 6f 64 65 64 20 74 6f 20 62 65 20 61 20 3c 63 6f 64 65 20 63 6c t.is.hard.coded.to.be.a.<code.cl
40440 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ass="zig"><span.class="tok-type"
40460 3e 75 31 36 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 53 65 65 20 3c 61 20 68 72 65 66 3d >u16</span></code>..See.<a.href=
40480 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f "https://github.com/ziglang/zig/
404a0 69 73 73 75 65 73 2f 37 38 36 22 3e 23 37 36 38 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e issues/786">#768</a>........</p>
404c0 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 3c 61 20 68 72 65 66 .......<p>.......You.can.<a.href
404e0 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 ="#Implicit-Casts">implicitly.ca
40500 73 74 3c 2f 61 3e 20 61 6e 20 65 72 72 6f 72 20 66 72 6f 6d 20 61 20 73 75 62 73 65 74 20 74 6f st</a>.an.error.from.a.subset.to
40520 20 61 20 73 75 70 65 72 73 65 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 .a.superset:.......</p>.......<p
40540 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
40560 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
40580 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 k-kw">const</span>.std.=.<span.c
405a0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
405c0 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
405e0 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 d&quot;</span>);..<span.class="t
40600 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 69 6c 65 4f 70 65 6e 45 72 72 6f ok-kw">const</span>.FileOpenErro
40620 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f r.=.<span.class="tok-kw">error</
40640 73 70 61 6e 3e 20 7b 0a 20 20 20 20 41 63 63 65 73 73 44 65 6e 69 65 64 2c 0a 20 20 20 20 4f 75 span>.{.....AccessDenied,.....Ou
40660 74 4f 66 4d 65 6d 6f 72 79 2c 0a 20 20 20 20 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 2c 0a 7d 3b 0a tOfMemory,.....FileNotFound,.};.
40680 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
406a0 6e 3e 20 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 n>.AllocationError.=.<span.class
406c0 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 4f 75 74 ="tok-kw">error</span>.{.....Out
406e0 4f 66 4d 65 6d 6f 72 79 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b OfMemory,.};..<span.class="tok-k
40700 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d w">test</span>.<span.class="tok-
40720 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 20 73 75 62 73 65 74 20 str">&quot;implicit.cast.subset.
40740 74 6f 20 73 75 70 65 72 73 65 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c to.superset&quot;</span>.{.....<
40760 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
40780 20 65 72 72 20 3d 20 66 6f 6f 28 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 2e 4f 75 74 4f 66 .err.=.foo(AllocationError.OutOf
407a0 4d 65 6d 6f 72 79 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 65 72 Memory);.....std.debug.assert(er
407c0 72 20 3d 3d 20 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 29 3b r.==.FileOpenError.OutOfMemory);
407e0 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 .}..<span.class="tok-kw">fn</spa
40800 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 n>.<span.class="tok-fn">foo</spa
40820 6e 3e 28 65 72 72 3a 20 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 29 20 46 69 6c 65 4f 70 65 n>(err:.AllocationError).FileOpe
40840 6e 45 72 72 6f 72 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 nError.{.....<span.class="tok-kw
40860 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 65 72 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 ">return</span>.err;.}</code></p
40880 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
408a0 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 g.test.test.zig.1/1.test.&quot;i
408c0 6d 70 6c 69 63 69 74 20 63 61 73 74 20 73 75 62 73 65 74 20 74 6f 20 73 75 70 65 72 73 65 74 26 mplicit.cast.subset.to.superset&
408e0 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 quot;...OK.All.tests.passed..</c
40900 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 75 74 20 ode></pre>........<p>.......But.
40920 79 6f 75 20 63 61 6e 6e 6f 74 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 61 6e 20 65 72 you.cannot.implicitly.cast.an.er
40940 72 6f 72 20 66 72 6f 6d 20 61 20 73 75 70 65 72 73 65 74 20 74 6f 20 61 20 73 75 62 73 65 74 3a ror.from.a.superset.to.a.subset:
40960 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 .......</p>.......<p.class="file
40980 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">test.zig</p><pre><code.class="
409a0 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c zig"><span.class="tok-kw">const<
409c0 2f 73 70 61 6e 3e 20 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 /span>.FileOpenError.=.<span.cla
409e0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 41 ss="tok-kw">error</span>.{.....A
40a00 63 63 65 73 73 44 65 6e 69 65 64 2c 0a 20 20 20 20 4f 75 74 4f 66 4d 65 6d 6f 72 79 2c 0a 20 20 ccessDenied,.....OutOfMemory,...
40a20 20 20 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..FileNotFound,.};..<span.class=
40a40 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 6c 6c 6f 63 61 74 69 6f 6e "tok-kw">const</span>.Allocation
40a60 45 72 72 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 Error.=.<span.class="tok-kw">err
40a80 6f 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 4f 75 74 4f 66 4d 65 6d 6f 72 79 2c 0a 7d 3b 0a or</span>.{.....OutOfMemory,.};.
40aa0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
40ac0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d >.<span.class="tok-str">&quot;im
40ae0 70 6c 69 63 69 74 20 63 61 73 74 20 73 75 70 65 72 73 65 74 20 74 6f 20 73 75 62 73 65 74 26 71 plicit.cast.superset.to.subset&q
40b00 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6f 6f 28 46 69 6c 65 4f 70 65 6e 45 72 uot;</span>.{.....foo(FileOpenEr
40b20 72 6f 72 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ror.OutOfMemory).<span.class="to
40b40 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 7b 7d 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 k-kw">catch</span>.{};.}..<span.
40b60 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 class="tok-kw">fn</span>.<span.c
40b80 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 65 72 72 3a 20 46 69 lass="tok-fn">foo</span>(err:.Fi
40ba0 6c 65 4f 70 65 6e 45 72 72 6f 72 29 20 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 20 7b 0a 20 leOpenError).AllocationError.{..
40bc0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f ...<span.class="tok-kw">return</
40be0 73 70 61 6e 3e 20 65 72 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 span>.err;.}</code></pre><pre><c
40c00 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
40c20 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 t.zig.<span.class="t0_1">/home/a
40c40 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a ndy/dev/zig/docgen_tmp/test.zig:
40c60 31 36 3a 31 32 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 16:12:.</span><span.class="t31_1
40c80 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 ">error:</span><span.class="t0_1
40ca0 22 3e 20 65 78 70 65 63 74 65 64 20 74 79 70 65 20 27 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f ">.expected.type.'AllocationErro
40cc0 72 27 2c 20 66 6f 75 6e 64 20 27 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 27 3c 2f 73 70 61 6e 3e r',.found.'FileOpenError'</span>
40ce0 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 .....return.err;............<spa
40d00 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 n.class="t32_1">^</span>.<span.c
40d20 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 lass="t0_1">/home/andy/dev/zig/d
40d40 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c ocgen_tmp/test.zig:2:5:.</span><
40d60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c span.class="t36_1">note:</span><
40d80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 27 65 72 72 6f 72 2e 41 63 63 65 73 73 span.class="t0_1">.'error.Access
40da0 44 65 6e 69 65 64 27 20 6e 6f 74 20 61 20 6d 65 6d 62 65 72 20 6f 66 20 64 65 73 74 69 6e 61 74 Denied'.not.a.member.of.destinat
40dc0 69 6f 6e 20 65 72 72 6f 72 20 73 65 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 41 63 63 65 73 73 44 ion.error.set</span>.....AccessD
40de0 65 6e 69 65 64 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e enied,.....<span.class="t32_1">^
40e00 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 </span>.<span.class="t0_1">/home
40e20 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 /andy/dev/zig/docgen_tmp/test.zi
40e40 67 3a 34 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 g:4:5:.</span><span.class="t36_1
40e60 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 ">note:</span><span.class="t0_1"
40e80 3e 20 27 65 72 72 6f 72 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 27 20 6e 6f 74 20 61 20 6d 65 6d >.'error.FileNotFound'.not.a.mem
40ea0 62 65 72 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 65 72 72 6f 72 20 73 65 74 3c 2f 73 70 ber.of.destination.error.set</sp
40ec0 61 6e 3e 0a 20 20 20 20 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 2c 0a 20 20 20 20 3c 73 70 61 6e 20 an>.....FileNotFound,.....<span.
40ee0 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 class="t32_1">^</span>.<span.cla
40f00 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 ss="t0_1">/home/andy/dev/zig/doc
40f20 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 35 3a 32 38 3a 20 3c 2f 73 70 61 6e 3e 3c gen_tmp/test.zig:15:28:.</span><
40f40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c span.class="t36_1">note:</span><
40f60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 74 75 72 6e 20 74 79 70 65 20 64 span.class="t0_1">.return.type.d
40f80 65 63 6c 61 72 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 66 6e 20 66 6f 6f 28 65 72 72 3a 20 eclared.here</span>.fn.foo(err:.
40fa0 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 29 20 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 20 7b FileOpenError).AllocationError.{
40fc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 ............................<spa
40fe0 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 n.class="t32_1">^</span>.<span.c
41000 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 lass="t0_1">/home/andy/dev/zig/d
41020 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 35 3a 34 34 3a 20 3c 2f 73 70 61 6e ocgen_tmp/test.zig:15:44:.</span
41040 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e ><span.class="t36_1">note:</span
41060 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 ><span.class="t0_1">.referenced.
41080 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 66 6e 20 66 6f 6f 28 65 72 72 3a 20 46 69 6c 65 4f 70 65 6e here</span>.fn.foo(err:.FileOpen
410a0 45 72 72 6f 72 29 20 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 20 7b 0a 20 20 20 20 20 20 20 Error).AllocationError.{........
410c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
410e0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e ....<span.class="t32_1">^</span>
41100 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 .</code></pre>........<p>.......
41120 54 68 65 72 65 20 69 73 20 61 20 73 68 6f 72 74 63 75 74 20 66 6f 72 20 64 65 63 6c 61 72 69 6e There.is.a.shortcut.for.declarin
41140 67 20 61 6e 20 65 72 72 6f 72 20 73 65 74 20 77 69 74 68 20 6f 6e 6c 79 20 31 20 76 61 6c 75 65 g.an.error.set.with.only.1.value
41160 2c 20 61 6e 64 20 74 68 65 6e 20 67 65 74 74 69 6e 67 20 74 68 61 74 20 76 61 6c 75 65 3a 0a 20 ,.and.then.getting.that.value:..
41180 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 .....</p>.......<pre><code.class
411a0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ="zig"><span.class="tok-kw">cons
411c0 74 3c 2f 73 70 61 6e 3e 20 65 72 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d t</span>.err.=.<span.class="tok-
411e0 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3b 3c 2f kw">error</span>.FileNotFound;</
41200 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 20 65 71 75 code></pre>.......<p>This.is.equ
41220 69 76 61 6c 65 6e 74 20 74 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 ivalent.to:</p>.......<pre><code
41240 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
41260 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 72 72 20 3d 20 28 3c 73 70 61 6e 20 63 6c 61 73 ">const</span>.err.=.(<span.clas
41280 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 20 7b 46 69 6c 65 4e 6f 74 s="tok-kw">error</span>.{FileNot
412a0 46 6f 75 6e 64 7d 29 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 Found}).FileNotFound;</code></pr
412c0 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 62 65 63 6f 6d 65 73 20 e>.......<p>.......This.becomes.
412e0 75 73 65 66 75 6c 20 77 68 65 6e 20 75 73 69 6e 67 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 66 65 useful.when.using.<a.href="#Infe
41300 72 72 65 64 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 49 6e 66 65 72 72 65 64 20 45 72 72 6f 72 20 rred-Error-Sets">Inferred.Error.
41320 53 65 74 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 Sets</a>........</p>.......<h3.i
41340 64 3d 22 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f 72 2d 53 65 74 22 3e 3c 61 20 68 72 65 66 d="The-Global-Error-Set"><a.href
41360 3d 22 23 74 6f 63 2d 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f 72 2d 53 65 74 22 3e 54 68 65 ="#toc-The-Global-Error-Set">The
41380 20 47 6c 6f 62 61 6c 20 45 72 72 6f 72 20 53 65 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 .Global.Error.Set</a>.<a.class="
413a0 68 64 72 22 20 68 72 65 66 3d 22 23 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f 72 2d 53 65 74 hdr".href="#The-Global-Error-Set
413c0 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c ">..</a></h3>........<p><code.cl
413e0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ass="zig"><span.class="tok-type"
41400 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 66 65 72 73 20 74 >anyerror</span></code>.refers.t
41420 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 65 72 72 6f 72 20 73 65 74 2e 0a 20 20 20 20 20 20 54 68 o.the.global.error.set........Th
41440 69 73 20 69 73 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 20 74 68 61 74 20 63 6f 6e 74 61 69 6e is.is.the.error.set.that.contain
41460 73 20 61 6c 6c 20 65 72 72 6f 72 73 20 69 6e 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6d 70 69 s.all.errors.in.the.entire.compi
41480 6c 61 74 69 6f 6e 20 75 6e 69 74 2e 0a 20 20 20 20 20 20 49 74 20 69 73 20 61 20 73 75 70 65 72 lation.unit........It.is.a.super
414a0 73 65 74 20 6f 66 20 61 6c 6c 20 6f 74 68 65 72 20 65 72 72 6f 72 20 73 65 74 73 20 61 6e 64 20 set.of.all.other.error.sets.and.
414c0 61 20 73 75 62 73 65 74 20 6f 66 20 6e 6f 6e 65 20 6f 66 20 74 68 65 6d 2e 0a 20 20 20 20 20 20 a.subset.of.none.of.them........
414e0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 69 6d 70 </p>.......<p>.......You.can.imp
41500 6c 69 63 69 74 6c 79 20 63 61 73 74 20 61 6e 79 20 65 72 72 6f 72 20 73 65 74 20 74 6f 20 74 68 licitly.cast.any.error.set.to.th
41520 65 20 67 6c 6f 62 61 6c 20 6f 6e 65 2c 20 61 6e 64 20 79 6f 75 20 63 61 6e 20 65 78 70 6c 69 63 e.global.one,.and.you.can.explic
41540 69 74 6c 79 0a 20 20 20 20 20 20 63 61 73 74 20 61 6e 20 65 72 72 6f 72 20 6f 66 20 74 68 65 20 itly.......cast.an.error.of.the.
41560 67 6c 6f 62 61 6c 20 65 72 72 6f 72 20 73 65 74 20 74 6f 20 61 20 6e 6f 6e 2d 67 6c 6f 62 61 6c global.error.set.to.a.non-global
41580 20 6f 6e 65 2e 20 54 68 69 73 20 69 6e 73 65 72 74 73 20 61 20 6c 61 6e 67 75 61 67 65 2d 6c 65 .one..This.inserts.a.language-le
415a0 76 65 6c 0a 20 20 20 20 20 20 61 73 73 65 72 74 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 vel.......assert.to.make.sure.th
415c0 65 20 65 72 72 6f 72 20 76 61 6c 75 65 20 69 73 20 69 6e 20 66 61 63 74 20 69 6e 20 74 68 65 20 e.error.value.is.in.fact.in.the.
415e0 64 65 73 74 69 6e 61 74 69 6f 6e 20 65 72 72 6f 72 20 73 65 74 2e 0a 20 20 20 20 20 20 3c 2f 70 destination.error.set........</p
41600 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 67 6c 6f 62 61 6c 20 65 72 72 >.......<p>.......The.global.err
41620 6f 72 20 73 65 74 20 73 68 6f 75 6c 64 20 67 65 6e 65 72 61 6c 6c 79 20 62 65 20 61 76 6f 69 64 or.set.should.generally.be.avoid
41640 65 64 20 62 65 63 61 75 73 65 20 69 74 20 70 72 65 76 65 6e 74 73 20 74 68 65 0a 20 20 20 20 20 ed.because.it.prevents.the......
41660 20 63 6f 6d 70 69 6c 65 72 20 66 72 6f 6d 20 6b 6e 6f 77 69 6e 67 20 77 68 61 74 20 65 72 72 6f .compiler.from.knowing.what.erro
41680 72 73 20 61 72 65 20 70 6f 73 73 69 62 6c 65 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e rs.are.possible.at.compile-time.
416a0 20 4b 6e 6f 77 69 6e 67 0a 20 20 20 20 20 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 20 61 74 20 .Knowing.......the.error.set.at.
416c0 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 69 73 20 62 65 74 74 65 72 20 66 6f 72 20 67 65 6e 65 72 compile-time.is.better.for.gener
416e0 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 0a 20 20 20 20 20 20 68 65 6c ated.documentation.and.......hel
41700 70 66 75 6c 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 2c 20 73 75 63 68 20 61 73 20 66 6f 72 pful.error.messages,.such.as.for
41720 67 65 74 74 69 6e 67 20 61 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 20 76 61 6c 75 65 20 69 getting.a.possible.error.value.i
41740 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e n.a.<a.href="#switch">switch</a>
41760 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 ........</p>....................
41780 20 3c 68 32 20 69 64 3d 22 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 3e 3c 61 20 68 72 .<h2.id="Error-Union-Type"><a.hr
417a0 65 66 3d 22 23 74 6f 63 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 3e 45 72 72 6f 72 ef="#toc-Error-Union-Type">Error
417c0 20 55 6e 69 6f 6e 20 54 79 70 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 .Union.Type</a>.<a.class="hdr".h
417e0 72 65 66 3d 22 23 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f ref="#Error-Union-Type">..</a></
41800 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6e 20 65 72 72 6f 72 20 73 65 h2>........<p>.......An.error.se
41820 74 20 74 79 70 65 20 61 6e 64 20 6e 6f 72 6d 61 6c 20 74 79 70 65 20 63 61 6e 20 62 65 20 63 6f t.type.and.normal.type.can.be.co
41840 6d 62 69 6e 65 64 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 mbined.with.the.<code.class="zig
41860 22 3e 21 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 62 69 6e 61 72 79 20 6f 70 65 72 61 74 6f 72 ">!</code>.......binary.operator
41880 20 74 6f 20 66 6f 72 6d 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 2e 20 59 6f .to.form.an.error.union.type..Yo
418a0 75 20 61 72 65 20 6c 69 6b 65 6c 79 20 74 6f 20 75 73 65 20 61 6e 0a 20 20 20 20 20 20 65 72 72 u.are.likely.to.use.an.......err
418c0 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 20 6d 6f 72 65 20 6f 66 74 65 6e 20 74 68 61 6e 20 61 6e or.union.type.more.often.than.an
418e0 20 65 72 72 6f 72 20 73 65 74 20 74 79 70 65 20 62 79 20 69 74 73 65 6c 66 2e 0a 20 20 20 20 20 .error.set.type.by.itself.......
41900 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 20 69 73 20 61 20 .</p>.......<p>.......Here.is.a.
41920 66 75 6e 63 74 69 6f 6e 20 74 6f 20 70 61 72 73 65 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 function.to.parse.a.string.into.
41940 61 20 36 34 2d 62 69 74 20 69 6e 74 65 67 65 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 a.64-bit.integer:.......</p>....
41960 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
41980 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
419a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 s="tok-kw">const</span>.std.=.<s
419c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c pan.class="tok-builtin">@import<
419e0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>(<span.class="tok-str">&qu
41a00 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 ot;std&quot;</span>);.<span.clas
41a20 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 61 78 49 6e 74 20 3d s="tok-kw">const</span>.maxInt.=
41a40 20 73 74 64 2e 6d 61 74 68 2e 6d 61 78 49 6e 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .std.math.maxInt;..<span.class="
41a60 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 tok-kw">pub</span>.<span.class="
41a80 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 tok-kw">fn</span>.<span.class="t
41aa0 6f 6b 2d 66 6e 22 3e 70 61 72 73 65 55 36 34 3c 2f 73 70 61 6e 3e 28 62 75 66 3a 20 5b 5d 3c 73 ok-fn">parseU64</span>(buf:.[]<s
41ac0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
41ae0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
41b00 2c 20 72 61 64 69 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ,.radix:.<span.class="tok-type">
41b20 75 38 3c 2f 73 70 61 6e 3e 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 u8</span>).!<span.class="tok-typ
41b40 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d e">u64</span>.{.....<span.class=
41b60 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 "tok-kw">var</span>.x:.<span.cla
41b80 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e ss="tok-type">u64</span>.=.<span
41ba0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 .class="tok-number">0</span>;...
41bc0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 ...<span.class="tok-kw">for</spa
41be0 6e 3e 20 28 62 75 66 29 20 7c 63 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 n>.(buf).|c|.{.........<span.cla
41c00 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 64 69 67 69 74 20 3d ss="tok-kw">const</span>.digit.=
41c20 20 63 68 61 72 54 6f 44 69 67 69 74 28 63 29 3b 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 .charToDigit(c);..........<span.
41c40 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 64 69 67 69 74 20 class="tok-kw">if</span>.(digit.
41c60 26 67 74 3b 3d 20 72 61 64 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e &gt;=.radix).{.............<span
41c80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 .class="tok-kw">return</span>.<s
41ca0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e pan.class="tok-kw">error</span>.
41cc0 49 6e 76 61 6c 69 64 43 68 61 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 InvalidChar;.........}..........
41ce0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 78 20 2a <span.class="tok-comment">//.x.*
41d00 3d 20 72 61 64 69 78 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 =.radix</span>.........<span.cla
41d20 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">if</span>.(<span.cla
41d40 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f ss="tok-builtin">@mulWithOverflo
41d60 77 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e w</span>(<span.class="tok-type">
41d80 75 36 34 3c 2f 73 70 61 6e 3e 2c 20 78 2c 20 72 61 64 69 78 2c 20 26 61 6d 70 3b 78 29 29 20 7b u64</span>,.x,.radix,.&amp;x)).{
41da0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .............<span.class="tok-kw
41dc0 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">return</span>.<span.class="tok
41de0 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4f 76 65 72 66 6c 6f 77 3b 0a 20 20 20 20 -kw">error</span>.Overflow;.....
41e00 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....}..........<span.class="tok-
41e20 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 78 20 2b 3d 20 64 69 67 69 74 3c 2f 73 70 61 6e 3e 0a 20 20 comment">//.x.+=.digit</span>...
41e40 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 ......<span.class="tok-kw">if</s
41e60 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e pan>.(<span.class="tok-builtin">
41e80 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c @addWithOverflow</span>(<span.cl
41ea0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 2c 20 78 2c 20 64 69 ass="tok-type">u64</span>,.x,.di
41ec0 67 69 74 2c 20 26 61 6d 70 3b 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 git,.&amp;x)).{.............<spa
41ee0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c n.class="tok-kw">return</span>.<
41f00 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e span.class="tok-kw">error</span>
41f20 2e 4f 76 65 72 66 6c 6f 77 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 .Overflow;.........}.....}......
41f40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 <span.class="tok-kw">return</spa
41f60 6e 3e 20 78 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e n>.x;.}..<span.class="tok-kw">fn
41f80 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 63 68 61 </span>.<span.class="tok-fn">cha
41fa0 72 54 6f 44 69 67 69 74 3c 2f 73 70 61 6e 3e 28 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 rToDigit</span>(c:.<span.class="
41fc0 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-type">u8</span>).<span.class
41fe0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 ="tok-type">u8</span>.{.....<spa
42000 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c n.class="tok-kw">return</span>.<
42020 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e span.class="tok-kw">switch</span
42040 3e 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >.(c).{.........<span.class="tok
42060 2d 73 74 72 22 3e 27 30 27 3c 2f 73 70 61 6e 3e 20 2e 2e 2e 20 3c 73 70 61 6e 20 63 6c 61 73 73 -str">'0'</span>.....<span.class
42080 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 39 27 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 63 20 2d 20 ="tok-str">'9'</span>.=&gt;.c.-.
420a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 30 27 3c 2f 73 70 61 6e 3e <span.class="tok-str">'0'</span>
420c0 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e ,.........<span.class="tok-str">
420e0 27 41 27 3c 2f 73 70 61 6e 3e 20 2e 2e 2e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 'A'</span>.....<span.class="tok-
42100 73 74 72 22 3e 27 5a 27 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 63 20 2d 20 3c 73 70 61 6e 20 str">'Z'</span>.=&gt;.c.-.<span.
42120 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 41 27 3c 2f 73 70 61 6e 3e 20 2b 20 3c 73 70 class="tok-str">'A'</span>.+.<sp
42140 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 2c an.class="tok-number">10</span>,
42160 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 .........<span.class="tok-str">'
42180 61 27 3c 2f 73 70 61 6e 3e 20 2e 2e 2e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 a'</span>.....<span.class="tok-s
421a0 74 72 22 3e 27 7a 27 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 63 20 2d 20 3c 73 70 61 6e 20 63 tr">'z'</span>.=&gt;.c.-.<span.c
421c0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 61 27 3c 2f 73 70 61 6e 3e 20 2b 20 3c 73 70 61 lass="tok-str">'a'</span>.+.<spa
421e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 2c 0a n.class="tok-number">10</span>,.
42200 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 ........<span.class="tok-kw">els
42220 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 6d 61 78 49 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 e</span>.=&gt;.maxInt(<span.clas
42240 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 7d 3b 0a s="tok-type">u8</span>),.....};.
42260 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 }..<span.class="tok-kw">test</sp
42280 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b an>.<span.class="tok-str">&quot;
422a0 70 61 72 73 65 20 75 36 34 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 parse.u64&quot;</span>.{.....<sp
422c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 an.class="tok-kw">const</span>.r
422e0 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 esult.=.<span.class="tok-kw">try
42300 3c 2f 73 70 61 6e 3e 20 70 61 72 73 65 55 36 34 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.parseU64(<span.class="to
42320 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 31 32 33 34 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 k-str">&quot;1234&quot;</span>,.
42340 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 <span.class="tok-number">10</spa
42360 6e 3e 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 72 65 73 75 6c 74 n>);.....std.debug.assert(result
42380 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 .==.<span.class="tok-number">123
423a0 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 4</span>);.}</code></pre><pre><c
423c0 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
423e0 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 61 72 73 65 20 75 36 34 26 71 t.zig.1/1.test.&quot;parse.u64&q
42400 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f uot;...OK.All.tests.passed..</co
42420 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 69 63 de></pre>........<p>.......Notic
42440 65 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 e.the.return.type.is.<code.class
42460 3d 22 7a 69 67 22 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 ="zig">!<span.class="tok-type">u
42480 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 64</span></code>..This.means.tha
424a0 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 65 69 74 68 65 72 20 72 65 74 75 t.the.function.......either.retu
424c0 72 6e 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 36 34 20 62 69 74 20 69 6e 74 65 67 65 72 2c 20 rns.an.unsigned.64.bit.integer,.
424e0 6f 72 20 61 6e 20 65 72 72 6f 72 2e 20 57 65 20 6c 65 66 74 20 6f 66 66 20 74 68 65 20 65 72 72 or.an.error..We.left.off.the.err
42500 6f 72 20 73 65 74 0a 20 20 20 20 20 20 74 6f 20 74 68 65 20 6c 65 66 74 20 6f 66 20 74 68 65 20 or.set.......to.the.left.of.the.
42520 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 21 3c 2f 63 6f 64 65 3e 2c 20 73 6f 20 74 <code.class="zig">!</code>,.so.t
42540 68 65 20 65 72 72 6f 72 20 73 65 74 20 69 73 20 69 6e 66 65 72 72 65 64 2e 0a 20 20 20 20 20 20 he.error.set.is.inferred........
42560 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 69 74 68 69 6e 20 74 68 65 20 </p>.......<p>.......Within.the.
42580 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 79 6f 75 20 63 61 6e 20 73 65 65 function.definition,.you.can.see
425a0 20 73 6f 6d 65 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 73 20 74 68 61 74 20 72 65 74 .some.return.statements.that.ret
425c0 75 72 6e 0a 20 20 20 20 20 20 61 6e 20 65 72 72 6f 72 2c 20 61 6e 64 20 61 74 20 74 68 65 20 62 urn.......an.error,.and.at.the.b
425e0 6f 74 74 6f 6d 20 61 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20 74 68 61 74 20 72 65 ottom.a.return.statement.that.re
42600 74 75 72 6e 73 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 turns.a.<code.class="zig"><span.
42620 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 class="tok-type">u64</span></cod
42640 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 42 6f 74 68 20 74 79 70 65 73 20 3c 61 20 68 72 65 66 e>............Both.types.<a.href
42660 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 ="#Implicit-Casts">implicitly.ca
42680 73 74 3c 2f 61 3e 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 st</a>.to.<code.class="zig"><spa
426a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 n.class="tok-type">anyerror</spa
426c0 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 n>!<span.class="tok-type">u64</s
426e0 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 pan></code>........</p>.......<p
42700 3e 0a 20 20 20 20 20 20 57 68 61 74 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 6f 20 75 73 >.......What.it.looks.like.to.us
42720 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 76 61 72 69 65 73 20 64 65 70 65 6e 64 69 6e 67 e.this.function.varies.depending
42740 20 6f 6e 20 77 68 61 74 20 79 6f 75 27 72 65 0a 20 20 20 20 20 20 74 72 79 69 6e 67 20 74 6f 20 .on.what.you're.......trying.to.
42760 64 6f 2e 20 4f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 20 20 20 20 20 20 do..One.of.the.following:.......
42780 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 59 6f 75 20 </p>.......<ul>.........<li>You.
427a0 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 want.to.provide.a.default.value.
427c0 69 66 20 69 74 20 72 65 74 75 72 6e 65 64 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 if.it.returned.an.error.</li>...
427e0 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 69 74 20 72 65 74 75 72 6e 65 64 20 61 6e 20 65 72 72 6f ......<li>If.it.returned.an.erro
42800 72 20 74 68 65 6e 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 73 61 r.then.you.want.to.return.the.sa
42820 6d 65 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 59 6f 75 20 6b me.error.</li>.........<li>You.k
42840 6e 6f 77 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 65 20 63 65 72 74 61 69 6e 74 79 20 69 74 20 77 now.with.complete.certainty.it.w
42860 69 6c 6c 20 6e 6f 74 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 2c 20 73 6f 20 77 61 6e 74 ill.not.return.an.error,.so.want
42880 20 74 6f 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 75 6e 77 72 61 70 20 69 74 2e 3c 2f .to.unconditionally.unwrap.it.</
428a0 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 59 6f 75 20 77 61 6e 74 20 74 6f 20 74 61 6b 65 li>.........<li>You.want.to.take
428c0 20 61 20 64 69 66 66 65 72 65 6e 74 20 61 63 74 69 6f 6e 20 66 6f 72 20 65 61 63 68 20 70 6f 73 .a.different.action.for.each.pos
428e0 73 69 62 6c 65 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 sible.error.</li>.......</ul>...
42900 20 20 20 20 3c 68 33 20 69 64 3d 22 63 61 74 63 68 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 ....<h3.id="catch"><a.href="#toc
42920 2d 63 61 74 63 68 22 3e 63 61 74 63 68 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 -catch">catch</a>.<a.class="hdr"
42940 20 68 72 65 66 3d 22 23 63 61 74 63 68 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 .href="#catch">..</a></h3>......
42960 20 20 3c 70 3e 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 64 65 ..<p>If.you.want.to.provide.a.de
42980 66 61 75 6c 74 20 76 61 6c 75 65 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 20 3c 63 6f fault.value,.you.can.use.the.<co
429a0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
429c0 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 69 6e 61 72 79 20 6f kw">catch</span></code>.binary.o
429e0 70 65 72 61 74 6f 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c perator:</p>.......<pre><code.cl
42a00 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 ass="zig"><span.class="tok-kw">f
42a20 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 6f n</span>.<span.class="tok-fn">do
42a40 41 54 68 69 6e 67 3c 2f 73 70 61 6e 3e 28 73 74 72 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 AThing</span>(str:.[]<span.class
42a60 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 ="tok-type">u8</span>).<span.cla
42a80 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 ss="tok-type">void</span>.{.....
42aa0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
42ac0 3e 20 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 3c 73 70 61 6e 20 63 >.number.=.parseU64(str,.<span.c
42ae0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 lass="tok-number">10</span>).<sp
42b00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 3c an.class="tok-kw">catch</span>.<
42b20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 33 3c 2f 73 70 61 6e span.class="tok-number">13</span
42b40 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 >;.....<span.class="tok-comment"
42b60 3e 2f 2f 20 2e 2e 2e 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 >//....</span>.}</code></pre>...
42b80 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 63 6f 64 65 2c 20 3c 63 6f 64 ....<p>.......In.this.code,.<cod
42ba0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6e 75 6d 62 65 72 3c 2f 63 6f 64 65 3e 20 77 69 6c 6c e.class="zig">number</code>.will
42bc0 20 62 65 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 70 61 .be.equal.to.the.successfully.pa
42be0 72 73 65 64 20 73 74 72 69 6e 67 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 61 20 64 65 66 61 rsed.string,.or...........a.defa
42c00 75 6c 74 20 76 61 6c 75 65 20 6f 66 20 31 33 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 ult.value.of.13..The.type.of.the
42c20 20 72 69 67 68 74 20 68 61 6e 64 20 73 69 64 65 20 6f 66 20 74 68 65 20 62 69 6e 61 72 79 20 3c .right.hand.side.of.the.binary.<
42c40 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
42c60 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 70 65 72 61 74 k-kw">catch</span></code>.operat
42c80 6f 72 20 6d 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 74 68 65 20 or.must...............match.the.
42ca0 75 6e 77 72 61 70 70 65 64 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 2c 20 6f 72 20 62 unwrapped.error.union.type,.or.b
42cc0 65 20 6f 66 20 74 79 70 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 e.of.type.<code.class="zig"><spa
42ce0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 n.class="tok-type">noreturn</spa
42d00 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 n></code>........</p>...........
42d20 20 20 20 3c 68 33 20 69 64 3d 22 74 72 79 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 74 72 ...<h3.id="try"><a.href="#toc-tr
42d40 79 22 3e 74 72 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 y">try</a>.<a.class="hdr".href="
42d60 23 74 72 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 4c 65 74 27 #try">..</a></h3>........<p>Let'
42d80 73 20 73 61 79 20 79 6f 75 20 77 61 6e 74 65 64 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 65 s.say.you.wanted.to.return.the.e
42da0 72 72 6f 72 20 69 66 20 79 6f 75 20 67 6f 74 20 6f 6e 65 2c 20 6f 74 68 65 72 77 69 73 65 20 63 rror.if.you.got.one,.otherwise.c
42dc0 6f 6e 74 69 6e 75 65 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 ontinue.with.the.......function.
42de0 6c 6f 67 69 63 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 logic:</p>.......<pre><code.clas
42e00 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c s="zig"><span.class="tok-kw">fn<
42e20 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 6f 41 54 /span>.<span.class="tok-fn">doAT
42e40 68 69 6e 67 3c 2f 73 70 61 6e 3e 28 73 74 72 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 hing</span>(str:.[]<span.class="
42e60 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 tok-type">u8</span>).!<span.clas
42e80 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c s="tok-type">void</span>.{.....<
42ea0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
42ec0 20 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 3c 73 70 61 6e 20 63 6c .number.=.parseU64(str,.<span.cl
42ee0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 ass="tok-number">10</span>).<spa
42f00 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 7c 65 n.class="tok-kw">catch</span>.|e
42f20 72 72 7c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c rr|.<span.class="tok-kw">return<
42f40 2f 73 70 61 6e 3e 20 65 72 72 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /span>.err;.....<span.class="tok
42f60 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 2e 2e 2e 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e -comment">//....</span>.}</code>
42f80 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 69 73 20 </pre>.......<p>.......There.is.
42fa0 61 20 73 68 6f 72 74 63 75 74 20 66 6f 72 20 74 68 69 73 2e 20 54 68 65 20 3c 63 6f 64 65 20 63 a.shortcut.for.this..The.<code.c
42fc0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
42fe0 74 72 79 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 try</span></code>.expression:...
43000 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d ....</p>.......<pre><code.class=
43020 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 "zig"><span.class="tok-kw">fn</s
43040 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 6f 41 54 68 69 pan>.<span.class="tok-fn">doAThi
43060 6e 67 3c 2f 73 70 61 6e 3e 28 73 74 72 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ng</span>(str:.[]<span.class="to
43080 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-type">u8</span>).!<span.class=
430a0 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 "tok-type">void</span>.{.....<sp
430c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e an.class="tok-kw">const</span>.n
430e0 75 6d 62 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 umber.=.<span.class="tok-kw">try
43100 3c 2f 73 70 61 6e 3e 20 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 </span>.parseU64(str,.<span.clas
43120 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c s="tok-number">10</span>);.....<
43140 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 2e 2e 2e 3c span.class="tok-comment">//....<
43160 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a /span>.}</code></pre>.......<p>.
43180 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ......<code.class="zig"><span.cl
431a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 ass="tok-kw">try</span></code>.e
431c0 76 61 6c 75 61 74 65 73 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 65 78 70 72 65 73 73 69 valuates.an.error.union.expressi
431e0 6f 6e 2e 20 49 66 20 69 74 20 69 73 20 61 6e 20 65 72 72 6f 72 2c 20 69 74 20 72 65 74 75 72 6e on..If.it.is.an.error,.it.return
43200 73 0a 20 20 20 20 20 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 6f s.......from.the.current.functio
43220 6e 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 65 72 72 6f 72 2e 20 4f 74 68 65 72 77 69 73 65 n.with.the.same.error..Otherwise
43240 2c 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 6e 0a 20 20 20 20 ,.the.expression.results.in.....
43260 20 20 74 68 65 20 75 6e 77 72 61 70 70 65 64 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 ..the.unwrapped.value........</p
43280 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 4d 61 79 62 65 >..............<p>.........Maybe
432a0 20 79 6f 75 20 6b 6e 6f 77 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 65 20 63 65 72 74 61 69 6e 74 .you.know.with.complete.certaint
432c0 79 20 74 68 61 74 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 6c 6c 20 6e 65 76 65 72 20 y.that.an.expression.will.never.
432e0 62 65 20 61 6e 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 63 61 73 be.an.error..........In.this.cas
43300 65 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 e.you.can.do.this:.......</p>...
43320 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
43340 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d .class="tok-kw">const</span>.num
43360 62 65 72 20 3d 20 70 61 72 73 65 55 36 34 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ber.=.parseU64(<span.class="tok-
43380 73 74 72 22 3e 26 71 75 6f 74 3b 31 32 33 34 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 str">&quot;1234&quot;</span>,.<s
433a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e pan.class="tok-number">10</span>
433c0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 ).<span.class="tok-kw">catch</sp
433e0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 an>.<span.class="tok-kw">unreach
43400 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 able</span>;</code></pre>.......
43420 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 20 77 65 20 6b 6e 6f 77 20 66 6f 72 20 73 75 72 65 20 <p>.......Here.we.know.for.sure.
43440 74 68 61 74 20 22 31 32 33 34 22 20 77 69 6c 6c 20 70 61 72 73 65 20 73 75 63 63 65 73 73 66 75 that."1234".will.parse.successfu
43460 6c 6c 79 2e 20 53 6f 20 77 65 20 70 75 74 20 74 68 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 lly..So.we.put.the.......<code.c
43480 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
434a0 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 76 61 6c 75 65 20 unreachable</span></code>.value.
434c0 6f 6e 20 74 68 65 20 72 69 67 68 74 20 68 61 6e 64 20 73 69 64 65 2e 20 3c 63 6f 64 65 20 63 6c on.the.right.hand.side..<code.cl
434e0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 ass="zig"><span.class="tok-kw">u
43500 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 67 65 6e 65 72 61 74 nreachable</span></code>.generat
43520 65 73 0a 20 20 20 20 20 20 61 20 70 61 6e 69 63 20 69 6e 20 44 65 62 75 67 20 61 6e 64 20 52 65 es.......a.panic.in.Debug.and.Re
43540 6c 65 61 73 65 53 61 66 65 20 6d 6f 64 65 73 20 61 6e 64 20 75 6e 64 65 66 69 6e 65 64 20 62 65 leaseSafe.modes.and.undefined.be
43560 68 61 76 69 6f 72 20 69 6e 20 52 65 6c 65 61 73 65 46 61 73 74 20 6d 6f 64 65 2e 20 53 6f 2c 20 havior.in.ReleaseFast.mode..So,.
43580 77 68 69 6c 65 20 77 65 27 72 65 20 64 65 62 75 67 67 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 while.we're.debugging.the.......
435a0 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 69 66 20 74 68 65 72 65 20 3c 65 6d 3e 77 61 73 3c 2f 65 application,.if.there.<em>was</e
435c0 6d 3e 20 61 20 73 75 72 70 72 69 73 65 20 65 72 72 6f 72 20 68 65 72 65 2c 20 74 68 65 20 61 70 m>.a.surprise.error.here,.the.ap
435e0 70 6c 69 63 61 74 69 6f 6e 20 77 6f 75 6c 64 20 63 72 61 73 68 0a 20 20 20 20 20 20 61 70 70 72 plication.would.crash.......appr
43600 6f 70 72 69 61 74 65 6c 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a opriately........</p>.......<p>.
43620 20 20 20 20 20 20 46 69 6e 61 6c 6c 79 2c 20 79 6f 75 20 6d 61 79 20 77 61 6e 74 20 74 6f 20 74 ......Finally,.you.may.want.to.t
43640 61 6b 65 20 61 20 64 69 66 66 65 72 65 6e 74 20 61 63 74 69 6f 6e 20 66 6f 72 20 65 76 65 72 79 ake.a.different.action.for.every
43660 20 73 69 74 75 61 74 69 6f 6e 2e 20 46 6f 72 20 74 68 61 74 2c 20 77 65 20 63 6f 6d 62 69 6e 65 .situation..For.that,.we.combine
43680 0a 20 20 20 20 20 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 20 .......the.<a.href="#if">if</a>.
436a0 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e and.<a.href="#switch">switch</a>
436c0 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 .expression:.......</p>.......<p
436e0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
43700 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="tok-kw">fn</span>.<span.class=
43720 22 74 6f 6b 2d 66 6e 22 3e 64 6f 41 54 68 69 6e 67 3c 2f 73 70 61 6e 3e 28 73 74 72 3a 20 5b 5d "tok-fn">doAThing</span>(str:.[]
43740 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
43760 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 ).<span.class="tok-type">void</s
43780 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
437a0 69 66 3c 2f 73 70 61 6e 3e 20 28 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 3c 73 70 61 6e 20 63 if</span>.(parseU64(str,.<span.c
437c0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 29 20 7c 6e lass="tok-number">10</span>)).|n
437e0 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 64 6f 53 6f 6d 65 74 68 69 6e 67 57 69 74 68 umber|.{.........doSomethingWith
43800 4e 75 6d 62 65 72 28 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 Number(number);.....}.<span.clas
43820 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 3c 73 70 s="tok-kw">else</span>.|err|.<sp
43840 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 an.class="tok-kw">switch</span>.
43860 28 65 72 72 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b (err).{.........<span.class="tok
43880 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4f 76 65 72 66 6c 6f 77 20 3d 26 67 74 3b -kw">error</span>.Overflow.=&gt;
438a0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .{.............<span.class="tok-
438c0 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 68 61 6e 64 6c 65 20 6f 76 65 72 66 6c 6f 77 2e 2e 2e 3c 2f comment">//.handle.overflow...</
438e0 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 span>.........},.........<span.c
43900 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 77 65 20 70 72 6f 6d 69 73 65 lass="tok-comment">//.we.promise
43920 20 74 68 61 74 20 49 6e 76 61 6c 69 64 43 68 61 72 20 77 6f 6e 27 74 20 68 61 70 70 65 6e 20 28 .that.InvalidChar.won't.happen.(
43940 6f 72 20 63 72 61 73 68 20 69 6e 20 64 65 62 75 67 20 6d 6f 64 65 20 69 66 20 69 74 20 64 6f 65 or.crash.in.debug.mode.if.it.doe
43960 73 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 s)</span>.........<span.class="t
43980 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 49 6e 76 61 6c 69 64 43 68 61 72 20 ok-kw">error</span>.InvalidChar.
439a0 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 =&gt;.<span.class="tok-kw">unrea
439c0 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 chable</span>,.....}.}</code></p
439e0 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 65 72 72 64 65 66 65 72 22 3e 3c 61 20 68 re>.......<h3.id="errdefer"><a.h
43a00 72 65 66 3d 22 23 74 6f 63 2d 65 72 72 64 65 66 65 72 22 3e 65 72 72 64 65 66 65 72 3c 2f 61 3e ref="#toc-errdefer">errdefer</a>
43a20 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 72 72 64 65 66 65 72 22 .<a.class="hdr".href="#errdefer"
43a40 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 >..</a></h3>........<p>.......Th
43a60 65 20 6f 74 68 65 72 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 6f 20 65 72 72 6f 72 20 68 61 6e 64 6c e.other.component.to.error.handl
43a80 69 6e 67 20 69 73 20 64 65 66 65 72 20 73 74 61 74 65 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 49 ing.is.defer.statements........I
43aa0 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 61 6e 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 3c n.addition.to.an.unconditional.<
43ac0 61 20 68 72 65 66 3d 22 23 64 65 66 65 72 22 3e 64 65 66 65 72 3c 2f 61 3e 2c 20 5a 69 67 20 68 a.href="#defer">defer</a>,.Zig.h
43ae0 61 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 as.<code.class="zig"><span.class
43b00 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ="tok-kw">errdefer</span></code>
43b20 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 65 76 61 6c 75 61 74 65 73 20 74 68 65 20 64 65 66 65 ,.......which.evaluates.the.defe
43b40 72 72 65 64 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 6e 20 62 6c 6f 63 6b 20 65 78 69 74 20 70 61 rred.expression.on.block.exit.pa
43b60 74 68 20 69 66 20 61 6e 64 20 6f 6e 6c 79 20 69 66 0a 20 20 20 20 20 20 74 68 65 20 66 75 6e 63 th.if.and.only.if.......the.func
43b80 74 69 6f 6e 20 72 65 74 75 72 6e 65 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 66 72 6f 6d tion.returned.with.an.error.from
43ba0 20 74 68 65 20 62 6c 6f 63 6b 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e .the.block........</p>.......<p>
43bc0 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 .......Example:.......</p>......
43be0 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .<pre><code.class="zig"><span.cl
43c00 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
43c20 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 63 72 65 61 74 65 46 6f 6f 3c 2f 73 70 61 6e 3e 28 70 61 72 ss="tok-fn">createFoo</span>(par
43c40 61 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f am:.<span.class="tok-type">i32</
43c60 73 70 61 6e 3e 29 20 21 46 6f 6f 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>).!Foo.{.....<span.class="t
43c80 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 6f 6f 20 3d 20 3c 73 70 61 6e 20 ok-kw">const</span>.foo.=.<span.
43ca0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 74 72 79 54 6f 41 class="tok-kw">try</span>.tryToA
43cc0 6c 6c 6f 63 61 74 65 46 6f 6f 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 llocateFoo();.....<span.class="t
43ce0 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6e 6f 77 20 77 65 20 68 61 76 65 20 61 6c 6c 6f 63 ok-comment">//.now.we.have.alloc
43d00 61 74 65 64 20 66 6f 6f 2e 20 77 65 20 6e 65 65 64 20 74 6f 20 66 72 65 65 20 69 74 20 69 66 20 ated.foo..we.need.to.free.it.if.
43d20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 66 61 69 6c 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c the.function.fails.</span>.....<
43d40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 62 75 74 20 span.class="tok-comment">//.but.
43d60 77 65 20 77 61 6e 74 20 74 6f 20 72 65 74 75 72 6e 20 69 74 20 69 66 20 74 68 65 20 66 75 6e 63 we.want.to.return.it.if.the.func
43d80 74 69 6f 6e 20 73 75 63 63 65 65 64 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 tion.succeeds.</span>.....<span.
43da0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 64 class="tok-kw">errdefer</span>.d
43dc0 65 61 6c 6c 6f 63 61 74 65 46 6f 6f 28 66 6f 6f 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c eallocateFoo(foo);......<span.cl
43de0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 74 6d 70 5f 62 75 ass="tok-kw">const</span>.tmp_bu
43e00 66 20 3d 20 61 6c 6c 6f 63 61 74 65 54 6d 70 42 75 66 66 65 72 28 29 20 3c 73 70 61 6e 20 63 6c f.=.allocateTmpBuffer().<span.cl
43e20 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e ass="tok-kw">orelse</span>.<span
43e40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 .class="tok-kw">return</span>.<s
43e60 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e pan.class="tok-kw">error</span>.
43e80 4f 75 74 4f 66 4d 65 6d 6f 72 79 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f OutOfMemory;.....<span.class="to
43ea0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 6d 70 5f 62 75 66 20 69 73 20 74 72 75 6c 79 20 61 k-comment">//.tmp_buf.is.truly.a
43ec0 20 74 65 6d 70 6f 72 61 72 79 20 72 65 73 6f 75 72 63 65 2c 20 61 6e 64 20 77 65 20 66 6f 72 20 .temporary.resource,.and.we.for.
43ee0 73 75 72 65 20 77 61 6e 74 20 74 6f 20 63 6c 65 61 6e 20 69 74 20 75 70 3c 2f 73 70 61 6e 3e 0a sure.want.to.clean.it.up</span>.
43f00 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f ....<span.class="tok-comment">//
43f20 20 62 65 66 6f 72 65 20 74 68 69 73 20 62 6c 6f 63 6b 20 6c 65 61 76 65 73 20 73 63 6f 70 65 3c .before.this.block.leaves.scope<
43f40 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e /span>.....<span.class="tok-kw">
43f60 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 64 65 61 6c 6c 6f 63 61 74 65 54 6d 70 42 75 66 66 65 72 defer</span>.deallocateTmpBuffer
43f80 28 74 6d 70 5f 62 75 66 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b (tmp_buf);......<span.class="tok
43fa0 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 70 61 72 61 6d 20 26 67 74 3b 20 3c 73 70 61 6e -kw">if</span>.(param.&gt;.<span
43fc0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 33 33 37 3c 2f 73 70 61 6e 3e 29 .class="tok-number">1337</span>)
43fe0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 .<span.class="tok-kw">return</sp
44000 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f an>.<span.class="tok-kw">error</
44020 73 70 61 6e 3e 2e 49 6e 76 61 6c 69 64 50 61 72 61 6d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 span>.InvalidParam;......<span.c
44040 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 68 65 72 65 20 74 68 65 20 65 lass="tok-comment">//.here.the.e
44060 72 72 64 65 66 65 72 20 77 69 6c 6c 20 6e 6f 74 20 72 75 6e 20 73 69 6e 63 65 20 77 65 27 72 65 rrdefer.will.not.run.since.we're
44080 20 72 65 74 75 72 6e 69 6e 67 20 73 75 63 63 65 73 73 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 .returning.success.from.the.func
440a0 74 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f tion.</span>.....<span.class="to
440c0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 62 75 74 20 74 68 65 20 64 65 66 65 72 20 77 69 6c 6c k-comment">//.but.the.defer.will
440e0 20 72 75 6e 21 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .run!</span>.....<span.class="to
44100 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 6f 6f 3b 0a 7d 3c 2f 63 6f 64 65 k-kw">return</span>.foo;.}</code
44120 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6e 65 61 74 ></pre>.......<p>.......The.neat
44140 20 74 68 69 6e 67 20 61 62 6f 75 74 20 74 68 69 73 20 69 73 20 74 68 61 74 20 79 6f 75 20 67 65 .thing.about.this.is.that.you.ge
44160 74 20 72 6f 62 75 73 74 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 77 69 74 68 6f 75 74 0a t.robust.error.handling.without.
44180 20 20 20 20 20 20 74 68 65 20 76 65 72 62 6f 73 69 74 79 20 61 6e 64 20 63 6f 67 6e 69 74 69 76 ......the.verbosity.and.cognitiv
441a0 65 20 6f 76 65 72 68 65 61 64 20 6f 66 20 74 72 79 69 6e 67 20 74 6f 20 6d 61 6b 65 20 73 75 72 e.overhead.of.trying.to.make.sur
441c0 65 20 65 76 65 72 79 20 65 78 69 74 20 70 61 74 68 0a 20 20 20 20 20 20 69 73 20 63 6f 76 65 72 e.every.exit.path.......is.cover
441e0 65 64 2e 20 54 68 65 20 64 65 61 6c 6c 6f 63 61 74 69 6f 6e 20 63 6f 64 65 20 69 73 20 61 6c 77 ed..The.deallocation.code.is.alw
44200 61 79 73 20 64 69 72 65 63 74 6c 79 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 61 6c 6c 6f 63 ays.directly.following.the.alloc
44220 61 74 69 6f 6e 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 ation.code........</p>..........
44240 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 63 6f 75 70 6c 65 20 6f 66 20 6f 74 68 65 72 20 ....<p>.......A.couple.of.other.
44260 74 69 64 62 69 74 73 20 61 62 6f 75 74 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 3a 0a 20 20 tidbits.about.error.handling:...
44280 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e ....</p>.......<ul>.........<li>
442a0 54 68 65 73 65 20 70 72 69 6d 69 74 69 76 65 73 20 67 69 76 65 20 65 6e 6f 75 67 68 20 65 78 70 These.primitives.give.enough.exp
442c0 72 65 73 73 69 76 65 6e 65 73 73 20 74 68 61 74 20 69 74 27 73 20 63 6f 6d 70 6c 65 74 65 6c 79 ressiveness.that.it's.completely
442e0 20 70 72 61 63 74 69 63 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 68 61 76 65 20 66 .practical.............to.have.f
44300 61 69 6c 69 6e 67 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 20 61 6e 20 65 72 72 6f 72 20 62 65 20 ailing.to.check.for.an.error.be.
44320 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 20 49 66 20 79 6f 75 20 72 65 61 6c 6c 79 20 77 a.compile.error..If.you.really.w
44340 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 69 67 6e 6f 72 65 20 74 68 65 20 65 72 ant.............to.ignore.the.er
44360 72 6f 72 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ror,.you.can.add.<code.class="zi
44380 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 g"><span.class="tok-kw">catch</s
443a0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 pan>.<span.class="tok-kw">unreac
443c0 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 20 20 hable</span></code>.and.........
443e0 20 20 20 20 67 65 74 20 74 68 65 20 61 64 64 65 64 20 62 65 6e 65 66 69 74 20 6f 66 20 63 72 61 ....get.the.added.benefit.of.cra
44400 73 68 69 6e 67 20 69 6e 20 44 65 62 75 67 20 61 6e 64 20 52 65 6c 65 61 73 65 53 61 66 65 20 6d shing.in.Debug.and.ReleaseSafe.m
44420 6f 64 65 73 20 69 66 20 79 6f 75 72 20 61 73 73 75 6d 70 74 69 6f 6e 20 77 61 73 20 77 72 6f 6e odes.if.your.assumption.was.wron
44440 67 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 g..........</li>.........<li>...
44460 20 20 20 20 20 20 20 20 53 69 6e 63 65 20 5a 69 67 20 75 6e 64 65 72 73 74 61 6e 64 73 20 65 72 ........Since.Zig.understands.er
44480 72 6f 72 20 74 79 70 65 73 2c 20 69 74 20 63 61 6e 20 70 72 65 2d 77 65 69 67 68 74 20 62 72 61 ror.types,.it.can.pre-weight.bra
444a0 6e 63 68 65 73 20 69 6e 20 66 61 76 6f 72 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f nches.in.favor.of...........erro
444c0 72 73 20 6e 6f 74 20 6f 63 63 75 72 72 69 6e 67 2e 20 4a 75 73 74 20 61 20 73 6d 61 6c 6c 20 6f rs.not.occurring..Just.a.small.o
444e0 70 74 69 6d 69 7a 61 74 69 6f 6e 20 62 65 6e 65 66 69 74 20 74 68 61 74 20 69 73 20 6e 6f 74 20 ptimization.benefit.that.is.not.
44500 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 69 6e 20 6f 74 68 65 72 20 6c 61 6e available...........in.other.lan
44520 67 75 61 67 65 73 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c guages..........</li>.......</ul
44540 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 >.......<p>See.also:</p><ul>.<li
44560 3e 3c 61 20 68 72 65 66 3d 22 23 64 65 66 65 72 22 3e 64 65 66 65 72 3c 2f 61 3e 3c 2f 6c 69 3e ><a.href="#defer">defer</a></li>
44580 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c .<li><a.href="#if">if</a></li>.<
445a0 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 3c li><a.href="#switch">switch</a><
445c0 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e 20 65 72 72 6f 72 20 75 /li>.</ul>.........<p>An.error.u
445e0 6e 69 6f 6e 20 69 73 20 63 72 65 61 74 65 64 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 20 63 nion.is.created.with.the.<code.c
44600 6c 61 73 73 3d 22 7a 69 67 22 3e 21 3c 2f 63 6f 64 65 3e 20 62 69 6e 61 72 79 20 6f 70 65 72 61 lass="zig">!</code>.binary.opera
44620 74 6f 72 2e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 75 73 65 20 63 6f 6d 70 69 6c 65 2d 74 tor........You.can.use.compile-t
44640 69 6d 65 20 72 65 66 6c 65 63 74 69 6f 6e 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 63 68 69 ime.reflection.to.access.the.chi
44660 6c 64 20 74 79 70 65 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 3a 3c 2f 70 3e 0a 20 ld.type.of.an.error.union:</p>..
44680 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 .....<p.class="file">test.zig</p
446a0 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ><pre><code.class="zig"><span.cl
446c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 ass="tok-kw">const</span>.assert
446e0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d .=.<span.class="tok-builtin">@im
44700 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 port</span>(<span.class="tok-str
44720 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e ">&quot;std&quot;</span>).debug.
44740 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 assert;..<span.class="tok-kw">te
44760 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e st</span>.<span.class="tok-str">
44780 26 71 75 6f 74 3b 65 72 72 6f 72 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b &quot;error.union&quot;</span>.{
447a0 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 .....<span.class="tok-kw">var</s
447c0 70 61 6e 3e 20 66 6f 6f 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 pan>.foo:.<span.class="tok-type"
447e0 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >anyerror</span>!<span.class="to
44800 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-type">i32</span>.=.<span.class
44820 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 ="tok-null">undefined</span>;...
44840 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 ...<span.class="tok-comment">//.
44860 49 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 66 72 6f 6d 20 63 68 69 6c 64 20 74 79 70 65 20 Implicitly.cast.from.child.type.
44880 6f 66 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 6f of.an.error.union:</span>.....fo
448a0 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 o.=.<span.class="tok-number">123
448c0 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 4</span>;......<span.class="tok-
448e0 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 66 72 6f 6d comment">//.Implicitly.cast.from
44900 20 61 6e 20 65 72 72 6f 72 20 73 65 74 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 6f 6f 20 3d 20 .an.error.set:</span>.....foo.=.
44920 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e <span.class="tok-kw">error</span
44940 3e 2e 53 6f 6d 65 45 72 72 6f 72 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >.SomeError;......<span.class="t
44960 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 55 73 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 ok-comment">//.Use.compile-time.
44980 72 65 66 6c 65 63 74 69 6f 6e 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 70 61 79 6c 6f 61 64 reflection.to.access.the.payload
449a0 20 74 79 70 65 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 3a 3c 2f 73 70 61 6e 3e 0a .type.of.an.error.union:</span>.
449c0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d ....<span.class="tok-kw">comptim
449e0 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e</span>.assert(<span.class="tok
44a00 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 66 6f 6f 29 2e 50 61 -builtin">@typeOf</span>(foo).Pa
44a20 79 6c 6f 61 64 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e yload.==.<span.class="tok-type">
44a40 69 33 32 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 i32</span>);......<span.class="t
44a60 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 55 73 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 ok-comment">//.Use.compile-time.
44a80 72 65 66 6c 65 63 74 69 6f 6e 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 65 72 72 6f 72 20 73 reflection.to.access.the.error.s
44aa0 65 74 20 74 79 70 65 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 3a 3c 2f 73 70 61 6e et.type.of.an.error.union:</span
44ac0 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 >.....<span.class="tok-kw">compt
44ae0 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ime</span>.assert(<span.class="t
44b00 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 66 6f 6f 29 2e ok-builtin">@typeOf</span>(foo).
44b20 45 72 72 6f 72 53 65 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 ErrorSet.==.<span.class="tok-typ
44b40 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 e">anyerror</span>);.}</code></p
44b60 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
44b80 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 65 g.test.test.zig.1/1.test.&quot;e
44ba0 72 72 6f 72 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 rror.union&quot;...OK.All.tests.
44bc0 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 33 passed..</code></pre>........<h3
44be0 20 69 64 3d 22 4d 65 72 67 69 6e 67 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 3c 61 20 68 72 65 66 .id="Merging-Error-Sets"><a.href
44c00 3d 22 23 74 6f 63 2d 4d 65 72 67 69 6e 67 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 4d 65 72 67 69 ="#toc-Merging-Error-Sets">Mergi
44c20 6e 67 20 45 72 72 6f 72 20 53 65 74 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 ng.Error.Sets</a>.<a.class="hdr"
44c40 20 68 72 65 66 3d 22 23 4d 65 72 67 69 6e 67 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e c2 a7 3c 2f .href="#Merging-Error-Sets">..</
44c60 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 65 20 74 68 65 a></h3>........<p>.......Use.the
44c80 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 7c 7c 3c 2f 63 6f 64 65 3e 20 6f 70 65 .<code.class="zig">||</code>.ope
44ca0 72 61 74 6f 72 20 74 6f 20 6d 65 72 67 65 20 74 77 6f 20 65 72 72 6f 72 20 73 65 74 73 20 74 6f rator.to.merge.two.error.sets.to
44cc0 67 65 74 68 65 72 2e 20 54 68 65 20 72 65 73 75 6c 74 69 6e 67 0a 20 20 20 20 20 20 65 72 72 6f gether..The.resulting.......erro
44ce0 72 20 73 65 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 65 72 72 6f 72 73 20 6f 66 20 62 6f 74 r.set.contains.the.errors.of.bot
44d00 68 20 65 72 72 6f 72 20 73 65 74 73 2e 20 44 6f 63 20 63 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d 20 h.error.sets..Doc.comments.from.
44d20 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 0a 20 20 20 20 20 20 73 69 64 65 20 6f 76 65 72 72 69 64 the.left-hand.......side.overrid
44d40 65 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d 20 74 68 65 20 72 69 67 68 74 2d 68 61 e.doc.comments.from.the.right-ha
44d60 6e 64 20 73 69 64 65 2e 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 64 6f nd.side..In.this.example,.the.do
44d80 63 0a 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 20 66 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 c.......comments.for.<code.class
44da0 3d 22 7a 69 67 22 3e 43 2e 50 61 74 68 4e 6f 74 46 6f 75 6e 64 3c 2f 63 6f 64 65 3e 20 69 73 20 ="zig">C.PathNotFound</code>.is.
44dc0 3c 63 6f 64 65 3e 41 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 <code>A.doc.comment</code>......
44de0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 65 ..</p>.......<p>.......This.is.e
44e00 73 70 65 63 69 61 6c 6c 79 20 75 73 65 66 75 6c 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 73 20 77 specially.useful.for.functions.w
44e20 68 69 63 68 20 72 65 74 75 72 6e 20 64 69 66 66 65 72 65 6e 74 20 65 72 72 6f 72 20 73 65 74 73 hich.return.different.error.sets
44e40 20 64 65 70 65 6e 64 69 6e 67 0a 20 20 20 20 20 20 6f 6e 20 3c 61 20 68 72 65 66 3d 22 23 63 6f .depending.......on.<a.href="#co
44e60 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 20 62 72 61 6e 63 68 65 73 2e 20 46 mptime">comptime</a>.branches..F
44e80 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 5a 69 67 20 73 74 61 6e 64 61 72 64 20 6c 69 62 or.example,.the.Zig.standard.lib
44ea0 72 61 72 79 20 75 73 65 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 rary.uses.......<code.class="zig
44ec0 22 3e 4c 69 6e 75 78 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 20 7c 7c 20 57 69 6e 64 6f 77 73 46 ">LinuxFileOpenError.||.WindowsF
44ee0 69 6c 65 4f 70 65 6e 45 72 72 6f 72 3c 2f 63 6f 64 65 3e 20 66 6f 72 20 74 68 65 20 65 72 72 6f ileOpenError</code>.for.the.erro
44f00 72 20 73 65 74 20 6f 66 20 6f 70 65 6e 69 6e 67 0a 20 20 20 20 20 20 66 69 6c 65 73 2e 0a 20 20 r.set.of.opening.......files....
44f20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ....</p>.......<p.class="file">t
44f40 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
44f60 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
44f80 61 6e 3e 20 41 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 an>.A.=.<span.class="tok-kw">err
44fa0 6f 72 3c 2f 73 70 61 6e 3e 7b 0a 20 20 20 20 4e 6f 74 44 69 72 2c 0a 0a 20 20 20 20 3c 73 70 61 or</span>{.....NotDir,......<spa
44fc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 41 20 64 6f 63 20 n.class="tok-comment">///.A.doc.
44fe0 63 6f 6d 6d 65 6e 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 50 61 74 68 4e 6f 74 46 6f 75 6e 64 2c comment</span>.....PathNotFound,
45000 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f .};.<span.class="tok-kw">const</
45020 73 70 61 6e 3e 20 42 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 span>.B.=.<span.class="tok-kw">e
45040 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 0a 20 20 20 20 4f 75 74 4f 66 4d 65 6d 6f 72 79 2c 0a 0a 20 rror</span>{.....OutOfMemory,...
45060 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f ...<span.class="tok-comment">///
45080 20 42 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 50 61 74 68 4e 6f .B.doc.comment</span>.....PathNo
450a0 74 46 6f 75 6e 64 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 tFound,.};..<span.class="tok-kw"
450c0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 20 3d 20 41 20 7c 7c 20 42 3b 0a 0a 3c 73 70 61 6e >const</span>.C.=.A.||.B;..<span
450e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 .class="tok-kw">fn</span>.<span.
45100 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 29 20 43 21 3c 73 class="tok-fn">foo</span>().C!<s
45120 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e pan.class="tok-type">void</span>
45140 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 .{.....<span.class="tok-kw">retu
45160 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 rn</span>.<span.class="tok-kw">e
45180 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4e 6f 74 44 69 72 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 rror</span>.NotDir;.}..<span.cla
451a0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
451c0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6d 65 72 67 65 20 65 72 72 6f 72 20 ass="tok-str">&quot;merge.error.
451e0 73 65 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c sets&quot;</span>.{.....<span.cl
45200 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 66 6f 6f 28 29 29 20 7b ass="tok-kw">if</span>.(foo()).{
45220 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 .........<span.class="tok-builti
45240 6e 22 3e 40 70 61 6e 69 63 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f n">@panic</span>(<span.class="to
45260 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 6e 65 78 70 65 63 74 65 64 26 71 75 6f 74 3b 3c 2f 73 k-str">&quot;unexpected&quot;</s
45280 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 pan>);.....}.<span.class="tok-kw
452a0 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ">else</span>.|err|.<span.class=
452c0 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 65 72 72 29 20 7b 0a 20 "tok-kw">switch</span>.(err).{..
452e0 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f .......<span.class="tok-kw">erro
45300 72 3c 2f 73 70 61 6e 3e 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 20 3d 26 67 74 3b 20 3c 73 70 61 6e r</span>.OutOfMemory.=&gt;.<span
45320 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 61 6e 69 63 3c 2f 73 70 61 .class="tok-builtin">@panic</spa
45340 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 n>(<span.class="tok-str">&quot;u
45360 6e 65 78 70 65 63 74 65 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 20 20 20 nexpected&quot;</span>),........
45380 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 .<span.class="tok-kw">error</spa
453a0 6e 3e 2e 50 61 74 68 4e 6f 74 46 6f 75 6e 64 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 n>.PathNotFound.=&gt;.<span.clas
453c0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 61 6e 69 63 3c 2f 73 70 61 6e 3e 28 3c 73 s="tok-builtin">@panic</span>(<s
453e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 6e 65 78 70 65 pan.class="tok-str">&quot;unexpe
45400 63 74 65 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 cted&quot;</span>),.........<spa
45420 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4e 6f n.class="tok-kw">error</span>.No
45440 74 44 69 72 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 tDir.=&gt;.{},.....}.}</code></p
45460 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
45480 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 6d g.test.test.zig.1/1.test.&quot;m
454a0 65 72 67 65 20 65 72 72 6f 72 20 73 65 74 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 erge.error.sets&quot;...OK.All.t
454c0 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 ests.passed..</code></pre>......
454e0 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6e 66 65 72 72 65 64 2d 45 72 72 6f 72 2d .........<h3.id="Inferred-Error-
45500 53 65 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 66 65 72 72 65 64 2d 45 72 72 Sets"><a.href="#toc-Inferred-Err
45520 6f 72 2d 53 65 74 73 22 3e 49 6e 66 65 72 72 65 64 20 45 72 72 6f 72 20 53 65 74 73 3c 2f 61 3e or-Sets">Inferred.Error.Sets</a>
45540 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 66 65 72 72 65 64 2d .<a.class="hdr".href="#Inferred-
45560 45 72 72 6f 72 2d 53 65 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c Error-Sets">..</a></h3>........<
45580 70 3e 0a 20 20 20 20 20 20 42 65 63 61 75 73 65 20 6d 61 6e 79 20 66 75 6e 63 74 69 6f 6e 73 20 p>.......Because.many.functions.
455a0 69 6e 20 5a 69 67 20 72 65 74 75 72 6e 20 61 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 2c 20 in.Zig.return.a.possible.error,.
455c0 5a 69 67 20 73 75 70 70 6f 72 74 73 20 69 6e 66 65 72 72 69 6e 67 20 74 68 65 20 65 72 72 6f 72 Zig.supports.inferring.the.error
455e0 20 73 65 74 2e 0a 20 20 20 20 20 20 54 6f 20 69 6e 66 65 72 20 74 68 65 20 65 72 72 6f 72 20 73 .set........To.infer.the.error.s
45600 65 74 20 66 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 75 73 65 20 74 68 69 73 20 73 79 6e 74 et.for.a.function,.use.this.synt
45620 61 78 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ax:.......</p>.<p.class="file">t
45640 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
45660 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 57 "><span.class="tok-comment">//.W
45680 69 74 68 20 61 6e 20 69 6e 66 65 72 72 65 64 20 65 72 72 6f 72 20 73 65 74 3c 2f 73 70 61 6e 3e ith.an.inferred.error.set</span>
456a0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">pub</span>
456c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">fn</span>.
456e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 64 64 5f 69 6e 66 65 72 72 65 <span.class="tok-fn">add_inferre
45700 64 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f d</span>(<span.class="tok-kw">co
45720 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f mptime</span>.T:.<span.class="to
45740 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a 20 54 2c 20 62 3a 20 54 29 k-type">type</span>,.a:.T,.b:.T)
45760 20 21 54 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 .!T.{.....<span.class="tok-kw">v
45780 61 72 3c 2f 73 70 61 6e 3e 20 61 6e 73 77 65 72 3a 20 54 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ar</span>.answer:.T.=.<span.clas
457a0 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 20 s="tok-null">undefined</span>;..
457c0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f ...<span.class="tok-kw">return</
457e0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 span>.<span.class="tok-kw">if</s
45800 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e pan>.(<span.class="tok-builtin">
45820 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 54 2c 20 61 2c 20 62 2c @addWithOverflow</span>(T,.a,.b,
45840 20 26 61 6d 70 3b 61 6e 73 77 65 72 29 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .&amp;answer)).<span.class="tok-
45860 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4f 76 65 72 66 6c 6f 77 20 3c 73 70 61 6e 20 kw">error</span>.Overflow.<span.
45880 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 61 6e 73 77 65 class="tok-kw">else</span>.answe
458a0 72 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e r;.}..<span.class="tok-comment">
458c0 2f 2f 20 57 69 74 68 20 61 6e 20 65 78 70 6c 69 63 69 74 20 65 72 72 6f 72 20 73 65 74 3c 2f 73 //.With.an.explicit.error.set</s
458e0 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 pan>.<span.class="tok-kw">pub</s
45900 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 pan>.<span.class="tok-kw">fn</sp
45920 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 64 64 5f 65 78 70 an>.<span.class="tok-fn">add_exp
45940 6c 69 63 69 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 licit</span>(<span.class="tok-kw
45960 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">comptime</span>.T:.<span.class
45980 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a 20 54 2c 20 62 ="tok-type">type</span>,.a:.T,.b
459a0 3a 20 54 29 20 45 72 72 6f 72 21 54 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 :.T).Error!T.{.....<span.class="
459c0 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 6e 73 77 65 72 3a 20 54 20 3d 20 3c tok-kw">var</span>.answer:.T.=.<
459e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c span.class="tok-null">undefined<
45a00 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>;.....<span.class="tok-kw"
45a20 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >return</span>.<span.class="tok-
45a40 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d kw">if</span>.(<span.class="tok-
45a60 62 75 69 6c 74 69 6e 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e builtin">@addWithOverflow</span>
45a80 28 54 2c 20 61 2c 20 62 2c 20 26 61 6d 70 3b 61 6e 73 77 65 72 29 29 20 3c 73 70 61 6e 20 63 6c (T,.a,.b,.&amp;answer)).<span.cl
45aa0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4f 76 65 72 66 6c ass="tok-kw">error</span>.Overfl
45ac0 6f 77 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 ow.<span.class="tok-kw">else</sp
45ae0 61 6e 3e 20 61 6e 73 77 65 72 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d an>.answer;.}..<span.class="tok-
45b00 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 72 72 6f 72 20 3d 20 3c 73 70 61 6e 20 63 kw">const</span>.Error.=.<span.c
45b20 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 lass="tok-kw">error</span>.{....
45b40 20 4f 76 65 72 66 6c 6f 77 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .Overflow,.};..<span.class="tok-
45b60 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 kw">const</span>.std.=.<span.cla
45b80 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 ss="tok-builtin">@import</span>(
45ba0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 <span.class="tok-str">&quot;std&
45bc0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b quot;</span>);..<span.class="tok
45be0 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f -kw">test</span>.<span.class="to
45c00 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 66 65 72 72 65 64 20 65 72 72 6f 72 20 73 65 74 26 k-str">&quot;inferred.error.set&
45c20 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 quot;</span>.{.....<span.class="
45c40 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 64 64 5f 69 6e 66 65 72 72 65 64 28 tok-kw">if</span>.(add_inferred(
45c60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
45c80 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f ,.<span.class="tok-number">255</
45ca0 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e span>,.<span.class="tok-number">
45cc0 31 3c 2f 73 70 61 6e 3e 29 29 20 7c 5f 7c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 1</span>)).|_|.<span.class="tok-
45ce0 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 kw">unreachable</span>.<span.cla
45d00 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 3c 73 ss="tok-kw">else</span>.|err|.<s
45d20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e pan.class="tok-kw">switch</span>
45d40 20 28 65 72 72 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .(err).{.........<span.class="to
45d60 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4f 76 65 72 66 6c 6f 77 20 3d 26 67 74 k-kw">error</span>.Overflow.=&gt
45d80 3b 20 7b 7d 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e ;.{},.<span.class="tok-comment">
45da0 2f 2f 20 6f 6b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 //.ok</span>.....}.}</code></pre
45dc0 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 ><pre><code.class="shell">$.zig.
45de0 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 66 test.test.zig.1/1.test.&quot;inf
45e00 65 72 72 65 64 20 65 72 72 6f 72 20 73 65 74 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 erred.error.set&quot;...OK.All.t
45e20 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 ests.passed..</code></pre>......
45e40 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 ..<p>.......When.a.function.has.
45e60 61 6e 20 69 6e 66 65 72 72 65 64 20 65 72 72 6f 72 20 73 65 74 2c 20 74 68 61 74 20 66 75 6e 63 an.inferred.error.set,.that.func
45e80 74 69 6f 6e 20 62 65 63 6f 6d 65 73 20 67 65 6e 65 72 69 63 20 61 6e 64 20 74 68 75 73 20 69 74 tion.becomes.generic.and.thus.it
45ea0 20 62 65 63 6f 6d 65 73 0a 20 20 20 20 20 20 74 72 69 63 6b 69 65 72 20 74 6f 20 64 6f 20 63 65 .becomes.......trickier.to.do.ce
45ec0 72 74 61 69 6e 20 74 68 69 6e 67 73 20 77 69 74 68 20 69 74 2c 20 73 75 63 68 20 61 73 20 6f 62 rtain.things.with.it,.such.as.ob
45ee0 74 61 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 70 6f 69 6e 74 65 72 2c 20 6f 72 20 68 61 76 65 tain.a.function.pointer,.or.have
45f00 20 61 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 73 65 74 20 74 68 61 74 20 69 73 20 63 6f 6e 73 .an.error.......set.that.is.cons
45f20 69 73 74 65 6e 74 20 61 63 72 6f 73 73 20 64 69 66 66 65 72 65 6e 74 20 62 75 69 6c 64 20 74 61 istent.across.different.build.ta
45f40 72 67 65 74 73 2e 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 69 6e 66 65 72 72 65 64 20 65 72 rgets..Additionally,.inferred.er
45f60 72 6f 72 20 73 65 74 73 0a 20 20 20 20 20 20 61 72 65 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 ror.sets.......are.incompatible.
45f80 77 69 74 68 20 72 65 63 75 72 73 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 with.recursion........</p>......
45fa0 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 65 73 65 20 73 69 74 75 61 74 69 6f 6e 73 2c 20 .<p>.......In.these.situations,.
45fc0 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 61 6e 20 65 78 70 6c it.is.recommended.to.use.an.expl
45fe0 69 63 69 74 20 65 72 72 6f 72 20 73 65 74 2e 20 59 6f 75 20 63 61 6e 20 67 65 6e 65 72 61 6c 6c icit.error.set..You.can.generall
46000 79 20 73 74 61 72 74 0a 20 20 20 20 20 20 77 69 74 68 20 61 6e 20 65 6d 70 74 79 20 65 72 72 6f y.start.......with.an.empty.erro
46020 72 20 73 65 74 20 61 6e 64 20 6c 65 74 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 73 20 67 75 69 r.set.and.let.compile.errors.gui
46040 64 65 20 79 6f 75 20 74 6f 77 61 72 64 20 63 6f 6d 70 6c 65 74 69 6e 67 20 74 68 65 20 73 65 74 de.you.toward.completing.the.set
46060 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 ........</p>.......<p>.......The
46080 73 65 20 6c 69 6d 69 74 61 74 69 6f 6e 73 20 6d 61 79 20 62 65 20 6f 76 65 72 63 6f 6d 65 20 69 se.limitations.may.be.overcome.i
460a0 6e 20 61 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 5a 69 67 2e 0a 20 20 20 20 20 n.a.future.version.of.Zig.......
460c0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 .</p>.....................<h2.id
460e0 3d 22 45 72 72 6f 72 2d 52 65 74 75 72 6e 2d 54 72 61 63 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 ="Error-Return-Traces"><a.href="
46100 23 74 6f 63 2d 45 72 72 6f 72 2d 52 65 74 75 72 6e 2d 54 72 61 63 65 73 22 3e 45 72 72 6f 72 20 #toc-Error-Return-Traces">Error.
46120 52 65 74 75 72 6e 20 54 72 61 63 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 Return.Traces</a>.<a.class="hdr"
46140 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 52 65 74 75 72 6e 2d 54 72 61 63 65 73 22 3e c2 a7 3c .href="#Error-Return-Traces">..<
46160 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 72 72 6f 72 20 /a></h2>........<p>.......Error.
46180 52 65 74 75 72 6e 20 54 72 61 63 65 73 20 73 68 6f 77 20 61 6c 6c 20 74 68 65 20 70 6f 69 6e 74 Return.Traces.show.all.the.point
461a0 73 20 69 6e 20 74 68 65 20 63 6f 64 65 20 74 68 61 74 20 61 6e 20 65 72 72 6f 72 20 77 61 73 20 s.in.the.code.that.an.error.was.
461c0 72 65 74 75 72 6e 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 66 75 6e 63 74 69 6f 6e returned.to.the.calling.function
461e0 2e 20 54 68 69 73 20 6d 61 6b 65 73 20 69 74 20 70 72 61 63 74 69 63 61 6c 20 74 6f 20 75 73 65 ..This.makes.it.practical.to.use
46200 20 3c 61 20 68 72 65 66 3d 22 23 74 72 79 22 3e 74 72 79 3c 2f 61 3e 20 65 76 65 72 79 77 68 65 .<a.href="#try">try</a>.everywhe
46220 72 65 20 61 6e 64 20 74 68 65 6e 20 73 74 69 6c 6c 20 62 65 20 61 62 6c 65 20 74 6f 20 6b 6e 6f re.and.then.still.be.able.to.kno
46240 77 20 77 68 61 74 20 68 61 70 70 65 6e 65 64 20 69 66 20 61 6e 20 65 72 72 6f 72 20 65 6e 64 73 w.what.happened.if.an.error.ends
46260 20 75 70 20 62 75 62 62 6c 69 6e 67 20 61 6c 6c 20 74 68 65 20 77 61 79 20 6f 75 74 20 6f 66 20 .up.bubbling.all.the.way.out.of.
46280 79 6f 75 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 your.application........</p>....
462a0 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
462c0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
462e0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 s="tok-kw">pub</span>.<span.clas
46300 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
46320 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 ="tok-fn">main</span>().!<span.c
46340 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-type">void</span>.{...
46360 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e ..<span.class="tok-kw">try</span
46380 3e 20 66 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 >.foo(<span.class="tok-number">1
463a0 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 2</span>);.}..<span.class="tok-k
463c0 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e w">fn</span>.<span.class="tok-fn
463e0 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">foo</span>(x:.<span.class="tok
46400 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d -type">i32</span>).!<span.class=
46420 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 "tok-type">void</span>.{.....<sp
46440 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 78 20 26 an.class="tok-kw">if</span>.(x.&
46460 67 74 3b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c gt;=.<span.class="tok-number">5<
46480 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 /span>).{.........<span.class="t
464a0 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 62 61 72 28 29 3b 0a 20 20 20 20 7d 20 3c ok-kw">try</span>.bar();.....}.<
464c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">else</span>.
464e0 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 {.........<span.class="tok-kw">t
46500 72 79 3c 2f 73 70 61 6e 3e 20 62 61 6e 67 32 28 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 ry</span>.bang2();.....}.}..<spa
46520 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e n.class="tok-kw">fn</span>.<span
46540 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 72 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 .class="tok-fn">bar</span>().!<s
46560 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e pan.class="tok-type">void</span>
46580 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f .{.....<span.class="tok-kw">if</
465a0 73 70 61 6e 3e 20 28 62 61 7a 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c span>.(baz()).{.........<span.cl
465c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 71 75 75 78 28 29 3b 0a ass="tok-kw">try</span>.quux();.
465e0 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c ....}.<span.class="tok-kw">else<
46600 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>.|err|.<span.class="tok-kw
46620 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 65 72 72 29 20 7b 0a 20 20 20 20 20 20 20 20 ">switch</span>.(err).{.........
46640 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e <span.class="tok-kw">error</span
46660 3e 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 >.FileNotFound.=&gt;.<span.class
46680 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 68 65 6c 6c 6f 28 29 2c 0a 20 20 ="tok-kw">try</span>.hello(),...
466a0 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c ......<span.class="tok-kw">else<
466c0 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>.=&gt;.<span.class="tok-kw
466e0 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 61 6e 6f 74 68 65 72 28 29 2c 0a 20 20 20 20 7d 0a 7d 0a ">try</span>.another(),.....}.}.
46700 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">fn</span>.
46720 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 7a 3c 2f 73 70 61 6e 3e 28 <span.class="tok-fn">baz</span>(
46740 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f ).!<span.class="tok-type">void</
46760 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
46780 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 62 61 6e 67 31 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c >try</span>.bang1();.}..<span.cl
467a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
467c0 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 71 75 75 78 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e ss="tok-fn">quux</span>().!<span
467e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a .class="tok-type">void</span>.{.
46800 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 ....<span.class="tok-kw">try</sp
46820 61 6e 3e 20 62 61 6e 67 32 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b an>.bang2();.}..<span.class="tok
46840 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d -kw">fn</span>.<span.class="tok-
46860 66 6e 22 3e 68 65 6c 6c 6f 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d fn">hello</span>().!<span.class=
46880 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 "tok-type">void</span>.{.....<sp
468a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 62 61 6e an.class="tok-kw">try</span>.ban
468c0 67 32 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e g2();.}..<span.class="tok-kw">fn
468e0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 6e 6f </span>.<span.class="tok-fn">ano
46900 74 68 65 72 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ther</span>().!<span.class="tok-
46920 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c type">void</span>.{.....<span.cl
46940 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 62 61 6e 67 31 28 29 3b ass="tok-kw">try</span>.bang1();
46960 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 .}..<span.class="tok-kw">fn</spa
46980 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 6e 67 31 3c 2f 73 n>.<span.class="tok-fn">bang1</s
469a0 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 pan>().!<span.class="tok-type">v
469c0 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f oid</span>.{.....<span.class="to
469e0 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-kw">return</span>.<span.class=
46a00 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 46 69 6c 65 4e 6f 74 46 6f 75 "tok-kw">error</span>.FileNotFou
46a20 6e 64 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f nd;.}..<span.class="tok-kw">fn</
46a40 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 6e 67 32 span>.<span.class="tok-fn">bang2
46a60 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>().!<span.class="tok-type
46a80 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ">void</span>.{.....<span.class=
46aa0 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 "tok-kw">return</span>.<span.cla
46ac0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 50 65 72 6d 69 73 73 ss="tok-kw">error</span>.Permiss
46ae0 69 6f 6e 44 65 6e 69 65 64 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 ionDenied;.}</code></pre><pre><c
46b00 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 ode.class="shell">$.zig.build-ex
46b20 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 65 72 72 6f 72 3a 20 50 65 72 6d 69 e.test.zig.$../test.error:.Permi
46b40 73 73 69 6f 6e 44 65 6e 69 65 64 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e ssionDenied.<span.class="t37_1">
46b60 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 /home/andy/dev/zig/docgen_tmp/te
46b80 73 74 2e 7a 69 67 3a 33 39 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d st.zig:39:5</span>:.<span.class=
46ba0 22 74 32 5f 30 22 3e 30 78 32 32 38 36 61 38 20 69 6e 20 62 61 6e 67 31 20 28 74 65 73 74 29 3c "t2_0">0x2286a8.in.bang1.(test)<
46bc0 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 46 69 6c 65 4e 6f 74 46 /span>.....return.error.FileNotF
46be0 6f 75 6e 64 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ound;.....<span.class="t32_1">^<
46c00 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 /span>.<span.class="t37_1">/home
46c20 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 /andy/dev/zig/docgen_tmp/test.zi
46c40 67 3a 32 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 g:23:5</span>:.<span.class="t2_0
46c60 22 3e 30 78 32 32 38 35 63 63 20 69 6e 20 62 61 7a 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a ">0x2285cc.in.baz.(test)</span>.
46c80 20 20 20 20 74 72 79 20 62 61 6e 67 31 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ....try.bang1();.....<span.class
46ca0 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ="t32_1">^</span>.<span.class="t
46cc0 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 37_1">/home/andy/dev/zig/docgen_
46ce0 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 tmp/test.zig:43:5</span>:.<span.
46d00 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 35 39 38 20 69 6e 20 62 61 6e 67 32 20 28 class="t2_0">0x228598.in.bang2.(
46d20 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 50 65 test)</span>.....return.error.Pe
46d40 72 6d 69 73 73 69 6f 6e 44 65 6e 69 65 64 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d rmissionDenied;.....<span.class=
46d60 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 "t32_1">^</span>.<span.class="t3
46d80 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 7_1">/home/andy/dev/zig/docgen_t
46da0 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 31 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 mp/test.zig:31:5</span>:.<span.c
46dc0 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 36 38 63 20 69 6e 20 68 65 6c 6c 6f 20 28 74 lass="t2_0">0x22868c.in.hello.(t
46de0 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 74 72 79 20 62 61 6e 67 32 28 29 3b 0a 20 20 20 est)</span>.....try.bang2();....
46e00 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 .<span.class="t32_1">^</span>.<s
46e20 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 pan.class="t37_1">/home/andy/dev
46e40 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 37 3a 33 31 3c 2f /zig/docgen_tmp/test.zig:17:31</
46e60 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 35 span>:.<span.class="t2_0">0x2285
46e80 36 65 20 69 6e 20 62 61 72 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 6e.in.bar.(test)</span>.........
46ea0 65 72 72 6f 72 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 20 3d 26 67 74 3b 20 74 72 79 20 68 65 6c error.FileNotFound.=&gt;.try.hel
46ec0 6c 6f 28 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lo(),...........................
46ee0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e ....<span.class="t32_1">^</span>
46f00 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f .<span.class="t37_1">/home/andy/
46f20 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 37 3a 39 3c dev/zig/docgen_tmp/test.zig:7:9<
46f40 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 /span>:.<span.class="t2_0">0x228
46f60 34 37 39 20 69 6e 20 66 6f 6f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 479.in.foo.(test)</span>........
46f80 20 74 72 79 20 62 61 72 28 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .try.bar();.........<span.class=
46fa0 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 "t32_1">^</span>.<span.class="t3
46fc0 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 7_1">/home/andy/dev/zig/docgen_t
46fe0 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c mp/test.zig:2:5</span>:.<span.cl
47000 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 32 38 31 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 ass="t2_0">0x228281.in.main.(tes
47020 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 74 72 79 20 66 6f 6f 28 31 32 29 3b 0a 20 20 20 20 3c t)</span>.....try.foo(12);.....<
47040 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f span.class="t32_1">^</span>.</co
47060 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c 6f 6f 6b 20 de></pre>........<p>.......Look.
47080 63 6c 6f 73 65 6c 79 20 61 74 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2e 20 54 68 69 73 20 69 73 closely.at.this.example..This.is
470a0 20 6e 6f 20 73 74 61 63 6b 20 74 72 61 63 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 .no.stack.trace........</p>.....
470c0 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 73 65 65 20 74 68 61 74 20 74 68 65 ..<p>.......You.can.see.that.the
470e0 20 66 69 6e 61 6c 20 65 72 72 6f 72 20 62 75 62 62 6c 65 64 20 75 70 20 77 61 73 20 3c 63 6f 64 .final.error.bubbled.up.was.<cod
47100 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 50 65 72 6d 69 73 73 69 6f 6e 44 65 6e 69 65 64 3c 2f e.class="zig">PermissionDenied</
47120 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 62 75 74 20 74 68 65 20 6f 72 69 67 69 6e 61 code>,...........but.the.origina
47140 6c 20 65 72 72 6f 72 20 74 68 61 74 20 73 74 61 72 74 65 64 20 74 68 69 73 20 77 68 6f 6c 65 20 l.error.that.started.this.whole.
47160 74 68 69 6e 67 20 77 61 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 46 69 6c 65 thing.was.<code.class="zig">File
47180 4e 6f 74 46 6f 75 6e 64 3c 2f 63 6f 64 65 3e 2e 20 49 6e 20 74 68 65 20 3c 63 6f 64 65 20 63 6c NotFound</code>..In.the.<code.cl
471a0 61 73 73 3d 22 7a 69 67 22 3e 62 61 72 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 2c 20 74 ass="zig">bar</code>.function,.t
471c0 68 65 20 63 6f 64 65 20 68 61 6e 64 6c 65 73 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 65 72 72 he.code.handles.the.original.err
471e0 6f 72 20 63 6f 64 65 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 68 65 6e 20 72 65 74 75 72 6e 73 20 or.code,.......and.then.returns.
47200 61 6e 6f 74 68 65 72 20 6f 6e 65 2c 20 66 72 6f 6d 20 74 68 65 20 73 77 69 74 63 68 20 73 74 61 another.one,.from.the.switch.sta
47220 74 65 6d 65 6e 74 2e 20 45 72 72 6f 72 20 52 65 74 75 72 6e 20 54 72 61 63 65 73 20 6d 61 6b 65 tement..Error.Return.Traces.make
47240 20 74 68 69 73 20 63 6c 65 61 72 2c 20 77 68 65 72 65 61 73 20 61 20 73 74 61 63 6b 20 74 72 61 .this.clear,.whereas.a.stack.tra
47260 63 65 20 77 6f 75 6c 64 20 6c 6f 6f 6b 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c ce.would.look.like.this:.......<
47280 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a /p>.......<p.class="file">test.z
472a0 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ig</p><pre><code.class="zig"><sp
472c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 an.class="tok-kw">pub</span>.<sp
472e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 an.class="tok-kw">fn</span>.<spa
47300 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c n.class="tok-fn">main</span>().<
47320 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e span.class="tok-type">void</span
47340 3e 20 7b 0a 20 20 20 20 66 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d >.{.....foo(<span.class="tok-num
47360 62 65 72 22 3e 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ber">12</span>);.}..<span.class=
47380 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
473a0 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 tok-fn">foo</span>(x:.<span.clas
473c0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 s="tok-type">i32</span>).<span.c
473e0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-type">void</span>.{...
47400 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e ..<span.class="tok-kw">if</span>
47420 20 28 78 20 26 67 74 3b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 .(x.&gt;=.<span.class="tok-numbe
47440 72 22 3e 35 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 62 61 72 28 29 3b 0a 20 20 r">5</span>).{.........bar();...
47460 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 ..}.<span.class="tok-kw">else</s
47480 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 62 61 6e 67 32 28 29 3b 0a 20 20 20 20 7d 0a 7d 0a pan>.{.........bang2();.....}.}.
474a0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">fn</span>.
474c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 72 3c 2f 73 70 61 6e 3e 28 <span.class="tok-fn">bar</span>(
474e0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 ).<span.class="tok-type">void</s
47500 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
47520 69 66 3c 2f 73 70 61 6e 3e 20 28 62 61 7a 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 71 75 75 78 if</span>.(baz()).{.........quux
47540 28 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 ();.....}.<span.class="tok-kw">e
47560 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 68 65 6c 6c 6f 28 29 3b 0a 20 20 lse</span>.{.........hello();...
47580 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f ..}.}..<span.class="tok-kw">fn</
475a0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 7a 3c 2f span>.<span.class="tok-fn">baz</
475c0 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 span>().<span.class="tok-type">b
475e0 6f 6f 6c 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ool</span>.{.....<span.class="to
47600 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 62 61 6e 67 31 28 29 3b 0a 7d 0a 0a k-kw">return</span>.bang1();.}..
47620 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c <span.class="tok-kw">fn</span>.<
47640 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 71 75 75 78 3c 2f 73 70 61 6e 3e 28 span.class="tok-fn">quux</span>(
47660 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 ).<span.class="tok-type">void</s
47680 70 61 6e 3e 20 7b 0a 20 20 20 20 62 61 6e 67 32 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 pan>.{.....bang2();.}..<span.cla
476a0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ss="tok-kw">fn</span>.<span.clas
476c0 73 3d 22 74 6f 6b 2d 66 6e 22 3e 68 65 6c 6c 6f 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 s="tok-fn">hello</span>().<span.
476e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 class="tok-type">void</span>.{..
47700 20 20 20 62 61 6e 67 32 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ...bang2();.}..<span.class="tok-
47720 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 kw">fn</span>.<span.class="tok-f
47740 6e 22 3e 62 61 6e 67 31 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">bang1</span>().<span.class="t
47760 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e ok-type">bool</span>.{.....<span
47780 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 .class="tok-kw">return</span>.<s
477a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e pan.class="tok-null">false</span
477c0 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 >;.}..<span.class="tok-kw">fn</s
477e0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 6e 67 32 3c pan>.<span.class="tok-fn">bang2<
47800 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e /span>().<span.class="tok-type">
47820 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 void</span>.{.....<span.class="t
47840 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 61 6e 69 63 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 ok-builtin">@panic</span>(<span.
47860 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 50 65 72 6d 69 73 73 69 6f 6e class="tok-str">&quot;Permission
47880 44 65 6e 69 65 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f Denied&quot;</span>);.}</code></
478a0 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a pre><pre><code.class="shell">$.z
478c0 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 50 ig.build-exe.test.zig.$../test.P
478e0 65 72 6d 69 73 73 69 6f 6e 44 65 6e 69 65 64 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 ermissionDenied.<span.class="t37
47900 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d _1">/home/andy/dev/zig/docgen_tm
47920 70 2f 74 65 73 74 2e 7a 69 67 3a 33 38 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c p/test.zig:38:5</span>:.<span.cl
47940 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 36 62 36 20 69 6e 20 62 61 6e 67 32 20 28 74 65 ass="t2_0">0x2286b6.in.bang2.(te
47960 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 70 61 6e 69 63 28 26 71 75 6f 74 3b 50 65 72 6d st)</span>.....@panic(&quot;Perm
47980 69 73 73 69 6f 6e 44 65 6e 69 65 64 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 issionDenied&quot;);.....<span.c
479a0 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 lass="t32_1">^</span>.<span.clas
479c0 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 s="t37_1">/home/andy/dev/zig/doc
479e0 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 30 3a 31 30 3c 2f 73 70 61 6e 3e 3a 20 3c gen_tmp/test.zig:30:10</span>:.<
47a00 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 37 38 38 20 69 6e 20 68 65 span.class="t2_0">0x228788.in.he
47a20 6c 6c 6f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 62 61 6e 67 32 28 29 3b 0a 20 llo.(test)</span>.....bang2();..
47a40 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
47a60 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 pan>.<span.class="t37_1">/home/a
47a80 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a ndy/dev/zig/docgen_tmp/test.zig:
47aa0 31 37 3a 31 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 17:14</span>:.<span.class="t2_0"
47ac0 3e 30 78 32 32 38 36 39 61 20 69 6e 20 62 61 72 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 >0x22869a.in.bar.(test)</span>..
47ae0 20 20 20 20 20 20 20 68 65 6c 6c 6f 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 .......hello();..............<sp
47b00 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 an.class="t32_1">^</span>.<span.
47b20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 class="t37_1">/home/andy/dev/zig
47b40 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 37 3a 31 32 3c 2f 73 70 61 6e 3e /docgen_tmp/test.zig:7:12</span>
47b60 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 63 35 20 69 6e :.<span.class="t2_0">0x2281c5.in
47b80 20 66 6f 6f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 62 61 72 28 29 .foo.(test)</span>.........bar()
47ba0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 ;............<span.class="t32_1"
47bc0 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 >^</span>.<span.class="t37_1">/h
47be0 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 ome/andy/dev/zig/docgen_tmp/test
47c00 2e 7a 69 67 3a 32 3a 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 .zig:2:8</span>:.<span.class="t2
47c20 5f 30 22 3e 30 78 32 32 38 30 66 64 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 _0">0x2280fd.in.main.(test)</spa
47c40 6e 3e 0a 20 20 20 20 66 6f 6f 28 31 32 29 3b 0a 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 n>.....foo(12);........<span.cla
47c60 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ss="t32_1">^</span>.<span.class=
47c80 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 "t37_1">/home/andy/dev/zig/lib/s
47ca0 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 td/special/start.zig:194:22</spa
47cc0 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 n>:.<span.class="t2_0">0x22718b.
47ce0 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 in.std.special.posixCallMainAndE
47d00 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f xit.(test)</span>.............ro
47d20 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ot.main();......................
47d40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 <span.class="t32_1">^</span>.<sp
47d60 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f an.class="t37_1">/home/andy/dev/
47d80 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 zig/lib/std/special/start.zig:10
47da0 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 2:5</span>:.<span.class="t2_0">0
47dc0 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 x22706f.in.std.special._start.(t
47de0 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f est)</span>.....@noInlineCall(po
47e00 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 sixCallMainAndExit);.....<span.c
47e20 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 lass="t32_1">^</span>.(process.t
47e40 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 erminated.by.signal)</code></pre
47e60 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 2c 20 74 68 65 20 73 74 61 >........<p>.......Here,.the.sta
47e80 63 6b 20 74 72 61 63 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 70 6c 61 69 6e 20 68 6f 77 20 74 68 ck.trace.does.not.explain.how.th
47ea0 65 20 63 6f 6e 74 72 6f 6c 0a 20 20 20 20 20 20 66 6c 6f 77 20 69 6e 20 3c 63 6f 64 65 20 63 6c e.control.......flow.in.<code.cl
47ec0 61 73 73 3d 22 7a 69 67 22 3e 62 61 72 3c 2f 63 6f 64 65 3e 20 67 6f 74 20 74 6f 20 74 68 65 20 ass="zig">bar</code>.got.to.the.
47ee0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 68 65 6c 6c 6f 28 29 3c 2f 63 6f 64 65 3e <code.class="zig">hello()</code>
47f00 20 63 61 6c 6c 2e 0a 20 20 20 20 20 20 4f 6e 65 20 77 6f 75 6c 64 20 68 61 76 65 20 74 6f 20 6f .call........One.would.have.to.o
47f20 70 65 6e 20 61 20 64 65 62 75 67 67 65 72 20 6f 72 20 66 75 72 74 68 65 72 20 69 6e 73 74 72 75 pen.a.debugger.or.further.instru
47f40 6d 65 6e 74 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 20 20 20 20 69 6e 20 6f 72 ment.the.application.......in.or
47f60 64 65 72 20 74 6f 20 66 69 6e 64 20 6f 75 74 2e 20 54 68 65 20 65 72 72 6f 72 20 72 65 74 75 72 der.to.find.out..The.error.retur
47f80 6e 20 74 72 61 63 65 2c 20 6f 6e 20 74 68 65 20 6f 74 68 65 72 20 68 61 6e 64 2c 0a 20 20 20 20 n.trace,.on.the.other.hand,.....
47fa0 20 20 73 68 6f 77 73 20 65 78 61 63 74 6c 79 20 68 6f 77 20 74 68 65 20 65 72 72 6f 72 20 62 75 ..shows.exactly.how.the.error.bu
47fc0 62 62 6c 65 64 20 75 70 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 bbled.up........</p>.......<p>..
47fe0 20 20 20 20 20 54 68 69 73 20 64 65 62 75 67 67 69 6e 67 20 66 65 61 74 75 72 65 20 6d 61 6b 65 .....This.debugging.feature.make
48000 73 20 69 74 20 65 61 73 69 65 72 20 74 6f 20 69 74 65 72 61 74 65 20 71 75 69 63 6b 6c 79 20 6f s.it.easier.to.iterate.quickly.o
48020 6e 20 63 6f 64 65 20 74 68 61 74 0a 20 20 20 20 20 20 72 6f 62 75 73 74 6c 79 20 68 61 6e 64 6c n.code.that.......robustly.handl
48040 65 73 20 61 6c 6c 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 20 54 68 69 73 20 6d 65 es.all.error.conditions..This.me
48060 61 6e 73 20 74 68 61 74 20 5a 69 67 20 64 65 76 65 6c 6f 70 65 72 73 0a 20 20 20 20 20 20 77 69 ans.that.Zig.developers.......wi
48080 6c 6c 20 6e 61 74 75 72 61 6c 6c 79 20 66 69 6e 64 20 74 68 65 6d 73 65 6c 76 65 73 20 77 72 69 ll.naturally.find.themselves.wri
480a0 74 69 6e 67 20 63 6f 72 72 65 63 74 2c 20 72 6f 62 75 73 74 20 63 6f 64 65 20 69 6e 20 6f 72 64 ting.correct,.robust.code.in.ord
480c0 65 72 0a 20 20 20 20 20 20 74 6f 20 69 6e 63 72 65 61 73 65 20 74 68 65 69 72 20 64 65 76 65 6c er.......to.increase.their.devel
480e0 6f 70 6d 65 6e 74 20 70 61 63 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 opment.pace........</p>.......<p
48100 3e 0a 20 20 20 20 20 20 45 72 72 6f 72 20 52 65 74 75 72 6e 20 54 72 61 63 65 73 20 61 72 65 20 >.......Error.Return.Traces.are.
48120 65 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 enabled.by.default.in.<a.href="#
48140 44 65 62 75 67 22 3e 44 65 62 75 67 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 52 Debug">Debug</a>.and.<a.href="#R
48160 65 6c 65 61 73 65 53 61 66 65 22 3e 52 65 6c 65 61 73 65 53 61 66 65 3c 2f 61 3e 20 62 75 69 6c eleaseSafe">ReleaseSafe</a>.buil
48180 64 73 20 61 6e 64 20 64 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e 20 3c 61 ds.and.disabled.by.default.in.<a
481a0 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 46 61 73 74 22 3e 52 65 6c 65 61 73 65 46 61 73 74 .href="#ReleaseFast">ReleaseFast
481c0 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 </a>.and.<a.href="#ReleaseSmall"
481e0 3e 52 65 6c 65 61 73 65 53 6d 61 6c 6c 3c 2f 61 3e 20 62 75 69 6c 64 73 2e 0a 20 20 20 20 20 20 >ReleaseSmall</a>.builds........
48200 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 61 72 65 20 61 </p>.......<p>.......There.are.a
48220 20 66 65 77 20 77 61 79 73 20 74 6f 20 61 63 74 69 76 61 74 65 20 74 68 69 73 20 65 72 72 6f 72 .few.ways.to.activate.this.error
48240 20 72 65 74 75 72 6e 20 74 72 61 63 69 6e 67 20 66 65 61 74 75 72 65 3a 0a 20 20 20 20 20 20 3c .return.tracing.feature:.......<
48260 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 74 75 72 /p>.......<ul>.........<li>Retur
48280 6e 20 61 6e 20 65 72 72 6f 72 20 66 72 6f 6d 20 6d 61 69 6e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 n.an.error.from.main</li>.......
482a0 20 20 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20 6d 61 6b 65 73 20 69 74 73 20 77 61 79 20 74 6f 20 ..<li>An.error.makes.its.way.to.
482c0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
482e0 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-kw">catch</span>.<span.class=
48300 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 "tok-kw">unreachable</span></cod
48320 65 3e 20 61 6e 64 20 79 6f 75 20 68 61 76 65 20 6e 6f 74 20 6f 76 65 72 72 69 64 64 65 6e 20 74 e>.and.you.have.not.overridden.t
48340 68 65 20 64 65 66 61 75 6c 74 20 70 61 6e 69 63 20 68 61 6e 64 6c 65 72 3c 2f 6c 69 3e 0a 20 20 he.default.panic.handler</li>...
48360 20 20 20 20 20 20 3c 6c 69 3e 55 73 65 20 3c 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 52 65 74 ......<li>Use.<a.href="#errorRet
48380 75 72 6e 54 72 61 63 65 22 3e 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 3c 2f 61 3e 20 74 urnTrace">errorReturnTrace</a>.t
483a0 6f 20 61 63 63 65 73 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 74 75 72 6e 20 74 72 61 63 o.access.the.current.return.trac
483c0 65 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 e..You.can.use.<code.class="zig"
483e0 3e 73 74 64 2e 64 65 62 75 67 2e 64 75 6d 70 53 74 61 63 6b 54 72 61 63 65 3c 2f 63 6f 64 65 3e >std.debug.dumpStackTrace</code>
48400 20 74 6f 20 70 72 69 6e 74 20 69 74 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 .to.print.it..This.function.retu
48420 72 6e 73 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c rns.comptime-known.<a.href="#nul
48440 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 20 77 68 65 6e 20 62 75 69 6c 64 69 6e 67 20 77 69 74 68 6f 75 l">null</a>.when.building.withou
48460 74 20 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 72 61 63 69 6e 67 20 73 75 70 70 6f 72 74 2e 3c t.error.return.tracing.support.<
48480 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 /li>.......</ul>.......<h3.id="I
484a0 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 44 65 74 61 69 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 mplementation-Details"><a.href="
484c0 23 74 6f 63 2d 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 44 65 74 61 69 6c 73 22 3e 49 6d 70 #toc-Implementation-Details">Imp
484e0 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 44 65 74 61 69 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 lementation.Details</a>.<a.class
48500 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 44 65 74 ="hdr".href="#Implementation-Det
48520 61 69 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 ails">..</a></h3>........<p>....
48540 20 20 20 54 6f 20 61 6e 61 6c 79 7a 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 63 6f 73 74 2c 20 ...To.analyze.performance.cost,.
48560 74 68 65 72 65 20 61 72 65 20 74 77 6f 20 63 61 73 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a there.are.two.cases:.......</p>.
48580 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 77 68 65 6e 20 6e 6f 20 65 ......<ul>.........<li>when.no.e
485a0 72 72 6f 72 73 20 61 72 65 20 72 65 74 75 72 6e 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 rrors.are.returned</li>.........
485c0 3c 6c 69 3e 77 68 65 6e 20 72 65 74 75 72 6e 69 6e 67 20 65 72 72 6f 72 73 3c 2f 6c 69 3e 0a 20 <li>when.returning.errors</li>..
485e0 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 74 .....</ul>.......<p>.......For.t
48600 68 65 20 63 61 73 65 20 77 68 65 6e 20 6e 6f 20 65 72 72 6f 72 73 20 61 72 65 20 72 65 74 75 72 he.case.when.no.errors.are.retur
48620 6e 65 64 2c 20 74 68 65 20 63 6f 73 74 20 69 73 20 61 20 73 69 6e 67 6c 65 20 6d 65 6d 6f 72 79 ned,.the.cost.is.a.single.memory
48640 20 77 72 69 74 65 20 6f 70 65 72 61 74 69 6f 6e 2c 20 6f 6e 6c 79 20 69 6e 20 74 68 65 20 66 69 .write.operation,.only.in.the.fi
48660 72 73 74 20 6e 6f 6e 2d 66 61 69 6c 61 62 6c 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 rst.non-failable.function.in.the
48680 20 63 61 6c 6c 20 67 72 61 70 68 20 74 68 61 74 20 63 61 6c 6c 73 20 61 20 66 61 69 6c 61 62 6c .call.graph.that.calls.a.failabl
486a0 65 20 66 75 6e 63 74 69 6f 6e 2c 20 69 2e 65 2e 20 77 68 65 6e 20 61 20 66 75 6e 63 74 69 6f 6e e.function,.i.e..when.a.function
486c0 20 72 65 74 75 72 6e 69 6e 67 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .returning.<code.class="zig"><sp
486e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c an.class="tok-type">void</span><
48700 2f 63 6f 64 65 3e 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 69 6e /code>.calls.a.function.returnin
48720 67 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d g.<code.class="zig"><span.class=
48740 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 "tok-kw">error</span></code>....
48760 20 20 20 20 54 68 69 73 20 69 73 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 69 73 20 73 ....This.is.to.initialize.this.s
48780 74 72 75 63 74 20 69 6e 20 74 68 65 20 73 74 61 63 6b 20 6d 65 6d 6f 72 79 3a 0a 20 20 20 20 20 truct.in.the.stack.memory:......
487a0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .</p>.......<pre><code.class="zi
487c0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 g"><span.class="tok-kw">pub</spa
487e0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 n>.<span.class="tok-kw">const</s
48800 70 61 6e 3e 20 53 74 61 63 6b 54 72 61 63 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>.StackTrace.=.<span.class="t
48820 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 69 6e 64 65 78 ok-kw">struct</span>.{.....index
48840 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f :.<span.class="tok-type">usize</
48860 73 70 61 6e 3e 2c 0a 20 20 20 20 69 6e 73 74 72 75 63 74 69 6f 6e 5f 61 64 64 72 65 73 73 65 73 span>,.....instruction_addresses
48880 3a 20 5b 4e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a :.[N]<span.class="tok-type">usiz
488a0 65 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 e</span>,.};</code></pre>.......
488c0 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 2c 20 4e 20 69 73 20 74 68 65 20 6d 61 78 69 6d 75 6d <p>.......Here,.N.is.the.maximum
488e0 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 64 65 70 74 68 20 61 73 20 64 65 74 65 72 6d 69 6e .function.call.depth.as.determin
48900 65 64 20 62 79 20 63 61 6c 6c 20 67 72 61 70 68 20 61 6e 61 6c 79 73 69 73 2e 20 52 65 63 75 72 ed.by.call.graph.analysis..Recur
48920 73 69 6f 6e 20 69 73 20 69 67 6e 6f 72 65 64 20 61 6e 64 20 63 6f 75 6e 74 73 20 66 6f 72 20 32 sion.is.ignored.and.counts.for.2
48940 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 70 ........</p>.......<p>.......A.p
48960 6f 69 6e 74 65 72 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 53 74 61 63 ointer.to.<code.class="zig">Stac
48980 6b 54 72 61 63 65 3c 2f 63 6f 64 65 3e 20 69 73 20 70 61 73 73 65 64 20 61 73 20 61 20 73 65 63 kTrace</code>.is.passed.as.a.sec
489a0 72 65 74 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 65 76 65 72 79 20 66 75 6e 63 74 69 6f 6e 20 ret.parameter.to.every.function.
489c0 74 68 61 74 20 63 61 6e 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 2c 20 62 75 74 20 69 74 that.can.return.an.error,.but.it
489e0 27 73 20 61 6c 77 61 79 73 20 74 68 65 20 66 69 72 73 74 20 70 61 72 61 6d 65 74 65 72 2c 20 73 's.always.the.first.parameter,.s
48a00 6f 20 69 74 20 63 61 6e 20 6c 69 6b 65 6c 79 20 73 69 74 20 69 6e 20 61 20 72 65 67 69 73 74 65 o.it.can.likely.sit.in.a.registe
48a20 72 20 61 6e 64 20 73 74 61 79 20 74 68 65 72 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 r.and.stay.there........</p>....
48a40 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 61 74 27 73 20 69 74 20 66 6f 72 20 74 68 65 20 70 ...<p>.......That's.it.for.the.p
48a60 61 74 68 20 77 68 65 6e 20 6e 6f 20 65 72 72 6f 72 73 20 6f 63 63 75 72 2e 20 49 74 27 73 20 70 ath.when.no.errors.occur..It's.p
48a80 72 61 63 74 69 63 61 6c 6c 79 20 66 72 65 65 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 70 65 72 66 ractically.free.in.terms.of.perf
48aa0 6f 72 6d 61 6e 63 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 ormance........</p>.......<p>...
48ac0 20 20 20 20 57 68 65 6e 20 67 65 6e 65 72 61 74 69 6e 67 20 74 68 65 20 63 6f 64 65 20 66 6f 72 ....When.generating.the.code.for
48ae0 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f .a.function.that.returns.an.erro
48b00 72 2c 20 6a 75 73 74 20 62 65 66 6f 72 65 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 r,.just.before.the.<code.class="
48b20 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e zig"><span.class="tok-kw">return
48b40 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 73 74 61 74 65 6d 65 6e 74 20 28 6f 6e 6c 79 20 66 </span></code>.statement.(only.f
48b60 6f 72 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 or.the.<code.class="zig"><span.c
48b80 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 lass="tok-kw">return</span></cod
48ba0 65 3e 20 73 74 61 74 65 6d 65 6e 74 73 20 74 68 61 74 20 72 65 74 75 72 6e 20 65 72 72 6f 72 73 e>.statements.that.return.errors
48bc0 29 2c 20 5a 69 67 20 67 65 6e 65 72 61 74 65 73 20 61 20 63 61 6c 6c 20 74 6f 20 74 68 69 73 20 ),.Zig.generates.a.call.to.this.
48be0 66 75 6e 63 74 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e function:.......</p>.......<pre>
48c00 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
48c20 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6d 61 72 6b 65 64 20 61 73 20 26 71 75 6f 74 3b 6e ok-comment">//.marked.as.&quot;n
48c40 6f 2d 69 6e 6c 69 6e 65 26 71 75 6f 74 3b 20 69 6e 20 4c 4c 56 4d 20 49 52 3c 2f 73 70 61 6e 3e o-inline&quot;.in.LLVM.IR</span>
48c60 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">fn</span>.
48c80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 5f 5f 7a 69 67 5f 72 65 74 75 72 <span.class="tok-fn">__zig_retur
48ca0 6e 5f 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 73 74 61 63 6b 5f 74 72 61 63 65 3a 20 2a 53 74 61 n_error</span>(stack_trace:.*Sta
48cc0 63 6b 54 72 61 63 65 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ckTrace).<span.class="tok-type">
48ce0 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 73 74 61 63 6b 5f 74 72 61 63 65 2e 69 6e void</span>.{.....stack_trace.in
48d00 73 74 72 75 63 74 69 6f 6e 5f 61 64 64 72 65 73 73 65 73 5b 73 74 61 63 6b 5f 74 72 61 63 65 2e struction_addresses[stack_trace.
48d20 69 6e 64 65 78 5d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 index].=.<span.class="tok-builti
48d40 6e 22 3e 40 72 65 74 75 72 6e 41 64 64 72 65 73 73 3c 2f 73 70 61 6e 3e 28 29 3b 0a 20 20 20 20 n">@returnAddress</span>();.....
48d60 73 74 61 63 6b 5f 74 72 61 63 65 2e 69 6e 64 65 78 20 3d 20 28 73 74 61 63 6b 5f 74 72 61 63 65 stack_trace.index.=.(stack_trace
48d80 2e 69 6e 64 65 78 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 .index.+.<span.class="tok-number
48da0 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 25 20 4e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a ">1</span>).%.N;.}</code></pre>.
48dc0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 63 6f 73 74 20 69 73 20 32 20 6d 61 ......<p>.......The.cost.is.2.ma
48de0 74 68 20 6f 70 65 72 61 74 69 6f 6e 73 20 70 6c 75 73 20 73 6f 6d 65 20 6d 65 6d 6f 72 79 20 72 th.operations.plus.some.memory.r
48e00 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 2e 20 54 68 65 20 6d 65 6d 6f 72 79 20 61 63 63 65 eads.and.writes..The.memory.acce
48e20 73 73 65 64 20 69 73 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 61 6e 64 20 73 68 6f 75 6c 64 20 72 ssed.is.constrained.and.should.r
48e40 65 6d 61 69 6e 20 63 61 63 68 65 64 20 66 6f 72 20 74 68 65 20 64 75 72 61 74 69 6f 6e 20 6f 66 emain.cached.for.the.duration.of
48e60 20 74 68 65 20 65 72 72 6f 72 20 72 65 74 75 72 6e 20 62 75 62 62 6c 69 6e 67 2e 0a 20 20 20 20 .the.error.return.bubbling......
48e80 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 73 20 66 6f 72 20 63 6f ..</p>.......<p>.......As.for.co
48ea0 64 65 20 73 69 7a 65 20 63 6f 73 74 2c 20 31 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 62 65 de.size.cost,.1.function.call.be
48ec0 66 6f 72 65 20 61 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 6e 6f 20 62 69 fore.a.return.statement.is.no.bi
48ee0 67 20 64 65 61 6c 2e 20 45 76 65 6e 20 73 6f 2c 0a 20 20 20 20 20 20 49 20 68 61 76 65 20 3c 61 g.deal..Even.so,.......I.have.<a
48f00 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e .href="https://github.com/ziglan
48f20 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 36 39 30 22 3e 61 20 70 6c 61 6e 3c 2f 61 3e 20 74 6f 20 g/zig/issues/690">a.plan</a>.to.
48f40 6d 61 6b 65 20 74 68 65 20 63 61 6c 6c 20 74 6f 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 make.the.call.to.......<code.cla
48f60 73 73 3d 22 7a 69 67 22 3e 5f 5f 7a 69 67 5f 72 65 74 75 72 6e 5f 65 72 72 6f 72 3c 2f 63 6f 64 ss="zig">__zig_return_error</cod
48f80 65 3e 20 61 20 74 61 69 6c 20 63 61 6c 6c 2c 20 77 68 69 63 68 20 62 72 69 6e 67 73 20 74 68 65 e>.a.tail.call,.which.brings.the
48fa0 20 63 6f 64 65 20 73 69 7a 65 20 63 6f 73 74 20 64 6f 77 6e 20 74 6f 20 61 63 74 75 61 6c 6c 79 .code.size.cost.down.to.actually
48fc0 20 7a 65 72 6f 2e 20 57 68 61 74 20 69 73 20 61 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e .zero..What.is.a.return.statemen
48fe0 74 20 69 6e 20 63 6f 64 65 20 77 69 74 68 6f 75 74 20 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 t.in.code.without.error.return.t
49000 72 61 63 69 6e 67 20 63 61 6e 20 62 65 63 6f 6d 65 20 61 20 6a 75 6d 70 20 69 6e 73 74 72 75 63 racing.can.become.a.jump.instruc
49020 74 69 6f 6e 20 69 6e 20 63 6f 64 65 20 77 69 74 68 20 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 tion.in.code.with.error.return.t
49040 72 61 63 69 6e 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 racing........</p>..............
49060 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 4f 70 74 69 6f 6e 61 6c 73 22 ..............<h1.id="Optionals"
49080 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e ><a.href="#toc-Optionals">Option
490a0 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4f 70 als</a>.<a.class="hdr".href="#Op
490c0 74 69 6f 6e 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a tionals">..</a></h1>........<p>.
490e0 20 20 20 20 20 20 4f 6e 65 20 61 72 65 61 20 74 68 61 74 20 5a 69 67 20 70 72 6f 76 69 64 65 73 ......One.area.that.Zig.provides
49100 20 73 61 66 65 74 79 20 77 69 74 68 6f 75 74 20 63 6f 6d 70 72 6f 6d 69 73 69 6e 67 20 65 66 66 .safety.without.compromising.eff
49120 69 63 69 65 6e 63 79 20 6f 72 0a 20 20 20 20 20 20 72 65 61 64 61 62 69 6c 69 74 79 20 69 73 20 iciency.or.......readability.is.
49140 77 69 74 68 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f with.the.optional.type........</
49160 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 71 75 65 73 74 69 6f 6e 20 p>.......<p>.......The.question.
49180 6d 61 72 6b 20 73 79 6d 62 6f 6c 69 7a 65 73 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 mark.symbolizes.the.optional.typ
491a0 65 2e 20 59 6f 75 20 63 61 6e 20 63 6f 6e 76 65 72 74 20 61 20 74 79 70 65 20 74 6f 20 61 6e 20 e..You.can.convert.a.type.to.an.
491c0 6f 70 74 69 6f 6e 61 6c 0a 20 20 20 20 20 20 74 79 70 65 20 62 79 20 70 75 74 74 69 6e 67 20 61 optional.......type.by.putting.a
491e0 20 71 75 65 73 74 69 6f 6e 20 6d 61 72 6b 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 69 74 2c 20 6c .question.mark.in.front.of.it,.l
49200 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e ike.this:.......</p>.......<pre>
49220 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
49240 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6e 6f 72 6d 61 6c 20 69 6e 74 65 67 65 72 3c 2f 73 ok-comment">//.normal.integer</s
49260 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c pan>.<span.class="tok-kw">const<
49280 2f 73 70 61 6e 3e 20 6e 6f 72 6d 61 6c 5f 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 /span>.normal_int:.<span.class="
492a0 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 tok-type">i32</span>.=.<span.cla
492c0 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 ss="tok-number">1234</span>;..<s
492e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 70 74 69 6f pan.class="tok-comment">//.optio
49300 6e 61 6c 20 69 6e 74 65 67 65 72 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 nal.integer</span>.<span.class="
49320 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 70 74 69 6f 6e 61 6c 5f 69 6e tok-kw">const</span>.optional_in
49340 74 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f t:.?<span.class="tok-type">i32</
49360 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 span>.=.<span.class="tok-number"
49380 3e 35 36 37 38 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 >5678</span>;</code></pre>......
493a0 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 77 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 3c 63 6f 64 .<p>.......Now.the.variable.<cod
493c0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6f 70 74 69 6f 6e 61 6c 5f 69 6e 74 3c 2f 63 6f 64 65 e.class="zig">optional_int</code
493e0 3e 20 63 6f 75 6c 64 20 62 65 20 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e >.could.be.an.<code.class="zig">
49400 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e <span.class="tok-type">i32</span
49420 3e 3c 2f 63 6f 64 65 3e 2c 20 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ></code>,.or.<code.class="zig"><
49440 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e span.class="tok-null">null</span
49460 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 ></code>........</p>.......<p>..
49480 20 20 20 20 20 49 6e 73 74 65 61 64 20 6f 66 20 69 6e 74 65 67 65 72 73 2c 20 6c 65 74 27 73 20 .....Instead.of.integers,.let's.
494a0 74 61 6c 6b 20 61 62 6f 75 74 20 70 6f 69 6e 74 65 72 73 2e 20 4e 75 6c 6c 20 72 65 66 65 72 65 talk.about.pointers..Null.refere
494c0 6e 63 65 73 20 61 72 65 20 74 68 65 20 73 6f 75 72 63 65 20 6f 66 20 6d 61 6e 79 20 72 75 6e 74 nces.are.the.source.of.many.runt
494e0 69 6d 65 0a 20 20 20 20 20 20 65 78 63 65 70 74 69 6f 6e 73 2c 20 61 6e 64 20 65 76 65 6e 20 73 ime.......exceptions,.and.even.s
49500 74 61 6e 64 20 61 63 63 75 73 65 64 20 6f 66 20 62 65 69 6e 67 0a 20 20 20 20 20 20 3c 61 20 68 tand.accused.of.being.......<a.h
49520 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 6c 75 63 69 64 63 68 61 72 74 2e 63 6f 6d 2f ref="https://www.lucidchart.com/
49540 74 65 63 68 62 6c 6f 67 2f 32 30 31 35 2f 30 38 2f 33 31 2f 74 68 65 2d 77 6f 72 73 74 2d 6d 69 techblog/2015/08/31/the-worst-mi
49560 73 74 61 6b 65 2d 6f 66 2d 63 6f 6d 70 75 74 65 72 2d 73 63 69 65 6e 63 65 2f 22 3e 74 68 65 20 stake-of-computer-science/">the.
49580 77 6f 72 73 74 20 6d 69 73 74 61 6b 65 20 6f 66 20 63 6f 6d 70 75 74 65 72 20 73 63 69 65 6e 63 worst.mistake.of.computer.scienc
495a0 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 64 e</a>........</p>.......<p>Zig.d
495c0 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 74 68 65 6d 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e oes.not.have.them.</p>.......<p>
495e0 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 61 6e 20 6f .......Instead,.you.can.use.an.o
49600 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 2e 20 54 68 69 73 20 73 65 63 72 65 74 6c 79 20 63 ptional.pointer..This.secretly.c
49620 6f 6d 70 69 6c 65 73 20 64 6f 77 6e 20 74 6f 20 61 20 6e 6f 72 6d 61 6c 20 70 6f 69 6e 74 65 72 ompiles.down.to.a.normal.pointer
49640 2c 0a 20 20 20 20 20 20 73 69 6e 63 65 20 77 65 20 6b 6e 6f 77 20 77 65 20 63 61 6e 20 75 73 65 ,.......since.we.know.we.can.use
49660 20 30 20 61 73 20 74 68 65 20 6e 75 6c 6c 20 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 6f 70 74 .0.as.the.null.value.for.the.opt
49680 69 6f 6e 61 6c 20 74 79 70 65 2e 20 42 75 74 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20 ional.type..But.the.compiler....
496a0 20 20 20 63 61 6e 20 63 68 65 63 6b 20 79 6f 75 72 20 77 6f 72 6b 20 61 6e 64 20 6d 61 6b 65 20 ...can.check.your.work.and.make.
496c0 73 75 72 65 20 79 6f 75 20 64 6f 6e 27 74 20 61 73 73 69 67 6e 20 6e 75 6c 6c 20 74 6f 20 73 6f sure.you.don't.assign.null.to.so
496e0 6d 65 74 68 69 6e 67 20 74 68 61 74 20 63 61 6e 27 74 20 62 65 20 6e 75 6c 6c 2e 0a 20 20 20 20 mething.that.can't.be.null......
49700 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 79 70 69 63 61 6c 6c 79 ..</p>.......<p>.......Typically
49720 20 74 68 65 20 64 6f 77 6e 73 69 64 65 20 6f 66 20 6e 6f 74 20 68 61 76 69 6e 67 20 6e 75 6c 6c .the.downside.of.not.having.null
49740 20 69 73 20 74 68 61 74 20 69 74 20 6d 61 6b 65 73 20 74 68 65 20 63 6f 64 65 20 6d 6f 72 65 20 .is.that.it.makes.the.code.more.
49760 76 65 72 62 6f 73 65 20 74 6f 0a 20 20 20 20 20 20 77 72 69 74 65 2e 20 42 75 74 2c 20 6c 65 74 verbose.to.......write..But,.let
49780 27 73 20 63 6f 6d 70 61 72 65 20 73 6f 6d 65 20 65 71 75 69 76 61 6c 65 6e 74 20 43 20 63 6f 64 's.compare.some.equivalent.C.cod
497a0 65 20 61 6e 64 20 5a 69 67 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 e.and.Zig.code........</p>......
497c0 20 3c 70 3e 0a 20 20 20 20 20 20 54 61 73 6b 3a 20 63 61 6c 6c 20 6d 61 6c 6c 6f 63 2c 20 69 66 .<p>.......Task:.call.malloc,.if
497e0 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 6e 75 6c 6c 2c 20 72 65 74 75 72 6e 20 6e 75 6c 6c .the.result.is.null,.return.null
49800 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 43 20 63 6f 64 65 3c 2f 70 3e ........</p>.......<p>C.code</p>
49820 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 70 70 22 3e 2f 2f .......<pre><code.class="cpp">//
49840 20 6d 61 6c 6c 6f 63 20 70 72 6f 74 6f 74 79 70 65 20 69 6e 63 6c 75 64 65 64 20 66 6f 72 20 72 .malloc.prototype.included.for.r
49860 65 66 65 72 65 6e 63 65 0a 76 6f 69 64 20 2a 6d 61 6c 6c 6f 63 28 73 69 7a 65 5f 74 20 73 69 7a eference.void.*malloc(size_t.siz
49880 65 29 3b 0a 0a 73 74 72 75 63 74 20 46 6f 6f 20 2a 64 6f 5f 61 5f 74 68 69 6e 67 28 76 6f 69 64 e);..struct.Foo.*do_a_thing(void
498a0 29 20 7b 0a 20 20 20 20 63 68 61 72 20 2a 70 74 72 20 3d 20 6d 61 6c 6c 6f 63 28 31 32 33 34 29 ).{.....char.*ptr.=.malloc(1234)
498c0 3b 0a 20 20 20 20 69 66 20 28 21 70 74 72 29 20 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 20 20 20 ;.....if.(!ptr).return.NULL;....
498e0 20 2f 2f 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e .//.....}</code></pre>.......<p>
49900 5a 69 67 20 63 6f 64 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c Zig.code</p>.......<pre><code.cl
49920 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 ass="zig"><span.class="tok-comme
49940 6e 74 22 3e 2f 2f 20 6d 61 6c 6c 6f 63 20 70 72 6f 74 6f 74 79 70 65 20 69 6e 63 6c 75 64 65 64 nt">//.malloc.prototype.included
49960 20 66 6f 72 20 72 65 66 65 72 65 6e 63 65 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 .for.reference</span>.<span.clas
49980 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 s="tok-kw">extern</span>.<span.c
499a0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c lass="tok-kw">fn</span>.<span.cl
499c0 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 6c 6c 6f 63 3c 2f 73 70 61 6e 3e 28 73 69 7a 65 3a ass="tok-fn">malloc</span>(size:
499e0 20 73 69 7a 65 5f 74 29 20 3f 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .size_t).?*<span.class="tok-type
49a00 22 3e 75 38 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ">u8</span>;..<span.class="tok-k
49a20 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e w">fn</span>.<span.class="tok-fn
49a40 22 3e 64 6f 41 54 68 69 6e 67 3c 2f 73 70 61 6e 3e 28 29 20 3f 2a 46 6f 6f 20 7b 0a 20 20 20 20 ">doAThing</span>().?*Foo.{.....
49a60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
49a80 3e 20 70 74 72 20 3d 20 6d 61 6c 6c 6f 63 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >.ptr.=.malloc(<span.class="tok-
49aa0 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 number">1234</span>).<span.class
49ac0 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ="tok-kw">orelse</span>.<span.cl
49ae0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e ass="tok-kw">return</span>.<span
49b00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 20 .class="tok-null">null</span>;..
49b20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 ...<span.class="tok-comment">//.
49b40 2e 2e 2e 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 ...</span>.}</code></pre>.......
49b60 3c 70 3e 0a 20 20 20 20 20 20 20 20 48 65 72 65 2c 20 5a 69 67 20 69 73 20 61 74 20 6c 65 61 73 <p>.........Here,.Zig.is.at.leas
49b80 74 20 61 73 20 63 6f 6e 76 65 6e 69 65 6e 74 2c 20 69 66 20 6e 6f 74 20 6d 6f 72 65 2c 20 74 68 t.as.convenient,.if.not.more,.th
49ba0 61 6e 20 43 2e 20 41 6e 64 2c 20 74 68 65 20 74 79 70 65 20 6f 66 20 22 70 74 72 22 0a 20 20 20 an.C..And,.the.type.of."ptr"....
49bc0 20 20 20 20 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 3c 73 70 61 6e .....is.<code.class="zig">*<span
49be0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 .class="tok-type">u8</span></cod
49c00 65 3e 20 3c 65 6d 3e 6e 6f 74 3c 2f 65 6d 3e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 e>.<em>not</em>.<code.class="zig
49c20 22 3e 3f 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 ">?*<span.class="tok-type">u8</s
49c40 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 pan></code>..The.<code.class="zi
49c60 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 65 6c 73 65 3c 2f g"><span.class="tok-kw">orelse</
49c80 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 span></code>.keyword............
49ca0 20 20 20 20 20 20 20 20 20 75 6e 77 72 61 70 70 65 64 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 .........unwrapped.the.optional.
49cc0 74 79 70 65 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 type.and.therefore.<code.class="
49ce0 7a 69 67 22 3e 70 74 72 3c 2f 63 6f 64 65 3e 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f zig">ptr</code>.is.guaranteed.to
49d00 20 62 65 20 6e 6f 6e 2d 6e 75 6c 6c 20 65 76 65 72 79 77 68 65 72 65 0a 20 20 20 20 20 20 20 20 .be.non-null.everywhere.........
49d20 69 74 20 69 73 20 75 73 65 64 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 it.is.used.in.the.function......
49d40 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 68 65 20 6f 74 68 ..</p>.......<p>.........The.oth
49d60 65 72 20 66 6f 72 6d 20 6f 66 20 63 68 65 63 6b 69 6e 67 20 61 67 61 69 6e 73 74 20 4e 55 4c 4c er.form.of.checking.against.NULL
49d80 20 79 6f 75 20 6d 69 67 68 74 20 73 65 65 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 68 69 73 3a 0a .you.might.see.looks.like.this:.
49da0 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 ......</p>.......<pre><code.clas
49dc0 73 3d 22 63 70 70 22 3e 76 6f 69 64 20 64 6f 5f 61 5f 74 68 69 6e 67 28 73 74 72 75 63 74 20 46 s="cpp">void.do_a_thing(struct.F
49de0 6f 6f 20 2a 66 6f 6f 29 20 7b 0a 20 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 0a oo.*foo).{.....//.do.some.stuff.
49e00 0a 20 20 20 20 69 66 20 28 66 6f 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 64 6f 5f 73 6f 6d 65 74 .....if.(foo).{.........do_somet
49e20 68 69 6e 67 5f 77 69 74 68 5f 66 6f 6f 28 66 6f 6f 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f hing_with_foo(foo);.....}....../
49e40 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 /.do.some.stuff.}</code></pre>..
49e60 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 49 6e 20 5a 69 67 20 79 6f 75 20 63 61 6e 20 .....<p>.........In.Zig.you.can.
49e80 61 63 63 6f 6d 70 6c 69 73 68 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 3a 0a 20 20 20 20 20 accomplish.the.same.thing:......
49ea0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .</p>.......<pre><code.class="zi
49ec0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e g"><span.class="tok-kw">fn</span
49ee0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 6f 41 54 68 69 6e 67 3c >.<span.class="tok-fn">doAThing<
49f00 2f 73 70 61 6e 3e 28 6f 70 74 69 6f 6e 61 6c 5f 66 6f 6f 3a 20 3f 2a 46 6f 6f 29 20 3c 73 70 61 /span>(optional_foo:.?*Foo).<spa
49f20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b n.class="tok-type">void</span>.{
49f40 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f .....<span.class="tok-comment">/
49f60 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 3c 73 70 61 /.do.some.stuff</span>......<spa
49f80 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 6f 70 74 69 n.class="tok-kw">if</span>.(opti
49fa0 6f 6e 61 6c 5f 66 6f 6f 29 20 7c 66 6f 6f 7c 20 7b 0a 20 20 20 20 20 20 64 6f 53 6f 6d 65 74 68 onal_foo).|foo|.{.......doSometh
49fc0 69 6e 67 57 69 74 68 46 6f 6f 28 66 6f 6f 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 ingWithFoo(foo);.....}......<spa
49fe0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 64 6f 20 73 6f 6d 65 n.class="tok-comment">//.do.some
4a000 20 73 74 75 66 66 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 .stuff</span>.}</code></pre>....
4a020 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 6e 63 65 20 61 67 61 69 6e 2c 20 74 68 65 20 6e 6f 74 ...<p>.......Once.again,.the.not
4a040 61 62 6c 65 20 74 68 69 6e 67 20 68 65 72 65 20 69 73 20 74 68 61 74 20 69 6e 73 69 64 65 20 74 able.thing.here.is.that.inside.t
4a060 68 65 20 69 66 20 62 6c 6f 63 6b 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 he.if.block,.......<code.class="
4a080 7a 69 67 22 3e 66 6f 6f 3c 2f 63 6f 64 65 3e 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 6e 20 zig">foo</code>.is.no.longer.an.
4a0a0 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 2c 20 69 74 20 69 73 20 61 20 70 6f 69 6e 74 65 optional.pointer,.it.is.a.pointe
4a0c0 72 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 65 20 6e 75 6c 6c 2e 0a 20 r,.which.......cannot.be.null...
4a0e0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 6e 65 20 62 65 .....</p>.......<p>.......One.be
4a100 6e 65 66 69 74 20 74 6f 20 74 68 69 73 20 69 73 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 73 20 nefit.to.this.is.that.functions.
4a120 77 68 69 63 68 20 74 61 6b 65 20 70 6f 69 6e 74 65 72 73 20 61 73 20 61 72 67 75 6d 65 6e 74 73 which.take.pointers.as.arguments
4a140 20 63 61 6e 0a 20 20 20 20 20 20 62 65 20 61 6e 6e 6f 74 61 74 65 64 20 77 69 74 68 20 74 68 65 .can.......be.annotated.with.the
4a160 20 22 6e 6f 6e 6e 75 6c 6c 22 20 61 74 74 72 69 62 75 74 65 20 2d 20 3c 63 6f 64 65 3e 5f 5f 61 ."nonnull".attribute.-.<code>__a
4a180 74 74 72 69 62 75 74 65 5f 5f 28 28 6e 6f 6e 6e 75 6c 6c 29 29 3c 2f 63 6f 64 65 3e 20 69 6e 0a ttribute__((nonnull))</code>.in.
4a1a0 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 63 63 2e 67 6e 75 2e 6f ......<a.href="https://gcc.gnu.o
4a1c0 72 67 2f 6f 6e 6c 69 6e 65 64 6f 63 73 2f 67 63 63 2d 34 2e 30 2e 30 2f 67 63 63 2f 46 75 6e 63 rg/onlinedocs/gcc-4.0.0/gcc/Func
4a1e0 74 69 6f 6e 2d 41 74 74 72 69 62 75 74 65 73 2e 68 74 6d 6c 22 3e 47 43 43 3c 2f 61 3e 2e 0a 20 tion-Attributes.html">GCC</a>...
4a200 20 20 20 20 20 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 .....The.optimizer.can.sometimes
4a220 20 6d 61 6b 65 20 62 65 74 74 65 72 20 64 65 63 69 73 69 6f 6e 73 20 6b 6e 6f 77 69 6e 67 20 74 .make.better.decisions.knowing.t
4a240 68 61 74 20 70 6f 69 6e 74 65 72 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 20 20 20 63 61 6e 6e hat.pointer.arguments.......cann
4a260 6f 74 20 62 65 20 6e 75 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 ot.be.null........</p>.......<h2
4a280 20 69 64 3d 22 4f 70 74 69 6f 6e 61 6c 2d 54 79 70 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f .id="Optional-Type"><a.href="#to
4a2a0 63 2d 4f 70 74 69 6f 6e 61 6c 2d 54 79 70 65 22 3e 4f 70 74 69 6f 6e 61 6c 20 54 79 70 65 3c 2f c-Optional-Type">Optional.Type</
4a2c0 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 a>.<a.class="hdr".href="#Optiona
4a2e0 6c 2d 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e l-Type">..</a></h2>........<p>An
4a300 20 6f 70 74 69 6f 6e 61 6c 20 69 73 20 63 72 65 61 74 65 64 20 62 79 20 70 75 74 74 69 6e 67 20 .optional.is.created.by.putting.
4a320 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3f 3c 2f 63 6f 64 65 3e 20 69 6e 20 66 72 <code.class="zig">?</code>.in.fr
4a340 6f 6e 74 20 6f 66 20 61 20 74 79 70 65 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 20 63 6f 6d 70 69 ont.of.a.type..You.can.use.compi
4a360 6c 65 2d 74 69 6d 65 0a 20 20 20 20 20 20 72 65 66 6c 65 63 74 69 6f 6e 20 74 6f 20 61 63 63 65 le-time.......reflection.to.acce
4a380 73 73 20 74 68 65 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 61 6e 20 6f 70 74 69 6f 6e 61 6c ss.the.child.type.of.an.optional
4a3a0 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 :</p>.......<p.class="file">test
4a3c0 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .zig</p><pre><code.class="zig"><
4a3e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
4a400 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 .assert.=.<span.class="tok-built
4a420 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
4a440 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
4a460 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .debug.assert;..<span.class="tok
4a480 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f -kw">test</span>.<span.class="to
4a4a0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 26 71 75 6f 74 3b k-str">&quot;optional.type&quot;
4a4c0 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 </span>.{.....<span.class="tok-c
4a4e0 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 44 65 63 6c 61 72 65 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 61 omment">//.Declare.an.optional.a
4a500 6e 64 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 66 72 6f 6d 20 6e 75 6c 6c 3a 3c 2f 73 nd.implicitly.cast.from.null:</s
4a520 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 pan>.....<span.class="tok-kw">va
4a540 72 3c 2f 73 70 61 6e 3e 20 66 6f 6f 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r</span>.foo:.?<span.class="tok-
4a560 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 type">i32</span>.=.<span.class="
4a580 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 61 tok-null">null</span>;......<spa
4a5a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 6d 70 6c 69 63 69 n.class="tok-comment">//.Implici
4a5c0 74 6c 79 20 63 61 73 74 20 66 72 6f 6d 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 61 6e 20 6f tly.cast.from.child.type.of.an.o
4a5e0 70 74 69 6f 6e 61 6c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 ptional</span>.....foo.=.<span.c
4a600 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 0a lass="tok-number">1234</span>;..
4a620 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f ....<span.class="tok-comment">//
4a640 20 55 73 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 72 65 66 6c 65 63 74 69 6f 6e 20 74 6f 20 .Use.compile-time.reflection.to.
4a660 61 63 63 65 73 73 20 74 68 65 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 74 68 65 20 6f 70 74 access.the.child.type.of.the.opt
4a680 69 6f 6e 61 6c 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ional:</span>.....<span.class="t
4a6a0 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 28 3c 73 ok-kw">comptime</span>.assert(<s
4a6c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c pan.class="tok-builtin">@typeOf<
4a6e0 2f 73 70 61 6e 3e 28 66 6f 6f 29 2e 43 68 69 6c 64 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 /span>(foo).Child.==.<span.class
4a700 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 ="tok-type">i32</span>);.}</code
4a720 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e ></pre><pre><code.class="shell">
4a740 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 $.zig.test.test.zig.1/1.test.&qu
4a760 6f 74 3b 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 ot;optional.type&quot;...OK.All.
4a780 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 tests.passed..</code></pre>.....
4a7a0 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6e 75 6c 6c 22 3e 3c 61 20 68 72 65 66 3d ..........<h2.id="null"><a.href=
4a7c0 22 23 74 6f 63 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 "#toc-null">null</a>.<a.class="h
4a7e0 64 72 22 20 68 72 65 66 3d 22 23 6e 75 6c 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 dr".href="#null">..</a></h2>....
4a800 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4a 75 73 74 20 6c 69 6b 65 20 3c 61 20 68 72 65 66 3d ....<p>.......Just.like.<a.href=
4a820 22 23 75 6e 64 65 66 69 6e 65 64 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 2c 20 3c 63 6f 64 "#undefined">undefined</a>,.<cod
4a840 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e e.class="zig"><span.class="tok-n
4a860 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 69 74 73 20 ull">null</span></code>.has.its.
4a880 6f 77 6e 20 74 79 70 65 2c 20 61 6e 64 20 74 68 65 20 6f 6e 6c 79 20 77 61 79 20 74 6f 20 75 73 own.type,.and.the.only.way.to.us
4a8a0 65 20 69 74 20 69 73 20 74 6f 0a 20 20 20 20 20 20 63 61 73 74 20 69 74 20 74 6f 20 61 20 64 69 e.it.is.to.......cast.it.to.a.di
4a8c0 66 66 65 72 65 6e 74 20 74 79 70 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c fferent.type:.......</p>.......<
4a8e0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
4a900 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 70 74 69 6f 6e 61 6c s="tok-kw">const</span>.optional
4a920 5f 76 61 6c 75 65 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e _value:.?<span.class="tok-type">
4a940 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 i32</span>.=.<span.class="tok-nu
4a960 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 ll">null</span>;</code></pre>...
4a980 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e ...........<h2.id="Optional-Poin
4a9a0 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 ters"><a.href="#toc-Optional-Poi
4a9c0 6e 74 65 72 73 22 3e 4f 70 74 69 6f 6e 61 6c 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 3c 61 20 nters">Optional.Pointers</a>.<a.
4a9e0 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e class="hdr".href="#Optional-Poin
4aa00 74 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e 20 6f ters">..</a></h2>........<p>An.o
4aa20 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f ptional.pointer.is.guaranteed.to
4aa40 20 62 65 20 74 68 65 20 73 61 6d 65 20 73 69 7a 65 20 61 73 20 61 20 70 6f 69 6e 74 65 72 2e 20 .be.the.same.size.as.a.pointer..
4aa60 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 The.<code.class="zig"><span.clas
4aa80 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 s="tok-null">null</span></code>.
4aaa0 6f 66 0a 20 20 20 20 20 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 69 73 20 67 75 61 72 61 6e 74 of.......the.optional.is.guarant
4aac0 65 65 64 20 74 6f 20 62 65 20 61 64 64 72 65 73 73 20 30 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c eed.to.be.address.0.</p>.......<
4aae0 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e p.class="file">test.zig</p><pre>
4ab00 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
4ab20 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 ok-kw">const</span>.assert.=.<sp
4ab40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f an.class="tok-builtin">@import</
4ab60 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>(<span.class="tok-str">&quo
4ab80 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 t;std&quot;</span>).debug.assert
4aba0 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 ;..<span.class="tok-kw">test</sp
4abc0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b an>.<span.class="tok-str">&quot;
4abe0 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b optional.pointers&quot;</span>.{
4ac00 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f .....<span.class="tok-comment">/
4ac20 2f 20 50 6f 69 6e 74 65 72 73 20 63 61 6e 6e 6f 74 20 62 65 20 6e 75 6c 6c 2e 20 49 66 20 79 6f /.Pointers.cannot.be.null..If.yo
4ac40 75 20 77 61 6e 74 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 2c 20 75 73 65 20 74 68 65 20 6f u.want.a.null.pointer,.use.the.o
4ac60 70 74 69 6f 6e 61 6c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ptional</span>.....<span.class="
4ac80 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 70 72 65 66 69 78 20 60 3f 60 20 74 6f 20 6d 61 tok-comment">//.prefix.`?`.to.ma
4aca0 6b 65 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 6f 70 74 69 6f 6e 61 6c 2e 3c 2f 73 ke.the.pointer.type.optional.</s
4acc0 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 pan>.....<span.class="tok-kw">va
4ace0 72 3c 2f 73 70 61 6e 3e 20 70 74 72 3a 20 3f 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b r</span>.ptr:.?*<span.class="tok
4ad00 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d -type">i32</span>.=.<span.class=
4ad20 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 "tok-null">null</span>;......<sp
4ad40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 an.class="tok-kw">var</span>.x:.
4ad60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e <span.class="tok-type">i32</span
4ad80 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f >.=.<span.class="tok-number">1</
4ada0 73 70 61 6e 3e 3b 0a 20 20 20 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 0a 20 20 20 20 61 73 span>;.....ptr.=.&amp;x;......as
4adc0 73 65 72 74 28 70 74 72 2e 3f 2e 2a 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b sert(ptr.?.*.==.<span.class="tok
4ade0 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 -number">1</span>);......<span.c
4ae00 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4f 70 74 69 6f 6e 61 6c 20 70 lass="tok-comment">//.Optional.p
4ae20 6f 69 6e 74 65 72 73 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 73 69 7a 65 20 61 73 20 6e 6f 72 ointers.are.the.same.size.as.nor
4ae40 6d 61 6c 20 70 6f 69 6e 74 65 72 73 2c 20 62 65 63 61 75 73 65 20 70 6f 69 6e 74 65 72 3c 2f 73 mal.pointers,.because.pointer</s
4ae60 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e pan>.....<span.class="tok-commen
4ae80 74 22 3e 2f 2f 20 76 61 6c 75 65 20 30 20 69 73 20 75 73 65 64 20 61 73 20 74 68 65 20 6e 75 6c t">//.value.0.is.used.as.the.nul
4aea0 6c 20 76 61 6c 75 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e l.value.</span>.....assert(<span
4aec0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 .class="tok-builtin">@sizeOf</sp
4aee0 61 6e 3e 28 3f 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 an>(?*<span.class="tok-type">i32
4af00 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 </span>).==.<span.class="tok-bui
4af20 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 61 6e 20 63 6c 61 73 ltin">@sizeOf</span>(*<span.clas
4af40 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 3c 2f 63 6f s="tok-type">i32</span>));.}</co
4af60 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
4af80 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 ">$.zig.test.test.zig.1/1.test.&
4afa0 71 75 6f 74 3b 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 73 26 71 75 6f 74 3b 2e 2e 2e 4f quot;optional.pointers&quot;...O
4afc0 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 K.All.tests.passed..</code></pre
4afe0 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 43 >......................<h1.id="C
4b000 61 73 74 69 6e 67 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 61 73 74 69 6e 67 22 3e 43 asting"><a.href="#toc-Casting">C
4b020 61 73 74 69 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 asting</a>.<a.class="hdr".href="
4b040 23 43 61 73 74 69 6e 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e #Casting">..</a></h1>........<p>
4b060 0a 20 20 20 20 20 20 41 20 3c 73 74 72 6f 6e 67 3e 74 79 70 65 20 63 61 73 74 3c 2f 73 74 72 6f .......A.<strong>type.cast</stro
4b080 6e 67 3e 20 63 6f 6e 76 65 72 74 73 20 61 20 76 61 6c 75 65 20 6f 66 20 6f 6e 65 20 74 79 70 65 ng>.converts.a.value.of.one.type
4b0a0 20 74 6f 20 61 6e 6f 74 68 65 72 2e 0a 20 20 20 20 20 20 5a 69 67 20 68 61 73 20 3c 61 20 68 72 .to.another........Zig.has.<a.hr
4b0c0 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 ef="#Implicit-Casts">Implicit.Ca
4b0e0 73 74 73 3c 2f 61 3e 20 66 6f 72 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 sts</a>.for.conversions.that.are
4b100 20 6b 6e 6f 77 6e 20 74 6f 20 62 65 20 63 6f 6d 70 6c 65 74 65 6c 79 20 73 61 66 65 20 61 6e 64 .known.to.be.completely.safe.and
4b120 20 75 6e 61 6d 62 69 67 75 6f 75 73 2c 0a 20 20 20 20 20 20 61 6e 64 20 3c 61 20 68 72 65 66 3d .unambiguous,.......and.<a.href=
4b140 22 23 45 78 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 45 78 70 6c 69 63 69 74 20 43 61 73 74 73 "#Explicit-Casts">Explicit.Casts
4b160 3c 2f 61 3e 20 66 6f 72 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 74 68 61 74 20 6f 6e 65 20 77 6f </a>.for.conversions.that.one.wo
4b180 75 6c 64 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 68 61 70 70 65 6e 20 6f 6e 20 61 63 63 69 64 65 uld.not.want.to.happen.on.accide
4b1a0 6e 74 2e 0a 20 20 20 20 20 20 54 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 20 74 68 69 72 64 20 nt........There.is.also.a.third.
4b1c0 6b 69 6e 64 20 6f 66 20 74 79 70 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 63 61 6c 6c 65 64 20 3c kind.of.type.conversion.called.<
4b1e0 61 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 a.href="#Peer-Type-Resolution">P
4b200 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 0a 20 20 20 20 eer.Type.Resolution</a>.for.....
4b220 20 20 74 68 65 20 63 61 73 65 20 77 68 65 6e 20 61 20 72 65 73 75 6c 74 20 74 79 70 65 20 6d 75 ..the.case.when.a.result.type.mu
4b240 73 74 20 62 65 20 64 65 63 69 64 65 64 20 67 69 76 65 6e 20 6d 75 6c 74 69 70 6c 65 20 6f 70 65 st.be.decided.given.multiple.ope
4b260 72 61 6e 64 20 74 79 70 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 rand.types........</p>.......<h2
4b280 20 69 64 3d 22 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 .id="Implicit-Casts"><a.href="#t
4b2a0 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 73 74 oc-Implicit-Casts">Implicit.Cast
4b2c0 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6d 70 6c s</a>.<a.class="hdr".href="#Impl
4b2e0 69 63 69 74 2d 43 61 73 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c icit-Casts">..</a></h2>........<
4b300 70 3e 0a 20 20 20 20 20 20 41 6e 20 69 6d 70 6c 69 63 69 74 20 63 61 73 74 20 6f 63 63 75 72 73 p>.......An.implicit.cast.occurs
4b320 20 77 68 65 6e 20 6f 6e 65 20 74 79 70 65 20 69 73 20 65 78 70 65 63 74 65 64 2c 20 62 75 74 20 .when.one.type.is.expected,.but.
4b340 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 20 69 73 20 70 72 6f 76 69 64 65 64 3a 0a 20 20 20 20 different.type.is.provided:.....
4b360 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 ..</p>.......<p.class="file">tes
4b380 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e t.zig</p><pre><code.class="zig">
4b3a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
4b3c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 .<span.class="tok-str">&quot;imp
4b3e0 6c 69 63 69 74 20 63 61 73 74 20 2d 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f licit.cast.-.variable.declaratio
4b400 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 n&quot;</span>.{.....<span.class
4b420 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c ="tok-kw">var</span>.a:.<span.cl
4b440 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e ass="tok-type">u8</span>.=.<span
4b460 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">1</span>;...
4b480 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e ..<span.class="tok-kw">var</span
4b4a0 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c >.b:.<span.class="tok-type">u16<
4b4c0 2f 73 70 61 6e 3e 20 3d 20 61 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d /span>.=.a;.}..<span.class="tok-
4b4e0 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">test</span>.<span.class="tok
4b500 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 20 2d 20 66 75 6e 63 -str">&quot;implicit.cast.-.func
4b520 74 69 6f 6e 20 63 61 6c 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 tion.call&quot;</span>.{.....<sp
4b540 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 an.class="tok-kw">var</span>.a:.
4b560 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
4b580 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 .=.<span.class="tok-number">1</s
4b5a0 70 61 6e 3e 3b 0a 20 20 20 20 66 6f 6f 28 61 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 pan>;.....foo(a);.}..<span.class
4b5c0 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="tok-kw">fn</span>.<span.class=
4b5e0 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 62 3a 20 3c 73 70 61 6e 20 63 6c 61 "tok-fn">foo</span>(b:.<span.cla
4b600 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 ss="tok-type">u16</span>).<span.
4b620 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 0a class="tok-type">void</span>.{}.
4b640 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
4b660 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d >.<span.class="tok-str">&quot;im
4b680 70 6c 69 63 69 74 20 63 61 73 74 20 2d 20 69 6e 76 6f 6b 65 20 61 20 74 79 70 65 20 61 73 20 61 plicit.cast.-.invoke.a.type.as.a
4b6a0 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 .function&quot;</span>.{.....<sp
4b6c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 an.class="tok-kw">var</span>.a:.
4b6e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
4b700 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 .=.<span.class="tok-number">1</s
4b720 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 pan>;.....<span.class="tok-kw">v
4b740 61 72 3c 2f 73 70 61 6e 3e 20 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ar</span>.b.=.<span.class="tok-t
4b760 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e 28 61 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ype">u16</span>(a);.}</code></pr
4b780 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 e><pre><code.class="shell">$.zig
4b7a0 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6d .test.test.zig.1/3.test.&quot;im
4b7c0 70 6c 69 63 69 74 20 63 61 73 74 20 2d 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 plicit.cast.-.variable.declarati
4b7e0 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6d 70 on&quot;...OK.2/3.test.&quot;imp
4b800 6c 69 63 69 74 20 63 61 73 74 20 2d 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 26 71 75 6f 74 3b licit.cast.-.function.call&quot;
4b820 2e 2e 2e 4f 4b 0a 33 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 ...OK.3/3.test.&quot;implicit.ca
4b840 73 74 20 2d 20 69 6e 76 6f 6b 65 20 61 20 74 79 70 65 20 61 73 20 61 20 66 75 6e 63 74 69 6f 6e st.-.invoke.a.type.as.a.function
4b860 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f &quot;...OK.All.tests.passed..</
4b880 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6d 70 code></pre>........<p>.......Imp
4b8a0 6c 69 63 69 74 20 63 61 73 74 73 20 61 72 65 20 6f 6e 6c 79 20 61 6c 6c 6f 77 65 64 20 77 68 65 licit.casts.are.only.allowed.whe
4b8c0 6e 20 69 74 20 69 73 20 63 6f 6d 70 6c 65 74 65 6c 79 20 75 6e 61 6d 62 69 67 75 6f 75 73 20 68 n.it.is.completely.unambiguous.h
4b8e0 6f 77 20 74 6f 20 67 65 74 20 66 72 6f 6d 20 6f 6e 65 20 74 79 70 65 20 74 6f 20 61 6e 6f 74 68 ow.to.get.from.one.type.to.anoth
4b900 65 72 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 68 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e er,.......and.the.transformation
4b920 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 73 61 66 65 2e 20 54 68 65 72 65 .is.guaranteed.to.be.safe..There
4b940 20 69 73 20 6f 6e 65 20 65 78 63 65 70 74 69 6f 6e 2c 20 77 68 69 63 68 20 69 73 20 3c 61 20 68 .is.one.exception,.which.is.<a.h
4b960 72 65 66 3d 22 23 43 2d 50 6f 69 6e 74 65 72 73 22 3e 43 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e ref="#C-Pointers">C.Pointers</a>
4b980 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6d 70 6c 69 ........</p>.......<h3.id="Impli
4b9a0 63 69 74 2d 43 61 73 74 2d 53 74 72 69 63 74 65 72 2d 51 75 61 6c 69 66 69 63 61 74 69 6f 6e 22 cit-Cast-Stricter-Qualification"
4b9c0 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 53 74 72 ><a.href="#toc-Implicit-Cast-Str
4b9e0 69 63 74 65 72 2d 51 75 61 6c 69 66 69 63 61 74 69 6f 6e 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 icter-Qualification">Implicit.Ca
4ba00 73 74 3a 20 53 74 72 69 63 74 65 72 20 51 75 61 6c 69 66 69 63 61 74 69 6f 6e 3c 2f 61 3e 20 3c st:.Stricter.Qualification</a>.<
4ba20 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 a.class="hdr".href="#Implicit-Ca
4ba40 73 74 2d 53 74 72 69 63 74 65 72 2d 51 75 61 6c 69 66 69 63 61 74 69 6f 6e 22 3e c2 a7 3c 2f 61 st-Stricter-Qualification">..</a
4ba60 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 56 61 6c 75 65 73 20 77 ></h3>........<p>.......Values.w
4ba80 68 69 63 68 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f hich.have.the.same.representatio
4baa0 6e 20 61 74 20 72 75 6e 74 69 6d 65 20 63 61 6e 20 62 65 20 63 61 73 74 20 74 6f 20 69 6e 63 72 n.at.runtime.can.be.cast.to.incr
4bac0 65 61 73 65 20 74 68 65 20 73 74 72 69 63 74 6e 65 73 73 0a 20 20 20 20 20 20 6f 66 20 74 68 65 ease.the.strictness.......of.the
4bae0 20 71 75 61 6c 69 66 69 65 72 73 2c 20 6e 6f 20 6d 61 74 74 65 72 20 68 6f 77 20 6e 65 73 74 65 .qualifiers,.no.matter.how.neste
4bb00 64 20 74 68 65 20 71 75 61 6c 69 66 69 65 72 73 20 61 72 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e d.the.qualifiers.are:.......</p>
4bb20 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 .......<ul>...........<li><code.
4bb40 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
4bb60 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 2d 20 6e 6f 6e 2d 63 6f 6e 73 74 >const</span></code>.-.non-const
4bb80 20 74 6f 20 63 6f 6e 73 74 20 69 73 20 61 6c 6c 6f 77 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 .to.const.is.allowed</li>.......
4bba0 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ....<li><code.class="zig"><span.
4bbc0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f class="tok-kw">volatile</span></
4bbe0 63 6f 64 65 3e 20 2d 20 6e 6f 6e 2d 76 6f 6c 61 74 69 6c 65 20 74 6f 20 76 6f 6c 61 74 69 6c 65 code>.-.non-volatile.to.volatile
4bc00 20 69 73 20 61 6c 6c 6f 77 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c .is.allowed</li>...........<li><
4bc20 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
4bc40 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 2d 20 62 69 67 67 k-kw">align</span></code>.-.bigg
4bc60 65 72 20 74 6f 20 73 6d 61 6c 6c 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 69 73 20 61 6c 6c 6f 77 er.to.smaller.alignment.is.allow
4bc80 65 64 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 ed.</li>...........<li><a.href="
4bca0 23 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 3e 65 72 72 6f 72 20 73 65 74 73 3c 2f 61 3e 20 #Error-Set-Type">error.sets</a>.
4bcc0 74 6f 20 73 75 70 65 72 73 65 74 73 20 69 73 20 61 6c 6c 6f 77 65 64 3c 2f 6c 69 3e 0a 20 20 20 to.supersets.is.allowed</li>....
4bce0 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 63 ...</ul>.......<p>.......These.c
4bd00 61 73 74 73 20 61 72 65 20 6e 6f 2d 6f 70 73 20 61 74 20 72 75 6e 74 69 6d 65 20 73 69 6e 63 65 asts.are.no-ops.at.runtime.since
4bd20 20 74 68 65 20 76 61 6c 75 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 64 6f 65 73 20 6e .the.value.representation.does.n
4bd40 6f 74 20 63 68 61 6e 67 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 ot.change........</p>.......<p.c
4bd60 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f lass="file">test.zig</p><pre><co
4bd80 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
4bda0 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">test</span>.<span.class="tok
4bdc0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 20 2d 20 63 6f 6e 73 -str">&quot;implicit.cast.-.cons
4bde0 74 20 71 75 61 6c 69 66 69 63 61 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 t.qualification&quot;</span>.{..
4be00 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
4be20 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 n>.a:.<span.class="tok-type">i32
4be40 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 </span>.=.<span.class="tok-numbe
4be60 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f r">1</span>;.....<span.class="to
4be80 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 k-kw">var</span>.b:.*<span.class
4bea0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 61 3b ="tok-type">i32</span>.=.&amp;a;
4bec0 0a 20 20 20 20 66 6f 6f 28 62 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....foo(b);.}..<span.class="tok
4bee0 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d -kw">fn</span>.<span.class="tok-
4bf00 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 61 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 fn">foo</span>(a:.*<span.class="
4bf20 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">const</span>.<span.class
4bf40 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c ="tok-type">i32</span>).<span.cl
4bf60 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 3c 2f 63 ass="tok-type">void</span>.{}</c
4bf80 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
4bfa0 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 l">$.zig.test.test.zig.1/1.test.
4bfc0 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 20 2d 20 63 6f 6e 73 74 20 71 75 61 6c &quot;implicit.cast.-.const.qual
4bfe0 69 66 69 63 61 74 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 ification&quot;...OK.All.tests.p
4c000 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a assed..</code></pre>........<p>.
4c020 20 20 20 20 20 20 49 6e 20 61 64 64 69 74 69 6f 6e 2c 20 70 6f 69 6e 74 65 72 73 20 69 6d 70 6c ......In.addition,.pointers.impl
4c040 69 63 69 74 6c 79 20 63 61 73 74 20 74 6f 20 63 6f 6e 73 74 20 6f 70 74 69 6f 6e 61 6c 20 70 6f icitly.cast.to.const.optional.po
4c060 69 6e 74 65 72 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 inters:.......</p>.......<p.clas
4c080 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 s="file">test.zig</p><pre><code.
4c0a0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
4c0c0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >const</span>.std.=.<span.class=
4c0e0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 "tok-builtin">@import</span>(<sp
4c100 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f an.class="tok-str">&quot;std&quo
4c120 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 t;</span>);.<span.class="tok-kw"
4c140 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 >const</span>.assert.=.std.debug
4c160 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f .assert;.<span.class="tok-kw">co
4c180 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 65 6d 20 3d 20 73 74 64 2e 6d 65 6d 3b 0a 0a 3c 73 70 61 6e nst</span>.mem.=.std.mem;..<span
4c1a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
4c1c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 61 73 74 20 2a 5b 31 n.class="tok-str">&quot;cast.*[1
4c1e0 5d 5b 2a 5d 63 6f 6e 73 74 20 75 38 20 74 6f 20 5b 2a 5d 63 6f 6e 73 74 20 3f 5b 2a 5d 63 6f 6e ][*]const.u8.to.[*]const.?[*]con
4c200 73 74 20 75 38 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 st.u8&quot;</span>.{.....<span.c
4c220 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 69 6e 64 6f lass="tok-kw">const</span>.windo
4c240 77 5f 6e 61 6d 65 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 w_name.=.[<span.class="tok-numbe
4c260 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r">1</span>][*]<span.class="tok-
4c280 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f kw">const</span>.<span.class="to
4c2a0 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 k-type">u8</span>{<span.class="t
4c2c0 6f 6b 2d 73 74 72 22 3e 63 26 71 75 6f 74 3b 77 69 6e 64 6f 77 20 6e 61 6d 65 26 71 75 6f 74 3b ok-str">c&quot;window.name&quot;
4c2e0 3c 2f 73 70 61 6e 3e 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>};.....<span.class="tok-k
4c300 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 w">const</span>.x:.[*]<span.clas
4c320 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3f 5b 2a 5d 3c 73 70 61 s="tok-kw">const</span>.?[*]<spa
4c340 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 n.class="tok-kw">const</span>.<s
4c360 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d pan.class="tok-type">u8</span>.=
4c380 20 26 61 6d 70 3b 77 69 6e 64 6f 77 5f 6e 61 6d 65 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 .&amp;window_name;.....assert(me
4c3a0 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c m.eql(<span.class="tok-type">u8<
4c3c0 2f 73 70 61 6e 3e 2c 20 73 74 64 2e 6d 65 6d 2e 74 6f 53 6c 69 63 65 43 6f 6e 73 74 28 3c 73 70 /span>,.std.mem.toSliceConst(<sp
4c3e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 78 an.class="tok-type">u8</span>,.x
4c400 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 [<span.class="tok-number">0</spa
4c420 6e 3e 5d 2e 3f 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 n>].?),.<span.class="tok-str">&q
4c440 75 6f 74 3b 77 69 6e 64 6f 77 20 6e 61 6d 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a uot;window.name&quot;</span>));.
4c460 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
4c480 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 shell">$.zig.test.test.zig.1/1.t
4c4a0 65 73 74 20 26 71 75 6f 74 3b 63 61 73 74 20 2a 5b 31 5d 5b 2a 5d 63 6f 6e 73 74 20 75 38 20 74 est.&quot;cast.*[1][*]const.u8.t
4c4c0 6f 20 5b 2a 5d 63 6f 6e 73 74 20 3f 5b 2a 5d 63 6f 6e 73 74 20 75 38 26 71 75 6f 74 3b 2e 2e 2e o.[*]const.?[*]const.u8&quot;...
4c4e0 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 OK.All.tests.passed..</code></pr
4c500 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6d 70 6c 69 63 69 e>...............<h3.id="Implici
4c520 74 2d 43 61 73 74 2d 49 6e 74 65 67 65 72 2d 61 6e 64 2d 46 6c 6f 61 74 2d 57 69 64 65 6e 69 6e t-Cast-Integer-and-Float-Widenin
4c540 67 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 49 g"><a.href="#toc-Implicit-Cast-I
4c560 6e 74 65 67 65 72 2d 61 6e 64 2d 46 6c 6f 61 74 2d 57 69 64 65 6e 69 6e 67 22 3e 49 6d 70 6c 69 nteger-and-Float-Widening">Impli
4c580 63 69 74 20 43 61 73 74 3a 20 49 6e 74 65 67 65 72 20 61 6e 64 20 46 6c 6f 61 74 20 57 69 64 65 cit.Cast:.Integer.and.Float.Wide
4c5a0 6e 69 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 ning</a>.<a.class="hdr".href="#I
4c5c0 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 49 6e 74 65 67 65 72 2d 61 6e 64 2d 46 6c 6f 61 74 2d 57 mplicit-Cast-Integer-and-Float-W
4c5e0 69 64 65 6e 69 6e 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a idening">..</a></h3>........<p>.
4c600 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 ......<a.href="#Integers">Intege
4c620 72 73 3c 2f 61 3e 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 74 6f 20 69 6e 74 65 67 65 rs</a>.implicitly.cast.to.intege
4c640 72 20 74 79 70 65 73 20 77 68 69 63 68 20 63 61 6e 20 72 65 70 72 65 73 65 6e 74 20 65 76 65 72 r.types.which.can.represent.ever
4c660 79 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6f 6c 64 20 74 79 70 65 2c 20 61 6e 64 20 6c 69 6b y.value.of.the.old.type,.and.lik
4c680 65 77 69 73 65 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c ewise.......<a.href="#Floats">Fl
4c6a0 6f 61 74 73 3c 2f 61 3e 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 74 6f 20 66 6c 6f 61 oats</a>.implicitly.cast.to.floa
4c6c0 74 20 74 79 70 65 73 20 77 68 69 63 68 20 63 61 6e 20 72 65 70 72 65 73 65 6e 74 20 65 76 65 72 t.types.which.can.represent.ever
4c6e0 79 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6f 6c 64 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c y.value.of.the.old.type........<
4c700 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a /p>.......<p.class="file">test.z
4c720 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ig</p><pre><code.class="zig"><sp
4c740 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 an.class="tok-kw">const</span>.s
4c760 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 td.=.<span.class="tok-builtin">@
4c780 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 import</span>(<span.class="tok-s
4c7a0 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 tr">&quot;std&quot;</span>);.<sp
4c7c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 an.class="tok-kw">const</span>.a
4c7e0 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 ssert.=.std.debug.assert;.<span.
4c800 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 65 6d 20 class="tok-kw">const</span>.mem.
4c820 3d 20 73 74 64 2e 6d 65 6d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 =.std.mem;..<span.class="tok-kw"
4c840 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >test</span>.<span.class="tok-st
4c860 72 22 3e 26 71 75 6f 74 3b 69 6e 74 65 67 65 72 20 77 69 64 65 6e 69 6e 67 26 71 75 6f 74 3b 3c r">&quot;integer.widening&quot;<
4c880 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>.{.....<span.class="tok-kw
4c8a0 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">var</span>.a:.<span.class="tok
4c8c0 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -type">u8</span>.=.<span.class="
4c8e0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 tok-number">250</span>;.....<spa
4c900 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c n.class="tok-kw">var</span>.b:.<
4c920 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e span.class="tok-type">u16</span>
4c940 20 3d 20 61 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 .=.a;.....<span.class="tok-kw">v
4c960 61 72 3c 2f 73 70 61 6e 3e 20 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ar</span>.c:.<span.class="tok-ty
4c980 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 62 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c pe">u32</span>.=.b;.....<span.cl
4c9a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 64 3a 20 3c 73 70 61 6e ass="tok-kw">var</span>.d:.<span
4c9c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 20 3d 20 63 .class="tok-type">u64</span>.=.c
4c9e0 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f ;.....<span.class="tok-kw">var</
4ca00 73 70 61 6e 3e 20 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e span>.e:.<span.class="tok-type">
4ca20 75 36 34 3c 2f 73 70 61 6e 3e 20 3d 20 64 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d u64</span>.=.d;.....<span.class=
4ca40 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 3a 20 3c 73 70 61 6e 20 63 6c 61 "tok-kw">var</span>.f:.<span.cla
4ca60 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 32 38 3c 2f 73 70 61 6e 3e 20 3d 20 65 3b 0a 20 ss="tok-type">u128</span>.=.e;..
4ca80 20 20 20 61 73 73 65 72 74 28 66 20 3d 3d 20 61 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 ...assert(f.==.a);.}..<span.clas
4caa0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">test</span>.<span.cla
4cac0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 75 6e 73 69 ss="tok-str">&quot;implicit.unsi
4cae0 67 6e 65 64 20 69 6e 74 65 67 65 72 20 74 6f 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 26 71 gned.integer.to.signed.integer&q
4cb00 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>.{.....<span.class="t
4cb20 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-kw">var</span>.a:.<span.class
4cb40 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c ="tok-type">u8</span>.=.<span.cl
4cb60 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 ass="tok-number">250</span>;....
4cb80 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">var</span>
4cba0 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 31 36 3c 2f .b:.<span.class="tok-type">i16</
4cbc0 73 70 61 6e 3e 20 3d 20 61 3b 0a 20 20 20 20 61 73 73 65 72 74 28 62 20 3d 3d 20 3c 73 70 61 6e span>.=.a;.....assert(b.==.<span
4cbe0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 30 3c 2f 73 70 61 6e 3e 29 3b .class="tok-number">250</span>);
4cc00 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 .}..<span.class="tok-kw">test</s
4cc20 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
4cc40 3b 66 6c 6f 61 74 20 77 69 64 65 6e 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 ;float.widening&quot;</span>.{..
4cc60 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
4cc80 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 36 n>.a:.<span.class="tok-type">f16
4cca0 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 </span>.=.<span.class="tok-numbe
4ccc0 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 r">12.34</span>;.....<span.class
4cce0 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c ="tok-kw">var</span>.b:.<span.cl
4cd00 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 61 3b 0a 20 ass="tok-type">f32</span>.=.a;..
4cd20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
4cd40 6e 3e 20 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 n>.c:.<span.class="tok-type">f64
4cd60 3c 2f 73 70 61 6e 3e 20 3d 20 62 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.=.b;.....<span.class="to
4cd80 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-kw">var</span>.d:.<span.class=
4cda0 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 32 38 3c 2f 73 70 61 6e 3e 20 3d 20 63 3b 0a 20 20 20 20 "tok-type">f128</span>.=.c;.....
4cdc0 61 73 73 65 72 74 28 64 20 3d 3d 20 61 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 assert(d.==.a);.}</code></pre><p
4cde0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
4ce00 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 33 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 74 65 67 65 t.test.zig.1/3.test.&quot;intege
4ce20 72 20 77 69 64 65 6e 69 6e 67 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 33 20 74 65 73 74 20 26 r.widening&quot;...OK.2/3.test.&
4ce40 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 74 quot;implicit.unsigned.integer.t
4ce60 6f 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 33 2f 33 20 o.signed.integer&quot;...OK.3/3.
4ce80 74 65 73 74 20 26 71 75 6f 74 3b 66 6c 6f 61 74 20 77 69 64 65 6e 69 6e 67 26 71 75 6f 74 3b 2e test.&quot;float.widening&quot;.
4cea0 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f ..OK.All.tests.passed..</code></
4cec0 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6d 70 6c 69 pre>...............<h3.id="Impli
4cee0 63 69 74 2d 43 61 73 74 2d 41 72 72 61 79 73 2d 61 6e 64 2d 50 6f 69 6e 74 65 72 73 22 3e 3c 61 cit-Cast-Arrays-and-Pointers"><a
4cf00 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 41 72 72 61 79 73 .href="#toc-Implicit-Cast-Arrays
4cf20 2d 61 6e 64 2d 50 6f 69 6e 74 65 72 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 73 74 3a 20 41 72 -and-Pointers">Implicit.Cast:.Ar
4cf40 72 61 79 73 20 61 6e 64 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 rays.and.Pointers</a>.<a.class="
4cf60 68 64 72 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 41 72 72 61 79 73 hdr".href="#Implicit-Cast-Arrays
4cf80 2d 61 6e 64 2d 50 6f 69 6e 74 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 -and-Pointers">..</a></h3>......
4cfa0 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 ..<p.class="file">test.zig</p><p
4cfc0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
4cfe0 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 ="tok-kw">const</span>.std.=.<sp
4d000 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f an.class="tok-builtin">@import</
4d020 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>(<span.class="tok-str">&quo
4d040 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 t;std&quot;</span>);.<span.class
4d060 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 ="tok-kw">const</span>.assert.=.
4d080 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 std.debug.assert;..<span.class="
4d0a0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 63 61 73 74 20 65 78 69 73 74 73 tok-comment">//.This.cast.exists
4d0c0 20 70 72 69 6d 61 72 69 6c 79 20 73 6f 20 74 68 61 74 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 .primarily.so.that.string.litera
4d0e0 6c 73 20 63 61 6e 20 62 65 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ls.can.be</span>.<span.class="to
4d100 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 70 61 73 73 65 64 20 74 6f 20 66 75 6e 63 74 69 6f 6e k-comment">//.passed.to.function
4d120 73 20 74 68 61 74 20 61 63 63 65 70 74 20 63 6f 6e 73 74 20 73 6c 69 63 65 73 2e 20 48 6f 77 65 s.that.accept.const.slices..Howe
4d140 76 65 72 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d ver</span>.<span.class="tok-comm
4d160 65 6e 74 22 3e 2f 2f 20 69 74 20 69 73 20 70 72 6f 62 61 62 6c 79 20 67 6f 69 6e 67 20 74 6f 20 ent">//.it.is.probably.going.to.
4d180 62 65 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 77 68 65 be.removed.from.the.language.whe
4d1a0 6e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e n</span>.<span.class="tok-commen
4d1c0 74 22 3e 2f 2f 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 t">//.https://github.com/ziglang
4d1e0 2f 7a 69 67 2f 69 73 73 75 65 73 2f 32 36 35 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2e 3c /zig/issues/265.is.implemented.<
4d200 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 /span>.<span.class="tok-kw">test
4d220 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>.<span.class="tok-str">&q
4d240 75 6f 74 3b 5b 4e 5d 54 20 74 6f 20 5b 5d 63 6f 6e 73 74 20 54 26 71 75 6f 74 3b 3c 2f 73 70 61 uot;[N]T.to.[]const.T&quot;</spa
4d260 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 n>.{.....<span.class="tok-kw">va
4d280 72 3c 2f 73 70 61 6e 3e 20 78 31 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r</span>.x1:.[]<span.class="tok-
4d2a0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f kw">const</span>.<span.class="to
4d2c0 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-type">u8</span>.=.<span.class=
4d2e0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 "tok-str">&quot;hello&quot;</spa
4d300 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 n>;.....<span.class="tok-kw">var
4d320 3c 2f 73 70 61 6e 3e 20 78 32 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.x2:.[]<span.class="tok-k
4d340 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b w">const</span>.<span.class="tok
4d360 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d -type">u8</span>.=.[<span.class=
4d380 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 "tok-number">5</span>]<span.clas
4d3a0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c s="tok-type">u8</span>{.<span.cl
4d3c0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 68 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 ass="tok-str">'h'</span>,.<span.
4d3e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 65 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 class="tok-str">'e'</span>,.<spa
4d400 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6c 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 n.class="tok-str">'l'</span>,.<s
4d420 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6c 27 3c 2f 73 70 61 6e 3e 2c 20 pan.class="tok-str">'l'</span>,.
4d440 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 31 31 3c 2f 73 70 <span.class="tok-number">111</sp
4d460 61 6e 3e 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c 28 3c 73 an>.};.....assert(std.mem.eql(<s
4d480 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 pan.class="tok-type">u8</span>,.
4d4a0 78 31 2c 20 78 32 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d x1,.x2));......<span.class="tok-
4d4c0 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d kw">var</span>.y:.[]<span.class=
4d4e0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 "tok-kw">const</span>.<span.clas
4d500 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 5b 3c 73 70 61 6e s="tok-type">f32</span>.=.[<span
4d520 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 5d 3c 73 70 .class="tok-number">2</span>]<sp
4d540 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 7b 20 an.class="tok-type">f32</span>{.
4d560 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 32 3c 2f 73 70 <span.class="tok-number">1.2</sp
4d580 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 2e an>,.<span.class="tok-number">3.
4d5a0 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 79 5b 3c 73 70 61 6e 20 63 4</span>.};.....assert(y[<span.c
4d5c0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c lass="tok-number">0</span>].==.<
4d5e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 32 3c 2f 73 70 61 span.class="tok-number">1.2</spa
4d600 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 n>);.}..<span.class="tok-comment
4d620 22 3e 2f 2f 20 4c 69 6b 65 77 69 73 65 2c 20 69 74 20 77 6f 72 6b 73 20 77 68 65 6e 20 74 68 65 ">//.Likewise,.it.works.when.the
4d640 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 20 69 73 20 61 6e 20 65 72 72 6f 72 20 75 6e .destination.type.is.an.error.un
4d660 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ion.</span>.<span.class="tok-kw"
4d680 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >test</span>.<span.class="tok-st
4d6a0 72 22 3e 26 71 75 6f 74 3b 5b 4e 5d 54 20 74 6f 20 45 21 5b 5d 63 6f 6e 73 74 20 54 26 71 75 6f r">&quot;[N]T.to.E![]const.T&quo
4d6c0 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b t;</span>.{.....<span.class="tok
4d6e0 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 31 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d -kw">var</span>.x1:.<span.class=
4d700 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 5b 5d 3c 73 70 "tok-type">anyerror</span>![]<sp
4d720 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c an.class="tok-kw">const</span>.<
4d740 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 span.class="tok-type">u8</span>.
4d760 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 =.<span.class="tok-str">&quot;he
4d780 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 llo&quot;</span>;.....<span.clas
4d7a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 32 3a 20 3c 73 70 61 6e 20 s="tok-kw">var</span>.x2:.<span.
4d7c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e class="tok-type">anyerror</span>
4d7e0 21 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ![]<span.class="tok-kw">const</s
4d800 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f pan>.<span.class="tok-type">u8</
4d820 73 70 61 6e 3e 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 span>.=.[<span.class="tok-number
4d840 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 ">5</span>]<span.class="tok-type
4d860 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 ">u8</span>{.<span.class="tok-st
4d880 72 22 3e 27 68 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d r">'h'</span>,.<span.class="tok-
4d8a0 73 74 72 22 3e 27 65 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f str">'e'</span>,.<span.class="to
4d8c0 6b 2d 73 74 72 22 3e 27 6c 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-str">'l'</span>,.<span.class="
4d8e0 74 6f 6b 2d 73 74 72 22 3e 27 6c 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-str">'l'</span>,.<span.class
4d900 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 31 31 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 ="tok-number">111</span>.};.....
4d920 61 73 73 65 72 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 assert(std.mem.eql(<span.class="
4d940 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-type">u8</span>,.<span.class
4d960 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 78 31 2c 20 3c 73 70 61 6e 20 63 ="tok-kw">try</span>.x1,.<span.c
4d980 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 78 32 29 29 3b 0a 0a lass="tok-kw">try</span>.x2));..
4d9a0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 ....<span.class="tok-kw">var</sp
4d9c0 61 6e 3e 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e an>.y:.<span.class="tok-type">an
4d9e0 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b yerror</span>![]<span.class="tok
4da00 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -kw">const</span>.<span.class="t
4da20 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 ok-type">f32</span>.=.[<span.cla
4da40 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 ss="tok-number">2</span>]<span.c
4da60 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 lass="tok-type">f32</span>{.<spa
4da80 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 32 3c 2f 73 70 61 6e 3e 2c n.class="tok-number">1.2</span>,
4daa0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 2e 34 3c 2f 73 .<span.class="tok-number">3.4</s
4dac0 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d pan>.};.....assert((<span.class=
4dae0 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 79 29 5b 3c 73 70 61 6e 20 63 6c 61 "tok-kw">try</span>.y)[<span.cla
4db00 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 ss="tok-number">0</span>].==.<sp
4db20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 32 3c 2f 73 70 61 6e 3e an.class="tok-number">1.2</span>
4db40 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e );.}..<span.class="tok-comment">
4db60 2f 2f 20 4c 69 6b 65 77 69 73 65 2c 20 69 74 20 77 6f 72 6b 73 20 77 68 65 6e 20 74 68 65 20 64 //.Likewise,.it.works.when.the.d
4db80 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 20 69 73 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 2e 3c estination.type.is.an.optional.<
4dba0 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 /span>.<span.class="tok-kw">test
4dbc0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>.<span.class="tok-str">&q
4dbe0 75 6f 74 3b 5b 4e 5d 54 20 74 6f 20 3f 5b 5d 63 6f 6e 73 74 20 54 26 71 75 6f 74 3b 3c 2f 73 70 uot;[N]T.to.?[]const.T&quot;</sp
4dc00 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 an>.{.....<span.class="tok-kw">v
4dc20 61 72 3c 2f 73 70 61 6e 3e 20 78 31 3a 20 3f 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ar</span>.x1:.?[]<span.class="to
4dc40 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">const</span>.<span.class="
4dc60 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 tok-type">u8</span>.=.<span.clas
4dc80 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 s="tok-str">&quot;hello&quot;</s
4dca0 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 pan>;.....<span.class="tok-kw">v
4dcc0 61 72 3c 2f 73 70 61 6e 3e 20 78 32 3a 20 3f 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ar</span>.x2:.?[]<span.class="to
4dce0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">const</span>.<span.class="
4dd00 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 tok-type">u8</span>.=.[<span.cla
4dd20 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 ss="tok-number">5</span>]<span.c
4dd40 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e lass="tok-type">u8</span>{.<span
4dd60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 68 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 .class="tok-str">'h'</span>,.<sp
4dd80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 65 27 3c 2f 73 70 61 6e 3e 2c 20 3c an.class="tok-str">'e'</span>,.<
4dda0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6c 27 3c 2f 73 70 61 6e 3e 2c span.class="tok-str">'l'</span>,
4ddc0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6c 27 3c 2f 73 70 61 6e .<span.class="tok-str">'l'</span
4dde0 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 31 31 3c >,.<span.class="tok-number">111<
4de00 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c /span>.};.....assert(std.mem.eql
4de20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e (<span.class="tok-type">u8</span
4de40 3e 2c 20 78 31 2e 3f 2c 20 78 32 2e 3f 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 >,.x1.?,.x2.?));......<span.clas
4de60 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 3a 20 3f 5b 5d 3c 73 70 61 s="tok-kw">var</span>.y:.?[]<spa
4de80 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 n.class="tok-kw">const</span>.<s
4dea0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 pan.class="tok-type">f32</span>.
4dec0 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 =.[<span.class="tok-number">2</s
4dee0 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c pan>]<span.class="tok-type">f32<
4df00 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>{.<span.class="tok-number"
4df20 3e 31 2e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 >1.2</span>,.<span.class="tok-nu
4df40 6d 62 65 72 22 3e 33 2e 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 79 mber">3.4</span>.};.....assert(y
4df60 2e 3f 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 .?[<span.class="tok-number">0</s
4df80 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 pan>].==.<span.class="tok-number
4dfa0 22 3e 31 2e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ">1.2</span>);.}..<span.class="t
4dfc0 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 6e 20 74 68 69 73 20 63 61 73 74 2c 20 74 68 65 ok-comment">//.In.this.cast,.the
4dfe0 20 61 72 72 61 79 20 6c 65 6e 67 74 68 20 62 65 63 6f 6d 65 73 20 74 68 65 20 73 6c 69 63 65 20 .array.length.becomes.the.slice.
4e000 6c 65 6e 67 74 68 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d length.</span>.<span.class="tok-
4e020 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">test</span>.<span.class="tok
4e040 2d 73 74 72 22 3e 26 71 75 6f 74 3b 2a 5b 4e 5d 54 20 74 6f 20 5b 5d 54 26 71 75 6f 74 3b 3c 2f -str">&quot;*[N]T.to.[]T&quot;</
4e060 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
4e080 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 75 66 3a 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >var</span>.buf:.[<span.class="t
4e0a0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-number">5</span>]<span.class=
4e0c0 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 "tok-type">u8</span>.=.<span.cla
4e0e0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f ss="tok-str">&quot;hello&quot;</
4e100 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e span>;.....<span.class="tok-kw">
4e120 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 const</span>.x:.[]<span.class="t
4e140 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 62 75 66 3b 0a 20 ok-type">u8</span>.=.&amp;buf;..
4e160 20 20 20 61 73 73 65 72 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 ...assert(std.mem.eql(<span.clas
4e180 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 78 2c 20 3c 73 70 61 6e s="tok-type">u8</span>,.x,.<span
4e1a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f .class="tok-str">&quot;hello&quo
4e1c0 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t;</span>));......<span.class="t
4e1e0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 75 66 32 20 3d 20 5b 3c 73 70 61 ok-kw">const</span>.buf2.=.[<spa
4e200 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 5d 3c 73 n.class="tok-number">2</span>]<s
4e220 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 7b pan.class="tok-type">f32</span>{
4e240 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 2e 32 3c 2f 73 .<span.class="tok-number">1.2</s
4e260 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 pan>,.<span.class="tok-number">3
4e280 2e 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .4</span>.};.....<span.class="to
4e2a0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 32 3a 20 5b 5d 3c 73 70 61 6e 20 63 k-kw">const</span>.x2:.[]<span.c
4e2c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e lass="tok-kw">const</span>.<span
4e2e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 .class="tok-type">f32</span>.=.&
4e300 61 6d 70 3b 62 75 66 32 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c amp;buf2;.....assert(std.mem.eql
4e320 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 (<span.class="tok-type">f32</spa
4e340 6e 3e 2c 20 78 32 2c 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 n>,.x2,.[<span.class="tok-number
4e360 22 3e 32 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 ">2</span>]<span.class="tok-type
4e380 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ">f32</span>{.<span.class="tok-n
4e3a0 75 6d 62 65 72 22 3e 31 2e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 umber">1.2</span>,.<span.class="
4e3c0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 2e 34 3c 2f 73 70 61 6e 3e 20 7d 29 29 3b 0a 7d 0a 0a 3c tok-number">3.4</span>.}));.}..<
4e3e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 69 6e 67 span.class="tok-comment">//.Sing
4e400 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 61 72 72 61 79 73 20 63 61 6e 20 62 le-item.pointers.to.arrays.can.b
4e420 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 65 64 20 74 6f 3c 2f 73 70 61 6e 3e 0a 3c 73 e.implicitly.casted.to</span>.<s
4e440 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 75 6e 6b 6e 6f pan.class="tok-comment">//.unkno
4e460 77 6e 20 6c 65 6e 67 74 68 20 70 6f 69 6e 74 65 72 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e wn.length.pointers.</span>.<span
4e480 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
4e4a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 2a 5b 4e 5d 54 20 74 6f n.class="tok-str">&quot;*[N]T.to
4e4c0 20 5b 2a 5d 54 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 .[*]T&quot;</span>.{.....<span.c
4e4e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 75 66 3a 20 5b 3c lass="tok-kw">var</span>.buf:.[<
4e500 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e span.class="tok-number">5</span>
4e520 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e ]<span.class="tok-type">u8</span
4e540 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b >.=.<span.class="tok-str">&quot;
4e560 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c hello&quot;</span>;.....<span.cl
4e580 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 5b 2a 5d ass="tok-kw">const</span>.x:.[*]
4e5a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
4e5c0 20 3d 20 26 61 6d 70 3b 62 75 66 3b 0a 20 20 20 20 61 73 73 65 72 74 28 78 5b 3c 73 70 61 6e 20 .=.&amp;buf;.....assert(x[<span.
4e5e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 class="tok-number">4</span>].==.
4e600 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6f 27 3c 2f 73 70 61 6e 3e <span.class="tok-str">'o'</span>
4e620 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 );.....<span.class="tok-comment"
4e640 3e 2f 2f 20 78 5b 35 5d 20 77 6f 75 6c 64 20 62 65 20 61 6e 20 75 6e 63 61 75 67 68 74 20 6f 75 >//.x[5].would.be.an.uncaught.ou
4e660 74 20 6f 66 20 62 6f 75 6e 64 73 20 70 6f 69 6e 74 65 72 20 64 65 72 65 66 65 72 65 6e 63 65 21 t.of.bounds.pointer.dereference!
4e680 3c 2f 73 70 61 6e 3e 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d </span>.}..<span.class="tok-comm
4e6a0 65 6e 74 22 3e 2f 2f 20 4c 69 6b 65 77 69 73 65 2c 20 69 74 20 77 6f 72 6b 73 20 77 68 65 6e 20 ent">//.Likewise,.it.works.when.
4e6c0 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 20 69 73 20 61 6e 20 6f 70 74 69 6f the.destination.type.is.an.optio
4e6e0 6e 61 6c 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 nal.</span>.<span.class="tok-kw"
4e700 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >test</span>.<span.class="tok-st
4e720 72 22 3e 26 71 75 6f 74 3b 2a 5b 4e 5d 54 20 74 6f 20 3f 5b 2a 5d 54 26 71 75 6f 74 3b 3c 2f 73 r">&quot;*[N]T.to.?[*]T&quot;</s
4e740 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
4e760 76 61 72 3c 2f 73 70 61 6e 3e 20 62 75 66 3a 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f var</span>.buf:.[<span.class="to
4e780 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-number">5</span>]<span.class="
4e7a0 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 tok-type">u8</span>.=.<span.clas
4e7c0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 s="tok-str">&quot;hello&quot;</s
4e7e0 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pan>;.....<span.class="tok-kw">c
4e800 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 3f 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 onst</span>.x:.?[*]<span.class="
4e820 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 62 75 66 3b 0a tok-type">u8</span>.=.&amp;buf;.
4e840 20 20 20 20 61 73 73 65 72 74 28 78 2e 3f 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....assert(x.?[<span.class="tok-
4e860 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 number">4</span>].==.<span.class
4e880 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 6f 27 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e ="tok-str">'o'</span>);.}..<span
4e8a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 69 6e 67 6c 65 2d 69 .class="tok-comment">//.Single-i
4e8c0 74 65 6d 20 70 6f 69 6e 74 65 72 73 20 63 61 6e 20 62 65 20 63 61 73 74 20 74 6f 20 6c 65 6e 2d tem.pointers.can.be.cast.to.len-
4e8e0 31 20 73 69 6e 67 6c 65 2d 69 74 65 6d 20 61 72 72 61 79 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 1.single-item.arrays.</span>.<sp
4e900 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 an.class="tok-kw">test</span>.<s
4e920 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 2a 54 20 74 6f 20 pan.class="tok-str">&quot;*T.to.
4e940 2a 5b 31 5d 54 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 *[1]T&quot;</span>.{.....<span.c
4e960 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 lass="tok-kw">var</span>.x:.<spa
4e980 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 n.class="tok-type">i32</span>.=.
4e9a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 <span.class="tok-number">1234</s
4e9c0 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pan>;.....<span.class="tok-kw">c
4e9e0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 79 3a 20 2a 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f onst</span>.y:.*[<span.class="to
4ea00 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-number">1</span>]<span.class="
4ea20 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 78 3b 0a 20 tok-type">i32</span>.=.&amp;x;..
4ea40 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ...<span.class="tok-kw">const</s
4ea60 70 61 6e 3e 20 7a 3a 20 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 pan>.z:.[*]<span.class="tok-type
4ea80 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 79 3b 0a 20 20 20 20 61 73 73 65 72 74 28 7a 5b 3c ">i32</span>.=.y;.....assert(z[<
4eaa0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
4eac0 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 ].==.<span.class="tok-number">12
4eae0 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 34</span>);.}</code></pre><pre><
4eb00 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 code.class="shell">$.zig.test.te
4eb20 73 74 2e 7a 69 67 0a 31 2f 37 20 74 65 73 74 20 26 71 75 6f 74 3b 5b 4e 5d 54 20 74 6f 20 5b 5d st.zig.1/7.test.&quot;[N]T.to.[]
4eb40 63 6f 6e 73 74 20 54 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 37 20 74 65 73 74 20 26 71 75 6f const.T&quot;...OK.2/7.test.&quo
4eb60 74 3b 5b 4e 5d 54 20 74 6f 20 45 21 5b 5d 63 6f 6e 73 74 20 54 26 71 75 6f 74 3b 2e 2e 2e 4f 4b t;[N]T.to.E![]const.T&quot;...OK
4eb80 0a 33 2f 37 20 74 65 73 74 20 26 71 75 6f 74 3b 5b 4e 5d 54 20 74 6f 20 3f 5b 5d 63 6f 6e 73 74 .3/7.test.&quot;[N]T.to.?[]const
4eba0 20 54 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 34 2f 37 20 74 65 73 74 20 26 71 75 6f 74 3b 2a 5b 4e .T&quot;...OK.4/7.test.&quot;*[N
4ebc0 5d 54 20 74 6f 20 5b 5d 54 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 35 2f 37 20 74 65 73 74 20 26 71 ]T.to.[]T&quot;...OK.5/7.test.&q
4ebe0 75 6f 74 3b 2a 5b 4e 5d 54 20 74 6f 20 5b 2a 5d 54 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 36 2f 37 uot;*[N]T.to.[*]T&quot;...OK.6/7
4ec00 20 74 65 73 74 20 26 71 75 6f 74 3b 2a 5b 4e 5d 54 20 74 6f 20 3f 5b 2a 5d 54 26 71 75 6f 74 3b .test.&quot;*[N]T.to.?[*]T&quot;
4ec20 2e 2e 2e 4f 4b 0a 37 2f 37 20 74 65 73 74 20 26 71 75 6f 74 3b 2a 54 20 74 6f 20 2a 5b 31 5d 54 ...OK.7/7.test.&quot;*T.to.*[1]T
4ec40 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f &quot;...OK.All.tests.passed..</
4ec60 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c code></pre>........<p>See.also:<
4ec80 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 2d 50 6f 69 6e 74 65 72 73 /p><ul>.<li><a.href="#C-Pointers
4eca0 22 3e 43 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 ">C.Pointers</a></li>.</ul>.....
4ecc0 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d ..........<h3.id="Implicit-Cast-
4ece0 4f 70 74 69 6f 6e 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 6c 69 63 69 Optionals"><a.href="#toc-Implici
4ed00 74 2d 43 61 73 74 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 73 74 3a t-Cast-Optionals">Implicit.Cast:
4ed20 20 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 .Optionals</a>.<a.class="hdr".hr
4ed40 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e c2 a7 ef="#Implicit-Cast-Optionals">..
4ed60 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 70 </a></h3>........<p>.......The.p
4ed80 61 79 6c 6f 61 64 20 74 79 70 65 20 6f 66 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 ayload.type.of.<a.href="#Optiona
4eda0 6c 73 22 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 3c 61 ls">Optionals</a>,.as.well.as.<a
4edc0 20 68 72 65 66 3d 22 23 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 2c 20 69 6d 70 6c 69 63 69 74 .href="#null">null</a>,.implicit
4ede0 6c 79 20 63 61 73 74 20 74 6f 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 2e 0a 20 20 ly.cast.to.the.optional.type....
4ee00 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ....</p>.......<p.class="file">t
4ee20 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
4ee40 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
4ee60 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 an>.std.=.<span.class="tok-built
4ee80 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
4eea0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
4eec0 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ;.<span.class="tok-kw">const</sp
4eee0 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a an>.assert.=.std.debug.assert;..
4ef00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
4ef20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 .<span.class="tok-str">&quot;imp
4ef40 6c 69 63 69 74 20 63 61 73 74 69 6e 67 20 74 6f 20 6f 70 74 69 6f 6e 61 6c 73 26 71 75 6f 74 3b licit.casting.to.optionals&quot;
4ef60 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
4ef80 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d w">const</span>.x:.?<span.class=
4efa0 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c "tok-type">i32</span>.=.<span.cl
4efc0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 ass="tok-number">1234</span>;...
4efe0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
4f000 61 6e 3e 20 79 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 an>.y:.?<span.class="tok-type">i
4f020 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 32</span>.=.<span.class="tok-nul
4f040 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 78 2e 3f 20 l">null</span>;......assert(x.?.
4f060 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 ==.<span.class="tok-number">1234
4f080 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 79 20 3d 3d 20 3c 73 70 61 6e 20 </span>);.....assert(y.==.<span.
4f0a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 29 3b 0a 7d class="tok-null">null</span>);.}
4f0c0 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 </code></pre><pre><code.class="s
4f0e0 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 hell">$.zig.test.test.zig.1/1.te
4f100 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 69 6e 67 20 74 6f 20 6f 70 74 st.&quot;implicit.casting.to.opt
4f120 69 6f 6e 61 6c 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 ionals&quot;...OK.All.tests.pass
4f140 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 49 74 20 77 ed..</code></pre>........<p>It.w
4f160 6f 72 6b 73 20 6e 65 73 74 65 64 20 69 6e 73 69 64 65 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 orks.nested.inside.the.<a.href="
4f180 23 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 3e 45 72 72 6f 72 20 55 6e 69 6f 6e 20 54 #Error-Union-Type">Error.Union.T
4f1a0 79 70 65 3c 2f 61 3e 2c 20 74 6f 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 ype</a>,.too:</p>.......<p.class
4f1c0 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ="file">test.zig</p><pre><code.c
4f1e0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
4f200 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 const</span>.std.=.<span.class="
4f220 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 tok-builtin">@import</span>(<spa
4f240 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 n.class="tok-str">&quot;std&quot
4f260 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ;</span>);.<span.class="tok-kw">
4f280 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e const</span>.assert.=.std.debug.
4f2a0 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 assert;..<span.class="tok-kw">te
4f2c0 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e st</span>.<span.class="tok-str">
4f2e0 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 69 6e 67 20 74 6f 20 6f 70 74 69 6f 6e &quot;implicit.casting.to.option
4f300 61 6c 73 20 77 72 61 70 70 65 64 20 69 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 26 71 75 6f 74 3b als.wrapped.in.error.union&quot;
4f320 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
4f340 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 w">const</span>.x:.<span.class="
4f360 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3f 3c 73 70 61 6e tok-type">anyerror</span>!?<span
4f380 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c .class="tok-type">i32</span>.=.<
4f3a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 span.class="tok-number">1234</sp
4f3c0 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f an>;.....<span.class="tok-kw">co
4f3e0 6e 73 74 3c 2f 73 70 61 6e 3e 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 nst</span>.y:.<span.class="tok-t
4f400 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3f 3c 73 70 61 6e 20 63 6c 61 73 ype">anyerror</span>!?<span.clas
4f420 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 s="tok-type">i32</span>.=.<span.
4f440 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 class="tok-null">null</span>;...
4f460 20 20 20 61 73 73 65 72 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ...assert((<span.class="tok-kw">
4f480 74 72 79 3c 2f 73 70 61 6e 3e 20 78 29 2e 3f 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 try</span>.x).?.==.<span.class="
4f4a0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 tok-number">1234</span>);.....as
4f4c0 73 65 72 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f sert((<span.class="tok-kw">try</
4f4e0 73 70 61 6e 3e 20 79 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c span>.y).==.<span.class="tok-nul
4f500 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c l">null</span>);.}</code></pre><
4f520 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 pre><code.class="shell">$.zig.te
4f540 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 st.test.zig.1/1.test.&quot;impli
4f560 63 69 74 20 63 61 73 74 69 6e 67 20 74 6f 20 6f 70 74 69 6f 6e 61 6c 73 20 77 72 61 70 70 65 64 cit.casting.to.optionals.wrapped
4f580 20 69 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 .in.error.union&quot;...OK.All.t
4f5a0 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 ests.passed..</code></pre>......
4f5c0 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 45 .........<h3.id="Implicit-Cast-E
4f5e0 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 6c 69 rror-Unions"><a.href="#toc-Impli
4f600 63 69 74 2d 43 61 73 74 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e 49 6d 70 6c 69 63 69 74 20 cit-Cast-Error-Unions">Implicit.
4f620 43 61 73 74 3a 20 45 72 72 6f 72 20 55 6e 69 6f 6e 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d Cast:.Error.Unions</a>.<a.class=
4f640 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 45 72 72 6f 72 "hdr".href="#Implicit-Cast-Error
4f660 2d 55 6e 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 -Unions">..</a></h3>........<p>T
4f680 68 65 20 70 61 79 6c 6f 61 64 20 74 79 70 65 20 6f 66 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 he.payload.type.of.an.<a.href="#
4f6a0 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 3e 45 72 72 6f 72 20 55 6e 69 6f 6e 20 54 79 Error-Union-Type">Error.Union.Ty
4f6c0 70 65 3c 2f 61 3e 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 pe</a>.as.well.as.the.<a.href="#
4f6e0 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 3e 45 72 72 6f 72 20 53 65 74 20 54 79 70 65 3c 2f Error-Set-Type">Error.Set.Type</
4f700 61 3e 0a 20 20 20 20 20 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 74 6f 20 74 68 65 20 a>.......implicitly.cast.to.the.
4f720 65 72 72 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 error.union.type:.......</p>....
4f740 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
4f760 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
4f780 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 s="tok-kw">const</span>.std.=.<s
4f7a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c pan.class="tok-builtin">@import<
4f7c0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>(<span.class="tok-str">&qu
4f7e0 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 ot;std&quot;</span>);.<span.clas
4f800 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d s="tok-kw">const</span>.assert.=
4f820 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d .std.debug.assert;..<span.class=
4f840 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
4f860 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 69 6e ="tok-str">&quot;implicit.castin
4f880 67 20 74 6f 20 65 72 72 6f 72 20 75 6e 69 6f 6e 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b g.to.error.unions&quot;</span>.{
4f8a0 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c .....<span.class="tok-kw">const<
4f8c0 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 /span>.x:.<span.class="tok-type"
4f8e0 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >anyerror</span>!<span.class="to
4f900 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-type">i32</span>.=.<span.class
4f920 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c ="tok-number">1234</span>;.....<
4f940 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
4f960 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 .y:.<span.class="tok-type">anyer
4f980 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 ror</span>!<span.class="tok-type
4f9a0 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">i32</span>.=.<span.class="tok-
4f9c0 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 46 61 69 6c 75 72 65 3b 0a 0a 20 20 20 20 61 kw">error</span>.Failure;......a
4f9e0 73 73 65 72 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c ssert((<span.class="tok-kw">try<
4fa00 2f 73 70 61 6e 3e 20 78 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 /span>.x).==.<span.class="tok-nu
4fa20 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 73 74 64 2e 74 65 73 74 mber">1234</span>);.....std.test
4fa40 69 6e 67 2e 65 78 70 65 63 74 45 72 72 6f 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ing.expectError(<span.class="tok
4fa60 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 46 61 69 6c 75 72 65 2c 20 79 29 3b 0a 7d -kw">error</span>.Failure,.y);.}
4fa80 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 </code></pre><pre><code.class="s
4faa0 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 hell">$.zig.test.test.zig.1/1.te
4fac0 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 69 6e 67 20 74 6f 20 65 72 72 st.&quot;implicit.casting.to.err
4fae0 6f 72 20 75 6e 69 6f 6e 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 or.unions&quot;...OK.All.tests.p
4fb00 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 assed..</code></pre>............
4fb20 20 20 20 3c 68 33 20 69 64 3d 22 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 43 6f 6d 70 69 6c 65 ...<h3.id="Implicit-Cast-Compile
4fb40 2d 54 69 6d 65 2d 4b 6e 6f 77 6e 2d 4e 75 6d 62 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 -Time-Known-Numbers"><a.href="#t
4fb60 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 4b 6e oc-Implicit-Cast-Compile-Time-Kn
4fb80 6f 77 6e 2d 4e 75 6d 62 65 72 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 73 74 3a 20 43 6f 6d 70 own-Numbers">Implicit.Cast:.Comp
4fba0 69 6c 65 2d 54 69 6d 65 20 4b 6e 6f 77 6e 20 4e 75 6d 62 65 72 73 3c 2f 61 3e 20 3c 61 20 63 6c ile-Time.Known.Numbers</a>.<a.cl
4fbc0 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 43 ass="hdr".href="#Implicit-Cast-C
4fbe0 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 4b 6e 6f 77 6e 2d 4e 75 6d 62 65 72 73 22 3e c2 a7 3c 2f 61 ompile-Time-Known-Numbers">..</a
4fc00 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 57 68 65 6e 20 61 20 6e 75 6d 62 65 72 20 69 ></h3>........<p>When.a.number.i
4fc20 73 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f s.<a.href="#comptime">comptime</
4fc40 61 3e 2d 6b 6e 6f 77 6e 20 74 6f 20 62 65 20 72 65 70 72 65 73 65 6e 74 61 62 6c 65 20 69 6e 20 a>-known.to.be.representable.in.
4fc60 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 2c 0a 20 20 20 20 20 20 69 74 20 6d the.destination.type,.......it.m
4fc80 61 79 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 65 64 3a 0a 20 20 20 20 20 20 3c ay.be.implicitly.casted:.......<
4fca0 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a /p>.......<p.class="file">test.z
4fcc0 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ig</p><pre><code.class="zig"><sp
4fce0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 an.class="tok-kw">const</span>.s
4fd00 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 td.=.<span.class="tok-builtin">@
4fd20 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 import</span>(<span.class="tok-s
4fd40 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 tr">&quot;std&quot;</span>);.<sp
4fd60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 an.class="tok-kw">const</span>.a
4fd80 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e ssert.=.std.debug.assert;..<span
4fda0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
4fdc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 n.class="tok-str">&quot;implicit
4fde0 20 63 61 73 74 69 6e 67 20 6c 61 72 67 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 74 6f 20 73 .casting.large.integer.type.to.s
4fe00 6d 61 6c 6c 65 72 20 6f 6e 65 20 77 68 65 6e 20 76 61 6c 75 65 20 69 73 20 63 6f 6d 70 74 69 6d maller.one.when.value.is.comptim
4fe20 65 20 6b 6e 6f 77 6e 20 74 6f 20 66 69 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 e.known.to.fit&quot;</span>.{...
4fe40 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
4fe60 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 an>.x:.<span.class="tok-type">u6
4fe80 34 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 4</span>.=.<span.class="tok-numb
4fea0 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d er">255</span>;.....<span.class=
4fec0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 79 3a 20 3c 73 70 61 6e 20 63 "tok-kw">const</span>.y:.<span.c
4fee0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 78 3b 0a 20 lass="tok-type">u8</span>.=.x;..
4ff00 20 20 20 61 73 73 65 72 74 28 79 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ...assert(y.==.<span.class="tok-
4ff20 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 number">255</span>);.}</code></p
4ff40 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
4ff60 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 g.test.test.zig.1/1.test.&quot;i
4ff80 6d 70 6c 69 63 69 74 20 63 61 73 74 69 6e 67 20 6c 61 72 67 65 20 69 6e 74 65 67 65 72 20 74 79 mplicit.casting.large.integer.ty
4ffa0 70 65 20 74 6f 20 73 6d 61 6c 6c 65 72 20 6f 6e 65 20 77 68 65 6e 20 76 61 6c 75 65 20 69 73 20 pe.to.smaller.one.when.value.is.
4ffc0 63 6f 6d 70 74 69 6d 65 20 6b 6e 6f 77 6e 20 74 6f 20 66 69 74 26 71 75 6f 74 3b 2e 2e 2e 4f 4b comptime.known.to.fit&quot;...OK
4ffe0 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e .All.tests.passed..</code></pre>
50000 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6d 70 6c 69 63 69 74 2d ...............<h3.id="Implicit-
50020 43 61 73 74 2d 75 6e 69 6f 6e 73 2d 61 6e 64 2d 65 6e 75 6d 73 22 3e 3c 61 20 68 72 65 66 3d 22 Cast-unions-and-enums"><a.href="
50040 23 74 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 75 6e 69 6f 6e 73 2d 61 6e 64 2d 65 6e #toc-Implicit-Cast-unions-and-en
50060 75 6d 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 73 74 3a 20 75 6e 69 6f 6e 73 20 61 6e 64 20 65 ums">Implicit.Cast:.unions.and.e
50080 6e 75 6d 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 nums</a>.<a.class="hdr".href="#I
500a0 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 75 6e 69 6f 6e 73 2d 61 6e 64 2d 65 6e 75 6d 73 22 3e c2 mplicit-Cast-unions-and-enums">.
500c0 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 61 67 67 65 64 20 75 6e 69 6f .</a></h3>........<p>Tagged.unio
500e0 6e 73 20 63 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 74 6f 20 65 6e 75 ns.can.be.implicitly.cast.to.enu
50100 6d 73 2c 20 61 6e 64 20 65 6e 75 6d 73 20 63 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 ms,.and.enums.can.be.implicitly.
50120 63 61 73 74 65 64 20 74 6f 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 73 0a 20 20 20 20 20 20 77 68 casted.to.tagged.unions.......wh
50140 65 6e 20 74 68 65 79 20 61 72 65 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e en.they.are.<a.href="#comptime">
50160 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2d 6b 6e 6f 77 6e 20 74 6f 20 62 65 20 61 20 66 69 65 6c 64 comptime</a>-known.to.be.a.field
50180 20 6f 66 20 74 68 65 20 75 6e 69 6f 6e 20 74 68 61 74 20 68 61 73 20 6f 6e 6c 79 20 6f 6e 65 20 .of.the.union.that.has.only.one.
501a0 70 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 2c 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 3c 61 possible.value,.such.as.......<a
501c0 20 68 72 65 66 3d 22 23 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f .href="#void">void</a>:.......</
501e0 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 p>.......<p.class="file">test.zi
50200 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 g</p><pre><code.class="zig"><spa
50220 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 n.class="tok-kw">const</span>.st
50240 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 d.=.<span.class="tok-builtin">@i
50260 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 mport</span>(<span.class="tok-st
50280 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 r">&quot;std&quot;</span>);.<spa
502a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 n.class="tok-kw">const</span>.as
502c0 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 sert.=.std.debug.assert;..<span.
502e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 20 3d 20 class="tok-kw">const</span>.E.=.
50300 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e <span.class="tok-kw">enum</span>
50320 20 7b 0a 20 20 20 20 4f 6e 65 2c 0a 20 20 20 20 54 77 6f 2c 0a 20 20 20 20 54 68 72 65 65 2c 0a .{.....One,.....Two,.....Three,.
50340 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f };..<span.class="tok-kw">const</
50360 73 70 61 6e 3e 20 55 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 span>.U.=.<span.class="tok-kw">u
50380 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 28 45 29 20 7b 0a 20 20 20 20 4f 6e 65 3a 20 3c 73 70 61 6e 20 nion</span>(E).{.....One:.<span.
503a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 class="tok-type">i32</span>,....
503c0 20 54 77 6f 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 .Two:.<span.class="tok-type">f32
503e0 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 54 68 72 65 65 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c </span>,.....Three,.};..<span.cl
50400 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ass="tok-kw">test</span>.<span.c
50420 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 lass="tok-str">&quot;implicit.ca
50440 73 74 69 6e 67 20 62 65 74 77 65 65 6e 20 75 6e 69 6f 6e 73 20 61 6e 64 20 65 6e 75 6d 73 26 71 sting.between.unions.and.enums&q
50460 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>.{.....<span.class="t
50480 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 75 20 3d 20 55 7b 20 2e 54 77 6f 20 3d 20 ok-kw">var</span>.u.=.U{..Two.=.
504a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 2e 33 34 3c 2f <span.class="tok-number">12.34</
504c0 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 span>.};.....<span.class="tok-kw
504e0 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 65 3a 20 45 20 3d 20 75 3b 0a 20 20 20 20 61 73 73 65 72 ">var</span>.e:.E.=.u;.....asser
50500 74 28 65 20 3d 3d 20 45 2e 54 77 6f 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d t(e.==.E.Two);......<span.class=
50520 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 74 68 72 65 65 20 3d 20 45 2e "tok-kw">const</span>.three.=.E.
50540 54 68 72 65 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e Three;.....<span.class="tok-kw">
50560 76 61 72 3c 2f 73 70 61 6e 3e 20 61 6e 6f 74 68 65 72 5f 75 3a 20 55 20 3d 20 74 68 72 65 65 3b var</span>.another_u:.U.=.three;
50580 0a 20 20 20 20 61 73 73 65 72 74 28 61 6e 6f 74 68 65 72 5f 75 20 3d 3d 20 45 2e 54 68 72 65 65 .....assert(another_u.==.E.Three
505a0 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 );.}</code></pre><pre><code.clas
505c0 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f s="shell">$.zig.test.test.zig.1/
505e0 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 69 6e 67 20 62 65 1.test.&quot;implicit.casting.be
50600 74 77 65 65 6e 20 75 6e 69 6f 6e 73 20 61 6e 64 20 65 6e 75 6d 73 26 71 75 6f 74 3b 2e 2e 2e 4f tween.unions.and.enums&quot;...O
50620 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 K.All.tests.passed..</code></pre
50640 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c >........<p>See.also:</p><ul>.<l
50660 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 i><a.href="#union">union</a></li
50680 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 3c 2f >.<li><a.href="#enum">enum</a></
506a0 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 li>.</ul>...............<h3.id="
506c0 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e 3c 61 Implicit-Cast-Zero-Bit-Types"><a
506e0 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 5a 65 72 6f 2d 42 .href="#toc-Implicit-Cast-Zero-B
50700 69 74 2d 54 79 70 65 73 22 3e 49 6d 70 6c 69 63 69 74 20 43 61 73 74 3a 20 5a 65 72 6f 20 42 69 it-Types">Implicit.Cast:.Zero.Bi
50720 74 20 54 79 70 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d t.Types</a>.<a.class="hdr".href=
50740 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e "#Implicit-Cast-Zero-Bit-Types">
50760 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d 22 23 ..</a></h3>........<p><a.href="#
50780 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e 5a 65 72 6f 20 42 69 74 20 54 79 70 65 73 3c 2f Zero-Bit-Types">Zero.Bit.Types</
507a0 61 3e 20 6d 61 79 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 65 64 20 74 6f 20 73 a>.may.be.implicitly.casted.to.s
507c0 69 6e 67 6c 65 2d 69 74 65 6d 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 ingle-item.<a.href="#Pointers">P
507e0 6f 69 6e 74 65 72 73 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 ointers</a>,.......regardless.of
50800 20 63 6f 6e 73 74 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 20 64 6f 63 75 6d 65 .const.</p>.......<p>TODO.docume
50820 6e 74 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 66 6f 72 20 74 68 69 73 3c 2f 70 3e 0a 20 20 nt.the.reasoning.for.this</p>...
50840 20 20 20 20 3c 70 3e 54 4f 44 4f 20 64 6f 63 75 6d 65 6e 74 20 77 68 65 74 68 65 72 20 76 69 63 ....<p>TODO.document.whether.vic
50860 65 20 76 65 72 73 61 20 73 68 6f 75 6c 64 20 77 6f 72 6b 20 61 6e 64 20 77 68 79 3c 2f 70 3e 0a e.versa.should.work.and.why</p>.
50880 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f ......<p.class="file">test.zig</
508a0 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 p><pre><code.class="zig"><span.c
508c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 lass="tok-kw">test</span>.<span.
508e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 class="tok-str">&quot;implicit.c
50900 61 73 74 69 6e 67 20 6f 66 20 7a 65 72 6f 20 62 69 74 20 74 79 70 65 73 26 71 75 6f 74 3b 3c 2f asting.of.zero.bit.types&quot;</
50920 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
50940 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >var</span>.x:.<span.class="tok-
50960 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 3d 20 7b 7d 3b 0a 20 20 20 20 3c 73 70 61 type">void</span>.=.{};.....<spa
50980 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 3a 20 2a n.class="tok-kw">var</span>.y:.*
509a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 <span.class="tok-type">void</spa
509c0 6e 3e 20 3d 20 78 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d n>.=.x;.....<span.class="tok-com
509e0 6d 65 6e 74 22 3e 2f 2f 76 61 72 20 7a 3a 20 76 6f 69 64 20 3d 20 79 3b 20 2f 2f 20 54 4f 44 4f ment">//var.z:.void.=.y;.//.TODO
50a00 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 </span>.}</code></pre><pre><code
50a20 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a .class="shell">$.zig.test.test.z
50a40 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 69 ig.1/1.test.&quot;implicit.casti
50a60 6e 67 20 6f 66 20 7a 65 72 6f 20 62 69 74 20 74 79 70 65 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a ng.of.zero.bit.types&quot;...OK.
50a80 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a All.tests.passed..</code></pre>.
50aa0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6d 70 6c 69 63 69 74 2d 43 ..............<h3.id="Implicit-C
50ac0 61 73 74 2d 75 6e 64 65 66 69 6e 65 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 ast-undefined"><a.href="#toc-Imp
50ae0 6c 69 63 69 74 2d 43 61 73 74 2d 75 6e 64 65 66 69 6e 65 64 22 3e 49 6d 70 6c 69 63 69 74 20 43 licit-Cast-undefined">Implicit.C
50b00 61 73 74 3a 20 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 ast:.undefined</a>.<a.class="hdr
50b20 22 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 2d 75 6e 64 65 66 69 6e 65 64 ".href="#Implicit-Cast-undefined
50b40 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d ">..</a></h3>........<p><a.href=
50b60 22 23 75 6e 64 65 66 69 6e 65 64 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 20 63 61 6e 20 62 "#undefined">undefined</a>.can.b
50b80 65 20 63 61 73 74 20 74 6f 20 61 6e 79 20 74 79 70 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 e.cast.to.any.type.</p>.........
50ba0 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 78 70 6c 69 63 69 74 2d 43 61 .............<h2.id="Explicit-Ca
50bc0 73 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 45 78 70 6c 69 63 69 74 2d 43 61 73 74 sts"><a.href="#toc-Explicit-Cast
50be0 73 22 3e 45 78 70 6c 69 63 69 74 20 43 61 73 74 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 s">Explicit.Casts</a>.<a.class="
50c00 68 64 72 22 20 68 72 65 66 3d 22 23 45 78 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e c2 a7 3c 2f hdr".href="#Explicit-Casts">..</
50c20 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 70 6c 69 63 69 a></h2>........<p>.......Explici
50c40 74 20 63 61 73 74 73 20 61 72 65 20 70 65 72 66 6f 72 6d 65 64 20 76 69 61 20 3c 61 20 68 72 65 t.casts.are.performed.via.<a.hre
50c60 66 3d 22 23 42 75 69 6c 74 69 6e 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 46 f="#Builtin-Functions">Builtin.F
50c80 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 53 6f 6d 65 20 65 78 70 6c 69 63 69 unctions</a>........Some.explici
50ca0 74 20 63 61 73 74 73 20 61 72 65 20 73 61 66 65 3b 20 73 6f 6d 65 20 61 72 65 20 6e 6f 74 2e 0a t.casts.are.safe;.some.are.not..
50cc0 20 20 20 20 20 20 53 6f 6d 65 20 65 78 70 6c 69 63 69 74 20 63 61 73 74 73 20 70 65 72 66 6f 72 ......Some.explicit.casts.perfor
50ce0 6d 20 6c 61 6e 67 75 61 67 65 2d 6c 65 76 65 6c 20 61 73 73 65 72 74 69 6f 6e 73 3b 20 73 6f 6d m.language-level.assertions;.som
50d00 65 20 64 6f 20 6e 6f 74 2e 0a 20 20 20 20 20 20 53 6f 6d 65 20 65 78 70 6c 69 63 69 74 20 63 61 e.do.not........Some.explicit.ca
50d20 73 74 73 20 61 72 65 20 6e 6f 2d 6f 70 73 20 61 74 20 72 75 6e 74 69 6d 65 3b 20 73 6f 6d 65 20 sts.are.no-ops.at.runtime;.some.
50d40 61 72 65 20 6e 6f 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 are.not........</p>.......<ul>..
50d60 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 69 74 43 61 73 74 22 3e .........<li><a.href="#bitCast">
50d80 40 62 69 74 43 61 73 74 3c 2f 61 3e 20 2d 20 63 68 61 6e 67 65 20 74 79 70 65 20 62 75 74 20 6d @bitCast</a>.-.change.type.but.m
50da0 61 69 6e 74 61 69 6e 20 62 69 74 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a aintain.bit.representation</li>.
50dc0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 43 61 73 ..........<li><a.href="#alignCas
50de0 74 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 61 3e 20 2d 20 6d 61 6b 65 20 61 20 70 6f 69 6e 74 t">@alignCast</a>.-.make.a.point
50e00 65 72 20 68 61 76 65 20 6d 6f 72 65 20 61 6c 69 67 6e 6d 65 6e 74 3c 2f 6c 69 3e 0a 20 20 20 20 er.have.more.alignment</li>.....
50e20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 6f 6f 6c 54 6f 49 6e 74 22 3e 40 ......<li><a.href="#boolToInt">@
50e40 62 6f 6f 6c 54 6f 49 6e 74 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 74 72 75 65 20 74 6f 20 boolToInt</a>.-.convert.true.to.
50e60 31 20 61 6e 64 20 66 61 6c 73 65 20 74 6f 20 30 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 1.and.false.to.0</li>...........
50e80 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 79 74 65 73 54 6f 53 6c 69 63 65 22 3e 40 62 79 74 <li><a.href="#bytesToSlice">@byt
50ea0 65 73 54 6f 53 6c 69 63 65 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 61 20 73 6c 69 63 65 20 esToSlice</a>.-.convert.a.slice.
50ec0 6f 66 20 62 79 74 65 73 20 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 20 61 6e 6f 74 68 65 72 20 74 of.bytes.to.a.slice.of.another.t
50ee0 79 70 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 ype</li>...........<li><a.href="
50f00 23 65 6e 75 6d 54 6f 49 6e 74 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 61 3e 20 2d 20 6f 62 74 #enumToInt">@enumToInt</a>.-.obt
50f20 61 69 6e 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 61 67 20 76 61 6c 75 65 20 6f 66 20 61 6e 20 ain.the.integer.tag.value.of.an.
50f40 65 6e 75 6d 20 6f 72 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 enum.or.tagged.union</li>.......
50f60 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 72 72 53 65 74 43 61 73 74 22 3e 40 65 ....<li><a.href="#errSetCast">@e
50f80 72 72 53 65 74 43 61 73 74 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 74 6f 20 61 20 73 6d 61 rrSetCast</a>.-.convert.to.a.sma
50fa0 6c 6c 65 72 20 65 72 72 6f 72 20 73 65 74 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c ller.error.set</li>...........<l
50fc0 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 54 6f 49 6e 74 22 3e 40 65 72 72 6f 72 54 6f i><a.href="#errorToInt">@errorTo
50fe0 49 6e 74 3c 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 74 68 65 20 69 6e 74 65 67 65 72 20 76 61 6c Int</a>.-.obtain.the.integer.val
51000 75 65 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 ue.of.an.error.code</li>........
51020 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 43 61 73 74 22 3e 40 66 6c 6f ...<li><a.href="#floatCast">@flo
51040 61 74 43 61 73 74 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 61 20 6c 61 72 67 65 72 20 66 6c atCast</a>.-.convert.a.larger.fl
51060 6f 61 74 20 74 6f 20 61 20 73 6d 61 6c 6c 65 72 20 66 6c 6f 61 74 3c 2f 6c 69 3e 0a 20 20 20 20 oat.to.a.smaller.float</li>.....
51080 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 54 6f 49 6e 74 22 3e ......<li><a.href="#floatToInt">
510a0 40 66 6c 6f 61 74 54 6f 49 6e 74 3c 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 74 68 65 20 69 6e 74 @floatToInt</a>.-.obtain.the.int
510c0 65 67 65 72 20 70 61 72 74 20 6f 66 20 61 20 66 6c 6f 61 74 20 76 61 6c 75 65 3c 2f 6c 69 3e 0a eger.part.of.a.float.value</li>.
510e0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 43 61 73 74 22 ..........<li><a.href="#intCast"
51100 3e 40 69 6e 74 43 61 73 74 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 62 65 74 77 65 65 6e 20 >@intCast</a>.-.convert.between.
51120 69 6e 74 65 67 65 72 20 74 79 70 65 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 integer.types</li>...........<li
51140 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 45 6e 75 6d 22 3e 40 69 6e 74 54 6f 45 6e 75 6d ><a.href="#intToEnum">@intToEnum
51160 3c 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 61 6e 20 65 6e 75 6d 20 76 61 6c 75 65 20 62 61 73 65 </a>.-.obtain.an.enum.value.base
51180 64 20 6f 6e 20 69 74 73 20 69 6e 74 65 67 65 72 20 74 61 67 20 76 61 6c 75 65 3c 2f 6c 69 3e 0a d.on.its.integer.tag.value</li>.
511a0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 45 72 72 ..........<li><a.href="#intToErr
511c0 6f 72 22 3e 40 69 6e 74 54 6f 45 72 72 6f 72 3c 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 61 6e 20 or">@intToError</a>.-.obtain.an.
511e0 65 72 72 6f 72 20 63 6f 64 65 20 62 61 73 65 64 20 6f 6e 20 69 74 73 20 69 6e 74 65 67 65 72 20 error.code.based.on.its.integer.
51200 76 61 6c 75 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 value</li>...........<li><a.href
51220 3d 22 23 69 6e 74 54 6f 46 6c 6f 61 74 22 3e 40 69 6e 74 54 6f 46 6c 6f 61 74 3c 2f 61 3e 20 2d ="#intToFloat">@intToFloat</a>.-
51240 20 63 6f 6e 76 65 72 74 20 61 6e 20 69 6e 74 65 67 65 72 20 74 6f 20 61 20 66 6c 6f 61 74 20 76 .convert.an.integer.to.a.float.v
51260 61 6c 75 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d alue</li>...........<li><a.href=
51280 22 23 69 6e 74 54 6f 50 74 72 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 61 3e 20 2d 20 63 6f 6e 76 "#intToPtr">@intToPtr</a>.-.conv
512a0 65 72 74 20 61 6e 20 61 64 64 72 65 73 73 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 3c 2f 6c 69 3e ert.an.address.to.a.pointer</li>
512c0 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 74 72 43 61 73 74 ...........<li><a.href="#ptrCast
512e0 22 3e 40 70 74 72 43 61 73 74 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 62 65 74 77 65 65 6e ">@ptrCast</a>.-.convert.between
51300 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c .pointer.types</li>...........<l
51320 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f 49 6e 74 3c i><a.href="#ptrToInt">@ptrToInt<
51340 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 61 20 70 6f /a>.-.obtain.the.address.of.a.po
51360 69 6e 74 65 72 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 inter</li>...........<li><a.href
51380 3d 22 23 73 6c 69 63 65 54 6f 42 79 74 65 73 22 3e 40 73 6c 69 63 65 54 6f 42 79 74 65 73 3c 2f ="#sliceToBytes">@sliceToBytes</
513a0 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 61 20 73 6c 69 63 65 20 6f 66 20 61 6e 79 74 68 69 6e 67 a>.-.convert.a.slice.of.anything
513c0 20 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 20 62 79 74 65 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 .to.a.slice.of.bytes</li>.......
513e0 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 72 75 6e 63 61 74 65 22 3e 40 74 72 75 ....<li><a.href="#truncate">@tru
51400 6e 63 61 74 65 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 62 65 74 77 65 65 6e 20 69 6e 74 65 ncate</a>.-.convert.between.inte
51420 67 65 72 20 74 79 70 65 73 2c 20 63 68 6f 70 70 69 6e 67 20 6f 66 66 20 62 69 74 73 3c 2f 6c 69 ger.types,.chopping.off.bits</li
51440 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 >.......</ul>...............<h2.
51460 69 64 3d 22 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 3c 61 20 68 72 65 id="Peer-Type-Resolution"><a.hre
51480 66 3d 22 23 74 6f 63 2d 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f 6e 22 3e 50 65 f="#toc-Peer-Type-Resolution">Pe
514a0 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d er.Type.Resolution</a>.<a.class=
514c0 22 68 64 72 22 20 68 72 65 66 3d 22 23 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f 6c 75 74 69 6f "hdr".href="#Peer-Type-Resolutio
514e0 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 50 65 65 72 20 54 79 n">..</a></h2>........<p>Peer.Ty
51500 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e 20 74 68 65 73 65 20 70 6c pe.Resolution.occurs.in.these.pl
51520 61 63 65 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 aces:</p>.......<ul>.........<li
51540 3e 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 20 65 78 ><a.href="#switch">switch</a>.ex
51560 70 72 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 pressions</li>.........<li><a.hr
51580 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e ef="#if">if</a>.expressions</li>
515a0 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 77 68 69 6c 65 22 3e 77 68 .........<li><a.href="#while">wh
515c0 69 6c 65 3c 2f 61 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 ile</a>.expressions</li>........
515e0 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 20 65 78 70 72 .<li><a.href="#for">for</a>.expr
51600 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4d 75 6c 74 69 70 6c essions</li>.........<li>Multipl
51620 65 20 62 72 65 61 6b 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 61 20 62 6c 6f 63 6b 3c 2f 6c e.break.statements.in.a.block</l
51640 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6f 6d 65 20 3c 61 20 68 72 65 66 3d 22 23 54 61 i>.........<li>Some.<a.href="#Ta
51660 62 6c 65 2d 6f 66 2d 4f 70 65 72 61 74 6f 72 73 22 3e 62 69 6e 61 72 79 20 6f 70 65 72 61 74 69 ble-of-Operators">binary.operati
51680 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c ons</a></li>.......</ul>.......<
516a0 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 6b 69 6e 64 20 6f 66 20 74 79 70 65 20 72 65 73 6f 6c p>.......This.kind.of.type.resol
516c0 75 74 69 6f 6e 20 63 68 6f 6f 73 65 73 20 61 20 74 79 70 65 20 74 68 61 74 20 61 6c 6c 20 70 65 ution.chooses.a.type.that.all.pe
516e0 65 72 20 74 79 70 65 73 20 63 61 6e 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 69 6e 74 er.types.can.implicitly.cast.int
51700 6f 2e 20 48 65 72 65 20 61 72 65 0a 20 20 20 20 20 20 73 6f 6d 65 20 65 78 61 6d 70 6c 65 73 3a o..Here.are.......some.examples:
51720 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 .......</p>.......<p.class="file
51740 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">test.zig</p><pre><code.class="
51760 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c zig"><span.class="tok-kw">const<
51780 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 /span>.std.=.<span.class="tok-bu
517a0 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 iltin">@import</span>(<span.clas
517c0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;std&quot;</spa
517e0 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c n>);.<span.class="tok-kw">const<
51800 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 /span>.assert.=.std.debug.assert
51820 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ;.<span.class="tok-kw">const</sp
51840 61 6e 3e 20 6d 65 6d 20 3d 20 73 74 64 2e 6d 65 6d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d an>.mem.=.std.mem;..<span.class=
51860 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
51880 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 65 65 72 20 72 65 73 6f 6c 76 65 20 69 6e ="tok-str">&quot;peer.resolve.in
518a0 74 20 77 69 64 65 6e 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 t.widening&quot;</span>.{.....<s
518c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a pan.class="tok-kw">var</span>.a:
518e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e .<span.class="tok-type">i8</span
51900 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 3c >.=.<span.class="tok-number">12<
51920 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>;.....<span.class="tok-kw"
51940 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >var</span>.b:.<span.class="tok-
51960 74 79 70 65 22 3e 69 31 36 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 type">i16</span>.=.<span.class="
51980 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e tok-number">34</span>;.....<span
519a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 61 .class="tok-kw">var</span>.c.=.a
519c0 20 2b 20 62 3b 0a 20 20 20 20 61 73 73 65 72 74 28 63 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 .+.b;.....assert(c.==.<span.clas
519e0 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 36 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 s="tok-number">46</span>);.....a
51a00 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e ssert(<span.class="tok-builtin">
51a20 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 63 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 @typeOf</span>(c).==.<span.class
51a40 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 31 36 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 ="tok-type">i16</span>);.}..<spa
51a60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 n.class="tok-kw">test</span>.<sp
51a80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 65 65 72 20 72 65 an.class="tok-str">&quot;peer.re
51aa0 73 6f 6c 76 65 20 61 72 72 61 79 73 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 73 69 7a 65 20 74 solve.arrays.of.different.size.t
51ac0 6f 20 63 6f 6e 73 74 20 73 6c 69 63 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 o.const.slice&quot;</span>.{....
51ae0 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .assert(mem.eql(<span.class="tok
51b00 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 62 6f 6f 6c 54 6f 53 74 72 28 3c 73 70 61 -type">u8</span>,.boolToStr(<spa
51b20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 2c n.class="tok-null">true</span>),
51b40 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 72 75 .<span.class="tok-str">&quot;tru
51b60 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d e&quot;</span>));.....assert(mem
51b80 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f .eql(<span.class="tok-type">u8</
51ba0 73 70 61 6e 3e 2c 20 62 6f 6f 6c 54 6f 53 74 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f span>,.boolToStr(<span.class="to
51bc0 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 2c 20 3c 73 70 61 6e 20 63 6c 61 k-null">false</span>),.<span.cla
51be0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 61 6c 73 65 26 71 75 6f 74 3b 3c 2f ss="tok-str">&quot;false&quot;</
51c00 73 70 61 6e 3e 29 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 span>));.....<span.class="tok-kw
51c20 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c ">comptime</span>.assert(mem.eql
51c40 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e (<span.class="tok-type">u8</span
51c60 3e 2c 20 62 6f 6f 6c 54 6f 53 74 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 >,.boolToStr(<span.class="tok-nu
51c80 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ll">true</span>),.<span.class="t
51ca0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 72 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 ok-str">&quot;true&quot;</span>)
51cc0 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 );.....<span.class="tok-kw">comp
51ce0 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e time</span>.assert(mem.eql(<span
51d00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 62 6f 6f .class="tok-type">u8</span>,.boo
51d20 6c 54 6f 53 74 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 lToStr(<span.class="tok-null">fa
51d40 6c 73 65 3c 2f 73 70 61 6e 3e 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 lse</span>),.<span.class="tok-st
51d60 72 22 3e 26 71 75 6f 74 3b 66 61 6c 73 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d r">&quot;false&quot;</span>));.}
51d80 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">fn</span>.
51da0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 6f 6f 6c 54 6f 53 74 72 3c 2f <span.class="tok-fn">boolToStr</
51dc0 73 70 61 6e 3e 28 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e span>(b:.<span.class="tok-type">
51de0 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d bool</span>).[]<span.class="tok-
51e00 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f kw">const</span>.<span.class="to
51e20 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c k-type">u8</span>.{.....<span.cl
51e40 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e ass="tok-kw">return</span>.<span
51e60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 3c 73 .class="tok-kw">if</span>.(b).<s
51e80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 72 75 65 26 71 pan.class="tok-str">&quot;true&q
51ea0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 uot;</span>.<span.class="tok-kw"
51ec0 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 >else</span>.<span.class="tok-st
51ee0 72 22 3e 26 71 75 6f 74 3b 66 61 6c 73 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a r">&quot;false&quot;</span>;.}..
51f00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
51f20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 65 65 .<span.class="tok-str">&quot;pee
51f40 72 20 72 65 73 6f 6c 76 65 20 61 72 72 61 79 20 61 6e 64 20 63 6f 6e 73 74 20 73 6c 69 63 65 26 r.resolve.array.and.const.slice&
51f60 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 74 65 73 74 50 65 65 72 52 65 73 6f 6c quot;</span>.{.....testPeerResol
51f80 76 65 41 72 72 61 79 43 6f 6e 73 74 53 6c 69 63 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 veArrayConstSlice(<span.class="t
51fa0 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e ok-null">true</span>);.....<span
51fc0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 .class="tok-kw">comptime</span>.
51fe0 74 65 73 74 50 65 65 72 52 65 73 6f 6c 76 65 41 72 72 61 79 43 6f 6e 73 74 53 6c 69 63 65 28 3c testPeerResolveArrayConstSlice(<
52000 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e span.class="tok-null">true</span
52020 3e 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 >);.}.<span.class="tok-kw">fn</s
52040 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 65 73 74 50 65 pan>.<span.class="tok-fn">testPe
52060 65 72 52 65 73 6f 6c 76 65 41 72 72 61 79 43 6f 6e 73 74 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 erResolveArrayConstSlice</span>(
52080 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f b:.<span.class="tok-type">bool</
520a0 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f span>).<span.class="tok-type">vo
520c0 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b id</span>.{.....<span.class="tok
520e0 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 31 20 3d 20 3c 73 70 61 6e -kw">const</span>.value1.=.<span
52100 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 3c 73 .class="tok-kw">if</span>.(b).<s
52120 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 6f 65 75 26 71 pan.class="tok-str">&quot;aoeu&q
52140 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 uot;</span>.<span.class="tok-kw"
52160 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 28 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >else</span>.([]<span.class="tok
52180 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -kw">const</span>.<span.class="t
521a0 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-type">u8</span>)(<span.class=
521c0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7a 7a 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 "tok-str">&quot;zz&quot;</span>)
521e0 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 ;.....<span.class="tok-kw">const
52200 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 32 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.value2.=.<span.class="to
52220 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 28 5b 5d 3c 73 70 61 6e 20 63 6c 61 k-kw">if</span>.(b).([]<span.cla
52240 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ss="tok-kw">const</span>.<span.c
52260 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 28 3c 73 70 61 6e lass="tok-type">u8</span>)(<span
52280 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7a 7a 26 71 75 6f 74 3b 3c .class="tok-str">&quot;zz&quot;<
522a0 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 /span>).<span.class="tok-kw">els
522c0 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 e</span>.<span.class="tok-str">&
522e0 71 75 6f 74 3b 61 6f 65 75 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 quot;aoeu&quot;</span>;.....asse
52300 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 rt(mem.eql(<span.class="tok-type
52320 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 31 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">u8</span>,.value1,.<span.class
52340 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 6f 65 75 26 71 75 6f 74 3b 3c 2f 73 70 61 ="tok-str">&quot;aoeu&quot;</spa
52360 6e 3e 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 n>));.....assert(mem.eql(<span.c
52380 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 lass="tok-type">u8</span>,.value
523a0 32 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7a 2,.<span.class="tok-str">&quot;z
523c0 7a 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 z&quot;</span>));.}..<span.class
523e0 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ="tok-kw">test</span>.<span.clas
52400 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 65 65 72 20 74 79 70 65 20 72 65 73 6f s="tok-str">&quot;peer.type.reso
52420 6c 75 74 69 6f 6e 3a 20 3f 54 20 61 6e 64 20 54 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a lution:.?T.and.T&quot;</span>.{.
52440 20 20 20 20 61 73 73 65 72 74 28 70 65 65 72 54 79 70 65 54 41 6e 64 4f 70 74 69 6f 6e 61 6c 54 ....assert(peerTypeTAndOptionalT
52460 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 (<span.class="tok-null">true</sp
52480 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 an>,.<span.class="tok-null">fals
524a0 65 3c 2f 73 70 61 6e 3e 29 2e 3f 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d e</span>).?.==.<span.class="tok-
524c0 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 65 number">0</span>);.....assert(pe
524e0 65 72 54 79 70 65 54 41 6e 64 4f 70 74 69 6f 6e 61 6c 54 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d erTypeTAndOptionalT(<span.class=
52500 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 "tok-null">false</span>,.<span.c
52520 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 2e 3f 20 lass="tok-null">false</span>).?.
52540 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 ==.<span.class="tok-number">3</s
52560 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>);.....<span.class="tok-kw">
52580 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 comptime</span>.{.........assert
525a0 28 70 65 65 72 54 79 70 65 54 41 6e 64 4f 70 74 69 6f 6e 61 6c 54 28 3c 73 70 61 6e 20 63 6c 61 (peerTypeTAndOptionalT(<span.cla
525c0 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e ss="tok-null">true</span>,.<span
525e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 2e .class="tok-null">false</span>).
52600 3f 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c ?.==.<span.class="tok-number">0<
52620 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 70 65 65 72 54 79 70 65 /span>);.........assert(peerType
52640 54 41 6e 64 4f 70 74 69 6f 6e 61 6c 54 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e TAndOptionalT(<span.class="tok-n
52660 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ull">false</span>,.<span.class="
52680 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 2e 3f 20 3d 3d 20 3c 73 70 tok-null">false</span>).?.==.<sp
526a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b an.class="tok-number">3</span>);
526c0 0a 20 20 20 20 7d 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e .....}.}.<span.class="tok-kw">fn
526e0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 65 65 </span>.<span.class="tok-fn">pee
52700 72 54 79 70 65 54 41 6e 64 4f 70 74 69 6f 6e 61 6c 54 3c 2f 73 70 61 6e 3e 28 63 3a 20 3c 73 70 rTypeTAndOptionalT</span>(c:.<sp
52720 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c an.class="tok-type">bool</span>,
52740 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c .b:.<span.class="tok-type">bool<
52760 2f 73 70 61 6e 3e 29 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e /span>).?<span.class="tok-type">
52780 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 usize</span>.{.....<span.class="
527a0 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 tok-kw">if</span>.(c).{.........
527c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 <span.class="tok-kw">return</spa
527e0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e n>.<span.class="tok-kw">if</span
52800 3e 20 28 62 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c >.(b).<span.class="tok-null">nul
52820 6c 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c l</span>.<span.class="tok-kw">el
52840 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 se</span>.<span.class="tok-type"
52860 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e >usize</span>(<span.class="tok-n
52880 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 umber">0</span>);.....}......<sp
528a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 an.class="tok-kw">return</span>.
528c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 <span.class="tok-type">usize</sp
528e0 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f an>(<span.class="tok-number">3</
52900 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e span>);.}..<span.class="tok-kw">
52920 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 test</span>.<span.class="tok-str
52940 22 3e 26 71 75 6f 74 3b 70 65 65 72 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 5b 30 ">&quot;peer.type.resolution:.[0
52960 5d 75 38 20 61 6e 64 20 5b 5d 63 6f 6e 73 74 20 75 38 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 ]u8.and.[]const.u8&quot;</span>.
52980 7b 0a 20 20 20 20 61 73 73 65 72 74 28 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 {.....assert(peerTypeEmptyArrayA
529a0 6e 64 53 6c 69 63 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 ndSlice(<span.class="tok-null">t
529c0 72 75 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 rue</span>,.<span.class="tok-str
529e0 22 3e 26 71 75 6f 74 3b 68 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6c 65 6e 20 3d 3d 20 ">&quot;hi&quot;</span>).len.==.
52a00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e <span.class="tok-number">0</span
52a20 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 >);.....assert(peerTypeEmptyArra
52a40 79 41 6e 64 53 6c 69 63 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 yAndSlice(<span.class="tok-null"
52a60 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >false</span>,.<span.class="tok-
52a80 73 74 72 22 3e 26 71 75 6f 74 3b 68 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6c 65 6e 20 str">&quot;hi&quot;</span>).len.
52aa0 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 ==.<span.class="tok-number">1</s
52ac0 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>);.....<span.class="tok-kw">
52ae0 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 comptime</span>.{.........assert
52b00 28 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 28 3c 73 70 61 (peerTypeEmptyArrayAndSlice(<spa
52b20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 2c 20 n.class="tok-null">true</span>,.
52b40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 69 26 71 <span.class="tok-str">&quot;hi&q
52b60 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d uot;</span>).len.==.<span.class=
52b80 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 "tok-number">0</span>);.........
52ba0 61 73 73 65 72 74 28 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 assert(peerTypeEmptyArrayAndSlic
52bc0 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f e(<span.class="tok-null">false</
52be0 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 span>,.<span.class="tok-str">&qu
52c00 6f 74 3b 68 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e ot;hi&quot;</span>).len.==.<span
52c20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 .class="tok-number">1</span>);..
52c40 20 20 20 7d 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f ...}.}.<span.class="tok-kw">fn</
52c60 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 65 65 72 54 span>.<span.class="tok-fn">peerT
52c80 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 61 3a 20 ypeEmptyArrayAndSlice</span>(a:.
52ca0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 <span.class="tok-type">bool</spa
52cc0 6e 3e 2c 20 73 6c 69 63 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n>,.slice:.[]<span.class="tok-kw
52ce0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">const</span>.<span.class="tok-
52d00 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 type">u8</span>).[]<span.class="
52d20 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">const</span>.<span.class
52d40 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 ="tok-type">u8</span>.{.....<spa
52d60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 29 20 7b n.class="tok-kw">if</span>.(a).{
52d80 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 .........<span.class="tok-kw">re
52da0 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d turn</span>.[_]<span.class="tok-
52dc0 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 7d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 type">u8</span>{};.....}......<s
52de0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e pan.class="tok-kw">return</span>
52e00 20 73 6c 69 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e .slice[<span.class="tok-number">
52e20 30 3c 2f 73 70 61 6e 3e 2e 2e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 0</span>..<span.class="tok-numbe
52e40 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b r">1</span>];.}.<span.class="tok
52e60 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f -kw">test</span>.<span.class="to
52e80 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 65 65 72 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f k-str">&quot;peer.type.resolutio
52ea0 6e 3a 20 5b 30 5d 75 38 2c 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 20 61 6e 64 20 61 6e 79 65 72 72 n:.[0]u8,.[]const.u8,.and.anyerr
52ec0 6f 72 21 5b 5d 75 38 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 7b 0a 20 20 20 or![]u8&quot;</span>.{.....{....
52ee0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 .....<span.class="tok-kw">var</s
52f00 70 61 6e 3e 20 64 61 74 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 pan>.data.=.<span.class="tok-str
52f20 22 3e 26 71 75 6f 74 3b 68 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 ">&quot;hi&quot;</span>;........
52f40 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
52f60 6e 3e 20 73 6c 69 63 65 20 3d 20 64 61 74 61 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b n>.slice.=.data[<span.class="tok
52f80 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 3b 0a 20 20 20 20 20 20 20 20 61 73 -number">0</span>..];.........as
52fa0 73 65 72 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f sert((<span.class="tok-kw">try</
52fc0 73 70 61 6e 3e 20 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 span>.peerTypeEmptyArrayAndSlice
52fe0 41 6e 64 45 72 72 6f 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e AndError(<span.class="tok-null">
53000 74 72 75 65 3c 2f 73 70 61 6e 3e 2c 20 73 6c 69 63 65 29 29 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 true</span>,.slice)).len.==.<spa
53020 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a n.class="tok-number">0</span>);.
53040 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ........assert((<span.class="tok
53060 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 -kw">try</span>.peerTypeEmptyArr
53080 61 79 41 6e 64 53 6c 69 63 65 41 6e 64 45 72 72 6f 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ayAndSliceAndError(<span.class="
530a0 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 20 73 6c 69 63 65 29 29 2e tok-null">false</span>,.slice)).
530c0 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e len.==.<span.class="tok-number">
530e0 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 1</span>);.....}.....<span.class
53100 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 ="tok-kw">comptime</span>.{.....
53120 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 ....<span.class="tok-kw">var</sp
53140 61 6e 3e 20 64 61 74 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 an>.data.=.<span.class="tok-str"
53160 3e 26 71 75 6f 74 3b 68 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 >&quot;hi&quot;</span>;.........
53180 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
531a0 3e 20 73 6c 69 63 65 20 3d 20 64 61 74 61 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >.slice.=.data[<span.class="tok-
531c0 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 3b 0a 20 20 20 20 20 20 20 20 61 73 73 number">0</span>..];.........ass
531e0 65 72 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 ert((<span.class="tok-kw">try</s
53200 70 61 6e 3e 20 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 41 pan>.peerTypeEmptyArrayAndSliceA
53220 6e 64 45 72 72 6f 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 ndError(<span.class="tok-null">t
53240 72 75 65 3c 2f 73 70 61 6e 3e 2c 20 73 6c 69 63 65 29 29 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e rue</span>,.slice)).len.==.<span
53260 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 .class="tok-number">0</span>);..
53280 20 20 20 20 20 20 20 61 73 73 65 72 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .......assert((<span.class="tok-
532a0 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 kw">try</span>.peerTypeEmptyArra
532c0 79 41 6e 64 53 6c 69 63 65 41 6e 64 45 72 72 6f 72 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 yAndSliceAndError(<span.class="t
532e0 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 20 73 6c 69 63 65 29 29 2e 6c ok-null">false</span>,.slice)).l
53300 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 en.==.<span.class="tok-number">1
53320 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 </span>);.....}.}.<span.class="t
53340 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
53360 6b 2d 66 6e 22 3e 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 k-fn">peerTypeEmptyArrayAndSlice
53380 41 6e 64 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 AndError</span>(a:.<span.class="
533a0 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 20 73 6c 69 63 65 3a 20 5b 5d tok-type">bool</span>,.slice:.[]
533c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
533e0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f ).<span.class="tok-type">anyerro
53400 72 3c 2f 73 70 61 6e 3e 21 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 r</span>![]<span.class="tok-type
53420 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ">u8</span>.{.....<span.class="t
53440 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 29 20 7b 0a 20 20 20 20 20 20 20 20 3c ok-kw">if</span>.(a).{.........<
53460 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e span.class="tok-kw">return</span
53480 3e 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f >.[_]<span.class="tok-type">u8</
534a0 73 70 61 6e 3e 7b 7d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d span>{};.....}......<span.class=
534c0 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 5b 3c 73 70 "tok-kw">return</span>.slice[<sp
534e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e an.class="tok-number">0</span>..
53500 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e <span.class="tok-number">1</span
53520 3e 5d 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 >];.}..<span.class="tok-kw">test
53540 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>.<span.class="tok-str">&q
53560 75 6f 74 3b 70 65 65 72 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 2a 63 6f 6e 73 74 uot;peer.type.resolution:.*const
53580 20 54 20 61 6e 64 20 3f 2a 54 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 .T.and.?*T&quot;</span>.{.....<s
535a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
535c0 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 a.=.<span.class="tok-builtin">@i
535e0 6e 74 54 6f 50 74 72 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ntToPtr</span>(*<span.class="tok
53600 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -kw">const</span>.<span.class="t
53620 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 ok-type">usize</span>,.<span.cla
53640 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 33 34 35 36 37 38 39 3c 2f 73 70 61 ss="tok-number">0x123456789</spa
53660 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f n>);.....<span.class="tok-kw">co
53680 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d nst</span>.b.=.<span.class="tok-
536a0 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 73 70 61 6e 3e 28 3f 2a 3c 73 70 61 builtin">@intToPtr</span>(?*<spa
536c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c n.class="tok-type">usize</span>,
536e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 33 34 .<span.class="tok-number">0x1234
53700 35 36 37 38 39 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 61 20 3d 3d 20 62 56789</span>);.....assert(a.==.b
53720 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 62 20 3d 3d 20 61 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c );.....assert(b.==.a);.}</code><
53740 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 /pre><pre><code.class="shell">$.
53760 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 37 20 74 65 73 74 20 26 71 75 6f 74 zig.test.test.zig.1/7.test.&quot
53780 3b 70 65 65 72 20 72 65 73 6f 6c 76 65 20 69 6e 74 20 77 69 64 65 6e 69 6e 67 26 71 75 6f 74 3b ;peer.resolve.int.widening&quot;
537a0 2e 2e 2e 4f 4b 0a 32 2f 37 20 74 65 73 74 20 26 71 75 6f 74 3b 70 65 65 72 20 72 65 73 6f 6c 76 ...OK.2/7.test.&quot;peer.resolv
537c0 65 20 61 72 72 61 79 73 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 73 69 7a 65 20 74 6f 20 63 6f e.arrays.of.different.size.to.co
537e0 6e 73 74 20 73 6c 69 63 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 33 2f 37 20 74 65 73 74 20 26 71 nst.slice&quot;...OK.3/7.test.&q
53800 75 6f 74 3b 70 65 65 72 20 72 65 73 6f 6c 76 65 20 61 72 72 61 79 20 61 6e 64 20 63 6f 6e 73 74 uot;peer.resolve.array.and.const
53820 20 73 6c 69 63 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 34 2f 37 20 74 65 73 74 20 26 71 75 6f 74 .slice&quot;...OK.4/7.test.&quot
53840 3b 70 65 65 72 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 3f 54 20 61 6e 64 20 54 26 ;peer.type.resolution:.?T.and.T&
53860 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 35 2f 37 20 74 65 73 74 20 26 71 75 6f 74 3b 70 65 65 72 20 74 quot;...OK.5/7.test.&quot;peer.t
53880 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 5b 30 5d 75 38 20 61 6e 64 20 5b 5d 63 6f 6e 73 ype.resolution:.[0]u8.and.[]cons
538a0 74 20 75 38 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 36 2f 37 20 74 65 73 74 20 26 71 75 6f 74 3b 70 t.u8&quot;...OK.6/7.test.&quot;p
538c0 65 65 72 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 5b 30 5d 75 38 2c 20 5b 5d 63 6f eer.type.resolution:.[0]u8,.[]co
538e0 6e 73 74 20 75 38 2c 20 61 6e 64 20 61 6e 79 65 72 72 6f 72 21 5b 5d 75 38 26 71 75 6f 74 3b 2e nst.u8,.and.anyerror![]u8&quot;.
53900 2e 2e 4f 4b 0a 37 2f 37 20 74 65 73 74 20 26 71 75 6f 74 3b 70 65 65 72 20 74 79 70 65 20 72 65 ..OK.7/7.test.&quot;peer.type.re
53920 73 6f 6c 75 74 69 6f 6e 3a 20 2a 63 6f 6e 73 74 20 54 20 61 6e 64 20 3f 2a 54 26 71 75 6f 74 3b solution:.*const.T.and.?*T&quot;
53940 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c ...OK.All.tests.passed..</code><
53960 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 /pre>.......................<h1.
53980 69 64 3d 22 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f id="Zero-Bit-Types"><a.href="#to
539a0 63 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e 5a 65 72 6f 20 42 69 74 20 54 79 70 65 73 c-Zero-Bit-Types">Zero.Bit.Types
539c0 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 5a 65 72 6f 2d </a>.<a.class="hdr".href="#Zero-
539e0 42 69 74 2d 54 79 70 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 Bit-Types">..</a></h1>........<p
53a00 3e 46 6f 72 20 73 6f 6d 65 20 74 79 70 65 73 2c 20 3c 61 20 68 72 65 66 3d 22 23 73 69 7a 65 4f >For.some.types,.<a.href="#sizeO
53a20 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 20 69 73 20 30 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c f">@sizeOf</a>.is.0:</p>.......<
53a40 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 76 6f 69 64 ul>...........<li><a.href="#void
53a60 22 3e 76 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 ">void</a></li>...........<li>Th
53a80 65 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f e.<a.href="#Integers">Integers</
53aa0 61 3e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 a>.<code.class="zig"><span.class
53ac0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 ="tok-type">u0</span></code>.and
53ae0 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .<code.class="zig"><span.class="
53b00 74 6f 6b 2d 74 79 70 65 22 3e 69 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 3c 2f 6c 69 3e tok-type">i0</span></code>.</li>
53b20 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 ...........<li><a.href="#Arrays"
53b40 3e 41 72 72 61 79 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 >Arrays</a>.and.<a.href="#Vector
53b60 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 77 69 74 68 20 6c 65 6e 20 30 2c 20 6f 72 20 77 69 s">Vectors</a>.with.len.0,.or.wi
53b80 74 68 20 61 6e 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 20 74 68 61 74 20 69 73 20 61 20 7a 65 72 th.an.element.type.that.is.a.zer
53ba0 6f 20 62 69 74 20 74 79 70 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 o.bit.type.</li>...........<li>A
53bc0 6e 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 20 77 69 74 68 20 n.<a.href="#enum">enum</a>.with.
53be0 6f 6e 6c 79 20 31 20 74 61 67 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 only.1.tag.</li>...........<li>A
53c00 20 3c 61 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 20 77 69 .<a.href="#struct">struct</a>.wi
53c20 74 68 20 61 6c 6c 20 66 69 65 6c 64 73 20 62 65 69 6e 67 20 7a 65 72 6f 20 62 69 74 20 74 79 70 th.all.fields.being.zero.bit.typ
53c40 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 20 3c 61 20 68 72 65 66 es.</li>...........<li>A.<a.href
53c60 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 20 77 69 74 68 20 6f 6e 6c 79 20 31 20 ="#union">union</a>.with.only.1.
53c80 66 69 65 6c 64 20 77 68 69 63 68 20 69 73 20 61 20 7a 65 72 6f 20 62 69 74 20 74 79 70 65 2e 3c field.which.is.a.zero.bit.type.<
53ca0 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 /li>...........<li><a.href="#Poi
53cc0 6e 74 65 72 73 2d 74 6f 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e 50 6f 69 6e 74 65 72 nters-to-Zero-Bit-Types">Pointer
53ce0 73 20 74 6f 20 5a 65 72 6f 20 42 69 74 20 54 79 70 65 73 3c 2f 61 3e 20 61 72 65 20 74 68 65 6d s.to.Zero.Bit.Types</a>.are.them
53d00 73 65 6c 76 65 73 20 7a 65 72 6f 20 62 69 74 20 74 79 70 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 selves.zero.bit.types.</li>.....
53d20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 74 79 ..</ul>.......<p>.......These.ty
53d40 70 65 73 20 63 61 6e 20 6f 6e 6c 79 20 65 76 65 72 20 68 61 76 65 20 6f 6e 65 20 70 6f 73 73 69 pes.can.only.ever.have.one.possi
53d60 62 6c 65 20 76 61 6c 75 65 2c 20 61 6e 64 20 74 68 75 73 0a 20 20 20 20 20 20 72 65 71 75 69 72 ble.value,.and.thus.......requir
53d80 65 20 30 20 62 69 74 73 20 74 6f 20 72 65 70 72 65 73 65 6e 74 2e 20 43 6f 64 65 20 74 68 61 74 e.0.bits.to.represent..Code.that
53da0 20 6d 61 6b 65 73 20 75 73 65 20 6f 66 20 74 68 65 73 65 20 74 79 70 65 73 20 69 73 0a 20 20 20 .makes.use.of.these.types.is....
53dc0 20 20 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 66 69 6e 61 6c 20 67 65 6e ...not.included.in.the.final.gen
53de0 65 72 61 74 65 64 20 63 6f 64 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 erated.code:.......</p>.......<p
53e00 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
53e20 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ="tok-kw">export</span>.<span.cl
53e40 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
53e60 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 65 6e 74 72 79 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e ss="tok-fn">entry</span>().<span
53e80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a .class="tok-type">void</span>.{.
53ea0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 ....<span.class="tok-kw">var</sp
53ec0 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f an>.x:.<span.class="tok-type">vo
53ee0 69 64 3c 2f 73 70 61 6e 3e 20 3d 20 7b 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d id</span>.=.{};.....<span.class=
53f00 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 "tok-kw">var</span>.y:.<span.cla
53f20 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 3d 20 7b 7d 3b 0a ss="tok-type">void</span>.=.{};.
53f40 20 20 20 20 78 20 3d 20 79 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 ....x.=.y;.}</code></pre>.......
53f60 3c 70 3e 57 68 65 6e 20 74 68 69 73 20 74 75 72 6e 73 20 69 6e 74 6f 20 6d 61 63 68 69 6e 65 20 <p>When.this.turns.into.machine.
53f80 63 6f 64 65 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 63 6f 64 65 20 67 65 6e 65 72 61 74 65 64 code,.there.is.no.code.generated
53fa0 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 62 6f 64 79 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 .in.the.......body.of.<code.clas
53fc0 73 3d 22 7a 69 67 22 3e 65 6e 74 72 79 3c 2f 63 6f 64 65 3e 2c 20 65 76 65 6e 20 69 6e 20 3c 61 s="zig">entry</code>,.even.in.<a
53fe0 20 68 72 65 66 3d 22 23 44 65 62 75 67 22 3e 44 65 62 75 67 3c 2f 61 3e 20 6d 6f 64 65 2e 20 46 .href="#Debug">Debug</a>.mode..F
54000 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6f 6e 20 78 38 36 5f 36 34 3a 3c 2f 70 3e 0a 20 20 20 20 20 or.example,.on.x86_64:</p>......
54020 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 30 20 26 6c 74 .<pre><code>0000000000000010.&lt
54040 3b 65 6e 74 72 79 26 67 74 3b 3a 0a 20 20 31 30 3a 09 35 35 20 20 20 20 20 20 20 20 20 20 20 20 ;entry&gt;:...10:.55............
54060 20 20 20 20 20 20 20 09 70 75 73 68 20 20 20 25 72 62 70 0a 20 20 31 31 3a 09 34 38 20 38 39 20 ........push...%rbp...11:.48.89.
54080 65 35 20 20 20 20 20 20 20 20 20 20 20 20 20 09 6d 6f 76 20 20 20 20 25 72 73 70 2c 25 72 62 70 e5..............mov....%rsp,%rbp
540a0 0a 20 20 31 34 3a 09 35 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 70 6f 70 ...14:.5d....................pop
540c0 20 20 20 20 25 72 62 70 0a 20 20 31 35 3a 09 63 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....%rbp...15:.c3...............
540e0 20 20 20 20 09 72 65 74 71 20 20 20 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 .....retq...</code></pre>.......
54100 3c 70 3e 54 68 65 73 65 20 61 73 73 65 6d 62 6c 79 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 64 <p>These.assembly.instructions.d
54120 6f 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 63 6f 64 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 o.not.have.any.code.associated.w
54140 69 74 68 20 74 68 65 20 76 6f 69 64 20 76 61 6c 75 65 73 20 2d 0a 20 20 20 20 20 20 74 68 65 79 ith.the.void.values.-.......they
54160 20 6f 6e 6c 79 20 70 65 72 66 6f 72 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 .only.perform.the.function.call.
54180 70 72 6f 6c 6f 67 75 65 20 61 6e 64 20 65 70 69 6c 6f 67 2e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 prologue.and.epilog.</p>........
541a0 3c 68 32 20 69 64 3d 22 76 6f 69 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 76 6f 69 64 <h2.id="void"><a.href="#toc-void
541c0 22 3e 76 6f 69 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 ">void</a>.<a.class="hdr".href="
541e0 23 76 6f 69 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 #void">..</a></h2>........<p>...
54200 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 ....<code.class="zig"><span.clas
54220 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 s="tok-type">void</span></code>.
54240 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 66 6f 72 20 69 6e 73 74 61 6e 74 69 61 74 69 6e 67 20 can.be.useful.for.instantiating.
54260 67 65 6e 65 72 69 63 20 74 79 70 65 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 67 69 76 65 generic.types..For.example,.give
54280 6e 20 61 0a 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e n.a...........<code.class="zig">
542a0 4d 61 70 28 4b 65 79 2c 20 56 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 2c 20 6f 6e 65 20 63 61 6e 20 Map(Key,.Value)</code>,.one.can.
542c0 70 61 73 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 pass.<code.class="zig"><span.cla
542e0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ss="tok-type">void</span></code>
54300 20 66 6f 72 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 56 61 6c 75 65 .for.the.<code.class="zig">Value
54320 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 </code>.......................ty
54340 70 65 20 74 6f 20 6d 61 6b 65 20 69 74 20 69 6e 74 6f 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 pe.to.make.it.into.a.<code.class
54360 3d 22 7a 69 67 22 3e 53 65 74 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 ="zig">Set</code>:.......</p>...
54380 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e ....<p.class="file">test.zig</p>
543a0 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
543c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c ss="tok-kw">const</span>.std.=.<
543e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
54400 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
54420 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 uot;std&quot;</span>);.<span.cla
54440 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 ss="tok-kw">const</span>.assert.
54460 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 =.std.debug.assert;..<span.class
54480 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ="tok-kw">test</span>.<span.clas
544a0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 75 72 6e 20 48 61 73 68 4d 61 70 20 69 s="tok-str">&quot;turn.HashMap.i
544c0 6e 74 6f 20 61 20 73 65 74 20 77 69 74 68 20 76 6f 69 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e nto.a.set.with.void&quot;</span>
544e0 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c .{.....<span.class="tok-kw">var<
54500 2f 73 70 61 6e 3e 20 6d 61 70 20 3d 20 73 74 64 2e 48 61 73 68 4d 61 70 28 3c 73 70 61 6e 20 63 /span>.map.=.std.HashMap(<span.c
54520 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 lass="tok-type">i32</span>,.<spa
54540 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 20 n.class="tok-type">void</span>,.
54560 68 61 73 68 5f 69 33 32 2c 20 65 71 6c 5f 69 33 32 29 2e 69 6e 69 74 28 73 74 64 2e 64 65 62 75 hash_i32,.eql_i32).init(std.debu
54580 67 2e 67 6c 6f 62 61 6c 5f 61 6c 6c 6f 63 61 74 6f 72 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 g.global_allocator);.....<span.c
545a0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 6d 61 70 2e 64 lass="tok-kw">defer</span>.map.d
545c0 65 69 6e 69 74 28 29 3b 0a 0a 20 20 20 20 5f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 einit();......_.=.<span.class="t
545e0 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 6d 61 70 2e 70 75 74 28 3c 73 70 61 6e 20 ok-kw">try</span>.map.put(<span.
54600 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 7b 7d 29 class="tok-number">1</span>,.{})
54620 3b 0a 20 20 20 20 5f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 ;....._.=.<span.class="tok-kw">t
54640 72 79 3c 2f 73 70 61 6e 3e 20 6d 61 70 2e 70 75 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ry</span>.map.put(<span.class="t
54660 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 20 7b 7d 29 3b 0a 0a 20 20 20 20 61 ok-number">2</span>,.{});......a
54680 73 73 65 72 74 28 6d 61 70 2e 63 6f 6e 74 61 69 6e 73 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ssert(map.contains(<span.class="
546a0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 29 3b 0a 20 20 20 20 61 73 73 65 tok-number">2</span>));.....asse
546c0 72 74 28 21 6d 61 70 2e 63 6f 6e 74 61 69 6e 73 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f rt(!map.contains(<span.class="to
546e0 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 29 3b 0a 0a 20 20 20 20 5f 20 3d 20 6d k-number">3</span>));......_.=.m
54700 61 70 2e 72 65 6d 6f 76 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 ap.remove(<span.class="tok-numbe
54720 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 21 6d 61 70 2e 63 6f r">2</span>);.....assert(!map.co
54740 6e 74 61 69 6e 73 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e ntains(<span.class="tok-number">
54760 32 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 2</span>));.}..<span.class="tok-
54780 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 kw">fn</span>.<span.class="tok-f
547a0 6e 22 3e 68 61 73 68 5f 69 33 32 3c 2f 73 70 61 6e 3e 28 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 n">hash_i32</span>(x:.<span.clas
547c0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 s="tok-type">i32</span>).<span.c
547e0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 lass="tok-type">u32</span>.{....
54800 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 .<span.class="tok-kw">return</sp
54820 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 an>.<span.class="tok-builtin">@b
54840 69 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 itCast</span>(<span.class="tok-t
54860 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 78 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c ype">u32</span>,.x);.}..<span.cl
54880 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
548a0 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 65 71 6c 5f 69 33 32 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 ss="tok-fn">eql_i32</span>(a:.<s
548c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c pan.class="tok-type">i32</span>,
548e0 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f .b:.<span.class="tok-type">i32</
54900 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f span>).<span.class="tok-type">bo
54920 6f 6c 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ol</span>.{.....<span.class="tok
54940 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 3d 3d 20 62 3b 0a 7d 3c 2f 63 6f -kw">return</span>.a.==.b;.}</co
54960 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
54980 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 ">$.zig.test.test.zig.1/1.test.&
549a0 71 75 6f 74 3b 74 75 72 6e 20 48 61 73 68 4d 61 70 20 69 6e 74 6f 20 61 20 73 65 74 20 77 69 74 quot;turn.HashMap.into.a.set.wit
549c0 68 20 76 6f 69 64 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 h.void&quot;...OK.All.tests.pass
549e0 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 65 ed..</code></pre>........<p>Note
54a00 20 74 68 61 74 20 74 68 69 73 20 69 73 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 75 73 69 .that.this.is.different.from.usi
54a20 6e 67 20 61 20 64 75 6d 6d 79 20 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 68 61 73 68 20 6d 61 ng.a.dummy.value.for.the.hash.ma
54a40 70 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 42 79 20 75 73 69 6e 67 20 3c 63 6f 64 65 20 63 6c p.value........By.using.<code.cl
54a60 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ass="zig"><span.class="tok-type"
54a80 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 73 20 74 68 65 20 74 79 70 65 20 >void</span></code>.as.the.type.
54aa0 6f 66 20 74 68 65 20 76 61 6c 75 65 2c 20 74 68 65 20 68 61 73 68 20 6d 61 70 20 65 6e 74 72 79 of.the.value,.the.hash.map.entry
54ac0 20 74 79 70 65 20 68 61 73 20 6e 6f 20 76 61 6c 75 65 20 66 69 65 6c 64 2c 20 61 6e 64 0a 20 20 .type.has.no.value.field,.and...
54ae0 20 20 20 20 74 68 75 73 20 74 68 65 20 68 61 73 68 20 6d 61 70 20 74 61 6b 65 73 20 75 70 20 6c ....thus.the.hash.map.takes.up.l
54b00 65 73 73 20 73 70 61 63 65 2e 20 46 75 72 74 68 65 72 2c 20 61 6c 6c 20 74 68 65 20 63 6f 64 65 ess.space..Further,.all.the.code
54b20 20 74 68 61 74 20 64 65 61 6c 73 20 77 69 74 68 20 73 74 6f 72 69 6e 67 20 61 6e 64 20 6c 6f 61 .that.deals.with.storing.and.loa
54b40 64 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 76 61 6c 75 65 20 69 73 20 64 65 6c 65 74 65 64 2c ding.the.......value.is.deleted,
54b60 20 61 73 20 73 65 65 6e 20 61 62 6f 76 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 .as.seen.above........</p>......
54b80 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .<p>.......<code.class="zig"><sp
54ba0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c an.class="tok-type">void</span><
54bc0 2f 63 6f 64 65 3e 20 69 73 20 64 69 73 74 69 6e 63 74 20 66 72 6f 6d 20 3c 63 6f 64 65 20 63 6c /code>.is.distinct.from.<code.cl
54be0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ass="zig"><span.class="tok-type"
54c00 3e 63 5f 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 77 68 69 63 68 20 69 73 20 >c_void</span></code>,.which.is.
54c20 64 65 66 69 6e 65 64 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 defined.like.this:..............
54c40 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .<code.class="zig"><span.class="
54c60 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 tok-kw">pub</span>.<span.class="
54c80 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">const</span>.<span.class
54ca0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 ="tok-type">c_void</span>.=.<spa
54cc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 4f 70 61 71 75 65 54 79 70 n.class="tok-builtin">@OpaqueTyp
54ce0 65 3c 2f 73 70 61 6e 3e 28 29 3b 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 e</span>();</code>..............
54d00 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ......<code.class="zig"><span.cl
54d20 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ass="tok-type">void</span></code
54d40 3e 20 68 61 73 20 61 20 6b 6e 6f 77 6e 20 73 69 7a 65 20 6f 66 20 30 20 62 79 74 65 73 2c 20 61 >.has.a.known.size.of.0.bytes,.a
54d60 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 nd.<code.class="zig"><span.class
54d80 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ="tok-type">c_void</span></code>
54da0 20 68 61 73 20 61 6e 20 75 6e 6b 6e 6f 77 6e 2c 20 62 75 74 20 6e 6f 6e 2d 7a 65 72 6f 2c 20 73 .has.an.unknown,.but.non-zero,.s
54dc0 69 7a 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 ize........</p>.......<p>.......
54de0 45 78 70 72 65 73 73 69 6f 6e 73 20 6f 66 20 74 79 70 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d Expressions.of.type.<code.class=
54e00 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 "zig"><span.class="tok-type">voi
54e20 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 72 65 20 74 68 65 20 6f 6e 6c 79 20 6f 6e 65 d</span></code>.are.the.only.one
54e40 73 20 77 68 6f 73 65 20 76 61 6c 75 65 20 63 61 6e 20 62 65 20 69 67 6e 6f 72 65 64 2e 20 46 6f s.whose.value.can.be.ignored..Fo
54e60 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 r.example:.......</p>.......<p.c
54e80 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f lass="file">test.zig</p><pre><co
54ea0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
54ec0 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">test</span>.<span.class="tok
54ee0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 67 6e 6f 72 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 20 -str">&quot;ignoring.expression.
54f00 76 61 6c 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6f 6f 28 29 3b 0a value&quot;</span>.{.....foo();.
54f20 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e }..<span.class="tok-kw">fn</span
54f40 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e >.<span.class="tok-fn">foo</span
54f60 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f >().<span.class="tok-type">i32</
54f80 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
54fa0 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >return</span>.<span.class="tok-
54fc0 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 number">1234</span>;.}</code></p
54fe0 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
55000 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f g.test.test.zig.<span.class="t0_
55020 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 1">/home/andy/dev/zig/docgen_tmp
55040 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 /test.zig:2:8:.</span><span.clas
55060 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 s="t31_1">error:</span><span.cla
55080 73 73 3d 22 74 30 5f 31 22 3e 20 65 78 70 72 65 73 73 69 6f 6e 20 76 61 6c 75 65 20 69 73 20 69 ss="t0_1">.expression.value.is.i
550a0 67 6e 6f 72 65 64 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 6f 6f 28 29 3b 0a 20 20 20 20 20 20 20 gnored</span>.....foo();........
550c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 <span.class="t32_1">^</span>.</c
550e0 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 48 6f 77 65 76 65 72 2c 20 69 66 ode></pre>........<p>However,.if
55100 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 68 61 73 20 74 79 70 65 20 3c 63 6f 64 65 20 63 .the.expression.has.type.<code.c
55120 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
55140 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 72 65 20 77 69 6c 6c ">void</span></code>,.there.will
55160 20 62 65 20 6e 6f 20 65 72 72 6f 72 2e 20 46 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 20 76 61 .be.no.error..Function.return.va
55180 6c 75 65 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 65 78 70 6c 69 63 69 74 6c 79 20 69 67 6e 6f lues.can.also.be.explicitly.igno
551a0 72 65 64 20 62 79 20 61 73 73 69 67 6e 69 6e 67 20 74 68 65 6d 20 74 6f 20 3c 63 6f 64 65 20 63 red.by.assigning.them.to.<code.c
551c0 6c 61 73 73 3d 22 7a 69 67 22 3e 5f 3c 2f 63 6f 64 65 3e 2e 20 3c 2f 70 3e 0a 20 20 20 20 20 20 lass="zig">_</code>..</p>.......
551e0 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 <p.class="file">test.zig</p><pre
55200 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
55220 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">test</span>.<span.class=
55240 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 6f 69 64 20 69 73 20 69 67 6e 6f 72 65 64 26 "tok-str">&quot;void.is.ignored&
55260 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 73 56 6f 69 64 28 29 quot;</span>.{.....returnsVoid()
55280 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f ;.}..<span.class="tok-kw">test</
552a0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>.<span.class="tok-str">&quo
552c0 74 3b 65 78 70 6c 69 63 69 74 6c 79 20 69 67 6e 6f 72 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e t;explicitly.ignoring.expression
552e0 20 76 61 6c 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 5f 20 3d 20 66 6f .value&quot;</span>.{....._.=.fo
55300 6f 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c o();.}..<span.class="tok-kw">fn<
55320 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 72 65 74 75 /span>.<span.class="tok-fn">retu
55340 72 6e 73 56 6f 69 64 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f rnsVoid</span>().<span.class="to
55360 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 0a 0a 3c 73 70 61 6e 20 63 6c k-type">void</span>.{}..<span.cl
55380 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
553a0 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 ss="tok-fn">foo</span>().<span.c
553c0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 lass="tok-type">i32</span>.{....
553e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 .<span.class="tok-kw">return</sp
55400 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 an>.<span.class="tok-number">123
55420 34 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 4</span>;.}</code></pre><pre><co
55440 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 de.class="shell">$.zig.test.test
55460 2e 7a 69 67 0a 31 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 76 6f 69 64 20 69 73 20 69 67 6e 6f .zig.1/2.test.&quot;void.is.igno
55480 72 65 64 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 32 2f 32 20 74 65 73 74 20 26 71 75 6f 74 3b 65 78 red&quot;...OK.2/2.test.&quot;ex
554a0 70 6c 69 63 69 74 6c 79 20 69 67 6e 6f 72 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 20 76 61 6c plicitly.ignoring.expression.val
554c0 75 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a ue&quot;...OK.All.tests.passed..
554e0 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 </code></pre>................<h2
55500 20 69 64 3d 22 50 6f 69 6e 74 65 72 73 2d 74 6f 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 .id="Pointers-to-Zero-Bit-Types"
55520 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 50 6f 69 6e 74 65 72 73 2d 74 6f 2d 5a 65 72 6f 2d ><a.href="#toc-Pointers-to-Zero-
55540 42 69 74 2d 54 79 70 65 73 22 3e 50 6f 69 6e 74 65 72 73 20 74 6f 20 5a 65 72 6f 20 42 69 74 20 Bit-Types">Pointers.to.Zero.Bit.
55560 54 79 70 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 Types</a>.<a.class="hdr".href="#
55580 50 6f 69 6e 74 65 72 73 2d 74 6f 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e c2 a7 3c 2f Pointers-to-Zero-Bit-Types">..</
555a0 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 50 6f 69 6e 74 65 72 73 20 74 6f 20 7a 65 a></h2>........<p>Pointers.to.ze
555c0 72 6f 20 62 69 74 20 74 79 70 65 73 20 61 6c 73 6f 20 68 61 76 65 20 7a 65 72 6f 20 62 69 74 73 ro.bit.types.also.have.zero.bits
555e0 2e 20 54 68 65 79 20 61 6c 77 61 79 73 20 63 6f 6d 70 61 72 65 20 65 71 75 61 6c 20 74 6f 20 65 ..They.always.compare.equal.to.e
55600 61 63 68 20 6f 74 68 65 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 ach.other:</p>.......<p.class="f
55620 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 ile">test.zig</p><pre><code.clas
55640 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e s="zig"><span.class="tok-kw">con
55660 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b st</span>.std.=.<span.class="tok
55680 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 -builtin">@import</span>(<span.c
556a0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f lass="tok-str">&quot;std&quot;</
556c0 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e span>);.<span.class="tok-kw">con
556e0 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 st</span>.assert.=.std.debug.ass
55700 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c ert;..<span.class="tok-kw">test<
55720 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>.<span.class="tok-str">&qu
55740 6f 74 3b 70 6f 69 6e 74 65 72 20 74 6f 20 65 6d 70 74 79 20 73 74 72 75 63 74 26 71 75 6f 74 3b ot;pointer.to.empty.struct&quot;
55760 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
55780 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 6d 70 74 79 20 3d 20 3c 73 70 61 6e 20 63 6c w">const</span>.Empty.=.<span.cl
557a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 7d 3b 0a 20 ass="tok-kw">struct</span>.{};..
557c0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
557e0 6e 3e 20 61 20 3d 20 45 6d 70 74 79 7b 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d n>.a.=.Empty{};.....<span.class=
55800 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 20 3d 20 45 6d 70 74 79 7b 7d 3b "tok-kw">var</span>.b.=.Empty{};
55820 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 .....<span.class="tok-kw">var</s
55840 70 61 6e 3e 20 70 74 72 5f 61 20 3d 20 26 61 6d 70 3b 61 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 pan>.ptr_a.=.&amp;a;.....<span.c
55860 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 74 72 5f 62 20 3d lass="tok-kw">var</span>.ptr_b.=
55880 20 26 61 6d 70 3b 62 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .&amp;b;.....<span.class="tok-kw
558a0 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 28 70 74 72 5f 61 20 3d ">comptime</span>.assert(ptr_a.=
558c0 3d 20 70 74 72 5f 62 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f =.ptr_b);.}</code></pre><pre><co
558e0 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 de.class="shell">$.zig.test.test
55900 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 74 6f 20 65 .zig.1/1.test.&quot;pointer.to.e
55920 6d 70 74 79 20 73 74 72 75 63 74 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 mpty.struct&quot;...OK.All.tests
55940 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 .passed..</code></pre>........<p
55960 3e 54 68 65 20 74 79 70 65 20 62 65 69 6e 67 20 70 6f 69 6e 74 65 64 20 74 6f 20 63 61 6e 20 6f >The.type.being.pointed.to.can.o
55980 6e 6c 79 20 65 76 65 72 20 62 65 20 6f 6e 65 20 76 61 6c 75 65 3b 20 74 68 65 72 65 66 6f 72 65 nly.ever.be.one.value;.therefore
559a0 20 6c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 65 73 20 61 72 65 0a 20 20 20 20 20 20 6e 65 76 65 .loads.and.stores.are.......neve
559c0 72 20 67 65 6e 65 72 61 74 65 64 2e 20 3c 61 20 68 72 65 66 3d 22 23 70 74 72 54 6f 49 6e 74 22 r.generated..<a.href="#ptrToInt"
559e0 3e 70 74 72 54 6f 49 6e 74 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 >ptrToInt</a>.and.<a.href="#intT
55a00 6f 50 74 72 22 3e 69 6e 74 54 6f 50 74 72 3c 2f 61 3e 20 61 72 65 20 6e 6f 74 20 61 6c 6c 6f 77 oPtr">intToPtr</a>.are.not.allow
55a20 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ed:</p>.......<p.class="file">te
55a40 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 st.zig</p><pre><code.class="zig"
55a60 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 ><span.class="tok-kw">const</spa
55a80 6e 3e 20 45 6d 70 74 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e n>.Empty.=.<span.class="tok-kw">
55aa0 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 struct</span>.{};..<span.class="
55ac0 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">test</span>.<span.class=
55ae0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 70 74 72 54 6f 49 6e 74 20 66 6f 72 20 70 6f "tok-str">&quot;@ptrToInt.for.po
55b00 69 6e 74 65 72 20 74 6f 20 7a 65 72 6f 20 62 69 74 20 74 79 70 65 26 71 75 6f 74 3b 3c 2f 73 70 inter.to.zero.bit.type&quot;</sp
55b20 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 an>.{.....<span.class="tok-kw">v
55b40 61 72 3c 2f 73 70 61 6e 3e 20 61 20 3d 20 45 6d 70 74 79 7b 7d 3b 0a 20 20 20 20 5f 20 3d 20 3c ar</span>.a.=.Empty{};....._.=.<
55b60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 54 6f 49 span.class="tok-builtin">@ptrToI
55b80 6e 74 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 61 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 nt</span>(&amp;a);.}..<span.clas
55ba0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">test</span>.<span.cla
55bc0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 69 6e 74 54 6f 50 74 72 20 66 6f 72 ss="tok-str">&quot;@intToPtr.for
55be0 20 70 6f 69 6e 74 65 72 20 74 6f 20 7a 65 72 6f 20 62 69 74 20 74 79 70 65 26 71 75 6f 74 3b 3c .pointer.to.zero.bit.type&quot;<
55c00 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 5f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>.{....._.=.<span.class="to
55c20 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 73 70 61 6e 3e 28 2a 45 6d 70 k-builtin">@intToPtr</span>(*Emp
55c40 74 79 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 ty,.<span.class="tok-number">0x1
55c60 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f </span>);.}</code></pre><pre><co
55c80 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 de.class="shell">$.zig.test.test
55ca0 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e .zig.<span.class="t0_1">/home/an
55cc0 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 dy/dev/zig/docgen_tmp/test.zig:5
55ce0 3a 32 30 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e :20:.</span><span.class="t31_1">
55d00 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e error:</span><span.class="t0_1">
55d20 20 70 6f 69 6e 74 65 72 20 74 6f 20 73 69 7a 65 20 30 20 74 79 70 65 20 68 61 73 20 6e 6f 20 61 .pointer.to.size.0.type.has.no.a
55d40 64 64 72 65 73 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 3d 20 40 70 74 72 54 6f 49 6e 74 28 ddress</span>....._.=.@ptrToInt(
55d60 26 61 6d 70 3b 61 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 &amp;a);....................<spa
55d80 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 n.class="t32_1">^</span>.<span.c
55da0 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 lass="t0_1">/home/andy/dev/zig/d
55dc0 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c ocgen_tmp/test.zig:5:9:.</span><
55de0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c span.class="t36_1">note:</span><
55e00 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 68 65 span.class="t0_1">.referenced.he
55e20 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 3d 20 40 70 74 72 54 6f 49 6e 74 28 26 61 6d 70 re</span>....._.=.@ptrToInt(&amp
55e40 3b 61 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 ;a);.........<span.class="t32_1"
55e60 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f >^</span>.<span.class="t0_1">/ho
55e80 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e me/andy/dev/zig/docgen_tmp/test.
55ea0 7a 69 67 3a 39 3a 31 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 zig:9:19:.</span><span.class="t3
55ec0 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 1_1">error:</span><span.class="t
55ee0 30 5f 31 22 3e 20 74 79 70 65 20 27 2a 45 6d 70 74 79 27 20 68 61 73 20 30 20 62 69 74 73 20 61 0_1">.type.'*Empty'.has.0.bits.a
55f00 6e 64 20 63 61 6e 6e 6f 74 20 73 74 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 73 70 61 nd.cannot.store.information</spa
55f20 6e 3e 0a 20 20 20 20 5f 20 3d 20 40 69 6e 74 54 6f 50 74 72 28 2a 45 6d 70 74 79 2c 20 30 78 31 n>....._.=.@intToPtr(*Empty,.0x1
55f40 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 );...................<span.class
55f60 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ="t32_1">^</span>.<span.class="t
55f80 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 0_1">/home/andy/dev/zig/docgen_t
55fa0 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 39 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c mp/test.zig:9:9:.</span><span.cl
55fc0 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c ass="t36_1">note:</span><span.cl
55fe0 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 ass="t0_1">.referenced.here</spa
56000 6e 3e 0a 20 20 20 20 5f 20 3d 20 40 69 6e 74 54 6f 50 74 72 28 2a 45 6d 70 74 79 2c 20 30 78 31 n>....._.=.@intToPtr(*Empty,.0x1
56020 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e );.........<span.class="t32_1">^
56040 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 </span>.</code></pre>...........
56060 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 52 65 73 75 6c 74 2d 4c 6f 63 61 74 ............<h1.id="Result-Locat
56080 69 6f 6e 2d 53 65 6d 61 6e 74 69 63 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 52 65 73 ion-Semantics"><a.href="#toc-Res
560a0 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 2d 53 65 6d 61 6e 74 69 63 73 22 3e 52 65 73 75 6c 74 20 4c ult-Location-Semantics">Result.L
560c0 6f 63 61 74 69 6f 6e 20 53 65 6d 61 6e 74 69 63 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 ocation.Semantics</a>.<a.class="
560e0 68 64 72 22 20 68 72 65 66 3d 22 23 52 65 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 2d 53 65 6d 61 hdr".href="#Result-Location-Sema
56100 6e 74 69 63 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 ntics">..</a></h1>........<p>...
56120 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ....<a.href="https://github.com/
56140 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 32 38 30 39 22 3e 54 4f 44 4f 20 61 64 ziglang/zig/issues/2809">TODO.ad
56160 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 3c 2f 61 3e 0a 20 20 20 d.documentation.for.this</a>....
56180 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 75 73 ...</p>...............<h1.id="us
561a0 69 6e 67 6e 61 6d 65 73 70 61 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 75 73 69 6e ingnamespace"><a.href="#toc-usin
561c0 67 6e 61 6d 65 73 70 61 63 65 22 3e 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 3c 2f 61 3e 20 3c gnamespace">usingnamespace</a>.<
561e0 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 75 73 69 6e 67 6e 61 6d 65 73 70 a.class="hdr".href="#usingnamesp
56200 61 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 ace">..</a></h1>........<p>.....
56220 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..<code.class="zig"><span.class=
56240 22 74 6f 6b 2d 6b 77 22 3e 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 3c 2f 73 70 61 6e 3e 3c 2f "tok-kw">usingnamespace</span></
56260 63 6f 64 65 3e 20 69 73 20 61 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e code>.is.a.top.level.declaration
56280 20 74 68 61 74 20 69 6d 70 6f 72 74 73 20 61 6c 6c 20 74 68 65 20 70 75 62 6c 69 63 20 64 65 63 .that.imports.all.the.public.dec
562a0 6c 61 72 61 74 69 6f 6e 73 20 6f 66 0a 20 20 20 20 20 20 74 68 65 20 6f 70 65 72 61 6e 64 2c 20 larations.of.......the.operand,.
562c0 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 61 20 3c 61 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 which.must.be.a.<a.href="#struct
562e0 22 3e 73 74 72 75 63 74 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 ">struct</a>,.<a.href="#union">u
56300 6e 69 6f 6e 3c 2f 61 3e 2c 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 nion</a>,.or.<a.href="#enum">enu
56320 6d 3c 2f 61 3e 2c 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 3a 0a 20 m</a>,.into.the.current.scope:..
56340 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e .....</p>.......<p.class="file">
56360 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 usingnamespace.zig</p><pre><code
56380 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
563a0 22 3e 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ">usingnamespace</span>.<span.cl
563c0 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e ass="tok-builtin">@import</span>
563e0 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 (<span.class="tok-str">&quot;std
56400 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f &quot;</span>);..<span.class="to
56420 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 k-kw">test</span>.<span.class="t
56440 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 73 69 6e 67 20 73 74 64 20 6e 61 6d 65 73 70 61 63 ok-str">&quot;using.std.namespac
56460 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 64 65 62 75 67 2e 61 73 73 65 72 e&quot;</span>.{.....debug.asser
56480 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 t(<span.class="tok-null">true</s
564a0 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 pan>);.}</code></pre><pre><code.
564c0 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 75 73 69 6e 67 6e 61 class="shell">$.zig.test.usingna
564e0 6d 65 73 70 61 63 65 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 75 73 69 6e 67 mespace.zig.1/1.test.&quot;using
56500 20 73 74 64 20 6e 61 6d 65 73 70 61 63 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 .std.namespace&quot;...OK.All.te
56520 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 sts.passed..</code></pre>.......
56540 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 20 .<p>.......Instead.of.the.above.
56560 70 61 74 74 65 72 6e 2c 20 69 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 pattern,.it.is.generally.recomme
56580 6e 64 65 64 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 61 6c 69 61 73 20 69 6e 64 69 76 69 64 nded.to.explicitly.alias.individ
565a0 75 61 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c ual.declarations........However,
565c0 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .<code.class="zig"><span.class="
565e0 74 6f 6b 2d 6b 77 22 3e 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 3c 2f 73 70 61 6e 3e 3c 2f 63 tok-kw">usingnamespace</span></c
56600 6f 64 65 3e 20 68 61 73 20 61 6e 20 69 6d 70 6f 72 74 61 6e 74 20 75 73 65 20 63 61 73 65 20 77 ode>.has.an.important.use.case.w
56620 68 65 6e 20 6f 72 67 61 6e 69 7a 69 6e 67 20 74 68 65 20 70 75 62 6c 69 63 0a 20 20 20 20 20 20 hen.organizing.the.public.......
56640 41 50 49 20 6f 66 20 61 20 66 69 6c 65 20 6f 72 20 70 61 63 6b 61 67 65 2e 20 46 6f 72 20 65 78 API.of.a.file.or.package..For.ex
56660 61 6d 70 6c 65 2c 20 6f 6e 65 20 6d 69 67 68 74 20 68 61 76 65 20 3c 63 6f 64 65 3e 63 2e 7a 69 ample,.one.might.have.<code>c.zi
56680 67 3c 2f 63 6f 64 65 3e 20 77 69 74 68 20 61 6c 6c 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 3c g</code>.with.all.of.the.......<
566a0 61 20 68 72 65 66 3d 22 23 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 a.href="#Import-from-C-Header-Fi
566c0 6c 65 22 3e 43 20 69 6d 70 6f 72 74 73 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 le">C.imports</a>:.......</p>...
566e0 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
56700 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e .class="tok-kw">pub</span>.<span
56720 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 3c 2f .class="tok-kw">usingnamespace</
56740 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e span>.<span.class="tok-builtin">
56760 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 @cImport</span>({.....<span.clas
56780 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 73 70 61 6e 3e s="tok-builtin">@cInclude</span>
567a0 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 70 6f (<span.class="tok-str">&quot;epo
567c0 78 79 2f 67 6c 2e 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e xy/gl.h&quot;</span>);.....<span
567e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f .class="tok-builtin">@cInclude</
56800 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>(<span.class="tok-str">&quo
56820 74 3b 47 4c 46 57 2f 67 6c 66 77 33 2e 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 t;GLFW/glfw3.h&quot;</span>);...
56840 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 44 65 ..<span.class="tok-builtin">@cDe
56860 66 69 6e 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 fine</span>(<span.class="tok-str
56880 22 3e 26 71 75 6f 74 3b 53 54 42 49 5f 4f 4e 4c 59 5f 50 4e 47 26 71 75 6f 74 3b 3c 2f 73 70 61 ">&quot;STBI_ONLY_PNG&quot;</spa
568a0 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b n>,.<span.class="tok-str">&quot;
568c0 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d &quot;</span>);.....<span.class=
568e0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 44 65 66 69 6e 65 3c 2f 73 70 61 6e 3e 28 3c 73 "tok-builtin">@cDefine</span>(<s
56900 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 53 54 42 49 5f 4e pan.class="tok-str">&quot;STBI_N
56920 4f 5f 53 54 44 49 4f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 O_STDIO&quot;</span>,.<span.clas
56940 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 s="tok-str">&quot;&quot;</span>)
56960 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e ;.....<span.class="tok-builtin">
56980 40 63 49 6e 63 6c 75 64 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f @cInclude</span>(<span.class="to
569a0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 62 5f 69 6d 61 67 65 2e 68 26 71 75 6f 74 3b 3c 2f k-str">&quot;stb_image.h&quot;</
569c0 73 70 61 6e 3e 29 3b 0a 7d 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c span>);.});</code></pre>.......<
569e0 70 3e 0a 20 20 20 20 20 20 54 68 65 20 61 62 6f 76 65 20 65 78 61 6d 70 6c 65 20 64 65 6d 6f 6e p>.......The.above.example.demon
56a00 73 74 72 61 74 65 73 20 75 73 69 6e 67 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e strates.using.<code.class="zig">
56a20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 3c <span.class="tok-kw">pub</span><
56a40 2f 63 6f 64 65 3e 20 74 6f 20 71 75 61 6c 69 66 79 20 74 68 65 0a 20 20 20 20 20 20 3c 63 6f 64 /code>.to.qualify.the.......<cod
56a60 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
56a80 77 22 3e 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 w">usingnamespace</span></code>.
56aa0 61 64 64 69 74 69 6f 6e 61 6c 6c 79 20 6d 61 6b 65 73 20 74 68 65 20 69 6d 70 6f 72 74 65 64 20 additionally.makes.the.imported.
56ac0 64 65 63 6c 61 72 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 declarations.......<code.class="
56ae0 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 zig"><span.class="tok-kw">pub</s
56b00 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f pan></code>..This.can.be.used.to
56b20 20 66 6f 72 77 61 72 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 67 69 76 69 6e 67 20 70 72 .forward.declarations,.giving.pr
56b40 65 63 69 73 65 20 63 6f 6e 74 72 6f 6c 0a 20 20 20 20 20 20 6f 76 65 72 20 77 68 61 74 20 64 65 ecise.control.......over.what.de
56b60 63 6c 61 72 61 74 69 6f 6e 73 20 61 20 67 69 76 65 6e 20 66 69 6c 65 20 65 78 70 6f 73 65 73 2e clarations.a.given.file.exposes.
56b80 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 .......</p>...............<h1.id
56ba0 3d 22 63 6f 6d 70 74 69 6d 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 63 6f 6d 70 74 69 ="comptime"><a.href="#toc-compti
56bc0 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 me">comptime</a>.<a.class="hdr".
56be0 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 href="#comptime">..</a></h1>....
56c00 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 70 6c 61 63 65 73 20 69 6d 70 6f 72 74 61 ....<p>.......Zig.places.importa
56c20 6e 63 65 20 6f 6e 20 74 68 65 20 63 6f 6e 63 65 70 74 20 6f 66 20 77 68 65 74 68 65 72 20 61 6e nce.on.the.concept.of.whether.an
56c40 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d .expression.is.known.at.compile-
56c60 74 69 6d 65 2e 0a 20 20 20 20 20 20 54 68 65 72 65 20 61 72 65 20 61 20 66 65 77 20 64 69 66 66 time........There.are.a.few.diff
56c80 65 72 65 6e 74 20 70 6c 61 63 65 73 20 74 68 69 73 20 63 6f 6e 63 65 70 74 20 69 73 20 75 73 65 erent.places.this.concept.is.use
56ca0 64 2c 20 61 6e 64 20 74 68 65 73 65 20 62 75 69 6c 64 69 6e 67 20 62 6c 6f 63 6b 73 20 61 72 65 d,.and.these.building.blocks.are
56cc0 20 75 73 65 64 0a 20 20 20 20 20 20 74 6f 20 6b 65 65 70 20 74 68 65 20 6c 61 6e 67 75 61 67 65 .used.......to.keep.the.language
56ce0 20 73 6d 61 6c 6c 2c 20 72 65 61 64 61 62 6c 65 2c 20 61 6e 64 20 70 6f 77 65 72 66 75 6c 2e 0a .small,.readable,.and.powerful..
56d00 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 74 72 6f 64 75 ......</p>.......<h2.id="Introdu
56d20 63 69 6e 67 2d 74 68 65 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 43 6f 6e 63 65 70 74 22 3e 3c cing-the-Compile-Time-Concept"><
56d40 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 74 72 6f 64 75 63 69 6e 67 2d 74 68 65 2d 43 6f 6d a.href="#toc-Introducing-the-Com
56d60 70 69 6c 65 2d 54 69 6d 65 2d 43 6f 6e 63 65 70 74 22 3e 49 6e 74 72 6f 64 75 63 69 6e 67 20 74 pile-Time-Concept">Introducing.t
56d80 68 65 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 43 6f 6e 63 65 70 74 3c 2f 61 3e 20 3c 61 20 63 he.Compile-Time.Concept</a>.<a.c
56da0 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 74 72 6f 64 75 63 69 6e 67 2d 74 68 lass="hdr".href="#Introducing-th
56dc0 65 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 43 6f 6e 63 65 70 74 22 3e c2 a7 3c 2f 61 3e 3c 2f e-Compile-Time-Concept">..</a></
56de0 68 32 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d h2>........<h3.id="Compile-Time-
56e00 50 61 72 61 6d 65 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 6f 6d 70 69 6c Parameters"><a.href="#toc-Compil
56e20 65 2d 54 69 6d 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 e-Time-Parameters">Compile-Time.
56e40 50 61 72 61 6d 65 74 65 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 Parameters</a>.<a.class="hdr".hr
56e60 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e c2 a7 ef="#Compile-Time-Parameters">..
56e80 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6d 70 69 </a></h3>........<p>.......Compi
56ea0 6c 65 2d 74 69 6d 65 20 70 61 72 61 6d 65 74 65 72 73 20 69 73 20 68 6f 77 20 5a 69 67 20 69 6d le-time.parameters.is.how.Zig.im
56ec0 70 6c 65 6d 65 6e 74 73 20 67 65 6e 65 72 69 63 73 2e 20 49 74 20 69 73 20 63 6f 6d 70 69 6c 65 plements.generics..It.is.compile
56ee0 2d 74 69 6d 65 20 64 75 63 6b 20 74 79 70 69 6e 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 -time.duck.typing........</p>...
56f00 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
56f20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 .class="tok-kw">fn</span>.<span.
56f40 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 78 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 class="tok-fn">max</span>(<span.
56f60 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 class="tok-kw">comptime</span>.T
56f80 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 :.<span.class="tok-type">type</s
56fa0 70 61 6e 3e 2c 20 61 3a 20 54 2c 20 62 3a 20 54 29 20 54 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 pan>,.a:.T,.b:.T).T.{.....<span.
56fc0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 class="tok-kw">return</span>.<sp
56fe0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 20 26 an.class="tok-kw">if</span>.(a.&
57000 67 74 3b 20 62 29 20 61 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c gt;.b).a.<span.class="tok-kw">el
57020 73 65 3c 2f 73 70 61 6e 3e 20 62 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d se</span>.b;.}.<span.class="tok-
57040 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 kw">fn</span>.<span.class="tok-f
57060 6e 22 3e 67 69 6d 6d 65 54 68 65 42 69 67 67 65 72 46 6c 6f 61 74 3c 2f 73 70 61 6e 3e 28 61 3a n">gimmeTheBiggerFloat</span>(a:
57080 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 .<span.class="tok-type">f32</spa
570a0 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 n>,.b:.<span.class="tok-type">f3
570c0 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 2</span>).<span.class="tok-type"
570e0 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >f32</span>.{.....<span.class="t
57100 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 6d 61 78 28 3c 73 70 61 6e 20 63 ok-kw">return</span>.max(<span.c
57120 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 20 61 2c 20 62 lass="tok-type">f32</span>,.a,.b
57140 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 );.}.<span.class="tok-kw">fn</sp
57160 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 67 69 6d 6d 65 54 68 an>.<span.class="tok-fn">gimmeTh
57180 65 42 69 67 67 65 72 49 6e 74 65 67 65 72 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 eBiggerInteger</span>(a:.<span.c
571a0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c lass="tok-type">u64</span>,.b:.<
571c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e span.class="tok-type">u64</span>
571e0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 ).<span.class="tok-type">u64</sp
57200 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 an>.{.....<span.class="tok-kw">r
57220 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 6d 61 78 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f eturn</span>.max(<span.class="to
57240 6b 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 2c 20 61 2c 20 62 29 3b 0a 7d 3c 2f 63 6f k-type">u64</span>,.a,.b);.}</co
57260 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 de></pre>.......<p>.......In.Zig
57280 2c 20 74 79 70 65 73 20 61 72 65 20 66 69 72 73 74 2d 63 6c 61 73 73 20 63 69 74 69 7a 65 6e 73 ,.types.are.first-class.citizens
572a0 2e 20 54 68 65 79 20 63 61 6e 20 62 65 20 61 73 73 69 67 6e 65 64 20 74 6f 20 76 61 72 69 61 62 ..They.can.be.assigned.to.variab
572c0 6c 65 73 2c 20 70 61 73 73 65 64 20 61 73 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 66 75 6e les,.passed.as.parameters.to.fun
572e0 63 74 69 6f 6e 73 2c 0a 20 20 20 20 20 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 ctions,.......and.returned.from.
57300 66 75 6e 63 74 69 6f 6e 73 2e 20 48 6f 77 65 76 65 72 2c 20 74 68 65 79 20 63 61 6e 20 6f 6e 6c functions..However,.they.can.onl
57320 79 20 62 65 20 75 73 65 64 20 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 68 69 63 68 20 61 y.be.used.in.expressions.which.a
57340 72 65 20 6b 6e 6f 77 6e 20 61 74 20 3c 65 6d 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3c 2f 65 6d re.known.at.<em>compile-time</em
57360 3e 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 69 73 20 77 68 79 20 74 68 65 20 70 61 72 61 6d 65 >,.......which.is.why.the.parame
57380 74 65 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 6f 64 65 3e 20 69 ter.<code.class="zig">T</code>.i
573a0 6e 20 74 68 65 20 61 62 6f 76 65 20 73 6e 69 70 70 65 74 20 6d 75 73 74 20 62 65 20 6d 61 72 6b n.the.above.snippet.must.be.mark
573c0 65 64 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ed.with.<code.class="zig"><span.
573e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f class="tok-kw">comptime</span></
57400 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 code>........</p>.......<p>.....
57420 20 20 41 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 ..A.<code.class="zig"><span.clas
57440 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 s="tok-kw">comptime</span></code
57460 3e 20 70 61 72 61 6d 65 74 65 72 20 6d 65 61 6e 73 20 74 68 61 74 3a 0a 20 20 20 20 20 20 3c 2f >.parameter.means.that:.......</
57480 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 74 20 74 68 65 p>.......<ul>.........<li>At.the
574a0 20 63 61 6c 6c 73 69 74 65 2c 20 74 68 65 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 6b 6e 6f .callsite,.the.value.must.be.kno
574c0 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 6f 72 20 69 74 20 69 73 20 61 20 63 wn.at.compile-time,.or.it.is.a.c
574e0 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 ompile.error.</li>.........<li>I
57500 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 74 68 65 20 76 n.the.function.definition,.the.v
57520 61 6c 75 65 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 3c 2f alue.is.known.at.compile-time.</
57540 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 li>.......</ul>.......<p>.......
57560 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 </p>.......<p>.......For.example
57580 2c 20 69 66 20 77 65 20 77 65 72 65 20 74 6f 20 69 6e 74 72 6f 64 75 63 65 20 61 6e 6f 74 68 65 ,.if.we.were.to.introduce.anothe
575a0 72 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 61 62 6f 76 65 20 73 6e 69 70 70 65 74 3a r.function.to.the.above.snippet:
575c0 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 .......</p>.......<p.class="file
575e0 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">test.zig</p><pre><code.class="
57600 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 zig"><span.class="tok-kw">fn</sp
57620 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 78 3c 2f 73 70 an>.<span.class="tok-fn">max</sp
57640 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d an>(<span.class="tok-kw">comptim
57660 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 e</span>.T:.<span.class="tok-typ
57680 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a 20 54 2c 20 62 3a 20 54 29 20 54 20 7b 0a e">type</span>,.a:.T,.b:.T).T.{.
576a0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c ....<span.class="tok-kw">return<
576c0 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f /span>.<span.class="tok-kw">if</
576e0 73 70 61 6e 3e 20 28 61 20 26 67 74 3b 20 62 29 20 61 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 span>.(a.&gt;.b).a.<span.class="
57700 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 62 3b 0a 7d 0a 3c 73 70 61 6e 20 63 tok-kw">else</span>.b;.}.<span.c
57720 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 lass="tok-kw">test</span>.<span.
57740 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 72 79 20 74 6f 20 70 61 73 class="tok-str">&quot;try.to.pas
57760 73 20 61 20 72 75 6e 74 69 6d 65 20 74 79 70 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a s.a.runtime.type&quot;</span>.{.
57780 20 20 20 20 66 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 ....foo(<span.class="tok-null">f
577a0 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b alse</span>);.}.<span.class="tok
577c0 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d -kw">fn</span>.<span.class="tok-
577e0 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 63 6f 6e 64 69 74 69 6f 6e 3a 20 3c 73 70 61 6e 20 fn">foo</span>(condition:.<span.
57800 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 20 3c 73 class="tok-type">bool</span>).<s
57820 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e pan.class="tok-type">void</span>
57840 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 .{.....<span.class="tok-kw">cons
57860 74 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 20 3d 20 6d 61 78 28 0a 20 20 20 20 20 20 20 20 3c t</span>.result.=.max(.........<
57880 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 63 span.class="tok-kw">if</span>.(c
578a0 6f 6e 64 69 74 69 6f 6e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ondition).<span.class="tok-type"
578c0 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 >f32</span>.<span.class="tok-kw"
578e0 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 >else</span>.<span.class="tok-ty
57900 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c pe">u64</span>,.........<span.cl
57920 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 ass="tok-number">1234</span>,...
57940 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 ......<span.class="tok-number">5
57960 36 37 38 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 678</span>);.}</code></pre><pre>
57980 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 <code.class="shell">$.zig.test.t
579a0 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 est.zig.<span.class="t0_1">/home
579c0 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 /andy/dev/zig/docgen_tmp/test.zi
579e0 67 3a 39 3a 32 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f g:9:24:.</span><span.class="t31_
57a00 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 1">error:</span><span.class="t0_
57a20 31 22 3e 20 63 61 6e 6e 6f 74 20 73 74 6f 72 65 20 72 75 6e 74 69 6d 65 20 76 61 6c 75 65 20 69 1">.cannot.store.runtime.value.i
57a40 6e 20 74 79 70 65 20 27 74 79 70 65 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 69 66 20 n.type.'type'</span>.........if.
57a60 28 63 6f 6e 64 69 74 69 6f 6e 29 20 66 33 32 20 65 6c 73 65 20 75 36 34 2c 0a 20 20 20 20 20 20 (condition).f32.else.u64,.......
57a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 .................<span.class="t3
57aa0 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 2_1">^</span>.</code></pre>.....
57ac0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 61 6e 20 65 72 72 6f 72 20 62 65 ...<p>.......This.is.an.error.be
57ae0 63 61 75 73 65 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 61 74 74 65 6d 70 74 65 64 20 74 cause.the.programmer.attempted.t
57b00 6f 20 70 61 73 73 20 61 20 76 61 6c 75 65 20 6f 6e 6c 79 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e o.pass.a.value.only.known.at.run
57b20 2d 74 69 6d 65 0a 20 20 20 20 20 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 -time.......to.a.function.which.
57b40 65 78 70 65 63 74 73 20 61 20 76 61 6c 75 65 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 expects.a.value.known.at.compile
57b60 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 -time........</p>.......<p>.....
57b80 20 20 41 6e 6f 74 68 65 72 20 77 61 79 20 74 6f 20 67 65 74 20 61 6e 20 65 72 72 6f 72 20 69 73 ..Another.way.to.get.an.error.is
57ba0 20 69 66 20 77 65 20 70 61 73 73 20 61 20 74 79 70 65 20 74 68 61 74 20 76 69 6f 6c 61 74 65 73 .if.we.pass.a.type.that.violates
57bc0 20 74 68 65 20 74 79 70 65 20 63 68 65 63 6b 65 72 20 77 68 65 6e 20 74 68 65 0a 20 20 20 20 20 .the.type.checker.when.the......
57be0 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 6e 61 6c 79 7a 65 64 2e 20 54 68 69 73 20 69 73 20 77 .function.is.analyzed..This.is.w
57c00 68 61 74 20 69 74 20 6d 65 61 6e 73 20 74 6f 20 68 61 76 65 20 3c 65 6d 3e 63 6f 6d 70 69 6c 65 hat.it.means.to.have.<em>compile
57c20 2d 74 69 6d 65 20 64 75 63 6b 20 74 79 70 69 6e 67 3c 2f 65 6d 3e 2e 0a 20 20 20 20 20 20 3c 2f -time.duck.typing</em>........</
57c40 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a p>.......<p>.......For.example:.
57c60 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ......</p>.......<p.class="file"
57c80 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a >test.zig</p><pre><code.class="z
57ca0 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 ig"><span.class="tok-kw">fn</spa
57cc0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 78 3c 2f 73 70 61 n>.<span.class="tok-fn">max</spa
57ce0 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 n>(<span.class="tok-kw">comptime
57d00 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>.T:.<span.class="tok-type
57d20 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a 20 54 2c 20 62 3a 20 54 29 20 54 20 7b 0a 20 ">type</span>,.a:.T,.b:.T).T.{..
57d40 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f ...<span.class="tok-kw">return</
57d60 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 span>.<span.class="tok-kw">if</s
57d80 70 61 6e 3e 20 28 61 20 26 67 74 3b 20 62 29 20 61 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>.(a.&gt;.b).a.<span.class="t
57da0 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 62 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c ok-kw">else</span>.b;.}.<span.cl
57dc0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ass="tok-kw">test</span>.<span.c
57de0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 72 79 20 74 6f 20 63 6f 6d 70 lass="tok-str">&quot;try.to.comp
57e00 61 72 65 20 62 6f 6f 6c 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 5f 20 3d are.bools&quot;</span>.{....._.=
57e20 20 6d 61 78 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c .max(<span.class="tok-type">bool
57e40 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e </span>,.<span.class="tok-null">
57e60 74 72 75 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 true</span>,.<span.class="tok-nu
57e80 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 ll">false</span>);.}</code></pre
57ea0 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 ><pre><code.class="shell">$.zig.
57ec0 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 test.test.zig.<span.class="t0_1"
57ee0 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 >/home/andy/dev/zig/docgen_tmp/t
57f00 65 73 74 2e 7a 69 67 3a 32 3a 31 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 est.zig:2:18:.</span><span.class
57f20 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 ="t31_1">error:</span><span.clas
57f40 73 3d 22 74 30 5f 31 22 3e 20 6f 70 65 72 61 74 6f 72 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 66 s="t0_1">.operator.not.allowed.f
57f60 6f 72 20 74 79 70 65 20 27 62 6f 6f 6c 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e or.type.'bool'</span>.....return
57f80 20 69 66 20 28 61 20 26 67 74 3b 20 62 29 20 61 20 65 6c 73 65 20 62 3b 0a 20 20 20 20 20 20 20 .if.(a.&gt;.b).a.else.b;........
57fa0 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ..........<span.class="t32_1">^<
57fc0 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f /span>.<span.class="t0_1">/home/
57fe0 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 andy/dev/zig/docgen_tmp/test.zig
58000 3a 35 3a 31 32 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 :5:12:.</span><span.class="t36_1
58020 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 ">note:</span><span.class="t0_1"
58040 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 >.called.from.here</span>....._.
58060 3d 20 6d 61 78 28 62 6f 6f 6c 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 =.max(bool,.true,.false);.......
58080 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e .....<span.class="t32_1">^</span
580a0 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 >.</code></pre>........<p>......
580c0 20 4f 6e 20 74 68 65 20 66 6c 69 70 20 73 69 64 65 2c 20 69 6e 73 69 64 65 20 74 68 65 20 66 75 .On.the.flip.side,.inside.the.fu
580e0 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 nction.definition.with.the.<code
58100 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
58120 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 70 61 72 61 6d 65 74 ">comptime</span></code>.paramet
58140 65 72 2c 20 74 68 65 0a 20 20 20 20 20 20 76 61 6c 75 65 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 er,.the.......value.is.known.at.
58160 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 compile-time..This.means.that.we
58180 20 61 63 74 75 61 6c 6c 79 20 63 6f 75 6c 64 20 6d 61 6b 65 20 74 68 69 73 20 77 6f 72 6b 20 66 .actually.could.make.this.work.f
581a0 6f 72 20 74 68 65 20 62 6f 6f 6c 20 74 79 70 65 0a 20 20 20 20 20 20 69 66 20 77 65 20 77 61 6e or.the.bool.type.......if.we.wan
581c0 74 65 64 20 74 6f 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 ted.to:.......</p>.......<p.clas
581e0 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 s="file">test.zig</p><pre><code.
58200 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
58220 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e >fn</span>.<span.class="tok-fn">
58240 6d 61 78 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e max</span>(<span.class="tok-kw">
58260 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 comptime</span>.T:.<span.class="
58280 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a 20 54 2c 20 62 3a 20 tok-type">type</span>,.a:.T,.b:.
582a0 54 29 20 54 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e T).T.{.....<span.class="tok-kw">
582c0 69 66 3c 2f 73 70 61 6e 3e 20 28 54 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b if</span>.(T.==.<span.class="tok
582e0 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 -type">bool</span>).{.........<s
58300 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e pan.class="tok-kw">return</span>
58320 20 61 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 3c 2f 73 70 61 6e .a.<span.class="tok-kw">or</span
58340 3e 20 62 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e >.b;.....}.<span.class="tok-kw">
58360 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 else</span>.<span.class="tok-kw"
58380 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 20 26 67 74 3b 20 62 29 20 7b 0a 20 20 20 20 20 20 20 20 >if</span>.(a.&gt;.b).{.........
583a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 <span.class="tok-kw">return</spa
583c0 6e 3e 20 61 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 n>.a;.....}.<span.class="tok-kw"
583e0 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 >else</span>.{.........<span.cla
58400 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 62 3b 0a 20 20 20 ss="tok-kw">return</span>.b;....
58420 20 7d 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f .}.}.<span.class="tok-kw">test</
58440 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>.<span.class="tok-str">&quo
58460 74 3b 74 72 79 20 74 6f 20 63 6f 6d 70 61 72 65 20 62 6f 6f 6c 73 26 71 75 6f 74 3b 3c 2f 73 70 t;try.to.compare.bools&quot;</sp
58480 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 an>.{.....<span.class="tok-built
584a0 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
584c0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
584e0 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 6d 61 78 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .debug.assert(max(<span.class="t
58500 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 ok-type">bool</span>,.<span.clas
58520 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e s="tok-null">false</span>,.<span
58540 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 3d .class="tok-null">true</span>).=
58560 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 =.<span.class="tok-null">true</s
58580 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 pan>);.}</code></pre><pre><code.
585a0 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 class="shell">$.zig.test.test.zi
585c0 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 74 72 79 20 74 6f 20 63 6f 6d 70 61 72 65 20 g.1/1.test.&quot;try.to.compare.
585e0 62 6f 6f 6c 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 bools&quot;...OK.All.tests.passe
58600 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 d..</code></pre>........<p>.....
58620 20 20 54 68 69 73 20 77 6f 72 6b 73 20 62 65 63 61 75 73 65 20 5a 69 67 20 69 6d 70 6c 69 63 69 ..This.works.because.Zig.implici
58640 74 6c 79 20 69 6e 6c 69 6e 65 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 tly.inlines.<code.class="zig"><s
58660 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f pan.class="tok-kw">if</span></co
58680 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 68 65 6e 20 74 68 65 20 63 6f 6e 64 69 74 69 de>.expressions.when.the.conditi
586a0 6f 6e 0a 20 20 20 20 20 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d on.......is.known.at.compile-tim
586c0 65 2c 20 61 6e 64 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 74 e,.and.the.compiler.guarantees.t
586e0 68 61 74 20 69 74 20 77 69 6c 6c 20 73 6b 69 70 20 61 6e 61 6c 79 73 69 73 20 6f 66 0a 20 20 20 hat.it.will.skip.analysis.of....
58700 20 20 20 74 68 65 20 62 72 61 6e 63 68 20 6e 6f 74 20 74 61 6b 65 6e 2e 0a 20 20 20 20 20 20 3c ...the.branch.not.taken........<
58720 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 6d 65 61 6e 73 20 74 /p>.......<p>.......This.means.t
58740 68 61 74 20 74 68 65 20 61 63 74 75 61 6c 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 hat.the.actual.function.generate
58760 64 20 66 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6d 61 78 3c 2f 63 6f 64 d.for.<code.class="zig">max</cod
58780 65 3e 20 69 6e 20 74 68 69 73 20 73 69 74 75 61 74 69 6f 6e 20 6c 6f 6f 6b 73 20 6c 69 6b 65 0a e>.in.this.situation.looks.like.
587a0 20 20 20 20 20 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 ......this:.......</p>.......<pr
587c0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
587e0 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
58800 74 6f 6b 2d 66 6e 22 3e 6d 61 78 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 tok-fn">max</span>(a:.<span.clas
58820 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 s="tok-type">bool</span>,.b:.<sp
58840 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 an.class="tok-type">bool</span>)
58860 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 .<span.class="tok-type">bool</sp
58880 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 an>.{.....<span.class="tok-kw">r
588a0 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d eturn</span>.a.<span.class="tok-
588c0 6b 77 22 3e 6f 72 3c 2f 73 70 61 6e 3e 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a kw">or</span>.b;.}</code></pre>.
588e0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6c 6c 20 74 68 65 20 63 6f 64 65 20 74 68 61 ......<p>.......All.the.code.tha
58900 74 20 64 65 61 6c 74 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 20 t.dealt.with.compile-time.known.
58920 76 61 6c 75 65 73 20 69 73 20 65 6c 69 6d 69 6e 61 74 65 64 20 61 6e 64 20 77 65 20 61 72 65 20 values.is.eliminated.and.we.are.
58940 6c 65 66 74 20 77 69 74 68 20 6f 6e 6c 79 0a 20 20 20 20 20 20 74 68 65 20 6e 65 63 65 73 73 61 left.with.only.......the.necessa
58960 72 79 20 72 75 6e 2d 74 69 6d 65 20 63 6f 64 65 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73 68 20 74 ry.run-time.code.to.accomplish.t
58980 68 65 20 74 61 73 6b 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 he.task........</p>.......<p>...
589a0 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 66 6f 72 20 ....This.works.the.same.way.for.
589c0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
589e0 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 ok-kw">switch</span></code>.expr
58a00 65 73 73 69 6f 6e 73 20 2d 20 74 68 65 79 20 61 72 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 69 6e essions.-.they.are.implicitly.in
58a20 6c 69 6e 65 64 0a 20 20 20 20 20 20 77 68 65 6e 20 74 68 65 20 74 61 72 67 65 74 20 65 78 70 72 lined.......when.the.target.expr
58a40 65 73 73 69 6f 6e 20 69 73 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 2e 0a 20 20 ession.is.compile-time.known....
58a60 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 6f ....</p>..............<h3.id="Co
58a80 6d 70 69 6c 65 2d 54 69 6d 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 mpile-Time-Variables"><a.href="#
58aa0 74 6f 63 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 toc-Compile-Time-Variables">Comp
58ac0 69 6c 65 2d 54 69 6d 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d ile-Time.Variables</a>.<a.class=
58ae0 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 56 61 72 69 61 62 "hdr".href="#Compile-Time-Variab
58b00 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 les">..</a></h3>........<p>.....
58b20 20 20 49 6e 20 5a 69 67 2c 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 20 6c 61 62 ..In.Zig,.the.programmer.can.lab
58b40 65 6c 20 76 61 72 69 61 62 6c 65 73 20 61 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 el.variables.as.<code.class="zig
58b60 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c "><span.class="tok-kw">comptime<
58b80 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 67 75 61 72 61 6e 74 65 65 73 20 74 /span></code>..This.guarantees.t
58ba0 6f 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 74 68 61 74 20 65 76 65 72 79 20 o.the.compiler.......that.every.
58bc0 6c 6f 61 64 20 61 6e 64 20 73 74 6f 72 65 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 load.and.store.of.the.variable.i
58be0 73 20 70 65 72 66 6f 72 6d 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 41 6e 79 s.performed.at.compile-time..Any
58c00 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 72 65 73 75 6c 74 73 20 69 6e 20 61 0a .violation.of.this.results.in.a.
58c20 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ......compile.error........</p>.
58c40 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 6f 6d 62 69 6e 65 64 20 77 69 ......<p>.......This.combined.wi
58c60 74 68 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 77 65 20 63 61 6e 20 3c 63 6f 64 65 20 63 6c th.the.fact.that.we.can.<code.cl
58c80 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 ass="zig"><span.class="tok-kw">i
58ca0 6e 6c 69 6e 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6c 6f 6f 70 73 20 61 6c 6c 6f 77 73 nline</span></code>.loops.allows
58cc0 20 75 73 20 74 6f 20 77 72 69 74 65 0a 20 20 20 20 20 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 .us.to.write.......a.function.wh
58ce0 69 63 68 20 69 73 20 70 61 72 74 69 61 6c 6c 79 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 6f ich.is.partially.evaluated.at.co
58d00 6d 70 69 6c 65 2d 74 69 6d 65 20 61 6e 64 20 70 61 72 74 69 61 6c 6c 79 20 61 74 20 72 75 6e 2d mpile-time.and.partially.at.run-
58d20 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 time........</p>.......<p>......
58d40 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c .For.example:.......</p>.......<
58d60 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 76 61 72 73 2e 7a 69 67 p.class="file">comptime_vars.zig
58d80 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e </p><pre><code.class="zig"><span
58da0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 .class="tok-kw">const</span>.ass
58dc0 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e ert.=.<span.class="tok-builtin">
58de0 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d @import</span>(<span.class="tok-
58e00 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 str">&quot;std&quot;</span>).deb
58e20 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ug.assert;..<span.class="tok-kw"
58e40 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 6d 64 46 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 >const</span>.CmdFn.=.<span.clas
58e60 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 6e s="tok-kw">struct</span>.{.....n
58e80 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ame:.[]<span.class="tok-kw">cons
58ea0 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e t</span>.<span.class="tok-type">
58ec0 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 66 75 6e 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 u8</span>,.....func:.<span.class
58ee0 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="tok-kw">fn</span>(<span.class=
58f00 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 "tok-type">i32</span>).<span.cla
58f20 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 ss="tok-type">i32</span>,.};..<s
58f40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
58f60 63 6d 64 5f 66 6e 73 20 3d 20 5b 5f 5d 43 6d 64 46 6e 7b 0a 20 20 20 20 43 6d 64 46 6e 20 7b 2e cmd_fns.=.[_]CmdFn{.....CmdFn.{.
58f80 6e 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 name.=.<span.class="tok-str">&qu
58fa0 6f 74 3b 6f 6e 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 66 75 6e 63 20 3d 20 6f 6e 65 ot;one&quot;</span>,..func.=.one
58fc0 7d 2c 0a 20 20 20 20 43 6d 64 46 6e 20 7b 2e 6e 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 },.....CmdFn.{.name.=.<span.clas
58fe0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 77 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;two&quot;</spa
59000 6e 3e 2c 20 2e 66 75 6e 63 20 3d 20 74 77 6f 7d 2c 0a 20 20 20 20 43 6d 64 46 6e 20 7b 2e 6e 61 n>,..func.=.two},.....CmdFn.{.na
59020 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 me.=.<span.class="tok-str">&quot
59040 3b 74 68 72 65 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 66 75 6e 63 20 3d 20 74 68 72 ;three&quot;</span>,..func.=.thr
59060 65 65 7d 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c ee},.};.<span.class="tok-kw">fn<
59080 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6f 6e 65 3c /span>.<span.class="tok-fn">one<
590a0 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 /span>(value:.<span.class="tok-t
590c0 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ype">i32</span>).<span.class="to
590e0 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-type">i32</span>.{.<span.class
59100 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 20 2b 20 ="tok-kw">return</span>.value.+.
59120 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e <span.class="tok-number">1</span
59140 3e 3b 20 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 >;.}.<span.class="tok-kw">fn</sp
59160 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 77 6f 3c 2f 73 70 an>.<span.class="tok-fn">two</sp
59180 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 an>(value:.<span.class="tok-type
591a0 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ">i32</span>).<span.class="tok-t
591c0 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ype">i32</span>.{.<span.class="t
591e0 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 20 2b 20 3c 73 70 ok-kw">return</span>.value.+.<sp
59200 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3b 20 an.class="tok-number">2</span>;.
59220 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e }.<span.class="tok-kw">fn</span>
59240 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 68 72 65 65 3c 2f 73 70 61 .<span.class="tok-fn">three</spa
59260 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 n>(value:.<span.class="tok-type"
59280 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 >i32</span>).<span.class="tok-ty
592a0 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pe">i32</span>.{.<span.class="to
592c0 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 20 2b 20 3c 73 70 61 k-kw">return</span>.value.+.<spa
592e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 20 7d n.class="tok-number">3</span>;.}
59300 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e ..<span.class="tok-kw">fn</span>
59320 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 65 72 66 6f 72 6d 46 6e 3c .<span.class="tok-fn">performFn<
59340 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 /span>(<span.class="tok-kw">comp
59360 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 70 72 65 66 69 78 5f 63 68 61 72 3a 20 3c 73 70 61 6e 20 63 time</span>.prefix_char:.<span.c
59380 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 73 74 61 72 74 lass="tok-type">u8</span>,.start
593a0 5f 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 _value:.<span.class="tok-type">i
593c0 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 32</span>).<span.class="tok-type
593e0 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">i32</span>.{.....<span.class="
59400 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 3a 20 3c 73 70 61 6e tok-kw">var</span>.result:.<span
59420 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 73 .class="tok-type">i32</span>.=.s
59440 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tart_value;.....<span.class="tok
59460 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 -kw">comptime</span>.<span.class
59480 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 20 3d 20 3c 73 70 61 6e 20 63 ="tok-kw">var</span>.i.=.<span.c
594a0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 lass="tok-number">0</span>;.....
594c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 6e 6c 69 6e 65 3c 2f 73 70 61 <span.class="tok-kw">inline</spa
594e0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 n>.<span.class="tok-kw">while</s
59500 70 61 6e 3e 20 28 69 20 26 6c 74 3b 20 63 6d 64 5f 66 6e 73 2e 6c 65 6e 29 20 3a 20 28 69 20 2b pan>.(i.&lt;.cmd_fns.len).:.(i.+
59520 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 =.<span.class="tok-number">1</sp
59540 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d an>).{.........<span.class="tok-
59560 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 63 6d 64 5f 66 6e 73 5b 69 5d 2e 6e 61 6d 65 5b 3c kw">if</span>.(cmd_fns[i].name[<
59580 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
595a0 5d 20 3d 3d 20 70 72 65 66 69 78 5f 63 68 61 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ].==.prefix_char).{.............
595c0 72 65 73 75 6c 74 20 3d 20 63 6d 64 5f 66 6e 73 5b 69 5d 2e 66 75 6e 63 28 72 65 73 75 6c 74 29 result.=.cmd_fns[i].func(result)
595e0 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ;.........}.....}.....<span.clas
59600 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 3b s="tok-kw">return</span>.result;
59620 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 .}..<span.class="tok-kw">test</s
59640 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
59660 3b 70 65 72 66 6f 72 6d 20 66 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 ;perform.fn&quot;</span>.{.....a
59680 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ssert(performFn(<span.class="tok
596a0 2d 73 74 72 22 3e 27 74 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -str">'t'</span>,.<span.class="t
596c0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c ok-number">1</span>).==.<span.cl
596e0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 ass="tok-number">6</span>);.....
59700 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f assert(performFn(<span.class="to
59720 6b 2d 73 74 72 22 3e 27 6f 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-str">'o'</span>,.<span.class="
59740 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 tok-number">0</span>).==.<span.c
59760 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 lass="tok-number">1</span>);....
59780 20 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .assert(performFn(<span.class="t
597a0 6f 6b 2d 73 74 72 22 3e 27 77 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-str">'w'</span>,.<span.class=
597c0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 39 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e "tok-number">99</span>).==.<span
597e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 39 3c 2f 73 70 61 6e 3e 29 3b 0a .class="tok-number">99</span>);.
59800 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
59820 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 63 6f 6d 70 74 69 6d 65 5f 76 61 72 73 2e shell">$.zig.test.comptime_vars.
59840 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 70 65 72 66 6f 72 6d 20 66 6e 26 71 75 zig.1/1.test.&quot;perform.fn&qu
59860 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 ot;...OK.All.tests.passed..</cod
59880 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 65 e></pre>........<p>.......This.e
598a0 78 61 6d 70 6c 65 20 69 73 20 61 20 62 69 74 20 63 6f 6e 74 72 69 76 65 64 2c 20 62 65 63 61 75 xample.is.a.bit.contrived,.becau
598c0 73 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 65 76 61 6c 75 61 74 69 6f 6e 20 63 se.the.compile-time.evaluation.c
598e0 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 75 6e 6e 65 63 65 73 73 61 72 79 3b 0a 20 20 20 20 20 20 74 omponent.is.unnecessary;.......t
59900 68 69 73 20 63 6f 64 65 20 77 6f 75 6c 64 20 77 6f 72 6b 20 66 69 6e 65 20 69 66 20 69 74 20 77 his.code.would.work.fine.if.it.w
59920 61 73 20 61 6c 6c 20 64 6f 6e 65 20 61 74 20 72 75 6e 2d 74 69 6d 65 2e 20 42 75 74 20 69 74 20 as.all.done.at.run-time..But.it.
59940 64 6f 65 73 20 65 6e 64 20 75 70 20 67 65 6e 65 72 61 74 69 6e 67 0a 20 20 20 20 20 20 64 69 66 does.end.up.generating.......dif
59960 66 65 72 65 6e 74 20 63 6f 64 65 2e 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 74 68 ferent.code..In.this.example,.th
59980 65 20 66 75 6e 63 74 69 6f 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 65 72 e.function.<code.class="zig">per
599a0 66 6f 72 6d 46 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 74 68 72 65 65 formFn</code>.is.generated.three
599c0 20 64 69 66 66 65 72 65 6e 74 20 74 69 6d 65 73 2c 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 .different.times,...........for.
599e0 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 73 20 6f 66 20 3c 63 6f 64 65 20 63 6c the.different.values.of.<code.cl
59a00 61 73 73 3d 22 7a 69 67 22 3e 70 72 65 66 69 78 5f 63 68 61 72 3c 2f 63 6f 64 65 3e 20 70 72 6f ass="zig">prefix_char</code>.pro
59a20 76 69 64 65 64 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f vided:.......</p>.......<pre><co
59a40 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
59a60 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 3a 3c 2f 73 70 61 6e comment">//.From.the.line:</span
59a80 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 >.<span.class="tok-comment">//.a
59aa0 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 74 27 2c 20 31 29 20 3d 3d 20 36 29 3b 3c 2f ssert(performFn('t',.1).==.6);</
59ac0 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
59ae0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 65 72 66 6f 72 pan>.<span.class="tok-fn">perfor
59b00 6d 46 6e 3c 2f 73 70 61 6e 3e 28 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c mFn</span>(start_value:.<span.cl
59b20 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e ass="tok-type">i32</span>).<span
59b40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 .class="tok-type">i32</span>.{..
59b60 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
59b80 6e 3e 20 72 65 73 75 6c 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 n>.result:.<span.class="tok-type
59ba0 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 ">i32</span>.=.start_value;.....
59bc0 72 65 73 75 6c 74 20 3d 20 74 77 6f 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 72 65 73 75 6c 74 result.=.two(result);.....result
59be0 20 3d 20 74 68 72 65 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 .=.three(result);.....<span.clas
59c00 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 3b s="tok-kw">return</span>.result;
59c20 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 .}</code></pre>.......<pre><code
59c40 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f .class="zig"><span.class="tok-co
59c60 6d 6d 65 6e 74 22 3e 2f 2f 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 3a 3c 2f 73 70 61 6e 3e 0a mment">//.From.the.line:</span>.
59c80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 73 73 <span.class="tok-comment">//.ass
59ca0 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 6f 27 2c 20 30 29 20 3d 3d 20 31 29 3b 3c 2f 73 70 ert(performFn('o',.0).==.1);</sp
59cc0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 an>.<span.class="tok-kw">fn</spa
59ce0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 65 72 66 6f 72 6d 46 n>.<span.class="tok-fn">performF
59d00 6e 3c 2f 73 70 61 6e 3e 28 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 n</span>(start_value:.<span.clas
59d20 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 s="tok-type">i32</span>).<span.c
59d40 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 lass="tok-type">i32</span>.{....
59d60 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">var</span>
59d80 20 72 65 73 75 6c 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e .result:.<span.class="tok-type">
59da0 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 72 65 i32</span>.=.start_value;.....re
59dc0 73 75 6c 74 20 3d 20 6f 6e 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c sult.=.one(result);.....<span.cl
59de0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c ass="tok-kw">return</span>.resul
59e00 74 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f t;.}</code></pre>.......<pre><co
59e20 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
59e40 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 3a 3c 2f 73 70 61 6e comment">//.From.the.line:</span
59e60 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 >.<span.class="tok-comment">//.a
59e80 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 77 27 2c 20 39 39 29 20 3d 3d 20 39 39 29 3b ssert(performFn('w',.99).==.99);
59ea0 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c </span>.<span.class="tok-kw">fn<
59ec0 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 65 72 66 /span>.<span.class="tok-fn">perf
59ee0 6f 72 6d 46 6e 3c 2f 73 70 61 6e 3e 28 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 ormFn</span>(start_value:.<span.
59f00 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 class="tok-type">i32</span>).<sp
59f20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b an.class="tok-type">i32</span>.{
59f40 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 .....<span.class="tok-kw">var</s
59f60 70 61 6e 3e 20 72 65 73 75 6c 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 pan>.result:.<span.class="tok-ty
59f80 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 pe">i32</span>.=.start_value;...
59fa0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 ..<span.class="tok-kw">return</s
59fc0 70 61 6e 3e 20 72 65 73 75 6c 74 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 pan>.result;.}</code></pre>.....
59fe0 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 68 61 70 70 65 ..<p>.......Note.that.this.happe
5a000 6e 73 20 65 76 65 6e 20 69 6e 20 61 20 64 65 62 75 67 20 62 75 69 6c 64 3b 20 69 6e 20 61 20 72 ns.even.in.a.debug.build;.in.a.r
5a020 65 6c 65 61 73 65 20 62 75 69 6c 64 20 74 68 65 73 65 20 67 65 6e 65 72 61 74 65 64 20 66 75 6e elease.build.these.generated.fun
5a040 63 74 69 6f 6e 73 20 73 74 69 6c 6c 0a 20 20 20 20 20 20 70 61 73 73 20 74 68 72 6f 75 67 68 20 ctions.still.......pass.through.
5a060 72 69 67 6f 72 6f 75 73 20 4c 4c 56 4d 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 20 54 68 65 rigorous.LLVM.optimizations..The
5a080 20 69 6d 70 6f 72 74 61 6e 74 20 74 68 69 6e 67 20 74 6f 20 6e 6f 74 65 2c 20 68 6f 77 65 76 65 .important.thing.to.note,.howeve
5a0a0 72 2c 20 69 73 20 6e 6f 74 20 74 68 61 74 20 74 68 69 73 0a 20 20 20 20 20 20 69 73 20 61 20 77 r,.is.not.that.this.......is.a.w
5a0c0 61 79 20 74 6f 20 77 72 69 74 65 20 6d 6f 72 65 20 6f 70 74 69 6d 69 7a 65 64 20 63 6f 64 65 2c ay.to.write.more.optimized.code,
5a0e0 20 62 75 74 20 74 68 61 74 20 69 74 20 69 73 20 61 20 77 61 79 20 74 6f 20 6d 61 6b 65 20 73 75 .but.that.it.is.a.way.to.make.su
5a100 72 65 20 74 68 61 74 20 77 68 61 74 20 3c 65 6d 3e 73 68 6f 75 6c 64 3c 2f 65 6d 3e 20 68 61 70 re.that.what.<em>should</em>.hap
5a120 70 65 6e 0a 20 20 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 3c 65 6d 3e 64 pen.......at.compile-time,.<em>d
5a140 6f 65 73 3c 2f 65 6d 3e 20 68 61 70 70 65 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e oes</em>.happen.at.compile-time.
5a160 20 54 68 69 73 20 63 61 74 63 68 65 73 20 6d 6f 72 65 20 65 72 72 6f 72 73 20 61 6e 64 20 61 73 .This.catches.more.errors.and.as
5a180 20 64 65 6d 6f 6e 73 74 72 61 74 65 64 0a 20 20 20 20 20 20 6c 61 74 65 72 20 69 6e 20 74 68 69 .demonstrated.......later.in.thi
5a1a0 73 20 61 72 74 69 63 6c 65 2c 20 61 6c 6c 6f 77 73 20 65 78 70 72 65 73 73 69 76 65 6e 65 73 73 s.article,.allows.expressiveness
5a1c0 20 74 68 61 74 20 69 6e 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 20 72 65 71 75 69 72 65 .that.in.other.languages.require
5a1e0 73 20 75 73 69 6e 67 20 6d 61 63 72 6f 73 2c 0a 20 20 20 20 20 20 67 65 6e 65 72 61 74 65 64 20 s.using.macros,.......generated.
5a200 63 6f 64 65 2c 20 6f 72 20 61 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 74 6f 20 61 63 63 6f 6d code,.or.a.preprocessor.to.accom
5a220 70 6c 69 73 68 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c plish........</p>..............<
5a240 68 33 20 69 64 3d 22 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 45 78 70 72 65 73 73 69 6f 6e 73 22 h3.id="Compile-Time-Expressions"
5a260 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 45 78 70 72 ><a.href="#toc-Compile-Time-Expr
5a280 65 73 73 69 6f 6e 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 45 78 70 72 65 73 73 69 6f 6e essions">Compile-Time.Expression
5a2a0 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 6f 6d 70 s</a>.<a.class="hdr".href="#Comp
5a2c0 69 6c 65 2d 54 69 6d 65 2d 45 78 70 72 65 73 73 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 ile-Time-Expressions">..</a></h3
5a2e0 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 69 74 20 6d 61 >........<p>.......In.Zig,.it.ma
5a300 74 74 65 72 73 20 77 68 65 74 68 65 72 20 61 20 67 69 76 65 6e 20 65 78 70 72 65 73 73 69 6f 6e tters.whether.a.given.expression
5a320 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 72 20 72 75 6e .is.known.at.compile-time.or.run
5a340 2d 74 69 6d 65 2e 20 41 20 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 0a 20 20 20 20 20 20 75 73 -time..A.programmer.can.......us
5a360 65 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 e.a.<code.class="zig"><span.clas
5a380 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 s="tok-kw">comptime</span></code
5a3a0 3e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 74 68 61 74 20 74 >.expression.to.guarantee.that.t
5a3c0 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 6c 6c 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 he.expression.will.be.evaluated.
5a3e0 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 49 66 20 74 68 69 73 20 63 at.compile-time........If.this.c
5a400 61 6e 6e 6f 74 20 62 65 20 61 63 63 6f 6d 70 6c 69 73 68 65 64 2c 20 74 68 65 20 63 6f 6d 70 69 annot.be.accomplished,.the.compi
5a420 6c 65 72 20 77 69 6c 6c 20 65 6d 69 74 20 61 6e 20 65 72 72 6f 72 2e 20 46 6f 72 20 65 78 61 6d ler.will.emit.an.error..For.exam
5a440 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 ple:.......</p>.......<p.class="
5a460 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 file">test.zig</p><pre><code.cla
5a480 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 ss="zig"><span.class="tok-kw">ex
5a4a0 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 tern</span>.<span.class="tok-kw"
5a4c0 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e >fn</span>.<span.class="tok-fn">
5a4e0 65 78 69 74 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 exit</span>().<span.class="tok-t
5a500 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 ype">noreturn</span>;..<span.cla
5a520 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
5a540 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 ass="tok-str">&quot;foo&quot;</s
5a560 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
5a580 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 65 78 69 74 28 29 comptime</span>.{.........exit()
5a5a0 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 ;.....}.}</code></pre><pre><code
5a5c0 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a .class="shell">$.zig.test.test.z
5a5e0 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 ig.<span.class="t0_1">/home/andy
5a600 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 39 /dev/zig/docgen_tmp/test.zig:5:9
5a620 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 :.</span><span.class="t31_1">err
5a640 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 75 6e or:</span><span.class="t0_1">.un
5a660 61 62 6c 65 20 74 6f 20 65 76 61 6c 75 61 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 able.to.evaluate.constant.expres
5a680 73 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 65 78 69 74 28 29 3b 0a 20 20 20 20 sion</span>.........exit();.....
5a6a0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e ....<span.class="t32_1">^</span>
5a6c0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 .<span.class="t0_1">/home/andy/d
5a6e0 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 33 3a ev/zig/docgen_tmp/test.zig:5:13:
5a700 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 .</span><span.class="t36_1">note
5a720 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 :</span><span.class="t0_1">.refe
5a740 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 65 78 69 74 28 renced.here</span>.........exit(
5a760 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f );.............<span.class="t32_
5a780 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 1">^</span>.</code></pre>.......
5a7a0 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 64 6f 65 73 6e 27 74 20 6d 61 6b 65 20 73 65 6e 73 65 .<p>.......It.doesn't.make.sense
5a7c0 20 74 68 61 74 20 61 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 20 63 61 6c 6c 20 3c 63 6f 64 65 .that.a.program.could.call.<code
5a7e0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 65 78 69 74 28 29 3c 2f 63 6f 64 65 3e 20 28 6f 72 20 61 .class="zig">exit()</code>.(or.a
5a800 6e 79 20 6f 74 68 65 72 20 65 78 74 65 72 6e 61 6c 20 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 ny.other.external.function).....
5a820 20 20 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 73 6f 20 74 68 69 73 20 69 ......at.compile-time,.so.this.i
5a840 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 20 48 6f 77 65 76 65 72 2c 20 61 20 3c 63 s.a.compile.error..However,.a.<c
5a860 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
5a880 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 -kw">comptime</span></code>.expr
5a8a0 65 73 73 69 6f 6e 20 64 6f 65 73 20 6d 75 63 68 0a 20 20 20 20 20 20 6d 6f 72 65 20 74 68 61 6e ession.does.much.......more.than
5a8c0 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 .sometimes.cause.a.compile.error
5a8e0 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 69 74 ........</p>.......<p>.......Wit
5a900 68 69 6e 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c hin.a.<code.class="zig"><span.cl
5a920 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f ass="tok-kw">comptime</span></co
5a940 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 de>.expression:.......</p>......
5a960 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6c 6c 20 76 61 72 69 61 62 6c 65 .<ul>...........<li>All.variable
5a980 73 20 61 72 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c s.are.<code.class="zig"><span.cl
5a9a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f ass="tok-kw">comptime</span></co
5a9c0 64 65 3e 20 76 61 72 69 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c de>.variables.</li>...........<l
5a9e0 69 3e 41 6c 6c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c i>All.<code.class="zig"><span.cl
5aa00 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c ass="tok-kw">if</span></code>,.<
5aa20 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
5aa40 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 k-kw">while</span></code>,.<code
5aa60 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
5aa80 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 20 63 ">for</span></code>,.and.<code.c
5aaa0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
5aac0 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 65 switch</span></code>...........e
5aae0 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 6f 6d 70 xpressions.are.evaluated.at.comp
5ab00 69 6c 65 2d 74 69 6d 65 2c 20 6f 72 20 65 6d 69 74 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f ile-time,.or.emit.a.compile.erro
5ab20 72 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 2e 3c 2f 6c 69 3e 0a r.if.this.is.not.possible.</li>.
5ab40 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6c 6c 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 63 ........<li>All.function.calls.c
5ab60 61 75 73 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 74 6f 20 69 6e 74 65 72 70 72 65 74 20 74 ause.the.compiler.to.interpret.t
5ab80 68 65 20 66 75 6e 63 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 65 6d 69 he.function.at.compile-time,.emi
5aba0 74 74 69 6e 67 20 61 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 tting.a...........compile.error.
5abc0 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 72 69 65 73 20 74 6f 20 64 6f 20 73 6f 6d 65 if.the.function.tries.to.do.some
5abe0 74 68 69 6e 67 20 74 68 61 74 20 68 61 73 20 67 6c 6f 62 61 6c 20 72 75 6e 2d 74 69 6d 65 20 73 thing.that.has.global.run-time.s
5ac00 69 64 65 20 65 66 66 65 63 74 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 ide.effects.</li>.......</ul>...
5ac20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 61 20 ....<p>.......This.means.that.a.
5ac40 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 20 63 72 65 61 74 65 20 61 20 66 75 6e 63 74 69 6f 6e programmer.can.create.a.function
5ac60 20 77 68 69 63 68 20 69 73 20 63 61 6c 6c 65 64 20 62 6f 74 68 20 61 74 20 63 6f 6d 70 69 6c 65 .which.is.called.both.at.compile
5ac80 2d 74 69 6d 65 20 61 6e 64 20 72 75 6e 2d 74 69 6d 65 2c 20 77 69 74 68 0a 20 20 20 20 20 20 6e -time.and.run-time,.with.......n
5aca0 6f 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 o.modification.to.the.function.r
5acc0 65 71 75 69 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 equired........</p>.......<p>...
5ace0 20 20 20 20 4c 65 74 27 73 20 6c 6f 6f 6b 20 61 74 20 61 6e 20 65 78 61 6d 70 6c 65 3a 0a 20 20 ....Let's.look.at.an.example:...
5ad00 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ....</p>.......<p.class="file">t
5ad20 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
5ad40 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
5ad60 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 an>.assert.=.<span.class="tok-bu
5ad80 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 iltin">@import</span>(<span.clas
5ada0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;std&quot;</spa
5adc0 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n>).debug.assert;..<span.class="
5ade0 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 tok-kw">fn</span>.<span.class="t
5ae00 6f 6b 2d 66 6e 22 3e 66 69 62 6f 6e 61 63 63 69 3c 2f 73 70 61 6e 3e 28 69 6e 64 65 78 3a 20 3c ok-fn">fibonacci</span>(index:.<
5ae20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">u32</span>
5ae40 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 ).<span.class="tok-type">u32</sp
5ae60 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 an>.{.....<span.class="tok-kw">i
5ae80 66 3c 2f 73 70 61 6e 3e 20 28 69 6e 64 65 78 20 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 f</span>.(index.&lt;.<span.class
5aea0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c ="tok-number">2</span>).<span.cl
5aec0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 69 6e 64 65 78 ass="tok-kw">return</span>.index
5aee0 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 ;.....<span.class="tok-kw">retur
5af00 6e 3c 2f 73 70 61 6e 3e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 3c 73 70 61 6e n</span>.fibonacci(index.-.<span
5af20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 2b 20 .class="tok-number">1</span>).+.
5af40 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 fibonacci(index.-.<span.class="t
5af60 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 ok-number">2</span>);.}..<span.c
5af80 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 lass="tok-kw">test</span>.<span.
5afa0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 69 62 6f 6e 61 63 63 69 26 class="tok-str">&quot;fibonacci&
5afc0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 quot;</span>.{.....<span.class="
5afe0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 65 73 74 20 66 69 62 6f 6e 61 63 63 69 20 61 tok-comment">//.test.fibonacci.a
5b000 74 20 72 75 6e 2d 74 69 6d 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 66 69 62 t.run-time</span>.....assert(fib
5b020 6f 6e 61 63 63 69 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e onacci(<span.class="tok-number">
5b040 37 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 7</span>).==.<span.class="tok-nu
5b060 6d 62 65 72 22 3e 31 33 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 mber">13</span>);......<span.cla
5b080 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 65 73 74 20 66 69 62 6f 6e 61 63 ss="tok-comment">//.test.fibonac
5b0a0 63 69 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 ci.at.compile-time</span>.....<s
5b0c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
5b0e0 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 3c 73 n>.{.........assert(fibonacci(<s
5b100 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 37 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">7</span>)
5b120 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 33 3c .==.<span.class="tok-number">13<
5b140 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 /span>);.....}.}</code></pre><pr
5b160 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 e><code.class="shell">$.zig.test
5b180 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 66 69 62 6f 6e 61 63 .test.zig.1/1.test.&quot;fibonac
5b1a0 63 69 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a ci&quot;...OK.All.tests.passed..
5b1c0 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 </code></pre>........<p>.......I
5b1e0 6d 61 67 69 6e 65 20 69 66 20 77 65 20 68 61 64 20 66 6f 72 67 6f 74 74 65 6e 20 74 68 65 20 62 magine.if.we.had.forgotten.the.b
5b200 61 73 65 20 63 61 73 65 20 6f 66 20 74 68 65 20 72 65 63 75 72 73 69 76 65 20 66 75 6e 63 74 69 ase.case.of.the.recursive.functi
5b220 6f 6e 20 61 6e 64 20 74 72 69 65 64 20 74 6f 20 72 75 6e 20 74 68 65 20 74 65 73 74 73 3a 0a 20 on.and.tried.to.run.the.tests:..
5b240 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e .....</p>.......<p.class="file">
5b260 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 test.zig</p><pre><code.class="zi
5b280 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 g"><span.class="tok-kw">const</s
5b2a0 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 pan>.assert.=.<span.class="tok-b
5b2c0 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 uiltin">@import</span>(<span.cla
5b2e0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 ss="tok-str">&quot;std&quot;</sp
5b300 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d an>).debug.assert;..<span.class=
5b320 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
5b340 74 6f 6b 2d 66 6e 22 3e 66 69 62 6f 6e 61 63 63 69 3c 2f 73 70 61 6e 3e 28 69 6e 64 65 78 3a 20 tok-fn">fibonacci</span>(index:.
5b360 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e <span.class="tok-type">u32</span
5b380 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 >).<span.class="tok-type">u32</s
5b3a0 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d pan>.{.....<span.class="tok-comm
5b3c0 65 6e 74 22 3e 2f 2f 69 66 20 28 69 6e 64 65 78 20 26 6c 74 3b 20 32 29 20 72 65 74 75 72 6e 20 ent">//if.(index.&lt;.2).return.
5b3e0 69 6e 64 65 78 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 index;</span>.....<span.class="t
5b400 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 69 62 6f 6e 61 63 63 69 28 69 ok-kw">return</span>.fibonacci(i
5b420 6e 64 65 78 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e ndex.-.<span.class="tok-number">
5b440 31 3c 2f 73 70 61 6e 3e 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 3c 73 1</span>).+.fibonacci(index.-.<s
5b460 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">2</span>)
5b480 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f ;.}..<span.class="tok-kw">test</
5b4a0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>.<span.class="tok-str">&quo
5b4c0 74 3b 66 69 62 6f 6e 61 63 63 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c t;fibonacci&quot;</span>.{.....<
5b4e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 span.class="tok-kw">comptime</sp
5b500 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 3c an>.{.........assert(fibonacci(<
5b520 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 37 3c 2f 73 70 61 6e 3e span.class="tok-number">7</span>
5b540 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 33 ).==.<span.class="tok-number">13
5b560 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 </span>);.....}.}</code></pre><p
5b580 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
5b5a0 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 t.test.zig.<span.class="t0_1">/h
5b5c0 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 ome/andy/dev/zig/docgen_tmp/test
5b5e0 2e 7a 69 67 3a 35 3a 32 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .zig:5:28:.</span><span.class="t
5b600 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 31_1">error:</span><span.class="
5b620 74 30 5f 31 22 3e 20 6f 70 65 72 61 74 69 6f 6e 20 63 61 75 73 65 64 20 6f 76 65 72 66 6c 6f 77 t0_1">.operation.caused.overflow
5b640 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 </span>.....return.fibonacci(ind
5b660 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a ex.-.1).+.fibonacci(index.-.2);.
5b680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e ...........................<span
5b6a0 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c .class="t32_1">^</span>.<span.cl
5b6c0 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f ass="t0_1">/home/andy/dev/zig/do
5b6e0 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c cgen_tmp/test.zig:5:21:.</span><
5b700 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c span.class="t36_1">note:</span><
5b720 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 span.class="t0_1">.called.from.h
5b740 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 ere</span>.....return.fibonacci(
5b760 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 index.-.1).+.fibonacci(index.-.2
5b780 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 );.....................<span.cla
5b7a0 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ss="t32_1">^</span>.<span.class=
5b7c0 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e "t0_1">/home/andy/dev/zig/docgen
5b7e0 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e _tmp/test.zig:5:21:.</span><span
5b800 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e .class="t36_1">note:</span><span
5b820 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c .class="t0_1">.called.from.here<
5b840 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 /span>.....return.fibonacci(inde
5b860 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 x.-.1).+.fibonacci(index.-.2);..
5b880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...................<span.class="
5b8a0 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f t32_1">^</span>.<span.class="t0_
5b8c0 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 1">/home/andy/dev/zig/docgen_tmp
5b8e0 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 /test.zig:5:21:.</span><span.cla
5b900 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 ss="t36_1">note:</span><span.cla
5b920 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 ss="t0_1">.called.from.here</spa
5b940 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 n>.....return.fibonacci(index.-.
5b960 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 1).+.fibonacci(index.-.2);......
5b980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f ...............<span.class="t32_
5b9a0 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 1">^</span>.<span.class="t0_1">/
5b9c0 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 home/andy/dev/zig/docgen_tmp/tes
5b9e0 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 t.zig:5:21:.</span><span.class="
5ba00 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 t36_1">note:</span><span.class="
5ba20 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 t0_1">.called.from.here</span>..
5ba40 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b ...return.fibonacci(index.-.1).+
5ba60 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 .fibonacci(index.-.2);..........
5ba80 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e ...........<span.class="t32_1">^
5baa0 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 </span>.<span.class="t0_1">/home
5bac0 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 /andy/dev/zig/docgen_tmp/test.zi
5bae0 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f g:5:21:.</span><span.class="t36_
5bb00 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 1">note:</span><span.class="t0_1
5bb20 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 ">.called.from.here</span>.....r
5bb40 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 eturn.fibonacci(index.-.1).+.fib
5bb60 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 onacci(index.-.2);..............
5bb80 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 .......<span.class="t32_1">^</sp
5bba0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 an>.<span.class="t0_1">/home/and
5bbc0 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a y/dev/zig/docgen_tmp/test.zig:5:
5bbe0 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 21:.</span><span.class="t36_1">n
5bc00 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 ote:</span><span.class="t0_1">.c
5bc20 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 alled.from.here</span>.....retur
5bc40 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 n.fibonacci(index.-.1).+.fibonac
5bc60 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ci(index.-.2);..................
5bc80 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a ...<span.class="t32_1">^</span>.
5bca0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 <span.class="t0_1">/home/andy/de
5bcc0 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 v/zig/docgen_tmp/test.zig:5:21:.
5bce0 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a </span><span.class="t36_1">note:
5bd00 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 </span><span.class="t0_1">.calle
5bd20 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 d.from.here</span>.....return.fi
5bd40 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 bonacci(index.-.1).+.fibonacci(i
5bd60 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ndex.-.2);.....................<
5bd80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 span.class="t32_1">^</span>.<spa
5bda0 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 n.class="t0_1">/home/andy/dev/zi
5bdc0 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 32 35 3a 20 3c 2f 73 g/docgen_tmp/test.zig:10:25:.</s
5bde0 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 pan><span.class="t36_1">note:</s
5be00 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 pan><span.class="t0_1">.called.f
5be20 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 rom.here</span>.........assert(f
5be40 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ibonacci(7).==.13);.............
5be60 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e ............<span.class="t32_1">
5be80 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d ^</span>.<span.class="t0_1">/hom
5bea0 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a e/andy/dev/zig/docgen_tmp/test.z
5bec0 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 ig:5:21:.</span><span.class="t36
5bee0 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f _1">note:</span><span.class="t0_
5bf00 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 1">.referenced.here</span>.....r
5bf20 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 eturn.fibonacci(index.-.1).+.fib
5bf40 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 onacci(index.-.2);..............
5bf60 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 .......<span.class="t32_1">^</sp
5bf80 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 an>.<span.class="t0_1">/home/and
5bfa0 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 y/dev/zig/docgen_tmp/test.zig:10
5bfc0 3a 32 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e :25:.</span><span.class="t36_1">
5bfe0 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 note:</span><span.class="t0_1">.
5c000 72 65 66 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 61 referenced.here</span>.........a
5c020 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 20 20 20 20 20 ssert(fibonacci(7).==.13);......
5c040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...................<span.class="
5c060 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 t32_1">^</span>.</code></pre>...
5c080 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 63 6f 6d 70 69 6c 65 72 20 70 72 6f 64 .....<p>.......The.compiler.prod
5c0a0 75 63 65 73 20 61 6e 20 65 72 72 6f 72 20 77 68 69 63 68 20 69 73 20 61 20 73 74 61 63 6b 20 74 uces.an.error.which.is.a.stack.t
5c0c0 72 61 63 65 20 66 72 6f 6d 20 74 72 79 69 6e 67 20 74 6f 20 65 76 61 6c 75 61 74 65 20 74 68 65 race.from.trying.to.evaluate.the
5c0e0 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e .......function.at.compile-time.
5c100 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c 75 63 6b .......</p>.......<p>.......Luck
5c120 69 6c 79 2c 20 77 65 20 75 73 65 64 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 ily,.we.used.an.unsigned.integer
5c140 2c 20 61 6e 64 20 73 6f 20 77 68 65 6e 20 77 65 20 74 72 69 65 64 20 74 6f 20 73 75 62 74 72 61 ,.and.so.when.we.tried.to.subtra
5c160 63 74 20 31 20 66 72 6f 6d 20 30 2c 20 69 74 20 74 72 69 67 67 65 72 65 64 0a 20 20 20 20 20 20 ct.1.from.0,.it.triggered.......
5c180 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2c 20 77 68 69 63 68 20 69 73 20 61 6c 77 undefined.behavior,.which.is.alw
5c1a0 61 79 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 74 68 65 20 63 6f 6d 70 69 ays.a.compile.error.if.the.compi
5c1c0 6c 65 72 20 6b 6e 6f 77 73 20 69 74 20 68 61 70 70 65 6e 65 64 2e 0a 20 20 20 20 20 20 42 75 74 ler.knows.it.happened........But
5c1e0 20 77 68 61 74 20 77 6f 75 6c 64 20 68 61 76 65 20 68 61 70 70 65 6e 65 64 20 69 66 20 77 65 20 .what.would.have.happened.if.we.
5c200 75 73 65 64 20 61 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 3f 0a 20 20 20 20 20 20 3c 2f 70 used.a.signed.integer?.......</p
5c220 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 >.......<p.class="file">test.zig
5c240 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e </p><pre><code.class="zig"><span
5c260 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 .class="tok-kw">const</span>.ass
5c280 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e ert.=.<span.class="tok-builtin">
5c2a0 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d @import</span>(<span.class="tok-
5c2c0 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 str">&quot;std&quot;</span>).deb
5c2e0 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ug.assert;..<span.class="tok-kw"
5c300 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e >fn</span>.<span.class="tok-fn">
5c320 66 69 62 6f 6e 61 63 63 69 3c 2f 73 70 61 6e 3e 28 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 6c fibonacci</span>(index:.<span.cl
5c340 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e ass="tok-type">i32</span>).<span
5c360 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 .class="tok-type">i32</span>.{..
5c380 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 69 ...<span.class="tok-comment">//i
5c3a0 66 20 28 69 6e 64 65 78 20 26 6c 74 3b 20 32 29 20 72 65 74 75 72 6e 20 69 6e 64 65 78 3b 3c 2f f.(index.&lt;.2).return.index;</
5c3c0 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 span>.....<span.class="tok-kw">r
5c3e0 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 3c eturn</span>.fibonacci(index.-.<
5c400 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e span.class="tok-number">1</span>
5c420 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 ).+.fibonacci(index.-.<span.clas
5c440 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 s="tok-number">2</span>);.}..<sp
5c460 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 an.class="tok-kw">test</span>.<s
5c480 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 69 62 6f 6e 61 pan.class="tok-str">&quot;fibona
5c4a0 63 63 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 cci&quot;</span>.{.....<span.cla
5c4c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 ss="tok-kw">comptime</span>.{...
5c4e0 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 3c 73 70 61 6e 20 63 6c 61 ......assert(fibonacci(<span.cla
5c500 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 37 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 ss="tok-number">7</span>).==.<sp
5c520 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 33 3c 2f 73 70 61 6e 3e 29 an.class="tok-number">13</span>)
5c540 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 ;.....}.}</code></pre><pre><code
5c560 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a .class="shell">$.zig.test.test.z
5c580 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 ig.<span.class="t0_1">/home/andy
5c5a0 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 /dev/zig/docgen_tmp/test.zig:5:2
5c5c0 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 1:.</span><span.class="t31_1">er
5c5e0 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 65 ror:</span><span.class="t0_1">.e
5c600 76 61 6c 75 61 74 69 6f 6e 20 65 78 63 65 65 64 65 64 20 31 30 30 30 20 62 61 63 6b 77 61 72 64 valuation.exceeded.1000.backward
5c620 73 20 62 72 61 6e 63 68 65 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 s.branches</span>.....return.fib
5c640 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e onacci(index.-.1).+.fibonacci(in
5c660 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 dex.-.2);.....................<s
5c680 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e pan.class="t32_1">^</span>.<span
5c6a0 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 .class="t0_1">/home/andy/dev/zig
5c6c0 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 /docgen_tmp/test.zig:5:21:.</spa
5c6e0 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 n><span.class="t36_1">note:</spa
5c700 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f n><span.class="t0_1">.called.fro
5c720 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 m.here</span>.....return.fibonac
5c740 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 ci(index.-.1).+.fibonacci(index.
5c760 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 -.2);.....................<span.
5c780 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 class="t32_1">^</span>.<span.cla
5c7a0 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 ss="t0_1">/home/andy/dev/zig/doc
5c7c0 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 gen_tmp/test.zig:5:21:.</span><s
5c7e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 pan.class="t36_1">note:</span><s
5c800 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 pan.class="t0_1">.called.from.he
5c820 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 re</span>.....return.fibonacci(i
5c840 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 ndex.-.1).+.fibonacci(index.-.2)
5c860 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ;.....................<span.clas
5c880 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 s="t32_1">^</span>.<span.class="
5c8a0 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f t0_1">/home/andy/dev/zig/docgen_
5c8c0 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 tmp/test.zig:5:21:.</span><span.
5c8e0 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 class="t36_1">note:</span><span.
5c900 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f class="t0_1">.called.from.here</
5c920 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 span>.....return.fibonacci(index
5c940 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 .-.1).+.fibonacci(index.-.2);...
5c960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ..................<span.class="t
5c980 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 32_1">^</span>.<span.class="t0_1
5c9a0 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f ">/home/andy/dev/zig/docgen_tmp/
5c9c0 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 test.zig:5:21:.</span><span.clas
5c9e0 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 s="t36_1">note:</span><span.clas
5ca00 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e s="t0_1">.called.from.here</span
5ca20 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 >.....return.fibonacci(index.-.1
5ca40 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 ).+.fibonacci(index.-.2);.......
5ca60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 ..............<span.class="t32_1
5ca80 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 ">^</span>.<span.class="t0_1">/h
5caa0 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 ome/andy/dev/zig/docgen_tmp/test
5cac0 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .zig:5:21:.</span><span.class="t
5cae0 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 36_1">note:</span><span.class="t
5cb00 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 0_1">.called.from.here</span>...
5cb20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 ..return.fibonacci(index.-.1).+.
5cb40 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 fibonacci(index.-.2);...........
5cb60 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ..........<span.class="t32_1">^<
5cb80 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f /span>.<span.class="t0_1">/home/
5cba0 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 andy/dev/zig/docgen_tmp/test.zig
5cbc0 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 :5:21:.</span><span.class="t36_1
5cbe0 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 ">note:</span><span.class="t0_1"
5cc00 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 >.called.from.here</span>.....re
5cc20 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f turn.fibonacci(index.-.1).+.fibo
5cc40 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nacci(index.-.2);...............
5cc60 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 ......<span.class="t32_1">^</spa
5cc80 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 n>.<span.class="t0_1">/home/andy
5cca0 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 /dev/zig/docgen_tmp/test.zig:5:2
5ccc0 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 1:.</span><span.class="t36_1">no
5cce0 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 te:</span><span.class="t0_1">.ca
5cd00 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e lled.from.here</span>.....return
5cd20 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 .fibonacci(index.-.1).+.fibonacc
5cd40 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 i(index.-.2);...................
5cd60 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
5cd80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 span.class="t0_1">/home/andy/dev
5cda0 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c /zig/docgen_tmp/test.zig:5:21:.<
5cdc0 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c /span><span.class="t36_1">note:<
5cde0 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 /span><span.class="t0_1">.called
5ce00 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 .from.here</span>.....return.fib
5ce20 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e onacci(index.-.1).+.fibonacci(in
5ce40 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 dex.-.2);.....................<s
5ce60 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e pan.class="t32_1">^</span>.<span
5ce80 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 .class="t0_1">/home/andy/dev/zig
5cea0 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 /docgen_tmp/test.zig:5:21:.</spa
5cec0 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 n><span.class="t36_1">note:</spa
5cee0 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f n><span.class="t0_1">.called.fro
5cf00 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 m.here</span>.....return.fibonac
5cf20 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 ci(index.-.1).+.fibonacci(index.
5cf40 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 -.2);.....................<span.
5cf60 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 class="t32_1">^</span>.<span.cla
5cf80 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 ss="t0_1">/home/andy/dev/zig/doc
5cfa0 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 gen_tmp/test.zig:5:21:.</span><s
5cfc0 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 pan.class="t36_1">note:</span><s
5cfe0 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 pan.class="t0_1">.called.from.he
5d000 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 re</span>.....return.fibonacci(i
5d020 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 ndex.-.1).+.fibonacci(index.-.2)
5d040 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ;.....................<span.clas
5d060 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 s="t32_1">^</span>.<span.class="
5d080 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f t0_1">/home/andy/dev/zig/docgen_
5d0a0 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 tmp/test.zig:5:21:.</span><span.
5d0c0 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 class="t36_1">note:</span><span.
5d0e0 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f class="t0_1">.called.from.here</
5d100 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 span>.....return.fibonacci(index
5d120 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 .-.1).+.fibonacci(index.-.2);...
5d140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ..................<span.class="t
5d160 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 32_1">^</span>.<span.class="t0_1
5d180 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f ">/home/andy/dev/zig/docgen_tmp/
5d1a0 74 65 73 74 2e 7a 69 67 3a 31 30 3a 32 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 test.zig:10:25:.</span><span.cla
5d1c0 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 ss="t36_1">note:</span><span.cla
5d1e0 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e ss="t0_1">.referenced.here</span
5d200 3e 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d >.........assert(fibonacci(7).==
5d220 20 31 33 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 .13);.........................<s
5d240 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 pan.class="t32_1">^</span>.</cod
5d260 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 63 6f e></pre>........<p>.......The.co
5d280 6d 70 69 6c 65 72 20 6e 6f 74 69 63 65 64 20 74 68 61 74 20 65 76 61 6c 75 61 74 69 6e 67 20 74 mpiler.noticed.that.evaluating.t
5d2a0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 74 6f 6f his.function.at.compile-time.too
5d2c0 6b 20 61 20 6c 6f 6e 67 20 74 69 6d 65 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 68 75 73 20 65 6d k.a.long.time,.......and.thus.em
5d2e0 69 74 74 65 64 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 61 6e 64 20 67 61 76 65 20 75 itted.a.compile.error.and.gave.u
5d300 70 2e 20 49 66 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 77 61 6e 74 73 20 74 6f 20 69 6e p..If.the.programmer.wants.to.in
5d320 63 72 65 61 73 65 0a 20 20 20 20 20 20 74 68 65 20 62 75 64 67 65 74 20 66 6f 72 20 63 6f 6d 70 crease.......the.budget.for.comp
5d340 69 6c 65 2d 74 69 6d 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 2c 20 74 68 65 79 20 63 61 6e 20 75 ile-time.computation,.they.can.u
5d360 73 65 20 61 20 62 75 69 6c 74 2d 69 6e 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 0a 20 20 se.a.built-in.function.called...
5d380 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 ....<a.href="#setEvalBranchQuota
5d3a0 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 3c 2f 61 3e 20 74 6f 20 63 68 61 ">@setEvalBranchQuota</a>.to.cha
5d3c0 6e 67 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 6e 75 6d 62 65 72 20 31 30 30 30 20 74 6f 20 73 nge.the.default.number.1000.to.s
5d3e0 6f 6d 65 74 68 69 6e 67 20 65 6c 73 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 omething.else........</p>.......
5d400 3c 70 3e 0a 20 20 20 20 20 20 57 68 61 74 20 69 66 20 77 65 20 66 69 78 20 74 68 65 20 62 61 73 <p>.......What.if.we.fix.the.bas
5d420 65 20 63 61 73 65 2c 20 62 75 74 20 70 75 74 20 74 68 65 20 77 72 6f 6e 67 20 76 61 6c 75 65 20 e.case,.but.put.the.wrong.value.
5d440 69 6e 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 73 73 65 72 74 3c in.the.<code.class="zig">assert<
5d460 2f 63 6f 64 65 3e 20 6c 69 6e 65 3f 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 /code>.line?.......</p>.......<p
5d480 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
5d4a0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
5d4c0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 k-kw">const</span>.assert.=.<spa
5d4e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 n.class="tok-builtin">@import</s
5d500 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
5d520 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b ;std&quot;</span>).debug.assert;
5d540 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e ..<span.class="tok-kw">fn</span>
5d560 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 69 62 6f 6e 61 63 63 69 3c .<span.class="tok-fn">fibonacci<
5d580 2f 73 70 61 6e 3e 28 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 /span>(index:.<span.class="tok-t
5d5a0 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ype">i32</span>).<span.class="to
5d5c0 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 k-type">i32</span>.{.....<span.c
5d5e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 69 6e 64 65 78 20 26 lass="tok-kw">if</span>.(index.&
5d600 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f lt;.<span.class="tok-number">2</
5d620 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 span>).<span.class="tok-kw">retu
5d640 72 6e 3c 2f 73 70 61 6e 3e 20 69 6e 64 65 78 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 rn</span>.index;.....<span.class
5d660 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 69 62 6f 6e 61 63 63 ="tok-kw">return</span>.fibonacc
5d680 69 28 69 6e 64 65 78 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 i(index.-.<span.class="tok-numbe
5d6a0 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d r">1</span>).+.fibonacci(index.-
5d6c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 .<span.class="tok-number">2</spa
5d6e0 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 n>);.}..<span.class="tok-kw">tes
5d700 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>.<span.class="tok-str">&
5d720 71 75 6f 74 3b 66 69 62 6f 6e 61 63 63 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 quot;fibonacci&quot;</span>.{...
5d740 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c ..<span.class="tok-kw">comptime<
5d760 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 /span>.{.........assert(fibonacc
5d780 69 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 37 3c 2f 73 70 i(<span.class="tok-number">7</sp
5d7a0 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 an>).==.<span.class="tok-number"
5d7c0 3e 39 39 39 39 39 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f >99999</span>);.....}.}</code></
5d7e0 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a pre><pre><code.class="shell">$.z
5d800 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 ig.test.test.zig.<span.class="t0
5d820 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 64 _1">/home/andy/dev/zig/lib/std/d
5d840 65 62 75 67 2e 7a 69 67 3a 32 30 36 3a 31 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c ebug.zig:206:14:.</span><span.cl
5d860 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 ass="t31_1">error:</span><span.c
5d880 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 75 6e 61 62 6c 65 20 74 6f 20 65 76 61 6c 75 61 74 65 20 lass="t0_1">.unable.to.evaluate.
5d8a0 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 69 constant.expression</span>.....i
5d8c0 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 20 2f 2f 20 61 73 73 65 72 74 69 6f f.(!ok).unreachable;.//.assertio
5d8e0 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 n.failure..............<span.cla
5d900 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ss="t32_1">^</span>.<span.class=
5d920 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e "t0_1">/home/andy/dev/zig/docgen
5d940 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 31 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 _tmp/test.zig:10:15:.</span><spa
5d960 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 n.class="t36_1">note:</span><spa
5d980 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 n.class="t0_1">.called.from.here
5d9a0 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 </span>.........assert(fibonacci
5d9c0 28 37 29 20 3d 3d 20 39 39 39 39 39 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 (7).==.99999);...............<sp
5d9e0 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 an.class="t32_1">^</span>.<span.
5da00 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f class="t0_1">/home/andy/dev/zig/
5da20 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 31 35 3a 20 3c 2f 73 70 61 docgen_tmp/test.zig:10:15:.</spa
5da40 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 n><span.class="t36_1">note:</spa
5da60 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 n><span.class="t0_1">.referenced
5da80 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f .here</span>.........assert(fibo
5daa0 6e 61 63 63 69 28 37 29 20 3d 3d 20 39 39 39 39 39 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 nacci(7).==.99999);.............
5dac0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
5dae0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 /code></pre>........<p>.......Wh
5db00 61 74 20 68 61 70 70 65 6e 65 64 20 69 73 20 5a 69 67 20 73 74 61 72 74 65 64 20 69 6e 74 65 72 at.happened.is.Zig.started.inter
5db20 70 72 65 74 69 6e 67 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 73 preting.the.<code.class="zig">as
5db40 73 65 72 74 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 20 20 sert</code>.function.with.the...
5db60 20 20 20 20 20 20 20 20 70 61 72 61 6d 65 74 65 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a ........parameter.<code.class="z
5db80 69 67 22 3e 6f 6b 3c 2f 63 6f 64 65 3e 20 73 65 74 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 ig">ok</code>.set.to.<code.class
5dba0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 ="zig"><span.class="tok-null">fa
5dbc0 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 57 68 65 6e 20 74 68 65 20 69 6e 74 65 lse</span></code>..When.the.inte
5dbe0 72 70 72 65 74 65 72 20 68 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 rpreter.hit...................<c
5dc00 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
5dc20 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 -kw">unreachable</span></code>.i
5dc40 74 20 65 6d 69 74 74 65 64 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2c 20 62 65 63 61 75 t.emitted.a.compile.error,.becau
5dc60 73 65 20 72 65 61 63 68 69 6e 67 20 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 20 20 63 6f se.reaching.unreachable.......co
5dc80 64 65 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2c 20 61 6e 64 20 75 6e de.is.undefined.behavior,.and.un
5dca0 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 63 61 75 73 65 73 20 61 20 63 6f 6d 70 69 6c defined.behavior.causes.a.compil
5dcc0 65 20 65 72 72 6f 72 20 69 66 20 69 74 20 69 73 20 64 65 74 65 63 74 65 64 0a 20 20 20 20 20 20 e.error.if.it.is.detected.......
5dce0 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 at.compile-time........</p>.....
5dd00 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 73 63 6f 70 65 ...<p>.......In.the.global.scope
5dd20 20 28 6f 75 74 73 69 64 65 20 6f 66 20 61 6e 79 20 66 75 6e 63 74 69 6f 6e 29 2c 20 61 6c 6c 20 .(outside.of.any.function),.all.
5dd40 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 69 6d 70 6c 69 63 69 74 6c 79 0a 20 20 20 20 20 expressions.are.implicitly......
5dd60 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .<code.class="zig"><span.class="
5dd80 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 tok-kw">comptime</span></code>.e
5dda0 78 70 72 65 73 73 69 6f 6e 73 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 20 63 xpressions..This.means.that.we.c
5ddc0 61 6e 20 75 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 20 20 69 6e 69 74 69 61 an.use.functions.to.......initia
5dde0 6c 69 7a 65 20 63 6f 6d 70 6c 65 78 20 73 74 61 74 69 63 20 64 61 74 61 2e 20 46 6f 72 20 65 78 lize.complex.static.data..For.ex
5de00 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 ample:.......</p>.......<p.class
5de20 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ="file">test.zig</p><pre><code.c
5de40 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
5de60 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 69 72 73 74 5f 32 35 5f 70 72 69 6d 65 73 20 3d 20 66 const</span>.first_25_primes.=.f
5de80 69 72 73 74 4e 50 72 69 6d 65 73 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d irstNPrimes(<span.class="tok-num
5dea0 62 65 72 22 3e 32 35 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ber">25</span>);.<span.class="to
5dec0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 75 6d 5f 6f 66 5f 66 69 72 73 74 5f k-kw">const</span>.sum_of_first_
5dee0 32 35 5f 70 72 69 6d 65 73 20 3d 20 73 75 6d 28 66 69 72 73 74 5f 32 35 5f 70 72 69 6d 65 73 29 25_primes.=.sum(first_25_primes)
5df00 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e ;..<span.class="tok-kw">fn</span
5df20 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 69 72 73 74 4e 50 72 69 >.<span.class="tok-fn">firstNPri
5df40 6d 65 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e mes</span>(<span.class="tok-kw">
5df60 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 comptime</span>.n:.<span.class="
5df80 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 5b 6e 5d 3c 73 70 61 6e tok-type">usize</span>).[n]<span
5dfa0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 .class="tok-type">i32</span>.{..
5dfc0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
5dfe0 6e 3e 20 70 72 69 6d 65 5f 6c 69 73 74 3a 20 5b 6e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n>.prime_list:.[n]<span.class="t
5e000 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ok-type">i32</span>.=.<span.clas
5e020 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 20 s="tok-null">undefined</span>;..
5e040 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 ...<span.class="tok-kw">var</spa
5e060 6e 3e 20 6e 65 78 74 5f 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n>.next_index:.<span.class="tok-
5e080 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 type">usize</span>.=.<span.class
5e0a0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 ="tok-number">0</span>;.....<spa
5e0c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 74 65 73 74 n.class="tok-kw">var</span>.test
5e0e0 5f 6e 75 6d 62 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e _number:.<span.class="tok-type">
5e100 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 i32</span>.=.<span.class="tok-nu
5e120 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d mber">2</span>;.....<span.class=
5e140 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 6e 65 78 74 5f 69 6e 64 65 "tok-kw">while</span>.(next_inde
5e160 78 20 26 6c 74 3b 20 70 72 69 6d 65 5f 6c 69 73 74 2e 6c 65 6e 29 20 3a 20 28 74 65 73 74 5f 6e x.&lt;.prime_list.len).:.(test_n
5e180 75 6d 62 65 72 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 umber.+=.<span.class="tok-number
5e1a0 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ">1</span>).{.........<span.clas
5e1c0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 74 65 73 74 5f 70 72 69 6d 65 s="tok-kw">var</span>.test_prime
5e1e0 5f 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 _index:.<span.class="tok-type">u
5e200 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e size</span>.=.<span.class="tok-n
5e220 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 umber">0</span>;.........<span.c
5e240 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 73 5f 70 72 69 6d lass="tok-kw">var</span>.is_prim
5e260 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c e.=.<span.class="tok-null">true<
5e280 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /span>;.........<span.class="tok
5e2a0 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 74 65 73 74 5f 70 72 69 6d 65 5f 69 6e -kw">while</span>.(test_prime_in
5e2c0 64 65 78 20 26 6c 74 3b 20 6e 65 78 74 5f 69 6e 64 65 78 29 20 3a 20 28 74 65 73 74 5f 70 72 69 dex.&lt;.next_index).:.(test_pri
5e2e0 6d 65 5f 69 6e 64 65 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d me_index.+=.<span.class="tok-num
5e300 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 ber">1</span>).{.............<sp
5e320 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 74 65 73 an.class="tok-kw">if</span>.(tes
5e340 74 5f 6e 75 6d 62 65 72 20 25 20 70 72 69 6d 65 5f 6c 69 73 74 5b 74 65 73 74 5f 70 72 69 6d 65 t_number.%.prime_list[test_prime
5e360 5f 69 6e 64 65 78 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 _index].==.<span.class="tok-numb
5e380 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er">0</span>).{.................
5e3a0 69 73 5f 70 72 69 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c is_prime.=.<span.class="tok-null
5e3c0 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ">false</span>;.................
5e3e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e <span.class="tok-kw">break</span
5e400 3e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 >;.............}.........}......
5e420 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e ...<span.class="tok-kw">if</span
5e440 3e 20 28 69 73 5f 70 72 69 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6d 65 >.(is_prime).{.............prime
5e460 5f 6c 69 73 74 5b 6e 65 78 74 5f 69 6e 64 65 78 5d 20 3d 20 74 65 73 74 5f 6e 75 6d 62 65 72 3b _list[next_index].=.test_number;
5e480 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 5f 69 6e 64 65 78 20 2b 3d 20 3c 73 70 61 6e .............next_index.+=.<span
5e4a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">1</span>;...
5e4c0 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ......}.....}.....<span.class="t
5e4e0 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 70 72 69 6d 65 5f 6c 69 73 74 3b ok-kw">return</span>.prime_list;
5e500 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 .}..<span.class="tok-kw">fn</spa
5e520 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 75 6d 3c 2f 73 70 61 n>.<span.class="tok-fn">sum</spa
5e540 6e 3e 28 6e 75 6d 62 65 72 73 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b n>(numbers:.[]<span.class="tok-k
5e560 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b w">const</span>.<span.class="tok
5e580 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -type">i32</span>).<span.class="
5e5a0 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e tok-type">i32</span>.{.....<span
5e5c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c .class="tok-kw">var</span>.resul
5e5e0 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 t:.<span.class="tok-type">i32</s
5e600 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e pan>.=.<span.class="tok-number">
5e620 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 0</span>;.....<span.class="tok-k
5e640 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 73 29 20 7c 78 7c 20 7b 0a 20 20 w">for</span>.(numbers).|x|.{...
5e660 20 20 20 20 20 20 72 65 73 75 6c 74 20 2b 3d 20 78 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 ......result.+=.x;.....}.....<sp
5e680 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 an.class="tok-kw">return</span>.
5e6a0 72 65 73 75 6c 74 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e result;.}..<span.class="tok-kw">
5e6c0 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 test</span>.<span.class="tok-str
5e6e0 22 3e 26 71 75 6f 74 3b 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 73 26 71 75 6f 74 3b 3c 2f 73 ">&quot;variable.values&quot;</s
5e700 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c pan>.{.....<span.class="tok-buil
5e720 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d tin">@import</span>(<span.class=
5e740 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e "tok-str">&quot;std&quot;</span>
5e760 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 73 75 6d 5f 6f 66 5f 66 69 72 73 74 5f 32 35 5f 70 ).debug.assert(sum_of_first_25_p
5e780 72 69 6d 65 73 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 rimes.==.<span.class="tok-number
5e7a0 22 3e 31 30 36 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 ">1060</span>);.}</code></pre><p
5e7c0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
5e7e0 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 76 61 72 69 61 62 t.test.zig.1/1.test.&quot;variab
5e800 6c 65 20 76 61 6c 75 65 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 le.values&quot;...OK.All.tests.p
5e820 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a assed..</code></pre>........<p>.
5e840 20 20 20 20 20 20 57 68 65 6e 20 77 65 20 63 6f 6d 70 69 6c 65 20 74 68 69 73 20 70 72 6f 67 72 ......When.we.compile.this.progr
5e860 61 6d 2c 20 5a 69 67 20 67 65 6e 65 72 61 74 65 73 20 74 68 65 20 63 6f 6e 73 74 61 6e 74 73 0a am,.Zig.generates.the.constants.
5e880 20 20 20 20 20 20 77 69 74 68 20 74 68 65 20 61 6e 73 77 65 72 20 70 72 65 2d 63 6f 6d 70 75 74 ......with.the.answer.pre-comput
5e8a0 65 64 2e 20 48 65 72 65 20 61 72 65 20 74 68 65 20 6c 69 6e 65 73 20 66 72 6f 6d 20 74 68 65 20 ed..Here.are.the.lines.from.the.
5e8c0 67 65 6e 65 72 61 74 65 64 20 4c 4c 56 4d 20 49 52 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 generated.LLVM.IR:.......</p>...
5e8e0 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 6c 6c 76 6d 22 3e 40 30 20 3d ....<pre><code.class="llvm">@0.=
5e900 20 69 6e 74 65 72 6e 61 6c 20 75 6e 6e 61 6d 65 64 5f 61 64 64 72 20 63 6f 6e 73 74 61 6e 74 20 .internal.unnamed_addr.constant.
5e920 5b 32 35 20 78 20 69 33 32 5d 20 5b 69 33 32 20 32 2c 20 69 33 32 20 33 2c 20 69 33 32 20 35 2c [25.x.i32].[i32.2,.i32.3,.i32.5,
5e940 20 69 33 32 20 37 2c 20 69 33 32 20 31 31 2c 20 69 33 32 20 31 33 2c 20 69 33 32 20 31 37 2c 20 .i32.7,.i32.11,.i32.13,.i32.17,.
5e960 69 33 32 20 31 39 2c 20 69 33 32 20 32 33 2c 20 69 33 32 20 32 39 2c 20 69 33 32 20 33 31 2c 20 i32.19,.i32.23,.i32.29,.i32.31,.
5e980 69 33 32 20 33 37 2c 20 69 33 32 20 34 31 2c 20 69 33 32 20 34 33 2c 20 69 33 32 20 34 37 2c 20 i32.37,.i32.41,.i32.43,.i32.47,.
5e9a0 69 33 32 20 35 33 2c 20 69 33 32 20 35 39 2c 20 69 33 32 20 36 31 2c 20 69 33 32 20 36 37 2c 20 i32.53,.i32.59,.i32.61,.i32.67,.
5e9c0 69 33 32 20 37 31 2c 20 69 33 32 20 37 33 2c 20 69 33 32 20 37 39 2c 20 69 33 32 20 38 33 2c 20 i32.71,.i32.73,.i32.79,.i32.83,.
5e9e0 69 33 32 20 38 39 2c 20 69 33 32 20 39 37 5d 0a 40 31 20 3d 20 69 6e 74 65 72 6e 61 6c 20 75 6e i32.89,.i32.97].@1.=.internal.un
5ea00 6e 61 6d 65 64 5f 61 64 64 72 20 63 6f 6e 73 74 61 6e 74 20 69 33 32 20 31 30 36 30 3c 2f 63 6f named_addr.constant.i32.1060</co
5ea20 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 de></pre>.......<p>.......Note.t
5ea40 68 61 74 20 77 65 20 64 69 64 20 6e 6f 74 20 68 61 76 65 20 74 6f 20 64 6f 20 61 6e 79 74 68 69 hat.we.did.not.have.to.do.anythi
5ea60 6e 67 20 73 70 65 63 69 61 6c 20 77 69 74 68 20 74 68 65 20 73 79 6e 74 61 78 20 6f 66 20 74 68 ng.special.with.the.syntax.of.th
5ea80 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20 20 20 20 ese.functions..For.example,.....
5eaa0 20 20 77 65 20 63 6f 75 6c 64 20 63 61 6c 6c 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d ..we.could.call.the.<code.class=
5eac0 22 7a 69 67 22 3e 73 75 6d 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 61 73 20 69 73 20 "zig">sum</code>.function.as.is.
5eae0 77 69 74 68 20 61 20 73 6c 69 63 65 20 6f 66 20 6e 75 6d 62 65 72 73 20 77 68 6f 73 65 20 6c 65 with.a.slice.of.numbers.whose.le
5eb00 6e 67 74 68 20 61 6e 64 20 76 61 6c 75 65 73 20 77 65 72 65 0a 20 20 20 20 20 20 6f 6e 6c 79 20 ngth.and.values.were.......only.
5eb20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 known.at.run-time........</p>...
5eb40 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 47 65 6e 65 72 69 ..................<h2.id="Generi
5eb60 63 2d 44 61 74 61 2d 53 74 72 75 63 74 75 72 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 c-Data-Structures"><a.href="#toc
5eb80 2d 47 65 6e 65 72 69 63 2d 44 61 74 61 2d 53 74 72 75 63 74 75 72 65 73 22 3e 47 65 6e 65 72 69 -Generic-Data-Structures">Generi
5eba0 63 20 44 61 74 61 20 53 74 72 75 63 74 75 72 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 c.Data.Structures</a>.<a.class="
5ebc0 68 64 72 22 20 68 72 65 66 3d 22 23 47 65 6e 65 72 69 63 2d 44 61 74 61 2d 53 74 72 75 63 74 75 hdr".href="#Generic-Data-Structu
5ebe0 72 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 res">..</a></h2>........<p>.....
5ec00 20 20 5a 69 67 20 75 73 65 73 20 74 68 65 73 65 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 74 6f ..Zig.uses.these.capabilities.to
5ec20 20 69 6d 70 6c 65 6d 65 6e 74 20 67 65 6e 65 72 69 63 20 64 61 74 61 20 73 74 72 75 63 74 75 72 .implement.generic.data.structur
5ec40 65 73 20 77 69 74 68 6f 75 74 20 69 6e 74 72 6f 64 75 63 69 6e 67 20 61 6e 79 0a 20 20 20 20 20 es.without.introducing.any......
5ec60 20 73 70 65 63 69 61 6c 2d 63 61 73 65 20 73 79 6e 74 61 78 2e 20 49 66 20 79 6f 75 20 66 6f 6c .special-case.syntax..If.you.fol
5ec80 6c 6f 77 65 64 20 61 6c 6f 6e 67 20 73 6f 20 66 61 72 2c 20 79 6f 75 20 6d 61 79 20 61 6c 72 65 lowed.along.so.far,.you.may.alre
5eca0 61 64 79 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 20 63 72 65 61 74 65 20 61 0a 20 20 20 20 20 20 67 ady.know.how.to.create.a.......g
5ecc0 65 6e 65 72 69 63 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 2e 0a 20 20 20 20 20 20 3c 2f 70 eneric.data.structure........</p
5ece0 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 20 69 73 20 61 6e 20 65 78 61 >.......<p>.......Here.is.an.exa
5ed00 6d 70 6c 65 20 6f 66 20 61 20 67 65 6e 65 72 69 63 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a mple.of.a.generic.<code.class="z
5ed20 69 67 22 3e 4c 69 73 74 3c 2f 63 6f 64 65 3e 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 2c 20 ig">List</code>.data.structure,.
5ed40 74 68 61 74 20 77 65 20 77 69 6c 6c 20 69 6e 73 74 61 6e 74 69 61 74 65 20 77 69 74 68 0a 20 20 that.we.will.instantiate.with...
5ed60 20 20 20 20 20 20 20 20 74 68 65 20 74 79 70 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ........the.type.<code.class="zi
5ed80 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 g"><span.class="tok-type">i32</s
5eda0 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 49 6e 20 5a 69 67 20 77 65 20 72 65 66 65 72 20 74 6f 20 pan></code>..In.Zig.we.refer.to.
5edc0 74 68 65 20 74 79 70 65 20 61 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 4c 69 the.type.as.<code.class="zig">Li
5ede0 73 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 st(<span.class="tok-type">i32</s
5ee00 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c pan>)</code>........</p>.......<
5ee20 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
5ee40 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
5ee60 3d 22 74 6f 6b 2d 66 6e 22 3e 4c 69 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 ="tok-fn">List</span>(<span.clas
5ee80 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 s="tok-kw">comptime</span>.T:.<s
5eea0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e pan.class="tok-type">type</span>
5eec0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 ).<span.class="tok-type">type</s
5eee0 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
5ef00 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b return</span>.<span.class="tok-k
5ef20 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 69 74 65 6d 73 w">struct</span>.{.........items
5ef40 3a 20 5b 5d 54 2c 0a 20 20 20 20 20 20 20 20 6c 65 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d :.[]T,.........len:.<span.class=
5ef60 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a "tok-type">usize</span>,.....};.
5ef80 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 }</code></pre>.......<p>.......T
5efa0 68 61 74 27 73 20 69 74 2e 20 49 74 27 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 hat's.it..It's.a.function.that.r
5efc0 65 74 75 72 6e 73 20 61 6e 20 61 6e 6f 6e 79 6d 6f 75 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d eturns.an.anonymous.<code.class=
5efe0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 "zig"><span.class="tok-kw">struc
5f000 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 46 6f 72 20 74 68 65 20 70 75 72 70 6f 73 65 t</span></code>..For.the.purpose
5f020 73 20 6f 66 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 20 20 20 20 61 6e s.of.error.messages...........an
5f040 64 20 64 65 62 75 67 67 69 6e 67 2c 20 5a 69 67 20 69 6e 66 65 72 73 20 74 68 65 20 6e 61 6d 65 d.debugging,.Zig.infers.the.name
5f060 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .<code.class="zig"><span.class="
5f080 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 4c 69 73 74 28 69 33 32 29 26 71 75 6f 74 3b 3c 2f tok-str">&quot;List(i32)&quot;</
5f0a0 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e span></code>.from.the.function.n
5f0c0 61 6d 65 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 ame.and.parameters.invoked.when.
5f0e0 63 72 65 61 74 69 6e 67 0a 20 20 20 20 20 20 74 68 65 20 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 72 creating.......the.anonymous.str
5f100 75 63 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 uct........</p>.......<p>.......
5f120 54 6f 20 6b 65 65 70 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 73 6d 61 6c 6c 20 61 6e 64 20 75 To.keep.the.language.small.and.u
5f140 6e 69 66 6f 72 6d 2c 20 61 6c 6c 20 61 67 67 72 65 67 61 74 65 20 74 79 70 65 73 20 69 6e 20 5a niform,.all.aggregate.types.in.Z
5f160 69 67 20 61 72 65 20 61 6e 6f 6e 79 6d 6f 75 73 2e 20 54 6f 20 67 69 76 65 20 61 20 74 79 70 65 ig.are.anonymous..To.give.a.type
5f180 0a 20 20 20 20 20 20 61 20 6e 61 6d 65 2c 20 77 65 20 61 73 73 69 67 6e 20 69 74 20 74 6f 20 61 .......a.name,.we.assign.it.to.a
5f1a0 20 63 6f 6e 73 74 61 6e 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 .constant:.......</p>.......<pre
5f1c0 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
5f1e0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 4e 6f 64 65 20 3d 20 3c 73 70 61 tok-kw">const</span>.Node.=.<spa
5f200 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b n.class="tok-kw">struct</span>.{
5f220 0a 20 20 20 20 6e 65 78 74 3a 20 2a 4e 6f 64 65 2c 0a 20 20 20 20 6e 61 6d 65 3a 20 5b 5d 3c 73 .....next:.*Node,.....name:.[]<s
5f240 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a pan.class="tok-type">u8</span>,.
5f260 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 };</code></pre>.......<p>.......
5f280 54 68 69 73 20 77 6f 72 6b 73 20 62 65 63 61 75 73 65 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c This.works.because.all.top.level
5f2a0 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 72 65 20 6f 72 64 65 72 2d 69 6e 64 65 70 65 6e 64 .declarations.are.order-independ
5f2c0 65 6e 74 2c 20 61 6e 64 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 72 65 20 69 73 6e 27 74 0a ent,.and.as.long.as.there.isn't.
5f2e0 20 20 20 20 20 20 61 6e 20 61 63 74 75 61 6c 20 69 6e 66 69 6e 69 74 65 20 72 65 67 72 65 73 73 ......an.actual.infinite.regress
5f300 69 6f 6e 2c 20 76 61 6c 75 65 73 20 63 61 6e 20 72 65 66 65 72 20 74 6f 20 74 68 65 6d 73 65 6c ion,.values.can.refer.to.themsel
5f320 76 65 73 2c 20 64 69 72 65 63 74 6c 79 20 6f 72 20 69 6e 64 69 72 65 63 74 6c 79 2e 20 49 6e 20 ves,.directly.or.indirectly..In.
5f340 74 68 69 73 20 63 61 73 65 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 this.case,.......<code.class="zi
5f360 67 22 3e 4e 6f 64 65 3c 2f 63 6f 64 65 3e 20 72 65 66 65 72 73 20 74 6f 20 69 74 73 65 6c 66 20 g">Node</code>.refers.to.itself.
5f380 61 73 20 61 20 70 6f 69 6e 74 65 72 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 63 74 75 61 as.a.pointer,.which.is.not.actua
5f3a0 6c 6c 79 20 61 6e 20 69 6e 66 69 6e 69 74 65 20 72 65 67 72 65 73 73 69 6f 6e 2c 20 73 6f 0a 20 lly.an.infinite.regression,.so..
5f3c0 20 20 20 20 20 69 74 20 77 6f 72 6b 73 20 66 69 6e 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 .....it.works.fine........</p>..
5f3e0 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 61 73 65 2d 53 74 75 64 79 2d 70 ............<h2.id="Case-Study-p
5f400 72 69 6e 74 66 2d 69 6e 2d 5a 69 67 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 61 73 65 rintf-in-Zig"><a.href="#toc-Case
5f420 2d 53 74 75 64 79 2d 70 72 69 6e 74 66 2d 69 6e 2d 5a 69 67 22 3e 43 61 73 65 20 53 74 75 64 79 -Study-printf-in-Zig">Case.Study
5f440 3a 20 70 72 69 6e 74 66 20 69 6e 20 5a 69 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 :.printf.in.Zig</a>.<a.class="hd
5f460 72 22 20 68 72 65 66 3d 22 23 43 61 73 65 2d 53 74 75 64 79 2d 70 72 69 6e 74 66 2d 69 6e 2d 5a r".href="#Case-Study-printf-in-Z
5f480 69 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 ig">..</a></h2>........<p>......
5f4a0 20 50 75 74 74 69 6e 67 20 61 6c 6c 20 6f 66 20 74 68 69 73 20 74 6f 67 65 74 68 65 72 2c 20 6c .Putting.all.of.this.together,.l
5f4c0 65 74 27 73 20 73 65 65 20 68 6f 77 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 et's.see.how.<code.class="zig">p
5f4e0 72 69 6e 74 66 3c 2f 63 6f 64 65 3e 20 77 6f 72 6b 73 20 69 6e 20 5a 69 67 2e 0a 20 20 20 20 20 rintf</code>.works.in.Zig.......
5f500 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 72 69 6e .</p>.......<p.class="file">prin
5f520 74 66 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 tf.zig</p><pre><code.class="zig"
5f540 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 ><span.class="tok-kw">const</spa
5f560 6e 3e 20 77 61 72 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 n>.warn.=.<span.class="tok-built
5f580 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
5f5a0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
5f5c0 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b .debug.warn;..<span.class="tok-k
5f5e0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 5f 6e 75 6d 62 65 72 3a 20 3c 73 70 61 6e 20 w">const</span>.a_number:.<span.
5f600 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 class="tok-type">i32</span>.=.<s
5f620 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 pan.class="tok-number">1234</spa
5f640 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f n>;.<span.class="tok-kw">const</
5f660 73 70 61 6e 3e 20 61 5f 73 74 72 69 6e 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f span>.a_string.=.<span.class="to
5f680 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 62 61 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e k-str">&quot;foobar&quot;</span>
5f6a0 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 ;..<span.class="tok-kw">pub</spa
5f6c0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e n>.<span.class="tok-kw">fn</span
5f6e0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 >.<span.class="tok-fn">main</spa
5f700 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 n>().<span.class="tok-type">void
5f720 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>.{.....warn(<span.class="
5f740 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a tok-str">&quot;here.is.a.string:
5f760 20 27 7b 7d 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f .'{}'.here.is.a.number:.{}\n&quo
5f780 74 3b 3c 2f 73 70 61 6e 3e 2c 20 61 5f 73 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 65 72 29 3b 0a t;</span>,.a_string,.a_number);.
5f7a0 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
5f7c0 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 70 72 69 6e 74 66 2e 7a 69 shell">$.zig.build-exe.printf.zi
5f7e0 67 0a 24 20 2e 2f 70 72 69 6e 74 66 0a 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 g.$../printf.here.is.a.string:.'
5f800 66 6f 6f 62 61 72 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 31 32 33 34 0a 3c foobar'.here.is.a.number:.1234.<
5f820 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c /code></pre>.........<p>.......L
5f840 65 74 27 73 20 63 72 61 63 6b 20 6f 70 65 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 et's.crack.open.the.implementati
5f860 6f 6e 20 6f 66 20 74 68 69 73 20 61 6e 64 20 73 65 65 20 68 6f 77 20 69 74 20 77 6f 72 6b 73 3a on.of.this.and.see.how.it.works:
5f880 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c .......</p>........<pre><code.cl
5f8a0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 ass="zig"><span.class="tok-comme
5f8c0 6e 74 22 3e 2f 2f 2f 20 43 61 6c 6c 73 20 70 72 69 6e 74 20 61 6e 64 20 74 68 65 6e 20 66 6c 75 nt">///.Calls.print.and.then.flu
5f8e0 73 68 65 73 20 74 68 65 20 62 75 66 66 65 72 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c shes.the.buffer.</span>.<span.cl
5f900 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ass="tok-kw">pub</span>.<span.cl
5f920 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
5f940 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 72 69 6e 74 66 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 ss="tok-fn">printf</span>(self:.
5f960 2a 4f 75 74 53 74 72 65 61 6d 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 *OutStream,.<span.class="tok-kw"
5f980 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 66 6f 72 6d 61 74 3a 20 5b 5d 3c 73 70 61 6e >comptime</span>.format:.[]<span
5f9a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 .class="tok-kw">const</span>.<sp
5f9c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 61 an.class="tok-type">u8</span>,.a
5f9e0 72 67 73 3a 20 2e 2e 2e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 rgs:....).<span.class="tok-type"
5fa00 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >anyerror</span>!<span.class="to
5fa20 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 k-type">void</span>.{.....<span.
5fa40 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 74 61 74 class="tok-kw">const</span>.Stat
5fa60 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 e.=.<span.class="tok-kw">enum</s
5fa80 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 53 74 61 72 74 2c 0a 20 20 20 20 20 20 20 20 4f 70 pan>.{.........Start,.........Op
5faa0 65 6e 42 72 61 63 65 2c 0a 20 20 20 20 20 20 20 20 43 6c 6f 73 65 42 72 61 63 65 2c 0a 20 20 20 enBrace,.........CloseBrace,....
5fac0 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f .};......<span.class="tok-kw">co
5fae0 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b mptime</span>.<span.class="tok-k
5fb00 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 74 61 72 74 5f 69 6e 64 65 78 3a 20 3c 73 70 61 6e w">var</span>.start_index:.<span
5fb20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d .class="tok-type">usize</span>.=
5fb40 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 .<span.class="tok-number">0</spa
5fb60 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d n>;.....<span.class="tok-kw">com
5fb80 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ptime</span>.<span.class="tok-kw
5fba0 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 ">var</span>.state.=.State.Start
5fbc0 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 ;.....<span.class="tok-kw">compt
5fbe0 69 6d 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ime</span>.<span.class="tok-kw">
5fc00 76 61 72 3c 2f 73 70 61 6e 3e 20 6e 65 78 74 5f 61 72 67 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 var</span>.next_arg:.<span.class
5fc20 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e ="tok-type">usize</span>.=.<span
5fc40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 .class="tok-number">0</span>;...
5fc60 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 6e 6c 69 6e 65 3c 2f ...<span.class="tok-kw">inline</
5fc80 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f span>.<span.class="tok-kw">for</
5fca0 73 70 61 6e 3e 20 28 66 6f 72 6d 61 74 29 20 7c 63 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 span>.(format).|c,.i|.{.........
5fcc0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 <span.class="tok-kw">switch</spa
5fce0 6e 3e 20 28 73 74 61 74 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 2e 53 n>.(state).{.............State.S
5fd00 74 61 72 74 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e tart.=&gt;.<span.class="tok-kw">
5fd20 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 switch</span>.(c).{.............
5fd40 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 7b 27 3c 2f 73 ....<span.class="tok-str">'{'</s
5fd60 70 61 6e 3e 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pan>.=&gt;.{....................
5fd80 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">if</span>.
5fda0 28 73 74 61 72 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 69 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 (start_index.&lt;.i).<span.class
5fdc0 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 77 72 69 74 65 28 ="tok-kw">try</span>.self.write(
5fde0 66 6f 72 6d 61 74 5b 73 74 61 72 74 5f 69 6e 64 65 78 2e 2e 69 5d 29 3b 0a 20 20 20 20 20 20 20 format[start_index..i]);........
5fe00 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 4f 70 65 6e 42 .............state.=.State.OpenB
5fe20 72 61 63 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 race;.................},........
5fe40 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 .........<span.class="tok-str">'
5fe60 7d 27 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 }'</span>.=&gt;.{...............
5fe80 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 ......<span.class="tok-kw">if</s
5fea0 70 61 6e 3e 20 28 73 74 61 72 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 69 29 20 3c 73 70 61 6e 20 pan>.(start_index.&lt;.i).<span.
5fec0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 77 class="tok-kw">try</span>.self.w
5fee0 72 69 74 65 28 66 6f 72 6d 61 74 5b 73 74 61 72 74 5f 69 6e 64 65 78 2e 2e 69 5d 29 3b 0a 20 20 rite(format[start_index..i]);...
5ff00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e ..................state.=.State.
5ff20 43 6c 6f 73 65 42 72 61 63 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 CloseBrace;.................},..
5ff40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ...............<span.class="tok-
5ff60 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 20 20 20 20 kw">else</span>.=&gt;.{},.......
5ff80 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 2e 4f 70 65 6e 42 ......},.............State.OpenB
5ffa0 72 61 63 65 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e race.=&gt;.<span.class="tok-kw">
5ffc0 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 switch</span>.(c).{.............
5ffe0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 7b 27 3c 2f 73 ....<span.class="tok-str">'{'</s
60000 70 61 6e 3e 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pan>.=&gt;.{....................
60020 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 .state.=.State.Start;...........
60040 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 5f 69 6e 64 65 78 20 3d 20 69 3b 0a 20 20 20 20 20 ..........start_index.=.i;......
60060 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 ...........},.................<s
60080 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 7d 27 3c 2f 73 70 61 6e 3e 20 3d pan.class="tok-str">'}'</span>.=
600a0 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e &gt;.{.....................<span
600c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e .class="tok-kw">try</span>.self.
600e0 70 72 69 6e 74 56 61 6c 75 65 28 61 72 67 73 5b 6e 65 78 74 5f 61 72 67 5d 29 3b 0a 20 20 20 20 printValue(args[next_arg]);.....
60100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 5f 61 72 67 20 2b 3d 20 3c 73 70 61 ................next_arg.+=.<spa
60120 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 n.class="tok-number">1</span>;..
60140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 ...................state.=.State
60160 2e 53 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 .Start;.....................star
60180 74 5f 69 6e 64 65 78 20 3d 20 69 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e t_index.=.i.+.<span.class="tok-n
601a0 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 umber">1</span>;................
601c0 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .},.................<span.class=
601e0 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 6e "tok-kw">else</span>.=&gt;.<span
60200 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 .class="tok-builtin">@compileErr
60220 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e or</span>(<span.class="tok-str">
60240 26 71 75 6f 74 3b 55 6e 6b 6e 6f 77 6e 20 66 6f 72 6d 61 74 20 63 68 61 72 61 63 74 65 72 3a 20 &quot;Unknown.format.character:.
60260 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 2b 2b 20 63 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 &quot;</span>.++.c),............
60280 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 2e 43 6c 6f 73 65 42 72 61 63 65 .},.............State.CloseBrace
602a0 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 .=&gt;.<span.class="tok-kw">swit
602c0 63 68 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch</span>.(c).{.................
602e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 7d 27 3c 2f 73 70 61 6e 3e <span.class="tok-str">'}'</span>
60300 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 .=&gt;.{.....................sta
60320 74 65 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te.=.State.Start;...............
60340 20 20 20 20 20 20 73 74 61 72 74 5f 69 6e 64 65 78 20 3d 20 69 3b 0a 20 20 20 20 20 20 20 20 20 ......start_index.=.i;..........
60360 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 .......},.................<span.
60380 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b class="tok-kw">else</span>.=&gt;
603a0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 .<span.class="tok-builtin">@comp
603c0 69 6c 65 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ileError</span>(<span.class="tok
603e0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 53 69 6e 67 6c 65 20 27 7d 27 20 65 6e 63 6f 75 6e 74 65 72 -str">&quot;Single.'}'.encounter
60400 65 64 20 69 6e 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e ed.in.format.string&quot;</span>
60420 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ),.............},.........}.....
60440 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 }.....<span.class="tok-kw">compt
60460 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ime</span>.{.........<span.class
60480 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 72 67 73 2e 6c 65 6e 20 21 3d ="tok-kw">if</span>.(args.len.!=
604a0 20 6e 65 78 74 5f 61 72 67 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 .next_arg).{.............<span.c
604c0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 lass="tok-builtin">@compileError
604e0 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
60500 75 6f 74 3b 55 6e 75 73 65 64 20 61 72 67 75 6d 65 6e 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e uot;Unused.arguments&quot;</span
60520 3e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 >);.........}.........<span.clas
60540 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 73 74 61 74 65 20 21 3d 20 53 s="tok-kw">if</span>.(state.!=.S
60560 74 61 74 65 2e 53 74 61 72 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 tate.Start).{.............<span.
60580 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f class="tok-builtin">@compileErro
605a0 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 r</span>(<span.class="tok-str">&
605c0 71 75 6f 74 3b 49 6e 63 6f 6d 70 6c 65 74 65 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 3a 20 26 quot;Incomplete.format.string:.&
605e0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 2b 2b 20 66 6f 72 6d 61 74 29 3b 0a 20 20 20 20 20 20 20 quot;</span>.++.format);........
60600 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .}.....}.....<span.class="tok-kw
60620 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 73 74 61 72 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 66 6f ">if</span>.(start_index.&lt;.fo
60640 72 6d 61 74 2e 6c 65 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d rmat.len).{.........<span.class=
60660 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 77 72 69 74 65 28 66 "tok-kw">try</span>.self.write(f
60680 6f 72 6d 61 74 5b 73 74 61 72 74 5f 69 6e 64 65 78 2e 2e 66 6f 72 6d 61 74 2e 6c 65 6e 5d 29 3b ormat[start_index..format.len]);
606a0 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e .....}.....<span.class="tok-kw">
606c0 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 66 6c 75 73 68 28 29 3b 0a 7d 3c 2f 63 6f 64 65 try</span>.self.flush();.}</code
606e0 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 ></pre>.......<p>.......This.is.
60700 61 20 70 72 6f 6f 66 20 6f 66 20 63 6f 6e 63 65 70 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f a.proof.of.concept.implementatio
60720 6e 3b 20 74 68 65 20 61 63 74 75 61 6c 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 73 74 n;.the.actual.function.in.the.st
60740 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 68 61 73 20 6d 6f 72 65 0a 20 20 20 20 20 20 66 6f andard.library.has.more.......fo
60760 72 6d 61 74 74 69 6e 67 20 63 61 70 61 62 69 6c 69 74 69 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 rmatting.capabilities........</p
60780 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 >.......<p>.......Note.that.this
607a0 20 69 73 20 6e 6f 74 20 68 61 72 64 2d 63 6f 64 65 64 20 69 6e 74 6f 20 74 68 65 20 5a 69 67 20 .is.not.hard-coded.into.the.Zig.
607c0 63 6f 6d 70 69 6c 65 72 3b 20 74 68 69 73 20 69 73 20 75 73 65 72 6c 61 6e 64 20 63 6f 64 65 20 compiler;.this.is.userland.code.
607e0 69 6e 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 2e 0a 20 20 20 20 20 20 3c in.the.standard.library........<
60800 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 74 68 69 73 20 66 75 /p>.......<p>.......When.this.fu
60820 6e 63 74 69 6f 6e 20 69 73 20 61 6e 61 6c 79 7a 65 64 20 66 72 6f 6d 20 6f 75 72 20 65 78 61 6d nction.is.analyzed.from.our.exam
60840 70 6c 65 20 63 6f 64 65 20 61 62 6f 76 65 2c 20 5a 69 67 20 70 61 72 74 69 61 6c 6c 79 20 65 76 ple.code.above,.Zig.partially.ev
60860 61 6c 75 61 74 65 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 61 6e 64 20 65 aluates.the.function.......and.e
60880 6d 69 74 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 61 63 74 75 61 6c 6c 79 20 6c 6f mits.a.function.that.actually.lo
608a0 6f 6b 73 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 oks.like.this:.......</p>.......
608c0 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
608e0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">pub</span>.<span.cla
60900 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ss="tok-kw">fn</span>.<span.clas
60920 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 72 69 6e 74 66 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 2a s="tok-fn">printf</span>(self:.*
60940 4f 75 74 53 74 72 65 61 6d 2c 20 61 72 67 30 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f OutStream,.arg0:.<span.class="to
60960 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 61 72 67 31 3a 20 5b 5d 3c 73 70 61 k-type">i32</span>,.arg1:.[]<spa
60980 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 n.class="tok-kw">const</span>.<s
609a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 pan.class="tok-type">u8</span>).
609c0 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 !<span.class="tok-type">void</sp
609e0 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 an>.{.....<span.class="tok-kw">t
60a00 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 77 72 69 74 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 ry</span>.self.write(<span.class
60a20 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e ="tok-str">&quot;here.is.a.strin
60a40 67 3a 20 27 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c g:.'&quot;</span>);.....<span.cl
60a60 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 70 72 69 ass="tok-kw">try</span>.self.pri
60a80 6e 74 56 61 6c 75 65 28 61 72 67 30 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ntValue(arg0);.....<span.class="
60aa0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 77 72 69 74 65 28 3c 73 tok-kw">try</span>.self.write(<s
60ac0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 27 20 68 65 72 65 pan.class="tok-str">&quot;'.here
60ae0 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 .is.a.number:.&quot;</span>);...
60b00 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e ..<span.class="tok-kw">try</span
60b20 3e 20 73 65 6c 66 2e 70 72 69 6e 74 56 61 6c 75 65 28 61 72 67 31 29 3b 0a 20 20 20 20 3c 73 70 >.self.printValue(arg1);.....<sp
60b40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c an.class="tok-kw">try</span>.sel
60b60 66 2e 77 72 69 74 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 f.write(<span.class="tok-str">&q
60b80 75 6f 74 3b 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 uot;\n&quot;</span>);.....<span.
60ba0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 66 class="tok-kw">try</span>.self.f
60bc0 6c 75 73 68 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e lush();.}</code></pre>.......<p>
60be0 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 72 69 6e 74 56 61 .......<code.class="zig">printVa
60c00 6c 75 65 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 lue</code>.is.a.function.that.ta
60c20 6b 65 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 6f 66 20 61 6e 79 20 74 79 70 65 2c 20 61 6e 64 kes.a.parameter.of.any.type,.and
60c40 20 64 6f 65 73 20 64 69 66 66 65 72 65 6e 74 20 74 68 69 6e 67 73 20 64 65 70 65 6e 64 69 6e 67 .does.different.things.depending
60c60 0a 20 20 20 20 20 20 6f 6e 20 74 68 65 20 74 79 70 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 .......on.the.type:.......</p>..
60c80 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
60ca0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 n.class="tok-kw">pub</span>.<spa
60cc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e n.class="tok-kw">fn</span>.<span
60ce0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 72 69 6e 74 56 61 6c 75 65 3c 2f 73 70 61 6e .class="tok-fn">printValue</span
60d00 3e 28 73 65 6c 66 3a 20 2a 4f 75 74 53 74 72 65 61 6d 2c 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e >(self:.*OutStream,.value:.<span
60d20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 21 3c 73 70 .class="tok-kw">var</span>).!<sp
60d40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 an.class="tok-type">void</span>.
60d60 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 {.....<span.class="tok-kw">const
60d80 3c 2f 73 70 61 6e 3e 20 54 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 </span>.T.=.<span.class="tok-bui
60da0 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3b 0a 20 20 20 ltin">@typeOf</span>(value);....
60dc0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">if</span>.
60de0 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 73 49 6e (<span.class="tok-builtin">@isIn
60e00 74 65 67 65 72 3c 2f 73 70 61 6e 3e 28 54 29 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e teger</span>(T)).{.........<span
60e20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 73 65 .class="tok-kw">return</span>.se
60e40 6c 66 2e 70 72 69 6e 74 49 6e 74 28 54 2c 20 76 61 6c 75 65 29 3b 0a 20 20 20 20 7d 20 3c 73 70 lf.printInt(T,.value);.....}.<sp
60e60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 an.class="tok-kw">else</span>.<s
60e80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 pan.class="tok-kw">if</span>.(<s
60ea0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 73 46 6c 6f 61 74 pan.class="tok-builtin">@isFloat
60ec0 3c 2f 73 70 61 6e 3e 28 54 29 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 </span>(T)).{.........<span.clas
60ee0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 70 72 s="tok-kw">return</span>.self.pr
60f00 69 6e 74 46 6c 6f 61 74 28 54 2c 20 76 61 6c 75 65 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 intFloat(T,.value);.....}.<span.
60f20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 class="tok-kw">else</span>.{....
60f40 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 .....<span.class="tok-builtin">@
60f60 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d compileError</span>(<span.class=
60f80 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 55 6e 61 62 6c 65 20 74 6f 20 70 72 69 6e 74 20 "tok-str">&quot;Unable.to.print.
60fa0 74 79 70 65 20 27 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 2b 2b 20 3c 73 70 61 6e 20 63 6c 61 type.'&quot;</span>.++.<span.cla
60fc0 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 61 6e ss="tok-builtin">@typeName</span
60fe0 3e 28 54 29 20 2b 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 >(T).++.<span.class="tok-str">&q
61000 75 6f 74 3b 27 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f uot;'&quot;</span>);.....}.}</co
61020 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6e 64 20 6e 6f de></pre>.......<p>.......And.no
61040 77 2c 20 77 68 61 74 20 68 61 70 70 65 6e 73 20 69 66 20 77 65 20 67 69 76 65 20 74 6f 6f 20 6d w,.what.happens.if.we.give.too.m
61060 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 any.arguments.to.<code.class="zi
61080 67 22 3e 70 72 69 6e 74 66 3c 2f 63 6f 64 65 3e 3f 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 g">printf</code>?.......</p>....
610a0 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
610c0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
610e0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d 20 3c s="tok-kw">const</span>.warn.=.<
61100 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
61120 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
61140 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 77 61 72 6e uot;std&quot;</span>).debug.warn
61160 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ;..<span.class="tok-kw">const</s
61180 70 61 6e 3e 20 61 5f 6e 75 6d 62 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pan>.a_number:.<span.class="tok-
611a0 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 type">i32</span>.=.<span.class="
611c0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 tok-number">1234</span>;.<span.c
611e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 5f 73 74 72 lass="tok-kw">const</span>.a_str
61200 69 6e 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f ing.=.<span.class="tok-str">&quo
61220 74 3b 66 6f 6f 62 61 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c t;foobar&quot;</span>;..<span.cl
61240 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ass="tok-kw">test</span>.<span.c
61260 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 72 69 6e 74 66 20 74 6f 6f 20 lass="tok-str">&quot;printf.too.
61280 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 many.arguments&quot;</span>.{...
612a0 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 ..warn(<span.class="tok-str">&qu
612c0 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 7d 27 20 68 65 72 65 20 69 ot;here.is.a.string:.'{}'.here.i
612e0 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 s.a.number:.{}\n&quot;</span>,..
61300 20 20 20 20 20 20 20 61 5f 73 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 65 72 2c 20 61 5f 6e 75 6d .......a_string,.a_number,.a_num
61320 62 65 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ber);.}</code></pre><pre><code.c
61340 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 lass="shell">$.zig.test.test.zig
61360 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 .<span.class="t0_1">/home/andy/d
61380 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 66 6d 74 2e 7a 69 67 3a 32 36 35 3a 31 33 3a 20 3c ev/zig/lib/std/fmt.zig:265:13:.<
613a0 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a /span><span.class="t31_1">error:
613c0 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 55 6e 75 73 65 </span><span.class="t0_1">.Unuse
613e0 64 20 61 72 67 75 6d 65 6e 74 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 d.arguments</span>.............@
61400 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 71 75 6f 74 3b 55 6e 75 73 65 64 20 61 72 67 75 6d 65 compileError(&quot;Unused.argume
61420 6e 74 73 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c nts&quot;);.............<span.cl
61440 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ass="t32_1">^</span>.<span.class
61460 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 ="t0_1">/home/andy/dev/zig/lib/s
61480 74 64 2f 69 6f 2e 7a 69 67 3a 37 30 3a 33 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c td/io.zig:70:34:.</span><span.cl
614a0 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c ass="t36_1">note:</span><span.cl
614c0 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 ass="t0_1">.called.from.here</sp
614e0 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 64 2e 66 6d 74 2e 66 an>.............return.std.fmt.f
61500 6f 72 6d 61 74 28 73 65 6c 66 2c 20 45 72 72 6f 72 2c 20 73 65 6c 66 2e 77 72 69 74 65 46 6e 2c ormat(self,.Error,.self.writeFn,
61520 20 66 6f 72 6d 61 74 2c 20 61 72 67 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .format,.args);.................
61540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 .................<span.class="t3
61560 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 2_1">^</span>.<span.class="t0_1"
61580 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 64 65 62 75 >/home/andy/dev/zig/lib/std/debu
615a0 67 2e 7a 69 67 3a 35 32 3a 31 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d g.zig:52:17:.</span><span.class=
615c0 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d "t36_1">note:</span><span.class=
615e0 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a "t0_1">.called.from.here</span>.
61600 20 20 20 20 73 74 64 65 72 72 2e 70 72 69 6e 74 28 66 6d 74 2c 20 61 72 67 73 29 20 63 61 74 63 ....stderr.print(fmt,.args).catc
61620 68 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 h.return;.................<span.
61640 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 class="t32_1">^</span>.<span.cla
61660 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 ss="t0_1">/home/andy/dev/zig/doc
61680 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 37 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 gen_tmp/test.zig:7:9:.</span><sp
616a0 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 an.class="t36_1">note:</span><sp
616c0 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 an.class="t0_1">.called.from.her
616e0 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 68 65 72 65 20 69 73 20 e</span>.....warn(&quot;here.is.
61700 61 20 73 74 72 69 6e 67 3a 20 27 7b 7d 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a a.string:.'{}'.here.is.a.number:
61720 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 .{}\n&quot;,.........<span.class
61740 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a ="t32_1">^</span>.</code></pre>.
61760 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 67 69 76 65 73 20 70 72 6f 67 72 .......<p>.......Zig.gives.progr
61780 61 6d 6d 65 72 73 20 74 68 65 20 74 6f 6f 6c 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f 74 65 ammers.the.tools.needed.to.prote
617a0 63 74 20 74 68 65 6d 73 65 6c 76 65 73 20 61 67 61 69 6e 73 74 20 74 68 65 69 72 20 6f 77 6e 20 ct.themselves.against.their.own.
617c0 6d 69 73 74 61 6b 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 mistakes........</p>.......<p>..
617e0 20 20 20 20 20 5a 69 67 20 64 6f 65 73 6e 27 74 20 63 61 72 65 20 77 68 65 74 68 65 72 20 74 68 .....Zig.doesn't.care.whether.th
61800 65 20 66 6f 72 6d 61 74 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 73 74 72 69 6e 67 20 6c 69 e.format.argument.is.a.string.li
61820 74 65 72 61 6c 2c 0a 20 20 20 20 20 20 6f 6e 6c 79 20 74 68 61 74 20 69 74 20 69 73 20 61 20 63 teral,.......only.that.it.is.a.c
61840 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 20 76 61 6c 75 65 20 74 68 61 74 20 69 73 20 ompile-time.known.value.that.is.
61860 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 61 62 6c 65 20 74 6f 20 61 20 3c 63 6f 64 65 20 63 implicitly.castable.to.a.<code.c
61880 6c 61 73 73 3d 22 7a 69 67 22 3e 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 lass="zig">[]<span.class="tok-kw
618a0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">const</span>.<span.class="tok-
618c0 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f type">u8</span></code>:.......</
618e0 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 72 69 6e 74 66 2e p>.......<p.class="file">printf.
61900 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
61920 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
61940 77 61 72 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 warn.=.<span.class="tok-builtin"
61960 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
61980 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 -str">&quot;std&quot;</span>).de
619a0 62 75 67 2e 77 61 72 6e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e bug.warn;..<span.class="tok-kw">
619c0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 5f 6e 75 6d 62 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 const</span>.a_number:.<span.cla
619e0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e ss="tok-type">i32</span>.=.<span
61a00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b .class="tok-number">1234</span>;
61a20 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
61a40 6e 3e 20 61 5f 73 74 72 69 6e 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 n>.a_string.=.<span.class="tok-s
61a60 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 62 61 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 3c tr">&quot;foobar&quot;</span>;.<
61a80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
61aa0 20 66 6d 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 .fmt.=.<span.class="tok-str">&qu
61ac0 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 7d 27 20 68 65 72 65 20 69 ot;here.is.a.string:.'{}'.here.i
61ae0 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 0a s.a.number:.{}\n&quot;</span>;..
61b00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">pub</span>.
61b20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c <span.class="tok-kw">fn</span>.<
61b40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 span.class="tok-fn">main</span>(
61b60 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 ).<span.class="tok-type">void</s
61b80 70 61 6e 3e 20 7b 0a 20 20 20 20 77 61 72 6e 28 66 6d 74 2c 20 61 5f 73 74 72 69 6e 67 2c 20 61 pan>.{.....warn(fmt,.a_string,.a
61ba0 5f 6e 75 6d 62 65 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f _number);.}</code></pre><pre><co
61bc0 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 de.class="shell">$.zig.build-exe
61be0 20 70 72 69 6e 74 66 2e 7a 69 67 0a 24 20 2e 2f 70 72 69 6e 74 66 0a 68 65 72 65 20 69 73 20 61 .printf.zig.$../printf.here.is.a
61c00 20 73 74 72 69 6e 67 3a 20 27 66 6f 6f 62 61 72 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 .string:.'foobar'.here.is.a.numb
61c20 65 72 3a 20 31 32 33 34 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 er:.1234.</code></pre>........<p
61c40 3e 0a 20 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 66 69 6e 65 2e 0a 20 20 20 20 20 20 3c >.......This.works.fine........<
61c60 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 64 6f 65 73 20 6e 6f 74 /p>.......<p>.......Zig.does.not
61c80 20 73 70 65 63 69 61 6c 20 63 61 73 65 20 73 74 72 69 6e 67 20 66 6f 72 6d 61 74 74 69 6e 67 20 .special.case.string.formatting.
61ca0 69 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 61 6e 64 20 69 6e 73 74 65 61 64 20 65 78 70 6f in.the.compiler.and.instead.expo
61cc0 73 65 73 20 65 6e 6f 75 67 68 20 70 6f 77 65 72 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73 68 20 74 ses.enough.power.to.accomplish.t
61ce0 68 69 73 0a 20 20 20 20 20 20 74 61 73 6b 20 69 6e 20 75 73 65 72 6c 61 6e 64 2e 20 49 74 20 64 his.......task.in.userland..It.d
61d00 6f 65 73 20 73 6f 20 77 69 74 68 6f 75 74 20 69 6e 74 72 6f 64 75 63 69 6e 67 20 61 6e 6f 74 68 oes.so.without.introducing.anoth
61d20 65 72 20 6c 61 6e 67 75 61 67 65 20 6f 6e 20 74 6f 70 20 6f 66 20 5a 69 67 2c 20 73 75 63 68 20 er.language.on.top.of.Zig,.such.
61d40 61 73 0a 20 20 20 20 20 20 61 20 6d 61 63 72 6f 20 6c 61 6e 67 75 61 67 65 20 6f 72 20 61 20 70 as.......a.macro.language.or.a.p
61d60 72 65 70 72 6f 63 65 73 73 6f 72 20 6c 61 6e 67 75 61 67 65 2e 20 49 74 27 73 20 5a 69 67 20 61 reprocessor.language..It's.Zig.a
61d80 6c 6c 20 74 68 65 20 77 61 79 20 64 6f 77 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 ll.the.way.down........</p>.....
61da0 20 20 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c .........<p>See.also:</p><ul>.<l
61dc0 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 3e 69 6e 6c 69 6e 65 i><a.href="#inline-while">inline
61de0 20 77 68 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e .while</a></li>.<li><a.href="#in
61e00 6c 69 6e 65 2d 66 6f 72 22 3e 69 6e 6c 69 6e 65 20 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f line-for">inline.for</a></li>.</
61e20 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 41 73 73 65 6d 62 ul>...............<h1.id="Assemb
61e40 6c 79 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 41 73 73 65 6d 62 6c 79 22 3e 41 73 73 65 ly"><a.href="#toc-Assembly">Asse
61e60 6d 62 6c 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 mbly</a>.<a.class="hdr".href="#A
61e80 73 73 65 6d 62 6c 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a ssembly">..</a></h1>........<p>.
61ea0 20 20 20 20 20 20 46 6f 72 20 73 6f 6d 65 20 75 73 65 20 63 61 73 65 73 2c 20 69 74 20 6d 61 79 ......For.some.use.cases,.it.may
61ec0 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 64 69 72 65 63 74 6c 79 20 63 6f 6e 74 72 6f .be.necessary.to.directly.contro
61ee0 6c 20 74 68 65 20 6d 61 63 68 69 6e 65 20 63 6f 64 65 20 67 65 6e 65 72 61 74 65 64 0a 20 20 20 l.the.machine.code.generated....
61f00 20 20 20 62 79 20 5a 69 67 20 70 72 6f 67 72 61 6d 73 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 ...by.Zig.programs,.rather.than.
61f20 72 65 6c 79 69 6e 67 20 6f 6e 20 5a 69 67 27 73 20 63 6f 64 65 20 67 65 6e 65 72 61 74 69 6f 6e relying.on.Zig's.code.generation
61f40 2e 20 46 6f 72 20 74 68 65 73 65 20 63 61 73 65 73 2c 20 6f 6e 65 0a 20 20 20 20 20 20 63 61 6e ..For.these.cases,.one.......can
61f60 20 75 73 65 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 2e 20 48 65 72 65 20 69 73 20 61 6e .use.inline.assembly..Here.is.an
61f80 20 65 78 61 6d 70 6c 65 20 6f 66 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 48 65 6c 6c 6f 2c 20 .example.of.implementing.Hello,.
61fa0 57 6f 72 6c 64 20 6f 6e 20 78 38 36 5f 36 34 20 4c 69 6e 75 78 0a 20 20 20 20 20 20 75 73 69 6e World.on.x86_64.Linux.......usin
61fc0 67 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 g.inline.assembly:.......</p>...
61fe0 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e ....<p.class="file">test.zig</p>
62000 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
62020 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">pub</span>.<span.cla
62040 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ss="tok-kw">fn</span>.<span.clas
62060 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 s="tok-fn">main</span>().<span.c
62080 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 lass="tok-type">noreturn</span>.
620a0 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 {.....<span.class="tok-kw">const
620c0 3c 2f 73 70 61 6e 3e 20 6d 73 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 </span>.msg.=.<span.class="tok-s
620e0 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 77 6f 72 6c 64 5c 6e 26 71 75 6f 74 3b 3c 2f 73 tr">&quot;hello.world\n&quot;</s
62100 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 73 79 73 63 61 6c 6c 33 28 53 59 53 5f 77 72 69 74 65 pan>;....._.=.syscall3(SYS_write
62120 2c 20 53 54 44 4f 55 54 5f 46 49 4c 45 4e 4f 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ,.STDOUT_FILENO,.<span.class="to
62140 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 k-builtin">@ptrToInt</span>(&amp
62160 3b 6d 73 67 29 2c 20 6d 73 67 2e 6c 65 6e 29 3b 0a 20 20 20 20 5f 20 3d 20 73 79 73 63 61 6c 6c ;msg),.msg.len);....._.=.syscall
62180 31 28 53 59 53 5f 65 78 69 74 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 1(SYS_exit,.<span.class="tok-num
621a0 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ber">0</span>);.....<span.class=
621c0 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a "tok-kw">unreachable</span>;.}..
621e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">pub</span>.
62200 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
62220 3e 20 53 59 53 5f 77 72 69 74 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e >.SYS_write.=.<span.class="tok-n
62240 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f umber">1</span>;.<span.class="to
62260 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f k-kw">pub</span>.<span.class="to
62280 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 59 53 5f 65 78 69 74 20 3d 20 3c 73 k-kw">const</span>.SYS_exit.=.<s
622a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 30 3c 2f 73 70 61 6e 3e pan.class="tok-number">60</span>
622c0 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 ;..<span.class="tok-kw">pub</spa
622e0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 n>.<span.class="tok-kw">const</s
62300 70 61 6e 3e 20 53 54 44 4f 55 54 5f 46 49 4c 45 4e 4f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 pan>.STDOUT_FILENO.=.<span.class
62320 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 ="tok-number">1</span>;..<span.c
62340 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 lass="tok-kw">pub</span>.<span.c
62360 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c lass="tok-kw">fn</span>.<span.cl
62380 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 79 73 63 61 6c 6c 31 3c 2f 73 70 61 6e 3e 28 6e 75 6d ass="tok-fn">syscall1</span>(num
623a0 62 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a ber:.<span.class="tok-type">usiz
623c0 65 3c 2f 73 70 61 6e 3e 2c 20 61 72 67 31 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e</span>,.arg1:.<span.class="tok
623e0 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 -type">usize</span>).<span.class
62400 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c ="tok-type">usize</span>.{.....<
62420 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e span.class="tok-kw">return</span
62440 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 6d 3c 2f 73 70 61 6e >.<span.class="tok-kw">asm</span
62460 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c >.<span.class="tok-kw">volatile<
62480 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 /span>.(<span.class="tok-str">&q
624a0 75 6f 74 3b 73 79 73 63 61 6c 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 uot;syscall&quot;</span>........
624c0 20 3a 20 5b 72 65 74 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 .:.[ret].<span.class="tok-str">&
624e0 71 75 6f 74 3b 3d 7b 72 61 78 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 2d 26 67 74 3b 20 quot;={rax}&quot;</span>.(-&gt;.
62500 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 <span.class="tok-type">usize</sp
62520 61 6e 3e 29 0a 20 20 20 20 20 20 20 20 3a 20 5b 6e 75 6d 62 65 72 5d 20 3c 73 70 61 6e 20 63 6c an>).........:.[number].<span.cl
62540 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 61 78 7d 26 71 75 6f 74 3b 3c ass="tok-str">&quot;{rax}&quot;<
62560 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 29 2c 0a 20 20 20 20 20 20 20 20 20 20 5b 61 72 67 31 /span>.(number),...........[arg1
62580 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 ].<span.class="tok-str">&quot;{r
625a0 64 69 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 61 72 67 31 29 0a 20 20 20 20 20 20 20 20 di}&quot;</span>.(arg1).........
625c0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 63 :.<span.class="tok-str">&quot;rc
625e0 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b x&quot;</span>,.<span.class="tok
62600 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 31 31 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 -str">&quot;r11&quot;</span>....
62620 20 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c .);.}..<span.class="tok-kw">pub<
62640 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f /span>.<span.class="tok-kw">fn</
62660 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 79 73 63 61 span>.<span.class="tok-fn">sysca
62680 6c 6c 33 3c 2f 73 70 61 6e 3e 28 6e 75 6d 62 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ll3</span>(number:.<span.class="
626a0 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 20 61 72 67 31 3a 20 3c 73 tok-type">usize</span>,.arg1:.<s
626c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e pan.class="tok-type">usize</span
626e0 3e 2c 20 61 72 67 32 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e >,.arg2:.<span.class="tok-type">
62700 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 20 61 72 67 33 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d usize</span>,.arg3:.<span.class=
62720 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 "tok-type">usize</span>).<span.c
62740 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 lass="tok-type">usize</span>.{..
62760 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f ...<span.class="tok-kw">return</
62780 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 6d 3c 2f span>.<span.class="tok-kw">asm</
627a0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 span>.<span.class="tok-kw">volat
627c0 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 ile</span>.(<span.class="tok-str
627e0 22 3e 26 71 75 6f 74 3b 73 79 73 63 61 6c 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 ">&quot;syscall&quot;</span>....
62800 20 20 20 20 20 3a 20 5b 72 65 74 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 .....:.[ret].<span.class="tok-st
62820 72 22 3e 26 71 75 6f 74 3b 3d 7b 72 61 78 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 2d 26 r">&quot;={rax}&quot;</span>.(-&
62840 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 gt;.<span.class="tok-type">usize
62860 3c 2f 73 70 61 6e 3e 29 0a 20 20 20 20 20 20 20 20 3a 20 5b 6e 75 6d 62 65 72 5d 20 3c 73 70 61 </span>).........:.[number].<spa
62880 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 61 78 7d 26 71 75 n.class="tok-str">&quot;{rax}&qu
628a0 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 29 2c 0a 20 20 20 20 20 20 20 20 20 20 5b ot;</span>.(number),...........[
628c0 61 72 67 31 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f arg1].<span.class="tok-str">&quo
628e0 74 3b 7b 72 64 69 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 61 72 67 31 29 2c 0a 20 20 20 t;{rdi}&quot;</span>.(arg1),....
62900 20 20 20 20 20 20 20 5b 61 72 67 32 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 .......[arg2].<span.class="tok-s
62920 74 72 22 3e 26 71 75 6f 74 3b 7b 72 73 69 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 61 72 tr">&quot;{rsi}&quot;</span>.(ar
62940 67 32 29 2c 0a 20 20 20 20 20 20 20 20 20 20 5b 61 72 67 33 5d 20 3c 73 70 61 6e 20 63 6c 61 73 g2),...........[arg3].<span.clas
62960 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 64 78 7d 26 71 75 6f 74 3b 3c 2f 73 s="tok-str">&quot;{rdx}&quot;</s
62980 70 61 6e 3e 20 28 61 72 67 33 29 0a 20 20 20 20 20 20 20 20 3a 20 3c 73 70 61 6e 20 63 6c 61 73 pan>.(arg3).........:.<span.clas
629a0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 63 78 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;rcx&quot;</spa
629c0 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b n>,.<span.class="tok-str">&quot;
629e0 72 31 31 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 29 3b 0a 7d 3c 2f 63 6f 64 65 3e r11&quot;</span>.....);.}</code>
62a00 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 </pre><pre><code.class="shell">$
62a20 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 20 2d 74 61 72 67 65 74 20 .zig.build-exe.test.zig.-target.
62a40 78 38 36 5f 36 34 2d 6c 69 6e 75 78 0a 24 20 2e 2f 74 65 73 74 0a 68 65 6c 6c 6f 20 77 6f 72 6c x86_64-linux.$../test.hello.worl
62a60 64 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 d.</code></pre>........<p>......
62a80 20 44 69 73 73 65 63 74 69 6e 67 20 74 68 65 20 73 79 6e 74 61 78 3a 0a 20 20 20 20 20 20 3c 2f .Dissecting.the.syntax:.......</
62aa0 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e p>.......<pre><code.class="zig">
62ac0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 6e 6c <span.class="tok-comment">//.Inl
62ae0 69 6e 65 20 61 73 73 65 6d 62 6c 79 20 69 73 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 68 ine.assembly.is.an.expression.wh
62b00 69 63 68 20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 75 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 ich.returns.a.value.</span>.<spa
62b20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 60 61 73 n.class="tok-comment">//.the.`as
62b40 6d 60 20 6b 65 79 77 6f 72 64 20 62 65 67 69 6e 73 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e m`.keyword.begins.the.expression
62b60 2e 3c 2f 73 70 61 6e 3e 0a 5f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .</span>._.=.<span.class="tok-kw
62b80 22 3e 61 73 6d 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f ">asm</span>.<span.class="tok-co
62ba0 6d 6d 65 6e 74 22 3e 2f 2f 20 60 76 6f 6c 61 74 69 6c 65 60 20 69 73 20 61 6e 20 6f 70 74 69 6f mment">//.`volatile`.is.an.optio
62bc0 6e 61 6c 20 6d 6f 64 69 66 69 65 72 20 74 68 61 74 20 74 65 6c 6c 73 20 5a 69 67 20 74 68 69 73 nal.modifier.that.tells.Zig.this
62be0 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 </span>.<span.class="tok-comment
62c00 22 3e 2f 2f 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 20 65 78 70 72 65 73 73 69 6f 6e 20 ">//.inline.assembly.expression.
62c20 68 61 73 20 73 69 64 65 2d 65 66 66 65 63 74 73 2e 20 57 69 74 68 6f 75 74 3c 2f 73 70 61 6e 3e has.side-effects..Without</span>
62c40 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 60 76 .<span.class="tok-comment">//.`v
62c60 6f 6c 61 74 69 6c 65 60 2c 20 5a 69 67 20 69 73 20 61 6c 6c 6f 77 65 64 20 74 6f 20 64 65 6c 65 olatile`,.Zig.is.allowed.to.dele
62c80 74 65 20 74 68 65 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 3c 2f 73 70 61 6e 3e 0a 3c 73 te.the.inline.assembly</span>.<s
62ca0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 63 6f 64 65 20 pan.class="tok-comment">//.code.
62cc0 69 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 75 6e 75 73 65 64 2e 3c 2f 73 70 61 6e 3e 0a if.the.result.is.unused.</span>.
62ce0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 73 <span.class="tok-kw">volatile</s
62d00 70 61 6e 3e 20 28 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 pan>.(.<span.class="tok-comment"
62d20 3e 2f 2f 20 4e 65 78 74 20 69 73 20 61 20 63 6f 6d 70 74 69 6d 65 20 73 74 72 69 6e 67 20 77 68 >//.Next.is.a.comptime.string.wh
62d40 69 63 68 20 69 73 20 74 68 65 20 61 73 73 65 6d 62 6c 79 20 63 6f 64 65 2e 3c 2f 73 70 61 6e 3e ich.is.the.assembly.code.</span>
62d60 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 6e .<span.class="tok-comment">//.In
62d80 73 69 64 65 20 74 68 69 73 20 73 74 72 69 6e 67 20 6f 6e 65 20 6d 61 79 20 75 73 65 20 60 25 5b side.this.string.one.may.use.`%[
62da0 72 65 74 5d 60 2c 20 60 25 5b 6e 75 6d 62 65 72 5d 60 2c 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e ret]`,.`%[number]`,</span>.<span
62dc0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 72 20 60 25 5b 61 72 .class="tok-comment">//.or.`%[ar
62de0 67 31 5d 60 20 77 68 65 72 65 20 61 20 72 65 67 69 73 74 65 72 20 69 73 20 65 78 70 65 63 74 65 g1]`.where.a.register.is.expecte
62e00 64 2c 20 74 6f 20 73 70 65 63 69 66 79 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 d,.to.specify</span>.<span.class
62e20 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 72 65 67 69 73 74 65 72 20 74 ="tok-comment">//.the.register.t
62e40 68 61 74 20 5a 69 67 20 75 73 65 73 20 66 6f 72 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6f 72 hat.Zig.uses.for.the.argument.or
62e60 20 72 65 74 75 72 6e 20 76 61 6c 75 65 2c 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 .return.value,</span>.<span.clas
62e80 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 66 20 74 68 65 20 72 65 67 69 73 74 s="tok-comment">//.if.the.regist
62ea0 65 72 20 63 6f 6e 73 74 72 61 69 6e 74 20 73 74 72 69 6e 67 73 20 61 72 65 20 75 73 65 64 2e 20 er.constraint.strings.are.used..
62ec0 48 6f 77 65 76 65 72 20 69 6e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 However.in</span>.<span.class="t
62ee0 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 62 65 6c 6f 77 20 63 6f 64 65 2c 20 74 ok-comment">//.the.below.code,.t
62f00 68 69 73 20 69 73 20 6e 6f 74 20 75 73 65 64 2e 20 41 20 6c 69 74 65 72 61 6c 20 60 25 60 20 63 his.is.not.used..A.literal.`%`.c
62f20 61 6e 20 62 65 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f an.be</span>.<span.class="tok-co
62f40 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 62 74 61 69 6e 65 64 20 62 79 20 65 73 63 61 70 69 6e 67 20 69 mment">//.obtained.by.escaping.i
62f60 74 20 77 69 74 68 20 61 20 64 6f 75 62 6c 65 20 70 65 72 63 65 6e 74 3a 20 60 25 25 60 2e 3c 2f t.with.a.double.percent:.`%%`.</
62f80 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e span>.<span.class="tok-comment">
62fa0 2f 2f 20 4f 66 74 65 6e 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 73 79 6e 74 61 78 //.Often.multiline.string.syntax
62fc0 20 63 6f 6d 65 73 20 69 6e 20 68 61 6e 64 79 20 68 65 72 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 .comes.in.handy.here.</span>....
62fe0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 73 79 73 63 61 6c 6c .<span.class="tok-str">\\syscall
63000 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 .</span><span.class="tok-comment
63020 22 3e 2f 2f 20 4e 65 78 74 20 69 73 20 74 68 65 20 6f 75 74 70 75 74 2e 20 49 74 20 69 73 20 70 ">//.Next.is.the.output..It.is.p
63040 6f 73 73 69 62 6c 65 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 20 5a 69 67 20 77 69 6c 6c 3c 2f ossible.in.the.future.Zig.will</
63060 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e span>.<span.class="tok-comment">
63080 2f 2f 20 73 75 70 70 6f 72 74 20 6d 75 6c 74 69 70 6c 65 20 6f 75 74 70 75 74 73 2c 20 64 65 70 //.support.multiple.outputs,.dep
630a0 65 6e 64 69 6e 67 20 6f 6e 20 68 6f 77 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ending.on.how</span>.<span.class
630c0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 ="tok-comment">//.https://github
630e0 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 32 31 35 20 69 73 20 72 .com/ziglang/zig/issues/215.is.r
63100 65 73 6f 6c 76 65 64 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b esolved.</span>.<span.class="tok
63120 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 74 20 69 73 20 61 6c 6c 6f 77 65 64 20 66 6f 72 20 74 -comment">//.It.is.allowed.for.t
63140 68 65 72 65 20 74 6f 20 62 65 20 6e 6f 20 6f 75 74 70 75 74 73 2c 20 69 6e 20 77 68 69 63 68 20 here.to.be.no.outputs,.in.which.
63160 63 61 73 65 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d case</span>.<span.class="tok-com
63180 6d 65 6e 74 22 3e 2f 2f 20 74 68 69 73 20 63 6f 6c 6f 6e 20 77 6f 75 6c 64 20 62 65 20 64 69 72 ment">//.this.colon.would.be.dir
631a0 65 63 74 6c 79 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 68 65 20 63 6f 6c 6f 6e 20 66 6f 72 20 ectly.followed.by.the.colon.for.
631c0 74 68 65 20 69 6e 70 75 74 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3a 0a 3c 73 70 61 6e 20 63 the.inputs.</span>.....:.<span.c
631e0 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 73 70 65 63 69 lass="tok-comment">//.This.speci
63200 66 69 65 73 20 74 68 65 20 6e 61 6d 65 20 74 6f 20 62 65 20 75 73 65 64 20 69 6e 20 60 25 5b 72 fies.the.name.to.be.used.in.`%[r
63220 65 74 5d 60 20 73 79 6e 74 61 78 20 69 6e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 et]`.syntax.in</span>.<span.clas
63240 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 61 62 6f 76 65 20 61 73 73 s="tok-comment">//.the.above.ass
63260 65 6d 62 6c 79 20 73 74 72 69 6e 67 2e 20 54 68 69 73 20 65 78 61 6d 70 6c 65 20 64 6f 65 73 20 embly.string..This.example.does.
63280 6e 6f 74 20 75 73 65 20 69 74 2c 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 not.use.it,</span>.<span.class="
632a0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 62 75 74 20 74 68 65 20 73 79 6e 74 61 78 20 69 tok-comment">//.but.the.syntax.i
632c0 73 20 6d 61 6e 64 61 74 6f 72 79 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5b 72 65 74 5d 0a 3c 73 s.mandatory.</span>.....[ret].<s
632e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 65 78 74 20 pan.class="tok-comment">//.Next.
63300 69 73 20 74 68 65 20 6f 75 74 70 75 74 20 63 6f 6e 73 74 72 61 69 6e 74 20 73 74 72 69 6e 67 2e is.the.output.constraint.string.
63320 20 54 68 69 73 20 66 65 61 74 75 72 65 20 69 73 20 73 74 69 6c 6c 3c 2f 73 70 61 6e 3e 0a 3c 73 .This.feature.is.still</span>.<s
63340 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 63 6f 6e 73 69 pan.class="tok-comment">//.consi
63360 64 65 72 65 64 20 75 6e 73 74 61 62 6c 65 20 69 6e 20 5a 69 67 2c 20 61 6e 64 20 73 6f 20 4c 4c dered.unstable.in.Zig,.and.so.LL
63380 56 4d 2f 47 43 43 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 VM/GCC.documentation</span>.<spa
633a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6d 75 73 74 20 62 65 n.class="tok-comment">//.must.be
633c0 20 75 73 65 64 20 74 6f 20 75 6e 64 65 72 73 74 61 6e 64 20 74 68 65 20 73 65 6d 61 6e 74 69 63 .used.to.understand.the.semantic
633e0 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 s.</span>.<span.class="tok-comme
63400 6e 74 22 3e 2f 2f 20 68 74 74 70 3a 2f 2f 72 65 6c 65 61 73 65 73 2e 6c 6c 76 6d 2e 6f 72 67 2f nt">//.http://releases.llvm.org/
63420 39 2e 30 2e 30 2f 64 6f 63 73 2f 4c 61 6e 67 52 65 66 2e 68 74 6d 6c 23 69 6e 6c 69 6e 65 2d 61 9.0.0/docs/LangRef.html#inline-a
63440 73 6d 2d 63 6f 6e 73 74 72 61 69 6e 74 2d 73 74 72 69 6e 67 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 sm-constraint-string</span>.<spa
63460 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 68 74 74 70 73 3a 2f n.class="tok-comment">//.https:/
63480 2f 67 63 63 2e 67 6e 75 2e 6f 72 67 2f 6f 6e 6c 69 6e 65 64 6f 63 73 2f 67 63 63 2f 45 78 74 65 /gcc.gnu.org/onlinedocs/gcc/Exte
634a0 6e 64 65 64 2d 41 73 6d 2e 68 74 6d 6c 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 nded-Asm.html</span>.<span.class
634c0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c ="tok-comment">//.In.this.exampl
634e0 65 2c 20 74 68 65 20 63 6f 6e 73 74 72 61 69 6e 74 20 73 74 72 69 6e 67 20 6d 65 61 6e 73 20 26 e,.the.constraint.string.means.&
63500 71 75 6f 74 3b 74 68 65 20 72 65 73 75 6c 74 20 76 61 6c 75 65 20 6f 66 3c 2f 73 70 61 6e 3e 0a quot;the.result.value.of</span>.
63520 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 69 <span.class="tok-comment">//.thi
63540 73 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 69 73 s.inline.assembly.instruction.is
63560 20 77 68 61 74 65 76 65 72 20 69 73 20 69 6e 20 24 72 61 78 26 71 75 6f 74 3b 2e 3c 2f 73 70 61 .whatever.is.in.$rax&quot;.</spa
63580 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 n>.....<span.class="tok-str">&qu
635a0 6f 74 3b 3d 7b 72 61 78 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ot;={rax}&quot;</span>.<span.cla
635c0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 65 78 74 20 69 73 20 65 69 74 68 ss="tok-comment">//.Next.is.eith
635e0 65 72 20 61 20 76 61 6c 75 65 20 62 69 6e 64 69 6e 67 2c 20 6f 72 20 60 2d 26 67 74 3b 60 20 61 er.a.value.binding,.or.`-&gt;`.a
63600 6e 64 20 74 68 65 6e 20 61 20 74 79 70 65 2e 20 54 68 65 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e nd.then.a.type..The</span>.<span
63620 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 79 70 65 20 69 73 20 .class="tok-comment">//.type.is.
63640 74 68 65 20 72 65 73 75 6c 74 20 74 79 70 65 20 6f 66 20 74 68 65 20 69 6e 6c 69 6e 65 20 61 73 the.result.type.of.the.inline.as
63660 73 65 6d 62 6c 79 20 65 78 70 72 65 73 73 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 sembly.expression.</span>.<span.
63680 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 20 69 74 20 69 73 20 class="tok-comment">//.If.it.is.
636a0 61 20 76 61 6c 75 65 20 62 69 6e 64 69 6e 67 2c 20 74 68 65 6e 20 60 25 5b 72 65 74 5d 60 20 73 a.value.binding,.then.`%[ret]`.s
636c0 79 6e 74 61 78 20 77 6f 75 6c 64 20 62 65 20 75 73 65 64 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e yntax.would.be.used</span>.<span
636e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 6f 20 72 65 66 65 72 .class="tok-comment">//.to.refer
63700 20 74 6f 20 74 68 65 20 72 65 67 69 73 74 65 72 20 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 76 61 .to.the.register.bound.to.the.va
63720 6c 75 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 28 2d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 lue.</span>.....(-&gt;.<span.cla
63740 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 0a 3c 73 70 61 ss="tok-type">usize</span>).<spa
63760 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 65 78 74 20 69 73 n.class="tok-comment">//.Next.is
63780 20 74 68 65 20 6c 69 73 74 20 6f 66 20 69 6e 70 75 74 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 .the.list.of.inputs.</span>.<spa
637a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 63 6f 6e n.class="tok-comment">//.The.con
637c0 73 74 72 61 69 6e 74 20 66 6f 72 20 74 68 65 73 65 20 69 6e 70 75 74 73 20 6d 65 61 6e 73 2c 20 straint.for.these.inputs.means,.
637e0 26 71 75 6f 74 3b 77 68 65 6e 20 74 68 65 20 61 73 73 65 6d 62 6c 79 20 63 6f 64 65 20 69 73 3c &quot;when.the.assembly.code.is<
63800 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 /span>.<span.class="tok-comment"
63820 3e 2f 2f 20 65 78 65 63 75 74 65 64 2c 20 24 72 61 78 20 73 68 61 6c 6c 20 68 61 76 65 20 74 68 >//.executed,.$rax.shall.have.th
63840 65 20 76 61 6c 75 65 20 6f 66 20 60 6e 75 6d 62 65 72 60 20 61 6e 64 20 24 72 64 69 20 73 68 61 e.value.of.`number`.and.$rdi.sha
63860 6c 6c 20 68 61 76 65 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ll.have</span>.<span.class="tok-
63880 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 61 72 67 31 60 26 comment">//.the.value.of.`arg1`&
638a0 71 75 6f 74 3b 2e 20 41 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 70 75 74 20 70 61 72 61 6d quot;..Any.number.of.input.param
638c0 65 74 65 72 73 20 69 73 20 61 6c 6c 6f 77 65 64 2c 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 eters.is.allowed,</span>.<span.c
638e0 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 6e 63 6c 75 64 69 6e 67 20 lass="tok-comment">//.including.
63900 6e 6f 6e 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3a 20 5b 6e 75 6d 62 65 72 5d 20 3c 73 70 61 none.</span>.....:.[number].<spa
63920 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 61 78 7d 26 71 75 n.class="tok-str">&quot;{rax}&qu
63940 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 29 2c 0a 20 20 20 20 20 20 20 20 5b 61 72 ot;</span>.(number),.........[ar
63960 67 31 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b g1].<span.class="tok-str">&quot;
63980 7b 72 64 69 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 61 72 67 31 29 0a 3c 73 70 61 6e 20 {rdi}&quot;</span>.(arg1).<span.
639a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 65 78 74 20 69 73 20 74 class="tok-comment">//.Next.is.t
639c0 68 65 20 6c 69 73 74 20 6f 66 20 63 6c 6f 62 62 65 72 73 2e 20 54 68 65 73 65 20 64 65 63 6c 61 he.list.of.clobbers..These.decla
639e0 72 65 20 61 20 73 65 74 20 6f 66 20 72 65 67 69 73 74 65 72 73 20 77 68 6f 73 65 3c 2f 73 70 61 re.a.set.of.registers.whose</spa
63a00 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 n>.<span.class="tok-comment">//.
63a20 76 61 6c 75 65 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 70 72 65 73 65 72 76 65 64 20 62 79 20 values.will.not.be.preserved.by.
63a40 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 61 73 73 65 6d 62 6c 79 20 63 the.execution.of.this.assembly.c
63a60 6f 64 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d ode.</span>.<span.class="tok-com
63a80 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 73 65 20 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 6f 75 ment">//.These.do.not.include.ou
63aa0 74 70 75 74 20 6f 72 20 69 6e 70 75 74 20 72 65 67 69 73 74 65 72 73 2e 20 54 68 65 20 73 70 65 tput.or.input.registers..The.spe
63ac0 63 69 61 6c 20 63 6c 6f 62 62 65 72 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d cial.clobber</span>.<span.class=
63ae0 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 76 61 6c 75 65 20 6f 66 20 26 71 75 6f 74 3b "tok-comment">//.value.of.&quot;
63b00 6d 65 6d 6f 72 79 26 71 75 6f 74 3b 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 61 73 73 65 memory&quot;.means.that.the.asse
63b20 6d 62 6c 79 20 77 72 69 74 65 73 20 74 6f 20 61 72 62 69 74 72 61 72 79 20 75 6e 64 65 63 6c 61 mbly.writes.to.arbitrary.undecla
63b40 72 65 64 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d red</span>.<span.class="tok-comm
63b60 65 6e 74 22 3e 2f 2f 20 6d 65 6d 6f 72 79 20 6c 6f 63 61 74 69 6f 6e 73 20 2d 20 6e 6f 74 20 6f ent">//.memory.locations.-.not.o
63b80 6e 6c 79 20 74 68 65 20 6d 65 6d 6f 72 79 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 61 20 64 nly.the.memory.pointed.to.by.a.d
63ba0 65 63 6c 61 72 65 64 20 69 6e 64 69 72 65 63 74 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c eclared.indirect</span>.<span.cl
63bc0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 75 74 70 75 74 2e 20 49 6e 20 ass="tok-comment">//.output..In.
63be0 74 68 69 73 20 65 78 61 6d 70 6c 65 20 77 65 20 6c 69 73 74 20 24 72 63 78 20 61 6e 64 20 24 72 this.example.we.list.$rcx.and.$r
63c00 31 31 20 62 65 63 61 75 73 65 20 69 74 20 69 73 20 6b 6e 6f 77 6e 20 74 68 65 3c 2f 73 70 61 6e 11.because.it.is.known.the</span
63c20 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6b >.<span.class="tok-comment">//.k
63c40 65 72 6e 65 6c 20 73 79 73 63 61 6c 6c 20 64 6f 65 73 20 6e 6f 74 20 70 72 65 73 65 72 76 65 20 ernel.syscall.does.not.preserve.
63c60 74 68 65 73 65 20 72 65 67 69 73 74 65 72 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3a 20 3c 73 these.registers.</span>.....:.<s
63c80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 63 78 26 71 75 pan.class="tok-str">&quot;rcx&qu
63ca0 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 ot;</span>,.<span.class="tok-str
63cc0 22 3e 26 71 75 6f 74 3b 72 31 31 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 29 3b 3c 2f 63 6f 64 ">&quot;r11&quot;</span>.);</cod
63ce0 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 69 33 38 e></pre>.......<p>.......For.i38
63d00 36 20 61 6e 64 20 78 38 36 5f 36 34 20 74 61 72 67 65 74 73 2c 20 74 68 65 20 73 79 6e 74 61 78 6.and.x86_64.targets,.the.syntax
63d20 20 69 73 20 41 54 26 61 6d 70 3b 54 20 73 79 6e 74 61 78 2c 20 72 61 74 68 65 72 20 74 68 61 6e .is.AT&amp;T.syntax,.rather.than
63d40 20 74 68 65 20 6d 6f 72 65 0a 20 20 20 20 20 20 70 6f 70 75 6c 61 72 20 49 6e 74 65 6c 20 73 79 .the.more.......popular.Intel.sy
63d60 6e 74 61 78 2e 20 54 68 69 73 20 69 73 20 64 75 65 20 74 6f 20 74 65 63 68 6e 69 63 61 6c 20 63 ntax..This.is.due.to.technical.c
63d80 6f 6e 73 74 72 61 69 6e 74 73 3b 20 61 73 73 65 6d 62 6c 79 20 70 61 72 73 69 6e 67 20 69 73 0a onstraints;.assembly.parsing.is.
63da0 20 20 20 20 20 20 70 72 6f 76 69 64 65 64 20 62 79 20 4c 4c 56 4d 20 61 6e 64 20 69 74 73 20 73 ......provided.by.LLVM.and.its.s
63dc0 75 70 70 6f 72 74 20 66 6f 72 20 49 6e 74 65 6c 20 73 79 6e 74 61 78 20 69 73 20 62 75 67 67 79 upport.for.Intel.syntax.is.buggy
63de0 20 61 6e 64 20 6e 6f 74 20 77 65 6c 6c 20 74 65 73 74 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e .and.not.well.tested........</p>
63e00 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 6f 6d 65 20 64 61 79 20 5a 69 67 20 6d 61 .......<p>.......Some.day.Zig.ma
63e20 79 20 68 61 76 65 20 69 74 73 20 6f 77 6e 20 61 73 73 65 6d 62 6c 65 72 2e 20 54 68 69 73 20 77 y.have.its.own.assembler..This.w
63e40 6f 75 6c 64 20 61 6c 6c 6f 77 20 69 74 20 74 6f 20 69 6e 74 65 67 72 61 74 65 20 6d 6f 72 65 20 ould.allow.it.to.integrate.more.
63e60 73 65 61 6d 6c 65 73 73 6c 79 0a 20 20 20 20 20 20 69 6e 74 6f 20 74 68 65 20 6c 61 6e 67 75 61 seamlessly.......into.the.langua
63e80 67 65 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 62 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 ge,.as.well.as.be.compatible.wit
63ea0 68 20 74 68 65 20 70 6f 70 75 6c 61 72 20 4e 41 53 4d 20 73 79 6e 74 61 78 2e 20 54 68 69 73 20 h.the.popular.NASM.syntax..This.
63ec0 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 20 20 73 65 63 74 69 6f 6e 20 77 69 6c 6c documentation.......section.will
63ee0 20 62 65 20 75 70 64 61 74 65 64 20 62 65 66 6f 72 65 20 31 2e 30 2e 30 20 69 73 20 72 65 6c 65 .be.updated.before.1.0.0.is.rele
63f00 61 73 65 64 2c 20 77 69 74 68 20 61 20 63 6f 6e 63 6c 75 73 69 76 65 20 73 74 61 74 65 6d 65 6e ased,.with.a.conclusive.statemen
63f20 74 20 61 62 6f 75 74 20 74 68 65 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 6f 66 20 41 54 26 61 t.about.the.status.......of.AT&a
63f40 6d 70 3b 54 20 76 73 20 49 6e 74 65 6c 2f 4e 41 53 4d 20 73 79 6e 74 61 78 2e 0a 20 20 20 20 20 mp;T.vs.Intel/NASM.syntax.......
63f60 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 4f 75 74 70 75 74 2d 43 6f 6e 73 74 .</p>.......<h2.id="Output-Const
63f80 72 61 69 6e 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4f 75 74 70 75 74 2d 43 6f 6e raints"><a.href="#toc-Output-Con
63fa0 73 74 72 61 69 6e 74 73 22 3e 4f 75 74 70 75 74 20 43 6f 6e 73 74 72 61 69 6e 74 73 3c 2f 61 3e straints">Output.Constraints</a>
63fc0 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4f 75 74 70 75 74 2d 43 6f .<a.class="hdr".href="#Output-Co
63fe0 6e 73 74 72 61 69 6e 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 nstraints">..</a></h2>........<p
64000 3e 0a 20 20 20 20 20 20 4f 75 74 70 75 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20 73 >.......Output.constraints.are.s
64020 74 69 6c 6c 20 63 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 62 65 20 75 6e 73 74 61 62 6c 65 20 69 till.considered.to.be.unstable.i
64040 6e 20 5a 69 67 2c 20 61 6e 64 0a 20 20 20 20 20 20 73 6f 0a 20 20 20 20 20 20 3c 61 20 68 72 65 n.Zig,.and.......so.......<a.hre
64060 66 3d 22 68 74 74 70 3a 2f 2f 72 65 6c 65 61 73 65 73 2e 6c 6c 76 6d 2e 6f 72 67 2f 39 2e 30 2e f="http://releases.llvm.org/9.0.
64080 30 2f 64 6f 63 73 2f 4c 61 6e 67 52 65 66 2e 68 74 6d 6c 23 69 6e 6c 69 6e 65 2d 61 73 6d 2d 63 0/docs/LangRef.html#inline-asm-c
640a0 6f 6e 73 74 72 61 69 6e 74 2d 73 74 72 69 6e 67 22 3e 4c 4c 56 4d 20 64 6f 63 75 6d 65 6e 74 61 onstraint-string">LLVM.documenta
640c0 74 69 6f 6e 3c 2f 61 3e 0a 20 20 20 20 20 20 61 6e 64 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 tion</a>.......and.......<a.href
640e0 3d 22 68 74 74 70 73 3a 2f 2f 67 63 63 2e 67 6e 75 2e 6f 72 67 2f 6f 6e 6c 69 6e 65 64 6f 63 73 ="https://gcc.gnu.org/onlinedocs
64100 2f 67 63 63 2f 45 78 74 65 6e 64 65 64 2d 41 73 6d 2e 68 74 6d 6c 22 3e 47 43 43 20 64 6f 63 75 /gcc/Extended-Asm.html">GCC.docu
64120 6d 65 6e 74 61 74 69 6f 6e 3c 2f 61 3e 0a 20 20 20 20 20 20 6d 75 73 74 20 62 65 20 75 73 65 64 mentation</a>.......must.be.used
64140 20 74 6f 20 75 6e 64 65 72 73 74 61 6e 64 20 74 68 65 20 73 65 6d 61 6e 74 69 63 73 2e 0a 20 20 .to.understand.the.semantics....
64160 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 ....</p>.......<p>.......Note.th
64180 61 74 20 73 6f 6d 65 20 62 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 20 74 6f 20 6f 75 74 70 at.some.breaking.changes.to.outp
641a0 75 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20 70 6c 61 6e 6e 65 64 20 77 69 74 68 0a ut.constraints.are.planned.with.
641c0 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f ......<a.href="https://github.co
641e0 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 32 31 35 22 3e 69 73 73 75 65 20 m/ziglang/zig/issues/215">issue.
64200 23 32 31 35 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 #215</a>........</p>............
64220 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 3e 3c 61 ...<h2.id="Input-Constraints"><a
64240 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 3e 49 .href="#toc-Input-Constraints">I
64260 6e 70 75 74 20 43 6f 6e 73 74 72 61 69 6e 74 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 nput.Constraints</a>.<a.class="h
64280 64 72 22 20 68 72 65 66 3d 22 23 49 6e 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 3e c2 a7 dr".href="#Input-Constraints">..
642a0 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 70 75 74 </a></h2>........<p>.......Input
642c0 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20 73 74 69 6c 6c 20 63 6f 6e 73 69 64 65 72 65 .constraints.are.still.considere
642e0 64 20 74 6f 20 62 65 20 75 6e 73 74 61 62 6c 65 20 69 6e 20 5a 69 67 2c 20 61 6e 64 0a 20 20 20 d.to.be.unstable.in.Zig,.and....
64300 20 20 20 73 6f 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 72 65 6c 65 ...so.......<a.href="http://rele
64320 61 73 65 73 2e 6c 6c 76 6d 2e 6f 72 67 2f 39 2e 30 2e 30 2f 64 6f 63 73 2f 4c 61 6e 67 52 65 66 ases.llvm.org/9.0.0/docs/LangRef
64340 2e 68 74 6d 6c 23 69 6e 6c 69 6e 65 2d 61 73 6d 2d 63 6f 6e 73 74 72 61 69 6e 74 2d 73 74 72 69 .html#inline-asm-constraint-stri
64360 6e 67 22 3e 4c 4c 56 4d 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 61 3e 0a 20 20 20 20 20 ng">LLVM.documentation</a>......
64380 20 61 6e 64 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 63 63 2e .and.......<a.href="https://gcc.
643a0 67 6e 75 2e 6f 72 67 2f 6f 6e 6c 69 6e 65 64 6f 63 73 2f 67 63 63 2f 45 78 74 65 6e 64 65 64 2d gnu.org/onlinedocs/gcc/Extended-
643c0 41 73 6d 2e 68 74 6d 6c 22 3e 47 43 43 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 61 3e 0a Asm.html">GCC.documentation</a>.
643e0 20 20 20 20 20 20 6d 75 73 74 20 62 65 20 75 73 65 64 20 74 6f 20 75 6e 64 65 72 73 74 61 6e 64 ......must.be.used.to.understand
64400 20 74 68 65 20 73 65 6d 61 6e 74 69 63 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 .the.semantics........</p>......
64420 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 73 6f 6d 65 20 62 72 65 61 6b 69 .<p>.......Note.that.some.breaki
64440 6e 67 20 63 68 61 6e 67 65 73 20 74 6f 20 69 6e 70 75 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 ng.changes.to.input.constraints.
64460 61 72 65 20 70 6c 61 6e 6e 65 64 20 77 69 74 68 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 are.planned.with.......<a.href="
64480 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 https://github.com/ziglang/zig/i
644a0 73 73 75 65 73 2f 32 31 35 22 3e 69 73 73 75 65 20 23 32 31 35 3c 2f 61 3e 2e 0a 20 20 20 20 20 ssues/215">issue.#215</a>.......
644c0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 6c 6f 62 .</p>...............<h2.id="Clob
644e0 62 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 6c 6f 62 62 65 72 73 22 3e 43 6c bers"><a.href="#toc-Clobbers">Cl
64500 6f 62 62 65 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 obbers</a>.<a.class="hdr".href="
64520 23 43 6c 6f 62 62 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 #Clobbers">..</a></h2>........<p
64540 3e 0a 20 20 20 20 20 20 43 6c 6f 62 62 65 72 73 20 61 72 65 20 74 68 65 20 73 65 74 20 6f 66 20 >.......Clobbers.are.the.set.of.
64560 72 65 67 69 73 74 65 72 73 20 77 68 6f 73 65 20 76 61 6c 75 65 73 20 77 69 6c 6c 20 6e 6f 74 20 registers.whose.values.will.not.
64580 62 65 20 70 72 65 73 65 72 76 65 64 20 62 79 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 be.preserved.by.the.execution.of
645a0 0a 20 20 20 20 20 20 74 68 65 20 61 73 73 65 6d 62 6c 79 20 63 6f 64 65 2e 20 54 68 65 73 65 20 .......the.assembly.code..These.
645c0 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 6f 75 74 70 75 74 20 6f 72 20 69 6e 70 75 74 20 72 do.not.include.output.or.input.r
645e0 65 67 69 73 74 65 72 73 2e 20 54 68 65 20 73 70 65 63 69 61 6c 20 63 6c 6f 62 62 65 72 0a 20 20 egisters..The.special.clobber...
64600 20 20 20 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ....value.of.<code.class="zig"><
64620 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6d 65 6d 6f 72 span.class="tok-str">&quot;memor
64640 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6d 65 61 6e 73 20 74 68 61 74 y&quot;</span></code>.means.that
64660 20 74 68 65 20 61 73 73 65 6d 62 6c 79 20 63 61 75 73 65 73 20 77 72 69 74 65 73 20 74 6f 0a 20 .the.assembly.causes.writes.to..
64680 20 20 20 20 20 61 72 62 69 74 72 61 72 79 20 75 6e 64 65 63 6c 61 72 65 64 20 6d 65 6d 6f 72 79 .....arbitrary.undeclared.memory
646a0 20 6c 6f 63 61 74 69 6f 6e 73 20 2d 20 6e 6f 74 20 6f 6e 6c 79 20 74 68 65 20 6d 65 6d 6f 72 79 .locations.-.not.only.the.memory
646c0 20 70 6f 69 6e 74 65 64 20 74 6f 20 62 79 20 61 20 64 65 63 6c 61 72 65 64 0a 20 20 20 20 20 20 .pointed.to.by.a.declared.......
646e0 69 6e 64 69 72 65 63 74 20 6f 75 74 70 75 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 indirect.output........</p>.....
64700 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 61 69 6c 75 72 65 20 74 6f 20 64 65 63 6c 61 72 65 20 74 ..<p>.......Failure.to.declare.t
64720 68 65 20 66 75 6c 6c 20 73 65 74 20 6f 66 20 63 6c 6f 62 62 65 72 73 20 66 6f 72 20 61 20 67 69 he.full.set.of.clobbers.for.a.gi
64740 76 65 6e 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 0a 20 20 20 20 20 20 65 78 70 72 65 73 ven.inline.assembly.......expres
64760 73 69 6f 6e 20 69 73 20 75 6e 63 68 65 63 6b 65 64 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 sion.is.unchecked.<a.href="#Unde
64780 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 fined-Behavior">Undefined.Behavi
647a0 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 or</a>........</p>..............
647c0 20 3c 68 32 20 69 64 3d 22 47 6c 6f 62 61 6c 2d 41 73 73 65 6d 62 6c 79 22 3e 3c 61 20 68 72 65 .<h2.id="Global-Assembly"><a.hre
647e0 66 3d 22 23 74 6f 63 2d 47 6c 6f 62 61 6c 2d 41 73 73 65 6d 62 6c 79 22 3e 47 6c 6f 62 61 6c 20 f="#toc-Global-Assembly">Global.
64800 41 73 73 65 6d 62 6c 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 Assembly</a>.<a.class="hdr".href
64820 3d 22 23 47 6c 6f 62 61 6c 2d 41 73 73 65 6d 62 6c 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a ="#Global-Assembly">..</a></h2>.
64840 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 61 6e 20 61 73 73 65 6d 62 6c .......<p>.......When.an.assembl
64860 79 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e 20 61 20 74 6f 70 20 6c 65 76 y.expression.occurs.in.a.top.lev
64880 65 6c 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c el.<a.href="#comptime">comptime<
648a0 2f 61 3e 20 62 6c 6f 63 6b 2c 20 74 68 69 73 20 69 73 0a 20 20 20 20 20 20 3c 73 74 72 6f 6e 67 /a>.block,.this.is.......<strong
648c0 3e 67 6c 6f 62 61 6c 20 61 73 73 65 6d 62 6c 79 3c 2f 73 74 72 6f 6e 67 3e 2e 0a 20 20 20 20 20 >global.assembly</strong>.......
648e0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 6b 69 6e 64 20 .</p>.......<p>.......This.kind.
64900 6f 66 20 61 73 73 65 6d 62 6c 79 20 68 61 73 20 64 69 66 66 65 72 65 6e 74 20 72 75 6c 65 73 20 of.assembly.has.different.rules.
64920 74 68 61 6e 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 2e 20 46 69 72 73 74 2c 20 3c 63 6f than.inline.assembly..First,.<co
64940 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
64960 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 kw">volatile</span></code>......
64980 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 20 62 65 63 61 75 73 65 20 61 6c 6c 20 67 6c 6f 62 61 6c .is.not.valid.because.all.global
649a0 20 61 73 73 65 6d 62 6c 79 20 69 73 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 69 6e 63 .assembly.is.unconditionally.inc
649c0 6c 75 64 65 64 2e 0a 20 20 20 20 20 20 53 65 63 6f 6e 64 2c 20 74 68 65 72 65 20 61 72 65 20 6e luded........Second,.there.are.n
649e0 6f 20 69 6e 70 75 74 73 2c 20 6f 75 74 70 75 74 73 2c 20 6f 72 20 63 6c 6f 62 62 65 72 73 2e 20 o.inputs,.outputs,.or.clobbers..
64a00 41 6c 6c 20 67 6c 6f 62 61 6c 20 61 73 73 65 6d 62 6c 79 20 69 73 20 63 6f 6e 63 61 74 65 6e 61 All.global.assembly.is.concatena
64a20 74 65 64 0a 20 20 20 20 20 20 76 65 72 62 61 74 69 6d 20 69 6e 74 6f 20 6f 6e 65 20 6c 6f 6e 67 ted.......verbatim.into.one.long
64a40 20 73 74 72 69 6e 67 20 61 6e 64 20 61 73 73 65 6d 62 6c 65 64 20 74 6f 67 65 74 68 65 72 2e 20 .string.and.assembled.together..
64a60 54 68 65 72 65 20 61 72 65 20 6e 6f 20 74 65 6d 70 6c 61 74 65 20 73 75 62 73 74 69 74 75 74 69 There.are.no.template.substituti
64a80 6f 6e 20 72 75 6c 65 73 20 72 65 67 61 72 64 69 6e 67 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 25 on.rules.regarding.......<code>%
64aa0 3c 2f 63 6f 64 65 3e 20 61 73 20 74 68 65 72 65 20 61 72 65 20 69 6e 20 69 6e 6c 69 6e 65 20 61 </code>.as.there.are.in.inline.a
64ac0 73 73 65 6d 62 6c 79 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ssembly.expressions........</p>.
64ae0 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 67 6c 6f 62 61 6c 2d 61 73 6d ......<p.class="file">global-asm
64b00 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .zig</p><pre><code.class="zig"><
64b20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
64b40 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 .std.=.<span.class="tok-builtin"
64b60 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
64b80 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c -str">&quot;std&quot;</span>);.<
64ba0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
64bc0 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 .assert.=.std.debug.assert;..<sp
64be0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e an.class="tok-kw">comptime</span
64c00 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 6d >.{.....<span.class="tok-kw">asm
64c20 3c 2f 73 70 61 6e 3e 20 28 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 </span>.(.........<span.class="t
64c40 6f 6b 2d 73 74 72 22 3e 5c 5c 2e 67 6c 6f 62 61 6c 20 6d 79 5f 66 75 6e 63 3b 0a 3c 2f 73 70 61 ok-str">\\.global.my_func;.</spa
64c60 6e 3e 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e n>........<span.class="tok-str">
64c80 5c 5c 2e 74 79 70 65 20 6d 79 5f 66 75 6e 63 2c 20 40 66 75 6e 63 74 69 6f 6e 3b 0a 3c 2f 73 70 \\.type.my_func,.@function;.</sp
64ca0 61 6e 3e 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 an>........<span.class="tok-str"
64cc0 3e 5c 5c 6d 79 5f 66 75 6e 63 3a 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 3c 73 70 61 6e >\\my_func:.</span>........<span
64ce0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 20 20 6c 65 61 20 28 25 72 64 69 2c 25 .class="tok-str">\\..lea.(%rdi,%
64d00 72 73 69 2c 31 29 2c 25 65 61 78 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 3c 73 70 61 6e rsi,1),%eax.</span>........<span
64d20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 20 20 72 65 74 71 0a 3c 2f 73 70 61 6e .class="tok-str">\\..retq.</span
64d40 3e 20 20 20 20 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e >....);.}..<span.class="tok-kw">
64d60 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b extern</span>.<span.class="tok-k
64d80 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e w">fn</span>.<span.class="tok-fn
64da0 22 3e 6d 79 5f 66 75 6e 63 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ">my_func</span>(a:.<span.class=
64dc0 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 "tok-type">i32</span>,.b:.<span.
64de0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 class="tok-type">i32</span>).<sp
64e00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 3b 0a an.class="tok-type">i32</span>;.
64e20 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
64e40 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 67 6c >.<span.class="tok-str">&quot;gl
64e60 6f 62 61 6c 20 61 73 73 65 6d 62 6c 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 obal.assembly&quot;</span>.{....
64e80 20 61 73 73 65 72 74 28 6d 79 5f 66 75 6e 63 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .assert(my_func(<span.class="tok
64ea0 2d 6e 75 6d 62 65 72 22 3e 31 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d -number">12</span>,.<span.class=
64ec0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 34 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e "tok-number">34</span>).==.<span
64ee0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 36 3c 2f 73 70 61 6e 3e 29 3b 0a .class="tok-number">46</span>);.
64f00 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
64f20 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 67 6c 6f 62 61 6c 2d 61 73 6d 2e 7a 69 67 shell">$.zig.test.global-asm.zig
64f40 20 2d 74 61 72 67 65 74 20 78 38 36 5f 36 34 2d 6c 69 6e 75 78 0a 31 2f 31 20 74 65 73 74 20 26 .-target.x86_64-linux.1/1.test.&
64f60 71 75 6f 74 3b 67 6c 6f 62 61 6c 20 61 73 73 65 6d 62 6c 79 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a quot;global.assembly&quot;...OK.
64f80 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a All.tests.passed..</code></pre>.
64fa0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 41 74 ......................<h1.id="At
64fc0 6f 6d 69 63 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 41 74 6f 6d 69 63 73 22 3e 41 74 omics"><a.href="#toc-Atomics">At
64fe0 6f 6d 69 63 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 omics</a>.<a.class="hdr".href="#
65000 41 74 6f 6d 69 63 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 Atomics">..</a></h1>........<p>T
65020 4f 44 4f 3a 20 40 66 65 6e 63 65 28 29 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a ODO:.@fence()</p>.......<p>TODO:
65040 20 40 61 74 6f 6d 69 63 20 72 6d 77 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 .@atomic.rmw</p>.......<p>TODO:.
65060 62 75 69 6c 74 69 6e 20 61 74 6f 6d 69 63 20 6d 65 6d 6f 72 79 20 6f 72 64 65 72 69 6e 67 20 65 builtin.atomic.memory.ordering.e
65080 6e 75 6d 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 41 73 79 num</p>..............<h1.id="Asy
650a0 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 41 73 79 6e nc-Functions"><a.href="#toc-Asyn
650c0 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 41 73 79 6e 63 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e c-Functions">Async.Functions</a>
650e0 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 75 6e .<a.class="hdr".href="#Async-Fun
65100 63 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 ctions">..</a></h1>........<p>..
65120 20 20 20 20 20 57 68 65 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 2c 20 .....When.a.function.is.called,.
65140 61 20 66 72 61 6d 65 20 69 73 20 70 75 73 68 65 64 20 74 6f 20 74 68 65 20 73 74 61 63 6b 2c 0a a.frame.is.pushed.to.the.stack,.
65160 20 20 20 20 20 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 73 20 75 6e 74 69 6c 20 69 74 ......the.function.runs.until.it
65180 20 72 65 61 63 68 65 73 20 61 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 2c 20 61 6e 64 .reaches.a.return.statement,.and
651a0 20 74 68 65 6e 20 74 68 65 20 66 72 61 6d 65 20 69 73 20 70 6f 70 70 65 64 20 66 72 6f 6d 20 74 .then.the.frame.is.popped.from.t
651c0 68 65 20 73 74 61 63 6b 2e 0a 20 20 20 20 20 20 41 74 20 74 68 65 20 63 61 6c 6c 73 69 74 65 2c he.stack........At.the.callsite,
651e0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 20 64 6f 65 73 20 6e 6f 74 20 72 75 6e .the.following.code.does.not.run
65200 20 75 6e 74 69 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 2e 0a 20 20 20 .until.the.function.returns.....
65220 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6e 20 61 73 79 6e 63 ...</p>.......<p>.......An.async
65240 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 6f 73 65 20 63 61 .function.is.a.function.whose.ca
65260 6c 6c 73 69 74 65 20 69 73 20 73 70 6c 69 74 20 69 6e 74 6f 20 61 6e 20 3c 63 6f 64 65 20 63 6c llsite.is.split.into.an.<code.cl
65280 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 ass="zig"><span.class="tok-kw">a
652a0 73 79 6e 63 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 6e 69 74 69 61 74 69 6f 6e 2c 0a 20 sync</span></code>.initiation,..
652c0 20 20 20 20 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d .....followed.by.an.<code.class=
652e0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 "zig"><span.class="tok-kw">await
65300 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 20 49 74 73 20 66 </span></code>.completion..Its.f
65320 72 61 6d 65 20 69 73 0a 20 20 20 20 20 20 70 72 6f 76 69 64 65 64 20 65 78 70 6c 69 63 69 74 6c rame.is.......provided.explicitl
65340 79 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72 2c 20 61 6e 64 20 69 74 20 63 61 6e 20 62 65 20 73 y.by.the.caller,.and.it.can.be.s
65360 75 73 70 65 6e 64 65 64 20 61 6e 64 20 72 65 73 75 6d 65 64 20 61 6e 79 20 6e 75 6d 62 65 72 20 uspended.and.resumed.any.number.
65380 6f 66 20 74 69 6d 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 of.times........</p>.......<p>..
653a0 20 20 20 20 20 5a 69 67 20 69 6e 66 65 72 73 20 74 68 61 74 20 61 20 66 75 6e 63 74 69 6f 6e 20 .....Zig.infers.that.a.function.
653c0 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 is.<code.class="zig"><span.class
653e0 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 68 ="tok-kw">async</span></code>.wh
65400 65 6e 20 69 74 20 6f 62 73 65 72 76 65 73 20 74 68 61 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e en.it.observes.that.the.function
65420 20 63 6f 6e 74 61 69 6e 73 0a 20 20 20 20 20 20 61 20 3c 73 74 72 6f 6e 67 3e 73 75 73 70 65 6e .contains.......a.<strong>suspen
65440 73 69 6f 6e 20 70 6f 69 6e 74 3c 2f 73 74 72 6f 6e 67 3e 2e 20 41 73 79 6e 63 20 66 75 6e 63 74 sion.point</strong>..Async.funct
65460 69 6f 6e 73 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 74 68 65 20 73 61 6d 65 20 61 73 20 6e ions.can.be.called.the.same.as.n
65480 6f 72 6d 61 6c 20 66 75 6e 63 74 69 6f 6e 73 2e 20 41 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f ormal.functions..A.......functio
654a0 6e 20 63 61 6c 6c 20 6f 66 20 61 6e 20 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 n.call.of.an.async.function.is.a
654c0 20 73 75 73 70 65 6e 64 20 70 6f 69 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 .suspend.point........</p>......
654e0 20 3c 68 32 20 69 64 3d 22 53 75 73 70 65 6e 64 2d 61 6e 64 2d 52 65 73 75 6d 65 22 3e 3c 61 20 .<h2.id="Suspend-and-Resume"><a.
65500 68 72 65 66 3d 22 23 74 6f 63 2d 53 75 73 70 65 6e 64 2d 61 6e 64 2d 52 65 73 75 6d 65 22 3e 53 href="#toc-Suspend-and-Resume">S
65520 75 73 70 65 6e 64 20 61 6e 64 20 52 65 73 75 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 uspend.and.Resume</a>.<a.class="
65540 68 64 72 22 20 68 72 65 66 3d 22 23 53 75 73 70 65 6e 64 2d 61 6e 64 2d 52 65 73 75 6d 65 22 3e hdr".href="#Suspend-and-Resume">
65560 c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 74 20 ..</a></h2>........<p>.......At.
65580 61 6e 79 20 70 6f 69 6e 74 2c 20 61 20 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 73 75 73 70 65 6e any.point,.a.function.may.suspen
655a0 64 20 69 74 73 65 6c 66 2e 20 54 68 69 73 20 63 61 75 73 65 73 20 63 6f 6e 74 72 6f 6c 20 66 6c d.itself..This.causes.control.fl
655c0 6f 77 20 74 6f 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 6f 20 74 68 65 20 63 61 6c 6c 73 69 ow.to.......return.to.the.callsi
655e0 74 65 20 28 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 73 75 73 te.(in.the.case.of.the.first.sus
65600 70 65 6e 73 69 6f 6e 29 2c 0a 20 20 20 20 20 20 6f 72 20 72 65 73 75 6d 65 72 20 28 69 6e 20 74 pension),.......or.resumer.(in.t
65620 68 65 20 63 61 73 65 20 6f 66 20 73 75 62 73 65 71 75 65 6e 74 20 73 75 73 70 65 6e 73 69 6f 6e he.case.of.subsequent.suspension
65640 73 29 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 s)........</p>.......<p.class="f
65660 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 ile">test.zig</p><pre><code.clas
65680 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e s="zig"><span.class="tok-kw">con
656a0 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b st</span>.std.=.<span.class="tok
656c0 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 -builtin">@import</span>(<span.c
656e0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f lass="tok-str">&quot;std&quot;</
65700 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e span>);.<span.class="tok-kw">con
65720 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 st</span>.assert.=.std.debug.ass
65740 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f ert;..<span.class="tok-kw">var</
65760 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e span>.x:.<span.class="tok-type">
65780 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 i32</span>.=.<span.class="tok-nu
657a0 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f mber">1</span>;..<span.class="to
657c0 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 k-kw">test</span>.<span.class="t
657e0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 75 73 70 65 6e 64 20 77 69 74 68 20 6e 6f 20 72 65 ok-str">&quot;suspend.with.no.re
65800 73 75 6d 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c sume&quot;</span>.{.....<span.cl
65820 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 72 61 6d 65 20 3d 20 ass="tok-kw">var</span>.frame.=.
65840 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e <span.class="tok-kw">async</span
65860 3e 20 66 75 6e 63 28 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 >.func();.....assert(x.==.<span.
65880 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a class="tok-number">2</span>);.}.
658a0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">fn</span>.
658c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 75 6e 63 3c 2f 73 70 61 6e 3e <span.class="tok-fn">func</span>
658e0 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f ().<span.class="tok-type">void</
65900 73 70 61 6e 3e 20 7b 0a 20 20 20 20 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f span>.{.....x.+=.<span.class="to
65920 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c k-number">1</span>;.....<span.cl
65940 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 ass="tok-kw">suspend</span>;....
65960 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 .<span.class="tok-comment">//.Th
65980 69 73 20 6c 69 6e 65 20 69 73 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 20 62 65 63 61 75 73 65 is.line.is.never.reached.because
659a0 20 74 68 65 20 73 75 73 70 65 6e 64 20 68 61 73 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 72 65 73 .the.suspend.has.no.matching.res
659c0 75 6d 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ume.</span>.....x.+=.<span.class
659e0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e ="tok-number">1</span>;.}</code>
65a00 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 </pre><pre><code.class="shell">$
65a20 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f .zig.test.test.zig.1/1.test.&quo
65a40 74 3b 73 75 73 70 65 6e 64 20 77 69 74 68 20 6e 6f 20 72 65 73 75 6d 65 26 71 75 6f 74 3b 2e 2e t;suspend.with.no.resume&quot;..
65a60 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 .OK.All.tests.passed..</code></p
65a80 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 65 20 73 61 6d 65 re>........<p>.......In.the.same
65aa0 20 77 61 79 20 74 68 61 74 20 65 61 63 68 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 73 68 6f 75 6c 64 .way.that.each.allocation.should
65ac0 20 68 61 76 65 20 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 66 72 65 65 2c 0a 20 20 20 20 .have.a.corresponding.free,.....
65ae0 20 20 45 61 63 68 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ..Each.<code.class="zig"><span.c
65b00 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f lass="tok-kw">suspend</span></co
65b20 64 65 3e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 de>.should.have.a.corresponding.
65b40 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
65b60 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 ok-kw">resume</span></code>.....
65b80 20 20 20 41 20 3c 73 74 72 6f 6e 67 3e 73 75 73 70 65 6e 64 20 62 6c 6f 63 6b 3c 2f 73 74 72 6f ...A.<strong>suspend.block</stro
65ba0 6e 67 3e 20 61 6c 6c 6f 77 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 70 75 74 20 61 20 70 ng>.allows.a.function.to.put.a.p
65bc0 6f 69 6e 74 65 72 20 74 6f 20 69 74 73 20 6f 77 6e 0a 20 20 20 20 20 20 66 72 61 6d 65 20 73 6f ointer.to.its.own.......frame.so
65be0 6d 65 77 68 65 72 65 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 69 6e 74 6f 20 61 6e 20 65 76 65 mewhere,.for.example.into.an.eve
65c00 6e 74 20 6c 6f 6f 70 2c 20 65 76 65 6e 20 69 66 20 74 68 61 74 20 61 63 74 69 6f 6e 20 77 69 6c nt.loop,.even.if.that.action.wil
65c20 6c 20 70 65 72 66 6f 72 6d 20 61 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a l.perform.a.......<code.class="z
65c40 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c ig"><span.class="tok-kw">resume<
65c60 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 70 65 72 61 74 69 6f 6e 20 6f 6e 20 61 20 64 69 66 /span></code>.operation.on.a.dif
65c80 66 65 72 65 6e 74 20 74 68 72 65 61 64 2e 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 66 ferent.thread........<a.href="#f
65ca0 72 61 6d 65 22 3e 40 66 72 61 6d 65 3c 2f 61 3e 20 70 72 6f 76 69 64 65 73 20 61 63 63 65 73 73 rame">@frame</a>.provides.access
65cc0 20 74 6f 20 74 68 65 20 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 66 72 61 6d 65 20 70 6f 69 .to.the.async.function.frame.poi
65ce0 6e 74 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d nter........</p>.......<p.class=
65d00 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c "file">test.zig</p><pre><code.cl
65d20 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
65d40 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 onst</span>.std.=.<span.class="t
65d60 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ok-builtin">@import</span>(<span
65d80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b .class="tok-str">&quot;std&quot;
65da0 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 </span>);.<span.class="tok-kw">c
65dc0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 onst</span>.assert.=.std.debug.a
65de0 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 ssert;..<span.class="tok-kw">var
65e00 3c 2f 73 70 61 6e 3e 20 74 68 65 5f 66 72 61 6d 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>.the_frame:.<span.class="
65e20 74 6f 6b 2d 6b 77 22 3e 61 6e 79 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 tok-kw">anyframe</span>.=.<span.
65e40 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e class="tok-null">undefined</span
65e60 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 >;.<span.class="tok-kw">var</spa
65e80 6e 3e 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c n>.result.=.<span.class="tok-nul
65ea0 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 l">false</span>;..<span.class="t
65ec0 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ok-kw">test</span>.<span.class="
65ee0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 tok-str">&quot;async.function.su
65f00 73 70 65 6e 64 20 77 69 74 68 20 62 6c 6f 63 6b 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a spend.with.block&quot;</span>.{.
65f20 20 20 20 20 5f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 ...._.=.<span.class="tok-kw">asy
65f40 6e 63 3c 2f 73 70 61 6e 3e 20 74 65 73 74 53 75 73 70 65 6e 64 42 6c 6f 63 6b 28 29 3b 0a 20 20 nc</span>.testSuspendBlock();...
65f60 20 20 61 73 73 65 72 74 28 21 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ..assert(!result);.....<span.cla
65f80 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 20 74 68 65 5f 66 72 ss="tok-kw">resume</span>.the_fr
65fa0 61 6d 65 3b 0a 20 20 20 20 61 73 73 65 72 74 28 72 65 73 75 6c 74 29 3b 0a 7d 0a 0a 3c 73 70 61 ame;.....assert(result);.}..<spa
65fc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e n.class="tok-kw">fn</span>.<span
65fe0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 65 73 74 53 75 73 70 65 6e 64 42 6c 6f 63 6b .class="tok-fn">testSuspendBlock
66000 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 </span>().<span.class="tok-type"
66020 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >void</span>.{.....<span.class="
66040 74 6f 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 tok-kw">suspend</span>.{........
66060 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f .<span.class="tok-kw">comptime</
66080 73 70 61 6e 3e 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 span>.assert(<span.class="tok-bu
660a0 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 iltin">@typeOf</span>(<span.clas
660c0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 28 29 29 s="tok-builtin">@frame</span>())
660e0 20 3d 3d 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 .==.*<span.class="tok-builtin">@
66100 46 72 61 6d 65 3c 2f 73 70 61 6e 3e 28 74 65 73 74 53 75 73 70 65 6e 64 42 6c 6f 63 6b 29 29 3b Frame</span>(testSuspendBlock));
66120 0a 20 20 20 20 20 20 20 20 74 68 65 5f 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 .........the_frame.=.<span.class
66140 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 28 29 3b 0a ="tok-builtin">@frame</span>();.
66160 20 20 20 20 7d 0a 20 20 20 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ....}.....result.=.<span.class="
66180 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c tok-null">true</span>;.}</code><
661a0 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 /pre><pre><code.class="shell">$.
661c0 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 zig.test.test.zig.1/1.test.&quot
661e0 3b 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 73 70 65 6e 64 20 77 69 74 68 20 62 6c 6f ;async.function.suspend.with.blo
66200 63 6b 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a ck&quot;...OK.All.tests.passed..
66220 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c </code></pre>........<p>.......<
66240 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
66260 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 75 73 k-kw">suspend</span></code>.caus
66280 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d es.a.function.to.be.<code.class=
662a0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 "zig"><span.class="tok-kw">async
662c0 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 </span></code>........</p>......
662e0 20 20 3c 68 33 20 69 64 3d 22 52 65 73 75 6d 69 6e 67 2d 66 72 6f 6d 2d 53 75 73 70 65 6e 64 2d ..<h3.id="Resuming-from-Suspend-
66300 42 6c 6f 63 6b 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 52 65 73 75 6d 69 6e 67 2d 66 Blocks"><a.href="#toc-Resuming-f
66320 72 6f 6d 2d 53 75 73 70 65 6e 64 2d 42 6c 6f 63 6b 73 22 3e 52 65 73 75 6d 69 6e 67 20 66 72 6f rom-Suspend-Blocks">Resuming.fro
66340 6d 20 53 75 73 70 65 6e 64 20 42 6c 6f 63 6b 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 m.Suspend.Blocks</a>.<a.class="h
66360 64 72 22 20 68 72 65 66 3d 22 23 52 65 73 75 6d 69 6e 67 2d 66 72 6f 6d 2d 53 75 73 70 65 6e 64 dr".href="#Resuming-from-Suspend
66380 2d 42 6c 6f 63 6b 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a -Blocks">..</a></h3>........<p>.
663a0 20 20 20 20 20 20 55 70 6f 6e 20 65 6e 74 65 72 69 6e 67 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 ......Upon.entering.a.<code.clas
663c0 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 s="zig"><span.class="tok-kw">sus
663e0 70 65 6e 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 6c 6f 63 6b 2c 20 74 68 65 20 61 73 pend</span></code>.block,.the.as
66400 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 6c 72 65 61 64 79 20 63 6f 6e 73 69 64 65 72 ync.function.is.already.consider
66420 65 64 0a 20 20 20 20 20 20 73 75 73 70 65 6e 64 65 64 2c 20 61 6e 64 20 63 61 6e 20 62 65 20 72 ed.......suspended,.and.can.be.r
66440 65 73 75 6d 65 64 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 73 74 61 72 esumed..For.example,.if.you.star
66460 74 65 64 20 61 6e 6f 74 68 65 72 20 6b 65 72 6e 65 6c 20 74 68 72 65 61 64 2c 0a 20 20 20 20 20 ted.another.kernel.thread,......
66480 20 61 6e 64 20 68 61 64 20 74 68 61 74 20 74 68 72 65 61 64 20 63 61 6c 6c 20 3c 63 6f 64 65 20 .and.had.that.thread.call.<code.
664a0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
664c0 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 6e 20 74 68 65 20 66 72 61 >resume</span></code>.on.the.fra
664e0 6d 65 20 70 6f 69 6e 74 65 72 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 0a 20 20 20 20 20 me.pointer.provided.by.the......
66500 20 3c 61 20 68 72 65 66 3d 22 23 66 72 61 6d 65 22 3e 40 66 72 61 6d 65 3c 2f 61 3e 2c 20 74 68 .<a.href="#frame">@frame</a>,.th
66520 65 20 6e 65 77 20 74 68 72 65 61 64 20 77 6f 75 6c 64 20 62 65 67 69 6e 20 65 78 65 63 75 74 69 e.new.thread.would.begin.executi
66540 6e 67 20 61 66 74 65 72 20 74 68 65 20 73 75 73 70 65 6e 64 0a 20 20 20 20 20 20 62 6c 6f 63 6b ng.after.the.suspend.......block
66560 2c 20 77 68 69 6c 65 20 74 68 65 20 6f 6c 64 20 74 68 72 65 61 64 20 63 6f 6e 74 69 6e 75 65 64 ,.while.the.old.thread.continued
66580 20 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 73 75 73 70 65 6e 64 20 62 6c 6f 63 6b 2e 0a 20 20 .executing.the.suspend.block....
665a0 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 ....</p>.......<p>.......However
665c0 2c 20 74 68 65 20 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 64 69 72 65 ,.the.async.function.can.be.dire
665e0 63 74 6c 79 20 72 65 73 75 6d 65 64 20 66 72 6f 6d 20 74 68 65 20 73 75 73 70 65 6e 64 20 62 6c ctly.resumed.from.the.suspend.bl
66600 6f 63 6b 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 69 74 0a 20 20 20 20 20 20 6e 65 76 65 ock,.in.which.case.it.......neve
66620 72 20 72 65 74 75 72 6e 73 20 74 6f 20 69 74 73 20 72 65 73 75 6d 65 72 20 61 6e 64 20 63 6f 6e r.returns.to.its.resumer.and.con
66640 74 69 6e 75 65 73 20 65 78 65 63 75 74 69 6e 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 tinues.executing........</p>....
66660 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
66680 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
666a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 s="tok-kw">const</span>.std.=.<s
666c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c pan.class="tok-builtin">@import<
666e0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>(<span.class="tok-str">&qu
66700 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 ot;std&quot;</span>);.<span.clas
66720 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d s="tok-kw">const</span>.assert.=
66740 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d .std.debug.assert;..<span.class=
66760 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
66780 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 65 73 75 6d 65 20 66 72 6f 6d 20 73 75 73 ="tok-str">&quot;resume.from.sus
667a0 70 65 6e 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c pend&quot;</span>.{.....<span.cl
667c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6d 79 5f 72 65 73 75 6c ass="tok-kw">var</span>.my_resul
667e0 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 t:.<span.class="tok-type">i32</s
66800 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e pan>.=.<span.class="tok-number">
66820 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 1</span>;....._.=.<span.class="t
66840 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e 3e 20 74 65 73 74 52 65 73 75 6d 65 46 72 ok-kw">async</span>.testResumeFr
66860 6f 6d 53 75 73 70 65 6e 64 28 26 61 6d 70 3b 6d 79 5f 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 73 omSuspend(&amp;my_result);.....s
66880 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 6d 79 5f 72 65 73 75 6c 74 20 3d 3d 20 3c 73 70 td.debug.assert(my_result.==.<sp
668a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b an.class="tok-number">2</span>);
668c0 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e .}.<span.class="tok-kw">fn</span
668e0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 65 73 74 52 65 73 75 6d >.<span.class="tok-fn">testResum
66900 65 46 72 6f 6d 53 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 28 6d 79 5f 72 65 73 75 6c 74 3a 20 2a eFromSuspend</span>(my_result:.*
66920 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e <span.class="tok-type">i32</span
66940 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f >).<span.class="tok-type">void</
66960 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
66980 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 >suspend</span>.{.........<span.
669a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 class="tok-kw">resume</span>.<sp
669c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 72 61 6d 65 3c 2f 73 an.class="tok-builtin">@frame</s
669e0 70 61 6e 3e 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 6d 79 5f 72 65 73 75 6c 74 2e 2a 20 2b 3d pan>();.....}.....my_result.*.+=
66a00 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 .<span.class="tok-number">1</spa
66a20 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 n>;.....<span.class="tok-kw">sus
66a40 70 65 6e 64 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 6d 79 5f 72 65 73 75 6c 74 2e 2a 20 2b 3d 20 pend</span>;.....my_result.*.+=.
66a60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e <span.class="tok-number">1</span
66a80 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 >;.}</code></pre><pre><code.clas
66aa0 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f s="shell">$.zig.test.test.zig.1/
66ac0 31 20 74 65 73 74 20 26 71 75 6f 74 3b 72 65 73 75 6d 65 20 66 72 6f 6d 20 73 75 73 70 65 6e 64 1.test.&quot;resume.from.suspend
66ae0 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f &quot;...OK.All.tests.passed..</
66b00 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 code></pre>........<p>.......Thi
66b20 73 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 74 61 69 6c 20 63 61 6c 6c 2c 20 61 6e s.is.guaranteed.to.tail.call,.an
66b40 64 20 74 68 65 72 65 66 6f 72 65 20 77 69 6c 6c 20 6e 6f 74 20 63 61 75 73 65 20 61 20 6e 65 77 d.therefore.will.not.cause.a.new
66b60 20 73 74 61 63 6b 20 66 72 61 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a .stack.frame........</p>........
66b80 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 73 79 6e 63 2d 61 6e 64 2d ..............<h2.id="Async-and-
66ba0 41 77 61 69 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 41 73 79 6e 63 2d 61 6e 64 2d 41 Await"><a.href="#toc-Async-and-A
66bc0 77 61 69 74 22 3e 41 73 79 6e 63 20 61 6e 64 20 41 77 61 69 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 wait">Async.and.Await</a>.<a.cla
66be0 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 61 6e 64 2d 41 77 61 69 74 22 ss="hdr".href="#Async-and-Await"
66c00 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e >..</a></h2>........<p>.......In
66c20 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 65 76 65 72 79 20 3c 63 6f 64 65 20 63 .the.same.way.that.every.<code.c
66c40 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
66c60 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 61 20 6d 61 74 63 suspend</span></code>.has.a.matc
66c80 68 69 6e 67 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 hing.......<code.class="zig"><sp
66ca0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 3c an.class="tok-kw">resume</span><
66cc0 2f 63 6f 64 65 3e 2c 20 65 76 65 72 79 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e /code>,.every.<code.class="zig">
66ce0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e <span.class="tok-kw">async</span
66d00 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 61 20 6d 61 74 63 68 69 6e 67 20 3c 63 6f 64 65 20 63 6c ></code>.has.a.matching.<code.cl
66d20 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 ass="zig"><span.class="tok-kw">a
66d40 77 61 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 wait</span></code>........</p>..
66d60 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 .....<p.class="file">test.zig</p
66d80 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ><pre><code.class="zig"><span.cl
66da0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 ass="tok-kw">const</span>.std.=.
66dc0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
66de0 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
66e00 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c quot;std&quot;</span>);.<span.cl
66e20 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 ass="tok-kw">const</span>.assert
66e40 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 .=.std.debug.assert;..<span.clas
66e60 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">test</span>.<span.cla
66e80 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 73 79 6e 63 20 61 6e 64 20 61 77 61 ss="tok-str">&quot;async.and.awa
66ea0 69 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 it&quot;</span>.{.....<span.clas
66ec0 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 48 65 72 65 20 77 65 20 68 61 76 65 20 s="tok-comment">//.Here.we.have.
66ee0 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 77 68 65 72 65 20 77 65 20 64 6f 20 6e 6f 74 20 6d 61 74 an.exception.where.we.do.not.mat
66f00 63 68 20 61 6e 20 61 73 79 6e 63 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ch.an.async</span>.....<span.cla
66f20 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 77 69 74 68 20 61 6e 20 61 77 61 69 ss="tok-comment">//.with.an.awai
66f40 74 2e 20 54 68 65 20 74 65 73 74 20 62 6c 6f 63 6b 20 69 73 20 6e 6f 74 20 61 73 79 6e 63 20 61 t..The.test.block.is.not.async.a
66f60 6e 64 20 73 6f 20 63 61 6e 6e 6f 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c nd.so.cannot</span>.....<span.cl
66f80 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 68 61 76 65 20 61 20 73 75 73 70 ass="tok-comment">//.have.a.susp
66fa0 65 6e 64 20 70 6f 69 6e 74 20 69 6e 20 69 74 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 end.point.in.it.</span>.....<spa
66fc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 69 73 n.class="tok-comment">//.This.is
66fe0 20 77 65 6c 6c 2d 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2c 20 61 6e 64 20 65 76 65 72 .well-defined.behavior,.and.ever
67000 79 74 68 69 6e 67 20 69 73 20 4f 4b 20 68 65 72 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 ything.is.OK.here.</span>.....<s
67020 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 6f 74 65 20 pan.class="tok-comment">//.Note.
67040 68 6f 77 65 76 65 72 20 74 68 61 74 20 74 68 65 72 65 20 77 6f 75 6c 64 20 62 65 20 6e 6f 20 77 however.that.there.would.be.no.w
67060 61 79 20 74 6f 20 63 6f 6c 6c 65 63 74 20 74 68 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 ay.to.collect.the</span>.....<sp
67080 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 72 65 74 75 72 6e an.class="tok-comment">//.return
670a0 20 76 61 6c 75 65 20 6f 66 20 61 6d 61 69 6e 2c 20 69 66 20 69 74 20 77 65 72 65 20 73 6f 6d 65 .value.of.amain,.if.it.were.some
670c0 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 76 6f 69 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 thing.other.than.void.</span>...
670e0 20 20 5f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 .._.=.<span.class="tok-kw">async
67100 3c 2f 73 70 61 6e 3e 20 61 6d 61 69 6e 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d </span>.amain();.}..<span.class=
67120 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
67140 74 6f 6b 2d 66 6e 22 3e 61 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 tok-fn">amain</span>().<span.cla
67160 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 ss="tok-type">void</span>.{.....
67180 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">var</span>.
671a0 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 frame.=.<span.class="tok-kw">asy
671c0 6e 63 3c 2f 73 70 61 6e 3e 20 66 75 6e 63 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 nc</span>.func();.....<span.clas
671e0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 s="tok-kw">comptime</span>.asser
67200 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 t(<span.class="tok-builtin">@typ
67220 65 4f 66 3c 2f 73 70 61 6e 3e 28 66 72 61 6d 65 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 eOf</span>(frame).==.<span.class
67240 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 46 72 61 6d 65 3c 2f 73 70 61 6e 3e 28 66 75 6e ="tok-builtin">@Frame</span>(fun
67260 63 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 c));......<span.class="tok-kw">c
67280 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f onst</span>.ptr:.<span.class="to
672a0 6b 2d 6b 77 22 3e 61 6e 79 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 2d 26 67 74 3b 3c 73 70 61 6e 20 k-kw">anyframe</span>-&gt;<span.
672c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 3d 20 26 class="tok-type">void</span>.=.&
672e0 61 6d 70 3b 66 72 61 6d 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d amp;frame;.....<span.class="tok-
67300 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6e 79 5f 70 74 72 3a 20 3c 73 70 61 6e 20 kw">const</span>.any_ptr:.<span.
67320 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 20 3d class="tok-kw">anyframe</span>.=
67340 20 70 74 72 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e .ptr;......<span.class="tok-kw">
67360 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 20 61 6e 79 5f 70 74 72 3b 0a 20 20 20 20 3c 73 70 61 6e resume</span>.any_ptr;.....<span
67380 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 20 70 74 72 .class="tok-kw">await</span>.ptr
673a0 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 ;.}..<span.class="tok-kw">fn</sp
673c0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 75 6e 63 3c 2f 73 an>.<span.class="tok-fn">func</s
673e0 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f pan>().<span.class="tok-type">vo
67400 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b id</span>.{.....<span.class="tok
67420 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 -kw">suspend</span>;.}</code></p
67440 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
67460 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 61 g.test.test.zig.1/1.test.&quot;a
67480 73 79 6e 63 20 61 6e 64 20 61 77 61 69 74 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 sync.and.await&quot;...OK.All.te
674a0 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 sts.passed..</code></pre>.......
674c0 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 .<p>.......The.<code.class="zig"
674e0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 ><span.class="tok-kw">await</spa
67500 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6f n></code>.keyword.is.used.to.coo
67520 72 64 69 6e 61 74 65 20 77 69 74 68 20 61 6e 20 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 27 73 rdinate.with.an.async.function's
67540 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 .......<code.class="zig"><span.c
67560 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 lass="tok-kw">return</span></cod
67580 65 3e 20 73 74 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c e>.statement........</p>.......<
675a0 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e p>.......<code.class="zig"><span
675c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f .class="tok-kw">await</span></co
675e0 64 65 3e 20 69 73 20 61 20 73 75 73 70 65 6e 64 20 70 6f 69 6e 74 2c 20 61 6e 64 20 74 61 6b 65 de>.is.a.suspend.point,.and.take
67600 73 20 61 73 20 61 6e 20 6f 70 65 72 61 6e 64 20 61 6e 79 74 68 69 6e 67 20 74 68 61 74 0a 20 20 s.as.an.operand.anything.that...
67620 20 20 20 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 73 20 74 6f 20 3c 63 6f 64 65 20 63 6c ....implicitly.casts.to.<code.cl
67640 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 ass="zig"><span.class="tok-kw">a
67660 6e 79 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 2d 26 67 74 3b 54 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 nyframe</span>-&gt;T</code>.....
67680 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 69 73 ...</p>.......<p>.......There.is
676a0 20 61 20 63 6f 6d 6d 6f 6e 20 6d 69 73 63 6f 6e 63 65 70 74 69 6f 6e 20 74 68 61 74 20 3c 63 6f .a.common.misconception.that.<co
676c0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
676e0 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 73 75 6d 65 73 20 kw">await</span></code>.resumes.
67700 74 68 65 20 74 61 72 67 65 74 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 49 74 20 69 73 the.target.function........It.is
67720 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 20 61 72 6f 75 6e 64 3a 20 69 74 20 73 75 73 70 65 6e .the.other.way.around:.it.suspen
67740 64 73 20 75 6e 74 69 6c 20 74 68 65 20 74 61 72 67 65 74 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d ds.until.the.target.function.com
67760 70 6c 65 74 65 73 2e 0a 20 20 20 20 20 20 49 6e 20 74 68 65 20 65 76 65 6e 74 20 74 68 61 74 20 pletes........In.the.event.that.
67780 74 68 65 20 74 61 72 67 65 74 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 61 6c 72 65 61 64 79 20 the.target.function.has.already.
677a0 63 6f 6d 70 6c 65 74 65 64 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 completed,.<code.class="zig"><sp
677c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 3c 2f an.class="tok-kw">await</span></
677e0 63 6f 64 65 3e 0a 20 20 20 20 20 20 64 6f 65 73 20 6e 6f 74 20 73 75 73 70 65 6e 64 3b 20 69 6e code>.......does.not.suspend;.in
67800 73 74 65 61 64 20 69 74 20 63 6f 70 69 65 73 20 74 68 65 0a 20 20 20 20 20 20 72 65 74 75 72 6e stead.it.copies.the.......return
67820 20 76 61 6c 75 65 20 64 69 72 65 63 74 6c 79 20 66 72 6f 6d 20 74 68 65 20 74 61 72 67 65 74 20 .value.directly.from.the.target.
67840 66 75 6e 63 74 69 6f 6e 27 73 20 66 72 61 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 function's.frame........</p>....
67860 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
67880 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
678a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 s="tok-kw">const</span>.std.=.<s
678c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c pan.class="tok-builtin">@import<
678e0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>(<span.class="tok-str">&qu
67900 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 ot;std&quot;</span>);.<span.clas
67920 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d s="tok-kw">const</span>.assert.=
67940 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d .std.debug.assert;..<span.class=
67960 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 74 68 65 5f 66 72 61 6d 65 3a 20 3c "tok-kw">var</span>.the_frame:.<
67980 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 66 72 61 6d 65 3c 2f 73 70 span.class="tok-kw">anyframe</sp
679a0 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 an>.=.<span.class="tok-null">und
679c0 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d efined</span>;.<span.class="tok-
679e0 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 69 6e 61 6c 5f 72 65 73 75 6c 74 3a 20 3c 73 70 kw">var</span>.final_result:.<sp
67a00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d an.class="tok-type">i32</span>.=
67a20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 .<span.class="tok-number">0</spa
67a40 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f n>;..<span.class="tok-kw">test</
67a60 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>.<span.class="tok-str">&quo
67a80 74 3b 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 61 77 61 69 74 26 71 75 6f 74 3b 3c 2f 73 70 t;async.function.await&quot;</sp
67aa0 61 6e 3e 20 7b 0a 20 20 20 20 73 65 71 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 an>.{.....seq(<span.class="tok-s
67ac0 74 72 22 3e 27 61 27 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 5f 20 3d 20 3c 73 70 61 6e 20 63 tr">'a'</span>);....._.=.<span.c
67ae0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e 3e 20 61 6d 61 69 6e lass="tok-kw">async</span>.amain
67b00 28 29 3b 0a 20 20 20 20 73 65 71 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 ();.....seq(<span.class="tok-str
67b20 22 3e 27 66 27 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">'f'</span>);.....<span.class="
67b40 74 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 20 74 68 65 5f 66 72 61 6d 65 3b tok-kw">resume</span>.the_frame;
67b60 0a 20 20 20 20 73 65 71 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 .....seq(<span.class="tok-str">'
67b80 69 27 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 66 69 6e 61 6c 5f 72 65 73 i'</span>);.....assert(final_res
67ba0 75 6c 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e ult.==.<span.class="tok-number">
67bc0 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 74 64 2e 6d 65 6d 1234</span>);.....assert(std.mem
67be0 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f .eql(<span.class="tok-type">u8</
67c00 73 70 61 6e 3e 2c 20 73 65 71 5f 70 6f 69 6e 74 73 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 span>,.seq_points,.<span.class="
67c20 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 62 63 64 65 66 67 68 69 26 71 75 6f 74 3b 3c 2f tok-str">&quot;abcdefghi&quot;</
67c40 73 70 61 6e 3e 29 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e span>));.}.<span.class="tok-kw">
67c60 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 fn</span>.<span.class="tok-fn">a
67c80 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 main</span>().<span.class="tok-t
67ca0 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 73 65 71 28 3c 73 70 61 6e ype">void</span>.{.....seq(<span
67cc0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 62 27 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 .class="tok-str">'b'</span>);...
67ce0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e ..<span.class="tok-kw">var</span
67d00 3e 20 66 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 >.f.=.<span.class="tok-kw">async
67d20 3c 2f 73 70 61 6e 3e 20 61 6e 6f 74 68 65 72 28 29 3b 0a 20 20 20 20 73 65 71 28 3c 73 70 61 6e </span>.another();.....seq(<span
67d40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 65 27 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 .class="tok-str">'e'</span>);...
67d60 20 20 66 69 6e 61 6c 5f 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..final_result.=.<span.class="to
67d80 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 20 66 3b 0a 20 20 20 20 73 65 71 28 3c 73 k-kw">await</span>.f;.....seq(<s
67da0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 68 27 3c 2f 73 70 61 6e 3e 29 3b pan.class="tok-str">'h'</span>);
67dc0 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e .}.<span.class="tok-kw">fn</span
67de0 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 6e 6f 74 68 65 72 3c 2f >.<span.class="tok-fn">another</
67e00 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 span>().<span.class="tok-type">i
67e20 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 73 65 71 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 32</span>.{.....seq(<span.class=
67e40 22 74 6f 6b 2d 73 74 72 22 3e 27 63 27 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e "tok-str">'c'</span>);.....<span
67e60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 20 7b .class="tok-kw">suspend</span>.{
67e80 0a 20 20 20 20 20 20 20 20 73 65 71 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 .........seq(<span.class="tok-st
67ea0 72 22 3e 27 64 27 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 74 68 65 5f 66 72 61 6d r">'d'</span>);.........the_fram
67ec0 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 e.=.<span.class="tok-builtin">@f
67ee0 72 61 6d 65 3c 2f 73 70 61 6e 3e 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 73 65 71 28 3c 73 70 rame</span>();.....}.....seq(<sp
67f00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 67 27 3c 2f 73 70 61 6e 3e 29 3b 0a an.class="tok-str">'g'</span>);.
67f20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c ....<span.class="tok-kw">return<
67f40 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e /span>.<span.class="tok-number">
67f60 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 1234</span>;.}..<span.class="tok
67f80 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 65 71 5f 70 6f 69 6e 74 73 20 3d 20 5b 5f 5d -kw">var</span>.seq_points.=.[_]
67fa0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
67fc0 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 {<span.class="tok-number">0</spa
67fe0 6e 3e 7d 20 2a 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 n>}.**.<span.class="tok-str">&qu
68000 6f 74 3b 61 62 63 64 65 66 67 68 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2e 6c 65 6e 3b 0a 3c ot;abcdefghi&quot;</span>.len;.<
68020 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 span.class="tok-kw">var</span>.s
68040 65 71 5f 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 eq_index:.<span.class="tok-type"
68060 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >usize</span>.=.<span.class="tok
68080 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d -number">0</span>;..<span.class=
680a0 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
680c0 74 6f 6b 2d 66 6e 22 3e 73 65 71 3c 2f 73 70 61 6e 3e 28 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 tok-fn">seq</span>(c:.<span.clas
680e0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c s="tok-type">u8</span>).<span.cl
68100 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 ass="tok-type">void</span>.{....
68120 20 73 65 71 5f 70 6f 69 6e 74 73 5b 73 65 71 5f 69 6e 64 65 78 5d 20 3d 20 63 3b 0a 20 20 20 20 .seq_points[seq_index].=.c;.....
68140 73 65 71 5f 69 6e 64 65 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 seq_index.+=.<span.class="tok-nu
68160 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 mber">1</span>;.}</code></pre><p
68180 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
681a0 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 61 73 79 6e 63 20 t.test.zig.1/1.test.&quot;async.
681c0 66 75 6e 63 74 69 6f 6e 20 61 77 61 69 74 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 function.await&quot;...OK.All.te
681e0 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 sts.passed..</code></pre>.......
68200 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 67 65 6e 65 72 61 6c 2c 20 3c 63 6f 64 65 20 63 6c 61 .<p>.......In.general,.<code.cla
68220 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 ss="zig"><span.class="tok-kw">su
68240 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 6c 6f 77 65 72 20 6c 65 76 spend</span></code>.is.lower.lev
68260 65 6c 20 74 68 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 el.than.<code.class="zig"><span.
68280 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 class="tok-kw">await</span></cod
682a0 65 3e 2e 20 4d 6f 73 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 20 20 20 20 63 6f 64 65 20 e>..Most.application.......code.
682c0 77 69 6c 6c 20 75 73 65 20 6f 6e 6c 79 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e will.use.only.<code.class="zig">
682e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e <span.class="tok-kw">async</span
68300 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ></code>.and.<code.class="zig"><
68320 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">await</span>
68340 3c 2f 63 6f 64 65 3e 2c 20 62 75 74 20 65 76 65 6e 74 20 6c 6f 6f 70 0a 20 20 20 20 20 20 69 6d </code>,.but.event.loop.......im
68360 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 77 69 6c 6c 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 3c plementations.will.make.use.of.<
68380 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
683a0 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 6e 74 65 k-kw">suspend</span></code>.inte
683c0 72 6e 61 6c 6c 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 rnally........</p>..............
683e0 20 3c 68 32 20 69 64 3d 22 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 2d 45 78 61 6d 70 6c 65 22 .<h2.id="Async-Function-Example"
68400 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 2d 45 78 ><a.href="#toc-Async-Function-Ex
68420 61 6d 70 6c 65 22 3e 41 73 79 6e 63 20 46 75 6e 63 74 69 6f 6e 20 45 78 61 6d 70 6c 65 3c 2f 61 ample">Async.Function.Example</a
68440 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 75 >.<a.class="hdr".href="#Async-Fu
68460 6e 63 74 69 6f 6e 2d 45 78 61 6d 70 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 nction-Example">..</a></h2>.....
68480 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 75 74 74 69 6e 67 20 61 6c 6c 20 6f 66 20 74 68 69 73 ...<p>.......Putting.all.of.this
684a0 20 74 6f 67 65 74 68 65 72 2c 20 68 65 72 65 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 .together,.here.is.an.example.of
684c0 20 74 79 70 69 63 61 6c 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 .typical.......<code.class="zig"
684e0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 ><span.class="tok-kw">async</spa
68500 6e 3e 3c 2f 63 6f 64 65 3e 2f 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 n></code>/<code.class="zig"><spa
68520 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 n.class="tok-kw">await</span></c
68540 6f 64 65 3e 20 75 73 61 67 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 ode>.usage:.......</p>.......<p.
68560 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 61 73 79 6e 63 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c class="file">async.zig</p><pre><
68580 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
685a0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 k-kw">const</span>.std.=.<span.c
685c0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
685e0 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
68600 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f d&quot;</span>);.<span.class="to
68620 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 6c 6c 6f 63 61 74 6f 72 20 3d 20 73 k-kw">const</span>.Allocator.=.s
68640 74 64 2e 6d 65 6d 2e 41 6c 6c 6f 63 61 74 6f 72 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 td.mem.Allocator;..<span.class="
68660 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 tok-kw">pub</span>.<span.class="
68680 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 tok-kw">fn</span>.<span.class="t
686a0 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-fn">main</span>().<span.class
686c0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 5f 20 ="tok-type">void</span>.{....._.
686e0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 =.<span.class="tok-kw">async</sp
68700 61 6e 3e 20 61 6d 61 69 6e 57 72 61 70 28 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 an>.amainWrap();......<span.clas
68720 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 79 70 69 63 61 6c 6c 79 20 77 65 20 s="tok-comment">//.Typically.we.
68740 77 6f 75 6c 64 20 75 73 65 20 61 6e 20 65 76 65 6e 74 20 6c 6f 6f 70 20 74 6f 20 6d 61 6e 61 67 would.use.an.event.loop.to.manag
68760 65 20 72 65 73 75 6d 69 6e 67 20 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 73 2c 3c 2f 73 70 61 e.resuming.async.functions,</spa
68780 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 n>.....<span.class="tok-comment"
687a0 3e 2f 2f 20 62 75 74 20 69 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 77 65 20 68 61 72 64 20 >//.but.in.this.example.we.hard.
687c0 63 6f 64 65 20 77 68 61 74 20 74 68 65 20 65 76 65 6e 74 20 6c 6f 6f 70 20 77 6f 75 6c 64 20 64 code.what.the.event.loop.would.d
687e0 6f 2c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 o,</span>.....<span.class="tok-c
68800 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 6f 20 6d 61 6b 65 20 74 68 69 6e 67 73 20 64 65 74 65 72 6d omment">//.to.make.things.determ
68820 69 6e 69 73 74 69 63 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d inistic.</span>.....<span.class=
68840 22 74 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 20 67 6c 6f 62 61 6c 5f 66 69 "tok-kw">resume</span>.global_fi
68860 6c 65 5f 66 72 61 6d 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b le_frame;.....<span.class="tok-k
68880 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e 20 67 6c 6f 62 61 6c 5f 64 6f 77 6e 6c 6f 61 64 w">resume</span>.global_download
688a0 5f 66 72 61 6d 65 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e _frame;.}..<span.class="tok-kw">
688c0 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 fn</span>.<span.class="tok-fn">a
688e0 6d 61 69 6e 57 72 61 70 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 mainWrap</span>().<span.class="t
68900 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 6d 61 69 6e ok-type">void</span>.{.....amain
68920 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 ().<span.class="tok-kw">catch</s
68940 70 61 6e 3e 20 7c 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 pan>.|e|.{.........std.debug.war
68960 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 7d n(<span.class="tok-str">&quot;{}
68980 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 65 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 \n&quot;</span>,.e);.........<sp
689a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 an.class="tok-kw">if</span>.(<sp
689c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 52 65 74 an.class="tok-builtin">@errorRet
689e0 75 72 6e 54 72 61 63 65 3c 2f 73 70 61 6e 3e 28 29 29 20 7c 74 72 61 63 65 7c 20 7b 0a 20 20 20 urnTrace</span>()).|trace|.{....
68a00 20 20 20 20 20 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 64 75 6d 70 53 74 61 63 6b 54 72 61 63 .........std.debug.dumpStackTrac
68a20 65 28 74 72 61 63 65 2e 2a 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 74 e(trace.*);.........}.........st
68a40 64 2e 70 72 6f 63 65 73 73 2e 65 78 69 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d d.process.exit(<span.class="tok-
68a60 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 3c 73 70 number">1</span>);.....};.}..<sp
68a80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 an.class="tok-kw">fn</span>.<spa
68aa0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 n.class="tok-fn">amain</span>().
68ac0 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 !<span.class="tok-type">void</sp
68ae0 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 an>.{.....<span.class="tok-kw">c
68b00 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 20 3d 20 73 74 64 2e 68 65 61 70 onst</span>.allocator.=.std.heap
68b20 2e 64 69 72 65 63 74 5f 61 6c 6c 6f 63 61 74 6f 72 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 .direct_allocator;.....<span.cla
68b40 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 64 6f 77 6e 6c 6f 61 64 5f ss="tok-kw">var</span>.download_
68b60 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 frame.=.<span.class="tok-kw">asy
68b80 6e 63 3c 2f 73 70 61 6e 3e 20 66 65 74 63 68 55 72 6c 28 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 nc</span>.fetchUrl(allocator,.<s
68ba0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 74 74 70 73 3a pan.class="tok-str">&quot;https:
68bc0 2f 2f 65 78 61 6d 70 6c 65 2e 63 6f 6d 2f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 //example.com/&quot;</span>);...
68be0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e ..<span.class="tok-kw">var</span
68c00 3e 20 61 77 61 69 74 65 64 5f 64 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e >.awaited_download_frame.=.<span
68c20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a .class="tok-null">false</span>;.
68c40 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 ....<span.class="tok-kw">errdefe
68c60 72 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 r</span>.<span.class="tok-kw">if
68c80 3c 2f 73 70 61 6e 3e 20 28 21 61 77 61 69 74 65 64 5f 64 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 </span>.(!awaited_download_frame
68ca0 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ).{.........<span.class="tok-kw"
68cc0 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 >if</span>.(<span.class="tok-kw"
68ce0 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 20 64 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 29 20 7c 72 >await</span>.download_frame).|r
68d00 7c 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 72 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d |.allocator.free(r).<span.class=
68d20 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 5f 7c 20 7b 7d 0a 20 20 20 20 "tok-kw">else</span>.|_|.{}.....
68d40 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 };......<span.class="tok-kw">var
68d60 3c 2f 73 70 61 6e 3e 20 66 69 6c 65 5f 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 </span>.file_frame.=.<span.class
68d80 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e 3e 20 72 65 61 64 46 69 6c 65 28 ="tok-kw">async</span>.readFile(
68da0 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 allocator,.<span.class="tok-str"
68dc0 3e 26 71 75 6f 74 3b 73 6f 6d 65 74 68 69 6e 67 2e 74 78 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e >&quot;something.txt&quot;</span
68de0 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 >);.....<span.class="tok-kw">var
68e00 3c 2f 73 70 61 6e 3e 20 61 77 61 69 74 65 64 5f 66 69 6c 65 5f 66 72 61 6d 65 20 3d 20 3c 73 70 </span>.awaited_file_frame.=.<sp
68e20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e an.class="tok-null">false</span>
68e40 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 ;.....<span.class="tok-kw">errde
68e60 66 65 72 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e fer</span>.<span.class="tok-kw">
68e80 69 66 3c 2f 73 70 61 6e 3e 20 28 21 61 77 61 69 74 65 64 5f 66 69 6c 65 5f 66 72 61 6d 65 29 20 if</span>.(!awaited_file_frame).
68ea0 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 {.........<span.class="tok-kw">i
68ec0 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 f</span>.(<span.class="tok-kw">a
68ee0 77 61 69 74 3c 2f 73 70 61 6e 3e 20 66 69 6c 65 5f 66 72 61 6d 65 29 20 7c 72 7c 20 61 6c 6c 6f wait</span>.file_frame).|r|.allo
68f00 63 61 74 6f 72 2e 66 72 65 65 28 72 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b cator.free(r).<span.class="tok-k
68f20 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 5f 7c 20 7b 7d 0a 20 20 20 20 7d 3b 0a 0a 20 20 w">else</span>.|_|.{}.....};....
68f40 20 20 61 77 61 69 74 65 64 5f 66 69 6c 65 5f 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 ..awaited_file_frame.=.<span.cla
68f60 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c ss="tok-null">true</span>;.....<
68f80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
68fa0 20 66 69 6c 65 5f 74 65 78 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .file_text.=.<span.class="tok-kw
68fc0 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ">try</span>.<span.class="tok-kw
68fe0 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 20 66 69 6c 65 5f 66 72 61 6d 65 3b 0a 20 20 20 20 3c ">await</span>.file_frame;.....<
69000 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e span.class="tok-kw">defer</span>
69020 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 66 69 6c 65 5f 74 65 78 74 29 3b 0a 0a 20 20 20 .allocator.free(file_text);.....
69040 20 61 77 61 69 74 65 64 5f 64 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 .awaited_download_frame.=.<span.
69060 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 class="tok-null">true</span>;...
69080 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
690a0 61 6e 3e 20 64 6f 77 6e 6c 6f 61 64 5f 74 65 78 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d an>.download_text.=.<span.class=
690c0 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d "tok-kw">try</span>.<span.class=
690e0 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 20 64 6f 77 6e 6c 6f 61 64 5f 66 "tok-kw">await</span>.download_f
69100 72 61 6d 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 64 rame;.....<span.class="tok-kw">d
69120 65 66 65 72 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 64 6f 77 6e 6c efer</span>.allocator.free(downl
69140 6f 61 64 5f 74 65 78 74 29 3b 0a 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c oad_text);......std.debug.warn(<
69160 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 64 6f 77 6e 6c span.class="tok-str">&quot;downl
69180 6f 61 64 5f 74 65 78 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 64 6f 77 oad_text:.{}\n&quot;</span>,.dow
691a0 6e 6c 6f 61 64 5f 74 65 78 74 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 nload_text);.....std.debug.warn(
691c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 69 6c 65 <span.class="tok-str">&quot;file
691e0 5f 74 65 78 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 66 69 6c 65 5f 74 _text:.{}\n&quot;</span>,.file_t
69200 65 78 74 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 ext);.}..<span.class="tok-kw">va
69220 72 3c 2f 73 70 61 6e 3e 20 67 6c 6f 62 61 6c 5f 64 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 3a 20 r</span>.global_download_frame:.
69240 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 66 72 61 6d 65 3c 2f 73 <span.class="tok-kw">anyframe</s
69260 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e pan>.=.<span.class="tok-null">un
69280 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b defined</span>;.<span.class="tok
692a0 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d -kw">fn</span>.<span.class="tok-
692c0 66 6e 22 3e 66 65 74 63 68 55 72 6c 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 2a fn">fetchUrl</span>(allocator:.*
692e0 41 6c 6c 6f 63 61 74 6f 72 2c 20 75 72 6c 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 Allocator,.url:.[]<span.class="t
69300 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-kw">const</span>.<span.class=
69320 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 21 5b 5d 3c 73 70 61 6e 20 63 "tok-type">u8</span>).![]<span.c
69340 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 lass="tok-type">u8</span>.{.....
69360 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
69380 3e 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e >.result.=.<span.class="tok-kw">
693a0 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 6d 65 6d 2e 64 75 70 65 28 61 6c 6c 6f 63 61 74 6f try</span>.std.mem.dupe(allocato
693c0 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 r,.<span.class="tok-type">u8</sp
693e0 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 an>,.<span.class="tok-str">&quot
69400 3b 74 68 69 73 20 69 73 20 74 68 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 75 72 6c 20 63 6f 6e 74 ;this.is.the.downloaded.url.cont
69420 65 6e 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ents&quot;</span>);.....<span.cl
69440 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 61 6c 6c ass="tok-kw">errdefer</span>.all
69460 6f 63 61 74 6f 72 2e 66 72 65 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 ocator.free(result);.....<span.c
69480 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 lass="tok-kw">suspend</span>.{..
694a0 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 5f 64 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 20 3d 20 3c .......global_download_frame.=.<
694c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 72 61 6d 65 3c span.class="tok-builtin">@frame<
694e0 2f 73 70 61 6e 3e 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 /span>();.....}.....std.debug.wa
69500 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 rn(<span.class="tok-str">&quot;f
69520 65 74 63 68 55 72 6c 20 72 65 74 75 72 6e 69 6e 67 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e etchUrl.returning\n&quot;</span>
69540 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 );.....<span.class="tok-kw">retu
69560 72 6e 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 rn</span>.result;.}..<span.class
69580 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 67 6c 6f 62 61 6c 5f 66 69 6c 65 ="tok-kw">var</span>.global_file
695a0 5f 66 72 61 6d 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 _frame:.<span.class="tok-kw">any
695c0 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d frame</span>.=.<span.class="tok-
695e0 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c null">undefined</span>;.<span.cl
69600 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
69620 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 72 65 61 64 46 69 6c 65 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f ss="tok-fn">readFile</span>(allo
69640 63 61 74 6f 72 3a 20 2a 41 6c 6c 6f 63 61 74 6f 72 2c 20 66 69 6c 65 6e 61 6d 65 3a 20 5b 5d 3c cator:.*Allocator,.filename:.[]<
69660 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
69680 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e .<span.class="tok-type">u8</span
696a0 3e 29 20 21 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c >).![]<span.class="tok-type">u8<
696c0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>.{.....<span.class="tok-kw
696e0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c ">const</span>.result.=.<span.cl
69700 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 6d 65 6d 2e ass="tok-kw">try</span>.std.mem.
69720 64 75 70 65 28 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b dupe(allocator,.<span.class="tok
69740 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -type">u8</span>,.<span.class="t
69760 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 74 68 65 20 66 69 6c 65 20 63 ok-str">&quot;this.is.the.file.c
69780 6f 6e 74 65 6e 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e ontents&quot;</span>);.....<span
697a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 .class="tok-kw">errdefer</span>.
697c0 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 3c 73 70 61 allocator.free(result);.....<spa
697e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 20 n.class="tok-kw">suspend</span>.
69800 7b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 5f 66 69 6c 65 5f 66 72 61 6d 65 20 3d 20 3c 73 {.........global_file_frame.=.<s
69820 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 72 61 6d 65 3c 2f pan.class="tok-builtin">@frame</
69840 73 70 61 6e 3e 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 span>();.....}.....std.debug.war
69860 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 65 n(<span.class="tok-str">&quot;re
69880 61 64 46 69 6c 65 20 72 65 74 75 72 6e 69 6e 67 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 adFile.returning\n&quot;</span>)
698a0 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 ;.....<span.class="tok-kw">retur
698c0 6e 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c n</span>.result;.}</code></pre><
698e0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 pre><code.class="shell">$.zig.bu
69900 69 6c 64 2d 65 78 65 20 61 73 79 6e 63 2e 7a 69 67 0a 24 20 2e 2f 61 73 79 6e 63 0a 72 65 61 64 ild-exe.async.zig.$../async.read
69920 46 69 6c 65 20 72 65 74 75 72 6e 69 6e 67 0a 66 65 74 63 68 55 72 6c 20 72 65 74 75 72 6e 69 6e File.returning.fetchUrl.returnin
69940 67 0a 64 6f 77 6e 6c 6f 61 64 5f 74 65 78 74 3a 20 74 68 69 73 20 69 73 20 74 68 65 20 64 6f 77 g.download_text:.this.is.the.dow
69960 6e 6c 6f 61 64 65 64 20 75 72 6c 20 63 6f 6e 74 65 6e 74 73 0a 66 69 6c 65 5f 74 65 78 74 3a 20 nloaded.url.contents.file_text:.
69980 74 68 69 73 20 69 73 20 74 68 65 20 66 69 6c 65 20 63 6f 6e 74 65 6e 74 73 0a 3c 2f 63 6f 64 65 this.is.the.file.contents.</code
699a0 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 77 20 77 65 20 ></pre>........<p>.......Now.we.
699c0 72 65 6d 6f 76 65 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 remove.the.<code.class="zig"><sp
699e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e an.class="tok-kw">suspend</span>
69a00 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 </code>.and.<code.class="zig"><s
69a20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 6e 3e pan.class="tok-kw">resume</span>
69a40 3c 2f 63 6f 64 65 3e 20 63 6f 64 65 2c 20 61 6e 64 0a 20 20 20 20 20 20 6f 62 73 65 72 76 65 20 </code>.code,.and.......observe.
69a60 74 68 65 20 73 61 6d 65 20 62 65 68 61 76 69 6f 72 2c 20 77 69 74 68 20 6f 6e 65 20 74 69 6e 79 the.same.behavior,.with.one.tiny
69a80 20 64 69 66 66 65 72 65 6e 63 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 .difference:.......</p>.......<p
69aa0 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 62 6c 6f 63 6b 69 6e 67 2e 7a 69 67 3c 2f 70 3e 3c 70 .class="file">blocking.zig</p><p
69ac0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
69ae0 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 ="tok-kw">const</span>.std.=.<sp
69b00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f an.class="tok-builtin">@import</
69b20 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>(<span.class="tok-str">&quo
69b40 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 t;std&quot;</span>);.<span.class
69b60 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 6c 6c 6f 63 61 74 6f 72 ="tok-kw">const</span>.Allocator
69b80 20 3d 20 73 74 64 2e 6d 65 6d 2e 41 6c 6c 6f 63 61 74 6f 72 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 .=.std.mem.Allocator;..<span.cla
69ba0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">pub</span>.<span.cla
69bc0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ss="tok-kw">fn</span>.<span.clas
69be0 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 s="tok-fn">main</span>().<span.c
69c00 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-type">void</span>.{...
69c20 20 20 5f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 .._.=.<span.class="tok-kw">async
69c40 3c 2f 73 70 61 6e 3e 20 61 6d 61 69 6e 57 72 61 70 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c </span>.amainWrap();.}..<span.cl
69c60 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ass="tok-kw">fn</span>.<span.cla
69c80 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 6d 61 69 6e 57 72 61 70 3c 2f 73 70 61 6e 3e 28 29 20 3c ss="tok-fn">amainWrap</span>().<
69ca0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e span.class="tok-type">void</span
69cc0 3e 20 7b 0a 20 20 20 20 61 6d 61 69 6e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >.{.....amain().<span.class="tok
69ce0 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 7c 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 -kw">catch</span>.|e|.{.........
69d00 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d std.debug.warn(<span.class="tok-
69d20 73 74 72 22 3e 26 71 75 6f 74 3b 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 65 29 str">&quot;{}\n&quot;</span>,.e)
69d40 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 ;.........<span.class="tok-kw">i
69d60 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 f</span>.(<span.class="tok-built
69d80 69 6e 22 3e 40 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 3c 2f 73 70 61 6e 3e 28 29 29 20 in">@errorReturnTrace</span>()).
69da0 7c 74 72 61 63 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e |trace|.{.............std.debug.
69dc0 64 75 6d 70 53 74 61 63 6b 54 72 61 63 65 28 74 72 61 63 65 2e 2a 29 3b 0a 20 20 20 20 20 20 20 dumpStackTrace(trace.*);........
69de0 20 7d 0a 20 20 20 20 20 20 20 20 73 74 64 2e 70 72 6f 63 65 73 73 2e 65 78 69 74 28 3c 73 70 61 .}.........std.process.exit(<spa
69e00 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a n.class="tok-number">1</span>);.
69e20 20 20 20 20 7d 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 ....};.}..<span.class="tok-kw">f
69e40 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 6d n</span>.<span.class="tok-fn">am
69e60 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ain</span>().!<span.class="tok-t
69e80 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ype">void</span>.{.....<span.cla
69ea0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 ss="tok-kw">const</span>.allocat
69ec0 6f 72 20 3d 20 73 74 64 2e 68 65 61 70 2e 64 69 72 65 63 74 5f 61 6c 6c 6f 63 61 74 6f 72 3b 0a or.=.std.heap.direct_allocator;.
69ee0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 ....<span.class="tok-kw">var</sp
69f00 61 6e 3e 20 64 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 an>.download_frame.=.<span.class
69f20 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e 3e 20 66 65 74 63 68 55 72 6c 28 ="tok-kw">async</span>.fetchUrl(
69f40 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 allocator,.<span.class="tok-str"
69f60 3e 26 71 75 6f 74 3b 68 74 74 70 73 3a 2f 2f 65 78 61 6d 70 6c 65 2e 63 6f 6d 2f 26 71 75 6f 74 >&quot;https://example.com/&quot
69f80 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ;</span>);.....<span.class="tok-
69fa0 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 77 61 69 74 65 64 5f 64 6f 77 6e 6c 6f 61 64 5f kw">var</span>.awaited_download_
69fc0 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 frame.=.<span.class="tok-null">f
69fe0 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f alse</span>;.....<span.class="to
6a000 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 k-kw">errdefer</span>.<span.clas
6a020 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 21 61 77 61 69 74 65 64 5f 64 s="tok-kw">if</span>.(!awaited_d
6a040 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 ownload_frame).{.........<span.c
6a060 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 lass="tok-kw">if</span>.(<span.c
6a080 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 20 64 6f 77 6e 6c lass="tok-kw">await</span>.downl
6a0a0 6f 61 64 5f 66 72 61 6d 65 29 20 7c 72 7c 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 72 29 oad_frame).|r|.allocator.free(r)
6a0c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e .<span.class="tok-kw">else</span
6a0e0 3e 20 7c 5f 7c 20 7b 7d 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 >.|_|.{}.....};......<span.class
6a100 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 69 6c 65 5f 66 72 61 6d 65 20 ="tok-kw">var</span>.file_frame.
6a120 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 =.<span.class="tok-kw">async</sp
6a140 61 6e 3e 20 72 65 61 64 46 69 6c 65 28 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c an>.readFile(allocator,.<span.cl
6a160 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 6f 6d 65 74 68 69 6e 67 2e 74 78 ass="tok-str">&quot;something.tx
6a180 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 t&quot;</span>);.....<span.class
6a1a0 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 77 61 69 74 65 64 5f 66 69 6c ="tok-kw">var</span>.awaited_fil
6a1c0 65 5f 66 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 e_frame.=.<span.class="tok-null"
6a1e0 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >false</span>;.....<span.class="
6a200 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c tok-kw">errdefer</span>.<span.cl
6a220 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 21 61 77 61 69 74 65 64 ass="tok-kw">if</span>.(!awaited
6a240 5f 66 69 6c 65 5f 66 72 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 _file_frame).{.........<span.cla
6a260 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">if</span>.(<span.cla
6a280 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 20 66 69 6c 65 5f 66 72 ss="tok-kw">await</span>.file_fr
6a2a0 61 6d 65 29 20 7c 72 7c 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 72 29 20 3c 73 70 61 6e ame).|r|.allocator.free(r).<span
6a2c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 5f 7c 20 .class="tok-kw">else</span>.|_|.
6a2e0 7b 7d 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 61 77 61 69 74 65 64 5f 66 69 6c 65 5f 66 72 61 6d {}.....};......awaited_file_fram
6a300 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c e.=.<span.class="tok-null">true<
6a320 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>;.....<span.class="tok-kw"
6a340 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 69 6c 65 5f 74 65 78 74 20 3d 20 3c 73 70 61 6e 20 >const</span>.file_text.=.<span.
6a360 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 class="tok-kw">try</span>.<span.
6a380 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 20 66 69 6c 65 class="tok-kw">await</span>.file
6a3a0 5f 66 72 61 6d 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 _frame;.....<span.class="tok-kw"
6a3c0 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 66 69 6c >defer</span>.allocator.free(fil
6a3e0 65 5f 74 65 78 74 29 3b 0a 0a 20 20 20 20 61 77 61 69 74 65 64 5f 64 6f 77 6e 6c 6f 61 64 5f 66 e_text);......awaited_download_f
6a400 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 rame.=.<span.class="tok-null">tr
6a420 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ue</span>;.....<span.class="tok-
6a440 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 64 6f 77 6e 6c 6f 61 64 5f 74 65 78 74 20 3d kw">const</span>.download_text.=
6a460 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">try</span>
6a480 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 .<span.class="tok-kw">await</spa
6a4a0 6e 3e 20 64 6f 77 6e 6c 6f 61 64 5f 66 72 61 6d 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 n>.download_frame;.....<span.cla
6a4c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 ss="tok-kw">defer</span>.allocat
6a4e0 6f 72 2e 66 72 65 65 28 64 6f 77 6e 6c 6f 61 64 5f 74 65 78 74 29 3b 0a 0a 20 20 20 20 73 74 64 or.free(download_text);......std
6a500 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 .debug.warn(<span.class="tok-str
6a520 22 3e 26 71 75 6f 74 3b 64 6f 77 6e 6c 6f 61 64 5f 74 65 78 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 ">&quot;download_text:.{}\n&quot
6a540 3b 3c 2f 73 70 61 6e 3e 2c 20 64 6f 77 6e 6c 6f 61 64 5f 74 65 78 74 29 3b 0a 20 20 20 20 73 74 ;</span>,.download_text);.....st
6a560 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 d.debug.warn(<span.class="tok-st
6a580 72 22 3e 26 71 75 6f 74 3b 66 69 6c 65 5f 74 65 78 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f r">&quot;file_text:.{}\n&quot;</
6a5a0 73 70 61 6e 3e 2c 20 66 69 6c 65 5f 74 65 78 74 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 span>,.file_text);.}..<span.clas
6a5c0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
6a5e0 3d 22 74 6f 6b 2d 66 6e 22 3e 66 65 74 63 68 55 72 6c 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 ="tok-fn">fetchUrl</span>(alloca
6a600 74 6f 72 3a 20 2a 41 6c 6c 6f 63 61 74 6f 72 2c 20 75 72 6c 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c tor:.*Allocator,.url:.[]<span.cl
6a620 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 ass="tok-kw">const</span>.<span.
6a640 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 21 5b 5d 3c class="tok-type">u8</span>).![]<
6a660 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 span.class="tok-type">u8</span>.
6a680 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 {.....<span.class="tok-kw">const
6a6a0 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.result.=.<span.class="to
6a6c0 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 6d 65 6d 2e 64 75 70 65 28 61 6c k-kw">try</span>.std.mem.dupe(al
6a6e0 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e locator,.<span.class="tok-type">
6a700 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 u8</span>,.<span.class="tok-str"
6a720 3e 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 74 68 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 75 72 >&quot;this.is.the.downloaded.ur
6a740 6c 20 63 6f 6e 74 65 6e 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 l.contents&quot;</span>);.....<s
6a760 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 pan.class="tok-kw">errdefer</spa
6a780 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 73 n>.allocator.free(result);.....s
6a7a0 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 td.debug.warn(<span.class="tok-s
6a7c0 74 72 22 3e 26 71 75 6f 74 3b 66 65 74 63 68 55 72 6c 20 72 65 74 75 72 6e 69 6e 67 5c 6e 26 71 tr">&quot;fetchUrl.returning\n&q
6a7e0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>);.....<span.class="t
6a800 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a ok-kw">return</span>.result;.}..
6a820 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c <span.class="tok-kw">fn</span>.<
6a840 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 72 65 61 64 46 69 6c 65 3c 2f 73 70 span.class="tok-fn">readFile</sp
6a860 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 2a 41 6c 6c 6f 63 61 74 6f 72 2c 20 66 69 6c 65 6e an>(allocator:.*Allocator,.filen
6a880 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ame:.[]<span.class="tok-kw">cons
6a8a0 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e t</span>.<span.class="tok-type">
6a8c0 75 38 3c 2f 73 70 61 6e 3e 29 20 21 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 u8</span>).![]<span.class="tok-t
6a8e0 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ype">u8</span>.{.....<span.class
6a900 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 20 3d 20 ="tok-kw">const</span>.result.=.
6a920 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">try</span>.
6a940 73 74 64 2e 6d 65 6d 2e 64 75 70 65 28 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c std.mem.dupe(allocator,.<span.cl
6a960 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 ass="tok-type">u8</span>,.<span.
6a980 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 74 68 class="tok-str">&quot;this.is.th
6a9a0 65 20 66 69 6c 65 20 63 6f 6e 74 65 6e 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 e.file.contents&quot;</span>);..
6a9c0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 ...<span.class="tok-kw">errdefer
6a9e0 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 72 65 73 75 6c 74 29 3b 0a </span>.allocator.free(result);.
6aa00 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ....std.debug.warn(<span.class="
6aa20 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 65 61 64 46 69 6c 65 20 72 65 74 75 72 6e 69 6e tok-str">&quot;readFile.returnin
6aa40 67 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 g\n&quot;</span>);.....<span.cla
6aa60 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 ss="tok-kw">return</span>.result
6aa80 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ;.}</code></pre><pre><code.class
6aaa0 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 62 6c 6f 63 6b 69 6e ="shell">$.zig.build-exe.blockin
6aac0 67 2e 7a 69 67 0a 24 20 2e 2f 62 6c 6f 63 6b 69 6e 67 0a 66 65 74 63 68 55 72 6c 20 72 65 74 75 g.zig.$../blocking.fetchUrl.retu
6aae0 72 6e 69 6e 67 0a 72 65 61 64 46 69 6c 65 20 72 65 74 75 72 6e 69 6e 67 0a 64 6f 77 6e 6c 6f 61 rning.readFile.returning.downloa
6ab00 64 5f 74 65 78 74 3a 20 74 68 69 73 20 69 73 20 74 68 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 75 d_text:.this.is.the.downloaded.u
6ab20 72 6c 20 63 6f 6e 74 65 6e 74 73 0a 66 69 6c 65 5f 74 65 78 74 3a 20 74 68 69 73 20 69 73 20 74 rl.contents.file_text:.this.is.t
6ab40 68 65 20 66 69 6c 65 20 63 6f 6e 74 65 6e 74 73 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a he.file.contents.</code></pre>..
6ab60 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 72 65 76 69 6f 75 73 6c 79 2c 20 74 68 65 20 ......<p>.......Previously,.the.
6ab80 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 65 74 63 68 55 72 6c 3c 2f 63 6f 64 65 <code.class="zig">fetchUrl</code
6aba0 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 72 65 61 64 46 69 6c 65 >.and.<code.class="zig">readFile
6abc0 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 73 20 73 75 73 70 65 6e 64 65 64 2c 0a 20 20 20 </code>.functions.suspended,....
6abe0 20 20 20 61 6e 64 20 77 65 72 65 20 72 65 73 75 6d 65 64 20 69 6e 20 61 6e 20 6f 72 64 65 72 20 ...and.were.resumed.in.an.order.
6ac00 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a determined.by.the.<code.class="z
6ac20 69 67 22 3e 6d 61 69 6e 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 2e 20 4e 6f 77 2c 0a 20 ig">main</code>.function..Now,..
6ac40 20 20 20 20 20 73 69 6e 63 65 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 73 75 73 70 65 6e 64 20 .....since.there.are.no.suspend.
6ac60 70 6f 69 6e 74 73 2c 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 74 68 65 20 70 72 69 6e 74 65 64 points,.the.order.of.the.printed
6ac80 20 22 2e 2e 2e 20 72 65 74 75 72 6e 69 6e 67 22 20 6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 ."....returning".messages.......
6aca0 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 3c 63 is.determined.by.the.order.of.<c
6acc0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
6ace0 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6c 6c 73 69 74 -kw">async</span></code>.callsit
6ad00 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 0a 20 20 es........</p>..................
6ad20 20 20 20 20 3c 68 31 20 69 64 3d 22 42 75 69 6c 74 69 6e 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 3c ....<h1.id="Builtin-Functions"><
6ad40 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 42 75 69 6c 74 69 6e 2d 46 75 6e 63 74 69 6f 6e 73 22 3e a.href="#toc-Builtin-Functions">
6ad60 42 75 69 6c 74 69 6e 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 Builtin.Functions</a>.<a.class="
6ad80 68 64 72 22 20 68 72 65 66 3d 22 23 42 75 69 6c 74 69 6e 2d 46 75 6e 63 74 69 6f 6e 73 22 3e c2 hdr".href="#Builtin-Functions">.
6ada0 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 75 69 6c .</a></h1>........<p>.......Buil
6adc0 74 69 6e 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 tin.functions.are.provided.by.th
6ade0 65 20 63 6f 6d 70 69 6c 65 72 20 61 6e 64 20 61 72 65 20 70 72 65 66 69 78 65 64 20 77 69 74 68 e.compiler.and.are.prefixed.with
6ae00 20 3c 63 6f 64 65 3e 40 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 .<code>@</code>........The.<code
6ae20 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
6ae40 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 ">comptime</span></code>.keyword
6ae60 20 6f 6e 20 61 20 70 61 72 61 6d 65 74 65 72 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 70 .on.a.parameter.means.that.the.p
6ae80 61 72 61 6d 65 74 65 72 20 6d 75 73 74 20 62 65 20 6b 6e 6f 77 6e 0a 20 20 20 20 20 20 61 74 20 arameter.must.be.known.......at.
6aea0 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c compile.time........</p>.......<
6aec0 68 32 20 69 64 3d 22 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 65 66 3d h2.id="addWithOverflow"><a.href=
6aee0 22 23 74 6f 63 2d 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 61 64 64 57 69 74 68 4f "#toc-addWithOverflow">@addWithO
6af00 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d verflow</a>.<a.class="hdr".href=
6af20 22 23 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a "#addWithOverflow">..</a></h2>..
6af40 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
6af60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 64 64 57 69 74 68 4f an.class="tok-builtin">@addWithO
6af80 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d verflow</span>(<span.class="tok-
6afa0 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 kw">comptime</span>.T:.<span.cla
6afc0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a 20 54 2c ss="tok-type">type</span>,.a:.T,
6afe0 20 62 3a 20 54 2c 20 72 65 73 75 6c 74 3a 20 2a 54 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .b:.T,.result:.*T).<span.class="
6b000 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 tok-type">bool</span></code></pr
6b020 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 e>.......<p>.......Performs.<cod
6b040 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 72 65 73 75 6c 74 2e 2a 20 3d 20 61 20 2b 20 62 3c 2f e.class="zig">result.*.=.a.+.b</
6b060 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 code>..If.overflow.or.underflow.
6b080 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 20 20 20 20 73 74 6f 72 65 73 20 74 68 65 20 6f 76 65 occurs,...........stores.the.ove
6b0a0 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 rflowed.bits.in.<code.class="zig
6b0c0 22 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 ">result</code>.and.returns.<cod
6b0e0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e e.class="zig"><span.class="tok-n
6b100 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 ull">true</span></code>.........
6b120 20 20 20 20 20 20 20 20 20 20 20 49 66 20 6e 6f 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 ...........If.no.overflow.or.und
6b140 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 erflow.occurs,.returns.<code.cla
6b160 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e ss="zig"><span.class="tok-null">
6b180 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a false</span></code>........</p>.
6b1a0 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 61 6c 69 67 6e 43 61 73 74 22 3e .............<h2.id="alignCast">
6b1c0 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 61 6c 69 67 6e 43 61 73 74 22 3e 40 61 6c 69 67 6e 43 <a.href="#toc-alignCast">@alignC
6b1e0 61 73 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 61 6c ast</a>.<a.class="hdr".href="#al
6b200 69 67 6e 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 ignCast">..</a></h2>........<pre
6b220 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
6b240 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c tok-builtin">@alignCast</span>(<
6b260 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 span.class="tok-kw">comptime</sp
6b280 61 6e 3e 20 61 6c 69 67 6e 6d 65 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d an>.alignment:.<span.class="tok-
6b2a0 74 79 70 65 22 3e 75 32 39 3c 2f 73 70 61 6e 3e 2c 20 70 74 72 3a 20 3c 73 70 61 6e 20 63 6c 61 type">u29</span>,.ptr:.<span.cla
6b2c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">var</span>).<span.cl
6b2e0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f ass="tok-kw">var</span></code></
6b300 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 pre>.......<p>.......<code.class
6b320 3d 22 7a 69 67 22 3e 70 74 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 3c 63 6f 64 65 20 63 ="zig">ptr</code>.can.be.<code.c
6b340 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 54 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 lass="zig">*T</code>,.<code.clas
6b360 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c s="zig"><span.class="tok-kw">fn<
6b380 2f 73 70 61 6e 3e 28 29 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 /span>()</code>,.<code.class="zi
6b3a0 67 22 3e 3f 2a 54 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g">?*T</code>,..................
6b3c0 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3f 3c 73 70 61 6e 20 63 6c .....<code.class="zig">?<span.cl
6b3e0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 28 29 3c 2f 63 6f 64 65 3e 2c ass="tok-kw">fn</span>()</code>,
6b400 20 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 5b 5d 54 3c 2f 63 6f 64 65 3e .or.<code.class="zig">[]T</code>
6b420 2e 20 49 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 61 6d 65 20 74 79 70 65 20 61 73 20 3c 63 ..It.returns.the.same.type.as.<c
6b440 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 74 72 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 ode.class="zig">ptr</code>......
6b460 20 65 78 63 65 70 74 20 77 69 74 68 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 20 61 64 6a 75 73 .except.with.the.alignment.adjus
6b480 74 65 64 20 74 6f 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e ted.to.the.new.value........</p>
6b4a0 0a 20 20 20 20 20 20 3c 70 3e 41 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 63 6f 72 72 65 63 74 2d .......<p>A.<a.href="#Incorrect-
6b4c0 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e Pointer-Alignment">pointer.align
6b4e0 6d 65 6e 74 20 73 61 66 65 74 79 20 63 68 65 63 6b 3c 2f 61 3e 20 69 73 20 61 64 64 65 64 0a 20 ment.safety.check</a>.is.added..
6b500 20 20 20 20 20 74 6f 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 63 6f 64 65 20 74 6f 20 6d 61 .....to.the.generated.code.to.ma
6b520 6b 65 20 73 75 72 65 20 74 68 65 20 70 6f 69 6e 74 65 72 20 69 73 20 61 6c 69 67 6e 65 64 20 61 ke.sure.the.pointer.is.aligned.a
6b540 73 20 70 72 6f 6d 69 73 65 64 2e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 s.promised.</p>...............<h
6b560 32 20 69 64 3d 22 61 6c 69 67 6e 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 61 6c 69 2.id="alignOf"><a.href="#toc-ali
6b580 67 6e 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 gnOf">@alignOf</a>.<a.class="hdr
6b5a0 22 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 4f 66 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 ".href="#alignOf">..</a></h2>...
6b5c0 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
6b5e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f n.class="tok-builtin">@alignOf</
6b600 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 span>(<span.class="tok-kw">compt
6b620 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ime</span>.T:.<span.class="tok-t
6b640 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ype">type</span>).<span.class="t
6b660 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f ok-type">comptime_int</span></co
6b680 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 de></pre>.......<p>.......This.f
6b6a0 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 unction.returns.the.number.of.by
6b6c0 74 65 73 20 74 68 61 74 20 74 68 69 73 20 74 79 70 65 20 73 68 6f 75 6c 64 20 62 65 20 61 6c 69 tes.that.this.type.should.be.ali
6b6e0 67 6e 65 64 20 74 6f 0a 20 20 20 20 20 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 61 gned.to.......for.the.current.ta
6b700 72 67 65 74 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 43 20 41 42 49 2e 20 57 68 65 6e 20 74 68 rget.to.match.the.C.ABI..When.th
6b720 65 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 20 68 61 73 0a 20 20 e.child.type.of.a.pointer.has...
6b740 20 20 20 20 74 68 69 73 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e ....this.alignment,.the.alignmen
6b760 74 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 20 66 72 6f 6d 20 74 68 65 20 74 79 70 65 2e 0a t.can.be.omitted.from.the.type..
6b780 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 ......</p>.......<pre><code.clas
6b7a0 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e s="zig"><span.class="tok-kw">con
6b7c0 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 st</span>.assert.=.<span.class="
6b7e0 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 tok-builtin">@import</span>(<spa
6b800 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 n.class="tok-str">&quot;std&quot
6b820 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 63 6c ;</span>).debug.assert;.<span.cl
6b840 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 ass="tok-kw">comptime</span>.{..
6b860 20 20 20 61 73 73 65 72 74 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 ...assert(*<span.class="tok-type
6b880 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 3d 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">u32</span>.==.*<span.class="to
6b8a0 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">align</span>(<span.class="
6b8c0 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 tok-builtin">@alignOf</span>(<sp
6b8e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 29 an.class="tok-type">u32</span>))
6b900 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 .<span.class="tok-type">u32</spa
6b920 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 n>);.}</code></pre>.......<p>...
6b940 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 74 61 72 67 65 74 2d 73 70 65 63 69 ....The.result.is.a.target-speci
6b960 66 69 63 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 20 49 74 20 69 73 fic.compile.time.constant..It.is
6b980 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 0a 20 20 20 20 20 20 6c 65 73 73 20 74 68 61 .guaranteed.to.be.......less.tha
6b9a0 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 69 7a 65 4f 66 22 3e n.or.equal.to.<a.href="#sizeOf">
6b9c0 40 73 69 7a 65 4f 66 28 54 29 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 @sizeOf(T)</a>........</p>......
6b9e0 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 .<p>See.also:</p><ul>.<li><a.hre
6ba00 66 3d 22 23 41 6c 69 67 6e 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 3e 3c 2f 6c 69 f="#Alignment">Alignment</a></li
6ba20 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 72 >.</ul>...............<h2.id="Ar
6ba40 67 54 79 70 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 41 72 67 54 79 70 65 22 3e 40 41 gType"><a.href="#toc-ArgType">@A
6ba60 72 67 54 79 70 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 rgType</a>.<a.class="hdr".href="
6ba80 23 41 72 67 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 #ArgType">..</a></h2>........<pr
6baa0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
6bac0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 41 72 67 54 79 70 65 3c 2f 73 70 61 6e 3e 28 3c 73 "tok-builtin">@ArgType</span>(<s
6bae0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
6bb00 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 n>.T:.<span.class="tok-type">typ
6bb20 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 e</span>,.<span.class="tok-kw">c
6bb40 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 omptime</span>.n:.<span.class="t
6bb60 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 ok-type">usize</span>).<span.cla
6bb80 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ss="tok-type">type</span></code>
6bba0 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 62 75 69 6c </pre>.......<p>.......This.buil
6bbc0 74 69 6e 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 79 tin.function.takes.a.function.ty
6bbe0 70 65 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 70 pe.and.returns.the.type.of.the.p
6bc00 61 72 61 6d 65 74 65 72 20 61 74 20 69 6e 64 65 78 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a arameter.at.index.<code.class="z
6bc20 69 67 22 3e 6e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c ig">n</code>........</p>.......<
6bc40 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 6f p>.......<code.class="zig">T</co
6bc60 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 79 70 65 2e 0a 20 20 20 de>.must.be.a.function.type.....
6bc80 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 3a 20 54 68 ...</p>.......<p>.......Note:.Th
6bca0 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2e 20 55 73 65 20 3c is.function.is.deprecated..Use.<
6bcc0 61 20 68 72 65 66 3d 22 23 74 79 70 65 49 6e 66 6f 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 61 3e a.href="#typeInfo">@typeInfo</a>
6bce0 20 69 6e 73 74 65 61 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 .instead........</p>............
6bd00 20 20 20 3c 68 32 20 69 64 3d 22 61 73 79 6e 63 43 61 6c 6c 22 3e 3c 61 20 68 72 65 66 3d 22 23 ...<h2.id="asyncCall"><a.href="#
6bd20 74 6f 63 2d 61 73 79 6e 63 43 61 6c 6c 22 3e 40 61 73 79 6e 63 43 61 6c 6c 3c 2f 61 3e 20 3c 61 toc-asyncCall">@asyncCall</a>.<a
6bd40 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 61 73 79 6e 63 43 61 6c 6c 22 3e c2 .class="hdr".href="#asyncCall">.
6bd60 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .</a></h2>........<pre><code.cla
6bd80 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ss="zig"><span.class="tok-builti
6bda0 6e 22 3e 40 61 73 79 6e 63 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 66 72 61 6d 65 5f 62 75 66 66 65 n">@asyncCall</span>(frame_buffe
6bdc0 72 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c r:.[]<span.class="tok-kw">align<
6bde0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 /span>(<span.class="tok-builtin"
6be00 3e 40 61 6c 69 67 6e 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >@alignOf</span>(<span.class="to
6be20 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 46 72 61 6d 65 3c 2f 73 70 61 6e 3e 28 61 6e 79 41 73 79 6e k-builtin">@Frame</span>(anyAsyn
6be40 63 46 75 6e 63 74 69 6f 6e 29 29 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 cFunction))).<span.class="tok-ty
6be60 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 72 65 73 75 6c 74 5f 70 74 72 2c 20 66 75 6e 63 74 pe">u8</span>,.result_ptr,.funct
6be80 69 6f 6e 5f 70 74 72 2c 20 61 72 67 73 3a 20 2e 2e 2e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ion_ptr,.args:....).<span.class=
6bea0 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 2d 26 67 74 3b 54 3c 2f "tok-kw">anyframe</span>-&gt;T</
6bec0 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 code></pre>.......<p>.......<cod
6bee0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
6bf00 75 69 6c 74 69 6e 22 3e 40 61 73 79 6e 63 43 61 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e uiltin">@asyncCall</span></code>
6bf20 20 70 65 72 66 6f 72 6d 73 20 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .performs.an.<code.class="zig"><
6bf40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e 3e span.class="tok-kw">async</span>
6bf60 3c 2f 63 6f 64 65 3e 20 63 61 6c 6c 20 6f 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 70 6f 69 6e 74 </code>.call.on.a.function.point
6bf80 65 72 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 6d 61 79 20 6f 72 20 6d 61 79 20 6e 6f 74 20 62 er,.......which.may.or.may.not.b
6bfa0 65 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e e.an.<a.href="#Async-Functions">
6bfc0 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 async.function</a>........</p>..
6bfe0 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 70 72 6f 76 69 64 65 64 20 3c 63 6f 64 .....<p>.......The.provided.<cod
6c000 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 72 61 6d 65 5f 62 75 66 66 65 72 3c 2f 63 6f 64 65 e.class="zig">frame_buffer</code
6c020 3e 20 6d 75 73 74 20 62 65 20 6c 61 72 67 65 20 65 6e 6f 75 67 68 20 74 6f 20 66 69 74 20 74 68 >.must.be.large.enough.to.fit.th
6c040 65 20 65 6e 74 69 72 65 20 66 75 6e 63 74 69 6f 6e 20 66 72 61 6d 65 2e 0a 20 20 20 20 20 20 54 e.entire.function.frame........T
6c060 68 69 73 20 73 69 7a 65 20 63 61 6e 20 62 65 20 64 65 74 65 72 6d 69 6e 65 64 20 77 69 74 68 20 his.size.can.be.determined.with.
6c080 3c 61 20 68 72 65 66 3d 22 23 66 72 61 6d 65 53 69 7a 65 22 3e 40 66 72 61 6d 65 53 69 7a 65 3c <a.href="#frameSize">@frameSize<
6c0a0 2f 61 3e 2e 20 54 6f 20 70 72 6f 76 69 64 65 20 61 20 74 6f 6f 2d 73 6d 61 6c 6c 20 62 75 66 66 /a>..To.provide.a.too-small.buff
6c0c0 65 72 0a 20 20 20 20 20 20 69 6e 76 6f 6b 65 73 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 20 er.......invokes.safety-checked.
6c0e0 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e <a.href="#Undefined-Behavior">Un
6c100 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e defined.Behavior</a>........</p>
6c120 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .......<p>.......<code.class="zi
6c140 67 22 3e 72 65 73 75 6c 74 5f 70 74 72 3c 2f 63 6f 64 65 3e 20 69 73 20 6f 70 74 69 6f 6e 61 6c g">result_ptr</code>.is.optional
6c160 20 28 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 20 6d 61 79 20 62 .(<a.href="#null">null</a>.may.b
6c180 65 20 70 72 6f 76 69 64 65 64 29 2e 20 49 66 20 70 72 6f 76 69 64 65 64 2c 0a 20 20 20 20 20 20 e.provided)..If.provided,.......
6c1a0 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 77 69 6c 6c 20 77 72 69 74 65 20 69 74 73 the.function.call.will.write.its
6c1c0 20 72 65 73 75 6c 74 20 64 69 72 65 63 74 6c 79 20 74 6f 20 74 68 65 20 72 65 73 75 6c 74 20 70 .result.directly.to.the.result.p
6c1e0 6f 69 6e 74 65 72 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 ointer,.which.will.be.available.
6c200 74 6f 0a 20 20 20 20 20 20 72 65 61 64 20 61 66 74 65 72 20 3c 61 20 68 72 65 66 3d 22 23 41 73 to.......read.after.<a.href="#As
6c220 79 6e 63 2d 61 6e 64 2d 41 77 61 69 74 22 3e 61 77 61 69 74 3c 2f 61 3e 20 63 6f 6d 70 6c 65 74 ync-and-Await">await</a>.complet
6c240 65 73 2e 20 41 6e 79 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 es..Any.result.location.provided
6c260 20 74 6f 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .to.......<code.class="zig"><spa
6c280 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 77 61 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 n.class="tok-kw">await</span></c
6c2a0 6f 64 65 3e 20 77 69 6c 6c 20 63 6f 70 79 20 74 68 65 20 72 65 73 75 6c 74 20 66 72 6f 6d 20 3c ode>.will.copy.the.result.from.<
6c2c0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 72 65 73 75 6c 74 5f 70 74 72 3c 2f 63 6f 64 code.class="zig">result_ptr</cod
6c2e0 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 e>........</p>.......<p.class="f
6c300 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 ile">test.zig</p><pre><code.clas
6c320 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e s="zig"><span.class="tok-kw">con
6c340 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b st</span>.std.=.<span.class="tok
6c360 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 -builtin">@import</span>(<span.c
6c380 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f lass="tok-str">&quot;std&quot;</
6c3a0 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e span>);.<span.class="tok-kw">con
6c3c0 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 st</span>.assert.=.std.debug.ass
6c3e0 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c ert;..<span.class="tok-kw">test<
6c400 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>.<span.class="tok-str">&qu
6c420 6f 74 3b 61 73 79 6e 63 20 66 6e 20 70 6f 69 6e 74 65 72 20 69 6e 20 61 20 73 74 72 75 63 74 20 ot;async.fn.pointer.in.a.struct.
6c440 66 69 65 6c 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 field&quot;</span>.{.....<span.c
6c460 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 64 61 74 61 3a 20 3c lass="tok-kw">var</span>.data:.<
6c480 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">i32</span>
6c4a0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 .=.<span.class="tok-number">1</s
6c4c0 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pan>;.....<span.class="tok-kw">c
6c4e0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 onst</span>.Foo.=.<span.class="t
6c500 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 62 ok-kw">struct</span>.{.........b
6c520 61 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f ar:.<span.class="tok-kw">async</
6c540 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
6c560 70 61 6e 3e 20 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 pan>.(*<span.class="tok-type">i3
6c580 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 2</span>).<span.class="tok-type"
6c5a0 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 >void</span>,.....};.....<span.c
6c5c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 6f 6f 20 3d 20 46 lass="tok-kw">var</span>.foo.=.F
6c5e0 6f 6f 7b 20 2e 62 61 72 20 3d 20 66 75 6e 63 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 oo{..bar.=.func.};.....<span.cla
6c600 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 79 74 65 73 3a 20 5b 3c ss="tok-kw">var</span>.bytes:.[<
6c620 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 34 3c 2f 73 70 61 6e span.class="tok-number">64</span
6c640 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 >]<span.class="tok-type">u8</spa
6c660 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 n>.<span.class="tok-kw">align</s
6c680 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 pan>(<span.class="tok-builtin">@
6c6a0 61 6c 69 67 6e 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d alignOf</span>(<span.class="tok-
6c6c0 62 75 69 6c 74 69 6e 22 3e 40 46 72 61 6d 65 3c 2f 73 70 61 6e 3e 28 66 75 6e 63 29 29 29 20 3d builtin">@Frame</span>(func))).=
6c6e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 .<span.class="tok-null">undefine
6c700 64 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b d</span>;.....<span.class="tok-k
6c720 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d w">const</span>.f.=.<span.class=
6c740 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 79 6e 63 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 "tok-builtin">@asyncCall</span>(
6c760 26 61 6d 70 3b 62 79 74 65 73 2c 20 7b 7d 2c 20 66 6f 6f 2e 62 61 72 2c 20 26 61 6d 70 3b 64 61 &amp;bytes,.{},.foo.bar,.&amp;da
6c780 74 61 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 64 61 74 61 20 3d 3d 20 3c 73 70 61 6e 20 63 6c ta);.....assert(data.==.<span.cl
6c7a0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 ass="tok-number">2</span>);.....
6c7c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 73 75 6d 65 3c 2f 73 70 61 <span.class="tok-kw">resume</spa
6c7e0 6e 3e 20 66 3b 0a 20 20 20 20 61 73 73 65 72 74 28 64 61 74 61 20 3d 3d 20 3c 73 70 61 6e 20 63 n>.f;.....assert(data.==.<span.c
6c800 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a lass="tok-number">4</span>);.}..
6c820 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e <span.class="tok-kw">async</span
6c840 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e >.<span.class="tok-kw">fn</span>
6c860 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 75 6e 63 3c 2f 73 70 61 6e .<span.class="tok-fn">func</span
6c880 3e 28 79 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 >(y:.*<span.class="tok-type">i32
6c8a0 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e </span>).<span.class="tok-type">
6c8c0 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 void</span>.{.....<span.class="t
6c8e0 6f 6b 2d 6b 77 22 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 79 2e 2a 20 2b 3d 20 3c 73 70 61 6e ok-kw">defer</span>.y.*.+=.<span
6c900 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">2</span>;...
6c920 20 20 79 2e 2a 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 ..y.*.+=.<span.class="tok-number
6c940 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">1</span>;.....<span.class="tok
6c960 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 -kw">suspend</span>;.}</code></p
6c980 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 re><pre><code.class="shell">$.zi
6c9a0 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 61 g.test.test.zig.1/1.test.&quot;a
6c9c0 73 79 6e 63 20 66 6e 20 70 6f 69 6e 74 65 72 20 69 6e 20 61 20 73 74 72 75 63 74 20 66 69 65 6c sync.fn.pointer.in.a.struct.fiel
6c9e0 64 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c d&quot;...OK.All.tests.passed..<
6ca00 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 /code></pre>................<h2.
6ca20 69 64 3d 22 61 74 6f 6d 69 63 4c 6f 61 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 61 74 id="atomicLoad"><a.href="#toc-at
6ca40 6f 6d 69 63 4c 6f 61 64 22 3e 40 61 74 6f 6d 69 63 4c 6f 61 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 omicLoad">@atomicLoad</a>.<a.cla
6ca60 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 4c 6f 61 64 22 3e c2 a7 3c 2f ss="hdr".href="#atomicLoad">..</
6ca80 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d a></h2>........<pre><code.class=
6caa0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e "zig"><span.class="tok-builtin">
6cac0 40 61 74 6f 6d 69 63 4c 6f 61 64 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 @atomicLoad</span>(<span.class="
6cae0 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e tok-kw">comptime</span>.T:.<span
6cb00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 70 .class="tok-type">type</span>,.p
6cb20 74 72 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c tr:.*<span.class="tok-kw">const<
6cb40 2f 73 70 61 6e 3e 20 54 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 /span>.T,.<span.class="tok-kw">c
6cb60 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6f 72 64 65 72 69 6e 67 3a 20 62 75 69 6c 74 69 6e omptime</span>.ordering:.builtin
6cb80 2e 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 .AtomicOrder).T</code></pre>....
6cba0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 62 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 ...<p>.......This.builtin.functi
6cbc0 6f 6e 20 61 74 6f 6d 69 63 61 6c 6c 79 20 64 65 72 65 66 65 72 65 6e 63 65 73 20 61 20 70 6f 69 on.atomically.dereferences.a.poi
6cbe0 6e 74 65 72 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 76 61 6c 75 65 2e 0a 20 20 20 20 nter.and.returns.the.value......
6cc00 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 ..</p>.......<p>.......<code.cla
6cc20 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 70 6f 69 6e ss="zig">T</code>.must.be.a.poin
6cc40 74 65 72 20 74 79 70 65 2c 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 ter.type,.a.<code.class="zig"><s
6cc60 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e pan.class="tok-type">bool</span>
6cc80 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 6f 72 20 61 6e 20 69 6e 74 65 67 65 72 20 77 68 6f </code>,.......or.an.integer.who
6cca0 73 65 20 62 69 74 20 63 6f 75 6e 74 20 6d 65 65 74 73 20 74 68 65 73 65 20 72 65 71 75 69 72 65 se.bit.count.meets.these.require
6ccc0 6d 65 6e 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 ments:.......</p>.......<ul>....
6cce0 20 20 20 20 20 20 20 3c 6c 69 3e 41 74 20 6c 65 61 73 74 20 38 3c 2f 6c 69 3e 0a 20 20 20 20 20 .......<li>At.least.8</li>......
6cd00 20 20 20 20 20 3c 6c 69 3e 41 74 20 6d 6f 73 74 20 74 68 65 20 73 61 6d 65 20 61 73 20 75 73 69 .....<li>At.most.the.same.as.usi
6cd20 7a 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 6f 77 65 72 20 6f 66 20 32 ze</li>...........<li>Power.of.2
6cd40 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 </li>.......</ul>.......<p>.....
6cd60 20 20 54 4f 44 4f 20 72 69 67 68 74 20 6e 6f 77 20 62 6f 6f 6c 20 69 73 20 6e 6f 74 20 61 63 63 ..TODO.right.now.bool.is.not.acc
6cd80 65 70 74 65 64 2e 20 41 6c 73 6f 20 49 20 74 68 69 6e 6b 20 77 65 20 63 6f 75 6c 64 20 6d 61 6b epted..Also.I.think.we.could.mak
6cda0 65 20 6e 6f 6e 20 70 6f 77 65 72 73 20 6f 66 20 32 20 77 6f 72 6b 20 66 69 6e 65 2c 20 6d 61 79 e.non.powers.of.2.work.fine,.may
6cdc0 62 65 0a 20 20 20 20 20 20 77 65 20 63 61 6e 20 72 65 6d 6f 76 65 20 74 68 69 73 20 72 65 73 74 be.......we.can.remove.this.rest
6cde0 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 riction.......</p>..............
6ce00 3c 68 32 20 69 64 3d 22 61 74 6f 6d 69 63 52 6d 77 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 <h2.id="atomicRmw"><a.href="#toc
6ce20 2d 61 74 6f 6d 69 63 52 6d 77 22 3e 40 61 74 6f 6d 69 63 52 6d 77 3c 2f 61 3e 20 3c 61 20 63 6c -atomicRmw">@atomicRmw</a>.<a.cl
6ce40 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 52 6d 77 22 3e c2 a7 3c 2f ass="hdr".href="#atomicRmw">..</
6ce60 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d a></h2>........<pre><code.class=
6ce80 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e "zig"><span.class="tok-builtin">
6cea0 40 61 74 6f 6d 69 63 52 6d 77 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 @atomicRmw</span>(<span.class="t
6cec0 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 ok-kw">comptime</span>.T:.<span.
6cee0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 70 74 class="tok-type">type</span>,.pt
6cf00 72 3a 20 2a 54 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 r:.*T,.<span.class="tok-kw">comp
6cf20 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6f 70 3a 20 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 52 6d time</span>.op:.builtin.AtomicRm
6cf40 77 4f 70 2c 20 6f 70 65 72 61 6e 64 3a 20 54 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f wOp,.operand:.T,.<span.class="to
6cf60 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6f 72 64 65 72 69 6e 67 3a 20 k-kw">comptime</span>.ordering:.
6cf80 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 builtin.AtomicOrder).T</code></p
6cfa0 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 62 75 69 6c 74 69 6e re>.......<p>.......This.builtin
6cfc0 20 66 75 6e 63 74 69 6f 6e 20 61 74 6f 6d 69 63 61 6c 6c 79 20 6d 6f 64 69 66 69 65 73 20 6d 65 .function.atomically.modifies.me
6cfe0 6d 6f 72 79 20 61 6e 64 20 74 68 65 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 70 72 65 76 69 6f mory.and.then.returns.the.previo
6d000 75 73 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 us.value........</p>.......<p>..
6d020 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 6f 64 65 3e 20 .....<code.class="zig">T</code>.
6d040 6d 75 73 74 20 62 65 20 61 20 70 6f 69 6e 74 65 72 20 74 79 70 65 2c 20 61 20 3c 63 6f 64 65 20 must.be.a.pointer.type,.a.<code.
6d060 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 class="zig"><span.class="tok-typ
6d080 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 6f 72 20 e">bool</span></code>,.......or.
6d0a0 61 6e 20 69 6e 74 65 67 65 72 20 77 68 6f 73 65 20 62 69 74 20 63 6f 75 6e 74 20 6d 65 65 74 73 an.integer.whose.bit.count.meets
6d0c0 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a .these.requirements:.......</p>.
6d0e0 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 74 20 6c 65 61 73 ......<ul>...........<li>At.leas
6d100 74 20 38 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 74 20 6d 6f 73 74 20 74 t.8</li>...........<li>At.most.t
6d120 68 65 20 73 61 6d 65 20 61 73 20 75 73 69 7a 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 he.same.as.usize</li>...........
6d140 3c 6c 69 3e 50 6f 77 65 72 20 6f 66 20 32 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a <li>Power.of.2</li>.......</ul>.
6d160 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 4f 44 4f 20 72 69 67 68 74 20 6e 6f 77 20 62 ......<p>.......TODO.right.now.b
6d180 6f 6f 6c 20 69 73 20 6e 6f 74 20 61 63 63 65 70 74 65 64 2e 20 41 6c 73 6f 20 49 20 74 68 69 6e ool.is.not.accepted..Also.I.thin
6d1a0 6b 20 77 65 20 63 6f 75 6c 64 20 6d 61 6b 65 20 6e 6f 6e 20 70 6f 77 65 72 73 20 6f 66 20 32 20 k.we.could.make.non.powers.of.2.
6d1c0 77 6f 72 6b 20 66 69 6e 65 2c 20 6d 61 79 62 65 0a 20 20 20 20 20 20 77 65 20 63 61 6e 20 72 65 work.fine,.maybe.......we.can.re
6d1e0 6d 6f 76 65 20 74 68 69 73 20 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 3c 2f 70 3e move.this.restriction.......</p>
6d200 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 65 64 20 6f 70 65 72 61 .......<p>.......Supported.opera
6d220 74 69 6f 6e 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 tions:.......</p>.......<ul>....
6d240 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2e 58 63 68 67 .....<li><code.class="zig">.Xchg
6d260 3c 2f 63 6f 64 65 3e 20 2d 20 73 74 6f 72 65 73 20 74 68 65 20 6f 70 65 72 61 6e 64 20 75 6e 6d </code>.-.stores.the.operand.unm
6d280 6f 64 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 odified.</li>.........<li><code.
6d2a0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2e 41 64 64 3c 2f 63 6f 64 65 3e 20 2d 20 66 6f 72 20 69 6e class="zig">.Add</code>.-.for.in
6d2c0 74 65 67 65 72 73 2c 20 74 77 6f 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 61 72 6f 75 tegers,.twos.complement.wraparou
6d2e0 6e 64 20 61 64 64 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 6c 73 6f 20 73 75 nd.addition..............Also.su
6d300 70 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c pports.<a.href="#Floats">Floats<
6d320 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 /a>.</li>.........<li><code.clas
6d340 73 3d 22 7a 69 67 22 3e 2e 53 75 62 3c 2f 63 6f 64 65 3e 20 2d 20 66 6f 72 20 69 6e 74 65 67 65 s="zig">.Sub</code>.-.for.intege
6d360 72 73 2c 20 74 77 6f 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 61 72 6f 75 6e 64 20 73 rs,.twos.complement.wraparound.s
6d380 75 62 74 72 61 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 6c 73 6f 20 73 75 70 ubtraction..............Also.sup
6d3a0 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f ports.<a.href="#Floats">Floats</
6d3c0 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 a>.</li>.........<li><code.class
6d3e0 3d 22 7a 69 67 22 3e 2e 41 6e 64 3c 2f 63 6f 64 65 3e 20 2d 20 62 69 74 77 69 73 65 20 61 6e 64 ="zig">.And</code>.-.bitwise.and
6d400 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a </li>.........<li><code.class="z
6d420 69 67 22 3e 2e 4e 61 6e 64 3c 2f 63 6f 64 65 3e 20 2d 20 62 69 74 77 69 73 65 20 6e 61 6e 64 3c ig">.Nand</code>.-.bitwise.nand<
6d440 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 /li>.........<li><code.class="zi
6d460 67 22 3e 2e 4f 72 3c 2f 63 6f 64 65 3e 20 2d 20 62 69 74 77 69 73 65 20 6f 72 3c 2f 6c 69 3e 0a g">.Or</code>.-.bitwise.or</li>.
6d480 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2e 58 ........<li><code.class="zig">.X
6d4a0 6f 72 3c 2f 63 6f 64 65 3e 20 2d 20 62 69 74 77 69 73 65 20 78 6f 72 3c 2f 6c 69 3e 0a 20 20 20 or</code>.-.bitwise.xor</li>....
6d4c0 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2e 4d 61 78 3c .....<li><code.class="zig">.Max<
6d4e0 2f 63 6f 64 65 3e 20 2d 20 73 74 6f 72 65 73 20 74 68 65 20 6f 70 65 72 61 6e 64 20 69 66 20 69 /code>.-.stores.the.operand.if.i
6d500 74 20 69 73 20 6c 61 72 67 65 72 2e 20 53 75 70 70 6f 72 74 73 20 69 6e 74 65 67 65 72 73 20 61 t.is.larger..Supports.integers.a
6d520 6e 64 20 66 6c 6f 61 74 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 nd.floats.</li>.........<li><cod
6d540 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2e 4d 69 6e 3c 2f 63 6f 64 65 3e 20 2d 20 73 74 6f 72 e.class="zig">.Min</code>.-.stor
6d560 65 73 20 74 68 65 20 6f 70 65 72 61 6e 64 20 69 66 20 69 74 20 69 73 20 73 6d 61 6c 6c 65 72 2e es.the.operand.if.it.is.smaller.
6d580 20 53 75 70 70 6f 72 74 73 20 69 6e 74 65 67 65 72 73 20 61 6e 64 20 66 6c 6f 61 74 73 2e 3c 2f .Supports.integers.and.floats.</
6d5a0 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 li>.......</ul>..............<h2
6d5c0 20 69 64 3d 22 62 69 74 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 62 69 74 43 .id="bitCast"><a.href="#toc-bitC
6d5e0 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 ast">@bitCast</a>.<a.class="hdr"
6d600 20 68 72 65 66 3d 22 23 62 69 74 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 .href="#bitCast">..</a></h2>....
6d620 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
6d640 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 69 74 43 61 73 74 3c 2f 73 .class="tok-builtin">@bitCast</s
6d660 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 pan>(<span.class="tok-kw">compti
6d680 6d 65 3c 2f 73 70 61 6e 3e 20 44 65 73 74 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d me</span>.DestType:.<span.class=
6d6a0 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 3c "tok-type">type</span>,.value:.<
6d6c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 span.class="tok-kw">var</span>).
6d6e0 44 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a DestType</code></pre>.......<p>.
6d700 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 20 76 61 6c 75 65 20 6f 66 20 6f 6e 65 20 74 79 ......Converts.a.value.of.one.ty
6d720 70 65 20 74 6f 20 61 6e 6f 74 68 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 pe.to.another.type........</p>..
6d740 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 73 73 65 72 74 73 20 74 68 61 74 20 3c 63 6f 64 .....<p>.......Asserts.that.<cod
6d760 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
6d780 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 uiltin">@sizeOf</span>(<span.cla
6d7a0 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 ss="tok-builtin">@typeOf</span>(
6d7c0 76 61 6c 75 65 29 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c value)).==.<span.class="tok-buil
6d7e0 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 44 65 73 74 54 79 70 65 29 3c 2f 63 tin">@sizeOf</span>(DestType)</c
6d800 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 ode>........</p>.......<p>......
6d820 20 41 73 73 65 72 74 73 20 74 68 61 74 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e .Asserts.that.<code.class="zig">
6d840 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 <span.class="tok-builtin">@typeI
6d860 64 3c 2f 73 70 61 6e 3e 28 44 65 73 74 54 79 70 65 29 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 d</span>(DestType).!=.<span.clas
6d880 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c s="tok-builtin">@import</span>(<
6d8a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 span.class="tok-str">&quot;built
6d8c0 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 54 79 70 65 49 64 2e 50 6f 69 6e 74 65 72 3c in&quot;</span>).TypeId.Pointer<
6d8e0 2f 63 6f 64 65 3e 2e 20 55 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 /code>..Use.<code.class="zig"><s
6d900 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 43 61 73 74 pan.class="tok-builtin">@ptrCast
6d920 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a </span></code>.or.<code.class="z
6d940 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 ig"><span.class="tok-builtin">@i
6d960 6e 74 54 6f 50 74 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 66 20 79 6f 75 20 6e 65 65 ntToPtr</span></code>.if.you.nee
6d980 64 20 74 68 69 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 d.this........</p>.......<p>....
6d9a0 20 20 20 43 61 6e 20 62 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 ...Can.be.used.for.these.things.
6d9c0 66 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 for.example:.......</p>.......<u
6d9e0 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 3c 63 6f 64 65 20 63 l>...........<li>Convert.<code.c
6da00 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
6da20 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 ">f32</span></code>.to.<code.cla
6da40 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ss="zig"><span.class="tok-type">
6da60 75 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 69 74 73 3c 2f 6c 69 3e 0a 20 20 20 20 u32</span></code>.bits</li>.....
6da80 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a ......<li>Convert.<code.class="z
6daa0 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f ig"><span.class="tok-type">i32</
6dac0 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 span></code>.to.<code.class="zig
6dae0 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 "><span.class="tok-type">u32</sp
6db00 61 6e 3e 3c 2f 63 6f 64 65 3e 20 70 72 65 73 65 72 76 69 6e 67 20 74 77 6f 73 20 63 6f 6d 70 6c an></code>.preserving.twos.compl
6db20 65 6d 65 6e 74 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e ement</li>.......</ul>.......<p>
6db40 0a 20 20 20 20 20 20 57 6f 72 6b 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 69 66 20 .......Works.at.compile-time.if.
6db60 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 69 <code.class="zig">value</code>.i
6db80 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 20 49 74 27 73 20 61 20 s.known.at.compile.time..It's.a.
6dba0 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 74 6f 20 62 69 74 63 61 73 74 20 61 20 73 74 72 75 63 compile.error.to.bitcast.a.struc
6dbc0 74 20 74 6f 20 61 20 73 63 61 6c 61 72 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 61 6d 65 20 73 t.to.a.scalar.type.of.the.same.s
6dbe0 69 7a 65 20 73 69 6e 63 65 20 73 74 72 75 63 74 73 20 68 61 76 65 20 75 6e 64 65 66 69 6e 65 64 ize.since.structs.have.undefined
6dc00 20 6c 61 79 6f 75 74 2e 20 48 6f 77 65 76 65 72 20 69 66 20 74 68 65 20 73 74 72 75 63 74 20 69 .layout..However.if.the.struct.i
6dc20 73 20 70 61 63 6b 65 64 20 74 68 65 6e 20 69 74 20 77 6f 72 6b 73 2e 0a 20 20 20 20 20 20 3c 2f s.packed.then.it.works........</
6dc40 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 62 69 74 4f 66 66 73 p>...............<h2.id="bitOffs
6dc60 65 74 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 62 69 74 4f 66 66 73 65 74 4f 66 22 etOf"><a.href="#toc-bitOffsetOf"
6dc80 3e 40 62 69 74 4f 66 66 73 65 74 4f 66 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 >@bitOffsetOf</a>.<a.class="hdr"
6dca0 20 68 72 65 66 3d 22 23 62 69 74 4f 66 66 73 65 74 4f 66 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e .href="#bitOffsetOf">..</a></h2>
6dcc0 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ........<pre><code.class="zig"><
6dce0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 69 74 4f 66 66 span.class="tok-builtin">@bitOff
6dd00 73 65 74 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 setOf</span>(<span.class="tok-kw
6dd20 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">comptime</span>.T:.<span.class
6dd40 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 ="tok-type">type</span>,.<span.c
6dd60 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 66 69 lass="tok-kw">comptime</span>.fi
6dd80 65 6c 64 5f 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 eld_name:.[]<span.class="tok-kw"
6dda0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 >const</span>.<span.class="tok-t
6ddc0 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ype">u8</span>).<span.class="tok
6dde0 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 -type">comptime_int</span></code
6de00 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 ></pre>.......<p>.......Returns.
6de20 74 68 65 20 62 69 74 20 6f 66 66 73 65 74 20 6f 66 20 61 20 66 69 65 6c 64 20 72 65 6c 61 74 69 the.bit.offset.of.a.field.relati
6de40 76 65 20 74 6f 20 69 74 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 73 74 72 75 63 74 2e 0a 20 20 20 ve.to.its.containing.struct.....
6de60 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 6e 6f 6e 20 ...</p>.......<p>.......For.non.
6de80 3c 61 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 73 74 72 75 63 74 22 3e 70 61 63 6b 65 64 20 <a.href="#packed-struct">packed.
6dea0 73 74 72 75 63 74 73 3c 2f 61 3e 2c 20 74 68 69 73 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 62 65 structs</a>,.this.will.always.be
6dec0 20 64 69 76 69 73 69 62 6c 65 20 62 79 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e .divisible.by.<code.class="zig">
6dee0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e <span.class="tok-number">8</span
6df00 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 46 6f 72 20 70 61 63 6b 65 64 20 73 74 72 75 63 ></code>........For.packed.struc
6df20 74 73 2c 20 6e 6f 6e 2d 62 79 74 65 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 73 20 77 69 6c 6c ts,.non-byte-aligned.fields.will
6df40 20 73 68 61 72 65 20 61 20 62 79 74 65 20 6f 66 66 73 65 74 2c 20 62 75 74 20 74 68 65 79 20 77 .share.a.byte.offset,.but.they.w
6df60 69 6c 6c 20 68 61 76 65 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 62 69 74 20 6f 66 66 ill.have.different.......bit.off
6df80 73 65 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c sets........</p>.......<p>See.al
6dfa0 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 79 74 65 4f 66 so:</p><ul>.<li><a.href="#byteOf
6dfc0 66 73 65 74 4f 66 22 3e 40 62 79 74 65 4f 66 66 73 65 74 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c fsetOf">@byteOffsetOf</a></li>.<
6dfe0 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 62 6f 6f 6c /ul>................<h2.id="bool
6e000 54 6f 49 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 62 6f 6f 6c 54 6f 49 6e 74 22 3e ToInt"><a.href="#toc-boolToInt">
6e020 40 62 6f 6f 6c 54 6f 49 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 @boolToInt</a>.<a.class="hdr".hr
6e040 65 66 3d 22 23 62 6f 6f 6c 54 6f 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 ef="#boolToInt">..</a></h2>.....
6e060 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ...<pre><code.class="zig"><span.
6e080 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 6f 6f 6c 54 6f 49 6e 74 3c 2f class="tok-builtin">@boolToInt</
6e0a0 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 span>(value:.<span.class="tok-ty
6e0c0 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pe">bool</span>).<span.class="to
6e0e0 6b 2d 74 79 70 65 22 3e 75 31 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 k-type">u1</span></code></pre>..
6e100 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 3c 63 6f 64 65 20 63 6c .....<p>.......Converts.<code.cl
6e120 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 ass="zig"><span.class="tok-null"
6e140 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 >true</span></code>.to.<code.cla
6e160 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ss="zig"><span.class="tok-type">
6e180 75 31 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 u1</span>(<span.class="tok-numbe
6e1a0 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c r">1</span>)</code>.and.<code.cl
6e1c0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 ass="zig"><span.class="tok-null"
6e1e0 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 0a 20 20 20 20 20 20 20 20 >false</span></code>.to.........
6e200 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 ..........<code.class="zig"><spa
6e220 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 3c 2f 73 70 61 6e 3e 28 3c 73 70 n.class="tok-type">u1</span>(<sp
6e240 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3c an.class="tok-number">0</span>)<
6e260 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 /code>........</p>.......<p>....
6e280 20 20 20 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 ...If.the.value.is.known.at.comp
6e2a0 69 6c 65 2d 74 69 6d 65 2c 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f ile-time,.the.return.type.is.<co
6e2c0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
6e2e0 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e type">comptime_int</span></code>
6e300 0a 20 20 20 20 20 20 20 20 20 20 69 6e 73 74 65 61 64 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 ...........instead.of.<code.clas
6e320 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 s="zig"><span.class="tok-type">u
6e340 31 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 1</span></code>........</p>.....
6e360 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 62 72 65 61 6b 70 6f 69 6e 74 22 3e 3c 61 ..........<h2.id="breakpoint"><a
6e380 20 68 72 65 66 3d 22 23 74 6f 63 2d 62 72 65 61 6b 70 6f 69 6e 74 22 3e 40 62 72 65 61 6b 70 6f .href="#toc-breakpoint">@breakpo
6e3a0 69 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 62 72 int</a>.<a.class="hdr".href="#br
6e3c0 65 61 6b 70 6f 69 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 eakpoint">..</a></h2>........<pr
6e3e0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
6e400 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 72 65 61 6b 70 6f 69 6e 74 3c 2f 73 70 61 6e 3e "tok-builtin">@breakpoint</span>
6e420 28 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 ()</code></pre>.......<p>.......
6e440 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 73 20 61 20 70 6c 61 74 66 6f 72 6d This.function.inserts.a.platform
6e460 2d 73 70 65 63 69 66 69 63 20 64 65 62 75 67 20 74 72 61 70 20 69 6e 73 74 72 75 63 74 69 6f 6e -specific.debug.trap.instruction
6e480 20 77 68 69 63 68 20 63 61 75 73 65 73 0a 20 20 20 20 20 20 64 65 62 75 67 67 65 72 73 20 74 6f .which.causes.......debuggers.to
6e4a0 20 62 72 65 61 6b 20 74 68 65 72 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c .break.there........</p>.......<
6e4c0 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 76 p>.......This.function.is.only.v
6e4e0 61 6c 69 64 20 77 69 74 68 69 6e 20 66 75 6e 63 74 69 6f 6e 20 73 63 6f 70 65 2e 0a 20 20 20 20 alid.within.function.scope......
6e500 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 75 6c ..</p>...............<h2.id="mul
6e520 41 64 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6d 75 6c 41 64 64 22 3e 40 6d 75 6c 41 Add"><a.href="#toc-mulAdd">@mulA
6e540 64 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6d 75 6c dd</a>.<a.class="hdr".href="#mul
6e560 41 64 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f Add">..</a></h2>........<pre><co
6e580 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
6e5a0 62 75 69 6c 74 69 6e 22 3e 40 6d 75 6c 41 64 64 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c builtin">@mulAdd</span>(<span.cl
6e5c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 ass="tok-kw">comptime</span>.T:.
6e5e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 <span.class="tok-type">type</spa
6e600 6e 3e 2c 20 61 3a 20 54 2c 20 62 3a 20 54 2c 20 63 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f n>,.a:.T,.b:.T,.c:.T).T</code></
6e620 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 75 73 65 64 20 6d 75 6c 74 69 pre>.......<p>.......Fused.multi
6e640 70 6c 79 20 61 64 64 20 28 66 6f 72 20 66 6c 6f 61 74 73 29 2c 20 73 69 6d 69 6c 61 72 20 74 6f ply.add.(for.floats),.similar.to
6e660 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 61 20 2a 20 62 29 20 2b 20 63 3c 2f .<code.class="zig">(a.*.b).+.c</
6e680 63 6f 64 65 3e 2c 20 65 78 63 65 70 74 0a 20 20 20 20 20 20 6f 6e 6c 79 20 72 6f 75 6e 64 73 20 code>,.except.......only.rounds.
6e6a0 6f 6e 63 65 2c 20 61 6e 64 20 69 73 20 74 68 75 73 20 6d 6f 72 65 20 61 63 63 75 72 61 74 65 2e once,.and.is.thus.more.accurate.
6e6c0 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 .......</p>...............<h2.id
6e6e0 3d 22 62 79 74 65 53 77 61 70 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 62 79 74 65 53 77 ="byteSwap"><a.href="#toc-byteSw
6e700 61 70 22 3e 40 62 79 74 65 53 77 61 70 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 ap">@byteSwap</a>.<a.class="hdr"
6e720 20 68 72 65 66 3d 22 23 62 79 74 65 53 77 61 70 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 .href="#byteSwap">..</a></h2>...
6e740 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
6e760 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 79 74 65 53 77 61 70 3c n.class="tok-builtin">@byteSwap<
6e780 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 /span>(<span.class="tok-kw">comp
6e7a0 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d time</span>.T:.<span.class="tok-
6e7c0 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 6f 70 65 72 61 6e 64 3a 20 54 29 20 54 type">type</span>,.operand:.T).T
6e7e0 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c 61 </code></pre>.......<p><code.cla
6e800 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 6e 20 69 6e 74 ss="zig">T</code>.must.be.an.int
6e820 65 67 65 72 20 74 79 70 65 20 77 69 74 68 20 62 69 74 20 63 6f 75 6e 74 20 65 76 65 6e 6c 79 20 eger.type.with.bit.count.evenly.
6e840 64 69 76 69 73 69 62 6c 65 20 62 79 20 38 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f divisible.by.8.</p>.......<p><co
6e860 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6f 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e 20 6d 61 de.class="zig">operand</code>.ma
6e880 79 20 62 65 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 69 6e 74 65 y.be.an.<a.href="#Integers">inte
6e8a0 67 65 72 3c 2f 61 3e 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 76 65 ger</a>.or.<a.href="#Vectors">ve
6e8c0 63 74 6f 72 3c 2f 61 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 77 ctor</a>.</p>.......<p>.......Sw
6e8e0 61 70 73 20 74 68 65 20 62 79 74 65 20 6f 72 64 65 72 20 6f 66 20 74 68 65 20 69 6e 74 65 67 65 aps.the.byte.order.of.the.intege
6e900 72 2e 20 54 68 69 73 20 63 6f 6e 76 65 72 74 73 20 61 20 62 69 67 20 65 6e 64 69 61 6e 20 69 6e r..This.converts.a.big.endian.in
6e920 74 65 67 65 72 20 74 6f 20 61 20 6c 69 74 74 6c 65 20 65 6e 64 69 61 6e 20 69 6e 74 65 67 65 72 teger.to.a.little.endian.integer
6e940 2c 0a 20 20 20 20 20 20 61 6e 64 20 63 6f 6e 76 65 72 74 73 20 61 20 6c 69 74 74 6c 65 20 65 6e ,.......and.converts.a.little.en
6e960 64 69 61 6e 20 69 6e 74 65 67 65 72 20 74 6f 20 61 20 62 69 67 20 65 6e 64 69 61 6e 20 69 6e 74 dian.integer.to.a.big.endian.int
6e980 65 67 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 eger........</p>.......<p>......
6e9a0 20 4e 6f 74 65 20 74 68 61 74 20 66 6f 72 20 74 68 65 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6d .Note.that.for.the.purposes.of.m
6e9c0 65 6d 6f 72 79 20 6c 61 79 6f 75 74 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 20 65 6e 64 emory.layout.with.respect.to.end
6e9e0 69 61 6e 6e 65 73 73 2c 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 73 68 6f 75 6c 64 ianness,.the.integer.type.should
6ea00 20 62 65 0a 20 20 20 20 20 20 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 72 20 .be.......related.to.the.number.
6ea20 6f 66 20 62 79 74 65 73 20 72 65 70 6f 72 74 65 64 20 62 79 20 3c 61 20 68 72 65 66 3d 22 23 73 of.bytes.reported.by.<a.href="#s
6ea40 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 20 62 79 74 65 73 2e 20 54 68 69 73 20 69 izeOf">@sizeOf</a>.bytes..This.i
6ea60 73 20 64 65 6d 6f 6e 73 74 72 61 74 65 64 20 77 69 74 68 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 s.demonstrated.with.......<code.
6ea80 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 class="zig"><span.class="tok-typ
6eaa0 65 22 3e 75 32 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 3c 63 6f 64 65 20 63 6c 61 73 e">u24</span></code>..<code.clas
6eac0 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e s="zig"><span.class="tok-builtin
6eae0 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">@sizeOf</span>(<span.class="to
6eb00 6b 2d 74 79 70 65 22 3e 75 32 34 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 k-type">u24</span>).==.<span.cla
6eb20 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c ss="tok-number">4</span></code>,
6eb40 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 61 74 20 61 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 .which.means.that.a.......<code.
6eb60 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 class="zig"><span.class="tok-typ
6eb80 65 22 3e 75 32 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 73 74 6f 72 65 64 20 69 6e 20 6d e">u24</span></code>.stored.in.m
6eba0 65 6d 6f 72 79 20 74 61 6b 65 73 20 34 20 62 79 74 65 73 2c 20 61 6e 64 20 74 68 6f 73 65 20 34 emory.takes.4.bytes,.and.those.4
6ebc0 20 62 79 74 65 73 20 61 72 65 20 77 68 61 74 20 61 72 65 20 73 77 61 70 70 65 64 20 6f 6e 0a 20 .bytes.are.what.are.swapped.on..
6ebe0 20 20 20 20 20 61 20 6c 69 74 74 6c 65 20 76 73 20 62 69 67 20 65 6e 64 69 61 6e 20 73 79 73 74 .....a.little.vs.big.endian.syst
6ec00 65 6d 2e 20 4f 6e 20 74 68 65 20 6f 74 68 65 72 20 68 61 6e 64 2c 20 69 66 20 3c 63 6f 64 65 20 em..On.the.other.hand,.if.<code.
6ec20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 6f 64 65 3e 20 69 73 20 73 70 65 63 69 66 69 65 class="zig">T</code>.is.specifie
6ec40 64 20 74 6f 0a 20 20 20 20 20 20 62 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e d.to.......be.<code.class="zig">
6ec60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 34 3c 2f 73 70 61 6e <span.class="tok-type">u24</span
6ec80 3e 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 6e 20 6f 6e 6c 79 20 33 20 62 79 74 65 73 20 61 72 65 20 ></code>,.then.only.3.bytes.are.
6eca0 72 65 76 65 72 73 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 reversed........</p>............
6ecc0 20 20 20 3c 68 32 20 69 64 3d 22 62 69 74 52 65 76 65 72 73 65 22 3e 3c 61 20 68 72 65 66 3d 22 ...<h2.id="bitReverse"><a.href="
6ece0 23 74 6f 63 2d 62 69 74 52 65 76 65 72 73 65 22 3e 40 62 69 74 52 65 76 65 72 73 65 3c 2f 61 3e #toc-bitReverse">@bitReverse</a>
6ed00 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 62 69 74 52 65 76 65 72 73 .<a.class="hdr".href="#bitRevers
6ed20 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 e">..</a></h2>........<pre><code
6ed40 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
6ed60 69 6c 74 69 6e 22 3e 40 62 69 74 52 65 76 65 72 73 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 iltin">@bitReverse</span>(<span.
6ed80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 class="tok-kw">comptime</span>.T
6eda0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 :.<span.class="tok-type">type</s
6edc0 70 61 6e 3e 2c 20 69 6e 74 65 67 65 72 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e pan>,.integer:.T).T</code></pre>
6ede0 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 .......<p><code.class="zig">T</c
6ee00 6f 64 65 3e 20 61 63 63 65 70 74 73 20 61 6e 79 20 69 6e 74 65 67 65 72 20 74 79 70 65 2e 3c 2f ode>.accepts.any.integer.type.</
6ee20 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 76 65 72 73 65 73 20 74 68 65 20 p>.......<p>.......Reverses.the.
6ee40 62 69 74 70 61 74 74 65 72 6e 20 6f 66 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 2c 20 bitpattern.of.an.integer.value,.
6ee60 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 73 69 67 6e 20 62 69 74 20 69 66 20 61 70 70 6c 69 63 including.the.sign.bit.if.applic
6ee80 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 able........</p>.......<p>......
6eea0 20 46 6f 72 20 65 78 61 6d 70 6c 65 20 30 62 31 30 31 31 30 31 31 30 20 28 3c 63 6f 64 65 20 63 .For.example.0b10110110.(<code.c
6eec0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
6eee0 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ">u8</span>.=.<span.class="tok-n
6ef00 75 6d 62 65 72 22 3e 31 38 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 umber">182</span></code>,.<code.
6ef20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 class="zig"><span.class="tok-typ
6ef40 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 20 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e">i8</span>.=.-<span.class="tok
6ef60 2d 6e 75 6d 62 65 72 22 3e 37 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 0a 20 20 20 20 20 -number">74</span></code>)......
6ef80 20 62 65 63 6f 6d 65 73 20 30 62 30 31 31 30 31 31 30 31 20 28 3c 63 6f 64 65 20 63 6c 61 73 73 .becomes.0b01101101.(<code.class
6efa0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 ="zig"><span.class="tok-type">u8
6efc0 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 </span>.=.<span.class="tok-numbe
6efe0 72 22 3e 31 30 39 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 r">109</span></code>,.<code.clas
6f000 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 s="zig"><span.class="tok-type">i
6f020 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 8</span>.=.<span.class="tok-numb
6f040 65 72 22 3e 31 30 39 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 2e 0a 20 20 20 20 20 20 3c 2f er">109</span></code>)........</
6f060 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 62 79 74 65 4f 66 66 p>...............<h2.id="byteOff
6f080 73 65 74 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 62 79 74 65 4f 66 66 73 65 74 4f setOf"><a.href="#toc-byteOffsetO
6f0a0 66 22 3e 40 62 79 74 65 4f 66 66 73 65 74 4f 66 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 f">@byteOffsetOf</a>.<a.class="h
6f0c0 64 72 22 20 68 72 65 66 3d 22 23 62 79 74 65 4f 66 66 73 65 74 4f 66 22 3e c2 a7 3c 2f 61 3e 3c dr".href="#byteOffsetOf">..</a><
6f0e0 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 /h2>........<pre><code.class="zi
6f100 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 79 g"><span.class="tok-builtin">@by
6f120 74 65 4f 66 66 73 65 74 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 teOffsetOf</span>(<span.class="t
6f140 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 ok-kw">comptime</span>.T:.<span.
6f160 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 class="tok-type">type</span>,.<s
6f180 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
6f1a0 6e 3e 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f n>.field_name:.[]<span.class="to
6f1c0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">const</span>.<span.class="
6f1e0 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-type">u8</span>).<span.class
6f200 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c ="tok-type">comptime_int</span><
6f220 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 /code></pre>.......<p>.......Ret
6f240 75 72 6e 73 20 74 68 65 20 62 79 74 65 20 6f 66 66 73 65 74 20 6f 66 20 61 20 66 69 65 6c 64 20 urns.the.byte.offset.of.a.field.
6f260 72 65 6c 61 74 69 76 65 20 74 6f 20 69 74 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 73 74 72 75 63 relative.to.its.containing.struc
6f280 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a t........</p>.......<p>See.also:
6f2a0 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 69 74 4f 66 66 73 65 74 </p><ul>.<li><a.href="#bitOffset
6f2c0 4f 66 22 3e 40 62 69 74 4f 66 66 73 65 74 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a Of">@bitOffsetOf</a></li>.</ul>.
6f2e0 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 62 79 74 65 73 54 6f 53 6c ...............<h2.id="bytesToSl
6f300 69 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 62 79 74 65 73 54 6f 53 6c 69 63 65 22 ice"><a.href="#toc-bytesToSlice"
6f320 3e 40 62 79 74 65 73 54 6f 53 6c 69 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 >@bytesToSlice</a>.<a.class="hdr
6f340 22 20 68 72 65 66 3d 22 23 62 79 74 65 73 54 6f 53 6c 69 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 ".href="#bytesToSlice">..</a></h
6f360 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 2>........<pre><code.class="zig"
6f380 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 79 74 65 ><span.class="tok-builtin">@byte
6f3a0 73 54 6f 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b sToSlice</span>(<span.class="tok
6f3c0 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 45 6c 65 6d 65 6e 74 3a 20 3c 73 -kw">comptime</span>.Element:.<s
6f3e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e pan.class="tok-type">type</span>
6f400 2c 20 62 79 74 65 73 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 ,.bytes:.[]<span.class="tok-type
6f420 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 5b 5d 45 6c 65 6d 65 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 70 ">u8</span>).[]Element</code></p
6f440 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 20 73 re>.......<p>.......Converts.a.s
6f460 6c 69 63 65 20 6f 66 20 62 79 74 65 73 20 6f 72 20 61 72 72 61 79 20 6f 66 20 62 79 74 65 73 20 lice.of.bytes.or.array.of.bytes.
6f480 69 6e 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 into.a.slice.of.<code.class="zig
6f4a0 22 3e 45 6c 65 6d 65 6e 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 ">Element</code>........The.resu
6f4c0 6c 74 69 6e 67 20 73 6c 69 63 65 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 3c 61 20 68 72 65 66 lting.slice.has.the.same.<a.href
6f4e0 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 20 70 72 6f 70 65 72 74 ="#Pointers">pointer</a>.propert
6f500 69 65 73 20 61 73 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e ies.as.the.parameter........</p>
6f520 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 63 .......<p>.......Attempting.to.c
6f540 6f 6e 76 65 72 74 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 77 69 74 68 20 61 20 onvert.a.number.of.bytes.with.a.
6f560 6c 65 6e 67 74 68 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 65 76 65 6e 6c 79 20 64 69 76 69 length.that.does.not.evenly.divi
6f580 64 65 20 69 6e 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 0a 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 de.into.a.slice.of.......element
6f5a0 73 20 72 65 73 75 6c 74 73 20 69 6e 20 73 61 66 65 74 79 2d 70 72 6f 74 65 63 74 65 64 20 3c 61 s.results.in.safety-protected.<a
6f5c0 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 .href="#Undefined-Behavior">Unde
6f5e0 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 fined.Behavior</a>........</p>..
6f600 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 44 65 66 69 6e 65 22 3e 3c 61 .............<h2.id="cDefine"><a
6f620 20 68 72 65 66 3d 22 23 74 6f 63 2d 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 .href="#toc-cDefine">@cDefine</a
6f640 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 44 65 66 69 6e 65 22 >.<a.class="hdr".href="#cDefine"
6f660 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 >..</a></h2>........<pre><code.c
6f680 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
6f6a0 74 69 6e 22 3e 40 63 44 65 66 69 6e 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 tin">@cDefine</span>(<span.class
6f6c0 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6e 61 6d 65 3a 20 ="tok-kw">comptime</span>.name:.
6f6e0 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 []<span.class="tok-type">u8</spa
6f700 6e 3e 2c 20 76 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 n>,.value)</code></pre>.......<p
6f720 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 6f 6e 6c 79 20 6f >.......This.function.can.only.o
6f740 63 63 75 72 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 ccur.inside.<code.class="zig"><s
6f760 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 pan.class="tok-builtin">@cImport
6f780 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 </span></code>........</p>......
6f7a0 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 70 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 64 .<p>.......This.appends.<code>#d
6f7c0 65 66 69 6e 65 20 24 6e 61 6d 65 20 24 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 efine.$name.$value</code>.to.the
6f7e0 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .<code.class="zig"><span.class="
6f800 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f tok-builtin">@cImport</span></co
6f820 64 65 3e 0a 20 20 20 20 20 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 2e 0a 20 20 20 20 de>.......temporary.buffer......
6f840 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 64 65 66 69 6e 65 ..</p>.......<p>.......To.define
6f860 20 77 69 74 68 6f 75 74 20 61 20 76 61 6c 75 65 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 .without.a.value,.like.this:....
6f880 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ...</p>.......<pre><code.class="
6f8a0 63 22 3e 23 64 65 66 69 6e 65 20 5f 47 4e 55 5f 53 4f 55 52 43 45 3c 2f 63 6f 64 65 3e 3c 2f 70 c">#define._GNU_SOURCE</code></p
6f8c0 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 65 20 74 68 65 20 76 6f 69 64 re>.......<p>.......Use.the.void
6f8e0 20 76 61 6c 75 65 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 .value,.like.this:.......</p>...
6f900 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
6f920 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 44 65 66 69 6e 65 3c 2f 73 .class="tok-builtin">@cDefine</s
6f940 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
6f960 3b 5f 47 4e 55 5f 53 4f 55 52 43 45 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 7b 7d 29 3c 2f ;_GNU_SOURCE&quot;</span>,.{})</
6f980 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f code></pre>.......<p>See.also:</
6f9a0 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6f 72 74 2d 66 72 6f 6d p><ul>.<li><a.href="#Import-from
6f9c0 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 -C-Header-File">Import.from.C.He
6f9e0 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 ader.File</a></li>.<li><a.href="
6fa00 23 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c #cInclude">@cInclude</a></li>.<l
6fa20 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 i><a.href="#cImport">@cImport</a
6fa40 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 55 6e 64 65 66 22 3e 40 63 55 ></li>.<li><a.href="#cUndef">@cU
6fa60 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 76 6f 69 64 ndef</a></li>.<li><a.href="#void
6fa80 22 3e 76 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 ">void</a></li>.</ul>...........
6faa0 20 20 20 20 3c 68 32 20 69 64 3d 22 63 49 6d 70 6f 72 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 ....<h2.id="cImport"><a.href="#t
6fac0 6f 63 2d 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 oc-cImport">@cImport</a>.<a.clas
6fae0 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e c2 a7 3c 2f 61 3e 3c 2f s="hdr".href="#cImport">..</a></
6fb00 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 h2>........<pre><code.class="zig
6fb20 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6d "><span.class="tok-builtin">@cIm
6fb40 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 65 78 70 72 65 73 73 69 6f 6e 29 20 3c 73 70 61 6e 20 63 6c port</span>(expression).<span.cl
6fb60 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ass="tok-type">type</span></code
6fb80 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e ></pre>.......<p>.......This.fun
6fba0 63 74 69 6f 6e 20 70 61 72 73 65 73 20 43 20 63 6f 64 65 20 61 6e 64 20 69 6d 70 6f 72 74 73 20 ction.parses.C.code.and.imports.
6fbc0 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 74 79 70 65 73 2c 20 76 61 72 69 61 62 6c 65 73 2c the.functions,.types,.variables,
6fbe0 0a 20 20 20 20 20 20 61 6e 64 20 63 6f 6d 70 61 74 69 62 6c 65 20 6d 61 63 72 6f 20 64 65 66 69 .......and.compatible.macro.defi
6fc00 6e 69 74 69 6f 6e 73 20 69 6e 74 6f 20 61 20 6e 65 77 20 65 6d 70 74 79 20 73 74 72 75 63 74 20 nitions.into.a.new.empty.struct.
6fc20 74 79 70 65 2c 20 61 6e 64 20 74 68 65 6e 0a 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 74 68 61 type,.and.then.......returns.tha
6fc40 74 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 t.type........</p>.......<p>....
6fc60 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 65 78 70 72 65 73 73 69 6f 6e 3c ...<code.class="zig">expression<
6fc80 2f 63 6f 64 65 3e 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 /code>.is.interpreted.at.compile
6fca0 20 74 69 6d 65 2e 20 54 68 65 20 62 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 .time..The.builtin.functions....
6fcc0 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 .......<code.class="zig"><span.c
6fce0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 73 70 lass="tok-builtin">@cInclude</sp
6fd00 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 an></code>,.<code.class="zig"><s
6fd20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 44 65 66 69 6e 65 pan.class="tok-builtin">@cDefine
6fd40 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d </span></code>,.and.<code.class=
6fd60 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e "zig"><span.class="tok-builtin">
6fd80 40 63 55 6e 64 65 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 6f 72 6b 0a 20 20 20 20 20 @cUndef</span></code>.work......
6fda0 20 77 69 74 68 69 6e 20 74 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 61 70 70 65 6e 64 69 .within.this.expression,.appendi
6fdc0 6e 67 20 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 77 68 69 63 68 20 69 ng.to.a.temporary.buffer.which.i
6fde0 73 20 74 68 65 6e 20 70 61 72 73 65 64 20 61 73 20 43 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c s.then.parsed.as.C.code........<
6fe00 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 75 61 6c 6c 79 20 79 6f 75 20 /p>.......<p>.......Usually.you.
6fe20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 68 61 76 65 20 6f 6e 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 should.only.have.one.<code.class
6fe40 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 ="zig"><span.class="tok-builtin"
6fe60 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 6e 20 79 6f 75 72 20 >@cImport</span></code>.in.your.
6fe80 65 6e 74 69 72 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 62 65 63 61 75 73 65 20 69 74 20 73 entire.application,.because.it.s
6fea0 61 76 65 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 66 72 6f 6d 20 69 6e 76 aves.the.compiler.......from.inv
6fec0 6f 6b 69 6e 67 20 63 6c 61 6e 67 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2c 20 61 6e 64 20 oking.clang.multiple.times,.and.
6fee0 70 72 65 76 65 6e 74 73 20 69 6e 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 73 20 66 72 6f 6d 20 62 prevents.inline.functions.from.b
6ff00 65 69 6e 67 20 64 75 70 6c 69 63 61 74 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 eing.duplicated........</p>.....
6ff20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 61 73 6f 6e 73 20 66 6f 72 20 68 61 76 69 6e 67 20 6d ..<p>.......Reasons.for.having.m
6ff40 75 6c 74 69 70 6c 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ultiple.<code.class="zig"><span.
6ff60 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 class="tok-builtin">@cImport</sp
6ff80 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 6f 75 6c 64 20 62 65 3a an></code>.expressions.would.be:
6ffa0 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 .......</p>.......<ul>..........
6ffc0 20 3c 6c 69 3e 54 6f 20 61 76 6f 69 64 20 61 20 73 79 6d 62 6f 6c 20 63 6f 6c 6c 69 73 69 6f 6e .<li>To.avoid.a.symbol.collision
6ffe0 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 69 66 20 66 6f 6f 2e 68 20 61 6e 64 20 62 61 72 2e 68 ,.for.example.if.foo.h.and.bar.h
70000 20 62 6f 74 68 20 3c 63 6f 64 65 3e 23 64 65 66 69 6e 65 20 43 4f 4e 4e 45 43 54 49 4f 4e 5f 43 .both.<code>#define.CONNECTION_C
70020 4f 55 4e 54 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 6f 20 OUNT</code></li>.........<li>To.
70040 61 6e 61 6c 79 7a 65 20 74 68 65 20 43 20 63 6f 64 65 20 77 69 74 68 20 64 69 66 66 65 72 65 6e analyze.the.C.code.with.differen
70060 74 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 64 65 66 69 6e 65 73 3c 2f 6c 69 3e 0a 20 20 20 20 t.preprocessor.defines</li>.....
70080 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 ..</ul>.......<p>See.also:</p><u
700a0 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 l>.<li><a.href="#Import-from-C-H
700c0 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 eader-File">Import.from.C.Header
700e0 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6e .File</a></li>.<li><a.href="#cIn
70100 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 clude">@cInclude</a></li>.<li><a
70120 20 68 72 65 66 3d 22 23 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c .href="#cDefine">@cDefine</a></l
70140 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 i>.<li><a.href="#cUndef">@cUndef
70160 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 </a></li>.</ul>...............<h
70180 32 20 69 64 3d 22 63 49 6e 63 6c 75 64 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 63 49 2.id="cInclude"><a.href="#toc-cI
701a0 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 nclude">@cInclude</a>.<a.class="
701c0 68 64 72 22 20 68 72 65 66 3d 22 23 63 49 6e 63 6c 75 64 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 hdr".href="#cInclude">..</a></h2
701e0 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e >........<pre><code.class="zig">
70200 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6e 63 6c <span.class="tok-builtin">@cIncl
70220 75 64 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ude</span>(<span.class="tok-kw">
70240 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 70 61 74 68 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c comptime</span>.path:.[]<span.cl
70260 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e ass="tok-type">u8</span>)</code>
70280 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 </pre>.......<p>.......This.func
702a0 74 69 6f 6e 20 63 61 6e 20 6f 6e 6c 79 20 6f 63 63 75 72 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 tion.can.only.occur.inside.<code
702c0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
702e0 69 6c 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 iltin">@cImport</span></code>...
70300 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 .....</p>.......<p>.......This.a
70320 70 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 69 6e 63 6c 75 64 65 20 3c 24 70 61 74 68 3e 5c 6e 3c ppends.<code>#include.<$path>\n<
70340 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e /code>.to.the.<code.class="zig">
70360 63 5f 69 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 74 65 6d 70 6f 72 61 72 79 20 c_import</code>.......temporary.
70380 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 buffer........</p>.......<p>See.
703a0 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6f also:</p><ul>.<li><a.href="#Impo
703c0 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 72 rt-from-C-Header-File">Import.fr
703e0 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 om.C.Header.File</a></li>.<li><a
70400 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c .href="#cImport">@cImport</a></l
70420 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 i>.<li><a.href="#cDefine">@cDefi
70440 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 55 6e 64 65 66 ne</a></li>.<li><a.href="#cUndef
70460 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 ">@cUndef</a></li>.</ul>........
70480 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6c 7a 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 ........<h2.id="clz"><a.href="#t
704a0 6f 63 2d 63 6c 7a 22 3e 40 63 6c 7a 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 oc-clz">@clz</a>.<a.class="hdr".
704c0 68 72 65 66 3d 22 23 63 6c 7a 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c href="#clz">..</a></h2>........<
704e0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
70500 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6c 7a 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 s="tok-builtin">@clz</span>(<spa
70520 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e n.class="tok-kw">comptime</span>
70540 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c .T:.<span.class="tok-type">type<
70560 2f 73 70 61 6e 3e 2c 20 69 6e 74 65 67 65 72 3a 20 54 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e /span>,.integer:.T)</code></pre>
70580 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 .......<p>.......This.function.c
705a0 6f 75 6e 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6d 6f 73 74 2d 73 69 67 6e 69 66 69 ounts.the.number.of.most-signifi
705c0 63 61 6e 74 20 28 6c 65 61 64 69 6e 67 20 69 6e 20 61 20 62 69 67 2d 45 6e 64 69 61 6e 20 73 65 cant.(leading.in.a.big-Endian.se
705e0 6e 73 65 29 20 7a 65 72 6f 65 73 20 69 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 nse).zeroes.in.<code.class="zig"
70600 3e 69 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 >integer</code>........</p>.....
70620 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 ..<p>.......If.<code.class="zig"
70640 3e 69 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 3c 61 20 68 >integer</code>.is.known.at.<a.h
70660 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2c 0a 20 20 ref="#comptime">comptime</a>,...
70680 20 20 20 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 ....the.return.type.is.<code.cla
706a0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ss="zig"><span.class="tok-type">
706c0 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 comptime_int</span></code>......
706e0 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 ..Otherwise,.the.return.type.is.
70700 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 74 68 65 20 6d 69 6e an.unsigned.integer.with.the.min
70720 69 6d 75 6d 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 6f 66 20 62 69 74 73 20 74 68 61 74 20 63 imum.number.......of.bits.that.c
70740 61 6e 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 62 69 74 20 63 6f 75 6e 74 20 6f 66 20 74 68 an.represent.the.bit.count.of.th
70760 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 e.integer.type........</p>......
70780 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e .<p>.......If.<code.class="zig">
707a0 69 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 20 69 73 20 7a 65 72 6f 2c 20 3c 63 6f 64 65 20 63 6c integer</code>.is.zero,.<code.cl
707c0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 ass="zig"><span.class="tok-built
707e0 69 6e 22 3e 40 63 6c 7a 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 6e 73 20 74 in">@clz</span></code>.returns.t
70800 68 65 20 62 69 74 20 77 69 64 74 68 0a 20 20 20 20 20 20 6f 66 20 69 6e 74 65 67 65 72 20 74 79 he.bit.width.......of.integer.ty
70820 70 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 6f 64 65 3e 2e 0a 20 pe.<code.class="zig">T</code>...
70840 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e .....</p>.......<p>See.also:</p>
70860 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 74 7a 22 3e 40 63 74 7a 3c 2f 61 3e <ul>.<li><a.href="#ctz">@ctz</a>
70880 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 6f 70 43 6f 75 6e 74 22 3e 40 70 </li>.<li><a.href="#popCount">@p
708a0 6f 70 43 6f 75 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a opCount</a></li>.</ul>..........
708c0 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 22 3e 3c 61 20 ......<h2.id="cmpxchgStrong"><a.
708e0 68 72 65 66 3d 22 23 74 6f 63 2d 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 22 3e 40 63 6d 70 78 63 href="#toc-cmpxchgStrong">@cmpxc
70900 68 67 53 74 72 6f 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 hgStrong</a>.<a.class="hdr".href
70920 3d 22 23 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 ="#cmpxchgStrong">..</a></h2>...
70940 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
70960 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6d 70 78 63 68 67 53 74 n.class="tok-builtin">@cmpxchgSt
70980 72 6f 6e 67 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 rong</span>(<span.class="tok-kw"
709a0 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >comptime</span>.T:.<span.class=
709c0 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 70 74 72 3a 20 2a 54 2c "tok-type">type</span>,.ptr:.*T,
709e0 20 65 78 70 65 63 74 65 64 5f 76 61 6c 75 65 3a 20 54 2c 20 6e 65 77 5f 76 61 6c 75 65 3a 20 54 .expected_value:.T,.new_value:.T
70a00 2c 20 73 75 63 63 65 73 73 5f 6f 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 2c 20 66 61 ,.success_order:.AtomicOrder,.fa
70a20 69 6c 5f 6f 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 3f 54 3c 2f 63 6f 64 65 3e il_order:.AtomicOrder).?T</code>
70a40 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 </pre>.......<p>.......This.func
70a60 74 69 6f 6e 20 70 65 72 66 6f 72 6d 73 20 61 20 73 74 72 6f 6e 67 20 61 74 6f 6d 69 63 20 63 6f tion.performs.a.strong.atomic.co
70a80 6d 70 61 72 65 20 65 78 63 68 61 6e 67 65 20 6f 70 65 72 61 74 69 6f 6e 2e 20 49 74 27 73 20 74 mpare.exchange.operation..It's.t
70aa0 68 65 20 65 71 75 69 76 61 6c 65 6e 74 20 6f 66 20 74 68 69 73 20 63 6f 64 65 2c 0a 20 20 20 20 he.equivalent.of.this.code,.....
70ac0 20 20 65 78 63 65 70 74 20 61 74 6f 6d 69 63 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 ..except.atomic:.......</p>.....
70ae0 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ..<pre><code.class="zig"><span.c
70b00 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c lass="tok-kw">fn</span>.<span.cl
70b20 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 42 75 74 4e 6f 74 ass="tok-fn">cmpxchgStrongButNot
70b40 41 74 6f 6d 69 63 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b Atomic</span>(<span.class="tok-k
70b60 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 w">comptime</span>.T:.<span.clas
70b80 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 70 74 72 3a 20 2a s="tok-type">type</span>,.ptr:.*
70ba0 54 2c 20 65 78 70 65 63 74 65 64 5f 76 61 6c 75 65 3a 20 54 2c 20 6e 65 77 5f 76 61 6c 75 65 3a T,.expected_value:.T,.new_value:
70bc0 20 54 29 20 3f 54 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .T).?T.{.....<span.class="tok-kw
70be0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 6c 64 5f 76 61 6c 75 65 20 3d 20 70 74 72 2e 2a ">const</span>.old_value.=.ptr.*
70c00 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 ;.....<span.class="tok-kw">if</s
70c20 70 61 6e 3e 20 28 6f 6c 64 5f 76 61 6c 75 65 20 3d 3d 20 65 78 70 65 63 74 65 64 5f 76 61 6c 75 pan>.(old_value.==.expected_valu
70c40 65 29 20 7b 0a 20 20 20 20 20 20 20 20 70 74 72 2e 2a 20 3d 20 6e 65 77 5f 76 61 6c 75 65 3b 0a e).{.........ptr.*.=.new_value;.
70c60 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 ........<span.class="tok-kw">ret
70c80 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c urn</span>.<span.class="tok-null
70ca0 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">null</span>;.....}.<span.class
70cc0 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 ="tok-kw">else</span>.{.........
70ce0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 <span.class="tok-kw">return</spa
70d00 6e 3e 20 6f 6c 64 5f 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 n>.old_value;.....}.}</code></pr
70d20 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 61 72 65 20 75 73 e>.......<p>.......If.you.are.us
70d40 69 6e 67 20 63 6d 70 78 63 68 67 20 69 6e 20 61 20 6c 6f 6f 70 2c 20 3c 61 20 68 72 65 66 3d 22 ing.cmpxchg.in.a.loop,.<a.href="
70d60 23 63 6d 70 78 63 68 67 57 65 61 6b 22 3e 40 63 6d 70 78 63 68 67 57 65 61 6b 3c 2f 61 3e 20 69 #cmpxchgWeak">@cmpxchgWeak</a>.i
70d80 73 20 74 68 65 20 62 65 74 74 65 72 20 63 68 6f 69 63 65 2c 20 62 65 63 61 75 73 65 20 69 74 20 s.the.better.choice,.because.it.
70da0 63 61 6e 20 62 65 20 69 6d 70 6c 65 6d 65 6e 74 65 64 0a 20 20 20 20 20 20 6d 6f 72 65 20 65 66 can.be.implemented.......more.ef
70dc0 66 69 63 69 65 6e 74 6c 79 20 69 6e 20 6d 61 63 68 69 6e 65 20 69 6e 73 74 72 75 63 74 69 6f 6e ficiently.in.machine.instruction
70de0 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 s........</p>.......<p>.......<c
70e00 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 ode.class="zig">AtomicOrder</cod
70e20 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 73 e>.can.be.found.with.<code.class
70e40 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 ="zig"><span.class="tok-builtin"
70e60 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
70e80 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e -str">&quot;builtin&quot;</span>
70ea0 29 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e ).AtomicOrder</code>........</p>
70ec0 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .......<p><code.class="zig"><spa
70ee0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 n.class="tok-builtin">@typeOf</s
70f00 70 61 6e 3e 28 70 74 72 29 2e 61 6c 69 67 6e 6d 65 6e 74 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 pan>(ptr).alignment</code>.must.
70f20 62 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 26 67 74 3b 3d 20 3c 73 70 61 6e be.<code.class="zig">&gt;=.<span
70f40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 .class="tok-builtin">@sizeOf</sp
70f60 61 6e 3e 28 54 29 2e 3c 2f 63 6f 64 65 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 an>(T).</code></p>.......<p>See.
70f80 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 also:</p><ul>.<li><a.href="#Comp
70fa0 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 ile-Variables">Compile.Variables
70fc0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6d 70 78 63 68 67 57 </a></li>.<li><a.href="#cmpxchgW
70fe0 65 61 6b 22 3e 63 6d 70 78 63 68 67 57 65 61 6b 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a eak">cmpxchgWeak</a></li>.</ul>.
71000 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6d 70 78 63 68 67 57 65 61 ..............<h2.id="cmpxchgWea
71020 6b 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 63 6d 70 78 63 68 67 57 65 61 6b 22 3e 40 63 k"><a.href="#toc-cmpxchgWeak">@c
71040 6d 70 78 63 68 67 57 65 61 6b 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 mpxchgWeak</a>.<a.class="hdr".hr
71060 65 66 3d 22 23 63 6d 70 78 63 68 67 57 65 61 6b 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 ef="#cmpxchgWeak">..</a></h2>...
71080 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
710a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6d 70 78 63 68 67 57 65 n.class="tok-builtin">@cmpxchgWe
710c0 61 6b 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ak</span>(<span.class="tok-kw">c
710e0 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 omptime</span>.T:.<span.class="t
71100 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 70 74 72 3a 20 2a 54 2c 20 65 ok-type">type</span>,.ptr:.*T,.e
71120 78 70 65 63 74 65 64 5f 76 61 6c 75 65 3a 20 54 2c 20 6e 65 77 5f 76 61 6c 75 65 3a 20 54 2c 20 xpected_value:.T,.new_value:.T,.
71140 73 75 63 63 65 73 73 5f 6f 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 2c 20 66 61 69 6c success_order:.AtomicOrder,.fail
71160 5f 6f 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 3f 54 3c 2f 63 6f 64 65 3e 3c 2f _order:.AtomicOrder).?T</code></
71180 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 pre>.......<p>.......This.functi
711a0 6f 6e 20 70 65 72 66 6f 72 6d 73 20 61 20 77 65 61 6b 20 61 74 6f 6d 69 63 20 63 6f 6d 70 61 72 on.performs.a.weak.atomic.compar
711c0 65 20 65 78 63 68 61 6e 67 65 20 6f 70 65 72 61 74 69 6f 6e 2e 20 49 74 27 73 20 74 68 65 20 65 e.exchange.operation..It's.the.e
711e0 71 75 69 76 61 6c 65 6e 74 20 6f 66 20 74 68 69 73 20 63 6f 64 65 2c 0a 20 20 20 20 20 20 65 78 quivalent.of.this.code,.......ex
71200 63 65 70 74 20 61 74 6f 6d 69 63 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 cept.atomic:.......</p>.......<p
71220 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
71240 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="tok-kw">fn</span>.<span.class=
71260 22 74 6f 6b 2d 66 6e 22 3e 63 6d 70 78 63 68 67 57 65 61 6b 42 75 74 4e 6f 74 41 74 6f 6d 69 63 "tok-fn">cmpxchgWeakButNotAtomic
71280 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d </span>(<span.class="tok-kw">com
712a0 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ptime</span>.T:.<span.class="tok
712c0 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 70 74 72 3a 20 2a 54 2c 20 65 78 70 -type">type</span>,.ptr:.*T,.exp
712e0 65 63 74 65 64 5f 76 61 6c 75 65 3a 20 54 2c 20 6e 65 77 5f 76 61 6c 75 65 3a 20 54 29 20 3f 54 ected_value:.T,.new_value:.T).?T
71300 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 .{.....<span.class="tok-kw">cons
71320 74 3c 2f 73 70 61 6e 3e 20 6f 6c 64 5f 76 61 6c 75 65 20 3d 20 70 74 72 2e 2a 3b 0a 20 20 20 20 t</span>.old_value.=.ptr.*;.....
71340 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 <span.class="tok-kw">if</span>.(
71360 6f 6c 64 5f 76 61 6c 75 65 20 3d 3d 20 65 78 70 65 63 74 65 64 5f 76 61 6c 75 65 20 3c 73 70 61 old_value.==.expected_value.<spa
71380 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 75 73 75 61 n.class="tok-kw">and</span>.usua
713a0 6c 6c 79 54 72 75 65 42 75 74 53 6f 6d 65 74 69 6d 65 73 46 61 6c 73 65 28 29 29 20 7b 0a 20 20 llyTrueButSometimesFalse()).{...
713c0 20 20 20 20 20 20 70 74 72 2e 2a 20 3d 20 6e 65 77 5f 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 ......ptr.*.=.new_value;........
713e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 .<span.class="tok-kw">return</sp
71400 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c an>.<span.class="tok-null">null<
71420 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b /span>;.....}.<span.class="tok-k
71440 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 w">else</span>.{.........<span.c
71460 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 6f 6c 64 5f lass="tok-kw">return</span>.old_
71480 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 value;.....}.}</code></pre>.....
714a0 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 63 6d 70 ..<p>.......If.you.are.using.cmp
714c0 78 63 68 67 20 69 6e 20 61 20 6c 6f 6f 70 2c 20 74 68 65 20 73 70 6f 72 61 64 69 63 20 66 61 69 xchg.in.a.loop,.the.sporadic.fai
714e0 6c 75 72 65 20 77 69 6c 6c 20 62 65 20 6e 6f 20 70 72 6f 62 6c 65 6d 2c 20 61 6e 64 20 3c 63 6f lure.will.be.no.problem,.and.<co
71500 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6d 70 78 63 68 67 57 65 61 6b 3c 2f 63 6f 64 65 de.class="zig">cmpxchgWeak</code
71520 3e 0a 20 20 20 20 20 20 69 73 20 74 68 65 20 62 65 74 74 65 72 20 63 68 6f 69 63 65 2c 20 62 65 >.......is.the.better.choice,.be
71540 63 61 75 73 65 20 69 74 20 63 61 6e 20 62 65 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 6d 6f 72 65 cause.it.can.be.implemented.more
71560 20 65 66 66 69 63 69 65 6e 74 6c 79 20 69 6e 20 6d 61 63 68 69 6e 65 20 69 6e 73 74 72 75 63 74 .efficiently.in.machine.instruct
71580 69 6f 6e 73 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 20 69 66 20 79 6f 75 20 6e 65 65 64 20 ions........However.if.you.need.
715a0 61 20 73 74 72 6f 6e 67 65 72 20 67 75 61 72 61 6e 74 65 65 2c 20 75 73 65 20 3c 61 20 68 72 65 a.stronger.guarantee,.use.<a.hre
715c0 66 3d 22 23 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 22 3e 40 63 6d 70 78 63 68 67 53 74 72 6f 6e f="#cmpxchgStrong">@cmpxchgStron
715e0 67 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 g</a>........</p>.......<p>.....
71600 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 41 74 6f 6d 69 63 4f 72 64 65 72 3c ..<code.class="zig">AtomicOrder<
71620 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 20 63 /code>.can.be.found.with.<code.c
71640 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
71660 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d tin">@import</span>(<span.class=
71680 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 "tok-str">&quot;builtin&quot;</s
716a0 70 61 6e 3e 29 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 pan>).AtomicOrder</code>........
716c0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e </p>.......<p><code.class="zig">
716e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f <span.class="tok-builtin">@typeO
71700 66 3c 2f 73 70 61 6e 3e 28 70 74 72 29 2e 61 6c 69 67 6e 6d 65 6e 74 3c 2f 63 6f 64 65 3e 20 6d f</span>(ptr).alignment</code>.m
71720 75 73 74 20 62 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 26 67 74 3b 3d 20 3c ust.be.<code.class="zig">&gt;=.<
71740 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 span.class="tok-builtin">@sizeOf
71760 3c 2f 73 70 61 6e 3e 28 54 29 2e 3c 2f 63 6f 64 65 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e </span>(T).</code></p>.......<p>
71780 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 See.also:</p><ul>.<li><a.href="#
717a0 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 Compile-Variables">Compile.Varia
717c0 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6d 70 78 bles</a></li>.<li><a.href="#cmpx
717e0 63 68 67 53 74 72 6f 6e 67 22 3e 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 3c 2f 61 3e 3c 2f 6c 69 chgStrong">cmpxchgStrong</a></li
71800 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 >.</ul>................<h2.id="c
71820 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 63 6f 6d 70 69 ompileError"><a.href="#toc-compi
71840 6c 65 45 72 72 6f 72 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c leError">@compileError</a>.<a.cl
71860 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e c2 ass="hdr".href="#compileError">.
71880 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .</a></h2>........<pre><code.cla
718a0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ss="zig"><span.class="tok-builti
718c0 6e 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c n">@compileError</span>(<span.cl
718e0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6d 73 67 ass="tok-kw">comptime</span>.msg
71900 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 :.[]<span.class="tok-type">u8</s
71920 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 pan>)</code></pre>.......<p>....
71940 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 65 6e 20 73 65 6d 61 6e 74 69 63 61 ...This.function,.when.semantica
71960 6c 6c 79 20 61 6e 61 6c 79 7a 65 64 2c 20 63 61 75 73 65 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 lly.analyzed,.causes.a.compile.e
71980 72 72 6f 72 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 rror.with.the.......message.<cod
719a0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6d 73 67 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 e.class="zig">msg</code>........
719c0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 61 72 65 20 73 </p>.......<p>.......There.are.s
719e0 65 76 65 72 61 6c 20 77 61 79 73 20 74 68 61 74 20 63 6f 64 65 20 61 76 6f 69 64 73 20 62 65 69 everal.ways.that.code.avoids.bei
71a00 6e 67 20 73 65 6d 61 6e 74 69 63 61 6c 6c 79 20 63 68 65 63 6b 65 64 2c 20 73 75 63 68 20 61 73 ng.semantically.checked,.such.as
71a20 0a 20 20 20 20 20 20 75 73 69 6e 67 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .......using.<code.class="zig"><
71a40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 3c 2f 63 span.class="tok-kw">if</span></c
71a60 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ode>.or.<code.class="zig"><span.
71a80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f class="tok-kw">switch</span></co
71aa0 64 65 3e 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 73 2c de>.with.compile.time.constants,
71ac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ...............and.<code.class="
71ae0 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 zig"><span.class="tok-kw">compti
71b00 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20 me</span></code>.functions......
71b20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6f 6d ..</p>...............<h2.id="com
71b40 70 69 6c 65 4c 6f 67 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 63 6f 6d 70 69 6c 65 4c 6f pileLog"><a.href="#toc-compileLo
71b60 67 22 3e 40 63 6f 6d 70 69 6c 65 4c 6f 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 g">@compileLog</a>.<a.class="hdr
71b80 22 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 4c 6f 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e ".href="#compileLog">..</a></h2>
71ba0 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ........<pre><code.class="zig"><
71bc0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 69 6c span.class="tok-builtin">@compil
71be0 65 4c 6f 67 3c 2f 73 70 61 6e 3e 28 61 72 67 73 3a 20 2e 2e 2e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 eLog</span>(args:....)</code></p
71c00 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f re>.......<p>.......This.functio
71c20 6e 20 70 72 69 6e 74 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20 74 6f n.prints.the.arguments.passed.to
71c40 20 69 74 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a .it.at.compile-time........</p>.
71c60 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 70 72 65 76 65 6e 74 20 61 63 63 69 64 ......<p>.......To.prevent.accid
71c80 65 6e 74 61 6c 6c 79 20 6c 65 61 76 69 6e 67 20 63 6f 6d 70 69 6c 65 20 6c 6f 67 20 73 74 61 74 entally.leaving.compile.log.stat
71ca0 65 6d 65 6e 74 73 20 69 6e 20 61 20 63 6f 64 65 62 61 73 65 2c 0a 20 20 20 20 20 20 61 20 63 6f ements.in.a.codebase,.......a.co
71cc0 6d 70 69 6c 61 74 69 6f 6e 20 65 72 72 6f 72 20 69 73 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 mpilation.error.is.added.to.the.
71ce0 62 75 69 6c 64 2c 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6d 70 69 6c 65 0a 20 build,.pointing.to.the.compile..
71d00 20 20 20 20 20 6c 6f 67 20 73 74 61 74 65 6d 65 6e 74 2e 20 54 68 69 73 20 65 72 72 6f 72 20 70 .....log.statement..This.error.p
71d20 72 65 76 65 6e 74 73 20 63 6f 64 65 20 66 72 6f 6d 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65 revents.code.from.being.generate
71d40 64 2c 20 62 75 74 0a 20 20 20 20 20 20 64 6f 65 73 20 6e 6f 74 20 6f 74 68 65 72 77 69 73 65 20 d,.but.......does.not.otherwise.
71d60 69 6e 74 65 72 66 65 72 65 20 77 69 74 68 20 61 6e 61 6c 79 73 69 73 2e 0a 20 20 20 20 20 20 3c interfere.with.analysis........<
71d80 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f /p>.......<p>.......This.functio
71da0 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 6f 20 22 70 72 69 6e 74 66 20 64 65 62 75 n.can.be.used.to.do."printf.debu
71dc0 67 67 69 6e 67 22 20 6f 6e 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 65 78 65 gging".on.......compile-time.exe
71de0 63 75 74 69 6e 67 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 cuting.code........</p>.......<p
71e00 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
71e20 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
71e40 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d 20 3c 73 70 61 6e 20 k-kw">const</span>.warn.=.<span.
71e60 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 class="tok-builtin">@import</spa
71e80 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 n>(<span.class="tok-str">&quot;s
71ea0 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 3c 73 td&quot;</span>).debug.warn;..<s
71ec0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
71ee0 6e 75 6d 31 20 3d 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 num1.=.blk:.{.....<span.class="t
71f00 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 76 61 6c 31 3a 20 3c 73 70 61 6e 20 63 6c ok-kw">var</span>.val1:.<span.cl
71f20 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 ass="tok-type">i32</span>.=.<spa
71f40 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 39 3c 2f 73 70 61 6e 3e 3b 0a n.class="tok-number">99</span>;.
71f60 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 ....<span.class="tok-builtin">@c
71f80 6f 6d 70 69 6c 65 4c 6f 67 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ompileLog</span>(<span.class="to
71fa0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 76 61 6c 31 20 3d 20 26 71 75 k-str">&quot;comptime.val1.=.&qu
71fc0 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 31 29 3b 0a 20 20 20 20 76 61 6c 31 20 3d 20 76 61 ot;</span>,.val1);.....val1.=.va
71fe0 6c 31 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c l1.+.<span.class="tok-number">1<
72000 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>;.....<span.class="tok-kw"
72020 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3a 62 6c 6b 20 76 61 6c 31 3b 0a 7d 3b 0a 0a 3c 73 70 >break</span>.:blk.val1;.};..<sp
72040 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 an.class="tok-kw">test</span>.<s
72060 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6d 61 69 6e 26 71 pan.class="tok-str">&quot;main&q
72080 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>.{.....<span.class="t
720a0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 69 6c 65 4c 6f 67 3c 2f 73 70 61 6e 3e 28 3c ok-builtin">@compileLog</span>(<
720c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 6f 6d 70 74 span.class="tok-str">&quot;compt
720e0 69 6d 65 20 69 6e 20 6d 61 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 ime.in.main&quot;</span>);......
72100 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 warn(<span.class="tok-str">&quot
72120 3b 52 75 6e 74 69 6d 65 20 69 6e 20 6d 61 69 6e 2c 20 6e 75 6d 31 20 3d 20 7b 7d 2e 5c 6e 26 71 ;Runtime.in.main,.num1.=.{}.\n&q
72140 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 6e 75 6d 31 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 uot;</span>,.num1);.}</code></pr
72160 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 e><pre><code.class="shell">$.zig
72180 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 7c 20 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 .test.test.zig.|.&quot;comptime.
721a0 69 6e 20 6d 61 69 6e 26 71 75 6f 74 3b 0a 7c 20 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 76 in.main&quot;.|.&quot;comptime.v
721c0 61 6c 31 20 3d 20 26 71 75 6f 74 3b 2c 20 39 39 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 al1.=.&quot;,.99.<span.class="t0
721e0 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d _1">/home/andy/dev/zig/docgen_tm
72200 70 2f 74 65 73 74 2e 7a 69 67 3a 31 31 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c p/test.zig:11:5:.</span><span.cl
72220 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 ass="t31_1">error:</span><span.c
72240 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 66 6f 75 6e 64 20 63 6f 6d 70 69 6c 65 20 6c 6f 67 20 73 lass="t0_1">.found.compile.log.s
72260 74 61 74 65 6d 65 6e 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 63 6f 6d 70 69 6c 65 4c 6f 67 28 tatement</span>.....@compileLog(
72280 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 69 6e 20 6d 61 69 6e 26 71 75 6f 74 3b 29 3b 0a 20 &quot;comptime.in.main&quot;);..
722a0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a ...<span.class="t32_1">^</span>.
722c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 <span.class="t0_1">/home/andy/de
722e0 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 3a 33 34 3a 20 v/zig/docgen_tmp/test.zig:1:34:.
72300 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a </span><span.class="t36_1">note:
72320 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 </span><span.class="t0_1">.refer
72340 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 63 6f 6e 73 74 20 77 61 72 6e 20 3d 20 40 enced.here</span>.const.warn.=.@
72360 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 77 61 import(&quot;std&quot;).debug.wa
72380 72 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rn;.............................
723a0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e .....<span.class="t32_1">^</span
723c0 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f >.<span.class="t0_1">/home/andy/
723e0 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 33 3a 35 dev/zig/docgen_tmp/test.zig:13:5
72400 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 :.</span><span.class="t36_1">not
72420 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 e:</span><span.class="t0_1">.ref
72440 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 77 61 72 6e 28 26 71 75 erenced.here</span>.....warn(&qu
72460 6f 74 3b 52 75 6e 74 69 6d 65 20 69 6e 20 6d 61 69 6e 2c 20 6e 75 6d 31 20 3d 20 7b 7d 2e 5c 6e ot;Runtime.in.main,.num1.=.{}.\n
72480 26 71 75 6f 74 3b 2c 20 6e 75 6d 31 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 &quot;,.num1);.....<span.class="
724a0 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f t32_1">^</span>.<span.class="t0_
724c0 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 1">/home/andy/dev/zig/docgen_tmp
724e0 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 /test.zig:5:5:.</span><span.clas
72500 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 s="t31_1">error:</span><span.cla
72520 73 73 3d 22 74 30 5f 31 22 3e 20 66 6f 75 6e 64 20 63 6f 6d 70 69 6c 65 20 6c 6f 67 20 73 74 61 ss="t0_1">.found.compile.log.sta
72540 74 65 6d 65 6e 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 63 6f 6d 70 69 6c 65 4c 6f 67 28 26 71 tement</span>.....@compileLog(&q
72560 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 76 61 6c 31 20 3d 20 26 71 75 6f 74 3b 2c 20 76 61 6c 31 uot;comptime.val1.=.&quot;,.val1
72580 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 );.....<span.class="t32_1">^</sp
725a0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 an>.<span.class="t0_1">/home/and
725c0 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 33 y/dev/zig/docgen_tmp/test.zig:13
725e0 3a 34 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e :43:.</span><span.class="t36_1">
72600 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 note:</span><span.class="t0_1">.
72620 72 65 66 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 77 61 72 6e 28 referenced.here</span>.....warn(
72640 26 71 75 6f 74 3b 52 75 6e 74 69 6d 65 20 69 6e 20 6d 61 69 6e 2c 20 6e 75 6d 31 20 3d 20 7b 7d &quot;Runtime.in.main,.num1.=.{}
72660 2e 5c 6e 26 71 75 6f 74 3b 2c 20 6e 75 6d 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .\n&quot;,.num1);...............
72680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 ............................<spa
726a0 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e n.class="t32_1">^</span>.</code>
726c0 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 </pre>........</p>.......<p>....
726e0 20 20 20 77 69 6c 6c 20 6f 75 70 75 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 ...will.ouput:.......</p>.......
72700 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 61 6c 6c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 <p>.......If.all.<code.class="zi
72720 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f g"><span.class="tok-builtin">@co
72740 6d 70 69 6c 65 4c 6f 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6c 6c 73 20 61 72 65 mpileLog</span></code>.calls.are
72760 20 72 65 6d 6f 76 65 64 20 6f 72 0a 20 20 20 20 20 20 6e 6f 74 20 65 6e 63 6f 75 6e 74 65 72 65 .removed.or.......not.encountere
72780 64 20 62 79 20 61 6e 61 6c 79 73 69 73 2c 20 74 68 65 0a 20 20 20 20 20 20 70 72 6f 67 72 61 6d d.by.analysis,.the.......program
727a0 20 63 6f 6d 70 69 6c 65 73 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 61 6e 64 20 74 68 65 20 67 .compiles.successfully.and.the.g
727c0 65 6e 65 72 61 74 65 64 20 65 78 65 63 75 74 61 62 6c 65 20 70 72 69 6e 74 73 3a 0a 20 20 20 20 enerated.executable.prints:.....
727e0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 ..</p>.......<p.class="file">tes
72800 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e t.zig</p><pre><code.class="zig">
72820 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
72840 3e 20 77 61 72 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 >.warn.=.<span.class="tok-builti
72860 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">@import</span>(<span.class="t
72880 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e ok-str">&quot;std&quot;</span>).
728a0 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 debug.warn;..<span.class="tok-kw
728c0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 31 20 3d 20 62 6c 6b 3a 20 7b 0a 20 20 20 ">const</span>.num1.=.blk:.{....
728e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">var</span>
72900 20 76 61 6c 31 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 .val1:.<span.class="tok-type">i3
72920 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 2</span>.=.<span.class="tok-numb
72940 65 72 22 3e 39 39 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 76 61 6c 31 20 3d 20 76 61 6c 31 20 2b er">99</span>;.....val1.=.val1.+
72960 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 .<span.class="tok-number">1</spa
72980 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 72 65 n>;.....<span.class="tok-kw">bre
729a0 61 6b 3c 2f 73 70 61 6e 3e 20 3a 62 6c 6b 20 76 61 6c 31 3b 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 ak</span>.:blk.val1;.};..<span.c
729c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 lass="tok-kw">test</span>.<span.
729e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6d 61 69 6e 26 71 75 6f 74 3b class="tok-str">&quot;main&quot;
72a00 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>.{.....warn(<span.class="
72a20 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 52 75 6e 74 69 6d 65 20 69 6e 20 6d 61 69 6e 2c 20 tok-str">&quot;Runtime.in.main,.
72a40 6e 75 6d 31 20 3d 20 7b 7d 2e 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 6e 75 6d 31 29 num1.=.{}.\n&quot;</span>,.num1)
72a60 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ;.}</code></pre><pre><code.class
72a80 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 ="shell">$.zig.test.test.zig.1/1
72aa0 20 74 65 73 74 20 26 71 75 6f 74 3b 6d 61 69 6e 26 71 75 6f 74 3b 2e 2e 2e 52 75 6e 74 69 6d 65 .test.&quot;main&quot;...Runtime
72ac0 20 69 6e 20 6d 61 69 6e 2c 20 6e 75 6d 31 20 3d 20 31 30 30 2e 0a 4f 4b 0a 41 6c 6c 20 74 65 73 .in.main,.num1.=.100..OK.All.tes
72ae0 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 ts.passed..</code></pre>........
72b00 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 74 7a 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 ........<h2.id="ctz"><a.href="#t
72b20 6f 63 2d 63 74 7a 22 3e 40 63 74 7a 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 oc-ctz">@ctz</a>.<a.class="hdr".
72b40 68 72 65 66 3d 22 23 63 74 7a 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c href="#ctz">..</a></h2>........<
72b60 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
72b80 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 74 7a 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 s="tok-builtin">@ctz</span>(<spa
72ba0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e n.class="tok-kw">comptime</span>
72bc0 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c .T:.<span.class="tok-type">type<
72be0 2f 73 70 61 6e 3e 2c 20 69 6e 74 65 67 65 72 3a 20 54 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e /span>,.integer:.T)</code></pre>
72c00 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 .......<p>.......This.function.c
72c20 6f 75 6e 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6c 65 61 73 74 2d 73 69 67 6e 69 66 ounts.the.number.of.least-signif
72c40 69 63 61 6e 74 20 28 74 72 61 69 6c 69 6e 67 20 69 6e 20 61 20 62 69 67 2d 45 6e 64 69 61 6e 20 icant.(trailing.in.a.big-Endian.
72c60 73 65 6e 73 65 29 20 7a 65 72 6f 65 73 20 69 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 sense).zeroes.in.<code.class="zi
72c80 67 22 3e 69 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 g">integer</code>........</p>...
72ca0 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ....<p>.......If.<code.class="zi
72cc0 67 22 3e 69 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 3c 61 g">integer</code>.is.known.at.<a
72ce0 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2c 0a .href="#comptime">comptime</a>,.
72d00 20 20 20 20 20 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 20 63 ......the.return.type.is.<code.c
72d20 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
72d40 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 ">comptime_int</span></code>....
72d60 20 20 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 ....Otherwise,.the.return.type.i
72d80 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 74 68 65 20 6d s.an.unsigned.integer.with.the.m
72da0 69 6e 69 6d 75 6d 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 6f 66 20 62 69 74 73 20 74 68 61 74 inimum.number.......of.bits.that
72dc0 20 63 61 6e 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 62 69 74 20 63 6f 75 6e 74 20 6f 66 20 .can.represent.the.bit.count.of.
72de0 74 68 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 the.integer.type........</p>....
72e00 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ...<p>.......If.<code.class="zig
72e20 22 3e 69 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 20 69 73 20 7a 65 72 6f 2c 20 3c 63 6f 64 65 20 ">integer</code>.is.zero,.<code.
72e40 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 class="zig"><span.class="tok-bui
72e60 6c 74 69 6e 22 3e 40 63 74 7a 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 6e 73 ltin">@ctz</span></code>.returns
72e80 0a 20 20 20 20 20 20 74 68 65 20 62 69 74 20 77 69 64 74 68 20 6f 66 20 69 6e 74 65 67 65 72 20 .......the.bit.width.of.integer.
72ea0 74 79 70 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 3c 2f 63 6f 64 65 3e 2e type.<code.class="zig">T</code>.
72ec0 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f .......</p>.......<p>See.also:</
72ee0 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6c 7a 22 3e 40 63 6c 7a 3c 2f p><ul>.<li><a.href="#clz">@clz</
72f00 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 6f 70 43 6f 75 6e 74 22 3e a></li>.<li><a.href="#popCount">
72f20 40 70 6f 70 43 6f 75 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 @popCount</a></li>.</ul>........
72f40 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 55 6e 64 65 66 22 3e 3c 61 20 68 72 65 66 3d ........<h2.id="cUndef"><a.href=
72f60 22 23 74 6f 63 2d 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 20 3c 61 20 63 6c 61 "#toc-cUndef">@cUndef</a>.<a.cla
72f80 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 55 6e 64 65 66 22 3e c2 a7 3c 2f 61 3e 3c 2f ss="hdr".href="#cUndef">..</a></
72fa0 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 h2>........<pre><code.class="zig
72fc0 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 55 6e "><span.class="tok-builtin">@cUn
72fe0 64 65 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e def</span>(<span.class="tok-kw">
73000 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c comptime</span>.name:.[]<span.cl
73020 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e ass="tok-type">u8</span>)</code>
73040 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 </pre>.......<p>.......This.func
73060 74 69 6f 6e 20 63 61 6e 20 6f 6e 6c 79 20 6f 63 63 75 72 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 tion.can.only.occur.inside.<code
73080 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
730a0 69 6c 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 iltin">@cImport</span></code>...
730c0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 .....</p>.......<p>.......This.a
730e0 70 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 75 6e 64 65 66 20 24 6e 61 6d 65 3c 2f 63 6f 64 65 3e ppends.<code>#undef.$name</code>
73100 20 74 6f 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 .to.the.<code.class="zig"><span.
73120 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 class="tok-builtin">@cImport</sp
73140 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 an></code>.......temporary.buffe
73160 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a r........</p>.......<p>See.also:
73180 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6f 72 74 2d 66 72 </p><ul>.<li><a.href="#Import-fr
731a0 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 om-C-Header-File">Import.from.C.
731c0 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 Header.File</a></li>.<li><a.href
731e0 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c ="#cImport">@cImport</a></li>.<l
73200 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 i><a.href="#cDefine">@cDefine</a
73220 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6e 63 6c 75 64 65 22 3e 40 ></li>.<li><a.href="#cInclude">@
73240 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a cInclude</a></li>.</ul>.........
73260 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 64 69 76 45 78 61 63 74 22 3e 3c 61 20 68 72 65 66 .......<h2.id="divExact"><a.href
73280 3d 22 23 74 6f 63 2d 64 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 20 3c ="#toc-divExact">@divExact</a>.<
732a0 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 64 69 76 45 78 61 63 74 22 3e c2 a.class="hdr".href="#divExact">.
732c0 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .</a></h2>........<pre><code.cla
732e0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ss="zig"><span.class="tok-builti
73300 6e 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 73 70 61 6e 3e 28 6e 75 6d 65 72 61 74 6f 72 3a 20 54 n">@divExact</span>(numerator:.T
73320 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e ,.denominator:.T).T</code></pre>
73340 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 63 74 20 64 69 76 69 73 69 6f 6e 2e .......<p>.......Exact.division.
73360 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 .Caller.guarantees.<code.class="
73380 7a 69 67 22 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d zig">denominator.!=.<span.class=
733a0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 "tok-number">0</span></code>.and
733c0 0a 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ...........<code.class="zig"><sp
733e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 54 72 75 6e 63 an.class="tok-builtin">@divTrunc
73400 3c 2f 73 70 61 6e 3e 28 6e 75 6d 65 72 61 74 6f 72 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 29 20 </span>(numerator,.denominator).
73420 2a 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 3d 3d 20 6e 75 6d 65 72 61 74 6f 72 3c 2f 63 6f 64 65 *.denominator.==.numerator</code
73440 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 >........</p>.......<ul>........
73460 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ...<li><code.class="zig"><span.c
73480 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 73 70 lass="tok-builtin">@divExact</sp
734a0 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f an>(<span.class="tok-number">6</
734c0 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e span>,.<span.class="tok-number">
734e0 33 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 3</span>).==.<span.class="tok-nu
73500 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 mber">2</span></code></li>......
73520 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e .....<li><code.class="zig"><span
73540 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 45 78 61 63 74 3c 2f .class="tok-builtin">@divExact</
73560 73 70 61 6e 3e 28 61 2c 20 62 29 20 2a 20 62 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e span>(a,.b).*.b.==.a</code></li>
73580 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 61 20 66 75 6e 63 .......</ul>.......<p>For.a.func
735a0 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 70 6f 73 73 69 62 6c 65 20 65 72 72 tion.that.returns.a.possible.err
735c0 6f 72 20 63 6f 64 65 2c 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c or.code,.use.<code.class="zig"><
735e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
73600 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
73620 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 64 69 76 45 78 uot;std&quot;</span>).math.divEx
73640 61 63 74 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 act</code>.</p>.......<p>See.als
73660 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 54 72 75 6e o:</p><ul>.<li><a.href="#divTrun
73680 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 c">@divTrunc</a></li>.<li><a.hre
736a0 66 3d 22 23 64 69 76 46 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e f="#divFloor">@divFloor</a></li>
736c0 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 64 69 76 .</ul>...............<h2.id="div
736e0 46 6c 6f 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 64 69 76 46 6c 6f 6f 72 22 3e 40 Floor"><a.href="#toc-divFloor">@
73700 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 divFloor</a>.<a.class="hdr".href
73720 3d 22 23 64 69 76 46 6c 6f 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 ="#divFloor">..</a></h2>........
73740 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
73760 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 73 70 61 6e ss="tok-builtin">@divFloor</span
73780 3e 28 6e 75 6d 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 >(numerator:.T,.denominator:.T).
737a0 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 T</code></pre>.......<p>.......F
737c0 6c 6f 6f 72 65 64 20 64 69 76 69 73 69 6f 6e 2e 20 52 6f 75 6e 64 73 20 74 6f 77 61 72 64 20 6e loored.division..Rounds.toward.n
737e0 65 67 61 74 69 76 65 20 69 6e 66 69 6e 69 74 79 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 egative.infinity..For.unsigned.i
73800 6e 74 65 67 65 72 73 20 69 74 20 69 73 0a 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 ntegers.it.is.......the.same.as.
73820 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6e 75 6d 65 72 61 74 6f 72 20 2f 20 64 65 <code.class="zig">numerator./.de
73840 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 nominator</code>..Caller.guarant
73860 65 65 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 64 65 6e 6f 6d 69 6e 61 74 6f ees.<code.class="zig">denominato
73880 72 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c r.!=.<span.class="tok-number">0<
738a0 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 /span></code>.and...............
738c0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 21 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d <code.class="zig">!(<span.class=
738e0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 64 3c 2f 73 70 61 6e 3e 28 54 29 20 "tok-builtin">@typeId</span>(T).
73900 3d 3d 20 62 75 69 6c 74 69 6e 2e 54 79 70 65 49 64 2e 49 6e 74 20 3c 73 70 61 6e 20 63 6c 61 73 ==.builtin.TypeId.Int.<span.clas
73920 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 54 2e 69 73 5f 73 69 67 6e 65 s="tok-kw">and</span>.T.is_signe
73940 64 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e d.<span.class="tok-kw">and</span
73960 3e 20 6e 75 6d 65 72 61 74 6f 72 20 3d 3d 20 73 74 64 2e 6d 61 74 68 2e 6d 69 6e 49 6e 74 28 54 >.numerator.==.std.math.minInt(T
73980 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e ).<span.class="tok-kw">and</span
739a0 3e 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 3d 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >.denominator.==.-<span.class="t
739c0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 ok-number">1</span>)</code>.....
739e0 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 ...</p>.......<ul>...........<li
73a00 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
73a20 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 73 70 61 6e 3e 28 2d 3c tok-builtin">@divFloor</span>(-<
73a40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e span.class="tok-number">5</span>
73a60 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 ,.<span.class="tok-number">3</sp
73a80 61 6e 3e 29 20 3d 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 an>).==.-<span.class="tok-number
73aa0 22 3e 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 ">2</span></code></li>..........
73ac0 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 .<li><code.class="zig"><span.cla
73ae0 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 73 70 61 6e ss="tok-builtin">@divFloor</span
73b00 3e 28 61 2c 20 62 29 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 >(a,.b).+.<span.class="tok-built
73b20 69 6e 22 3e 40 6d 6f 64 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 in">@mod</span>(a,.b).==.a</code
73b40 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 ></li>.......</ul>.......<p>For.
73b60 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 70 6f 73 73 69 62 a.function.that.returns.a.possib
73b80 6c 65 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 le.error.code,.use.<code.class="
73ba0 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 zig"><span.class="tok-builtin">@
73bc0 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 import</span>(<span.class="tok-s
73be0 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 tr">&quot;std&quot;</span>).math
73c00 2e 64 69 76 46 6c 6f 6f 72 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 .divFloor</code>.</p>.......<p>S
73c20 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 ee.also:</p><ul>.<li><a.href="#d
73c40 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e ivTrunc">@divTrunc</a></li>.<li>
73c60 3c 61 20 68 72 65 66 3d 22 23 64 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 <a.href="#divExact">@divExact</a
73c80 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 ></li>.</ul>...............<h2.i
73ca0 64 3d 22 64 69 76 54 72 75 6e 63 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 64 69 76 54 72 d="divTrunc"><a.href="#toc-divTr
73cc0 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 unc">@divTrunc</a>.<a.class="hdr
73ce0 22 20 68 72 65 66 3d 22 23 64 69 76 54 72 75 6e 63 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a ".href="#divTrunc">..</a></h2>..
73d00 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
73d20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 54 72 75 6e 63 an.class="tok-builtin">@divTrunc
73d40 3c 2f 73 70 61 6e 3e 28 6e 75 6d 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f </span>(numerator:.T,.denominato
73d60 72 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 r:.T).T</code></pre>.......<p>..
73d80 20 20 20 20 20 54 72 75 6e 63 61 74 65 64 20 64 69 76 69 73 69 6f 6e 2e 20 52 6f 75 6e 64 73 20 .....Truncated.division..Rounds.
73da0 74 6f 77 61 72 64 20 7a 65 72 6f 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 toward.zero..For.unsigned.intege
73dc0 72 73 20 69 74 20 69 73 0a 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 3c 63 6f 64 65 rs.it.is.......the.same.as.<code
73de0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6e 75 6d 65 72 61 74 6f 72 20 2f 20 64 65 6e 6f 6d 69 6e .class="zig">numerator./.denomin
73e00 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c ator</code>..Caller.guarantees.<
73e20 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 21 3d 20 code.class="zig">denominator.!=.
73e40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e <span.class="tok-number">0</span
73e60 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 ></code>.and...............<code
73e80 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 21 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .class="zig">!(<span.class="tok-
73ea0 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 64 3c 2f 73 70 61 6e 3e 28 54 29 20 3d 3d 20 62 75 builtin">@typeId</span>(T).==.bu
73ec0 69 6c 74 69 6e 2e 54 79 70 65 49 64 2e 49 6e 74 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f iltin.TypeId.Int.<span.class="to
73ee0 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 54 2e 69 73 5f 73 69 67 6e 65 64 20 3c 73 70 k-kw">and</span>.T.is_signed.<sp
73f00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 6e 75 6d an.class="tok-kw">and</span>.num
73f20 65 72 61 74 6f 72 20 3d 3d 20 73 74 64 2e 6d 61 74 68 2e 6d 69 6e 49 6e 74 28 54 29 20 3c 73 70 erator.==.std.math.minInt(T).<sp
73f40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 64 65 6e an.class="tok-kw">and</span>.den
73f60 6f 6d 69 6e 61 74 6f 72 20 3d 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 ominator.==.-<span.class="tok-nu
73f80 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f mber">1</span>)</code>........</
73fa0 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 p>.......<ul>...........<li><cod
73fc0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
73fe0 75 69 6c 74 69 6e 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 73 70 61 6e 3e 28 2d 3c 73 70 61 6e 20 uiltin">@divTrunc</span>(-<span.
74000 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 class="tok-number">5</span>,.<sp
74020 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 20 an.class="tok-number">3</span>).
74040 3d 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f ==.-<span.class="tok-number">1</
74060 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e span></code></li>...........<li>
74080 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
740a0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 73 70 61 6e 3e 28 61 2c 20 ok-builtin">@divTrunc</span>(a,.
740c0 62 29 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 b).+.<span.class="tok-builtin">@
740e0 72 65 6d 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 rem</span>(a,.b).==.a</code></li
74100 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 61 20 66 75 6e >.......</ul>.......<p>For.a.fun
74120 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 70 6f 73 73 69 62 6c 65 20 65 72 ction.that.returns.a.possible.er
74140 72 6f 72 20 63 6f 64 65 2c 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ror.code,.use.<code.class="zig">
74160 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
74180 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
741a0 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 64 69 76 54 quot;std&quot;</span>).math.divT
741c0 72 75 6e 63 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c runc</code>.</p>.......<p>See.al
741e0 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 46 6c 6f so:</p><ul>.<li><a.href="#divFlo
74200 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 or">@divFloor</a></li>.<li><a.hr
74220 65 66 3d 22 23 64 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 ef="#divExact">@divExact</a></li
74240 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 6d >.</ul>...............<h2.id="em
74260 62 65 64 46 69 6c 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 65 6d 62 65 64 46 69 6c 65 bedFile"><a.href="#toc-embedFile
74280 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 ">@embedFile</a>.<a.class="hdr".
742a0 68 72 65 66 3d 22 23 65 6d 62 65 64 46 69 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 href="#embedFile">..</a></h2>...
742c0 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
742e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 6d 62 65 64 46 69 6c 65 n.class="tok-builtin">@embedFile
74300 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d </span>(<span.class="tok-kw">com
74320 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 70 61 74 68 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 ptime</span>.path:.[]<span.class
74340 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ="tok-kw">const</span>.<span.cla
74360 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 5b 58 5d 3c 73 70 61 ss="tok-type">u8</span>).[X]<spa
74380 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f n.class="tok-type">u8</span></co
743a0 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 de></pre>.......<p>.......This.f
743c0 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 unction.returns.a.compile.time.c
743e0 6f 6e 73 74 61 6e 74 20 66 69 78 65 64 2d 73 69 7a 65 20 61 72 72 61 79 20 77 69 74 68 20 6c 65 onstant.fixed-size.array.with.le
74400 6e 67 74 68 0a 20 20 20 20 20 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 62 79 74 65 20 63 6f 75 ngth.......equal.to.the.byte.cou
74420 6e 74 20 6f 66 20 74 68 65 20 66 69 6c 65 20 67 69 76 65 6e 20 62 79 20 3c 63 6f 64 65 20 63 6c nt.of.the.file.given.by.<code.cl
74440 61 73 73 3d 22 7a 69 67 22 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 63 6f 6e 74 65 ass="zig">path</code>..The.conte
74460 6e 74 73 20 6f 66 20 74 68 65 20 61 72 72 61 79 0a 20 20 20 20 20 20 61 72 65 20 74 68 65 20 63 nts.of.the.array.......are.the.c
74480 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 66 69 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ontents.of.the.file........</p>.
744a0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ......<p>.......<code.class="zig
744c0 22 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 20 69 73 20 61 62 73 6f 6c 75 74 65 20 6f 72 20 72 65 6c ">path</code>.is.absolute.or.rel
744e0 61 74 69 76 65 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 2c 20 6a 75 73 74 20 ative.to.the.current.file,.just.
74500 6c 69 6b 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 like.<code.class="zig"><span.cla
74520 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c ss="tok-builtin">@import</span><
74540 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 /code>........</p>.......<p>See.
74560 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f also:</p><ul>.<li><a.href="#impo
74580 72 74 22 3e 40 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 rt">@import</a></li>.</ul>......
745a0 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 6e 75 6d 54 6f 49 6e 74 22 3e 3c 61 20 ..........<h2.id="enumToInt"><a.
745c0 68 72 65 66 3d 22 23 74 6f 63 2d 65 6e 75 6d 54 6f 49 6e 74 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 href="#toc-enumToInt">@enumToInt
745e0 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 6e 75 6d 54 </a>.<a.class="hdr".href="#enumT
74600 6f 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 oInt">..</a></h2>........<pre><c
74620 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
74640 2d 62 75 69 6c 74 69 6e 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 65 6e 75 6d -builtin">@enumToInt</span>(enum
74660 5f 6f 72 5f 74 61 67 67 65 64 5f 75 6e 69 6f 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 _or_tagged_union:.<span.class="t
74680 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ok-kw">var</span>).<span.class="
746a0 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a tok-kw">var</span></code></pre>.
746c0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 65 6e 75 6d ......<p>.......Converts.an.enum
746e0 65 72 61 74 69 6f 6e 20 76 61 6c 75 65 20 69 6e 74 6f 20 69 74 73 20 69 6e 74 65 67 65 72 20 74 eration.value.into.its.integer.t
74700 61 67 20 74 79 70 65 2e 20 57 68 65 6e 20 61 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 20 69 73 20 ag.type..When.a.tagged.union.is.
74720 70 61 73 73 65 64 2c 0a 20 20 20 20 20 20 74 68 65 20 74 61 67 20 76 61 6c 75 65 20 69 73 20 75 passed,.......the.tag.value.is.u
74740 73 65 64 20 61 73 20 74 68 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 76 61 6c 75 65 2e 0a 20 20 sed.as.the.enumeration.value....
74760 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 74 68 65 72 ....</p>.......<p>.......If.ther
74780 65 20 69 73 20 6f 6e 6c 79 20 6f 6e 65 20 70 6f 73 73 69 62 6c 65 20 65 6e 75 6d 20 76 61 6c 75 e.is.only.one.possible.enum.valu
747a0 65 2c 20 74 68 65 20 72 65 73 75 74 20 69 73 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a e,.the.resut.is.a.<code.class="z
747c0 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 ig"><span.class="tok-type">compt
747e0 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 6b 6e 6f 77 ime_int</span></code>.......know
74800 6e 20 61 74 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d n.at.<a.href="#comptime">comptim
74820 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 e</a>........</p>.......<p>See.a
74840 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f lso:</p><ul>.<li><a.href="#intTo
74860 45 6e 75 6d 22 3e 40 69 6e 74 54 6f 45 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a Enum">@intToEnum</a></li>.</ul>.
74880 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 72 72 6f 72 4e 61 6d 65 ...............<h2.id="errorName
748a0 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 65 72 72 6f 72 4e 61 6d 65 22 3e 40 65 72 72 6f "><a.href="#toc-errorName">@erro
748c0 72 4e 61 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 rName</a>.<a.class="hdr".href="#
748e0 65 72 72 6f 72 4e 61 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 errorName">..</a></h2>........<p
74900 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
74920 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 73 70 61 6e 3e ="tok-builtin">@errorName</span>
74940 28 65 72 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 (err:.<span.class="tok-type">any
74960 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 29 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b error</span>).[]<span.class="tok
74980 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -kw">const</span>.<span.class="t
749a0 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a ok-type">u8</span></code></pre>.
749c0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 ......<p>.......This.function.re
749e0 74 75 72 6e 73 20 74 68 65 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 turns.the.string.representation.
74a00 6f 66 20 61 6e 20 65 72 72 6f 72 2e 20 54 68 65 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e of.an.error..The.string.represen
74a20 74 61 74 69 6f 6e 0a 20 20 20 20 20 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 tation.......of.<code.class="zig
74a40 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 "><span.class="tok-kw">error</sp
74a60 61 6e 3e 2e 4f 75 74 4f 66 4d 65 6d 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 an>.OutOfMem</code>.is.<code.cla
74a80 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 ss="zig"><span.class="tok-str">&
74aa0 71 75 6f 74 3b 4f 75 74 4f 66 4d 65 6d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 quot;OutOfMem&quot;</span></code
74ac0 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 >........</p>.......<p>.......If
74ae0 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 63 61 6c 6c 73 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 .there.are.no.calls.to.<code.cla
74b00 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ss="zig"><span.class="tok-builti
74b20 6e 22 3e 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 6e 20 61 n">@errorName</span></code>.in.a
74b40 6e 20 65 6e 74 69 72 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 0a 20 20 20 20 20 20 6f 72 20 61 n.entire.application,.......or.a
74b60 6c 6c 20 63 61 6c 6c 73 20 68 61 76 65 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f ll.calls.have.a.compile-time.kno
74b80 77 6e 20 76 61 6c 75 65 20 66 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 65 wn.value.for.<code.class="zig">e
74ba0 72 72 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 6e 20 6e 6f 0a 20 20 20 20 20 20 65 72 72 6f 72 20 6e rr</code>,.then.no.......error.n
74bc0 61 6d 65 20 74 61 62 6c 65 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 2e 0a 20 20 20 ame.table.will.be.generated.....
74be0 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 72 ...</p>...............<h2.id="er
74c00 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 65 72 rorReturnTrace"><a.href="#toc-er
74c20 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 22 3e 40 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 rorReturnTrace">@errorReturnTrac
74c40 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 72 72 6f e</a>.<a.class="hdr".href="#erro
74c60 72 52 65 74 75 72 6e 54 72 61 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 rReturnTrace">..</a></h2>.......
74c80 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .<pre><code.class="zig"><span.cl
74ca0 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 52 65 74 75 72 6e 54 72 ass="tok-builtin">@errorReturnTr
74cc0 61 63 65 3c 2f 73 70 61 6e 3e 28 29 20 3f 2a 62 75 69 6c 74 69 6e 2e 53 74 61 63 6b 54 72 61 63 ace</span>().?*builtin.StackTrac
74ce0 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 e</code></pre>.......<p>.......I
74d00 66 20 74 68 65 20 62 69 6e 61 72 79 20 69 73 20 62 75 69 6c 74 20 77 69 74 68 20 65 72 72 6f 72 f.the.binary.is.built.with.error
74d20 20 72 65 74 75 72 6e 20 74 72 61 63 69 6e 67 2c 20 61 6e 64 20 74 68 69 73 20 66 75 6e 63 74 69 .return.tracing,.and.this.functi
74d40 6f 6e 20 69 73 20 69 6e 76 6f 6b 65 64 20 69 6e 20 61 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f on.is.invoked.in.a.......functio
74d60 6e 20 74 68 61 74 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 61 6e 20 n.that.calls.a.function.with.an.
74d80 65 72 72 6f 72 20 6f 72 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 72 65 74 75 72 6e 20 74 79 70 65 error.or.error.union.return.type
74da0 2c 20 72 65 74 75 72 6e 73 20 61 0a 20 20 20 20 20 20 73 74 61 63 6b 20 74 72 61 63 65 20 6f 62 ,.returns.a.......stack.trace.ob
74dc0 6a 65 63 74 2e 20 4f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 60 6e 75 6c 6c 60 2e 0a ject..Otherwise.returns.`null`..
74de0 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d ......</p>...............<h2.id=
74e00 22 65 72 72 6f 72 54 6f 49 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 65 72 72 6f 72 "errorToInt"><a.href="#toc-error
74e20 54 6f 49 6e 74 22 3e 40 65 72 72 6f 72 54 6f 49 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d ToInt">@errorToInt</a>.<a.class=
74e40 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 72 72 6f 72 54 6f 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c "hdr".href="#errorToInt">..</a><
74e60 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 /h2>........<pre><code.class="zi
74e80 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 g"><span.class="tok-builtin">@er
74ea0 72 6f 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 65 72 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 rorToInt</span>(err:.<span.class
74ec0 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 ="tok-kw">var</span>).<span.clas
74ee0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 49 6e 74 54 79 70 65 3c 2f 73 70 61 6e 3e 28 s="tok-builtin">@IntType</span>(
74f00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 <span.class="tok-null">false</sp
74f20 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 an>,.<span.class="tok-builtin">@
74f40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 sizeOf</span>(<span.class="tok-t
74f60 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 29 20 2a 20 3c 73 70 61 6e 20 63 6c ype">anyerror</span>).*.<span.cl
74f80 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 ass="tok-number">8</span>)</code
74fa0 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 73 ></pre>.......<p>.......Supports
74fc0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 79 70 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e .the.following.types:.......</p>
74fe0 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 .......<ul>...........<li><a.hre
75000 66 3d 22 23 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f 72 2d 53 65 74 22 3e 54 68 65 20 47 6c f="#The-Global-Error-Set">The.Gl
75020 6f 62 61 6c 20 45 72 72 6f 72 20 53 65 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 obal.Error.Set</a></li>.........
75040 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 3e ..<li><a.href="#Error-Set-Type">
75060 45 72 72 6f 72 20 53 65 74 20 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 Error.Set.Type</a></li>.........
75080 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 ..<li><a.href="#Error-Union-Type
750a0 22 3e 45 72 72 6f 72 20 55 6e 69 6f 6e 20 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ">Error.Union.Type</a></li>.....
750c0 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 ..</ul>.......<p>.......Converts
750e0 20 61 6e 20 65 72 72 6f 72 20 74 6f 20 74 68 65 20 69 6e 74 65 67 65 72 20 72 65 70 72 65 73 65 .an.error.to.the.integer.represe
75100 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ntation.of.an.error........</p>.
75120 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 ......<p>.......It.is.generally.
75140 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 61 76 6f 69 64 20 74 68 69 73 0a 20 20 20 20 20 20 recommended.to.avoid.this.......
75160 63 61 73 74 2c 20 61 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 72 65 70 72 65 73 65 6e 74 61 74 cast,.as.the.integer.representat
75180 69 6f 6e 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 69 73 20 6e 6f 74 20 73 74 61 62 6c 65 20 61 63 ion.of.an.error.is.not.stable.ac
751a0 72 6f 73 73 20 73 6f 75 72 63 65 20 63 6f 64 65 20 63 68 61 6e 67 65 73 2e 0a 20 20 20 20 20 20 ross.source.code.changes........
751c0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a </p>.......<p>See.also:</p><ul>.
751e0 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 45 72 72 6f 72 22 3e 40 69 6e 74 54 6f <li><a.href="#intToError">@intTo
75200 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 Error</a></li>.</ul>............
75220 20 20 20 20 3c 68 32 20 69 64 3d 22 65 72 72 53 65 74 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d ....<h2.id="errSetCast"><a.href=
75240 22 23 74 6f 63 2d 65 72 72 53 65 74 43 61 73 74 22 3e 40 65 72 72 53 65 74 43 61 73 74 3c 2f 61 "#toc-errSetCast">@errSetCast</a
75260 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 72 72 53 65 74 43 61 >.<a.class="hdr".href="#errSetCa
75280 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 st">..</a></h2>........<pre><cod
752a0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
752c0 75 69 6c 74 69 6e 22 3e 40 65 72 72 53 65 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e uiltin">@errSetCast</span>(<span
752e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 .class="tok-kw">comptime</span>.
75300 54 3a 20 44 65 73 74 54 79 70 65 2c 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d T:.DestType,.value:.<span.class=
75320 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 44 65 73 74 54 79 70 65 3c 2f 63 "tok-kw">var</span>).DestType</c
75340 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 ode></pre>.......<p>.......Conve
75360 72 74 73 20 61 6e 20 65 72 72 6f 72 20 76 61 6c 75 65 20 66 72 6f 6d 20 6f 6e 65 20 65 72 72 6f rts.an.error.value.from.one.erro
75380 72 20 73 65 74 20 74 6f 20 61 6e 6f 74 68 65 72 20 65 72 72 6f 72 20 73 65 74 2e 20 41 74 74 65 r.set.to.another.error.set..Atte
753a0 6d 70 74 69 6e 67 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 mpting.to.convert.an.error......
753c0 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 69 6e 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e .which.is.not.in.the.destination
753e0 20 65 72 72 6f 72 20 73 65 74 20 72 65 73 75 6c 74 73 20 69 6e 20 73 61 66 65 74 79 2d 70 72 6f .error.set.results.in.safety-pro
75400 74 65 63 74 65 64 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 tected.<a.href="#Undefined-Behav
75420 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 ior">Undefined.Behavior</a>.....
75440 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 78 ...</p>...............<h2.id="ex
75460 70 6f 72 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 65 78 70 6f 72 74 22 3e 40 65 78 70 port"><a.href="#toc-export">@exp
75480 6f 72 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 78 ort</a>.<a.class="hdr".href="#ex
754a0 70 6f 72 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 port">..</a></h2>........<pre><c
754c0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
754e0 2d 62 75 69 6c 74 69 6e 22 3e 40 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 -builtin">@export</span>(<span.c
75500 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6e 61 lass="tok-kw">comptime</span>.na
75520 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 me:.[]<span.class="tok-kw">const
75540 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 </span>.<span.class="tok-type">u
75560 38 3c 2f 73 70 61 6e 3e 2c 20 74 61 72 67 65 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 8</span>,.target:.<span.class="t
75580 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 2c 20 6c 69 6e 6b 61 67 65 3a 20 62 75 69 6c ok-kw">var</span>,.linkage:.buil
755a0 74 69 6e 2e 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 tin.GlobalLinkage).<span.class="
755c0 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 tok-type">void</span></code></pr
755e0 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 72 65 61 74 65 73 20 61 20 73 79 6d e>.......<p>.......Creates.a.sym
75600 62 6f 6c 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 62 6a 65 63 74 20 66 69 6c 65 2e 0a 20 bol.in.the.output.object.file...
75620 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 .....</p>.......<p>.......This.f
75640 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 61 20 3c 61 20 unction.can.be.called.from.a.<a.
75660 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 20 62 6c href="#comptime">comptime</a>.bl
75680 6f 63 6b 20 74 6f 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 65 78 70 6f 72 74 20 73 79 6d 62 ock.to.conditionally.export.symb
756a0 6f 6c 73 2e 0a 20 20 20 20 20 20 57 68 65 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ols........When.<code.class="zig
756c0 22 3e 74 61 72 67 65 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 ">target</code>.is.a.function.wi
756e0 74 68 20 74 68 65 20 43 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 61 6e 64 0a th.the.C.calling.convention.and.
75700 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6c 69 6e 6b 61 67 65 3c ......<code.class="zig">linkage<
75720 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 53 74 72 6f /code>.is.<code.class="zig">Stro
75740 6e 67 3c 2f 63 6f 64 65 3e 2c 20 74 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f ng</code>,.this.is.equivalent.to
75760 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 .......the.<code.class="zig"><sp
75780 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c an.class="tok-kw">export</span><
757a0 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 75 73 65 64 20 6f 6e 20 61 20 66 75 6e 63 74 69 6f /code>.keyword.used.on.a.functio
757c0 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 n:.......</p>.......<p.class="fi
757e0 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 le">test.zig</p><pre><code.class
75800 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ="zig"><span.class="tok-kw">cons
75820 74 3c 2f 73 70 61 6e 3e 20 62 75 69 6c 74 69 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 t</span>.builtin.=.<span.class="
75840 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 tok-builtin">@import</span>(<spa
75860 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 n.class="tok-str">&quot;builtin&
75880 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b quot;</span>);..<span.class="tok
758a0 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e -kw">comptime</span>.{.....<span
758c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 78 70 6f 72 74 3c 2f 73 70 .class="tok-builtin">@export</sp
758e0 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b an>(<span.class="tok-str">&quot;
75900 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 69 6e 74 65 72 6e 61 6c 4e 61 6d 65 2c 20 foo&quot;</span>,.internalName,.
75920 62 75 69 6c 74 69 6e 2e 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 2e 53 74 72 6f 6e 67 29 3b 0a 7d builtin.GlobalLinkage.Strong);.}
75940 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 ..<span.class="tok-kw">extern</s
75960 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 pan>.<span.class="tok-kw">fn</sp
75980 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 69 6e 74 65 72 6e 61 an>.<span.class="tok-fn">interna
759a0 6c 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d lName</span>().<span.class="tok-
759c0 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 type">void</span>.{}</code></pre
759e0 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 ><pre><code.class="shell">$.zig.
75a00 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a build-obj.test.zig</code></pre>.
75a20 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 3a .......<p>This.is.equivalent.to:
75a40 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e </p>.......<p.class="file">test.
75a60 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
75a80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e pan.class="tok-kw">export</span>
75aa0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">fn</span>.
75ac0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 <span.class="tok-fn">foo</span>(
75ae0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 ).<span.class="tok-type">void</s
75b00 70 61 6e 3e 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 pan>.{}</code></pre><pre><code.c
75b20 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 lass="shell">$.zig.build-obj.tes
75b40 74 2e 7a 69 67 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 t.zig</code></pre>........<p>Not
75b60 65 20 74 68 61 74 20 65 76 65 6e 20 77 68 65 6e 20 75 73 69 6e 67 20 3c 63 6f 64 65 20 63 6c 61 e.that.even.when.using.<code.cla
75b80 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 ss="zig"><span.class="tok-kw">ex
75ba0 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d port</span></code>,.<code.class=
75bc0 22 7a 69 67 22 3e 40 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 3c 2f 63 6f 64 65 3e 20 73 79 "zig">@&quot;foo&quot;</code>.sy
75be0 6e 74 61 78 20 63 61 6e 0a 20 20 20 20 20 20 62 65 20 75 73 65 64 20 74 6f 20 63 68 6f 6f 73 65 ntax.can.......be.used.to.choose
75c00 20 61 6e 79 20 73 74 72 69 6e 67 20 66 6f 72 20 74 68 65 20 73 79 6d 62 6f 6c 20 6e 61 6d 65 3a .any.string.for.the.symbol.name:
75c20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e </p>.......<p.class="file">test.
75c40 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
75c60 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e pan.class="tok-kw">export</span>
75c80 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">fn</span>.
75ca0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 40 26 71 75 6f 74 3b 41 20 66 75 <span.class="tok-fn">@&quot;A.fu
75cc0 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 74 68 61 74 20 69 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 73 nction.name.that.is.a.complete.s
75ce0 65 6e 74 65 6e 63 65 2e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c entence.&quot;</span>().<span.cl
75d00 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 3c 2f 63 ass="tok-type">void</span>.{}</c
75d20 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
75d40 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 3c 2f 63 6f 64 l">$.zig.build-obj.test.zig</cod
75d60 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 6c e></pre>........<p>.......When.l
75d80 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 6f 62 6a 65 63 74 2c 20 ooking.at.the.resulting.object,.
75da0 79 6f 75 20 63 61 6e 20 73 65 65 20 74 68 65 20 73 79 6d 62 6f 6c 20 69 73 20 75 73 65 64 20 76 you.can.see.the.symbol.is.used.v
75dc0 65 72 62 61 74 69 6d 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 30 erbatim:.......</p>.......<pre>0
75de0 30 30 30 30 30 30 30 30 30 30 30 30 31 66 30 20 54 20 41 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 0000000000001f0.T.A.function.nam
75e00 65 20 74 68 61 74 20 69 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 73 65 6e 74 65 6e 63 65 2e 3c 2f e.that.is.a.complete.sentence.</
75e20 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a pre>.......<p>See.also:</p><ul>.
75e40 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 78 70 6f 72 74 69 6e 67 2d 61 2d 43 2d 4c 69 62 72 <li><a.href="#Exporting-a-C-Libr
75e60 61 72 79 22 3e 45 78 70 6f 72 74 69 6e 67 20 61 20 43 20 4c 69 62 72 61 72 79 3c 2f 61 3e 3c 2f ary">Exporting.a.C.Library</a></
75e80 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d li>.</ul>................<h2.id=
75ea0 22 66 65 6e 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 65 6e 63 65 22 3e 40 66 65 "fence"><a.href="#toc-fence">@fe
75ec0 6e 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 66 65 nce</a>.<a.class="hdr".href="#fe
75ee0 6e 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f nce">..</a></h2>........<pre><co
75f00 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
75f20 62 75 69 6c 74 69 6e 22 3e 40 66 65 6e 63 65 3c 2f 73 70 61 6e 3e 28 6f 72 64 65 72 3a 20 41 74 builtin">@fence</span>(order:.At
75f40 6f 6d 69 63 4f 72 64 65 72 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 omicOrder)</code></pre>.......<p
75f60 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 65 >.......The.<code.class="zig">fe
75f80 6e 63 65 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 6f 20 69 nce</code>.function.is.used.to.i
75fa0 6e 74 72 6f 64 75 63 65 20 68 61 70 70 65 6e 73 2d 62 65 66 6f 72 65 20 65 64 67 65 73 20 62 65 ntroduce.happens-before.edges.be
75fc0 74 77 65 65 6e 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 tween.operations........</p>....
75fe0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 41 ...<p>.......<code.class="zig">A
76000 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 tomicOrder</code>.can.be.found.w
76020 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 ith.<code.class="zig"><span.clas
76040 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c s="tok-builtin">@import</span>(<
76060 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 span.class="tok-str">&quot;built
76080 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f in&quot;</span>).AtomicOrder</co
760a0 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 de>........</p>.......<p>See.als
760c0 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 o:</p><ul>.<li><a.href="#Compile
760e0 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 -Variables">Compile.Variables</a
76100 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 ></li>.</ul>................<h2.
76120 69 64 3d 22 66 69 65 6c 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 69 65 6c 64 22 3e id="field"><a.href="#toc-field">
76140 40 66 69 65 6c 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 @field</a>.<a.class="hdr".href="
76160 23 66 69 65 6c 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e #field">..</a></h2>........<pre>
76180 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
761a0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 69 65 6c 64 3c 2f 73 70 61 6e 3e 28 6c 68 73 3a 20 3c ok-builtin">@field</span>(lhs:.<
761c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 2c 20 span.class="tok-kw">var</span>,.
761e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 <span.class="tok-kw">comptime</s
76200 70 61 6e 3e 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 pan>.field_name:.[]<span.class="
76220 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">const</span>.<span.class
76240 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 28 66 69 65 6c 64 29 3c 2f ="tok-type">u8</span>).(field)</
76260 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 50 65 72 66 6f 72 6d 73 20 66 69 code></pre>.......<p>Performs.fi
76280 65 6c 64 20 61 63 63 65 73 73 20 62 79 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 73 74 72 eld.access.by.a.compile-time.str
762a0 69 6e 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d ing........</p>........<p.class=
762c0 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c "file">test.zig</p><pre><code.cl
762e0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
76300 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 onst</span>.std.=.<span.class="t
76320 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ok-builtin">@import</span>(<span
76340 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b .class="tok-str">&quot;std&quot;
76360 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e </span>);..<span.class="tok-kw">
76380 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 6f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 const</span>.Point.=.<span.class
763a0 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 78 3a ="tok-kw">struct</span>.{.....x:
763c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 .<span.class="tok-type">u32</spa
763e0 6e 3e 2c 0a 20 20 20 20 79 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 n>,.....y:.<span.class="tok-type
76400 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">u32</span>.};..<span.class="to
76420 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 k-kw">test</span>.<span.class="t
76440 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 69 65 6c 64 20 61 63 63 65 73 73 20 62 79 20 73 74 ok-str">&quot;field.access.by.st
76460 72 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ring&quot;</span>.{.....<span.cl
76480 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 ass="tok-kw">const</span>.assert
764a0 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 .=.std.debug.assert;.....<span.c
764c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 20 3d 20 50 6f 69 lass="tok-kw">var</span>.p.=.Poi
764e0 6e 74 20 7b 2e 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 nt.{.x.=.<span.class="tok-number
76500 22 3e 30 3c 2f 73 70 61 6e 3e 2c 20 2e 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">0</span>,..y.=.<span.class="to
76520 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 k-number">0</span>};......<span.
76540 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 69 65 6c 64 3c 2f 73 70 61 6e class="tok-builtin">@field</span
76560 3e 28 70 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 >(p,.<span.class="tok-str">&quot
76580 3b 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ;x&quot;</span>).=.<span.class="
765a0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 tok-number">4</span>;.....<span.
765c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 69 65 6c 64 3c 2f 73 70 61 6e class="tok-builtin">@field</span
765e0 3e 28 70 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 >(p,.<span.class="tok-str">&quot
76600 3b 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ;y&quot;</span>).=.<span.class="
76620 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 69 65 6c 64 3c 2f 73 70 61 6e 3e 28 70 2c 20 3c 73 tok-builtin">@field</span>(p,.<s
76640 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 78 26 71 75 6f 74 pan.class="tok-str">&quot;x&quot
76660 3b 3c 2f 73 70 61 6e 3e 29 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ;</span>).+.<span.class="tok-num
76680 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e ber">1</span>;......assert(<span
766a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 69 65 6c 64 3c 2f 73 70 61 .class="tok-builtin">@field</spa
766c0 6e 3e 28 70 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f n>(p,.<span.class="tok-str">&quo
766e0 74 3b 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 t;x&quot;</span>).==.<span.class
76700 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 ="tok-number">4</span>);.....ass
76720 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 ert(<span.class="tok-builtin">@f
76740 69 65 6c 64 3c 2f 73 70 61 6e 3e 28 70 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ield</span>(p,.<span.class="tok-
76760 73 74 72 22 3e 26 71 75 6f 74 3b 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 str">&quot;y&quot;</span>).==.<s
76780 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">5</span>)
767a0 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ;.}</code></pre><pre><code.class
767c0 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 ="shell">$.zig.test.test.zig.1/1
767e0 20 74 65 73 74 20 26 71 75 6f 74 3b 66 69 65 6c 64 20 61 63 63 65 73 73 20 62 79 20 73 74 72 69 .test.&quot;field.access.by.stri
76800 6e 67 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a ng&quot;...OK.All.tests.passed..
76820 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 </code></pre>.................<h
76840 32 20 69 64 3d 22 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 2.id="fieldParentPtr"><a.href="#
76860 74 6f 63 2d 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 toc-fieldParentPtr">@fieldParent
76880 50 74 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 66 69 Ptr</a>.<a.class="hdr".href="#fi
768a0 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 eldParentPtr">..</a></h2>.......
768c0 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .<pre><code.class="zig"><span.cl
768e0 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 50 74 ass="tok-builtin">@fieldParentPt
76900 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f r</span>(<span.class="tok-kw">co
76920 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 50 61 72 65 6e 74 54 79 70 65 3a 20 3c 73 70 61 6e 20 mptime</span>.ParentType:.<span.
76940 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 class="tok-type">type</span>,.<s
76960 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
76980 6e 3e 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f n>.field_name:.[]<span.class="to
769a0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">const</span>.<span.class="
769c0 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 66 69 65 6c 64 5f 70 tok-type">u8</span>,.....field_p
769e0 74 72 3a 20 2a 54 29 20 2a 50 61 72 65 6e 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e tr:.*T).*ParentType</code></pre>
76a00 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 47 69 76 65 6e 20 61 20 70 6f 69 6e 74 65 72 .......<p>.......Given.a.pointer
76a20 20 74 6f 20 61 20 66 69 65 6c 64 2c 20 72 65 74 75 72 6e 73 20 74 68 65 20 62 61 73 65 20 70 6f .to.a.field,.returns.the.base.po
76a40 69 6e 74 65 72 20 6f 66 20 61 20 73 74 72 75 63 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 inter.of.a.struct........</p>...
76a60 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 66 6c 6f 61 74 43 61 73 74 22 3e 3c ............<h2.id="floatCast"><
76a80 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 6c 6f 61 74 43 61 73 74 22 3e 40 66 6c 6f 61 74 43 61 a.href="#toc-floatCast">@floatCa
76aa0 73 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 66 6c 6f st</a>.<a.class="hdr".href="#flo
76ac0 61 74 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e atCast">..</a></h2>........<pre>
76ae0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
76b00 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 6c 6f 61 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 ok-builtin">@floatCast</span>(<s
76b20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
76b40 6e 3e 20 44 65 73 74 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 n>.DestType:.<span.class="tok-ty
76b60 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c pe">type</span>,.value:.<span.cl
76b80 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 44 65 73 74 54 79 70 ass="tok-kw">var</span>).DestTyp
76ba0 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 e</code></pre>.......<p>.......C
76bc0 6f 6e 76 65 72 74 20 66 72 6f 6d 20 6f 6e 65 20 66 6c 6f 61 74 20 74 79 70 65 20 74 6f 20 61 6e onvert.from.one.float.type.to.an
76be0 6f 74 68 65 72 2e 20 54 68 69 73 20 63 61 73 74 20 69 73 20 73 61 66 65 2c 20 62 75 74 20 6d 61 other..This.cast.is.safe,.but.ma
76c00 79 20 63 61 75 73 65 20 74 68 65 0a 20 20 20 20 20 20 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 20 y.cause.the.......numeric.value.
76c20 74 6f 20 6c 6f 73 65 20 70 72 65 63 69 73 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 to.lose.precision........</p>...
76c40 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 66 6c 6f 61 74 54 6f 49 6e 74 22 3e ............<h2.id="floatToInt">
76c60 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 6c 6f 61 74 54 6f 49 6e 74 22 3e 40 66 6c 6f 61 74 <a.href="#toc-floatToInt">@float
76c80 54 6f 49 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 ToInt</a>.<a.class="hdr".href="#
76ca0 66 6c 6f 61 74 54 6f 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c floatToInt">..</a></h2>........<
76cc0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
76ce0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 6c 6f 61 74 54 6f 49 6e 74 3c 2f 73 70 61 s="tok-builtin">@floatToInt</spa
76d00 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 n>(<span.class="tok-kw">comptime
76d20 3c 2f 73 70 61 6e 3e 20 44 65 73 74 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 </span>.DestType:.<span.class="t
76d40 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 66 6c 6f 61 74 3a 20 3c 73 70 ok-type">type</span>,.float:.<sp
76d60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 44 65 an.class="tok-kw">var</span>).De
76d80 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 stType</code></pre>.......<p>...
76da0 20 20 20 20 43 6f 6e 76 65 72 74 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 70 61 72 74 20 6f 66 ....Converts.the.integer.part.of
76dc0 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20 74 6f 20 74 68 65 20 .a.floating.point.number.to.the.
76de0 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 destination.type........</p>....
76e00 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 74 68 65 20 69 6e 74 65 67 65 72 20 70 61 72 74 ...<p>.......If.the.integer.part
76e20 20 6f 66 20 74 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20 63 61 .of.the.floating.point.number.ca
76e40 6e 6e 6f 74 20 66 69 74 20 69 6e 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 nnot.fit.in.the.destination.type
76e60 2c 0a 20 20 20 20 20 20 69 74 20 69 6e 76 6f 6b 65 73 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 ,.......it.invokes.safety-checke
76e80 64 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e d.<a.href="#Undefined-Behavior">
76ea0 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f Undefined.Behavior</a>........</
76ec0 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c p>.......<p>See.also:</p><ul>.<l
76ee0 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 46 6c 6f 61 74 22 3e 40 69 6e 74 54 6f 46 6c i><a.href="#intToFloat">@intToFl
76f00 6f 61 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 oat</a></li>.</ul>..............
76f20 20 20 3c 68 32 20 69 64 3d 22 66 72 61 6d 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 ..<h2.id="frame"><a.href="#toc-f
76f40 72 61 6d 65 22 3e 40 66 72 61 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 rame">@frame</a>.<a.class="hdr".
76f60 68 72 65 66 3d 22 23 66 72 61 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 href="#frame">..</a></h2>.......
76f80 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .<pre><code.class="zig"><span.cl
76fa0 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 28 ass="tok-builtin">@frame</span>(
76fc0 29 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 46 72 ).*<span.class="tok-builtin">@Fr
76fe0 61 6d 65 3c 2f 73 70 61 6e 3e 28 66 75 6e 63 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 ame</span>(func)</code></pre>...
77000 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 ....<p>.......This.function.retu
77020 72 6e 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 66 72 61 6d 65 20 66 6f 72 20 61 rns.a.pointer.to.the.frame.for.a
77040 20 67 69 76 65 6e 20 66 75 6e 63 74 69 6f 6e 2e 20 54 68 69 73 20 74 79 70 65 0a 20 20 20 20 20 .given.function..This.type......
77060 20 63 61 6e 20 62 65 20 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 .can.be.<a.href="#Implicit-Casts
77080 22 3e 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 3c 2f 61 3e 20 74 6f 20 3c 63 6f 64 65 20 63 ">implicitly.cast</a>.to.<code.c
770a0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
770c0 61 6e 79 66 72 61 6d 65 3c 2f 73 70 61 6e 3e 2d 26 67 74 3b 54 3c 2f 63 6f 64 65 3e 20 61 6e 64 anyframe</span>-&gt;T</code>.and
770e0 0a 20 20 20 20 20 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .......to.<code.class="zig"><spa
77100 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 66 72 61 6d 65 3c 2f 73 70 61 6e 3e n.class="tok-kw">anyframe</span>
77120 3c 2f 63 6f 64 65 3e 2c 20 77 68 65 72 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 </code>,.where.<code.class="zig"
77140 3e 54 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 0a 20 20 20 >T</code>.is.the.return.type....
77160 20 20 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 73 63 6f 70 65 2e 0a 20 20 20 ...of.the.function.in.scope.....
77180 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e ...</p>.......<p>.......This.fun
771a0 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 6d 61 72 6b 20 61 20 73 75 73 70 65 6e 73 69 6f 6e ction.does.not.mark.a.suspension
771c0 20 70 6f 69 6e 74 2c 20 62 75 74 20 69 74 20 64 6f 65 73 20 63 61 75 73 65 20 74 68 65 20 66 75 .point,.but.it.does.cause.the.fu
771e0 6e 63 74 69 6f 6e 20 69 6e 20 73 63 6f 70 65 0a 20 20 20 20 20 20 74 6f 20 62 65 63 6f 6d 65 20 nction.in.scope.......to.become.
77200 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 61 73 an.<a.href="#Async-Functions">as
77220 79 6e 63 20 66 75 6e 63 74 69 6f 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 ync.function</a>........</p>....
77240 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 46 72 61 6d 65 22 3e 3c 61 20 68 72 65 ...........<h2.id="Frame"><a.hre
77260 66 3d 22 23 74 6f 63 2d 46 72 61 6d 65 22 3e 40 46 72 61 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 f="#toc-Frame">@Frame</a>.<a.cla
77280 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 46 72 61 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 ss="hdr".href="#Frame">..</a></h
772a0 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 2>........<pre><code.class="zig"
772c0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 46 72 61 6d ><span.class="tok-builtin">@Fram
772e0 65 3c 2f 73 70 61 6e 3e 28 66 75 6e 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d e</span>(func:.<span.class="tok-
77300 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b kw">var</span>).<span.class="tok
77320 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a -type">type</span></code></pre>.
77340 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 ......<p>.......This.function.re
77360 74 75 72 6e 73 20 74 68 65 20 66 72 61 6d 65 20 74 79 70 65 20 6f 66 20 61 20 66 75 6e 63 74 69 turns.the.frame.type.of.a.functi
77380 6f 6e 2e 20 54 68 69 73 20 77 6f 72 6b 73 20 66 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 41 73 79 on..This.works.for.<a.href="#Asy
773a0 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 41 73 79 6e 63 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 nc-Functions">Async.Functions</a
773c0 3e 0a 20 20 20 20 20 20 61 73 20 77 65 6c 6c 20 61 73 20 61 6e 79 20 66 75 6e 63 74 69 6f 6e 20 >.......as.well.as.any.function.
773e0 77 69 74 68 6f 75 74 20 61 20 73 70 65 63 69 66 69 63 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 without.a.specific.calling.conve
77400 6e 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 ntion........</p>.......<p>.....
77420 20 20 54 68 69 73 20 74 79 70 65 20 69 73 20 73 75 69 74 61 62 6c 65 20 74 6f 20 62 65 20 75 73 ..This.type.is.suitable.to.be.us
77440 65 64 20 61 73 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 6f 66 20 3c 61 20 68 72 65 66 ed.as.the.return.type.of.<a.href
77460 3d 22 23 41 73 79 6e 63 2d 61 6e 64 2d 41 77 61 69 74 22 3e 61 73 79 6e 63 3c 2f 61 3e 20 77 68 ="#Async-and-Await">async</a>.wh
77480 69 63 68 0a 20 20 20 20 20 20 61 6c 6c 6f 77 73 20 6f 6e 65 20 74 6f 2c 20 66 6f 72 20 65 78 61 ich.......allows.one.to,.for.exa
774a0 6d 70 6c 65 2c 20 68 65 61 70 2d 61 6c 6c 6f 63 61 74 65 20 61 6e 20 61 73 79 6e 63 20 66 75 6e mple,.heap-allocate.an.async.fun
774c0 63 74 69 6f 6e 20 66 72 61 6d 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 ction.frame:.......</p>.......<p
774e0 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
77500 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
77520 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 k-kw">const</span>.std.=.<span.c
77540 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
77560 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
77580 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 d&quot;</span>);..<span.class="t
775a0 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ok-kw">test</span>.<span.class="
775c0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 61 70 20 61 6c 6c 6f 63 61 74 65 64 20 66 72 tok-str">&quot;heap.allocated.fr
775e0 61 6d 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ame&quot;</span>.{.....<span.cla
77600 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 72 61 6d 65 20 3d ss="tok-kw">const</span>.frame.=
77620 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">try</span>
77640 20 73 74 64 2e 68 65 61 70 2e 64 69 72 65 63 74 5f 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 65 61 74 .std.heap.direct_allocator.creat
77660 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 46 72 61 e(<span.class="tok-builtin">@Fra
77680 6d 65 3c 2f 73 70 61 6e 3e 28 66 75 6e 63 29 29 3b 0a 20 20 20 20 66 72 61 6d 65 2e 2a 20 3d 20 me</span>(func));.....frame.*.=.
776a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e <span.class="tok-kw">async</span
776c0 3e 20 66 75 6e 63 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 >.func();.}..<span.class="tok-kw
776e0 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 ">fn</span>.<span.class="tok-fn"
77700 3e 66 75 6e 63 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >func</span>().<span.class="tok-
77720 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c type">void</span>.{.....<span.cl
77740 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f ass="tok-kw">suspend</span>;.}</
77760 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 code></pre><pre><code.class="she
77780 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 ll">$.zig.test.test.zig.1/1.test
777a0 20 26 71 75 6f 74 3b 68 65 61 70 20 61 6c 6c 6f 63 61 74 65 64 20 66 72 61 6d 65 26 71 75 6f 74 .&quot;heap.allocated.frame&quot
777c0 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e ;...OK.All.tests.passed..</code>
777e0 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 66 72 </pre>................<h2.id="fr
77800 61 6d 65 41 64 64 72 65 73 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 72 61 6d 65 41 ameAddress"><a.href="#toc-frameA
77820 64 64 72 65 73 73 22 3e 40 66 72 61 6d 65 41 64 64 72 65 73 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 ddress">@frameAddress</a>.<a.cla
77840 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 66 72 61 6d 65 41 64 64 72 65 73 73 22 3e c2 a7 ss="hdr".href="#frameAddress">..
77860 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 </a></h2>........<pre><code.clas
77880 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e s="zig"><span.class="tok-builtin
778a0 22 3e 40 66 72 61 6d 65 41 64 64 72 65 73 73 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 ">@frameAddress</span>().<span.c
778c0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f lass="tok-type">usize</span></co
778e0 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 de></pre>.......<p>.......This.f
77900 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 62 61 73 65 20 70 6f 69 6e 74 65 72 unction.returns.the.base.pointer
77920 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 63 6b 20 66 72 61 6d 65 2e 0a 20 20 20 .of.the.current.stack.frame.....
77940 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 69 6d 70 6c ...</p>.......<p>.......The.impl
77960 69 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 61 72 65 20 74 61 72 67 65 74 20 73 70 65 63 ications.of.this.are.target.spec
77980 69 66 69 63 20 61 6e 64 20 6e 6f 74 20 63 6f 6e 73 69 73 74 65 6e 74 20 61 63 72 6f 73 73 20 61 ific.and.not.consistent.across.a
779a0 6c 6c 0a 20 20 20 20 20 20 70 6c 61 74 66 6f 72 6d 73 2e 20 54 68 65 20 66 72 61 6d 65 20 61 64 ll.......platforms..The.frame.ad
779c0 64 72 65 73 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 72 65 dress.may.not.be.available.in.re
779e0 6c 65 61 73 65 20 6d 6f 64 65 20 64 75 65 20 74 6f 0a 20 20 20 20 20 20 61 67 67 72 65 73 73 69 lease.mode.due.to.......aggressi
77a00 76 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 ve.optimizations........</p>....
77a20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e ...<p>.......This.function.is.on
77a40 6c 79 20 76 61 6c 69 64 20 77 69 74 68 69 6e 20 66 75 6e 63 74 69 6f 6e 20 73 63 6f 70 65 2e 0a ly.valid.within.function.scope..
77a60 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d ......</p>...............<h2.id=
77a80 22 66 72 61 6d 65 53 69 7a 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 72 61 6d 65 53 "frameSize"><a.href="#toc-frameS
77aa0 69 7a 65 22 3e 40 66 72 61 6d 65 53 69 7a 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 ize">@frameSize</a>.<a.class="hd
77ac0 72 22 20 68 72 65 66 3d 22 23 66 72 61 6d 65 53 69 7a 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e r".href="#frameSize">..</a></h2>
77ae0 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ........<pre><code.class="zig"><
77b00 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 72 61 6d 65 53 span.class="tok-builtin">@frameS
77b20 69 7a 65 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ize</span>().<span.class="tok-ty
77b40 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 pe">usize</span></code></pre>...
77b60 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 ....<p>.......This.is.the.same.a
77b80 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d s.<code.class="zig"><span.class=
77ba0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 "tok-builtin">@sizeOf</span>(<sp
77bc0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 46 72 61 6d 65 3c 2f 73 an.class="tok-builtin">@Frame</s
77be0 70 61 6e 3e 28 66 75 6e 63 29 29 3c 2f 63 6f 64 65 3e 2c 20 77 68 65 72 65 20 3c 63 6f 64 65 20 pan>(func))</code>,.where.<code.
77c00 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 75 6e 63 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 6d 61 class="zig">func</code>.......ma
77c20 79 20 62 65 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 y.be.runtime-known........</p>..
77c40 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 .....<p>.......This.function.is.
77c60 74 79 70 69 63 61 6c 6c 79 20 75 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 typically.used.in.conjunction.wi
77c80 74 68 20 3c 61 20 68 72 65 66 3d 22 23 61 73 79 6e 63 43 61 6c 6c 22 3e 40 61 73 79 6e 63 43 61 th.<a.href="#asyncCall">@asyncCa
77ca0 6c 6c 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 ll</a>........</p>..............
77cc0 20 3c 68 32 20 69 64 3d 22 68 61 73 44 65 63 6c 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d .<h2.id="hasDecl"><a.href="#toc-
77ce0 68 61 73 44 65 63 6c 22 3e 40 68 61 73 44 65 63 6c 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 hasDecl">@hasDecl</a>.<a.class="
77d00 68 64 72 22 20 68 72 65 66 3d 22 23 68 61 73 44 65 63 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e hdr".href="#hasDecl">..</a></h2>
77d20 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ........<pre><code.class="zig"><
77d40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 68 61 73 44 65 63 span.class="tok-builtin">@hasDec
77d60 6c 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f l</span>(<span.class="tok-kw">co
77d80 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 43 6f 6e 74 61 69 6e 65 72 3a 20 3c 73 70 61 6e 20 63 mptime</span>.Container:.<span.c
77da0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 lass="tok-type">type</span>,.<sp
77dc0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e an.class="tok-kw">comptime</span
77de0 3e 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 >.name:.[]<span.class="tok-kw">c
77e00 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 onst</span>.<span.class="tok-typ
77e20 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 e">u8</span>).<span.class="tok-t
77e40 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 ype">bool</span></code></pre>...
77e60 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 77 68 65 74 68 65 72 20 6f 72 ....<p>.......Returns.whether.or
77e80 20 6e 6f 74 20 61 20 3c 61 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c .not.a.<a.href="#struct">struct<
77ea0 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 2c 20 6f /a>,.<a.href="#enum">enum</a>,.o
77ec0 72 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 20 68 61 73 r.<a.href="#union">union</a>.has
77ee0 20 61 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20 20 20 6d 61 74 63 68 69 6e 67 20 3c 63 .a.declaration.......matching.<c
77f00 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6e 61 6d 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 ode.class="zig">name</code>.....
77f20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ...</p>.......<p.class="file">te
77f40 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 st.zig</p><pre><code.class="zig"
77f60 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 ><span.class="tok-kw">const</spa
77f80 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 n>.std.=.<span.class="tok-builti
77fa0 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">@import</span>(<span.class="t
77fc0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b ok-str">&quot;std&quot;</span>);
77fe0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
78000 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c n>.assert.=.std.debug.assert;..<
78020 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
78040 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 .Foo.=.<span.class="tok-kw">stru
78060 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 6e 6f 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 ct</span>.{.....nope:.<span.clas
78080 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 3c 73 s="tok-type">i32</span>,......<s
780a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
780c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 6c pan.class="tok-kw">var</span>.bl
780e0 61 68 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 ah.=.<span.class="tok-str">&quot
78100 3b 78 78 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ;xxx&quot;</span>;.....<span.cla
78120 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 69 20 3d 20 3c 73 ss="tok-kw">const</span>.hi.=.<s
78140 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b pan.class="tok-number">1</span>;
78160 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f .};..<span.class="tok-kw">test</
78180 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>.<span.class="tok-str">&quo
781a0 74 3b 40 68 61 73 44 65 63 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 t;@hasDecl&quot;</span>.{.....as
781c0 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 sert(<span.class="tok-builtin">@
781e0 68 61 73 44 65 63 6c 3c 2f 73 70 61 6e 3e 28 46 6f 6f 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d hasDecl</span>(Foo,.<span.class=
78200 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 6c 61 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e "tok-str">&quot;blah&quot;</span
78220 3e 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 >));......<span.class="tok-comme
78240 6e 74 22 3e 2f 2f 20 45 76 65 6e 20 74 68 6f 75 67 68 20 60 68 69 60 20 69 73 20 70 72 69 76 61 nt">//.Even.though.`hi`.is.priva
78260 74 65 2c 20 40 68 61 73 44 65 63 6c 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 62 65 63 61 75 73 te,.@hasDecl.returns.true.becaus
78280 65 20 74 68 69 73 20 74 65 73 74 20 69 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 e.this.test.is</span>.....<span.
782a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 6e 20 74 68 65 20 73 61 class="tok-comment">//.in.the.sa
782c0 6d 65 20 66 69 6c 65 20 73 63 6f 70 65 20 61 73 20 46 6f 6f 2e 20 49 74 20 77 6f 75 6c 64 20 72 me.file.scope.as.Foo..It.would.r
782e0 65 74 75 72 6e 20 66 61 6c 73 65 20 69 66 20 46 6f 6f 20 77 61 73 20 64 65 63 6c 61 72 65 64 3c eturn.false.if.Foo.was.declared<
78300 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d /span>.....<span.class="tok-comm
78320 65 6e 74 22 3e 2f 2f 20 69 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 65 2e 3c 2f 73 70 ent">//.in.a.different.file.</sp
78340 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d an>.....assert(<span.class="tok-
78360 62 75 69 6c 74 69 6e 22 3e 40 68 61 73 44 65 63 6c 3c 2f 73 70 61 6e 3e 28 46 6f 6f 2c 20 3c 73 builtin">@hasDecl</span>(Foo,.<s
78380 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 69 26 71 75 6f pan.class="tok-str">&quot;hi&quo
783a0 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t;</span>));......<span.class="t
783c0 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 40 68 61 73 44 65 63 6c 20 69 73 20 66 6f 72 20 64 ok-comment">//.@hasDecl.is.for.d
783e0 65 63 6c 61 72 61 74 69 6f 6e 73 3b 20 6e 6f 74 20 66 69 65 6c 64 73 2e 3c 2f 73 70 61 6e 3e 0a eclarations;.not.fields.</span>.
78400 20 20 20 20 61 73 73 65 72 74 28 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 ....assert(!<span.class="tok-bui
78420 6c 74 69 6e 22 3e 40 68 61 73 44 65 63 6c 3c 2f 73 70 61 6e 3e 28 46 6f 6f 2c 20 3c 73 70 61 6e ltin">@hasDecl</span>(Foo,.<span
78440 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 6f 70 65 26 71 75 6f 74 .class="tok-str">&quot;nope&quot
78460 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 21 3c 73 70 61 6e 20 63 6c ;</span>));.....assert(!<span.cl
78480 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 68 61 73 44 65 63 6c 3c 2f 73 70 61 6e ass="tok-builtin">@hasDecl</span
784a0 3e 28 46 6f 6f 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 >(Foo,.<span.class="tok-str">&qu
784c0 6f 74 3b 6e 6f 70 65 31 32 33 34 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 3c 2f 63 ot;nope1234&quot;</span>));.}</c
784e0 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
78500 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 l">$.zig.test.test.zig.1/1.test.
78520 26 71 75 6f 74 3b 40 68 61 73 44 65 63 6c 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 &quot;@hasDecl&quot;...OK.All.te
78540 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 sts.passed..</code></pre>.......
78560 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 .<p>See.also:</p><ul>.<li><a.hre
78580 66 3d 22 23 68 61 73 46 69 65 6c 64 22 3e 40 68 61 73 46 69 65 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e f="#hasField">@hasField</a></li>
785a0 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 68 61 .</ul>................<h2.id="ha
785c0 73 46 69 65 6c 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 68 61 73 46 69 65 6c 64 22 3e sField"><a.href="#toc-hasField">
785e0 40 68 61 73 46 69 65 6c 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 @hasField</a>.<a.class="hdr".hre
78600 66 3d 22 23 68 61 73 46 69 65 6c 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 f="#hasField">..</a></h2>.......
78620 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .<pre><code.class="zig"><span.cl
78640 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 68 61 73 46 69 65 6c 64 3c 2f 73 70 61 ass="tok-builtin">@hasField</spa
78660 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 n>(<span.class="tok-kw">comptime
78680 3c 2f 73 70 61 6e 3e 20 43 6f 6e 74 61 69 6e 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>.Container:.<span.class="
786a0 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 tok-type">type</span>,.<span.cla
786c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6e 61 6d 65 ss="tok-kw">comptime</span>.name
786e0 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f :.[]<span.class="tok-kw">const</
78700 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c span>.<span.class="tok-type">u8<
78720 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 /span>).<span.class="tok-type">b
78740 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 ool</span></code></pre>.......<p
78760 3e 52 65 74 75 72 6e 73 20 77 68 65 74 68 65 72 20 74 68 65 20 66 69 65 6c 64 20 6e 61 6d 65 20 >Returns.whether.the.field.name.
78780 6f 66 20 61 20 73 74 72 75 63 74 2c 20 75 6e 69 6f 6e 2c 20 6f 72 20 65 6e 75 6d 20 65 78 69 73 of.a.struct,.union,.or.enum.exis
787a0 74 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 ts.</p>.......<p>.......The.resu
787c0 6c 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 lt.is.a.compile.time.constant...
787e0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 64 6f 65 .....</p>.......<p>.......It.doe
78800 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 76 61 72 69 61 62 6c s.not.include.functions,.variabl
78820 65 73 2c 20 6f 72 20 63 6f 6e 73 74 61 6e 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 es,.or.constants........</p>....
78840 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 ...<p>See.also:</p><ul>.<li><a.h
78860 72 65 66 3d 22 23 68 61 73 44 65 63 6c 22 3e 40 68 61 73 44 65 63 6c 3c 2f 61 3e 3c 2f 6c 69 3e ref="#hasDecl">@hasDecl</a></li>
78880 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6d .</ul>................<h2.id="im
788a0 70 6f 72 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 69 6d 70 6f 72 74 22 3e 40 69 6d 70 port"><a.href="#toc-import">@imp
788c0 6f 72 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6d ort</a>.<a.class="hdr".href="#im
788e0 70 6f 72 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 port">..</a></h2>........<pre><c
78900 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
78920 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 -builtin">@import</span>(<span.c
78940 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 70 61 lass="tok-kw">comptime</span>.pa
78960 74 68 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c th:.[]<span.class="tok-type">u8<
78980 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 /span>).<span.class="tok-type">t
789a0 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 ype</span></code></pre>.......<p
789c0 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 20 61 20 7a 69 >.......This.function.finds.a.zi
789e0 67 20 66 69 6c 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 3c 63 6f 64 65 20 63 6c g.file.corresponding.to.<code.cl
78a00 61 73 73 3d 22 7a 69 67 22 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 64 64 73 20 69 ass="zig">path</code>.and.adds.i
78a20 74 20 74 6f 20 74 68 65 20 62 75 69 6c 64 2c 0a 20 20 20 20 20 20 69 66 20 69 74 20 69 73 20 6e t.to.the.build,.......if.it.is.n
78a40 6f 74 20 61 6c 72 65 61 64 79 20 61 64 64 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 ot.already.added........</p>....
78a60 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 61 72 ...<p>.......Zig.source.files.ar
78a80 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 73 74 72 75 63 74 73 2c 20 77 69 74 68 20 61 20 6e 61 6d e.implicitly.structs,.with.a.nam
78aa0 65 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 66 69 6c 65 27 73 20 62 61 73 65 6e 61 6d 65 20 77 e.equal.to.the.file's.basename.w
78ac0 69 74 68 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 20 74 72 75 6e 63 61 74 65 ith.the.extension.......truncate
78ae0 64 2e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 d..<code.class="zig"><span.class
78b00 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 ="tok-builtin">@import</span></c
78b20 6f 64 65 3e 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 74 72 75 63 74 20 74 79 70 65 20 63 6f 72 ode>.returns.the.struct.type.cor
78b40 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 66 69 6c 65 2e 0a 20 20 20 20 20 20 3c 2f responding.to.the.file........</
78b60 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 44 65 63 6c 61 72 61 74 69 6f 6e 73 20 p>.......<p>.......Declarations.
78b80 77 68 69 63 68 20 68 61 76 65 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 which.have.the.<code.class="zig"
78ba0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e ><span.class="tok-kw">pub</span>
78bc0 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 6d 61 79 20 62 65 20 72 65 66 65 72 65 6e 63 65 </code>.keyword.may.be.reference
78be0 64 20 66 72 6f 6d 20 61 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 73 6f 75 72 63 65 20 d.from.a.different.......source.
78c00 66 69 6c 65 20 74 68 61 6e 20 74 68 65 20 6f 6e 65 20 74 68 65 79 20 61 72 65 20 64 65 63 6c 61 file.than.the.one.they.are.decla
78c20 72 65 64 20 69 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 red.in........</p>.......<p>....
78c40 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 61 74 68 3c 2f 63 6f 64 65 3e ...<code.class="zig">path</code>
78c60 20 63 61 6e 20 62 65 20 61 20 72 65 6c 61 74 69 76 65 20 6f 72 20 61 62 73 6f 6c 75 74 65 20 70 .can.be.a.relative.or.absolute.p
78c80 61 74 68 2c 20 6f 72 20 69 74 20 63 61 6e 20 62 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 ath,.or.it.can.be.the.name.of.a.
78ca0 70 61 63 6b 61 67 65 2e 0a 20 20 20 20 20 20 49 66 20 69 74 20 69 73 20 61 20 72 65 6c 61 74 69 package........If.it.is.a.relati
78cc0 76 65 20 70 61 74 68 2c 20 69 74 20 69 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 66 ve.path,.it.is.relative.to.the.f
78ce0 69 6c 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 ile.that.contains.the.<code.clas
78d00 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e s="zig"><span.class="tok-builtin
78d20 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 66 75 ">@import</span></code>.......fu
78d40 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 nction.call........</p>.......<p
78d60 3e 0a 20 20 20 20 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 20 61 >.......The.following.packages.a
78d80 72 65 20 61 6c 77 61 79 73 20 61 76 61 69 6c 61 62 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a re.always.available:.......</p>.
78da0 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 ......<ul>...........<li><code.c
78dc0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
78de0 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d tin">@import</span>(<span.class=
78e00 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e "tok-str">&quot;std&quot;</span>
78e20 29 3c 2f 63 6f 64 65 3e 20 2d 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c )</code>.-.Zig.Standard.Library<
78e40 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 /li>...........<li><code.class="
78e60 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 zig"><span.class="tok-builtin">@
78e80 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 import</span>(<span.class="tok-s
78ea0 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3c tr">&quot;builtin&quot;</span>)<
78ec0 2f 63 6f 64 65 3e 20 2d 20 43 6f 6d 70 69 6c 65 72 2d 70 72 6f 76 69 64 65 64 20 74 79 70 65 73 /code>.-.Compiler-provided.types
78ee0 20 61 6e 64 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 .and.variables................Th
78f00 65 20 63 6f 6d 6d 61 6e 64 20 3c 63 6f 64 65 3e 7a 69 67 20 62 75 69 6c 74 69 6e 3c 2f 63 6f 64 e.command.<code>zig.builtin</cod
78f20 65 3e 20 6f 75 74 70 75 74 73 20 74 68 65 20 73 6f 75 72 63 65 20 74 6f 20 73 74 64 6f 75 74 20 e>.outputs.the.source.to.stdout.
78f40 66 6f 72 20 72 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 for.reference............</li>..
78f60 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 .....</ul>.......<p>See.also:</p
78f80 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 56 61 72 69 ><ul>.<li><a.href="#Compile-Vari
78fa0 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 ables">Compile.Variables</a></li
78fc0 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 65 >.<li><a.href="#embedFile">@embe
78fe0 64 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 dFile</a></li>.</ul>............
79000 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 6c 69 6e 65 43 61 6c 6c 22 3e 3c 61 20 68 72 65 66 3d ....<h2.id="inlineCall"><a.href=
79020 22 23 74 6f 63 2d 69 6e 6c 69 6e 65 43 61 6c 6c 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 "#toc-inlineCall">@inlineCall</a
79040 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 43 61 >.<a.class="hdr".href="#inlineCa
79060 6c 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 ll">..</a></h2>........<pre><cod
79080 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
790a0 75 69 6c 74 69 6e 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 66 75 6e 63 74 uiltin">@inlineCall</span>(funct
790c0 69 6f 6e 3a 20 58 2c 20 61 72 67 73 3a 20 2e 2e 2e 29 20 59 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 ion:.X,.args:....).Y</code></pre
790e0 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6c 6c 73 20 61 20 66 >.......<p>.......This.calls.a.f
79100 75 6e 63 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 69 6e unction,.in.the.same.way.that.in
79120 76 6f 6b 69 6e 67 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 20 70 61 72 65 6e 74 voking.an.expression.with.parent
79140 68 65 73 65 73 20 64 6f 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 heses.does:.......</p>.......<p.
79160 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 class="file">test.zig</p><pre><c
79180 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
791a0 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e -kw">const</span>.assert.=.<span
791c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 .class="tok-builtin">@import</sp
791e0 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b an>(<span.class="tok-str">&quot;
79200 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a std&quot;</span>).debug.assert;.
79220 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
79240 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e >.<span.class="tok-str">&quot;in
79260 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 line.function.call&quot;</span>.
79280 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 {.....assert(<span.class="tok-bu
792a0 69 6c 74 69 6e 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 61 64 64 2c 20 3c iltin">@inlineCall</span>(add,.<
792c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e span.class="tok-number">3</span>
792e0 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 ,.<span.class="tok-number">9</sp
79300 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 an>).==.<span.class="tok-number"
79320 3e 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >12</span>);.}..<span.class="tok
79340 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d -kw">fn</span>.<span.class="tok-
79360 66 6e 22 3e 61 64 64 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 fn">add</span>(a:.<span.class="t
79380 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 63 6c ok-type">i32</span>,.b:.<span.cl
793a0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e ass="tok-type">i32</span>).<span
793c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 20 3c .class="tok-type">i32</span>.{.<
793e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e span.class="tok-kw">return</span
79400 3e 20 61 20 2b 20 62 3b 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 >.a.+.b;.}</code></pre><pre><cod
79420 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e e.class="shell">$.zig.test.test.
79440 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 6c 69 6e 65 20 66 75 6e 63 74 69 zig.1/1.test.&quot;inline.functi
79460 6f 6e 20 63 61 6c 6c 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 on.call&quot;...OK.All.tests.pas
79480 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 sed..</code></pre>........<p>...
794a0 20 20 20 20 55 6e 6c 69 6b 65 20 61 20 6e 6f 72 6d 61 6c 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c ....Unlike.a.normal.function.cal
794c0 6c 2c 20 68 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 l,.however,.<code.class="zig"><s
794e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 6c 69 6e 65 43 pan.class="tok-builtin">@inlineC
79500 61 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 67 75 61 72 61 6e 74 65 65 73 20 74 68 61 all</span></code>.guarantees.tha
79520 74 20 74 68 65 20 63 61 6c 6c 0a 20 20 20 20 20 20 77 69 6c 6c 20 62 65 20 69 6e 6c 69 6e 65 64 t.the.call.......will.be.inlined
79540 2e 20 49 66 20 74 68 65 20 63 61 6c 6c 20 63 61 6e 6e 6f 74 20 62 65 20 69 6e 6c 69 6e 65 64 2c ..If.the.call.cannot.be.inlined,
79560 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 65 6d 69 74 74 65 64 2e 0a 20 20 20 .a.compile.error.is.emitted.....
79580 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 ...</p>.......<p>See.also:</p><u
795a0 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 22 3e 40 l>.<li><a.href="#noInlineCall">@
795c0 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 noInlineCall</a></li>.</ul>.....
795e0 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 74 43 61 73 74 22 3e 3c 61 20 68 ...........<h2.id="intCast"><a.h
79600 72 65 66 3d 22 23 74 6f 63 2d 69 6e 74 43 61 73 74 22 3e 40 69 6e 74 43 61 73 74 3c 2f 61 3e 20 ref="#toc-intCast">@intCast</a>.
79620 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6e 74 43 61 73 74 22 3e c2 <a.class="hdr".href="#intCast">.
79640 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .</a></h2>........<pre><code.cla
79660 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ss="zig"><span.class="tok-builti
79680 6e 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n">@intCast</span>(<span.class="
796a0 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 44 65 73 74 54 79 70 65 tok-kw">comptime</span>.DestType
796c0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 :.<span.class="tok-type">type</s
796e0 70 61 6e 3e 2c 20 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>,.int:.<span.class="tok-kw">
79700 76 61 72 3c 2f 73 70 61 6e 3e 29 20 44 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 var</span>).DestType</code></pre
79720 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 69 6e >.......<p>.......Converts.an.in
79740 74 65 67 65 72 20 74 6f 20 61 6e 6f 74 68 65 72 20 69 6e 74 65 67 65 72 20 77 68 69 6c 65 20 6b teger.to.another.integer.while.k
79760 65 65 70 69 6e 67 20 74 68 65 20 73 61 6d 65 20 6e 75 6d 65 72 69 63 61 6c 20 76 61 6c 75 65 2e eeping.the.same.numerical.value.
79780 0a 20 20 20 20 20 20 41 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 20 6e .......Attempting.to.convert.a.n
797a0 75 6d 62 65 72 20 77 68 69 63 68 20 69 73 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 20 6f 66 20 74 umber.which.is.out.of.range.of.t
797c0 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 20 72 65 73 75 6c 74 73 20 69 6e 0a 20 he.destination.type.results.in..
797e0 20 20 20 20 20 73 61 66 65 74 79 2d 70 72 6f 74 65 63 74 65 64 20 3c 61 20 68 72 65 66 3d 22 23 .....safety-protected.<a.href="#
79800 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 Undefined-Behavior">Undefined.Be
79820 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 havior</a>........</p>..........
79840 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 74 54 6f 45 6e 75 6d 22 3e 3c 61 20 68 72 65 66 3d .....<h2.id="intToEnum"><a.href=
79860 22 23 74 6f 63 2d 69 6e 74 54 6f 45 6e 75 6d 22 3e 40 69 6e 74 54 6f 45 6e 75 6d 3c 2f 61 3e 20 "#toc-intToEnum">@intToEnum</a>.
79880 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 45 6e 75 6d 22 <a.class="hdr".href="#intToEnum"
798a0 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 >..</a></h2>........<pre><code.c
798c0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
798e0 74 69 6e 22 3e 40 69 6e 74 54 6f 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 tin">@intToEnum</span>(<span.cla
79900 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 44 65 73 74 ss="tok-kw">comptime</span>.Dest
79920 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 Type:.<span.class="tok-type">typ
79940 65 3c 2f 73 70 61 6e 3e 2c 20 69 6e 74 5f 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 e</span>,.int_value:.<span.class
79960 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 61 67 54 79 70 65 3c 2f 73 70 61 6e 3e 28 44 ="tok-builtin">@TagType</span>(D
79980 65 73 74 54 79 70 65 29 29 20 44 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a estType)).DestType</code></pre>.
799a0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 69 6e 74 65 ......<p>.......Converts.an.inte
799c0 67 65 72 20 69 6e 74 6f 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d ger.into.an.<a.href="#enum">enum
799e0 3c 2f 61 3e 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e </a>.value........</p>.......<p>
79a00 0a 20 20 20 20 20 20 41 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 .......Attempting.to.convert.an.
79a20 69 6e 74 65 67 65 72 20 77 68 69 63 68 20 72 65 70 72 65 73 65 6e 74 73 20 6e 6f 20 76 61 6c 75 integer.which.represents.no.valu
79a40 65 20 69 6e 20 74 68 65 20 63 68 6f 73 65 6e 20 65 6e 75 6d 20 74 79 70 65 20 69 6e 76 6f 6b 65 e.in.the.chosen.enum.type.invoke
79a60 73 0a 20 20 20 20 20 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 20 3c 61 20 68 72 65 66 3d 22 s.......safety-checked.<a.href="
79a80 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 #Undefined-Behavior">Undefined.B
79aa0 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 ehavior</a>........</p>.......<p
79ac0 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 >See.also:</p><ul>.<li><a.href="
79ae0 23 65 6e 75 6d 54 6f 49 6e 74 22 3e 40 65 6e 75 6d 54 6f 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a #enumToInt">@enumToInt</a></li>.
79b00 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 74 </ul>................<h2.id="int
79b20 54 6f 45 72 72 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 69 6e 74 54 6f 45 72 72 6f ToError"><a.href="#toc-intToErro
79b40 72 22 3e 40 69 6e 74 54 6f 45 72 72 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 r">@intToError</a>.<a.class="hdr
79b60 22 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 45 72 72 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e ".href="#intToError">..</a></h2>
79b80 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ........<pre><code.class="zig"><
79ba0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 45 span.class="tok-builtin">@intToE
79bc0 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 rror</span>(value:.<span.class="
79be0 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 49 6e 74 54 79 70 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 tok-builtin">@IntType</span>(<sp
79c00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e an.class="tok-null">false</span>
79c20 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a ,.<span.class="tok-builtin">@siz
79c40 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 eOf</span>(<span.class="tok-type
79c60 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 29 20 2a 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">anyerror</span>).*.<span.class
79c80 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 29 29 20 3c 73 70 61 6e 20 63 ="tok-number">8</span>)).<span.c
79ca0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 3c lass="tok-type">anyerror</span><
79cc0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e /code></pre>.......<p>.......Con
79ce0 76 65 72 74 73 20 66 72 6f 6d 20 74 68 65 20 69 6e 74 65 67 65 72 20 72 65 70 72 65 73 65 6e 74 verts.from.the.integer.represent
79d00 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 69 6e 74 6f 20 3c 61 20 68 72 65 66 3d 22 ation.of.an.error.into.<a.href="
79d20 23 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f 72 2d 53 65 74 22 3e 54 68 65 20 47 6c 6f 62 61 #The-Global-Error-Set">The.Globa
79d40 6c 20 45 72 72 6f 72 20 53 65 74 3c 2f 61 3e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e l.Error.Set</a>.type........</p>
79d60 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 .......<p>.......It.is.generally
79d80 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 61 76 6f 69 64 20 74 68 69 73 0a 20 20 20 20 20 .recommended.to.avoid.this......
79da0 20 63 61 73 74 2c 20 61 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 72 65 70 72 65 73 65 6e 74 61 .cast,.as.the.integer.representa
79dc0 74 69 6f 6e 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 69 73 20 6e 6f 74 20 73 74 61 62 6c 65 20 61 tion.of.an.error.is.not.stable.a
79de0 63 72 6f 73 73 20 73 6f 75 72 63 65 20 63 6f 64 65 20 63 68 61 6e 67 65 73 2e 0a 20 20 20 20 20 cross.source.code.changes.......
79e00 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 74 74 65 6d 70 74 69 6e 67 .</p>.......<p>.......Attempting
79e20 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 69 6e 74 65 67 65 72 20 74 68 61 74 20 64 6f 65 73 .to.convert.an.integer.that.does
79e40 20 6e 6f 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 61 6e 79 20 65 72 72 6f 72 20 72 65 73 .not.correspond.to.any.error.res
79e60 75 6c 74 73 20 69 6e 0a 20 20 20 20 20 20 73 61 66 65 74 79 2d 70 72 6f 74 65 63 74 65 64 20 3c ults.in.......safety-protected.<
79e80 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 a.href="#Undefined-Behavior">Und
79ea0 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a efined.Behavior</a>........</p>.
79ec0 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c ......<p>See.also:</p><ul>.<li><
79ee0 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 54 6f 49 6e 74 22 3e 40 65 72 72 6f 72 54 6f 49 6e 74 a.href="#errorToInt">@errorToInt
79f00 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c </a></li>.</ul>................<
79f20 68 32 20 69 64 3d 22 69 6e 74 54 6f 46 6c 6f 61 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 h2.id="intToFloat"><a.href="#toc
79f40 2d 69 6e 74 54 6f 46 6c 6f 61 74 22 3e 40 69 6e 74 54 6f 46 6c 6f 61 74 3c 2f 61 3e 20 3c 61 20 -intToFloat">@intToFloat</a>.<a.
79f60 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 46 6c 6f 61 74 22 3e c2 class="hdr".href="#intToFloat">.
79f80 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .</a></h2>........<pre><code.cla
79fa0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ss="zig"><span.class="tok-builti
79fc0 6e 22 3e 40 69 6e 74 54 6f 46 6c 6f 61 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 n">@intToFloat</span>(<span.clas
79fe0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 44 65 73 74 54 s="tok-kw">comptime</span>.DestT
7a000 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 ype:.<span.class="tok-type">type
7a020 3c 2f 73 70 61 6e 3e 2c 20 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>,.int:.<span.class="tok-k
7a040 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 44 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f w">var</span>).DestType</code></
7a060 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e pre>.......<p>.......Converts.an
7a080 20 69 6e 74 65 67 65 72 20 74 6f 20 74 68 65 20 63 6c 6f 73 65 73 74 20 66 6c 6f 61 74 69 6e 67 .integer.to.the.closest.floating
7a0a0 20 70 6f 69 6e 74 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 2e 20 54 6f 20 63 6f 6e 76 65 72 .point.representation..To.conver
7a0c0 74 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 66 t.the.other.way,.use.<a.href="#f
7a0e0 6c 6f 61 74 54 6f 49 6e 74 22 3e 40 66 6c 6f 61 74 54 6f 49 6e 74 3c 2f 61 3e 2e 20 54 68 69 73 loatToInt">@floatToInt</a>..This
7a100 20 63 61 73 74 20 69 73 20 61 6c 77 61 79 73 20 73 61 66 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e .cast.is.always.safe........</p>
7a120 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 74 54 6f 50 74 72 22 ...............<h2.id="intToPtr"
7a140 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 69 6e 74 54 6f 50 74 72 22 3e 40 69 6e 74 54 6f 50 ><a.href="#toc-intToPtr">@intToP
7a160 74 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6e 74 tr</a>.<a.class="hdr".href="#int
7a180 54 6f 50 74 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c ToPtr">..</a></h2>........<pre><
7a1a0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
7a1c0 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 k-builtin">@intToPtr</span>(<spa
7a1e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e n.class="tok-kw">comptime</span>
7a200 20 44 65 73 74 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .DestType:.<span.class="tok-type
7a220 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 64 64 72 65 73 73 3a 20 3c 73 70 61 6e 20 63 6c ">type</span>,.address:.<span.cl
7a240 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 44 65 73 ass="tok-type">usize</span>).Des
7a260 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 tType</code></pre>.......<p>....
7a280 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 69 6e 74 65 67 65 72 20 74 6f 20 61 20 3c 61 20 68 ...Converts.an.integer.to.a.<a.h
7a2a0 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 2e 20 54 6f 20 ref="#Pointers">pointer</a>..To.
7a2c0 63 6f 6e 76 65 72 74 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 2c 20 75 73 65 20 3c 61 20 68 72 convert.the.other.way,.use.<a.hr
7a2e0 65 66 3d 22 23 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 61 3e 2e 0a 20 20 ef="#ptrToInt">@ptrToInt</a>....
7a300 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 74 68 65 20 ....</p>.......<p>.......If.the.
7a320 64 65 73 74 69 6e 61 74 69 6f 6e 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 64 6f 65 73 20 6e 6f destination.pointer.type.does.no
7a340 74 20 61 6c 6c 6f 77 20 61 64 64 72 65 73 73 20 7a 65 72 6f 20 61 6e 64 20 3c 63 6f 64 65 20 63 t.allow.address.zero.and.<code.c
7a360 6c 61 73 73 3d 22 7a 69 67 22 3e 61 64 64 72 65 73 73 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 lass="zig">address</code>.......
7a380 69 73 20 7a 65 72 6f 2c 20 74 68 69 73 20 69 6e 76 6f 6b 65 73 20 73 61 66 65 74 79 2d 63 68 65 is.zero,.this.invokes.safety-che
7a3a0 63 6b 65 64 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f cked.<a.href="#Undefined-Behavio
7a3c0 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 r">Undefined.Behavior</a>.......
7a3e0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 74 54 .</p>...............<h2.id="IntT
7a400 79 70 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 74 54 79 70 65 22 3e 40 49 6e 74 ype"><a.href="#toc-IntType">@Int
7a420 54 79 70 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 Type</a>.<a.class="hdr".href="#I
7a440 6e 74 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e ntType">..</a></h2>........<pre>
7a460 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
7a480 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 49 6e 74 54 79 70 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 ok-builtin">@IntType</span>(<spa
7a4a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e n.class="tok-kw">comptime</span>
7a4c0 20 69 73 5f 73 69 67 6e 65 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 .is_signed:.<span.class="tok-typ
7a4e0 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e">bool</span>,.<span.class="tok
7a500 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 62 69 74 5f 63 6f 75 6e 74 3a 20 -kw">comptime</span>.bit_count:.
7a520 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e <span.class="tok-type">u16</span
7a540 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f >).<span.class="tok-type">type</
7a560 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 span></code></pre>.......<p>....
7a580 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 6e 20 69 6e 74 65 ...This.function.returns.an.inte
7a5a0 67 65 72 20 74 79 70 65 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 73 69 67 6e 6e 65 73 73 ger.type.with.the.given.signness
7a5c0 20 61 6e 64 20 62 69 74 20 63 6f 75 6e 74 2e 20 54 68 65 20 6d 61 78 69 6d 75 6d 0a 20 20 20 20 .and.bit.count..The.maximum.....
7a5e0 20 20 62 69 74 20 63 6f 75 6e 74 20 66 6f 72 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 ..bit.count.for.an.integer.type.
7a600 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 is.<code.class="zig"><span.class
7a620 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 35 35 33 35 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ="tok-number">65535</span></code
7a640 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 44 65 >........</p>.......<p>.......De
7a660 70 72 65 63 61 74 65 64 2e 20 55 73 65 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 22 3e 40 54 precated..Use.<a.href="#Type">@T
7a680 79 70 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 ype</a>........</p>.............
7a6a0 20 20 3c 68 32 20 69 64 3d 22 6d 65 6d 62 65 72 43 6f 75 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 ..<h2.id="memberCount"><a.href="
7a6c0 23 74 6f 63 2d 6d 65 6d 62 65 72 43 6f 75 6e 74 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 3c 2f #toc-memberCount">@memberCount</
7a6e0 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6d 65 6d 62 65 72 43 a>.<a.class="hdr".href="#memberC
7a700 6f 75 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 ount">..</a></h2>........<pre><c
7a720 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
7a740 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 3c 2f 73 70 61 6e 3e 28 3c 73 -builtin">@memberCount</span>(<s
7a760 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
7a780 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 n>.T:.<span.class="tok-type">typ
7a7a0 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 e</span>).<span.class="tok-type"
7a7c0 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 >comptime_int</span></code></pre
7a7e0 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 >.......<p>.......This.function.
7a800 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 6d 62 65 72 73 20 69 6e returns.the.number.of.members.in
7a820 20 61 20 73 74 72 75 63 74 2c 20 65 6e 75 6d 2c 20 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 2e 0a .a.struct,.enum,.or.union.type..
7a840 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 ......</p>.......<p>.......The.r
7a860 65 73 75 6c 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 esult.is.a.compile.time.constant
7a880 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 ........</p>.......<p>.......It.
7a8a0 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 76 61 72 69 does.not.include.functions,.vari
7a8c0 61 62 6c 65 73 2c 20 6f 72 20 63 6f 6e 73 74 61 6e 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ables,.or.constants........</p>.
7a8e0 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 65 6d 62 65 72 4e 61 6d 65 22 .............<h2.id="memberName"
7a900 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6d 65 6d 62 65 72 4e 61 6d 65 22 3e 40 6d 65 6d 62 ><a.href="#toc-memberName">@memb
7a920 65 72 4e 61 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 erName</a>.<a.class="hdr".href="
7a940 23 6d 65 6d 62 65 72 4e 61 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 #memberName">..</a></h2>........
7a960 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 <pre><code.class="zig"><span.cla
7a980 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 65 6d 62 65 72 4e 61 6d 65 3c 2f 73 70 ss="tok-builtin">@memberName</sp
7a9a0 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d an>(<span.class="tok-kw">comptim
7a9c0 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 e</span>.T:.<span.class="tok-typ
7a9e0 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e">type</span>,.<span.class="tok
7aa00 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 69 6e 64 65 78 3a 20 3c 73 70 61 -kw">comptime</span>.index:.<spa
7aa20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 n.class="tok-type">usize</span>)
7aa40 20 5b 4e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 .[N]<span.class="tok-type">u8</s
7aa60 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 52 65 74 75 72 pan></code></pre>.......<p>Retur
7aa80 6e 73 20 74 68 65 20 66 69 65 6c 64 20 6e 61 6d 65 20 6f 66 20 61 20 73 74 72 75 63 74 2c 20 75 ns.the.field.name.of.a.struct,.u
7aaa0 6e 69 6f 6e 2c 20 6f 72 20 65 6e 75 6d 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 nion,.or.enum.</p>.......<p>....
7aac0 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 ...The.result.is.a.compile.time.
7aae0 63 6f 6e 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 constant........</p>.......<p>..
7ab00 20 20 20 20 20 49 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 66 75 6e 63 74 69 6f .....It.does.not.include.functio
7ab20 6e 73 2c 20 76 61 72 69 61 62 6c 65 73 2c 20 6f 72 20 63 6f 6e 73 74 61 6e 74 73 2e 0a 20 20 20 ns,.variables,.or.constants.....
7ab40 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 65 6d ...</p>..............<h2.id="mem
7ab60 62 65 72 54 79 70 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6d 65 6d 62 65 72 54 79 70 berType"><a.href="#toc-memberTyp
7ab80 65 22 3e 40 6d 65 6d 62 65 72 54 79 70 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 e">@memberType</a>.<a.class="hdr
7aba0 22 20 68 72 65 66 3d 22 23 6d 65 6d 62 65 72 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e ".href="#memberType">..</a></h2>
7abc0 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ........<pre><code.class="zig"><
7abe0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 65 6d 62 65 72 span.class="tok-builtin">@member
7ac00 54 79 70 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 Type</span>(<span.class="tok-kw"
7ac20 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >comptime</span>.T:.<span.class=
7ac40 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c "tok-type">type</span>,.<span.cl
7ac60 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 69 6e 64 ass="tok-kw">comptime</span>.ind
7ac80 65 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 ex:.<span.class="tok-type">usize
7aca0 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e </span>).<span.class="tok-type">
7acc0 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c type</span></code></pre>.......<
7ace0 70 3e 52 65 74 75 72 6e 73 20 74 68 65 20 66 69 65 6c 64 20 74 79 70 65 20 6f 66 20 61 20 73 74 p>Returns.the.field.type.of.a.st
7ad00 72 75 63 74 20 6f 72 20 75 6e 69 6f 6e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 ruct.or.union.</p>..............
7ad20 20 3c 68 32 20 69 64 3d 22 6d 65 6d 63 70 79 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6d .<h2.id="memcpy"><a.href="#toc-m
7ad40 65 6d 63 70 79 22 3e 40 6d 65 6d 63 70 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 emcpy">@memcpy</a>.<a.class="hdr
7ad60 22 20 68 72 65 66 3d 22 23 6d 65 6d 63 70 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 ".href="#memcpy">..</a></h2>....
7ad80 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
7ada0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 65 6d 63 70 79 3c 2f 73 70 .class="tok-builtin">@memcpy</sp
7adc0 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6e 6f 61 6c 69 61 73 an>(<span.class="tok-kw">noalias
7ade0 3c 2f 73 70 61 6e 3e 20 64 65 73 74 3a 20 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.dest:.[*]<span.class="to
7ae00 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-type">u8</span>,.<span.class="
7ae20 74 6f 6b 2d 6b 77 22 3e 6e 6f 61 6c 69 61 73 3c 2f 73 70 61 6e 3e 20 73 6f 75 72 63 65 3a 20 5b tok-kw">noalias</span>.source:.[
7ae40 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 *]<span.class="tok-kw">const</sp
7ae60 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 an>.<span.class="tok-type">u8</s
7ae80 70 61 6e 3e 2c 20 62 79 74 65 5f 63 6f 75 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>,.byte_count:.<span.class="t
7aea0 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 ok-type">usize</span>)</code></p
7aec0 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f re>.......<p>.......This.functio
7aee0 6e 20 63 6f 70 69 65 73 20 62 79 74 65 73 20 66 72 6f 6d 20 6f 6e 65 20 72 65 67 69 6f 6e 20 6f n.copies.bytes.from.one.region.o
7af00 66 20 6d 65 6d 6f 72 79 20 74 6f 20 61 6e 6f 74 68 65 72 2e 20 3c 63 6f 64 65 20 63 6c 61 73 73 f.memory.to.another..<code.class
7af20 3d 22 7a 69 67 22 3e 64 65 73 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 ="zig">dest</code>.and..........
7af40 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 6f 75 72 63 65 3c 2f 63 6f 64 65 3e .<code.class="zig">source</code>
7af60 20 61 72 65 20 62 6f 74 68 20 70 6f 69 6e 74 65 72 73 20 61 6e 64 20 6d 75 73 74 20 6e 6f 74 20 .are.both.pointers.and.must.not.
7af80 6f 76 65 72 6c 61 70 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 overlap........</p>.......<p>...
7afa0 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 6c 6f 77 20 6c 65 76 65 6c ....This.function.is.a.low.level
7afc0 20 69 6e 74 72 69 6e 73 69 63 20 77 69 74 68 20 6e 6f 20 73 61 66 65 74 79 20 6d 65 63 68 61 6e .intrinsic.with.no.safety.mechan
7afe0 69 73 6d 73 2e 20 4d 6f 73 74 20 63 6f 64 65 0a 20 20 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 74 isms..Most.code.......should.not
7b000 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 73 74 65 61 64 20 75 73 69 6e .use.this.function,.instead.usin
7b020 67 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 g.something.like.this:.......</p
7b040 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c >.......<pre><code.class="zig"><
7b060 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 span.class="tok-kw">for</span>.(
7b080 73 6f 75 72 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e source[<span.class="tok-number">
7b0a0 30 3c 2f 73 70 61 6e 3e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d 29 20 7c 62 2c 20 69 7c 20 64 65 0</span>..byte_count]).|b,.i|.de
7b0c0 73 74 5b 69 5d 20 3d 20 62 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 st[i].=.b;</code></pre>.......<p
7b0e0 3e 0a 20 20 20 20 20 20 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 69 73 20 69 6e 74 65 6c 6c 69 >.......The.optimizer.is.intelli
7b100 67 65 6e 74 20 65 6e 6f 75 67 68 20 74 6f 20 74 75 72 6e 20 74 68 65 20 61 62 6f 76 65 20 73 6e gent.enough.to.turn.the.above.sn
7b120 69 70 70 65 74 20 69 6e 74 6f 20 61 20 6d 65 6d 63 70 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ippet.into.a.memcpy........</p>.
7b140 20 20 20 20 20 20 3c 70 3e 54 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 20 73 74 61 6e 64 61 72 ......<p>There.is.also.a.standar
7b160 64 20 6c 69 62 72 61 72 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 3a 3c 2f 70 3e d.library.function.for.this:</p>
7b180 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 .......<pre><code.class="zig"><s
7b1a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
7b1c0 6d 65 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e mem.=.<span.class="tok-builtin">
7b1e0 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d @import</span>(<span.class="tok-
7b200 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 65 6d str">&quot;std&quot;</span>).mem
7b220 3b 0a 6d 65 6d 2e 63 6f 70 79 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 ;.mem.copy(<span.class="tok-type
7b240 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 64 65 73 74 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ">u8</span>,.dest[<span.class="t
7b260 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d ok-number">0</span>..byte_count]
7b280 2c 20 73 6f 75 72 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 ,.source[<span.class="tok-number
7b2a0 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d 29 3b 3c 2f 63 6f 64 65 3e ">0</span>..byte_count]);</code>
7b2c0 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 65 6d </pre>...............<h2.id="mem
7b2e0 73 65 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6d 65 6d 73 65 74 22 3e 40 6d 65 6d 73 set"><a.href="#toc-memset">@mems
7b300 65 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6d 65 6d et</a>.<a.class="hdr".href="#mem
7b320 73 65 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f set">..</a></h2>........<pre><co
7b340 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
7b360 62 75 69 6c 74 69 6e 22 3e 40 6d 65 6d 73 65 74 3c 2f 73 70 61 6e 3e 28 64 65 73 74 3a 20 5b 2a builtin">@memset</span>(dest:.[*
7b380 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e ]<span.class="tok-type">u8</span
7b3a0 3e 2c 20 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c >,.c:.<span.class="tok-type">u8<
7b3c0 2f 73 70 61 6e 3e 2c 20 62 79 74 65 5f 63 6f 75 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d /span>,.byte_count:.<span.class=
7b3e0 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c "tok-type">usize</span>)</code><
7b400 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 /pre>.......<p>.......This.funct
7b420 69 6f 6e 20 73 65 74 73 20 61 20 72 65 67 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 74 6f 20 3c ion.sets.a.region.of.memory.to.<
7b440 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 3c 2f 63 6f 64 65 3e 2e 20 3c 63 6f 64 65 code.class="zig">c</code>..<code
7b460 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 64 65 73 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 70 6f .class="zig">dest</code>.is.a.po
7b480 69 6e 74 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 inter........</p>.......<p>.....
7b4a0 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 6c 6f 77 20 6c 65 76 65 6c 20 69 ..This.function.is.a.low.level.i
7b4c0 6e 74 72 69 6e 73 69 63 20 77 69 74 68 20 6e 6f 20 73 61 66 65 74 79 20 6d 65 63 68 61 6e 69 73 ntrinsic.with.no.safety.mechanis
7b4e0 6d 73 2e 20 4d 6f 73 74 0a 20 20 20 20 20 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 6e 6f 74 20 75 ms..Most.......code.should.not.u
7b500 73 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 73 74 65 61 64 20 75 73 69 6e 67 20 se.this.function,.instead.using.
7b520 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a something.like.this:.......</p>.
7b540 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
7b560 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 64 65 an.class="tok-kw">for</span>.(de
7b580 73 74 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 st[<span.class="tok-number">0</s
7b5a0 70 61 6e 3e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d 29 20 7c 2a 62 7c 20 62 2e 2a 20 3d 20 63 3b pan>..byte_count]).|*b|.b.*.=.c;
7b5c0 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 </code></pre>.......<p>.......Th
7b5e0 65 20 6f 70 74 69 6d 69 7a 65 72 20 69 73 20 69 6e 74 65 6c 6c 69 67 65 6e 74 20 65 6e 6f 75 67 e.optimizer.is.intelligent.enoug
7b600 68 20 74 6f 20 74 75 72 6e 20 74 68 65 20 61 62 6f 76 65 20 73 6e 69 70 70 65 74 20 69 6e 74 6f h.to.turn.the.above.snippet.into
7b620 20 61 20 6d 65 6d 73 65 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 .a.memset........</p>.......<p>T
7b640 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 here.is.also.a.standard.library.
7b660 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 function.for.this:</p>.......<pr
7b680 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
7b6a0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 65 6d 20 3d 20 3c 73 70 61 "tok-kw">const</span>.mem.=.<spa
7b6c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 n.class="tok-builtin">@import</s
7b6e0 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
7b700 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 65 6d 3b 0a 6d 65 6d 2e 73 65 74 28 ;std&quot;</span>).mem;.mem.set(
7b720 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
7b740 2c 20 64 65 73 74 2c 20 63 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a ,.dest,.c);</code></pre>........
7b760 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 6f 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f .......<h2.id="mod"><a.href="#to
7b780 63 2d 6d 6f 64 22 3e 40 6d 6f 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 c-mod">@mod</a>.<a.class="hdr".h
7b7a0 72 65 66 3d 22 23 6d 6f 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 ref="#mod">..</a></h2>........<p
7b7c0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
7b7e0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 6f 64 3c 2f 73 70 61 6e 3e 28 6e 75 6d 65 72 ="tok-builtin">@mod</span>(numer
7b800 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 54 3c 2f 63 6f 64 65 ator:.T,.denominator:.T).T</code
7b820 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4d 6f 64 75 6c 75 73 20 ></pre>.......<p>.......Modulus.
7b840 64 69 76 69 73 69 6f 6e 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 division..For.unsigned.integers.
7b860 74 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 this.is.the.same.as.......<code.
7b880 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6e 75 6d 65 72 61 74 6f 72 20 25 20 64 65 6e 6f 6d 69 6e 61 class="zig">numerator.%.denomina
7b8a0 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 tor</code>..Caller.guarantees.<c
7b8c0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 26 67 74 3b ode.class="zig">denominator.&gt;
7b8e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 .<span.class="tok-number">0</spa
7b900 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e n></code>........</p>.......<ul>
7b920 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 ...........<li><code.class="zig"
7b940 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 6f 64 3c ><span.class="tok-builtin">@mod<
7b960 2f 73 70 61 6e 3e 28 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 /span>(-<span.class="tok-number"
7b980 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 >5</span>,.<span.class="tok-numb
7b9a0 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f er">3</span>).==.<span.class="to
7b9c0 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 k-number">1</span></code></li>..
7b9e0 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .........<li><code.class="zig"><
7ba00 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 46 6c 6f span.class="tok-builtin">@divFlo
7ba20 6f 72 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 or</span>(a,.b).+.<span.class="t
7ba40 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 6f 64 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 20 3d 3d ok-builtin">@mod</span>(a,.b).==
7ba60 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 .a</code></li>.......</ul>......
7ba80 20 3c 70 3e 46 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 .<p>For.a.function.that.returns.
7baa0 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 73 65 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 an.error.code,.see.<code.class="
7bac0 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 zig"><span.class="tok-builtin">@
7bae0 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 import</span>(<span.class="tok-s
7bb00 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 tr">&quot;std&quot;</span>).math
7bb20 2e 6d 6f 64 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c .mod</code>.</p>.......<p>See.al
7bb40 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 65 6d 22 3e 40 so:</p><ul>.<li><a.href="#rem">@
7bb60 72 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 rem</a></li>.</ul>..............
7bb80 20 20 3c 68 32 20 69 64 3d 22 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 ..<h2.id="mulWithOverflow"><a.hr
7bba0 65 66 3d 22 23 74 6f 63 2d 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 6d 75 6c 57 69 ef="#toc-mulWithOverflow">@mulWi
7bbc0 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 thOverflow</a>.<a.class="hdr".hr
7bbe0 65 66 3d 22 23 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 ef="#mulWithOverflow">..</a></h2
7bc00 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e >........<pre><code.class="zig">
7bc20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 75 6c 57 69 <span.class="tok-builtin">@mulWi
7bc40 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 thOverflow</span>(<span.class="t
7bc60 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 ok-kw">comptime</span>.T:.<span.
7bc80 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a class="tok-type">type</span>,.a:
7bca0 20 54 2c 20 62 3a 20 54 2c 20 72 65 73 75 6c 74 3a 20 2a 54 29 20 3c 73 70 61 6e 20 63 6c 61 73 .T,.b:.T,.result:.*T).<span.clas
7bcc0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c s="tok-type">bool</span></code><
7bce0 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c /pre>.......<p>.......Performs.<
7bd00 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 72 65 73 75 6c 74 2e 2a 20 3d 20 61 20 2a 20 code.class="zig">result.*.=.a.*.
7bd20 62 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c b</code>..If.overflow.or.underfl
7bd40 6f 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 20 20 20 20 73 74 6f 72 65 73 20 74 68 65 20 ow.occurs,...........stores.the.
7bd60 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 overflowed.bits.in.<code.class="
7bd80 7a 69 67 22 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 3c zig">result</code>.and.returns.<
7bda0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
7bdc0 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 k-null">true</span></code>......
7bde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 6e 6f 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 ..............If.no.overflow.or.
7be00 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 underflow.occurs,.returns.<code.
7be20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c class="zig"><span.class="tok-nul
7be40 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f l">false</span></code>........</
7be60 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6e 65 77 53 74 61 63 p>...............<h2.id="newStac
7be80 6b 43 61 6c 6c 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6e 65 77 53 74 61 63 6b 43 61 6c kCall"><a.href="#toc-newStackCal
7bea0 6c 22 3e 40 6e 65 77 53 74 61 63 6b 43 61 6c 6c 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 l">@newStackCall</a>.<a.class="h
7bec0 64 72 22 20 68 72 65 66 3d 22 23 6e 65 77 53 74 61 63 6b 43 61 6c 6c 22 3e c2 a7 3c 2f 61 3e 3c dr".href="#newStackCall">..</a><
7bee0 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 /h2>........<pre><code.class="zi
7bf00 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6e 65 g"><span.class="tok-builtin">@ne
7bf20 77 53 74 61 63 6b 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 6e 65 77 5f 73 74 61 63 6b 3a 20 5b 5d 3c wStackCall</span>(new_stack:.[]<
7bf40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e span.class="tok-kw">align</span>
7bf60 28 74 61 72 67 65 74 5f 73 74 61 63 6b 5f 61 6c 69 67 6e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 (target_stack_align).<span.class
7bf80 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 66 75 6e 63 74 69 6f 6e 3a ="tok-type">u8</span>,.function:
7bfa0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">var</span>
7bfc0 2c 20 61 72 67 73 3a 20 2e 2e 2e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ,.args:....).<span.class="tok-kw
7bfe0 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 ">var</span></code></pre>.......
7c000 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c <p>.......This.calls.a.function,
7c020 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 69 6e 76 6f 6b 69 6e 67 20 61 .in.the.same.way.that.invoking.a
7c040 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 20 70 61 72 65 6e 74 68 65 73 65 73 20 64 6f n.expression.with.parentheses.do
7c060 65 73 2e 20 48 6f 77 65 76 65 72 2c 0a 20 20 20 20 20 20 69 6e 73 74 65 61 64 20 6f 66 20 75 73 es..However,.......instead.of.us
7c080 69 6e 67 20 74 68 65 20 73 61 6d 65 20 73 74 61 63 6b 20 61 73 20 74 68 65 20 63 61 6c 6c 65 72 ing.the.same.stack.as.the.caller
7c0a0 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 73 20 74 68 65 20 73 74 61 63 6b 20 70 72 ,.the.function.uses.the.stack.pr
7c0c0 6f 76 69 64 65 64 20 69 6e 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ovided.in.the.<code.class="zig">
7c0e0 6e 65 77 5f 73 74 61 63 6b 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 70 61 72 61 6d 65 74 65 72 new_stack</code>.......parameter
7c100 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 ........</p>.......<p>.......The
7c120 20 6e 65 77 20 73 74 61 63 6b 20 6d 75 73 74 20 62 65 20 61 6c 69 67 6e 65 64 20 74 6f 20 3c 63 .new.stack.must.be.aligned.to.<c
7c140 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 74 61 72 67 65 74 5f 73 74 61 63 6b 5f 61 6c 69 ode.class="zig">target_stack_ali
7c160 67 6e 3c 2f 63 6f 64 65 3e 20 62 79 74 65 73 2e 20 54 68 69 73 20 69 73 20 61 20 74 61 72 67 65 gn</code>.bytes..This.is.a.targe
7c180 74 2d 73 70 65 63 69 66 69 63 0a 20 20 20 20 20 20 6e 75 6d 62 65 72 2e 20 41 20 73 61 66 65 20 t-specific.......number..A.safe.
7c1a0 76 61 6c 75 65 20 74 68 61 74 20 77 69 6c 6c 20 77 6f 72 6b 20 6f 6e 20 61 6c 6c 20 74 61 72 67 value.that.will.work.on.all.targ
7c1c0 65 74 73 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ets.is.<code.class="zig"><span.c
7c1e0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 36 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 lass="tok-number">16</span></cod
7c200 65 3e 2e 20 54 68 69 73 20 76 61 6c 75 65 20 63 61 6e 0a 20 20 20 20 20 20 61 6c 73 6f 20 62 65 e>..This.value.can.......also.be
7c220 20 6f 62 74 61 69 6e 65 64 20 62 79 20 75 73 69 6e 67 20 3c 61 20 68 72 65 66 3d 22 23 73 69 7a .obtained.by.using.<a.href="#siz
7c240 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 20 6f 6e 20 74 68 65 20 3c 61 20 68 72 65 66 3d eOf">@sizeOf</a>.on.the.<a.href=
7c260 22 23 46 72 61 6d 65 22 3e 40 46 72 61 6d 65 3c 2f 61 3e 20 74 79 70 65 20 6f 66 20 3c 61 20 68 "#Frame">@Frame</a>.type.of.<a.h
7c280 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 41 73 79 6e 63 20 46 75 6e ref="#Async-Functions">Async.Fun
7c2a0 63 74 69 6f 6e 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 ctions</a>........</p>.......<p.
7c2c0 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 class="file">test.zig</p><pre><c
7c2e0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
7c300 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c -kw">const</span>.std.=.<span.cl
7c320 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e ass="tok-builtin">@import</span>
7c340 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 (<span.class="tok-str">&quot;std
7c360 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b &quot;</span>);.<span.class="tok
7c380 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 -kw">const</span>.assert.=.std.d
7c3a0 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ebug.assert;..<span.class="tok-k
7c3c0 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6e 65 77 5f 73 74 61 63 6b 5f 62 79 74 65 73 3a 20 5b w">var</span>.new_stack_bytes:.[
7c3e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 32 34 3c 2f 73 <span.class="tok-number">1024</s
7c400 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f pan>]<span.class="tok-type">u8</
7c420 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e span>.<span.class="tok-kw">align
7c440 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 </span>(<span.class="tok-number"
7c460 3e 31 36 3c 2f 73 70 61 6e 3e 29 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e >16</span>).=.<span.class="tok-n
7c480 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c ull">undefined</span>;..<span.cl
7c4a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 ass="tok-kw">test</span>.<span.c
7c4c0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 61 6c 6c 69 6e 67 20 61 20 66 lass="tok-str">&quot;calling.a.f
7c4e0 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 61 20 6e 65 77 20 73 74 61 63 6b 26 71 75 6f 74 3b 3c 2f unction.with.a.new.stack&quot;</
7c500 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
7c520 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >const</span>.arg.=.<span.class=
7c540 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c "tok-number">1234</span>;......<
7c560 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
7c580 20 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 .a.=.<span.class="tok-builtin">@
7c5a0 6e 65 77 53 74 61 63 6b 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 6e 65 77 5f 73 74 61 63 6b 5f 62 79 newStackCall</span>(new_stack_by
7c5c0 74 65 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f tes[<span.class="tok-number">0</
7c5e0 73 70 61 6e 3e 2e 2e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e span>..<span.class="tok-number">
7c600 35 31 32 3c 2f 73 70 61 6e 3e 5d 2c 20 74 61 72 67 65 74 46 75 6e 63 74 69 6f 6e 2c 20 61 72 67 512</span>],.targetFunction,.arg
7c620 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 );.....<span.class="tok-kw">cons
7c640 74 3c 2f 73 70 61 6e 3e 20 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 t</span>.b.=.<span.class="tok-bu
7c660 69 6c 74 69 6e 22 3e 40 6e 65 77 53 74 61 63 6b 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 6e 65 77 5f iltin">@newStackCall</span>(new_
7c680 73 74 61 63 6b 5f 62 79 74 65 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d stack_bytes[<span.class="tok-num
7c6a0 62 65 72 22 3e 35 31 32 3c 2f 73 70 61 6e 3e 2e 2e 5d 2c 20 74 61 72 67 65 74 46 75 6e 63 74 69 ber">512</span>..],.targetFuncti
7c6c0 6f 6e 2c 20 61 72 67 29 3b 0a 20 20 20 20 5f 20 3d 20 74 61 72 67 65 74 46 75 6e 63 74 69 6f 6e on,.arg);....._.=.targetFunction
7c6e0 28 61 72 67 29 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 61 72 67 20 3d 3d 20 3c 73 70 61 6e 20 (arg);......assert(arg.==.<span.
7c700 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b class="tok-number">1234</span>);
7c720 0a 20 20 20 20 61 73 73 65 72 74 28 61 20 26 6c 74 3b 20 62 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 .....assert(a.&lt;.b);.}..<span.
7c740 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 class="tok-kw">fn</span>.<span.c
7c760 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 61 72 67 65 74 46 75 6e 63 74 69 6f 6e 3c 2f 73 70 lass="tok-fn">targetFunction</sp
7c780 61 6e 3e 28 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 an>(x:.<span.class="tok-type">i3
7c7a0 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 2</span>).<span.class="tok-type"
7c7c0 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 78 20 3d 3d 20 >usize</span>.{.....assert(x.==.
7c7e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 <span.class="tok-number">1234</s
7c800 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 pan>);......<span.class="tok-kw"
7c820 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6c 6f 63 61 6c 5f 76 61 72 69 61 62 6c 65 3a 20 3c 73 70 61 >var</span>.local_variable:.<spa
7c840 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 n.class="tok-type">i32</span>.=.
7c860 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 <span.class="tok-number">42</spa
7c880 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e n>;.....<span.class="tok-kw">con
7c8a0 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 26 61 6d 70 3b 6c 6f 63 61 6c 5f 76 61 72 69 61 st</span>.ptr.=.&amp;local_varia
7c8c0 62 6c 65 3b 0a 20 20 20 20 70 74 72 2e 2a 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ble;.....ptr.*.+=.<span.class="t
7c8e0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 ok-number">1</span>;......assert
7c900 28 6c 6f 63 61 6c 5f 76 61 72 69 61 62 6c 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 (local_variable.==.<span.class="
7c920 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 33 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 tok-number">43</span>);.....<spa
7c940 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c n.class="tok-kw">return</span>.<
7c960 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 54 6f 49 span.class="tok-builtin">@ptrToI
7c980 6e 74 3c 2f 73 70 61 6e 3e 28 70 74 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 nt</span>(ptr);.}</code></pre><p
7c9a0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
7c9c0 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 63 61 6c 6c 69 6e t.test.zig.1/1.test.&quot;callin
7c9e0 67 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 61 20 6e 65 77 20 73 74 61 63 6b 26 71 75 g.a.function.with.a.new.stack&qu
7ca00 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 ot;...OK.All.tests.passed..</cod
7ca20 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 e></pre>................<h2.id="
7ca40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6e 6f 49 6e noInlineCall"><a.href="#toc-noIn
7ca60 6c 69 6e 65 43 61 6c 6c 22 3e 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 20 3c 61 20 63 lineCall">@noInlineCall</a>.<a.c
7ca80 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 22 3e lass="hdr".href="#noInlineCall">
7caa0 c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c ..</a></h2>........<pre><code.cl
7cac0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 ass="zig"><span.class="tok-built
7cae0 69 6e 22 3e 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 66 75 6e 63 74 69 6f in">@noInlineCall</span>(functio
7cb00 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 n:.<span.class="tok-kw">var</spa
7cb20 6e 3e 2c 20 61 72 67 73 3a 20 2e 2e 2e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n>,.args:....).<span.class="tok-
7cb40 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 kw">var</span></code></pre>.....
7cb60 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 6f ..<p>.......This.calls.a.functio
7cb80 6e 2c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 69 6e 76 6f 6b 69 6e 67 n,.in.the.same.way.that.invoking
7cba0 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 20 70 61 72 65 6e 74 68 65 73 65 73 20 .an.expression.with.parentheses.
7cbc0 64 6f 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d does:.......</p>.......<p.class=
7cbe0 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c "file">test.zig</p><pre><code.cl
7cc00 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
7cc20 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 onst</span>.assert.=.<span.class
7cc40 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 ="tok-builtin">@import</span>(<s
7cc60 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 pan.class="tok-str">&quot;std&qu
7cc80 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e ot;</span>).debug.assert;..<span
7cca0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
7ccc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 6f 69 6e 6c 69 6e 65 n.class="tok-str">&quot;noinline
7cce0 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 .function.call&quot;</span>.{...
7cd00 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ..assert(<span.class="tok-builti
7cd20 6e 22 3e 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 73 70 61 6e 3e 28 61 64 64 2c 20 3c 73 70 n">@noInlineCall</span>(add,.<sp
7cd40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 an.class="tok-number">3</span>,.
7cd60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e <span.class="tok-number">9</span
7cd80 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 >).==.<span.class="tok-number">1
7cda0 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 2</span>);.}..<span.class="tok-k
7cdc0 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e w">fn</span>.<span.class="tok-fn
7cde0 22 3e 61 64 64 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">add</span>(a:.<span.class="tok
7ce00 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 -type">i32</span>,.b:.<span.clas
7ce20 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 s="tok-type">i32</span>).<span.c
7ce40 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 lass="tok-type">i32</span>.{....
7ce60 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 .<span.class="tok-kw">return</sp
7ce80 61 6e 3e 20 61 20 2b 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 an>.a.+.b;.}</code></pre><pre><c
7cea0 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
7cec0 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 6e 6f 69 6e 6c 69 6e 65 20 66 75 t.zig.1/1.test.&quot;noinline.fu
7cee0 6e 63 74 69 6f 6e 20 63 61 6c 6c 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 nction.call&quot;...OK.All.tests
7cf00 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 .passed..</code></pre>........<p
7cf20 3e 0a 20 20 20 20 20 20 55 6e 6c 69 6b 65 20 61 20 6e 6f 72 6d 61 6c 20 66 75 6e 63 74 69 6f 6e >.......Unlike.a.normal.function
7cf40 20 63 61 6c 6c 2c 20 68 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 .call,.however,.<code.class="zig
7cf60 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6e 6f 49 "><span.class="tok-builtin">@noI
7cf80 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 67 75 61 72 61 6e 74 65 nlineCall</span></code>.guarante
7cfa0 65 73 20 74 68 61 74 20 74 68 65 20 63 61 6c 6c 0a 20 20 20 20 20 20 77 69 6c 6c 20 6e 6f 74 20 es.that.the.call.......will.not.
7cfc0 62 65 20 69 6e 6c 69 6e 65 64 2e 20 49 66 20 74 68 65 20 63 61 6c 6c 20 6d 75 73 74 20 62 65 20 be.inlined..If.the.call.must.be.
7cfe0 69 6e 6c 69 6e 65 64 2c 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 65 6d 69 74 inlined,.a.compile.error.is.emit
7d000 74 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 ted........</p>.......<p>See.als
7d020 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 43 o:</p><ul>.<li><a.href="#inlineC
7d040 61 6c 6c 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a all">@inlineCall</a></li>.</ul>.
7d060 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 4f 70 61 71 75 65 54 79 70 ...............<h2.id="OpaqueTyp
7d080 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4f 70 61 71 75 65 54 79 70 65 22 3e 40 4f 70 e"><a.href="#toc-OpaqueType">@Op
7d0a0 61 71 75 65 54 79 70 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 aqueType</a>.<a.class="hdr".href
7d0c0 3d 22 23 4f 70 61 71 75 65 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 ="#OpaqueType">..</a></h2>......
7d0e0 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ..<pre><code.class="zig"><span.c
7d100 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 4f 70 61 71 75 65 54 79 70 65 3c 2f lass="tok-builtin">@OpaqueType</
7d120 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 span>().<span.class="tok-type">t
7d140 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 ype</span></code></pre>.......<p
7d160 3e 0a 20 20 20 20 20 20 43 72 65 61 74 65 73 20 61 20 6e 65 77 20 74 79 70 65 20 77 69 74 68 20 >.......Creates.a.new.type.with.
7d180 61 6e 20 75 6e 6b 6e 6f 77 6e 20 28 62 75 74 20 6e 6f 6e 2d 7a 65 72 6f 29 20 73 69 7a 65 20 61 an.unknown.(but.non-zero).size.a
7d1a0 6e 64 20 61 6c 69 67 6e 6d 65 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c nd.alignment........</p>.......<
7d1c0 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 75 73 65 64 20 p>.......This.is.typically.used.
7d1e0 66 6f 72 20 74 79 70 65 20 73 61 66 65 74 79 20 77 68 65 6e 20 69 6e 74 65 72 61 63 74 69 6e 67 for.type.safety.when.interacting
7d200 20 77 69 74 68 20 43 20 63 6f 64 65 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 70 6f 73 .with.C.code.that.does.not.expos
7d220 65 20 73 74 72 75 63 74 20 64 65 74 61 69 6c 73 2e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 3a e.struct.details........Example:
7d240 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 .......</p>.......<p.class="file
7d260 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">test.zig</p><pre><code.class="
7d280 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c zig"><span.class="tok-kw">const<
7d2a0 2f 73 70 61 6e 3e 20 44 65 72 70 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 /span>.Derp.=.<span.class="tok-b
7d2c0 75 69 6c 74 69 6e 22 3e 40 4f 70 61 71 75 65 54 79 70 65 3c 2f 73 70 61 6e 3e 28 29 3b 0a 3c 73 uiltin">@OpaqueType</span>();.<s
7d2e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
7d300 57 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e Wat.=.<span.class="tok-builtin">
7d320 40 4f 70 61 71 75 65 54 79 70 65 3c 2f 73 70 61 6e 3e 28 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 @OpaqueType</span>();..<span.cla
7d340 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 ss="tok-kw">extern</span>.<span.
7d360 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 class="tok-kw">fn</span>.<span.c
7d380 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 72 3c 2f 73 70 61 6e 3e 28 64 3a 20 2a 44 65 72 lass="tok-fn">bar</span>(d:.*Der
7d3a0 70 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f p).<span.class="tok-type">void</
7d3c0 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f span>;.<span.class="tok-kw">expo
7d3e0 72 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 rt</span>.<span.class="tok-kw">f
7d400 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f n</span>.<span.class="tok-fn">fo
7d420 6f 3c 2f 73 70 61 6e 3e 28 77 3a 20 2a 57 61 74 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 o</span>(w:.*Wat).<span.class="t
7d440 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 62 61 72 28 77 ok-type">void</span>.{.....bar(w
7d460 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c );.}..<span.class="tok-kw">test<
7d480 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>.<span.class="tok-str">&qu
7d4a0 6f 74 3b 63 61 6c 6c 20 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 ot;call.foo&quot;</span>.{.....f
7d4c0 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 oo(<span.class="tok-null">undefi
7d4e0 6e 65 64 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e ned</span>);.}</code></pre><pre>
7d500 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 <code.class="shell">$.zig.test.t
7d520 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 est.zig.<span.class="t0_1">/home
7d540 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 /andy/dev/zig/docgen_tmp/test.zi
7d560 67 3a 36 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 g:6:9:.</span><span.class="t31_1
7d580 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 ">error:</span><span.class="t0_1
7d5a0 22 3e 20 65 78 70 65 63 74 65 64 20 74 79 70 65 20 27 2a 44 65 72 70 27 2c 20 66 6f 75 6e 64 20 ">.expected.type.'*Derp',.found.
7d5c0 27 2a 57 61 74 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 62 61 72 28 77 29 3b 0a 20 20 20 20 20 20 '*Wat'</span>.....bar(w);.......
7d5e0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
7d600 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 span.class="t0_1">/home/andy/dev
7d620 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 39 3a 20 3c 2f /zig/docgen_tmp/test.zig:6:9:.</
7d640 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f span><span.class="t36_1">note:</
7d660 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 70 6f 69 6e 74 65 72 span><span.class="t0_1">.pointer
7d680 20 74 79 70 65 20 63 68 69 6c 64 20 27 57 61 74 27 20 63 61 6e 6e 6f 74 20 63 61 73 74 20 69 6e .type.child.'Wat'.cannot.cast.in
7d6a0 74 6f 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 63 68 69 6c 64 20 27 44 65 72 70 27 3c 2f 73 70 to.pointer.type.child.'Derp'</sp
7d6c0 61 6e 3e 0a 20 20 20 20 62 61 72 28 77 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c an>.....bar(w);.........<span.cl
7d6e0 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ass="t32_1">^</span>.<span.class
7d700 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 ="t0_1">/home/andy/dev/zig/docge
7d720 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e n_tmp/test.zig:6:8:.</span><span
7d740 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e .class="t36_1">note:</span><span
7d760 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f .class="t0_1">.referenced.here</
7d780 73 70 61 6e 3e 0a 20 20 20 20 62 61 72 28 77 29 3b 0a 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 span>.....bar(w);........<span.c
7d7a0 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 lass="t32_1">^</span>.</code></p
7d7c0 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 70 61 6e 69 63 re>................<h2.id="panic
7d7e0 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 70 61 6e 69 63 22 3e 40 70 61 6e 69 63 3c 2f 61 "><a.href="#toc-panic">@panic</a
7d800 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 70 61 6e 69 63 22 3e c2 >.<a.class="hdr".href="#panic">.
7d820 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .</a></h2>........<pre><code.cla
7d840 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ss="zig"><span.class="tok-builti
7d860 6e 22 3e 40 70 61 6e 69 63 3c 2f 73 70 61 6e 3e 28 6d 65 73 73 61 67 65 3a 20 5b 5d 3c 73 70 61 n">@panic</span>(message:.[]<spa
7d880 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 n.class="tok-kw">const</span>.<s
7d8a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 pan.class="tok-type">u8</span>).
7d8c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c <span.class="tok-type">noreturn<
7d8e0 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 /span></code></pre>.......<p>...
7d900 20 20 20 20 49 6e 76 6f 6b 65 73 20 74 68 65 20 70 61 6e 69 63 20 68 61 6e 64 6c 65 72 20 66 75 ....Invokes.the.panic.handler.fu
7d920 6e 63 74 69 6f 6e 2e 20 42 79 20 64 65 66 61 75 6c 74 20 74 68 65 20 70 61 6e 69 63 20 68 61 6e nction..By.default.the.panic.han
7d940 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 63 61 6c 6c 73 20 74 68 65 20 70 75 dler.function.......calls.the.pu
7d960 62 6c 69 63 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 61 6e 69 63 3c 2f 63 6f blic.<code.class="zig">panic</co
7d980 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 6f 73 65 64 20 69 6e 20 74 68 65 20 72 6f 6f 74 de>.function.exposed.in.the.root
7d9a0 20 73 6f 75 72 63 65 20 66 69 6c 65 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 74 68 .source.file,.or...........if.th
7d9c0 65 72 65 20 69 73 20 6e 6f 74 20 6f 6e 65 20 73 70 65 63 69 66 69 65 64 2c 20 69 6e 76 6f 6b 65 ere.is.not.one.specified,.invoke
7d9e0 73 20 74 68 65 20 6f 6e 65 20 70 72 6f 76 69 64 65 64 20 69 6e 20 3c 63 6f 64 65 20 63 6c 61 73 s.the.one.provided.in.<code.clas
7da00 73 3d 22 7a 69 67 22 3e 73 74 64 2f 73 70 65 63 69 61 6c 2f 70 61 6e 69 63 2e 7a 69 67 3c 2f 63 s="zig">std/special/panic.zig</c
7da20 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 47 65 6e 65 72 61 ode>........</p>.......<p>Genera
7da40 6c 6c 79 20 69 74 20 69 73 20 62 65 74 74 65 72 20 74 6f 20 75 73 65 20 3c 63 6f 64 65 20 63 6c lly.it.is.better.to.use.<code.cl
7da60 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 ass="zig"><span.class="tok-built
7da80 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
7daa0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
7dac0 2e 64 65 62 75 67 2e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 48 .debug.panic</code>............H
7dae0 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 owever,.<code.class="zig"><span.
7db00 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 61 6e 69 63 3c 2f 73 70 61 6e class="tok-builtin">@panic</span
7db20 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 66 6f 72 20 32 20 73 63 65 ></code>.can.be.useful.for.2.sce
7db40 6e 61 72 69 6f 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 narios:.......</p>.......<ul>...
7db60 20 20 20 20 20 20 3c 6c 69 3e 46 72 6f 6d 20 6c 69 62 72 61 72 79 20 63 6f 64 65 2c 20 63 61 6c ......<li>From.library.code,.cal
7db80 6c 69 6e 67 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 27 73 20 70 61 6e 69 63 20 66 75 6e 63 ling.the.programmer's.panic.func
7dba0 74 69 6f 6e 20 69 66 20 74 68 65 79 20 65 78 70 6f 73 65 64 20 6f 6e 65 20 69 6e 20 74 68 65 20 tion.if.they.exposed.one.in.the.
7dbc0 72 6f 6f 74 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c root.source.file.</li>.........<
7dbe0 6c 69 3e 57 68 65 6e 20 6d 69 78 69 6e 67 20 43 20 61 6e 64 20 5a 69 67 20 63 6f 64 65 2c 20 63 li>When.mixing.C.and.Zig.code,.c
7dc00 61 6c 6c 69 6e 67 20 74 68 65 20 63 61 6e 6f 6e 69 63 61 6c 20 70 61 6e 69 63 20 69 6d 70 6c 65 alling.the.canonical.panic.imple
7dc20 6d 65 6e 74 61 74 69 6f 6e 20 61 63 72 6f 73 73 20 6d 75 6c 74 69 70 6c 65 20 2e 6f 20 66 69 6c mentation.across.multiple..o.fil
7dc40 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 es.</li>.......</ul>.......<p>Se
7dc60 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 6f e.also:</p><ul>.<li><a.href="#Ro
7dc80 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c 65 ot-Source-File">Root.Source.File
7dca0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c </a></li>.</ul>................<
7dcc0 68 32 20 69 64 3d 22 70 6f 70 43 6f 75 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 70 h2.id="popCount"><a.href="#toc-p
7dce0 6f 70 43 6f 75 6e 74 22 3e 40 70 6f 70 43 6f 75 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d opCount">@popCount</a>.<a.class=
7dd00 22 68 64 72 22 20 68 72 65 66 3d 22 23 70 6f 70 43 6f 75 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 "hdr".href="#popCount">..</a></h
7dd20 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 2>........<pre><code.class="zig"
7dd40 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 6f 70 43 ><span.class="tok-builtin">@popC
7dd60 6f 75 6e 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ount</span>(<span.class="tok-kw"
7dd80 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >comptime</span>.T:.<span.class=
7dda0 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 69 6e 74 65 67 65 72 3a "tok-type">type</span>,.integer:
7ddc0 20 54 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 43 6f 75 6e 74 73 .T)</code></pre>.......<p>Counts
7dde0 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 69 74 73 20 73 65 74 20 69 6e 20 61 6e 20 69 6e .the.number.of.bits.set.in.an.in
7de00 74 65 67 65 72 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 teger.</p>.......<p>.......If.<c
7de20 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 69 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 20 69 ode.class="zig">integer</code>.i
7de40 73 20 6b 6e 6f 77 6e 20 61 74 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 s.known.at.<a.href="#comptime">c
7de60 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 omptime</a>,.......the.return.ty
7de80 70 65 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c pe.is.<code.class="zig"><span.cl
7dea0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 ass="tok-type">comptime_int</spa
7dec0 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 n></code>........Otherwise,.the.
7dee0 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 return.type.is.an.unsigned.integ
7df00 65 72 20 77 69 74 68 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 er.with.the.minimum.number......
7df20 20 6f 66 20 62 69 74 73 20 74 68 61 74 20 63 61 6e 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 .of.bits.that.can.represent.the.
7df40 62 69 74 20 63 6f 75 6e 74 20 6f 66 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 2e 0a 20 bit.count.of.the.integer.type...
7df60 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e .....</p>.......<p>See.also:</p>
7df80 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 74 7a 22 3e 40 63 74 7a 3c 2f 61 3e <ul>.<li><a.href="#ctz">@ctz</a>
7dfa0 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6c 7a 22 3e 40 63 6c 7a 3c 2f 61 </li>.<li><a.href="#clz">@clz</a
7dfc0 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 ></li>.</ul>................<h2.
7dfe0 69 64 3d 22 70 74 72 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 70 74 72 43 61 id="ptrCast"><a.href="#toc-ptrCa
7e000 73 74 22 3e 40 70 74 72 43 61 73 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 st">@ptrCast</a>.<a.class="hdr".
7e020 68 72 65 66 3d 22 23 70 74 72 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 href="#ptrCast">..</a></h2>.....
7e040 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ...<pre><code.class="zig"><span.
7e060 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 43 61 73 74 3c 2f 73 70 class="tok-builtin">@ptrCast</sp
7e080 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d an>(<span.class="tok-kw">comptim
7e0a0 65 3c 2f 73 70 61 6e 3e 20 44 65 73 74 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 e</span>.DestType:.<span.class="
7e0c0 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 3c 73 tok-type">type</span>,.value:.<s
7e0e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 44 pan.class="tok-kw">var</span>).D
7e100 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 estType</code></pre>.......<p>..
7e120 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 20 70 6f 69 6e 74 65 72 20 6f 66 20 6f 6e 65 20 74 .....Converts.a.pointer.of.one.t
7e140 79 70 65 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 20 6f 66 20 61 6e 6f 74 68 65 72 20 74 79 70 65 ype.to.a.pointer.of.another.type
7e160 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 61 20 ........</p>.......<p>.......<a.
7e180 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 22 3e 4f 70 74 69 6f 6e href="#Optional-Pointers">Option
7e1a0 61 6c 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 61 72 65 20 61 6c 6c 6f 77 65 64 2e 20 43 61 73 al.Pointers</a>.are.allowed..Cas
7e1c0 74 69 6e 67 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 20 77 68 69 63 68 20 69 ting.an.optional.pointer.which.i
7e1e0 73 20 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 0a 20 20 20 20 20 s.<a.href="#null">null</a>......
7e200 20 74 6f 20 61 20 6e 6f 6e 2d 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 20 69 6e 76 6f 6b .to.a.non-optional.pointer.invok
7e220 65 73 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 es.safety-checked.<a.href="#Unde
7e240 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 fined-Behavior">Undefined.Behavi
7e260 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 or</a>........</p>..............
7e280 20 3c 68 32 20 69 64 3d 22 70 74 72 54 6f 49 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 .<h2.id="ptrToInt"><a.href="#toc
7e2a0 2d 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 -ptrToInt">@ptrToInt</a>.<a.clas
7e2c0 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 70 74 72 54 6f 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c s="hdr".href="#ptrToInt">..</a><
7e2e0 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 /h2>........<pre><code.class="zi
7e300 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 g"><span.class="tok-builtin">@pt
7e320 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 rToInt</span>(value:.<span.class
7e340 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 ="tok-kw">var</span>).<span.clas
7e360 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e s="tok-type">usize</span></code>
7e380 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 </pre>.......<p>.......Converts.
7e3a0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 74 <code.class="zig">value</code>.t
7e3c0 6f 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 o.a.<code.class="zig"><span.clas
7e3e0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e s="tok-type">usize</span></code>
7e400 20 77 68 69 63 68 20 69 73 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 70 6f 69 .which.is.the.address.of.the.poi
7e420 6e 74 65 72 2e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 76 61 6c 75 65 3c 2f 63 nter..<code.class="zig">value</c
7e440 6f 64 65 3e 20 63 61 6e 20 62 65 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 74 79 70 65 73 3a 0a ode>.can.be.one.of.these.types:.
7e460 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 ......</p>.......<ul>...........
7e480 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 54 3c 2f 63 6f 64 65 3e 3c <li><code.class="zig">*T</code><
7e4a0 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 /li>...........<li><code.class="
7e4c0 7a 69 67 22 3e 3f 2a 54 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c zig">?*T</code></li>...........<
7e4e0 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 li><code.class="zig"><span.class
7e500 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 28 29 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 ="tok-kw">fn</span>()</code></li
7e520 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 >...........<li><code.class="zig
7e540 22 3e 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e ">?<span.class="tok-kw">fn</span
7e560 3e 28 29 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 >()</code></li>.......</ul>.....
7e580 20 20 3c 70 3e 54 6f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 2c 20 75 ..<p>To.convert.the.other.way,.u
7e5a0 73 65 20 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 50 74 72 22 3e 40 69 6e 74 54 6f 50 74 72 se.<a.href="#intToPtr">@intToPtr
7e5c0 3c 2f 61 3e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 </a></p>................<h2.id="
7e5e0 72 65 6d 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 72 65 6d 22 3e 40 72 65 6d 3c 2f 61 3e rem"><a.href="#toc-rem">@rem</a>
7e600 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 72 65 6d 22 3e c2 a7 3c 2f .<a.class="hdr".href="#rem">..</
7e620 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d a></h2>........<pre><code.class=
7e640 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e "zig"><span.class="tok-builtin">
7e660 40 72 65 6d 3c 2f 73 70 61 6e 3e 28 6e 75 6d 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 @rem</span>(numerator:.T,.denomi
7e680 6e 61 74 6f 72 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c nator:.T).T</code></pre>.......<
7e6a0 70 3e 0a 20 20 20 20 20 20 52 65 6d 61 69 6e 64 65 72 20 64 69 76 69 73 69 6f 6e 2e 20 46 6f 72 p>.......Remainder.division..For
7e6c0 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 74 68 69 73 20 69 73 20 74 68 65 20 73 .unsigned.integers.this.is.the.s
7e6e0 61 6d 65 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6e ame.as.......<code.class="zig">n
7e700 75 6d 65 72 61 74 6f 72 20 25 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 umerator.%.denominator</code>..C
7e720 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 aller.guarantees.<code.class="zi
7e740 67 22 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d g">denominator.&gt;.<span.class=
7e760 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 "tok-number">0</span></code>....
7e780 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c ....</p>.......<ul>...........<l
7e7a0 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d i><code.class="zig"><span.class=
7e7c0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 72 65 6d 3c 2f 73 70 61 6e 3e 28 2d 3c 73 70 61 6e "tok-builtin">@rem</span>(-<span
7e7e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 .class="tok-number">5</span>,.<s
7e800 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">3</span>)
7e820 20 3d 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c .==.-<span.class="tok-number">2<
7e840 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 /span></code></li>...........<li
7e860 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
7e880 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 73 70 61 6e 3e 28 61 2c tok-builtin">@divTrunc</span>(a,
7e8a0 20 62 29 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e .b).+.<span.class="tok-builtin">
7e8c0 40 72 65 6d 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c @rem</span>(a,.b).==.a</code></l
7e8e0 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 61 20 66 75 i>.......</ul>.......<p>For.a.fu
7e900 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 nction.that.returns.an.error.cod
7e920 65 2c 20 73 65 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 e,.see.<code.class="zig"><span.c
7e940 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
7e960 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
7e980 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 72 65 6d 3c 2f 63 6f 64 65 3e 2e d&quot;</span>).math.rem</code>.
7e9a0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a </p>.......<p>See.also:</p><ul>.
7e9c0 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 6f 64 22 3e 40 6d 6f 64 3c 2f 61 3e 3c 2f 6c 69 3e <li><a.href="#mod">@mod</a></li>
7e9e0 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 72 65 .</ul>................<h2.id="re
7ea00 74 75 72 6e 41 64 64 72 65 73 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 72 65 74 75 72 turnAddress"><a.href="#toc-retur
7ea20 6e 41 64 64 72 65 73 73 22 3e 40 72 65 74 75 72 6e 41 64 64 72 65 73 73 3c 2f 61 3e 20 3c 61 20 nAddress">@returnAddress</a>.<a.
7ea40 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 72 65 74 75 72 6e 41 64 64 72 65 73 73 class="hdr".href="#returnAddress
7ea60 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 ">..</a></h2>........<pre><code.
7ea80 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 class="zig"><span.class="tok-bui
7eaa0 6c 74 69 6e 22 3e 40 72 65 74 75 72 6e 41 64 64 72 65 73 73 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 ltin">@returnAddress</span>().<s
7eac0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e pan.class="tok-type">usize</span
7eae0 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 ></code></pre>.......<p>.......T
7eb00 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 61 64 64 72 65 73 73 his.function.returns.the.address
7eb20 20 6f 66 20 74 68 65 20 6e 65 78 74 20 6d 61 63 68 69 6e 65 20 63 6f 64 65 20 69 6e 73 74 72 75 .of.the.next.machine.code.instru
7eb40 63 74 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 0a 20 20 20 20 ction.that.will.be.executed.....
7eb60 20 20 77 68 65 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 ..when.the.current.function.retu
7eb80 72 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 rns........</p>.......<p>.......
7eba0 54 68 65 20 69 6d 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 61 72 65 20 74 61 72 The.implications.of.this.are.tar
7ebc0 67 65 74 20 73 70 65 63 69 66 69 63 20 61 6e 64 20 6e 6f 74 20 63 6f 6e 73 69 73 74 65 6e 74 20 get.specific.and.not.consistent.
7ebe0 61 63 72 6f 73 73 0a 20 20 20 20 20 20 61 6c 6c 20 70 6c 61 74 66 6f 72 6d 73 2e 0a 20 20 20 20 across.......all.platforms......
7ec00 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 ..</p>.......<p>.......This.func
7ec20 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 76 61 6c 69 64 20 77 69 74 68 69 6e 20 66 75 6e 63 74 69 tion.is.only.valid.within.functi
7ec40 6f 6e 20 73 63 6f 70 65 2e 20 49 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 73 20 69 on.scope..If.the.function.gets.i
7ec60 6e 6c 69 6e 65 64 20 69 6e 74 6f 0a 20 20 20 20 20 20 61 20 63 61 6c 6c 69 6e 67 20 66 75 6e 63 nlined.into.......a.calling.func
7ec80 74 69 6f 6e 2c 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 61 64 64 72 65 73 73 20 77 69 6c 6c 20 tion,.the.returned.address.will.
7eca0 61 70 70 6c 79 20 74 6f 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 apply.to.the.calling.function...
7ecc0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 .....</p>..............<h2.id="s
7ece0 65 74 41 6c 69 67 6e 53 74 61 63 6b 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 65 74 41 etAlignStack"><a.href="#toc-setA
7ed00 6c 69 67 6e 53 74 61 63 6b 22 3e 40 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 3c 2f 61 3e 20 3c 61 lignStack">@setAlignStack</a>.<a
7ed20 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 65 74 41 6c 69 67 6e 53 74 61 63 .class="hdr".href="#setAlignStac
7ed40 6b 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 k">..</a></h2>........<pre><code
7ed60 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
7ed80 69 6c 74 69 6e 22 3e 40 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 3c 2f 73 70 61 6e 3e 28 3c 73 70 iltin">@setAlignStack</span>(<sp
7eda0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e an.class="tok-kw">comptime</span
7edc0 3e 20 61 6c 69 67 6e 6d 65 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 >.alignment:.<span.class="tok-ty
7ede0 70 65 22 3e 75 32 39 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 pe">u29</span>)</code></pre>....
7ee00 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 6e 73 75 72 65 73 20 74 68 61 74 20 61 20 66 75 6e 63 ...<p>.......Ensures.that.a.func
7ee20 74 69 6f 6e 20 77 69 6c 6c 20 68 61 76 65 20 61 20 73 74 61 63 6b 20 61 6c 69 67 6e 6d 65 6e 74 tion.will.have.a.stack.alignment
7ee40 20 6f 66 20 61 74 20 6c 65 61 73 74 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 .of.at.least.<code.class="zig">a
7ee60 6c 69 67 6e 6d 65 6e 74 3c 2f 63 6f 64 65 3e 20 62 79 74 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 lignment</code>.bytes........</p
7ee80 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 65 74 43 6f 6c 64 22 >...............<h2.id="setCold"
7eea0 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 65 74 43 6f 6c 64 22 3e 40 73 65 74 43 6f 6c 64 ><a.href="#toc-setCold">@setCold
7eec0 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 65 74 43 6f </a>.<a.class="hdr".href="#setCo
7eee0 6c 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 ld">..</a></h2>........<pre><cod
7ef00 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
7ef20 75 69 6c 74 69 6e 22 3e 40 73 65 74 43 6f 6c 64 3c 2f 73 70 61 6e 3e 28 69 73 5f 63 6f 6c 64 3a uiltin">@setCold</span>(is_cold:
7ef40 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 .<span.class="tok-type">bool</sp
7ef60 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 an>)</code></pre>.......<p>.....
7ef80 20 20 54 65 6c 6c 73 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 74 68 61 74 20 61 20 66 75 6e ..Tells.the.optimizer.that.a.fun
7efa0 63 74 69 6f 6e 20 69 73 20 72 61 72 65 6c 79 20 63 61 6c 6c 65 64 2e 0a 20 20 20 20 20 20 3c 2f ction.is.rarely.called........</
7efc0 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 65 74 45 76 61 6c p>...............<h2.id="setEval
7efe0 42 72 61 6e 63 68 51 75 6f 74 61 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 65 74 45 76 BranchQuota"><a.href="#toc-setEv
7f000 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f alBranchQuota">@setEvalBranchQuo
7f020 74 61 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 65 74 ta</a>.<a.class="hdr".href="#set
7f040 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 EvalBranchQuota">..</a></h2>....
7f060 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
7f080 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 45 76 61 6c 42 72 61 .class="tok-builtin">@setEvalBra
7f0a0 6e 63 68 51 75 6f 74 61 3c 2f 73 70 61 6e 3e 28 6e 65 77 5f 71 75 6f 74 61 3a 20 3c 73 70 61 6e nchQuota</span>(new_quota:.<span
7f0c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 3c .class="tok-type">usize</span>)<
7f0e0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 68 61 /code></pre>.......<p>.......Cha
7f100 6e 67 65 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 62 61 63 6b 77 nges.the.maximum.number.of.backw
7f120 61 72 64 73 20 62 72 61 6e 63 68 65 73 20 74 68 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 ards.branches.that.compile-time.
7f140 63 6f 64 65 0a 20 20 20 20 20 20 65 78 65 63 75 74 69 6f 6e 20 63 61 6e 20 75 73 65 20 62 65 66 code.......execution.can.use.bef
7f160 6f 72 65 20 67 69 76 69 6e 67 20 75 70 20 61 6e 64 20 6d 61 6b 69 6e 67 20 61 20 63 6f 6d 70 69 ore.giving.up.and.making.a.compi
7f180 6c 65 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 le.error........</p>.......<p>..
7f1a0 20 20 20 20 20 49 66 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6e 65 .....If.the.<code.class="zig">ne
7f1c0 77 5f 71 75 6f 74 61 3c 2f 63 6f 64 65 3e 20 69 73 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e 20 74 w_quota</code>.is.smaller.than.t
7f1e0 68 65 20 64 65 66 61 75 6c 74 20 71 75 6f 74 61 20 28 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a he.default.quota.(<code.class="z
7f200 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 ig"><span.class="tok-number">100
7f220 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 20 6f 72 0a 20 20 20 20 20 20 61 20 70 72 65 76 0</span></code>).or.......a.prev
7f240 69 6f 75 73 6c 79 20 65 78 70 6c 69 63 69 74 6c 79 20 73 65 74 20 71 75 6f 74 61 2c 20 69 74 20 iously.explicitly.set.quota,.it.
7f260 69 73 20 69 67 6e 6f 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e is.ignored........</p>.......<p>
7f280 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 .......Example:.......</p>......
7f2a0 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 .<p.class="file">test.zig</p><pr
7f2c0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
7f2e0 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">test</span>.<span.class
7f300 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e ="tok-str">&quot;foo&quot;</span
7f320 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d >.{.....<span.class="tok-kw">com
7f340 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ptime</span>.{.........<span.cla
7f360 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 20 3d 20 3c 73 70 61 6e ss="tok-kw">var</span>.i.=.<span
7f380 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">0</span>;...
7f3a0 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c 65 ......<span.class="tok-kw">while
7f3c0 3c 2f 73 70 61 6e 3e 20 28 69 20 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>.(i.&lt;.<span.class="tok
7f3e0 2d 6e 75 6d 62 65 72 22 3e 31 30 30 31 3c 2f 73 70 61 6e 3e 29 20 3a 20 28 69 20 2b 3d 20 3c 73 -number">1001</span>).:.(i.+=.<s
7f400 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 pan.class="tok-number">1</span>)
7f420 20 7b 7d 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f .{}.....}.}</code></pre><pre><co
7f440 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 de.class="shell">$.zig.test.test
7f460 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e .zig.<span.class="t0_1">/home/an
7f480 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 dy/dev/zig/docgen_tmp/test.zig:4
7f4a0 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 :9:.</span><span.class="t31_1">e
7f4c0 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 rror:</span><span.class="t0_1">.
7f4e0 65 76 61 6c 75 61 74 69 6f 6e 20 65 78 63 65 65 64 65 64 20 31 30 30 30 20 62 61 63 6b 77 61 72 evaluation.exceeded.1000.backwar
7f500 64 73 20 62 72 61 6e 63 68 65 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 ds.branches</span>.........while
7f520 20 28 69 20 26 6c 74 3b 20 31 30 30 31 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 7d 0a 20 20 20 .(i.&lt;.1001).:.(i.+=.1).{}....
7f540 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e .....<span.class="t32_1">^</span
7f560 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 77 20 77 65 >.</code></pre>........<p>Now.we
7f580 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 .use.<code.class="zig"><span.cla
7f5a0 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 ss="tok-builtin">@setEvalBranchQ
7f5c0 75 6f 74 61 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 uota</span></code>:</p>.......<p
7f5e0 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
7f600 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
7f620 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 k-kw">test</span>.<span.class="t
7f640 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b ok-str">&quot;foo&quot;</span>.{
7f660 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 .....<span.class="tok-kw">compti
7f680 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d me</span>.{.........<span.class=
7f6a0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 "tok-builtin">@setEvalBranchQuot
7f6c0 61 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 a</span>(<span.class="tok-number
7f6e0 22 3e 31 30 30 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c ">1001</span>);.........<span.cl
7f700 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 20 3d 20 3c 73 70 61 ass="tok-kw">var</span>.i.=.<spa
7f720 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 n.class="tok-number">0</span>;..
7f740 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 77 68 69 6c .......<span.class="tok-kw">whil
7f760 65 3c 2f 73 70 61 6e 3e 20 28 69 20 26 6c 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f e</span>.(i.&lt;.<span.class="to
7f780 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 31 3c 2f 73 70 61 6e 3e 29 20 3a 20 28 69 20 2b 3d 20 3c k-number">1001</span>).:.(i.+=.<
7f7a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e span.class="tok-number">1</span>
7f7c0 29 20 7b 7d 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 ).{}.....}.}</code></pre><pre><c
7f7e0 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
7f800 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 2e 2e t.zig.1/1.test.&quot;foo&quot;..
7f820 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 .OK.All.tests.passed..</code></p
7f840 72 65 3e 0a 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e re>.........<p>See.also:</p><ul>
7f860 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d .<li><a.href="#comptime">comptim
7f880 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 e</a></li>.</ul>................
7f8a0 3c 68 32 20 69 64 3d 22 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 <h2.id="setFloatMode"><a.href="#
7f8c0 74 6f 63 2d 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c toc-setFloatMode">@setFloatMode<
7f8e0 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 65 74 46 6c 6f /a>.<a.class="hdr".href="#setFlo
7f900 61 74 4d 6f 64 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e atMode">..</a></h2>........<pre>
7f920 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
7f940 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c 2f 73 70 61 6e 3e ok-builtin">@setFloatMode</span>
7f960 28 6d 6f 64 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 (mode:.<span.class="tok-builtin"
7f980 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
7f9a0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e -str">&quot;builtin&quot;</span>
7f9c0 29 2e 46 6c 6f 61 74 4d 6f 64 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 ).FloatMode)</code></pre>.......
7f9e0 3c 70 3e 0a 20 20 20 20 20 20 53 65 74 73 20 74 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e <p>.......Sets.the.floating.poin
7fa00 74 20 6d 6f 64 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 2e 20 50 6f 73 t.mode.of.the.current.scope..Pos
7fa20 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 sible.values.are:.......</p>....
7fa40 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 ...<pre><code.class="zig"><span.
7fa60 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 class="tok-kw">pub</span>.<span.
7fa80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6c 6f 61 class="tok-kw">const</span>.Floa
7faa0 74 4d 6f 64 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 tMode.=.<span.class="tok-kw">enu
7fac0 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 53 74 72 69 63 74 2c 0a 20 20 20 20 4f 70 74 69 6d m</span>.{.....Strict,.....Optim
7fae0 69 7a 65 64 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e ized,.};</code></pre>.......<ul>
7fb00 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 .........<li>.............<code.
7fb20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 53 74 72 69 63 74 3c 2f 63 6f 64 65 3e 20 28 64 65 66 61 75 class="zig">Strict</code>.(defau
7fb40 6c 74 29 20 2d 20 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 lt).-.Floating.point.operations.
7fb60 66 6f 6c 6c 6f 77 20 73 74 72 69 63 74 20 49 45 45 45 20 63 6f 6d 70 6c 69 61 6e 63 65 2e 0a 20 follow.strict.IEEE.compliance...
7fb80 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 .......</li>.........<li>.......
7fba0 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 4f 70 74 69 6d 69 7a 65 ......<code.class="zig">Optimize
7fbc0 64 3c 2f 63 6f 64 65 3e 20 2d 20 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6f 70 65 72 61 74 d</code>.-.Floating.point.operat
7fbe0 69 6f 6e 73 20 6d 61 79 20 64 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 ions.may.do.all.of.the.following
7fc00 3a 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 :...........<ul>.............<li
7fc20 3e 41 73 73 75 6d 65 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 72 65 73 75 6c 74 >Assume.the.arguments.and.result
7fc40 20 61 72 65 20 6e 6f 74 20 4e 61 4e 2e 20 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 .are.not.NaN..Optimizations.are.
7fc60 72 65 71 75 69 72 65 64 20 74 6f 20 72 65 74 61 69 6e 20 64 65 66 69 6e 65 64 20 62 65 68 61 76 required.to.retain.defined.behav
7fc80 69 6f 72 20 6f 76 65 72 20 4e 61 4e 73 2c 20 62 75 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 ior.over.NaNs,.but.the.value.of.
7fca0 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 75 6e 64 65 66 69 6e 65 64 2e 3c 2f 6c 69 3e 0a 20 20 the.result.is.undefined.</li>...
7fcc0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 73 73 75 6d 65 20 74 68 65 20 61 72 67 75 6d 65 6e ..........<li>Assume.the.argumen
7fce0 74 73 20 61 6e 64 20 72 65 73 75 6c 74 20 61 72 65 20 6e 6f 74 20 2b 2f 2d 49 6e 66 2e 20 4f 70 ts.and.result.are.not.+/-Inf..Op
7fd00 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 72 65 74 61 timizations.are.required.to.reta
7fd20 69 6e 20 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 6f 76 65 72 20 2b 2f 2d 49 6e 66 2c in.defined.behavior.over.+/-Inf,
7fd40 20 62 75 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 .but.the.value.of.the.result.is.
7fd60 75 6e 64 65 66 69 6e 65 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e undefined.</li>.............<li>
7fd80 54 72 65 61 74 20 74 68 65 20 73 69 67 6e 20 6f 66 20 61 20 7a 65 72 6f 20 61 72 67 75 6d 65 6e Treat.the.sign.of.a.zero.argumen
7fda0 74 20 6f 72 20 72 65 73 75 6c 74 20 61 73 20 69 6e 73 69 67 6e 69 66 69 63 61 6e 74 2e 3c 2f 6c t.or.result.as.insignificant.</l
7fdc0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 55 73 65 20 74 68 65 20 72 65 63 69 70 i>.............<li>Use.the.recip
7fde0 72 6f 63 61 6c 20 6f 66 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 72 61 74 68 65 72 20 74 68 61 6e rocal.of.an.argument.rather.than
7fe00 20 70 65 72 66 6f 72 6d 20 64 69 76 69 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 .perform.division.</li>.........
7fe20 20 20 20 20 3c 6c 69 3e 50 65 72 66 6f 72 6d 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63 ....<li>Perform.floating-point.c
7fe40 6f 6e 74 72 61 63 74 69 6f 6e 20 28 65 2e 67 2e 20 66 75 73 69 6e 67 20 61 20 6d 75 6c 74 69 70 ontraction.(e.g..fusing.a.multip
7fe60 6c 79 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 6e 20 61 64 64 69 74 69 6f 6e 20 69 6e 74 6f 20 ly.followed.by.an.addition.into.
7fe80 61 20 66 75 73 65 64 20 6d 75 6c 74 69 70 6c 79 2d 61 6e 64 2d 61 64 64 29 2e 3c 2f 6c 69 3e 0a a.fused.multiply-and-add).</li>.
7fea0 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 65 72 66 6f 72 6d 20 61 6c 67 65 62 72 61 69 ............<li>Perform.algebrai
7fec0 63 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 cally.equivalent.transformations
7fee0 20 74 68 61 74 20 6d 61 79 20 63 68 61 6e 67 65 20 72 65 73 75 6c 74 73 20 69 6e 20 66 6c 6f 61 .that.may.change.results.in.floa
7ff00 74 69 6e 67 20 70 6f 69 6e 74 20 28 65 2e 67 2e 20 72 65 61 73 73 6f 63 69 61 74 65 29 2e 3c 2f ting.point.(e.g..reassociate).</
7ff20 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 54 68 li>...........</ul>...........Th
7ff40 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 63 6f 64 65 3e 2d 66 66 61 73 74 is.is.equivalent.to.<code>-ffast
7ff60 2d 6d 61 74 68 3c 2f 63 6f 64 65 3e 20 69 6e 20 47 43 43 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c -math</code>.in.GCC..........</l
7ff80 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 i>.......</ul>.......<p>.......T
7ffa0 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6d 6f 64 65 20 69 73 20 69 6e 68 65 72 69 he.floating.point.mode.is.inheri
7ffc0 74 65 64 20 62 79 20 63 68 69 6c 64 20 73 63 6f 70 65 73 2c 20 61 6e 64 20 63 61 6e 20 62 65 20 ted.by.child.scopes,.and.can.be.
7ffe0 6f 76 65 72 72 69 64 64 65 6e 20 69 6e 20 61 6e 79 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 20 59 overridden.in.any.scope........Y
80000 6f 75 20 63 61 6e 20 73 65 74 20 74 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6d 6f ou.can.set.the.floating.point.mo
80020 64 65 20 69 6e 20 61 20 73 74 72 75 63 74 20 6f 72 20 6d 6f 64 75 6c 65 20 73 63 6f 70 65 20 62 de.in.a.struct.or.module.scope.b
80040 79 20 75 73 69 6e 67 20 61 20 63 6f 6d 70 74 69 6d 65 20 62 6c 6f 63 6b 2e 0a 20 20 20 20 20 20 y.using.a.comptime.block........
80060 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a </p>.......<p>See.also:</p><ul>.
80080 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 <li><a.href="#Floating-Point-Ope
800a0 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 69 6e 67 20 50 6f 69 6e 74 20 4f 70 65 72 61 74 69 6f rations">Floating.Point.Operatio
800c0 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 ns</a></li>.</ul>...............
800e0 20 3c 68 32 20 69 64 3d 22 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 22 3e 3c 61 20 68 72 .<h2.id="setRuntimeSafety"><a.hr
80100 65 66 3d 22 23 74 6f 63 2d 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 22 3e 40 73 65 74 52 ef="#toc-setRuntimeSafety">@setR
80120 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 untimeSafety</a>.<a.class="hdr".
80140 68 72 65 66 3d 22 23 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 22 3e c2 a7 3c 2f 61 3e 3c href="#setRuntimeSafety">..</a><
80160 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 /h2>........<pre><code.class="zi
80180 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 g"><span.class="tok-builtin">@se
801a0 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 73 70 61 6e 3e 28 73 61 66 65 74 79 5f 6f 6e 3a tRuntimeSafety</span>(safety_on:
801c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 .<span.class="tok-type">bool</sp
801e0 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 an>)</code></pre>.......<p>.....
80200 20 20 53 65 74 73 20 77 68 65 74 68 65 72 20 72 75 6e 74 69 6d 65 20 73 61 66 65 74 79 20 63 68 ..Sets.whether.runtime.safety.ch
80220 65 63 6b 73 20 61 72 65 20 65 6e 61 62 6c 65 64 20 66 6f 72 20 74 68 65 20 73 63 6f 70 65 20 74 ecks.are.enabled.for.the.scope.t
80240 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0a hat.contains.the.function.call..
80260 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ......</p>.......<p.class="file"
80280 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a >test.zig</p><pre><code.class="z
802a0 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 ig"><span.class="tok-kw">test</s
802c0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>.<span.class="tok-str">&quot
802e0 3b 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 ;@setRuntimeSafety&quot;</span>.
80300 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e {.....<span.class="tok-comment">
80320 2f 2f 20 54 68 65 20 62 75 69 6c 74 69 6e 20 61 70 70 6c 69 65 73 20 74 6f 20 74 68 65 20 73 63 //.The.builtin.applies.to.the.sc
80340 6f 70 65 20 74 68 61 74 20 69 74 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 2e 20 53 6f 20 68 65 72 ope.that.it.is.called.in..So.her
80360 65 2c 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c e,.integer.overflow</span>.....<
80380 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 77 69 6c 6c span.class="tok-comment">//.will
803a0 20 6e 6f 74 20 62 65 20 63 61 75 67 68 74 20 69 6e 20 52 65 6c 65 61 73 65 46 61 73 74 20 61 6e .not.be.caught.in.ReleaseFast.an
803c0 64 20 52 65 6c 65 61 73 65 53 6d 61 6c 6c 20 6d 6f 64 65 73 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 d.ReleaseSmall.modes:</span>....
803e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 76 61 .<span.class="tok-comment">//.va
80400 72 20 78 3a 20 75 38 20 3d 20 32 35 35 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 r.x:.u8.=.255;</span>.....<span.
80420 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 78 20 2b 3d 20 31 3b 20 2f class="tok-comment">//.x.+=.1;./
80440 2f 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 69 6e 20 52 65 6c 65 61 73 65 46 /.undefined.behavior.in.ReleaseF
80460 61 73 74 2f 52 65 6c 65 61 73 65 53 6d 61 6c 6c 20 6d 6f 64 65 73 2e 3c 2f 73 70 61 6e 3e 0a 20 ast/ReleaseSmall.modes.</span>..
80480 20 20 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f ...{.........<span.class="tok-co
804a0 6d 6d 65 6e 74 22 3e 2f 2f 20 48 6f 77 65 76 65 72 20 74 68 69 73 20 62 6c 6f 63 6b 20 68 61 73 mment">//.However.this.block.has
804c0 20 73 61 66 65 74 79 20 65 6e 61 62 6c 65 64 2c 20 73 6f 20 73 61 66 65 74 79 20 63 68 65 63 6b .safety.enabled,.so.safety.check
804e0 73 20 68 61 70 70 65 6e 20 68 65 72 65 2c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 s.happen.here,</span>.........<s
80500 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 65 76 65 6e 20 pan.class="tok-comment">//.even.
80520 69 6e 20 52 65 6c 65 61 73 65 46 61 73 74 20 61 6e 64 20 52 65 6c 65 61 73 65 53 6d 61 6c 6c 20 in.ReleaseFast.and.ReleaseSmall.
80540 6d 6f 64 65 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 modes.</span>.........<span.clas
80560 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 s="tok-builtin">@setRuntimeSafet
80580 79 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e y</span>(<span.class="tok-null">
805a0 74 72 75 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 true</span>);.........<span.clas
805c0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 s="tok-kw">var</span>.x:.<span.c
805e0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 lass="tok-type">u8</span>.=.<spa
80600 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 3b n.class="tok-number">255</span>;
80620 0a 20 20 20 20 20 20 20 20 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e .........x.+=.<span.class="tok-n
80640 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 umber">1</span>;..........{.....
80660 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 ........<span.class="tok-comment
80680 22 3e 2f 2f 20 54 68 65 20 76 61 6c 75 65 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e ">//.The.value.can.be.overridden
806a0 20 61 74 20 61 6e 79 20 73 63 6f 70 65 2e 20 53 6f 20 68 65 72 65 20 69 6e 74 65 67 65 72 20 6f .at.any.scope..So.here.integer.o
806c0 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e verflow</span>.............<span
806e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 77 6f 75 6c 64 20 6e 6f .class="tok-comment">//.would.no
80700 74 20 62 65 20 63 61 75 67 68 74 20 69 6e 20 61 6e 79 20 62 75 69 6c 64 20 6d 6f 64 65 2e 3c 2f t.be.caught.in.any.build.mode.</
80720 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>.............<span.class="t
80740 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 73 ok-builtin">@setRuntimeSafety</s
80760 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 pan>(<span.class="tok-null">fals
80780 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 e</span>);.............<span.cla
807a0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 76 61 72 20 78 3a 20 75 38 20 3d 20 ss="tok-comment">//.var.x:.u8.=.
807c0 32 35 35 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 255;</span>.............<span.cl
807e0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 78 20 2b 3d 20 31 3b 20 2f 2f 20 ass="tok-comment">//.x.+=.1;.//.
80800 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 69 6e 20 61 6c 6c 20 62 75 69 6c 64 20 undefined.behavior.in.all.build.
80820 6d 6f 64 65 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 3c modes.</span>.........}.....}.}<
80840 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 /code></pre><pre><code.class="sh
80860 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 20 2d 2d 72 65 6c 65 61 ell">$.zig.test.test.zig.--relea
80880 73 65 2d 66 61 73 74 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 40 73 65 74 52 75 6e 74 69 se-fast.1/1.test.&quot;@setRunti
808a0 6d 65 53 61 66 65 74 79 26 71 75 6f 74 3b 2e 2e 2e 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f meSafety&quot;...integer.overflo
808c0 77 0a 0a 54 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 w..Tests.failed..Use.the.followi
808e0 6e 67 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c ng.command.to.reproduce.the.fail
80900 75 72 65 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 ure:./home/andy/dev/zig/docgen_t
80920 6d 70 2f 74 65 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e mp/test.</code></pre>........<p>
80940 4e 6f 74 65 3a 20 69 74 20 69 73 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 Note:.it.is.<a.href="https://git
80960 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 39 37 38 22 3e hub.com/ziglang/zig/issues/978">
80980 70 6c 61 6e 6e 65 64 3c 2f 61 3e 20 74 6f 20 72 65 70 6c 61 63 65 0a 20 20 20 20 20 20 3c 63 6f planned</a>.to.replace.......<co
809a0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
809c0 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 73 70 61 6e builtin">@setRuntimeSafety</span
809e0 3e 3c 2f 63 6f 64 65 3e 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 6f 70 74 69 6d 69 7a 65 46 6f 72 ></code>.with.<code>@optimizeFor
80a00 3c 2f 63 6f 64 65 3e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 </code></p>................<h2.i
80a20 64 3d 22 73 68 6c 45 78 61 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 68 6c 45 78 d="shlExact"><a.href="#toc-shlEx
80a40 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 act">@shlExact</a>.<a.class="hdr
80a60 22 20 68 72 65 66 3d 22 23 73 68 6c 45 78 61 63 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a ".href="#shlExact">..</a></h2>..
80a80 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
80aa0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 68 6c 45 78 61 63 74 an.class="tok-builtin">@shlExact
80ac0 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 54 2c 20 73 68 69 66 74 5f 61 6d 74 3a 20 4c 6f 67 </span>(value:.T,.shift_amt:.Log
80ae0 32 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 2T).T</code></pre>.......<p>....
80b00 20 20 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 6c 65 66 74 20 73 68 69 66 74 20 6f 70 65 72 61 ...Performs.the.left.shift.opera
80b20 74 69 6f 6e 20 28 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 26 6c 74 3b 26 6c 74 3b tion.(<code.class="zig">&lt;&lt;
80b40 3c 2f 63 6f 64 65 3e 29 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 0a 20 20 20 20 </code>)..Caller.guarantees.....
80b60 20 20 74 68 61 74 20 74 68 65 20 73 68 69 66 74 20 77 69 6c 6c 20 6e 6f 74 20 73 68 69 66 74 20 ..that.the.shift.will.not.shift.
80b80 61 6e 79 20 31 20 62 69 74 73 20 6f 75 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 any.1.bits.out........</p>......
80ba0 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 .<p>.......The.type.of.<code.cla
80bc0 73 73 3d 22 7a 69 67 22 3e 73 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 ss="zig">shift_amt</code>.is.an.
80be0 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 unsigned.integer.with.<code.clas
80c00 73 3d 22 7a 69 67 22 3e 6c 6f 67 32 28 54 2e 62 69 74 5f 63 6f 75 6e 74 29 3c 2f 63 6f 64 65 3e s="zig">log2(T.bit_count)</code>
80c20 20 62 69 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 20 62 65 63 .bits................This.is.bec
80c40 61 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 68 69 66 74 5f 61 6d 74 ause.<code.class="zig">shift_amt
80c60 20 26 67 74 3b 3d 20 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 .&gt;=.T.bit_count</code>.is.und
80c80 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 efined.behavior........</p>.....
80ca0 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 ..<p>See.also:</p><ul>.<li><a.hr
80cc0 65 66 3d 22 23 73 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 ef="#shrExact">@shrExact</a></li
80ce0 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 >.<li><a.href="#shlWithOverflow"
80d00 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e >@shlWithOverflow</a></li>.</ul>
80d20 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 68 6c 57 69 74 68 4f ................<h2.id="shlWithO
80d40 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 68 6c 57 69 74 68 4f 76 verflow"><a.href="#toc-shlWithOv
80d60 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 3c 61 20 erflow">@shlWithOverflow</a>.<a.
80d80 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 65 72 66 6c class="hdr".href="#shlWithOverfl
80da0 6f 77 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 ow">..</a></h2>........<pre><cod
80dc0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
80de0 75 69 6c 74 69 6e 22 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 uiltin">@shlWithOverflow</span>(
80e00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 <span.class="tok-kw">comptime</s
80e20 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 pan>.T:.<span.class="tok-type">t
80e40 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a 20 54 2c 20 73 68 69 66 74 5f 61 6d 74 3a 20 4c 6f 67 ype</span>,.a:.T,.shift_amt:.Log
80e60 32 54 2c 20 72 65 73 75 6c 74 3a 20 2a 54 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2T,.result:.*T).<span.class="tok
80e80 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a -type">bool</span></code></pre>.
80ea0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 65 20 63 ......<p>.......Performs.<code.c
80ec0 6c 61 73 73 3d 22 7a 69 67 22 3e 72 65 73 75 6c 74 2e 2a 20 3d 20 61 20 26 6c 74 3b 26 6c 74 3b lass="zig">result.*.=.a.&lt;&lt;
80ee0 20 62 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 .b</code>..If.overflow.or.underf
80f00 6c 6f 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 6f low.occurs,..................sto
80f20 72 65 73 20 74 68 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f 64 65 res.the.overflowed.bits.in.<code
80f40 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 .class="zig">result</code>.and.r
80f60 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 eturns.<code.class="zig"><span.c
80f80 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 lass="tok-null">true</span></cod
80fa0 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 e>...........................If.
80fc0 6e 6f 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c no.overflow.or.underflow.occurs,
80fe0 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e .returns.<code.class="zig"><span
81000 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f .class="tok-null">false</span></
81020 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 code>........</p>.......<p>.....
81040 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ..The.type.of.<code.class="zig">
81060 73 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 shift_amt</code>.is.an.unsigned.
81080 69 6e 74 65 67 65 72 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6c integer.with.<code.class="zig">l
810a0 6f 67 32 28 54 2e 62 69 74 5f 63 6f 75 6e 74 29 3c 2f 63 6f 64 65 3e 20 62 69 74 73 2e 0a 20 20 og2(T.bit_count)</code>.bits....
810c0 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 20 62 65 63 61 75 73 65 20 3c 63 6f 64 ............This.is.because.<cod
810e0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 68 69 66 74 5f 61 6d 74 20 26 67 74 3b 3d 20 54 2e e.class="zig">shift_amt.&gt;=.T.
81100 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 bit_count</code>.is.undefined.be
81120 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 havior........</p>.......<p>See.
81140 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 45 also:</p><ul>.<li><a.href="#shlE
81160 78 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 xact">@shlExact</a></li>.<li><a.
81180 68 72 65 66 3d 22 23 73 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 3c 2f href="#shrExact">@shrExact</a></
811a0 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d li>.</ul>................<h2.id=
811c0 22 73 68 72 45 78 61 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 68 72 45 78 61 63 "shrExact"><a.href="#toc-shrExac
811e0 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 t">@shrExact</a>.<a.class="hdr".
81200 68 72 65 66 3d 22 23 73 68 72 45 78 61 63 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 href="#shrExact">..</a></h2>....
81220 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
81240 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 68 72 45 78 61 63 74 3c 2f .class="tok-builtin">@shrExact</
81260 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 54 2c 20 73 68 69 66 74 5f 61 6d 74 3a 20 4c 6f 67 32 54 span>(value:.T,.shift_amt:.Log2T
81280 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 ).T</code></pre>.......<p>......
812a0 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 72 69 67 68 74 20 73 68 69 66 74 20 6f 70 65 72 61 74 .Performs.the.right.shift.operat
812c0 69 6f 6e 20 28 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 26 67 74 3b 26 67 74 3b 3c ion.(<code.class="zig">&gt;&gt;<
812e0 2f 63 6f 64 65 3e 29 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 0a 20 20 20 20 20 /code>)..Caller.guarantees......
81300 20 74 68 61 74 20 74 68 65 20 73 68 69 66 74 20 77 69 6c 6c 20 6e 6f 74 20 73 68 69 66 74 20 61 .that.the.shift.will.not.shift.a
81320 6e 79 20 31 20 62 69 74 73 20 6f 75 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 ny.1.bits.out........</p>.......
81340 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 <p>.......The.type.of.<code.clas
81360 73 3d 22 7a 69 67 22 3e 73 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 75 s="zig">shift_amt</code>.is.an.u
81380 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 73 nsigned.integer.with.<code.class
813a0 3d 22 7a 69 67 22 3e 6c 6f 67 32 28 54 2e 62 69 74 5f 63 6f 75 6e 74 29 3c 2f 63 6f 64 65 3e 20 ="zig">log2(T.bit_count)</code>.
813c0 62 69 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 20 62 65 63 61 bits................This.is.beca
813e0 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 68 69 66 74 5f 61 6d 74 20 use.<code.class="zig">shift_amt.
81400 26 67 74 3b 3d 20 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 65 &gt;=.T.bit_count</code>.is.unde
81420 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 fined.behavior........</p>......
81440 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 .<p>See.also:</p><ul>.<li><a.hre
81460 66 3d 22 23 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e f="#shlExact">@shlExact</a></li>
81480 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e .<li><a.href="#shlWithOverflow">
814a0 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a @shlWithOverflow</a></li>.</ul>.
814c0 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 68 75 66 66 6c 65 22 3e ...............<h2.id="shuffle">
814e0 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 68 75 66 66 6c 65 22 3e 40 73 68 75 66 66 6c 65 3c <a.href="#toc-shuffle">@shuffle<
81500 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 68 75 66 66 6c /a>.<a.class="hdr".href="#shuffl
81520 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 e">..</a></h2>........<pre><code
81540 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
81560 69 6c 74 69 6e 22 3e 40 73 68 75 66 66 6c 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 iltin">@shuffle</span>(<span.cla
81580 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 45 3a 20 3c ss="tok-kw">comptime</span>.E:.<
815a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e span.class="tok-type">type</span
815c0 3e 2c 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e >,.a:.<span.class="tok-builtin">
815e0 40 56 65 63 74 6f 72 3c 2f 73 70 61 6e 3e 28 61 5f 6c 65 6e 2c 20 45 29 2c 20 62 3a 20 3c 73 70 @Vector</span>(a_len,.E),.b:.<sp
81600 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 56 65 63 74 6f 72 3c 2f an.class="tok-builtin">@Vector</
81620 73 70 61 6e 3e 28 62 5f 6c 65 6e 2c 20 45 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f span>(b_len,.E),.<span.class="to
81640 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6d 61 73 6b 3a 20 3c 73 70 61 k-kw">comptime</span>.mask:.<spa
81660 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 56 65 63 74 6f 72 3c 2f 73 n.class="tok-builtin">@Vector</s
81680 70 61 6e 3e 28 6d 61 73 6b 5f 6c 65 6e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pan>(mask_len,.<span.class="tok-
816a0 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 type">i32</span>)).<span.class="
816c0 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 56 65 63 74 6f 72 3c 2f 73 70 61 6e 3e 28 6d 61 73 6b tok-builtin">@Vector</span>(mask
816e0 5f 6c 65 6e 2c 20 45 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a _len,.E)</code></pre>.......<p>.
81700 20 20 20 20 20 20 43 6f 6e 73 74 72 75 63 74 73 20 61 20 6e 65 77 20 3c 61 20 68 72 65 66 3d 22 ......Constructs.a.new.<a.href="
81720 23 56 65 63 74 6f 72 73 22 3e 76 65 63 74 6f 72 3c 2f 61 3e 20 62 79 20 73 65 6c 65 63 74 69 6e #Vectors">vector</a>.by.selectin
81740 67 20 65 6c 65 6d 65 6e 74 73 20 66 72 6f 6d 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 g.elements.from.<code.class="zig
81760 22 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 ">a</code>.and.......<code.class
81780 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 20 62 61 73 65 64 20 6f 6e 20 3c 63 6f 64 65 20 63 ="zig">b</code>.based.on.<code.c
817a0 6c 61 73 73 3d 22 7a 69 67 22 3e 6d 61 73 6b 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f lass="zig">mask</code>........</
817c0 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 p>.......<p>.......Each.element.
817e0 69 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 6d 61 73 6b 3c 2f 63 6f 64 65 3e in.<code.class="zig">mask</code>
81800 20 73 65 6c 65 63 74 73 20 61 6e 20 65 6c 65 6d 65 6e 74 20 66 72 6f 6d 20 65 69 74 68 65 72 20 .selects.an.element.from.either.
81820 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f 64 65 3e 20 6f 72 0a 20 20 <code.class="zig">a</code>.or...
81840 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 2e 20 ....<code.class="zig">b</code>..
81860 50 6f 73 69 74 69 76 65 20 6e 75 6d 62 65 72 73 20 73 65 6c 65 63 74 20 66 72 6f 6d 20 3c 63 6f Positive.numbers.select.from.<co
81880 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f 64 65 3e 20 73 74 61 72 74 69 6e 67 de.class="zig">a</code>.starting
818a0 20 61 74 20 30 2e 0a 20 20 20 20 20 20 4e 65 67 61 74 69 76 65 20 76 61 6c 75 65 73 20 73 65 6c .at.0........Negative.values.sel
818c0 65 63 74 20 66 72 6f 6d 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f ect.from.<code.class="zig">b</co
818e0 64 65 3e 2c 20 73 74 61 72 74 69 6e 67 20 61 74 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 de>,.starting.at.<code.class="zi
81900 67 22 3e 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f g">-<span.class="tok-number">1</
81920 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 67 6f 69 6e 67 20 64 6f 77 6e 2e 0a 20 20 20 span></code>.and.going.down.....
81940 20 20 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 74 68 65 20 ...It.is.recommended.to.use.the.
81960 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 7e 3c 2f 63 6f 64 65 3e 20 6f 70 65 72 61 <code.class="zig">~</code>.opera
81980 74 6f 72 20 66 72 6f 6d 20 69 6e 64 65 78 65 73 20 66 72 6f 6d 20 3c 63 6f 64 65 20 63 6c 61 73 tor.from.indexes.from.<code.clas
819a0 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 73 6f 20 74 68 61 74 20 62 s="zig">b</code>.......so.that.b
819c0 6f 74 68 20 69 6e 64 65 78 65 73 20 63 61 6e 20 73 74 61 72 74 20 66 72 6f 6d 20 3c 63 6f 64 65 oth.indexes.can.start.from.<code
819e0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .class="zig"><span.class="tok-nu
81a00 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 28 69 2e 65 2e 20 3c 63 6f 64 mber">0</span></code>.(i.e..<cod
81a20 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 7e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d e.class="zig">~<span.class="tok-
81a40 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f type">i32</span>(<span.class="to
81a60 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 20 69 73 0a 20 20 k-number">0</span>)</code>.is...
81a80 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 3c 73 70 61 6e 20 63 6c 61 ....<code.class="zig">-<span.cla
81aa0 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 ss="tok-number">1</span></code>)
81ac0 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 ........</p>.......<p>.......For
81ae0 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 .each.element.of.<code.class="zi
81b00 67 22 3e 6d 61 73 6b 3c 2f 63 6f 64 65 3e 2c 20 69 66 20 69 74 20 6f 72 20 74 68 65 20 73 65 6c g">mask</code>,.if.it.or.the.sel
81b20 65 63 74 65 64 20 76 61 6c 75 65 20 66 72 6f 6d 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 ected.value.from.......<code.cla
81b40 73 73 3d 22 7a 69 67 22 3e 61 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 ss="zig">a</code>.or.<code.class
81b60 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ="zig">b</code>.is.<code.class="
81b80 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 zig"><span.class="tok-null">unde
81ba0 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 74 68 65 6e 20 fined</span></code>,.......then.
81bc0 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 65 6c 65 6d 65 6e 74 20 69 73 20 3c 63 6f 64 65 20 63 the.resulting.element.is.<code.c
81be0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c lass="zig"><span.class="tok-null
81c00 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 ">undefined</span></code>.......
81c20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 .</p>.......<p>.......<code.clas
81c40 73 3d 22 7a 69 67 22 3e 61 5f 6c 65 6e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 s="zig">a_len</code>.and.<code.c
81c60 6c 61 73 73 3d 22 7a 69 67 22 3e 62 5f 6c 65 6e 3c 2f 63 6f 64 65 3e 20 6d 61 79 20 64 69 66 66 lass="zig">b_len</code>.may.diff
81c80 65 72 20 69 6e 20 6c 65 6e 67 74 68 2e 20 4f 75 74 2d 6f 66 2d 62 6f 75 6e 64 73 20 65 6c 65 6d er.in.length..Out-of-bounds.elem
81ca0 65 6e 74 0a 20 20 20 20 20 20 69 6e 64 65 78 65 73 20 69 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 ent.......indexes.in.<code.class
81cc0 3d 22 7a 69 67 22 3e 6d 61 73 6b 3c 2f 63 6f 64 65 3e 20 72 65 73 75 6c 74 20 69 6e 20 63 6f 6d ="zig">mask</code>.result.in.com
81ce0 70 69 6c 65 20 65 72 72 6f 72 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 pile.errors........</p>.......<p
81d00 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 3c 2f >.......If.<code.class="zig">a</
81d20 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 62 3c 2f 63 6f code>.or.<code.class="zig">b</co
81d40 64 65 3e 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 de>.is.<code.class="zig"><span.c
81d60 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e lass="tok-null">undefined</span>
81d80 3c 2f 63 6f 64 65 3e 2c 20 69 74 0a 20 20 20 20 20 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 </code>,.it.......is.equivalent.
81da0 74 6f 20 61 20 76 65 63 74 6f 72 20 6f 66 20 61 6c 6c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 to.a.vector.of.all.<code.class="
81dc0 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 zig"><span.class="tok-null">unde
81de0 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 69 74 68 20 74 68 65 20 73 61 6d fined</span></code>.with.the.sam
81e00 65 20 6c 65 6e 67 74 68 20 61 73 20 74 68 65 20 6f 74 68 65 72 20 76 65 63 74 6f 72 2e 0a 20 20 e.length.as.the.other.vector....
81e20 20 20 20 20 49 66 20 62 6f 74 68 20 76 65 63 74 6f 72 73 20 61 72 65 20 3c 63 6f 64 65 20 63 6c ....If.both.vectors.are.<code.cl
81e40 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 ass="zig"><span.class="tok-null"
81e60 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 >undefined</span></code>,.<code.
81e80 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 class="zig"><span.class="tok-bui
81ea0 6c 74 69 6e 22 3e 40 73 68 75 66 66 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 74 ltin">@shuffle</span></code>.ret
81ec0 75 72 6e 73 0a 20 20 20 20 20 20 61 20 76 65 63 74 6f 72 20 77 69 74 68 20 61 6c 6c 20 65 6c 65 urns.......a.vector.with.all.ele
81ee0 6d 65 6e 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ments.<code.class="zig"><span.cl
81f00 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 3c ass="tok-null">undefined</span><
81f20 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 /code>........</p>.......<p>....
81f40 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 45 3c 2f 63 6f 64 65 3e 20 6d 75 ...<code.class="zig">E</code>.mu
81f60 73 74 20 62 65 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 69 6e 74 st.be.an.<a.href="#Integers">int
81f80 65 67 65 72 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 66 6c 6f 61 eger</a>,.<a.href="#Floats">floa
81fa0 74 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 t</a>,.......<a.href="#Pointers"
81fc0 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 2c 20 6f 72 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 >pointer</a>,.or.<code.class="zi
81fe0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f g"><span.class="tok-type">bool</
82000 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 6d 61 73 6b 20 6d 61 79 20 62 65 20 61 6e span></code>..The.mask.may.be.an
82020 79 20 76 65 63 74 6f 72 20 6c 65 6e 67 74 68 2c 20 61 6e 64 20 69 74 73 0a 20 20 20 20 20 20 6c y.vector.length,.and.its.......l
82040 65 6e 67 74 68 20 64 65 74 65 72 6d 69 6e 65 73 20 74 68 65 20 72 65 73 75 6c 74 20 6c 65 6e 67 ength.determines.the.result.leng
82060 74 68 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f th........</p>.......<p>See.also
82080 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 49 4d 44 22 3e 53 49 :</p><ul>.<li><a.href="#SIMD">SI
820a0 4d 44 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 MD</a></li>.</ul>...............
820c0 20 3c 68 32 20 69 64 3d 22 73 69 7a 65 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 .<h2.id="sizeOf"><a.href="#toc-s
820e0 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 izeOf">@sizeOf</a>.<a.class="hdr
82100 22 20 68 72 65 66 3d 22 23 73 69 7a 65 4f 66 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 ".href="#sizeOf">..</a></h2>....
82120 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
82140 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 3c 2f 73 70 .class="tok-builtin">@sizeOf</sp
82160 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d an>(<span.class="tok-kw">comptim
82180 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 e</span>.T:.<span.class="tok-typ
821a0 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e">type</span>).<span.class="tok
821c0 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 -type">comptime_int</span></code
821e0 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e ></pre>.......<p>.......This.fun
82200 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 ction.returns.the.number.of.byte
82220 73 20 69 74 20 74 61 6b 65 73 20 74 6f 20 73 74 6f 72 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d s.it.takes.to.store.<code.class=
82240 22 7a 69 67 22 3e 54 3c 2f 63 6f 64 65 3e 20 69 6e 20 6d 65 6d 6f 72 79 2e 0a 20 20 20 20 20 20 "zig">T</code>.in.memory........
82260 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 74 61 72 67 65 74 2d 73 70 65 63 69 66 69 63 20 The.result.is.a.target-specific.
82280 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 compile.time.constant........</p
822a0 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 73 69 7a 65 20 6d 61 79 20 >.......<p>.......This.size.may.
822c0 63 6f 6e 74 61 69 6e 20 70 61 64 64 69 6e 67 20 62 79 74 65 73 2e 20 49 66 20 74 68 65 72 65 20 contain.padding.bytes..If.there.
822e0 77 65 72 65 20 74 77 6f 20 63 6f 6e 73 65 63 75 74 69 76 65 20 54 20 69 6e 20 6d 65 6d 6f 72 79 were.two.consecutive.T.in.memory
82300 2c 20 74 68 69 73 20 77 6f 75 6c 64 20 62 65 20 74 68 65 20 6f 66 66 73 65 74 0a 20 20 20 20 20 ,.this.would.be.the.offset......
82320 20 69 6e 20 62 79 74 65 73 20 62 65 74 77 65 65 6e 20 65 6c 65 6d 65 6e 74 20 61 74 20 69 6e 64 .in.bytes.between.element.at.ind
82340 65 78 20 30 20 61 6e 64 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 61 74 20 69 6e 64 65 78 20 31 2e ex.0.and.the.element.at.index.1.
82360 20 46 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 69 6e 74 65 67 65 72 .For.<a.href="#Integers">integer
82380 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 63 6f 6e 73 69 64 65 72 20 77 68 65 74 68 65 72 20 79 6f 75 </a>,.......consider.whether.you
823a0 20 77 61 6e 74 20 74 6f 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .want.to.use.<code.class="zig"><
823c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 7a 65 4f 66 span.class="tok-builtin">@sizeOf
823e0 3c 2f 73 70 61 6e 3e 28 54 29 3c 2f 63 6f 64 65 3e 20 6f 72 0a 20 20 20 20 20 20 3c 63 6f 64 65 </span>(T)</code>.or.......<code
82400 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
82420 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 54 29 2e 49 6e 74 2e 62 iltin">@typeInfo</span>(T).Int.b
82440 69 74 73 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e its</code>........</p>.......<p>
82460 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 65 61 73 75 72 65 73 20 74 68 .......This.function.measures.th
82480 65 20 73 69 7a 65 20 61 74 20 72 75 6e 74 69 6d 65 2e 20 46 6f 72 20 74 79 70 65 73 20 74 68 61 e.size.at.runtime..For.types.tha
824a0 74 20 61 72 65 20 64 69 73 61 6c 6c 6f 77 65 64 20 61 74 20 72 75 6e 74 69 6d 65 2c 20 73 75 63 t.are.disallowed.at.runtime,.suc
824c0 68 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 h.as.......<code.class="zig"><sp
824e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 an.class="tok-type">comptime_int
82500 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 </span></code>.and.<code.class="
82520 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 zig"><span.class="tok-type">type
82540 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 3c 63 </span></code>,.the.result.is.<c
82560 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
82580 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 -number">0</span></code>........
825a0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a </p>.......<p>See.also:</p><ul>.
825c0 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 79 70 65 49 6e 66 6f 22 3e 40 74 79 70 65 49 6e 66 <li><a.href="#typeInfo">@typeInf
825e0 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 o</a></li>.</ul>................
82600 3c 68 32 20 69 64 3d 22 73 6c 69 63 65 54 6f 42 79 74 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 <h2.id="sliceToBytes"><a.href="#
82620 74 6f 63 2d 73 6c 69 63 65 54 6f 42 79 74 65 73 22 3e 40 73 6c 69 63 65 54 6f 42 79 74 65 73 3c toc-sliceToBytes">@sliceToBytes<
82640 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 6c 69 63 65 54 /a>.<a.class="hdr".href="#sliceT
82660 6f 42 79 74 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e oBytes">..</a></h2>........<pre>
82680 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
826a0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 6c 69 63 65 54 6f 42 79 74 65 73 3c 2f 73 70 61 6e 3e ok-builtin">@sliceToBytes</span>
826c0 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 (value:.<span.class="tok-kw">var
826e0 3c 2f 73 70 61 6e 3e 29 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>).[]<span.class="tok-type
82700 22 3e 75 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c ">u8</span></code></pre>.......<
82720 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 20 73 6c 69 63 65 20 6f 72 20 61 72 72 p>.......Converts.a.slice.or.arr
82740 61 79 20 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ay.to.a.slice.of.<code.class="zi
82760 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 g"><span.class="tok-type">u8</sp
82780 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 72 65 73 75 6c 74 69 6e 67 20 73 6c 69 63 65 20 an></code>..The.resulting.slice.
827a0 68 61 73 20 74 68 65 20 73 61 6d 65 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 has.the.same.......<a.href="#Poi
827c0 6e 74 65 72 73 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 20 70 72 6f 70 65 72 74 69 65 73 20 61 73 nters">pointer</a>.properties.as
827e0 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 .the.parameter........</p>......
82800 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 70 6c 61 74 22 3e 3c 61 20 68 72 65 66 3d .........<h2.id="splat"><a.href=
82820 22 23 74 6f 63 2d 73 70 6c 61 74 22 3e 40 73 70 6c 61 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 "#toc-splat">@splat</a>.<a.class
82840 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 70 6c 61 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e ="hdr".href="#splat">..</a></h2>
82860 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ........<pre><code.class="zig"><
82880 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 70 6c 61 74 3c span.class="tok-builtin">@splat<
828a0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 /span>(<span.class="tok-kw">comp
828c0 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6c 65 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f time</span>.len:.<span.class="to
828e0 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 73 63 61 6c 61 72 3a 20 3c 73 70 61 k-type">u32</span>,.scalar:.<spa
82900 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 n.class="tok-kw">var</span>).<sp
82920 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 56 65 63 74 6f 72 3c 2f an.class="tok-builtin">@Vector</
82940 73 70 61 6e 3e 28 6c 65 6e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c span>(len,.<span.class="tok-buil
82960 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 73 63 61 6c 61 72 29 29 3c 2f 63 6f tin">@typeOf</span>(scalar))</co
82980 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 72 6f 64 75 63 de></pre>.......<p>.......Produc
829a0 65 73 20 61 20 76 65 63 74 6f 72 20 6f 66 20 6c 65 6e 67 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 es.a.vector.of.length.<code.clas
829c0 73 3d 22 7a 69 67 22 3e 6c 65 6e 3c 2f 63 6f 64 65 3e 20 77 68 65 72 65 20 65 61 63 68 20 65 6c s="zig">len</code>.where.each.el
829e0 65 6d 65 6e 74 20 69 73 20 74 68 65 20 76 61 6c 75 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 ement.is.the.value.......<code.c
82a00 6c 61 73 73 3d 22 7a 69 67 22 3e 73 63 61 6c 61 72 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 lass="zig">scalar</code>:.......
82a20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e </p>.......<p.class="file">test.
82a40 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
82a60 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
82a80 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e std.=.<span.class="tok-builtin">
82aa0 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d @import</span>(<span.class="tok-
82ac0 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 str">&quot;std&quot;</span>);.<s
82ae0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
82b00 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 assert.=.std.debug.assert;..<spa
82b20 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 n.class="tok-kw">test</span>.<sp
82b40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 65 63 74 6f 72 20 an.class="tok-str">&quot;vector.
82b60 40 73 70 6c 61 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 @splat&quot;</span>.{.....<span.
82b80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 63 61 6c class="tok-kw">const</span>.scal
82ba0 61 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f ar:.<span.class="tok-type">u32</
82bc0 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 span>.=.<span.class="tok-number"
82be0 3e 35 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >5</span>;.....<span.class="tok-
82c00 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 kw">const</span>.result.=.<span.
82c20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 70 6c 61 74 3c 2f 73 70 61 6e class="tok-builtin">@splat</span
82c40 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 >(<span.class="tok-number">4</sp
82c60 61 6e 3e 2c 20 73 63 61 6c 61 72 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 an>,.scalar);.....<span.class="t
82c80 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 28 3c 73 ok-kw">comptime</span>.assert(<s
82ca0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c pan.class="tok-builtin">@typeOf<
82cc0 2f 73 70 61 6e 3e 28 72 65 73 75 6c 74 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 /span>(result).==.<span.class="t
82ce0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 56 65 63 74 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ok-builtin">@Vector</span>(<span
82d00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 .class="tok-number">4</span>,.<s
82d20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 pan.class="tok-type">u32</span>)
82d40 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 );.....assert(std.mem.eql(<span.
82d60 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 28 5b 3c class="tok-type">u32</span>,.([<
82d80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e span.class="tok-number">4</span>
82da0 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 ]<span.class="tok-type">u32</spa
82dc0 6e 3e 29 28 72 65 73 75 6c 74 29 2c 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b n>)(result),.[_]<span.class="tok
82de0 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -type">u32</span>{.<span.class="
82e00 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 tok-number">5</span>,.<span.clas
82e20 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 s="tok-number">5</span>,.<span.c
82e40 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 lass="tok-number">5</span>,.<spa
82e60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 20 7d 29 n.class="tok-number">5</span>.})
82e80 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 );.}</code></pre><pre><code.clas
82ea0 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f s="shell">$.zig.test.test.zig.1/
82ec0 31 20 74 65 73 74 20 26 71 75 6f 74 3b 76 65 63 74 6f 72 20 40 73 70 6c 61 74 26 71 75 6f 74 3b 1.test.&quot;vector.@splat&quot;
82ee0 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c ...OK.All.tests.passed..</code><
82f00 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 /pre>........<p>.......<code.cla
82f20 73 73 3d 22 7a 69 67 22 3e 73 63 61 6c 61 72 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 ss="zig">scalar</code>.must.be.a
82f40 6e 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 69 6e 74 65 67 65 72 3c 2f 61 n.<a.href="#Integers">integer</a
82f60 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f >,.<a.href="#Primitive-Types">bo
82f80 6f 6c 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e ol</a>,.......<a.href="#Floats">
82fa0 66 6c 6f 61 74 3c 2f 61 3e 2c 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 float</a>,.or.<a.href="#Pointers
82fc0 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 ">pointer</a>........</p>.......
82fe0 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 <p>See.also:</p><ul>.<li><a.href
83000 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 ="#Vectors">Vectors</a></li>.<li
83020 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 75 66 66 6c 65 22 3e 40 73 68 75 66 66 6c 65 3c 2f 61 3e ><a.href="#shuffle">@shuffle</a>
83040 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 </li>.</ul>................<h2.i
83060 64 3d 22 73 71 72 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 71 72 74 22 3e 40 73 71 d="sqrt"><a.href="#toc-sqrt">@sq
83080 72 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 73 71 72 rt</a>.<a.class="hdr".href="#sqr
830a0 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 t">..</a></h2>........<pre><code
830c0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
830e0 69 6c 74 69 6e 22 3e 40 73 71 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d iltin">@sqrt</span>(<span.class=
83100 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 "tok-kw">comptime</span>.T:.<spa
83120 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 n.class="tok-type">type</span>,.
83140 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c value:.T).T</code></pre>.......<
83160 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 73 71 75 61 72 65 20 72 6f 6f p>.......Performs.the.square.roo
83180 74 20 6f 66 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 20 55 73 t.of.a.floating.point.number..Us
831a0 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 74 72 75 63 74 es.a.dedicated.hardware.instruct
831c0 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 53 75 70 70 6f 72 ion.......when.available..Suppor
831e0 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 ts.<code.class="zig"><span.class
83200 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 31 36 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c ="tok-type">f16</span></code>,.<
83220 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
83240 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 k-type">f32</span></code>,.<code
83260 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 .class="zig"><span.class="tok-ty
83280 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 pe">f64</span></code>,.and.<code
832a0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 .class="zig"><span.class="tok-ty
832c0 70 65 22 3e 66 31 32 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 73 20 77 65 6c 6c 20 pe">f128</span></code>,.as.well.
832e0 61 73 20 76 65 63 74 6f 72 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 as.vectors........</p>..........
83300 20 20 20 20 3c 68 32 20 69 64 3d 22 73 69 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 73 ....<h2.id="sin"><a.href="#toc-s
83320 69 6e 22 3e 40 73 69 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 in">@sin</a>.<a.class="hdr".href
83340 3d 22 23 73 69 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e ="#sin">..</a></h2>........<pre>
83360 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
83380 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 69 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c ok-builtin">@sin</span>(<span.cl
833a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 ass="tok-kw">comptime</span>.T:.
833c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 <span.class="tok-type">type</spa
833e0 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 n>,.value:.T).T</code></pre>....
83400 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 69 6e 65 20 74 72 69 67 6f 6d 65 74 72 69 63 20 66 75 ...<p>.......Sine.trigometric.fu
83420 6e 63 74 69 6f 6e 20 6f 6e 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 nction.on.a.floating.point.numbe
83440 72 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 r..Uses.a.dedicated.hardware.ins
83460 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 43 truction.......when.available..C
83480 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a urrently.supports.<code.class="z
834a0 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f ig"><span.class="tok-type">f32</
834c0 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 span></code>.and.<code.class="zi
834e0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 g"><span.class="tok-type">f64</s
83500 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 pan></code>........</p>.........
83520 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6f 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d .....<h2.id="cos"><a.href="#toc-
83540 63 6f 73 22 3e 40 63 6f 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 cos">@cos</a>.<a.class="hdr".hre
83560 66 3d 22 23 63 6f 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 f="#cos">..</a></h2>........<pre
83580 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
835a0 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 tok-builtin">@cos</span>(<span.c
835c0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a lass="tok-kw">comptime</span>.T:
835e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 .<span.class="tok-type">type</sp
83600 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 an>,.value:.T).T</code></pre>...
83620 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 73 69 6e 65 20 74 72 69 67 6f 6d 65 74 72 69 63 ....<p>.......Cosine.trigometric
83640 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 .function.on.a.floating.point.nu
83660 6d 62 65 72 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 65 20 mber..Uses.a.dedicated.hardware.
83680 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 instruction.......when.available
836a0 2e 20 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 ..Currently.supports.<code.class
836c0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 ="zig"><span.class="tok-type">f3
836e0 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 2</span></code>.and.<code.class=
83700 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 "zig"><span.class="tok-type">f64
83720 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 </span></code>........</p>......
83740 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 78 70 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 ........<h2.id="exp"><a.href="#t
83760 6f 63 2d 65 78 70 22 3e 40 65 78 70 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 oc-exp">@exp</a>.<a.class="hdr".
83780 68 72 65 66 3d 22 23 65 78 70 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c href="#exp">..</a></h2>........<
837a0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
837c0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 78 70 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 s="tok-builtin">@exp</span>(<spa
837e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e n.class="tok-kw">comptime</span>
83800 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c .T:.<span.class="tok-type">type<
83820 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e /span>,.value:.T).T</code></pre>
83840 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 61 73 65 2d 65 20 65 78 70 6f 6e 65 6e 74 .......<p>.......Base-e.exponent
83860 69 61 6c 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 ial.function.on.a.floating.point
83880 20 6e 75 6d 62 65 72 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 .number..Uses.a.dedicated.hardwa
838a0 72 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 re.instruction.......when.availa
838c0 62 6c 65 2e 20 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c ble..Currently.supports.<code.cl
838e0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ass="zig"><span.class="tok-type"
83900 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 >f32</span></code>.and.<code.cla
83920 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ss="zig"><span.class="tok-type">
83940 66 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 f64</span></code>........</p>...
83960 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 78 70 32 22 3e 3c 61 20 68 72 65 66 ...........<h2.id="exp2"><a.href
83980 3d 22 23 74 6f 63 2d 65 78 70 32 22 3e 40 65 78 70 32 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d ="#toc-exp2">@exp2</a>.<a.class=
839a0 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 78 70 32 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a "hdr".href="#exp2">..</a></h2>..
839c0 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
839e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 78 70 32 3c 2f 73 70 an.class="tok-builtin">@exp2</sp
83a00 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d an>(<span.class="tok-kw">comptim
83a20 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 e</span>.T:.<span.class="tok-typ
83a40 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 e">type</span>,.value:.T).T</cod
83a60 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 61 73 65 2d 32 20 e></pre>.......<p>.......Base-2.
83a80 65 78 70 6f 6e 65 6e 74 69 61 6c 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 61 20 66 6c 6f 61 74 69 exponential.function.on.a.floati
83aa0 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 ng.point.number..Uses.a.dedicate
83ac0 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 d.hardware.instruction.......whe
83ae0 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 n.available..Currently.supports.
83b00 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
83b20 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c ok-type">f32</span></code>.and.<
83b40 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
83b60 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 k-type">f64</span></code>.......
83b80 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6c 6e 22 3e 3c .</p>..............<h2.id="ln"><
83ba0 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6c 6e 22 3e 40 6c 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 a.href="#toc-ln">@ln</a>.<a.clas
83bc0 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6c 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a s="hdr".href="#ln">..</a></h2>..
83be0 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
83c00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6c 6e 3c 2f 73 70 61 6e an.class="tok-builtin">@ln</span
83c20 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c >(<span.class="tok-kw">comptime<
83c40 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 /span>.T:.<span.class="tok-type"
83c60 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e >type</span>,.value:.T).T</code>
83c80 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 </pre>.......<p>.......Returns.t
83ca0 68 65 20 6e 61 74 75 72 61 6c 20 6c 6f 67 61 72 69 74 68 6d 20 6f 66 20 61 20 66 6c 6f 61 74 69 he.natural.logarithm.of.a.floati
83cc0 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 ng.point.number..Uses.a.dedicate
83ce0 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 d.hardware.instruction.......whe
83d00 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 n.available..Currently.supports.
83d20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
83d40 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c ok-type">f32</span></code>.and.<
83d60 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
83d80 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 k-type">f64</span></code>.......
83da0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6c 6f 67 32 22 .</p>..............<h2.id="log2"
83dc0 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 6c 6f 67 32 22 3e 40 6c 6f 67 32 3c 2f 61 3e 20 3c ><a.href="#toc-log2">@log2</a>.<
83de0 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6c 6f 67 32 22 3e c2 a7 3c 2f 61 a.class="hdr".href="#log2">..</a
83e00 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ></h2>........<pre><code.class="
83e20 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 zig"><span.class="tok-builtin">@
83e40 6c 6f 67 32 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 log2</span>(<span.class="tok-kw"
83e60 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >comptime</span>.T:.<span.class=
83e80 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 "tok-type">type</span>,.value:.T
83ea0 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 ).T</code></pre>.......<p>......
83ec0 20 52 65 74 75 72 6e 73 20 74 68 65 20 6c 6f 67 61 72 69 74 68 6d 20 74 6f 20 74 68 65 20 62 61 .Returns.the.logarithm.to.the.ba
83ee0 73 65 20 32 20 6f 66 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e se.2.of.a.floating.point.number.
83f00 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 74 72 .Uses.a.dedicated.hardware.instr
83f20 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 43 75 72 uction.......when.available..Cur
83f40 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 rently.supports.<code.class="zig
83f60 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 "><span.class="tok-type">f32</sp
83f80 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 an></code>.and.<code.class="zig"
83fa0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 ><span.class="tok-type">f64</spa
83fc0 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 n></code>........</p>...........
83fe0 20 20 20 3c 68 32 20 69 64 3d 22 6c 6f 67 31 30 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d ...<h2.id="log10"><a.href="#toc-
84000 6c 6f 67 31 30 22 3e 40 6c 6f 67 31 30 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 log10">@log10</a>.<a.class="hdr"
84020 20 68 72 65 66 3d 22 23 6c 6f 67 31 30 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 .href="#log10">..</a></h2>......
84040 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ..<pre><code.class="zig"><span.c
84060 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6c 6f 67 31 30 3c 2f 73 70 61 6e 3e lass="tok-builtin">@log10</span>
84080 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f (<span.class="tok-kw">comptime</
840a0 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e span>.T:.<span.class="tok-type">
840c0 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c type</span>,.value:.T).T</code><
840e0 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 /pre>.......<p>.......Returns.th
84100 65 20 6c 6f 67 61 72 69 74 68 6d 20 74 6f 20 74 68 65 20 62 61 73 65 20 31 30 20 6f 66 20 61 20 e.logarithm.to.the.base.10.of.a.
84120 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 20 55 73 65 73 20 61 20 64 65 floating.point.number..Uses.a.de
84140 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 dicated.hardware.instruction....
84160 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 43 75 72 72 65 6e 74 6c 79 20 73 75 70 ...when.available..Currently.sup
84180 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ports.<code.class="zig"><span.cl
841a0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ass="tok-type">f32</span></code>
841c0 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 .and.<code.class="zig"><span.cla
841e0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e ss="tok-type">f64</span></code>.
84200 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d .......</p>..............<h2.id=
84220 22 66 61 62 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 61 62 73 22 3e 40 66 61 62 73 "fabs"><a.href="#toc-fabs">@fabs
84240 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 66 61 62 73 22 </a>.<a.class="hdr".href="#fabs"
84260 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 >..</a></h2>........<pre><code.c
84280 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
842a0 74 69 6e 22 3e 40 66 61 62 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 tin">@fabs</span>(<span.class="t
842c0 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 ok-kw">comptime</span>.T:.<span.
842e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 class="tok-type">type</span>,.va
84300 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e lue:.T).T</code></pre>.......<p>
84320 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 76 61 6c 75 .......Returns.the.absolute.valu
84340 65 20 6f 66 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 20 55 73 e.of.a.floating.point.number..Us
84360 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 74 72 75 63 74 es.a.dedicated.hardware.instruct
84380 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 43 75 72 72 65 6e ion.......when.available..Curren
843a0 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c tly.supports.<code.class="zig"><
843c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">f32</span>
843e0 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 </code>.and.<code.class="zig"><s
84400 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c pan.class="tok-type">f64</span><
84420 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 /code>........</p>..............
84440 3c 68 32 20 69 64 3d 22 66 6c 6f 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 66 6c 6f <h2.id="floor"><a.href="#toc-flo
84460 6f 72 22 3e 40 66 6c 6f 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 or">@floor</a>.<a.class="hdr".hr
84480 65 66 3d 22 23 66 6c 6f 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c ef="#floor">..</a></h2>........<
844a0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
844c0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 66 6c 6f 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 s="tok-builtin">@floor</span>(<s
844e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
84500 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 n>.T:.<span.class="tok-type">typ
84520 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 e</span>,.value:.T).T</code></pr
84540 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 6c e>.......<p>.......Returns.the.l
84560 61 72 67 65 73 74 20 69 6e 74 65 67 72 61 6c 20 76 61 6c 75 65 20 6e 6f 74 20 67 72 65 61 74 65 argest.integral.value.not.greate
84580 72 20 74 68 61 6e 20 74 68 65 20 67 69 76 65 6e 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 r.than.the.given.floating.point.
845a0 6e 75 6d 62 65 72 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 number..Uses.a.dedicated.hardwar
845c0 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 e.instruction.......when.availab
845e0 6c 65 2e 20 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c 61 le..Currently.supports.<code.cla
84600 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ss="zig"><span.class="tok-type">
84620 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 f32</span></code>.and.<code.clas
84640 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 s="zig"><span.class="tok-type">f
84660 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 64</span></code>........</p>....
84680 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 65 69 6c 22 3e 3c 61 20 68 72 65 66 3d ..........<h2.id="ceil"><a.href=
846a0 22 23 74 6f 63 2d 63 65 69 6c 22 3e 40 63 65 69 6c 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 "#toc-ceil">@ceil</a>.<a.class="
846c0 68 64 72 22 20 68 72 65 66 3d 22 23 63 65 69 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 hdr".href="#ceil">..</a></h2>...
846e0 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
84700 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 65 69 6c 3c 2f 73 70 61 n.class="tok-builtin">@ceil</spa
84720 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 n>(<span.class="tok-kw">comptime
84740 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>.T:.<span.class="tok-type
84760 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 ">type</span>,.value:.T).T</code
84780 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 ></pre>.......<p>.......Returns.
847a0 74 68 65 20 6c 61 72 67 65 73 74 20 69 6e 74 65 67 72 61 6c 20 76 61 6c 75 65 20 6e 6f 74 20 6c the.largest.integral.value.not.l
847c0 65 73 73 20 74 68 61 6e 20 74 68 65 20 67 69 76 65 6e 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e ess.than.the.given.floating.poin
847e0 74 20 6e 75 6d 62 65 72 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 t.number..Uses.a.dedicated.hardw
84800 61 72 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c are.instruction.......when.avail
84820 61 62 6c 65 2e 20 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 able..Currently.supports.<code.c
84840 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 lass="zig"><span.class="tok-type
84860 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c ">f32</span></code>.and.<code.cl
84880 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ass="zig"><span.class="tok-type"
848a0 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 >f64</span></code>........</p>..
848c0 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 72 75 6e 63 22 3e 3c 61 20 68 72 ............<h2.id="trunc"><a.hr
848e0 65 66 3d 22 23 74 6f 63 2d 74 72 75 6e 63 22 3e 40 74 72 75 6e 63 3c 2f 61 3e 20 3c 61 20 63 6c ef="#toc-trunc">@trunc</a>.<a.cl
84900 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 72 75 6e 63 22 3e c2 a7 3c 2f 61 3e 3c 2f ass="hdr".href="#trunc">..</a></
84920 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 h2>........<pre><code.class="zig
84940 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 72 75 "><span.class="tok-builtin">@tru
84960 6e 63 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 nc</span>(<span.class="tok-kw">c
84980 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 omptime</span>.T:.<span.class="t
849a0 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 ok-type">type</span>,.value:.T).
849c0 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 T</code></pre>.......<p>.......R
849e0 6f 75 6e 64 73 20 74 68 65 20 67 69 76 65 6e 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e ounds.the.given.floating.point.n
84a00 75 6d 62 65 72 20 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 2c 20 74 6f 77 61 72 64 73 20 7a 65 72 umber.to.an.integer,.towards.zer
84a20 6f 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 o..Uses.a.dedicated.hardware.ins
84a40 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 43 truction.......when.available..C
84a60 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a urrently.supports.<code.class="z
84a80 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f ig"><span.class="tok-type">f32</
84aa0 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 span></code>.and.<code.class="zi
84ac0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 g"><span.class="tok-type">f64</s
84ae0 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 pan></code>........</p>.........
84b00 20 20 20 20 20 3c 68 32 20 69 64 3d 22 72 6f 75 6e 64 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f .....<h2.id="round"><a.href="#to
84b20 63 2d 72 6f 75 6e 64 22 3e 40 72 6f 75 6e 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 c-round">@round</a>.<a.class="hd
84b40 72 22 20 68 72 65 66 3d 22 23 72 6f 75 6e 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 r".href="#round">..</a></h2>....
84b60 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e ....<pre><code.class="zig"><span
84b80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 72 6f 75 6e 64 3c 2f 73 70 61 .class="tok-builtin">@round</spa
84ba0 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 n>(<span.class="tok-kw">comptime
84bc0 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>.T:.<span.class="tok-type
84be0 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 3a 20 54 29 20 54 3c 2f 63 6f 64 65 ">type</span>,.value:.T).T</code
84c00 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 6f 75 6e 64 73 20 74 ></pre>.......<p>.......Rounds.t
84c20 68 65 20 67 69 76 65 6e 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20 74 he.given.floating.point.number.t
84c40 6f 20 61 6e 20 69 6e 74 65 67 65 72 2c 20 61 77 61 79 20 66 72 6f 6d 20 7a 65 72 6f 2e 20 55 73 o.an.integer,.away.from.zero..Us
84c60 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 61 72 64 77 61 72 65 20 69 6e 73 74 72 75 63 74 es.a.dedicated.hardware.instruct
84c80 69 6f 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 20 43 75 72 72 65 6e ion.......when.available..Curren
84ca0 74 6c 79 20 73 75 70 70 6f 72 74 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c tly.supports.<code.class="zig"><
84cc0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">f32</span>
84ce0 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 </code>.and.<code.class="zig"><s
84d00 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3c pan.class="tok-type">f64</span><
84d20 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 /code>........</p>..............
84d40 20 3c 68 32 20 69 64 3d 22 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 65 .<h2.id="subWithOverflow"><a.hre
84d60 66 3d 22 23 74 6f 63 2d 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 75 62 57 69 74 f="#toc-subWithOverflow">@subWit
84d80 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 hOverflow</a>.<a.class="hdr".hre
84da0 66 3d 22 23 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e f="#subWithOverflow">..</a></h2>
84dc0 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c ........<pre><code.class="zig"><
84de0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 75 62 57 69 74 span.class="tok-builtin">@subWit
84e00 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f hOverflow</span>(<span.class="to
84e20 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 k-kw">comptime</span>.T:.<span.c
84e40 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 3a 20 lass="tok-type">type</span>,.a:.
84e60 54 2c 20 62 3a 20 54 2c 20 72 65 73 75 6c 74 3a 20 2a 54 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 T,.b:.T,.result:.*T).<span.class
84e80 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f ="tok-type">bool</span></code></
84ea0 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 pre>.......<p>.......Performs.<c
84ec0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 72 65 73 75 6c 74 2e 2a 20 3d 20 61 20 2d 20 62 ode.class="zig">result.*.=.a.-.b
84ee0 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f </code>..If.overflow.or.underflo
84f00 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 20 20 20 20 73 74 6f 72 65 73 20 74 68 65 20 6f w.occurs,...........stores.the.o
84f20 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a verflowed.bits.in.<code.class="z
84f40 69 67 22 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 3c 63 ig">result</code>.and.returns.<c
84f60 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
84f80 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 -null">true</span></code>.......
84fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 6e 6f 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 .............If.no.overflow.or.u
84fc0 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 20 63 nderflow.occurs,.returns.<code.c
84fe0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c lass="zig"><span.class="tok-null
85000 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 ">false</span></code>........</p
85020 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 61 67 4e 61 6d 65 22 >...............<h2.id="tagName"
85040 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 74 61 67 4e 61 6d 65 22 3e 40 74 61 67 4e 61 6d 65 ><a.href="#toc-tagName">@tagName
85060 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 61 67 4e 61 </a>.<a.class="hdr".href="#tagNa
85080 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 me">..</a></h2>........<pre><cod
850a0 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
850c0 75 69 6c 74 69 6e 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c uiltin">@tagName</span>(value:.<
850e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 29 20 span.class="tok-kw">var</span>).
85100 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 []<span.class="tok-kw">const</sp
85120 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 an>.<span.class="tok-type">u8</s
85140 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 pan></code></pre>.......<p>.....
85160 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 65 6e 75 6d 20 76 61 6c 75 65 20 6f 72 20 75 6e 69 6f ..Converts.an.enum.value.or.unio
85180 6e 20 76 61 6c 75 65 20 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 20 62 79 74 65 73 20 72 65 70 72 n.value.to.a.slice.of.bytes.repr
851a0 65 73 65 6e 74 69 6e 67 20 74 68 65 20 6e 61 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 esenting.the.name........</p>...
851c0 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 54 61 67 54 79 70 65 22 3e 3c 61 20 ............<h2.id="TagType"><a.
851e0 68 72 65 66 3d 22 23 74 6f 63 2d 54 61 67 54 79 70 65 22 3e 40 54 61 67 54 79 70 65 3c 2f 61 3e href="#toc-TagType">@TagType</a>
85200 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 61 67 54 79 70 65 22 3e .<a.class="hdr".href="#TagType">
85220 c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c ..</a></h2>........<pre><code.cl
85240 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 ass="zig"><span.class="tok-built
85260 69 6e 22 3e 40 54 61 67 54 79 70 65 3c 2f 73 70 61 6e 3e 28 54 3a 20 3c 73 70 61 6e 20 63 6c 61 in">@TagType</span>(T:.<span.cla
85280 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e ss="tok-type">type</span>).<span
852a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 .class="tok-type">type</span></c
852c0 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 61 ode></pre>.......<p>.......For.a
852e0 6e 20 65 6e 75 6d 2c 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 n.enum,.returns.the.integer.type
85300 20 74 68 61 74 20 69 73 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 74 68 65 20 65 6e 75 6d 65 .that.is.used.to.store.the.enume
85320 72 61 74 69 6f 6e 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c ration.value........</p>.......<
85340 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 61 20 75 6e 69 6f 6e 2c 20 72 65 74 75 72 6e 73 20 74 68 p>.......For.a.union,.returns.th
85360 65 20 65 6e 75 6d 20 74 79 70 65 20 74 68 61 74 20 69 73 20 75 73 65 64 20 74 6f 20 73 74 6f 72 e.enum.type.that.is.used.to.stor
85380 65 20 74 68 65 20 74 61 67 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 e.the.tag.value........</p>.....
853a0 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 54 68 69 73 22 3e 3c 61 20 68 72 65 66 3d ..........<h2.id="This"><a.href=
853c0 22 23 74 6f 63 2d 54 68 69 73 22 3e 40 54 68 69 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 "#toc-This">@This</a>.<a.class="
853e0 68 64 72 22 20 68 72 65 66 3d 22 23 54 68 69 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 hdr".href="#This">..</a></h2>...
85400 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
85420 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 68 69 73 3c 2f 73 70 61 n.class="tok-builtin">@This</spa
85440 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 n>().<span.class="tok-type">type
85460 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 </span></code></pre>.......<p>..
85480 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 69 6e 6e 65 72 6d 6f 73 74 20 73 74 72 75 63 .....Returns.the.innermost.struc
854a0 74 20 6f 72 20 75 6e 69 6f 6e 20 74 68 61 74 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 t.or.union.that.this.function.ca
854c0 6c 6c 20 69 73 20 69 6e 73 69 64 65 2e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 ll.is.inside........This.can.be.
854e0 75 73 65 66 75 6c 20 66 6f 72 20 61 6e 20 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 72 75 63 74 20 74 useful.for.an.anonymous.struct.t
85500 68 61 74 20 6e 65 65 64 73 20 74 6f 20 72 65 66 65 72 20 74 6f 20 69 74 73 65 6c 66 3a 0a 20 20 hat.needs.to.refer.to.itself:...
85520 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ....</p>.......<p.class="file">t
85540 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
85560 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
85580 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 an>.std.=.<span.class="tok-built
855a0 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
855c0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
855e0 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ;.<span.class="tok-kw">const</sp
85600 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a an>.assert.=.std.debug.assert;..
85620 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
85640 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 54 68 .<span.class="tok-str">&quot;@Th
85660 69 73 28 29 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c is()&quot;</span>.{.....<span.cl
85680 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 74 65 6d 73 20 3d 20 ass="tok-kw">var</span>.items.=.
856a0 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 [_]<span.class="tok-type">i32</s
856c0 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 pan>{.<span.class="tok-number">1
856e0 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 </span>,.<span.class="tok-number
85700 22 3e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ">2</span>,.<span.class="tok-num
85720 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ber">3</span>,.<span.class="tok-
85740 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c number">4</span>.};.....<span.cl
85760 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6c 69 73 74 20 3d ass="tok-kw">const</span>.list.=
85780 20 4c 69 73 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 .List(<span.class="tok-type">i32
857a0 3c 2f 73 70 61 6e 3e 29 7b 20 2e 69 74 65 6d 73 20 3d 20 69 74 65 6d 73 5b 3c 73 70 61 6e 20 63 </span>){..items.=.items[<span.c
857c0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 20 7d 3b lass="tok-number">0</span>..].};
857e0 0a 20 20 20 20 61 73 73 65 72 74 28 6c 69 73 74 2e 6c 65 6e 67 74 68 28 29 20 3d 3d 20 3c 73 70 .....assert(list.length().==.<sp
85800 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 3b an.class="tok-number">4</span>);
85820 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 .}..<span.class="tok-kw">fn</spa
85840 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 4c 69 73 74 3c 2f 73 70 n>.<span.class="tok-fn">List</sp
85860 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d an>(<span.class="tok-kw">comptim
85880 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 e</span>.T:.<span.class="tok-typ
858a0 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e">type</span>).<span.class="tok
858c0 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 -type">type</span>.{.....<span.c
858e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 lass="tok-kw">return</span>.<spa
85900 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b n.class="tok-kw">struct</span>.{
85920 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f .........<span.class="tok-kw">co
85940 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 65 6c 66 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 nst</span>.Self.=.<span.class="t
85960 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 68 69 73 3c 2f 73 70 61 6e 3e 28 29 3b 0a 0a 20 20 20 ok-builtin">@This</span>();.....
85980 20 20 20 20 20 69 74 65 6d 73 3a 20 5b 5d 54 2c 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 .....items:.[]T,..........<span.
859a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 class="tok-kw">fn</span>.<span.c
859c0 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6c 65 6e 67 74 68 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 lass="tok-fn">length</span>(self
859e0 3a 20 53 65 6c 66 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 :.Self).<span.class="tok-type">u
85a00 73 69 7a 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 size</span>.{.............<span.
85a20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 73 65 6c class="tok-kw">return</span>.sel
85a40 66 2e 69 74 65 6d 73 2e 6c 65 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 3b 0a 7d 3c f.items.len;.........}.....};.}<
85a60 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 /code></pre><pre><code.class="sh
85a80 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 ell">$.zig.test.test.zig.1/1.tes
85aa0 74 20 26 71 75 6f 74 3b 40 54 68 69 73 28 29 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 t.&quot;@This()&quot;...OK.All.t
85ac0 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 ests.passed..</code></pre>......
85ae0 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ..<p>.......When.<code.class="zi
85b00 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 68 g"><span.class="tok-builtin">@Th
85b20 69 73 3c 2f 73 70 61 6e 3e 28 29 3c 2f 63 6f 64 65 3e 20 69 73 20 75 73 65 64 20 61 74 20 67 6c is</span>()</code>.is.used.at.gl
85b40 6f 62 61 6c 20 73 63 6f 70 65 2c 20 69 74 20 72 65 74 75 72 6e 73 20 61 20 72 65 66 65 72 65 6e obal.scope,.it.returns.a.referen
85b60 63 65 20 74 6f 20 74 68 65 0a 20 20 20 20 20 20 63 75 72 72 65 6e 74 20 69 6d 70 6f 72 74 2e 20 ce.to.the.......current.import..
85b80 54 68 65 72 65 20 69 73 20 61 20 70 72 6f 70 6f 73 61 6c 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 There.is.a.proposal.to.remove.th
85ba0 65 20 69 6d 70 6f 72 74 20 74 79 70 65 20 61 6e 64 20 75 73 65 20 61 6e 20 65 6d 70 74 79 20 73 e.import.type.and.use.an.empty.s
85bc0 74 72 75 63 74 0a 20 20 20 20 20 20 74 79 70 65 20 69 6e 73 74 65 61 64 2e 20 53 65 65 0a 20 20 truct.......type.instead..See...
85be0 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ....<a.href="https://github.com/
85c00 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 31 30 34 37 22 3e 23 31 30 34 37 3c 2f ziglang/zig/issues/1047">#1047</
85c20 61 3e 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 a>.for.details........</p>......
85c40 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 72 75 6e 63 61 74 65 22 3e 3c 61 20 68 72 .........<h2.id="truncate"><a.hr
85c60 65 66 3d 22 23 74 6f 63 2d 74 72 75 6e 63 61 74 65 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 61 3e ef="#toc-truncate">@truncate</a>
85c80 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 72 75 6e 63 61 74 65 22 .<a.class="hdr".href="#truncate"
85ca0 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 >..</a></h2>........<pre><code.c
85cc0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
85ce0 74 69 6e 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 tin">@truncate</span>(<span.clas
85d00 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 s="tok-kw">comptime</span>.T:.<s
85d20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e pan.class="tok-type">type</span>
85d40 2c 20 69 6e 74 65 67 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ,.integer:.<span.class="tok-kw">
85d60 76 61 72 3c 2f 73 70 61 6e 3e 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 var</span>).T</code></pre>......
85d80 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 72 75 6e 63 61 74 .<p>.......This.function.truncat
85da0 65 73 20 62 69 74 73 20 66 72 6f 6d 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 2c 20 72 65 es.bits.from.an.integer.type,.re
85dc0 73 75 6c 74 69 6e 67 20 69 6e 20 61 20 73 6d 61 6c 6c 65 72 0a 20 20 20 20 20 20 6f 72 20 73 61 sulting.in.a.smaller.......or.sa
85de0 6d 65 2d 73 69 7a 65 64 20 69 6e 74 65 67 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 me-sized.integer.type........</p
85e00 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 >.......<p>.......The.following.
85e20 70 72 6f 64 75 63 65 73 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 20 3c 61 20 68 72 65 66 3d produces.safety-checked.<a.href=
85e40 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 "#Undefined-Behavior">Undefined.
85e60 42 65 68 61 76 69 6f 72 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c Behavior</a>:.......</p>.......<
85e80 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e p.class="file">test.zig</p><pre>
85ea0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
85ec0 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ok-kw">test</span>.<span.class="
85ee0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 74 65 67 65 72 20 63 61 73 74 20 70 61 6e 69 tok-str">&quot;integer.cast.pani
85f00 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 c&quot;</span>.{.....<span.class
85f20 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c ="tok-kw">var</span>.a:.<span.cl
85f40 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 ass="tok-type">u16</span>.=.<spa
85f60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 61 62 63 64 3c 2f 73 70 61 n.class="tok-number">0xabcd</spa
85f80 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 n>;.....<span.class="tok-kw">var
85fa0 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>.b:.<span.class="tok-type
85fc0 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 ">u8</span>.=.<span.class="tok-b
85fe0 75 69 6c 74 69 6e 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c uiltin">@intCast</span>(<span.cl
86000 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 61 29 3b 0a 7d 3c ass="tok-type">u8</span>,.a);.}<
86020 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 /code></pre><pre><code.class="sh
86040 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 ell">$.zig.test.test.zig.1/1.tes
86060 74 20 26 71 75 6f 74 3b 69 6e 74 65 67 65 72 20 63 61 73 74 20 70 61 6e 69 63 26 71 75 6f 74 3b t.&quot;integer.cast.panic&quot;
86080 2e 2e 2e 69 6e 74 65 67 65 72 20 63 61 73 74 20 74 72 75 6e 63 61 74 65 64 20 62 69 74 73 0a 3c ...integer.cast.truncated.bits.<
860a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 span.class="t37_1">/home/andy/de
860c0 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 31 37 3c 2f v/zig/docgen_tmp/test.zig:3:17</
860e0 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 35 35 span>:.<span.class="t2_0">0x2055
86100 61 66 20 69 6e 20 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 74 65 67 65 72 20 63 61 73 74 20 70 61 af.in.test.&quot;integer.cast.pa
86120 6e 69 63 26 71 75 6f 74 3b 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 nic&quot;.(test)</span>.....var.
86140 62 3a 20 75 38 20 3d 20 40 69 6e 74 43 61 73 74 28 75 38 2c 20 61 29 3b 0a 20 20 20 20 20 20 20 b:.u8.=.@intCast(u8,.a);........
86160 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f .........<span.class="t32_1">^</
86180 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f span>.<span.class="t37_1">/home/
861a0 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 andy/dev/zig/lib/std/special/tes
861c0 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 33 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e t_runner.zig:13:25</span>:.<span
861e0 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 33 63 31 20 69 6e 20 73 74 64 2e 73 70 .class="t2_0">0x2283c1.in.std.sp
86200 65 63 69 61 6c 2e 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 ecial.main.(test)</span>........
86220 20 69 66 20 28 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 29 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 .if.(test_fn.func()).|_|.{......
86240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...................<span.class="
86260 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 t32_1">^</span>.<span.class="t37
86280 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 _1">/home/andy/dev/zig/lib/std/s
862a0 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 32 30 34 3a 33 37 3c 2f 73 70 61 6e 3e 3a 20 pecial/start.zig:204:37</span>:.
862c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 32 33 35 20 69 6e 20 73 <span.class="t2_0">0x227235.in.s
862e0 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 td.special.posixCallMainAndExit.
86300 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 (test)</span>.............const.
86320 72 65 73 75 6c 74 20 3d 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 72 7c result.=.root.main().catch.|err|
86340 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .{..............................
86360 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 .......<span.class="t32_1">^</sp
86380 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e an>.<span.class="t37_1">/home/an
863a0 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 dy/dev/zig/lib/std/special/start
863c0 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .zig:102:5</span>:.<span.class="
863e0 74 32 5f 30 22 3e 30 78 32 32 37 30 61 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 t2_0">0x2270af.in.std.special._s
86400 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 tart.(test)</span>.....@noInline
86420 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 Call(posixCallMainAndExit);.....
86440 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 65 <span.class="t32_1">^</span>..Te
86460 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f sts.failed..Use.the.following.co
86480 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a mmand.to.reproduce.the.failure:.
864a0 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 /home/andy/dev/zig/docgen_tmp/te
864c0 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 st.</code></pre>........<p>.....
864e0 20 20 48 6f 77 65 76 65 72 20 74 68 69 73 20 69 73 20 77 65 6c 6c 20 64 65 66 69 6e 65 64 20 61 ..However.this.is.well.defined.a
86500 6e 64 20 77 6f 72 6b 69 6e 67 20 63 6f 64 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 nd.working.code:.......</p>.....
86520 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 72 75 6e 63 61 74 65 2e 7a 69 67 3c 2f ..<p.class="file">truncate.zig</
86540 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 p><pre><code.class="zig"><span.c
86560 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d lass="tok-kw">const</span>.std.=
86580 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f .<span.class="tok-builtin">@impo
865a0 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e rt</span>(<span.class="tok-str">
865c0 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 &quot;std&quot;</span>);.<span.c
865e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 lass="tok-kw">const</span>.asser
86600 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 t.=.std.debug.assert;..<span.cla
86620 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ss="tok-kw">test</span>.<span.cl
86640 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 74 65 67 65 72 20 74 72 75 6e ass="tok-str">&quot;integer.trun
86660 63 61 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 cation&quot;</span>.{.....<span.
86680 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 class="tok-kw">var</span>.a:.<sp
866a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e 20 3d an.class="tok-type">u16</span>.=
866c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 61 62 63 64 .<span.class="tok-number">0xabcd
866e0 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 </span>;.....<span.class="tok-kw
86700 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">var</span>.b:.<span.class="tok
86720 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -type">u8</span>.=.<span.class="
86740 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 73 70 61 6e 3e 28 3c 73 tok-builtin">@truncate</span>(<s
86760 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 pan.class="tok-type">u8</span>,.
86780 61 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 62 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d a);.....assert(b.==.<span.class=
867a0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 63 64 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f "tok-number">0xcd</span>);.}</co
867c0 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
867e0 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 72 75 6e 63 61 74 65 2e 7a 69 67 0a 31 2f 31 20 74 65 ">$.zig.test.truncate.zig.1/1.te
86800 73 74 20 26 71 75 6f 74 3b 69 6e 74 65 67 65 72 20 74 72 75 6e 63 61 74 69 6f 6e 26 71 75 6f 74 st.&quot;integer.truncation&quot
86820 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e ;...OK.All.tests.passed..</code>
86840 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e </pre>........<p>.......This.fun
86860 63 74 69 6f 6e 20 61 6c 77 61 79 73 20 74 72 75 6e 63 61 74 65 73 20 74 68 65 20 73 69 67 6e 69 ction.always.truncates.the.signi
86880 66 69 63 61 6e 74 20 62 69 74 73 20 6f 66 20 74 68 65 20 69 6e 74 65 67 65 72 2c 20 72 65 67 61 ficant.bits.of.the.integer,.rega
868a0 72 64 6c 65 73 73 0a 20 20 20 20 20 20 6f 66 20 65 6e 64 69 61 6e 6e 65 73 73 20 6f 6e 20 74 68 rdless.......of.endianness.on.th
868c0 65 20 74 61 72 67 65 74 20 70 6c 61 74 66 6f 72 6d 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 e.target.platform........</p>...
868e0 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ....<p>.......If.<code.class="zi
86900 67 22 3e 54 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 g">T</code>.is.<code.class="zig"
86920 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 ><span.class="tok-type">comptime
86940 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 74 68 65 6e 20 74 _int</span></code>,.......then.t
86960 68 69 73 20 69 73 20 73 65 6d 61 6e 74 69 63 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 his.is.semantically.equivalent.t
86980 6f 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 69 o.an.<a.href="#Implicit-Casts">i
869a0 6d 70 6c 69 63 69 74 20 63 61 73 74 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 mplicit.cast</a>........</p>....
869c0 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 54 79 70 65 22 3e 3c 61 20 68 72 65 66 ...........<h2.id="Type"><a.href
869e0 3d 22 23 74 6f 63 2d 54 79 70 65 22 3e 40 54 79 70 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d ="#toc-Type">@Type</a>.<a.class=
86a00 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a "hdr".href="#Type">..</a></h2>..
86a20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
86a40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 3c 2f 73 70 an.class="tok-builtin">@Type</sp
86a60 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d an>(<span.class="tok-kw">comptim
86a80 65 3c 2f 73 70 61 6e 3e 20 69 6e 66 6f 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d e</span>.info:.<span.class="tok-
86aa0 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c builtin">@import</span>(<span.cl
86ac0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 ass="tok-str">&quot;builtin&quot
86ae0 3b 3c 2f 73 70 61 6e 3e 29 2e 54 79 70 65 49 6e 66 6f 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ;</span>).TypeInfo).<span.class=
86b00 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 "tok-type">type</span></code></p
86b20 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f re>.......<p>.......This.functio
86b40 6e 20 69 73 20 74 68 65 20 69 6e 76 65 72 73 65 20 6f 66 20 3c 61 20 68 72 65 66 3d 22 23 74 79 n.is.the.inverse.of.<a.href="#ty
86b60 70 65 49 6e 66 6f 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 61 3e 2e 20 49 74 20 72 65 69 66 69 65 peInfo">@typeInfo</a>..It.reifie
86b80 73 20 74 79 70 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 69 6e 74 6f 20 61 20 s.type.information.......into.a.
86ba0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
86bc0 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 ok-type">type</span></code>.....
86be0 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 69 73 20 61 76 ...</p>.......<p>.......It.is.av
86c00 61 69 6c 61 62 6c 65 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 79 70 65 73 3a ailable.for.the.following.types:
86c20 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 .......</p>.......<ul>..........
86c40 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 .<li><code.class="zig"><span.cla
86c60 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ss="tok-type">type</span></code>
86c80 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d </li>...........<li><code.class=
86ca0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 "zig"><span.class="tok-type">nor
86cc0 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 eturn</span></code></li>........
86ce0 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ...<li><code.class="zig"><span.c
86d00 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 lass="tok-type">void</span></cod
86d20 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 e></li>...........<li><code.clas
86d40 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 s="zig"><span.class="tok-type">b
86d60 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 ool</span></code></li>..........
86d80 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 .<li><a.href="#Integers">Integer
86da0 73 3c 2f 61 3e 3c 2f 6c 69 3e 20 2d 20 54 68 65 20 6d 61 78 69 6d 75 6d 20 62 69 74 20 63 6f 75 s</a></li>.-.The.maximum.bit.cou
86dc0 6e 74 20 66 6f 72 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 20 nt.for.an.integer.type.is.<code.
86de0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d class="zig"><span.class="tok-num
86e00 62 65 72 22 3e 36 35 35 33 35 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 ber">65535</span></code>........
86e20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 ....<li><a.href="#Floats">Floats
86e40 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d </a></li>...........<li><a.href=
86e60 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 "#Pointers">Pointers</a></li>...
86e80 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 ........<li><code.class="zig"><s
86ea0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e pan.class="tok-type">comptime_in
86ec0 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c t</span></code></li>...........<
86ee0 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 li><code.class="zig"><span.class
86f00 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 66 6c 6f 61 74 3c 2f 73 70 61 6e ="tok-type">comptime_float</span
86f20 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 ></code></li>...........<li><cod
86f40 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 e.class="zig"><span.class="tok-b
86f60 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 uiltin">@typeOf</span>(<span.cla
86f80 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 29 3c ss="tok-null">undefined</span>)<
86fa0 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 /code></li>...........<li><code.
86fc0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 class="zig"><span.class="tok-bui
86fe0 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 ltin">@typeOf</span>(<span.class
87000 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c ="tok-null">null</span>)</code><
87020 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 /li>.......</ul>.......<p>......
87040 20 46 6f 72 20 74 68 65 73 65 20 74 79 70 65 73 20 69 74 20 69 73 20 61 0a 20 20 20 20 20 20 3c .For.these.types.it.is.a.......<
87060 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 a.href="https://github.com/zigla
87080 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 32 39 30 37 22 3e 54 4f 44 4f 20 69 6e 20 74 68 65 20 ng/zig/issues/2907">TODO.in.the.
870a0 63 6f 6d 70 69 6c 65 72 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 3c 2f 61 3e 3a 0a 20 20 20 20 20 compiler.to.implement</a>:......
870c0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 .</p>.......<ul>...........<li>A
870e0 72 72 61 79 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 70 74 69 6f 6e 61 6c rray</li>...........<li>Optional
87100 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 72 72 6f 72 55 6e 69 6f 6e 3c 2f </li>...........<li>ErrorUnion</
87120 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 72 72 6f 72 53 65 74 3c 2f 6c 69 3e 0a li>...........<li>ErrorSet</li>.
87140 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 6e 75 6d 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 ..........<li>Enum</li>.........
87160 20 20 3c 6c 69 3e 4f 70 61 71 75 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e ..<li>Opaque</li>...........<li>
87180 46 6e 46 72 61 6d 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6e 79 46 72 FnFrame</li>...........<li>AnyFr
871a0 61 6d 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 56 65 63 74 6f 72 3c 2f 6c ame</li>...........<li>Vector</l
871c0 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 6e 75 6d 4c 69 74 65 72 61 6c 3c 2f 6c 69 i>...........<li>EnumLiteral</li
871e0 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f >.......</ul>.......<p>.......Fo
87200 72 20 74 68 65 73 65 20 74 79 70 65 73 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 r.these.types,.<code.class="zig"
87220 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 ><span.class="tok-builtin">@Type
87240 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 2e </span></code>.is.not.available.
87260 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 .......<a.href="https://github.c
87280 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 33 38 33 22 3e 54 68 65 72 65 om/ziglang/zig/issues/383">There
872a0 20 69 73 20 61 6e 20 6f 70 65 6e 20 70 72 6f 70 6f 73 61 6c 20 74 6f 20 61 6c 6c 6f 77 20 75 6e .is.an.open.proposal.to.allow.un
872c0 69 6f 6e 73 20 61 6e 64 20 73 74 72 75 63 74 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e ions.and.structs</a>........</p>
872e0 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 .......<ul>...........<li><a.hre
87300 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 f="#union">union</a></li>.......
87320 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e 46 75 6e ....<li><a.href="#Functions">Fun
87340 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 42 6f ctions</a></li>...........<li>Bo
87360 75 6e 64 46 6e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 72 67 54 75 70 6c undFn</li>...........<li>ArgTupl
87380 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 e</li>...........<li><a.href="#s
873a0 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 truct">struct</a></li>.......</u
873c0 6c 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 79 70 65 49 64 22 l>...............<h2.id="typeId"
873e0 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 74 79 70 65 49 64 22 3e 40 74 79 70 65 49 64 3c 2f ><a.href="#toc-typeId">@typeId</
87400 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 79 70 65 49 64 22 a>.<a.class="hdr".href="#typeId"
87420 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 >..</a></h2>........<pre><code.c
87440 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
87460 74 69 6e 22 3e 40 74 79 70 65 49 64 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d tin">@typeId</span>(<span.class=
87480 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 "tok-kw">comptime</span>.T:.<spa
874a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 n.class="tok-type">type</span>).
874c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
874e0 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
87500 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 54 79 70 65 49 quot;builtin&quot;</span>).TypeI
87520 64 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 d</code></pre>.......<p>.......R
87540 65 74 75 72 6e 73 20 77 68 69 63 68 20 6b 69 6e 64 20 6f 66 20 74 79 70 65 20 73 6f 6d 65 74 68 eturns.which.kind.of.type.someth
87560 69 6e 67 20 69 73 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 3a 0a 20 20 20 20 20 20 3c ing.is..Possible.values:.......<
87580 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 /p>.......<pre><code.class="zig"
875a0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e ><span.class="tok-kw">pub</span>
875c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
875e0 6e 3e 20 54 79 70 65 49 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 n>.TypeId.=.<span.class="tok-kw"
87600 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 54 79 70 65 2c 0a 20 20 20 20 56 6f 69 >enum</span>.{.....Type,.....Voi
87620 64 2c 0a 20 20 20 20 42 6f 6f 6c 2c 0a 20 20 20 20 4e 6f 52 65 74 75 72 6e 2c 0a 20 20 20 20 49 d,.....Bool,.....NoReturn,.....I
87640 6e 74 2c 0a 20 20 20 20 46 6c 6f 61 74 2c 0a 20 20 20 20 50 6f 69 6e 74 65 72 2c 0a 20 20 20 20 nt,.....Float,.....Pointer,.....
87660 41 72 72 61 79 2c 0a 20 20 20 20 53 74 72 75 63 74 2c 0a 20 20 20 20 43 6f 6d 70 74 69 6d 65 46 Array,.....Struct,.....ComptimeF
87680 6c 6f 61 74 2c 0a 20 20 20 20 43 6f 6d 70 74 69 6d 65 49 6e 74 2c 0a 20 20 20 20 55 6e 64 65 66 loat,.....ComptimeInt,.....Undef
876a0 69 6e 65 64 2c 0a 20 20 20 20 4e 75 6c 6c 2c 0a 20 20 20 20 4f 70 74 69 6f 6e 61 6c 2c 0a 20 20 ined,.....Null,.....Optional,...
876c0 20 20 45 72 72 6f 72 55 6e 69 6f 6e 2c 0a 20 20 20 20 45 72 72 6f 72 2c 0a 20 20 20 20 45 6e 75 ..ErrorUnion,.....Error,.....Enu
876e0 6d 2c 0a 20 20 20 20 55 6e 69 6f 6e 2c 0a 20 20 20 20 46 6e 2c 0a 20 20 20 20 42 6c 6f 63 6b 2c m,.....Union,.....Fn,.....Block,
87700 0a 20 20 20 20 42 6f 75 6e 64 46 6e 2c 0a 20 20 20 20 41 72 67 54 75 70 6c 65 2c 0a 20 20 20 20 .....BoundFn,.....ArgTuple,.....
87720 4f 70 61 71 75 65 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 0a Opaque,.};</code></pre>.........
87740 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 79 70 65 49 6e 66 6f 22 3e 3c 61 20 68 72 65 66 3d ......<h2.id="typeInfo"><a.href=
87760 22 23 74 6f 63 2d 74 79 70 65 49 6e 66 6f 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 61 3e 20 3c 61 "#toc-typeInfo">@typeInfo</a>.<a
87780 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 79 70 65 49 6e 66 6f 22 3e c2 a7 .class="hdr".href="#typeInfo">..
877a0 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 </a></h2>........<pre><code.clas
877c0 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e s="zig"><span.class="tok-builtin
877e0 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">@typeInfo</span>(<span.class="
87800 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a 20 3c 73 70 61 6e tok-kw">comptime</span>.T:.<span
87820 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c .class="tok-type">type</span>).<
87840 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
87860 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
87880 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 54 79 70 65 49 6e uot;builtin&quot;</span>).TypeIn
878a0 66 6f 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 fo</code></pre>.......<p>.......
878c0 52 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 74 79 70 65 2e Returns.information.on.the.type.
878e0 20 52 65 74 75 72 6e 73 20 61 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e .Returns.a.value.of.the.followin
87900 67 20 75 6e 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c g.union:.......</p>.......<pre><
87920 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
87940 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f k-kw">pub</span>.<span.class="to
87960 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 54 79 70 65 49 6e 66 6f 20 3d 20 3c 73 k-kw">const</span>.TypeInfo.=.<s
87980 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 28 pan.class="tok-kw">union</span>(
879a0 54 79 70 65 49 64 29 20 7b 0a 20 20 20 20 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d TypeId).{.....Type:.<span.class=
879c0 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 56 6f 69 64 "tok-type">void</span>,.....Void
879e0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 :.<span.class="tok-type">void</s
87a00 70 61 6e 3e 2c 0a 20 20 20 20 42 6f 6f 6c 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b pan>,.....Bool:.<span.class="tok
87a20 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 4e 6f 52 65 74 75 72 6e -type">void</span>,.....NoReturn
87a40 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 :.<span.class="tok-type">void</s
87a60 70 61 6e 3e 2c 0a 20 20 20 20 49 6e 74 3a 20 49 6e 74 2c 0a 20 20 20 20 46 6c 6f 61 74 3a 20 46 pan>,.....Int:.Int,.....Float:.F
87a80 6c 6f 61 74 2c 0a 20 20 20 20 50 6f 69 6e 74 65 72 3a 20 50 6f 69 6e 74 65 72 2c 0a 20 20 20 20 loat,.....Pointer:.Pointer,.....
87aa0 41 72 72 61 79 3a 20 41 72 72 61 79 2c 0a 20 20 20 20 53 74 72 75 63 74 3a 20 53 74 72 75 63 74 Array:.Array,.....Struct:.Struct
87ac0 2c 0a 20 20 20 20 43 6f 6d 70 74 69 6d 65 46 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 ,.....ComptimeFloat:.<span.class
87ae0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 43 6f 6d ="tok-type">void</span>,.....Com
87b00 70 74 69 6d 65 49 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ptimeInt:.<span.class="tok-type"
87b20 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 55 6e 64 65 66 69 6e 65 64 3a 20 3c 73 70 >void</span>,.....Undefined:.<sp
87b40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c an.class="tok-type">void</span>,
87b60 0a 20 20 20 20 4e 75 6c 6c 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .....Null:.<span.class="tok-type
87b80 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 4f 70 74 69 6f 6e 61 6c 3a 20 4f 70 74 ">void</span>,.....Optional:.Opt
87ba0 69 6f 6e 61 6c 2c 0a 20 20 20 20 45 72 72 6f 72 55 6e 69 6f 6e 3a 20 45 72 72 6f 72 55 6e 69 6f ional,.....ErrorUnion:.ErrorUnio
87bc0 6e 2c 0a 20 20 20 20 45 72 72 6f 72 53 65 74 3a 20 45 72 72 6f 72 53 65 74 2c 0a 20 20 20 20 45 n,.....ErrorSet:.ErrorSet,.....E
87be0 6e 75 6d 3a 20 45 6e 75 6d 2c 0a 20 20 20 20 55 6e 69 6f 6e 3a 20 55 6e 69 6f 6e 2c 0a 20 20 20 num:.Enum,.....Union:.Union,....
87c00 20 46 6e 3a 20 46 6e 2c 0a 20 20 20 20 42 6f 75 6e 64 46 6e 3a 20 46 6e 2c 0a 20 20 20 20 41 72 .Fn:.Fn,.....BoundFn:.Fn,.....Ar
87c20 67 54 75 70 6c 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 gTuple:.<span.class="tok-type">v
87c40 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 4f 70 61 71 75 65 3a 20 3c 73 70 61 6e 20 63 6c oid</span>,.....Opaque:.<span.cl
87c60 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 ass="tok-type">void</span>,.....
87c80 50 72 6f 6d 69 73 65 3a 20 50 72 6f 6d 69 73 65 2c 0a 20 20 20 20 56 65 63 74 6f 72 3a 20 56 65 Promise:.Promise,.....Vector:.Ve
87ca0 63 74 6f 72 2c 0a 20 20 20 20 45 6e 75 6d 4c 69 74 65 72 61 6c 3a 20 3c 73 70 61 6e 20 63 6c 61 ctor,.....EnumLiteral:.<span.cla
87cc0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 0a 0a 20 20 20 ss="tok-type">void</span>,......
87ce0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">pub</span>
87d00 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
87d20 6e 3e 20 49 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 n>.Int.=.<span.class="tok-kw">st
87d40 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 69 73 5f 73 69 67 6e 65 64 3a ruct</span>.{.........is_signed:
87d60 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 .<span.class="tok-type">bool</sp
87d80 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 62 69 74 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 an>,.........bits:.<span.class="
87da0 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 tok-type">comptime_int</span>,..
87dc0 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ...};......<span.class="tok-kw">
87de0 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pub</span>.<span.class="tok-kw">
87e00 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 const</span>.Float.=.<span.class
87e20 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 ="tok-kw">struct</span>.{.......
87e40 20 20 62 69 74 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 ..bits:.<span.class="tok-type">c
87e60 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 omptime_int</span>,.....};......
87e80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">pub</span>.
87ea0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
87ec0 3e 20 50 6f 69 6e 74 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 >.Pointer.=.<span.class="tok-kw"
87ee0 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 73 69 7a 65 3a 20 53 >struct</span>.{.........size:.S
87f00 69 7a 65 2c 0a 20 20 20 20 20 20 20 20 69 73 5f 63 6f 6e 73 74 3a 20 3c 73 70 61 6e 20 63 6c 61 ize,.........is_const:.<span.cla
87f20 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 ss="tok-type">bool</span>,......
87f40 20 20 20 69 73 5f 76 6f 6c 61 74 69 6c 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ...is_volatile:.<span.class="tok
87f60 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 61 6c 69 67 -type">bool</span>,.........alig
87f80 6e 6d 65 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f nment:.<span.class="tok-type">co
87fa0 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 mptime_int</span>,.........child
87fc0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 :.<span.class="tok-type">type</s
87fe0 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 69 73 5f 61 6c 6c 6f 77 7a 65 72 6f 3a 20 3c 73 70 61 pan>,.........is_allowzero:.<spa
88000 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a n.class="tok-type">bool</span>,.
88020 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 .........<span.class="tok-kw">pu
88040 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f b</span>.<span.class="tok-kw">co
88060 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 69 7a 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 nst</span>.Size.=.<span.class="t
88080 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ok-kw">enum</span>.{............
880a0 20 4f 6e 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 6e 79 2c 0a 20 20 20 20 20 20 20 20 .One,.............Many,.........
880c0 20 20 20 20 53 6c 69 63 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 2c 0a 20 20 20 20 20 20 ....Slice,.............C,.......
880e0 20 20 7d 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..};.....};......<span.class="to
88100 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f k-kw">pub</span>.<span.class="to
88120 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 72 72 61 79 20 3d 20 3c 73 70 61 6e k-kw">const</span>.Array.=.<span
88140 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a .class="tok-kw">struct</span>.{.
88160 20 20 20 20 20 20 20 20 6c 65 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ........len:.<span.class="tok-ty
88180 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 pe">comptime_int</span>,........
881a0 20 63 68 69 6c 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 .child:.<span.class="tok-type">t
881c0 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ype</span>,.....};......<span.cl
881e0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ass="tok-kw">pub</span>.<span.cl
88200 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 6f 6e 74 61 69 ass="tok-kw">const</span>.Contai
88220 6e 65 72 4c 61 79 6f 75 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 nerLayout.=.<span.class="tok-kw"
88240 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 41 75 74 6f 2c 0a 20 20 20 >enum</span>.{.........Auto,....
88260 20 20 20 20 20 45 78 74 65 72 6e 2c 0a 20 20 20 20 20 20 20 20 50 61 63 6b 65 64 2c 0a 20 20 20 .....Extern,.........Packed,....
88280 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 .};......<span.class="tok-kw">pu
882a0 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f b</span>.<span.class="tok-kw">co
882c0 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 74 72 75 63 74 46 69 65 6c 64 20 3d 20 3c 73 70 61 6e 20 63 nst</span>.StructField.=.<span.c
882e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-kw">struct</span>.{...
88300 20 20 20 20 20 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ......name:.[]<span.class="tok-k
88320 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b w">const</span>.<span.class="tok
88340 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 6f 66 66 73 65 74 -type">u8</span>,.........offset
88360 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 :.?<span.class="tok-type">compti
88380 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 66 69 65 6c 64 5f 74 79 70 me_int</span>,.........field_typ
883a0 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f e:.<span.class="tok-type">type</
883c0 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 span>,.....};......<span.class="
883e0 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 tok-kw">pub</span>.<span.class="
88400 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 74 72 75 63 74 20 3d 20 3c 73 tok-kw">const</span>.Struct.=.<s
88420 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e pan.class="tok-kw">struct</span>
88440 20 7b 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 3a 20 43 6f 6e 74 61 69 6e 65 72 4c 61 79 6f .{.........layout:.ContainerLayo
88460 75 74 2c 0a 20 20 20 20 20 20 20 20 66 69 65 6c 64 73 3a 20 5b 5d 53 74 72 75 63 74 46 69 65 6c ut,.........fields:.[]StructFiel
88480 64 2c 0a 20 20 20 20 20 20 20 20 64 65 63 6c 73 3a 20 5b 5d 44 65 63 6c 61 72 61 74 69 6f 6e 2c d,.........decls:.[]Declaration,
884a0 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .....};......<span.class="tok-kw
884c0 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ">pub</span>.<span.class="tok-kw
884e0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 4f 70 74 69 6f 6e 61 6c 20 3d 20 3c 73 70 61 6e 20 ">const</span>.Optional.=.<span.
88500 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 class="tok-kw">struct</span>.{..
88520 20 20 20 20 20 20 20 63 68 69 6c 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 .......child:.<span.class="tok-t
88540 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 ype">type</span>,.....};......<s
88560 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
88580 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
885a0 45 72 72 6f 72 55 6e 69 6f 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ErrorUnion.=.<span.class="tok-kw
885c0 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f ">struct</span>.{.........error_
885e0 73 65 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 set:.<span.class="tok-type">type
88600 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 70 61 79 6c 6f 61 64 3a 20 3c 73 70 61 6e 20 </span>,.........payload:.<span.
88620 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 class="tok-type">type</span>,...
88640 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 ..};......<span.class="tok-kw">p
88660 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ub</span>.<span.class="tok-kw">c
88680 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 72 72 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d onst</span>.Error.=.<span.class=
886a0 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 "tok-kw">struct</span>.{........
886c0 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f .name:.[]<span.class="tok-kw">co
886e0 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 nst</span>.<span.class="tok-type
88700 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 3a 20 3c 73 70 61 ">u8</span>,.........value:.<spa
88720 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c n.class="tok-type">comptime_int<
88740 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d /span>,.....};......<span.class=
88760 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d "tok-kw">pub</span>.<span.class=
88780 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 72 72 6f 72 53 65 74 20 3d "tok-kw">const</span>.ErrorSet.=
887a0 20 3f 5b 5d 45 72 72 6f 72 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .?[]Error;......<span.class="tok
887c0 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b -kw">pub</span>.<span.class="tok
887e0 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 6e 75 6d 46 69 65 6c 64 20 3d 20 3c 73 -kw">const</span>.EnumField.=.<s
88800 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e pan.class="tok-kw">struct</span>
88820 20 7b 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .{.........name:.[]<span.class="
88840 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">const</span>.<span.class
88860 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 76 ="tok-type">u8</span>,.........v
88880 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d alue:.<span.class="tok-type">com
888a0 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 ptime_int</span>,.....};......<s
888c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
888e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
88900 45 6e 75 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 Enum.=.<span.class="tok-kw">stru
88920 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 3a 20 43 6f 6e 74 ct</span>.{.........layout:.Cont
88940 61 69 6e 65 72 4c 61 79 6f 75 74 2c 0a 20 20 20 20 20 20 20 20 74 61 67 5f 74 79 70 65 3a 20 3c ainerLayout,.........tag_type:.<
88960 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e span.class="tok-type">type</span
88980 3e 2c 0a 20 20 20 20 20 20 20 20 66 69 65 6c 64 73 3a 20 5b 5d 45 6e 75 6d 46 69 65 6c 64 2c 0a >,.........fields:.[]EnumField,.
889a0 20 20 20 20 20 20 20 20 64 65 63 6c 73 3a 20 5b 5d 44 65 63 6c 61 72 61 74 69 6f 6e 2c 0a 20 20 ........decls:.[]Declaration,...
889c0 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 ..};......<span.class="tok-kw">p
889e0 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ub</span>.<span.class="tok-kw">c
88a00 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 55 6e 69 6f 6e 46 69 65 6c 64 20 3d 20 3c 73 70 61 6e 20 63 onst</span>.UnionField.=.<span.c
88a20 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-kw">struct</span>.{...
88a40 20 20 20 20 20 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ......name:.[]<span.class="tok-k
88a60 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b w">const</span>.<span.class="tok
88a80 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 65 6e 75 6d 5f 66 -type">u8</span>,.........enum_f
88aa0 69 65 6c 64 3a 20 3f 45 6e 75 6d 46 69 65 6c 64 2c 0a 20 20 20 20 20 20 20 20 66 69 65 6c 64 5f ield:.?EnumField,.........field_
88ac0 74 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 type:.<span.class="tok-type">typ
88ae0 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 e</span>,.....};......<span.clas
88b00 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 s="tok-kw">pub</span>.<span.clas
88b20 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 55 6e 69 6f 6e 20 3d 20 s="tok-kw">const</span>.Union.=.
88b40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 <span.class="tok-kw">struct</spa
88b60 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 3a 20 43 6f 6e 74 61 69 6e 65 72 4c 61 n>.{.........layout:.ContainerLa
88b80 79 6f 75 74 2c 0a 20 20 20 20 20 20 20 20 74 61 67 5f 74 79 70 65 3a 20 3f 3c 73 70 61 6e 20 63 yout,.........tag_type:.?<span.c
88ba0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 lass="tok-type">type</span>,....
88bc0 20 20 20 20 20 66 69 65 6c 64 73 3a 20 5b 5d 55 6e 69 6f 6e 46 69 65 6c 64 2c 0a 20 20 20 20 20 .....fields:.[]UnionField,......
88be0 20 20 20 64 65 63 6c 73 3a 20 5b 5d 44 65 63 6c 61 72 61 74 69 6f 6e 2c 0a 20 20 20 20 7d 3b 0a ...decls:.[]Declaration,.....};.
88c00 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 .....<span.class="tok-kw">pub</s
88c20 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c pan>.<span.class="tok-kw">const<
88c40 2f 73 70 61 6e 3e 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 3c 73 70 61 6e /span>.CallingConvention.=.<span
88c60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 .class="tok-kw">enum</span>.{...
88c80 20 20 20 20 20 20 55 6e 73 70 65 63 69 66 69 65 64 2c 0a 20 20 20 20 20 20 20 20 43 2c 0a 20 20 ......Unspecified,.........C,...
88ca0 20 20 20 20 20 20 43 6f 6c 64 2c 0a 20 20 20 20 20 20 20 20 4e 61 6b 65 64 2c 0a 20 20 20 20 20 ......Cold,.........Naked,......
88cc0 20 20 20 53 74 64 63 61 6c 6c 2c 0a 20 20 20 20 20 20 20 20 41 73 79 6e 63 2c 0a 20 20 20 20 7d ...Stdcall,.........Async,.....}
88ce0 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c ;......<span.class="tok-kw">pub<
88d00 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 /span>.<span.class="tok-kw">cons
88d20 74 3c 2f 73 70 61 6e 3e 20 46 6e 41 72 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f t</span>.FnArg.=.<span.class="to
88d40 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 69 73 k-kw">struct</span>.{.........is
88d60 5f 67 65 6e 65 72 69 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 _generic:.<span.class="tok-type"
88d80 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 69 73 5f 6e 6f 61 6c 69 61 73 >bool</span>,.........is_noalias
88da0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 :.<span.class="tok-type">bool</s
88dc0 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 61 72 67 5f 74 79 70 65 3a 20 3f 3c 73 70 61 6e 20 63 pan>,.........arg_type:.?<span.c
88de0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 lass="tok-type">type</span>,....
88e00 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 .};......<span.class="tok-kw">pu
88e20 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f b</span>.<span.class="tok-kw">co
88e40 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b nst</span>.Fn.=.<span.class="tok
88e60 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 63 61 6c -kw">struct</span>.{.........cal
88e80 6c 69 6e 67 5f 63 6f 6e 76 65 6e 74 69 6f 6e 3a 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 ling_convention:.CallingConventi
88ea0 6f 6e 2c 0a 20 20 20 20 20 20 20 20 69 73 5f 67 65 6e 65 72 69 63 3a 20 3c 73 70 61 6e 20 63 6c on,.........is_generic:.<span.cl
88ec0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 ass="tok-type">bool</span>,.....
88ee0 20 20 20 20 69 73 5f 76 61 72 5f 61 72 67 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ....is_var_args:.<span.class="to
88f00 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 72 65 74 k-type">bool</span>,.........ret
88f20 75 72 6e 5f 74 79 70 65 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 urn_type:.?<span.class="tok-type
88f40 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 61 73 79 6e 63 5f 61 6c 6c ">type</span>,.........async_all
88f60 6f 63 61 74 6f 72 5f 74 79 70 65 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ocator_type:.?<span.class="tok-t
88f80 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 61 72 67 73 3a 20 ype">type</span>,.........args:.
88fa0 5b 5d 46 6e 41 72 67 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 []FnArg,.....};......<span.class
88fc0 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 ="tok-kw">pub</span>.<span.class
88fe0 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 72 6f 6d 69 73 65 20 3d ="tok-kw">const</span>.Promise.=
89000 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 .<span.class="tok-kw">struct</sp
89020 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 an>.{.........child:.?<span.clas
89040 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b s="tok-type">type</span>,.....};
89060 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f ......<span.class="tok-kw">pub</
89080 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
890a0 3c 2f 73 70 61 6e 3e 20 56 65 63 74 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.Vector.=.<span.class="to
890c0 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6c 65 k-kw">struct</span>.{.........le
890e0 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 n:.<span.class="tok-type">compti
89100 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 3a 20 3c 73 me_int</span>,.........child:.<s
89120 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e pan.class="tok-type">type</span>
89140 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ,.....};......<span.class="tok-k
89160 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b w">pub</span>.<span.class="tok-k
89180 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 3c 73 w">const</span>.Declaration.=.<s
891a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e pan.class="tok-kw">struct</span>
891c0 20 7b 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .{.........name:.[]<span.class="
891e0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-kw">const</span>.<span.class
89200 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 69 ="tok-type">u8</span>,.........i
89220 73 5f 70 75 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f s_pub:.<span.class="tok-type">bo
89240 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 64 61 74 61 3a 20 44 61 74 61 2c 0a 0a ol</span>,.........data:.Data,..
89260 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 ........<span.class="tok-kw">pub
89280 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e </span>.<span.class="tok-kw">con
892a0 73 74 3c 2f 73 70 61 6e 3e 20 44 61 74 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f st</span>.Data.=.<span.class="to
892c0 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">union</span>(<span.class="
892e0 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 tok-kw">enum</span>).{..........
89300 20 20 20 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e ...Type:.<span.class="tok-type">
89320 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 61 72 3a 20 3c 73 type</span>,.............Var:.<s
89340 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e pan.class="tok-type">type</span>
89360 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 46 6e 3a 20 46 6e 44 65 63 6c 2c 0a 0a 20 20 20 20 20 ,.............Fn:.FnDecl,.......
89380 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c .......<span.class="tok-kw">pub<
893a0 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 /span>.<span.class="tok-kw">cons
893c0 74 3c 2f 73 70 61 6e 3e 20 46 6e 44 65 63 6c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t</span>.FnDecl.=.<span.class="t
893e0 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 ok-kw">struct</span>.{..........
89400 20 20 20 20 20 20 20 66 6e 5f 74 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .......fn_type:.<span.class="tok
89420 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 -type">type</span>,.............
89440 20 20 20 20 69 6e 6c 69 6e 65 5f 74 79 70 65 3a 20 49 6e 6c 69 6e 65 2c 0a 20 20 20 20 20 20 20 ....inline_type:.Inline,........
89460 20 20 20 20 20 20 20 20 20 63 61 6c 6c 69 6e 67 5f 63 6f 6e 76 65 6e 74 69 6f 6e 3a 20 43 61 6c .........calling_convention:.Cal
89480 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lingConvention,.................
894a0 69 73 5f 76 61 72 5f 61 72 67 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 is_var_args:.<span.class="tok-ty
894c0 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe">bool</span>,................
894e0 20 69 73 5f 65 78 74 65 72 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 .is_extern:.<span.class="tok-typ
89500 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e">bool</span>,.................
89520 69 73 5f 65 78 70 6f 72 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 is_export:.<span.class="tok-type
89540 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c ">bool</span>,.................l
89560 69 62 5f 6e 61 6d 65 3a 20 3f 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ib_name:.?[]<span.class="tok-kw"
89580 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 >const</span>.<span.class="tok-t
895a0 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype">u8</span>,.................
895c0 72 65 74 75 72 6e 5f 74 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 return_type:.<span.class="tok-ty
895e0 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe">type</span>,................
89600 20 61 72 67 5f 6e 61 6d 65 73 3a 20 5b 5d 5b 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .arg_names:.[][].<span.class="to
89620 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">const</span>.<span.class="
89640 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 20 20 20 20 20 20 tok-type">u8</span>,............
89660 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f ......<span.class="tok-kw">pub</
89680 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
896a0 3c 2f 73 70 61 6e 3e 20 49 6e 6c 69 6e 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.Inline.=.<span.class="to
896c0 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 k-kw">enum</span>.{.............
896e0 20 20 20 20 20 20 20 20 41 75 74 6f 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........Auto,...................
89700 20 20 41 6c 77 61 79 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 65 ..Always,.....................Ne
89720 76 65 72 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 ver,.................};.........
89740 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 7d 3b 0a 7d 3b 3c 2f 63 6f 64 ....};.........};.....};.};</cod
89760 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 3c 61 20 e></pre>.......<p>.......For.<a.
89780 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 73 3c 2f 61 3e 2c 20 3c 61 20 68 href="#struct">structs</a>,.<a.h
897a0 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 ref="#union">unions</a>,.<a.href
897c0 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 73 3c 2f 61 3e 2c 20 61 6e 64 0a 20 20 20 20 20 20 3c 61 ="#enum">enums</a>,.and.......<a
897e0 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 3e 65 72 72 6f 72 20 73 65 .href="#Error-Set-Type">error.se
89800 74 73 3c 2f 61 3e 2c 20 74 68 65 20 66 69 65 6c 64 73 20 61 72 65 20 67 75 61 72 61 6e 74 65 65 ts</a>,.the.fields.are.guarantee
89820 64 20 74 6f 20 62 65 20 69 6e 20 74 68 65 20 73 61 6d 65 0a 20 20 20 20 20 20 6f 72 64 65 72 20 d.to.be.in.the.same.......order.
89840 61 73 20 64 65 63 6c 61 72 65 64 2e 20 46 6f 72 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 74 as.declared..For.declarations,.t
89860 68 65 20 6f 72 64 65 72 20 69 73 20 75 6e 73 70 65 63 69 66 69 65 64 2e 0a 20 20 20 20 20 20 3c he.order.is.unspecified........<
89880 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 79 70 65 4e 61 /p>...............<h2.id="typeNa
898a0 6d 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 74 79 70 65 4e 61 6d 65 22 3e 40 74 79 70 me"><a.href="#toc-typeName">@typ
898c0 65 4e 61 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 eName</a>.<a.class="hdr".href="#
898e0 74 79 70 65 4e 61 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 typeName">..</a></h2>........<pr
89900 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
89920 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 54 "tok-builtin">@typeName</span>(T
89940 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 :.<span.class="tok-type">type</s
89960 70 61 6e 3e 29 20 5b 4e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e pan>).[N]<span.class="tok-type">
89980 75 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e u8</span></code></pre>.......<p>
899a0 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 .......This.function.returns.the
899c0 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 20 74 79 70 65 .string.representation.of.a.type
899e0 2c 20 61 73 0a 20 20 20 20 20 20 61 6e 20 61 72 72 61 79 2e 20 49 74 20 69 73 20 65 71 75 69 76 ,.as.......an.array..It.is.equiv
89a00 61 6c 65 6e 74 20 74 6f 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 6f 66 20 74 68 65 alent.to.a.string.literal.of.the
89a20 20 74 79 70 65 20 6e 61 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 0a .type.name........</p>..........
89a40 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 79 70 65 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 23 ......<h2.id="typeOf"><a.href="#
89a60 74 6f 63 2d 74 79 70 65 4f 66 22 3e 40 74 79 70 65 4f 66 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 toc-typeOf">@typeOf</a>.<a.class
89a80 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 79 70 65 4f 66 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 ="hdr".href="#typeOf">..</a></h2
89aa0 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e >........<pre><code.class="zig">
89ac0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f <span.class="tok-builtin">@typeO
89ae0 66 3c 2f 73 70 61 6e 3e 28 65 78 70 72 65 73 73 69 6f 6e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 f</span>(expression).<span.class
89b00 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f ="tok-type">type</span></code></
89b20 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 pre>.......<p>.......This.functi
89b40 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 6e 73 74 61 on.returns.a.compile-time.consta
89b60 6e 74 2c 20 77 68 69 63 68 20 69 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 0a 20 20 20 nt,.which.is.the.type.of.the....
89b80 20 20 20 65 78 70 72 65 73 73 69 6f 6e 20 70 61 73 73 65 64 20 61 73 20 61 6e 20 61 72 67 75 6d ...expression.passed.as.an.argum
89ba0 65 6e 74 2e 20 54 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 65 64 ent..The.expression.is.evaluated
89bc0 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c 61 73 ........</p>.......<p><code.clas
89be0 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e s="zig"><span.class="tok-builtin
89c00 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 67 75 61 72 61 6e 74 65 ">@typeOf</span></code>.guarante
89c20 65 73 20 6e 6f 20 72 75 6e 2d 74 69 6d 65 20 73 69 64 65 2d 65 66 66 65 63 74 73 20 77 69 74 68 es.no.run-time.side-effects.with
89c40 69 6e 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 in.the.expression:</p>.......<p.
89c60 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 class="file">test.zig</p><pre><c
89c80 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
89ca0 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c -kw">const</span>.std.=.<span.cl
89cc0 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e ass="tok-builtin">@import</span>
89ce0 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 (<span.class="tok-str">&quot;std
89d00 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b &quot;</span>);.<span.class="tok
89d20 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 -kw">const</span>.assert.=.std.d
89d40 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ebug.assert;..<span.class="tok-k
89d60 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d w">test</span>.<span.class="tok-
89d80 73 74 72 22 3e 26 71 75 6f 74 3b 6e 6f 20 72 75 6e 74 69 6d 65 20 73 69 64 65 20 65 66 66 65 63 str">&quot;no.runtime.side.effec
89da0 74 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ts&quot;</span>.{.....<span.clas
89dc0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 64 61 74 61 3a 20 3c 73 70 61 s="tok-kw">var</span>.data:.<spa
89de0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 n.class="tok-type">i32</span>.=.
89e00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e <span.class="tok-number">0</span
89e20 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 >;.....<span.class="tok-kw">cons
89e40 74 3c 2f 73 70 61 6e 3e 20 54 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 t</span>.T.=.<span.class="tok-bu
89e60 69 6c 74 69 6e 22 3e 40 74 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 66 6f 6f 28 3c 73 70 61 6e 20 iltin">@typeOf</span>(foo(<span.
89e80 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 26 61 6d class="tok-type">i32</span>,.&am
89ea0 70 3b 64 61 74 61 29 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b p;data));.....<span.class="tok-k
89ec0 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 28 54 20 3d 3d 20 3c w">comptime</span>.assert(T.==.<
89ee0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">i32</span>
89f00 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 64 61 74 61 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 );.....assert(data.==.<span.clas
89f20 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 s="tok-number">0</span>);.}..<sp
89f40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 an.class="tok-kw">fn</span>.<spa
89f60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 n.class="tok-fn">foo</span>(<spa
89f80 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e n.class="tok-kw">comptime</span>
89fa0 20 54 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c .T:.<span.class="tok-type">type<
89fc0 2f 73 70 61 6e 3e 2c 20 70 74 72 3a 20 2a 54 29 20 54 20 7b 0a 20 20 20 20 70 74 72 2e 2a 20 2b /span>,.ptr:.*T).T.{.....ptr.*.+
89fe0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 =.<span.class="tok-number">1</sp
8a000 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 an>;.....<span.class="tok-kw">re
8a020 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 70 74 72 2e 2a 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 turn</span>.ptr.*;.}</code></pre
8a040 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 ><pre><code.class="shell">$.zig.
8a060 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 6e 6f 20 test.test.zig.1/1.test.&quot;no.
8a080 72 75 6e 74 69 6d 65 20 73 69 64 65 20 65 66 66 65 63 74 73 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a runtime.side.effects&quot;...OK.
8a0a0 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a All.tests.passed..</code></pre>.
8a0c0 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 75 6e 69 6f 6e 49 6e 69 74 ...............<h2.id="unionInit
8a0e0 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 75 6e 69 6f 6e 49 6e 69 74 22 3e 40 75 6e 69 6f "><a.href="#toc-unionInit">@unio
8a100 6e 49 6e 69 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 nInit</a>.<a.class="hdr".href="#
8a120 75 6e 69 6f 6e 49 6e 69 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 unionInit">..</a></h2>........<p
8a140 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
8a160 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 75 6e 69 6f 6e 49 6e 69 74 3c 2f 73 70 61 6e 3e ="tok-builtin">@unionInit</span>
8a180 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f (<span.class="tok-kw">comptime</
8a1a0 73 70 61 6e 3e 20 55 6e 69 6f 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 span>.Union:.<span.class="tok-ty
8a1c0 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pe">type</span>,.<span.class="to
8a1e0 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 63 74 69 76 65 5f 66 69 65 k-kw">comptime</span>.active_fie
8a200 6c 64 5f 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ld_name:.[]<span.class="tok-kw">
8a220 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 const</span>.<span.class="tok-ty
8a240 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 69 6e 69 74 5f 65 78 70 72 29 20 55 6e 69 6f 6e 3c pe">u8</span>,.init_expr).Union<
8a260 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 /code></pre>.......<p>.......Thi
8a280 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 20 61 73 20 3c 61 20 68 72 65 66 3d 22 s.is.the.same.thing.as.<a.href="
8a2a0 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e #union">union</a>.initialization
8a2c0 20 73 79 6e 74 61 78 2c 20 65 78 63 65 70 74 20 74 68 61 74 20 74 68 65 20 66 69 65 6c 64 20 6e .syntax,.except.that.the.field.n
8a2e0 61 6d 65 20 69 73 20 61 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d ame.is.a.......<a.href="#comptim
8a300 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2d 6b 6e 6f 77 6e 20 76 61 6c 75 65 20 72 61 74 68 e">comptime</a>-known.value.rath
8a320 65 72 20 74 68 61 6e 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 20 74 6f 6b 65 6e 2e 0a 20 20 20 er.than.an.identifier.token.....
8a340 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c ...</p>.......<p>.......<code.cl
8a360 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 ass="zig"><span.class="tok-built
8a380 69 6e 22 3e 40 75 6e 69 6f 6e 49 6e 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 6f 72 in">@unionInit</span></code>.for
8a3a0 77 61 72 64 73 20 69 74 73 20 3c 61 20 68 72 65 66 3d 22 23 52 65 73 75 6c 74 2d 4c 6f 63 61 74 wards.its.<a.href="#Result-Locat
8a3c0 69 6f 6e 2d 53 65 6d 61 6e 74 69 63 73 22 3e 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 3c 2f ion-Semantics">result.location</
8a3e0 61 3e 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 69 6e 69 74 5f 65 78 70 a>.to.<code.class="zig">init_exp
8a400 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 r</code>........</p>............
8a420 20 20 20 3c 68 32 20 69 64 3d 22 56 65 63 74 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 ...<h2.id="Vector"><a.href="#toc
8a440 2d 56 65 63 74 6f 72 22 3e 40 56 65 63 74 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 -Vector">@Vector</a>.<a.class="h
8a460 64 72 22 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a dr".href="#Vector">..</a></h2>..
8a480 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
8a4a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 56 65 63 74 6f 72 3c 2f an.class="tok-builtin">@Vector</
8a4c0 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 span>(<span.class="tok-kw">compt
8a4e0 69 6d 65 3c 2f 73 70 61 6e 3e 20 6c 65 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ime</span>.len:.<span.class="tok
8a500 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -type">u32</span>,.<span.class="
8a520 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 45 6c 65 6d 54 79 70 65 tok-kw">comptime</span>.ElemType
8a540 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 :.<span.class="tok-type">type</s
8a560 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 pan>).<span.class="tok-type">typ
8a580 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a e</span></code></pre>.......<p>.
8a5a0 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 76 65 ......This.function.returns.a.ve
8a5c0 63 74 6f 72 20 74 79 70 65 20 66 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 53 49 4d 44 22 3e 53 49 ctor.type.for.<a.href="#SIMD">SI
8a5e0 4d 44 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 MD</a>........</p>.......<p>....
8a600 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 45 6c 65 6d 54 79 70 65 3c 2f 63 ...<code.class="zig">ElemType</c
8a620 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 ode>.must.be.an.<a.href="#Intege
8a640 72 73 22 3e 69 6e 74 65 67 65 72 3c 2f 61 3e 2c 20 61 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f rs">integer</a>,.a.<a.href="#Flo
8a660 61 74 73 22 3e 66 6c 6f 61 74 3c 2f 61 3e 2c 20 6f 72 20 61 0a 20 20 20 20 20 20 3c 61 20 68 72 ats">float</a>,.or.a.......<a.hr
8a680 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 2e 0a 20 20 20 20 ef="#Pointers">pointer</a>......
8a6a0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 ..</p>......................<h1.
8a6c0 69 64 3d 22 42 75 69 6c 64 2d 4d 6f 64 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 42 75 id="Build-Mode"><a.href="#toc-Bu
8a6e0 69 6c 64 2d 4d 6f 64 65 22 3e 42 75 69 6c 64 20 4d 6f 64 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 ild-Mode">Build.Mode</a>.<a.clas
8a700 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 42 75 69 6c 64 2d 4d 6f 64 65 22 3e c2 a7 3c 2f 61 s="hdr".href="#Build-Mode">..</a
8a720 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 68 61 73 20 ></h1>........<p>.......Zig.has.
8a740 66 6f 75 72 20 62 75 69 6c 64 20 6d 6f 64 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 four.build.modes:.......</p>....
8a760 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 44 65 ...<ul>.........<li><a.href="#De
8a780 62 75 67 22 3e 44 65 62 75 67 3c 2f 61 3e 20 28 64 65 66 61 75 6c 74 29 3c 2f 6c 69 3e 0a 20 20 bug">Debug</a>.(default)</li>...
8a7a0 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 46 61 73 74 22 ......<li><a.href="#ReleaseFast"
8a7c0 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c >ReleaseFast</a></li>.........<l
8a7e0 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 53 61 66 65 22 3e 52 65 6c 65 61 73 65 i><a.href="#ReleaseSafe">Release
8a800 53 61 66 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 Safe</a></li>.........<li><a.hre
8a820 66 3d 22 23 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 3e 52 65 6c 65 61 73 65 53 6d 61 6c 6c 3c 2f f="#ReleaseSmall">ReleaseSmall</
8a840 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 a></li>.......</ul>.......<p>...
8a860 20 20 20 20 54 6f 20 61 64 64 20 73 74 61 6e 64 61 72 64 20 62 75 69 6c 64 20 6f 70 74 69 6f 6e ....To.add.standard.build.option
8a880 73 20 74 6f 20 61 20 3c 63 6f 64 65 3e 62 75 69 6c 64 2e 7a 69 67 3c 2f 63 6f 64 65 3e 20 66 69 s.to.a.<code>build.zig</code>.fi
8a8a0 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 le:.......</p>.......<pre><code.
8a8c0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
8a8e0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 42 75 69 6c 64 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c >const</span>.Builder.=.<span.cl
8a900 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e ass="tok-builtin">@import</span>
8a920 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 (<span.class="tok-str">&quot;std
8a940 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 62 75 69 6c 64 2e 42 75 69 6c 64 65 72 3b 0a 0a 3c &quot;</span>).build.Builder;..<
8a960 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c span.class="tok-kw">pub</span>.<
8a980 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 span.class="tok-kw">fn</span>.<s
8a9a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 75 69 6c 64 3c 2f 73 70 61 6e 3e 28 pan.class="tok-fn">build</span>(
8a9c0 62 3a 20 2a 42 75 69 6c 64 65 72 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 b:.*Builder).<span.class="tok-ty
8a9e0 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 pe">void</span>.{.....<span.clas
8aa00 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 65 20 3d 20 62 2e s="tok-kw">const</span>.exe.=.b.
8aa20 61 64 64 45 78 65 63 75 74 61 62 6c 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 addExecutable(<span.class="tok-s
8aa40 74 72 22 3e 26 71 75 6f 74 3b 65 78 61 6d 70 6c 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 tr">&quot;example&quot;</span>,.
8aa60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 78 61 6d <span.class="tok-str">&quot;exam
8aa80 70 6c 65 2e 7a 69 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 65 78 65 2e 73 ple.zig&quot;</span>);.....exe.s
8aaa0 65 74 42 75 69 6c 64 4d 6f 64 65 28 62 2e 73 74 61 6e 64 61 72 64 52 65 6c 65 61 73 65 4f 70 74 etBuildMode(b.standardReleaseOpt
8aac0 69 6f 6e 73 28 29 29 3b 0a 20 20 20 20 62 2e 64 65 66 61 75 6c 74 5f 73 74 65 70 2e 64 65 70 65 ions());.....b.default_step.depe
8aae0 6e 64 4f 6e 28 26 61 6d 70 3b 65 78 65 2e 73 74 65 70 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 ndOn(&amp;exe.step);.}</code></p
8ab00 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 75 73 65 73 20 re>.......<p>.......This.causes.
8ab20 74 68 65 73 65 20 6f 70 74 69 6f 6e 73 20 74 6f 20 62 65 20 61 76 61 69 6c 61 62 6c 65 3a 0a 20 these.options.to.be.available:..
8ab40 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 .....</p>.......<pre><code.class
8ab60 3d 22 73 68 65 6c 6c 22 3e 20 20 2d 44 72 65 6c 65 61 73 65 2d 73 61 66 65 3d 5b 62 6f 6f 6c 5d ="shell">..-Drelease-safe=[bool]
8ab80 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 6f 6e 20 61 6e 64 20 73 61 66 65 74 79 20 6f 6e 0a .optimizations.on.and.safety.on.
8aba0 20 20 2d 44 72 65 6c 65 61 73 65 2d 66 61 73 74 3d 5b 62 6f 6f 6c 5d 20 6f 70 74 69 6d 69 7a 61 ..-Drelease-fast=[bool].optimiza
8abc0 74 69 6f 6e 73 20 6f 6e 20 61 6e 64 20 73 61 66 65 74 79 20 6f 66 66 0a 20 20 2d 44 72 65 6c 65 tions.on.and.safety.off...-Drele
8abe0 61 73 65 2d 73 6d 61 6c 6c 3d 5b 62 6f 6f 6c 5d 20 73 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69 ase-small=[bool].size.optimizati
8ac00 6f 6e 73 20 6f 6e 20 61 6e 64 20 73 61 66 65 74 79 20 6f 66 66 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ons.on.and.safety.off</code></pr
8ac20 65 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 44 65 62 75 67 22 3e 3c 61 20 68 72 65 66 3d e>.......<h2.id="Debug"><a.href=
8ac40 22 23 74 6f 63 2d 44 65 62 75 67 22 3e 44 65 62 75 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d "#toc-Debug">Debug</a>.<a.class=
8ac60 22 68 64 72 22 20 68 72 65 66 3d 22 23 44 65 62 75 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a "hdr".href="#Debug">..</a></h2>.
8ac80 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e .......<pre><code.class="shell">
8aca0 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 3c 2f 63 6f 64 $.zig.build-exe.example.zig</cod
8acc0 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e e></pre>.......<ul>.........<li>
8ace0 46 61 73 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 Fast.compilation.speed</li>.....
8ad00 20 20 20 20 3c 6c 69 3e 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 65 6e 61 62 6c 65 64 3c 2f 6c ....<li>Safety.checks.enabled</l
8ad20 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 72 75 6e 74 69 6d 65 20 70 65 72 66 i>.........<li>Slow.runtime.perf
8ad40 6f 72 6d 61 6e 63 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4c 61 72 67 65 20 62 ormance</li>.........<li>Large.b
8ad60 69 6e 61 72 79 20 73 69 7a 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4e 6f 20 72 inary.size</li>.........<li>No.r
8ad80 65 70 72 6f 64 75 63 69 62 6c 65 20 62 75 69 6c 64 20 72 65 71 75 69 72 65 6d 65 6e 74 3c 2f 6c eproducible.build.requirement</l
8ada0 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 i>.......</ul>..............<h2.
8adc0 69 64 3d 22 52 65 6c 65 61 73 65 46 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 52 id="ReleaseFast"><a.href="#toc-R
8ade0 65 6c 65 61 73 65 46 61 73 74 22 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 20 3c 61 20 63 eleaseFast">ReleaseFast</a>.<a.c
8ae00 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 46 61 73 74 22 3e c2 lass="hdr".href="#ReleaseFast">.
8ae20 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 .</a></h2>........<pre><code.cla
8ae40 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 ss="shell">$.zig.build-exe.examp
8ae60 6c 65 2e 7a 69 67 20 2d 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 le.zig.--release-fast</code></pr
8ae80 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 61 73 74 20 72 e>.......<ul>.........<li>Fast.r
8aea0 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 untime.performance</li>.........
8aec0 3c 6c 69 3e 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 64 69 73 61 62 6c 65 64 3c 2f 6c 69 3e 0a <li>Safety.checks.disabled</li>.
8aee0 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 ........<li>Slow.compilation.spe
8af00 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4c 61 72 67 65 20 62 69 6e 61 72 79 ed</li>.........<li>Large.binary
8af20 20 73 69 7a 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 70 72 6f 64 75 63 69 .size</li>.........<li>Reproduci
8af40 62 6c 65 20 62 75 69 6c 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 ble.build</li>.......</ul>......
8af60 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 65 6c 65 61 73 65 53 61 66 65 22 3e 3c 61 20 ........<h2.id="ReleaseSafe"><a.
8af80 68 72 65 66 3d 22 23 74 6f 63 2d 52 65 6c 65 61 73 65 53 61 66 65 22 3e 52 65 6c 65 61 73 65 53 href="#toc-ReleaseSafe">ReleaseS
8afa0 61 66 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 52 65 afe</a>.<a.class="hdr".href="#Re
8afc0 6c 65 61 73 65 53 61 66 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 leaseSafe">..</a></h2>........<p
8afe0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 re><code.class="shell">$.zig.bui
8b000 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 20 2d 2d 72 65 6c 65 61 73 65 2d 73 61 66 ld-exe.example.zig.--release-saf
8b020 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 e</code></pre>.......<ul>.......
8b040 20 20 3c 6c 69 3e 4d 65 64 69 75 6d 20 72 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 ..<li>Medium.runtime.performance
8b060 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 </li>.........<li>Safety.checks.
8b080 65 6e 61 62 6c 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 63 6f enabled</li>.........<li>Slow.co
8b0a0 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 mpilation.speed</li>.........<li
8b0c0 3e 4c 61 72 67 65 20 62 69 6e 61 72 79 20 73 69 7a 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 >Large.binary.size</li>.........
8b0e0 3c 6c 69 3e 52 65 70 72 6f 64 75 63 69 62 6c 65 20 62 75 69 6c 64 3c 2f 6c 69 3e 0a 20 20 20 20 <li>Reproducible.build</li>.....
8b100 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 65 6c ..</ul>..............<h2.id="Rel
8b120 65 61 73 65 53 6d 61 6c 6c 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 52 65 6c 65 61 73 65 easeSmall"><a.href="#toc-Release
8b140 53 6d 61 6c 6c 22 3e 52 65 6c 65 61 73 65 53 6d 61 6c 6c 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 Small">ReleaseSmall</a>.<a.class
8b160 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 3e c2 a7 3c 2f ="hdr".href="#ReleaseSmall">..</
8b180 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d a></h2>........<pre><code.class=
8b1a0 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e "shell">$.zig.build-exe.example.
8b1c0 7a 69 67 20 2d 2d 72 65 6c 65 61 73 65 2d 73 6d 61 6c 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e zig.--release-small</code></pre>
8b1e0 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4d 65 64 69 75 6d 20 72 .......<ul>.........<li>Medium.r
8b200 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 untime.performance</li>.........
8b220 3c 6c 69 3e 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 64 69 73 61 62 6c 65 64 3c 2f 6c 69 3e 0a <li>Safety.checks.disabled</li>.
8b240 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 ........<li>Slow.compilation.spe
8b260 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6d 61 6c 6c 20 62 69 6e 61 72 79 ed</li>.........<li>Small.binary
8b280 20 73 69 7a 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 70 72 6f 64 75 63 69 .size</li>.........<li>Reproduci
8b2a0 62 6c 65 20 62 75 69 6c 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 ble.build</li>.......</ul>......
8b2c0 20 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 ........<p>See.also:</p><ul>.<li
8b2e0 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f ><a.href="#Compile-Variables">Co
8b300 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 mpile.Variables</a></li>.<li><a.
8b320 68 72 65 66 3d 22 23 5a 69 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 6d 22 3e 5a 69 67 20 42 75 69 href="#Zig-Build-System">Zig.Bui
8b340 6c 64 20 53 79 73 74 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 ld.System</a></li>.<li><a.href="
8b360 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 #Undefined-Behavior">Undefined.B
8b380 65 68 61 76 69 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a ehavior</a></li>.</ul>..........
8b3a0 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 53 69 6e 67 6c 65 2d 54 68 72 65 61 64 65 64 2d 42 75 ......<h1.id="Single-Threaded-Bu
8b3c0 69 6c 64 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 53 69 6e 67 6c 65 2d 54 68 72 65 61 ilds"><a.href="#toc-Single-Threa
8b3e0 64 65 64 2d 42 75 69 6c 64 73 22 3e 53 69 6e 67 6c 65 20 54 68 72 65 61 64 65 64 20 42 75 69 6c ded-Builds">Single.Threaded.Buil
8b400 64 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 69 6e ds</a>.<a.class="hdr".href="#Sin
8b420 67 6c 65 2d 54 68 72 65 61 64 65 64 2d 42 75 69 6c 64 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e gle-Threaded-Builds">..</a></h1>
8b440 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 68 61 73 20 61 20 63 6f 6d 70 69 6c 65 20 6f 70 74 ........<p>Zig.has.a.compile.opt
8b460 69 6f 6e 20 3c 63 6f 64 65 3e 2d 2d 73 69 6e 67 6c 65 2d 74 68 72 65 61 64 65 64 3c 2f 63 6f 64 ion.<code>--single-threaded</cod
8b480 65 3e 20 77 68 69 63 68 20 68 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 66 66 65 63 e>.which.has.the.following.effec
8b4a0 74 73 3a 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6c 6c 20 3c ts:.......<ul>.........<li>All.<
8b4c0 61 20 68 72 65 66 3d 22 23 54 68 72 65 61 64 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 a.href="#Thread-Local-Variables"
8b4e0 3e 54 68 72 65 61 64 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 20 61 72 65 20 >Thread.Local.Variables</a>.are.
8b500 74 72 65 61 74 65 64 20 61 73 20 3c 61 20 68 72 65 66 3d 22 23 47 6c 6f 62 61 6c 2d 56 61 72 69 treated.as.<a.href="#Global-Vari
8b520 61 62 6c 65 73 22 3e 47 6c 6f 62 61 6c 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 2e 3c 2f 6c 69 ables">Global.Variables</a>.</li
8b540 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 65 20 6f 76 65 72 68 65 61 64 20 6f 66 20 3c 61 >.........<li>The.overhead.of.<a
8b560 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 41 73 79 6e 63 20 46 .href="#Async-Functions">Async.F
8b580 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 20 62 65 63 6f 6d 65 73 20 65 71 75 69 76 61 6c 65 6e 74 20 unctions</a>.becomes.equivalent.
8b5a0 74 6f 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 6f 76 65 72 68 65 61 64 2e 3c 2f 6c 69 3e 0a to.function.call.overhead.</li>.
8b5c0 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 ........<li>The.<code.class="zig
8b5e0 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 "><span.class="tok-builtin">@imp
8b600 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 ort</span>(<span.class="tok-str"
8b620 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 73 69 6e >&quot;builtin&quot;</span>).sin
8b640 67 6c 65 5f 74 68 72 65 61 64 65 64 3c 2f 63 6f 64 65 3e 20 62 65 63 6f 6d 65 73 20 3c 63 6f 64 gle_threaded</code>.becomes.<cod
8b660 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e e.class="zig"><span.class="tok-n
8b680 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 ull">true</span></code>.........
8b6a0 20 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 76 61 72 69 6f 75 73 20 75 73 65 72 6c 61 6e 64 ..and.therefore.various.userland
8b6c0 20 41 50 49 73 20 77 68 69 63 68 20 72 65 61 64 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 62 .APIs.which.read.this.variable.b
8b6e0 65 63 6f 6d 65 20 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 2e 0a 20 20 20 20 20 20 20 20 20 20 ecome.more.efficient............
8b700 46 6f 72 20 65 78 61 6d 70 6c 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 For.example.<code.class="zig">st
8b720 64 2e 4d 75 74 65 78 3c 2f 63 6f 64 65 3e 20 62 65 63 6f 6d 65 73 0a 20 20 20 20 20 20 20 20 20 d.Mutex</code>.becomes..........
8b740 20 61 6e 20 65 6d 70 74 79 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 61 6e 64 20 61 6c 6c .an.empty.data.structure.and.all
8b760 20 6f 66 20 69 74 73 20 66 75 6e 63 74 69 6f 6e 73 20 62 65 63 6f 6d 65 20 6e 6f 2d 6f 70 73 2e .of.its.functions.become.no-ops.
8b780 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 </li>.......</ul>.......</p>....
8b7a0 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 ...........<h1.id="Undefined-Beh
8b7c0 61 76 69 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 55 6e 64 65 66 69 6e 65 64 2d 42 avior"><a.href="#toc-Undefined-B
8b7e0 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 20 ehavior">Undefined.Behavior</a>.
8b800 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d <a.class="hdr".href="#Undefined-
8b820 42 65 68 61 76 69 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e Behavior">..</a></h1>........<p>
8b840 0a 20 20 20 20 20 20 5a 69 67 20 68 61 73 20 6d 61 6e 79 20 69 6e 73 74 61 6e 63 65 73 20 6f 66 .......Zig.has.many.instances.of
8b860 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 20 49 66 20 75 6e 64 65 66 69 6e 65 .undefined.behavior..If.undefine
8b880 64 20 62 65 68 61 76 69 6f 72 20 69 73 0a 20 20 20 20 20 20 64 65 74 65 63 74 65 64 20 61 74 20 d.behavior.is.......detected.at.
8b8a0 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 5a 69 67 20 65 6d 69 74 73 20 61 20 63 6f 6d 70 69 6c compile-time,.Zig.emits.a.compil
8b8c0 65 20 65 72 72 6f 72 20 61 6e 64 20 72 65 66 75 73 65 73 20 74 6f 20 63 6f 6e 74 69 6e 75 65 2e e.error.and.refuses.to.continue.
8b8e0 0a 20 20 20 20 20 20 4d 6f 73 74 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 74 .......Most.undefined.behavior.t
8b900 68 61 74 20 63 61 6e 6e 6f 74 20 62 65 20 64 65 74 65 63 74 65 64 20 61 74 20 63 6f 6d 70 69 6c hat.cannot.be.detected.at.compil
8b920 65 2d 74 69 6d 65 20 63 61 6e 20 62 65 20 64 65 74 65 63 74 65 64 0a 20 20 20 20 20 20 61 74 20 e-time.can.be.detected.......at.
8b940 72 75 6e 74 69 6d 65 2e 20 49 6e 20 74 68 65 73 65 20 63 61 73 65 73 2c 20 5a 69 67 20 68 61 73 runtime..In.these.cases,.Zig.has
8b960 20 73 61 66 65 74 79 20 63 68 65 63 6b 73 2e 20 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 63 61 .safety.checks..Safety.checks.ca
8b980 6e 20 62 65 20 64 69 73 61 62 6c 65 64 0a 20 20 20 20 20 20 6f 6e 20 61 20 70 65 72 2d 62 6c 6f n.be.disabled.......on.a.per-blo
8b9a0 63 6b 20 62 61 73 69 73 20 77 69 74 68 20 3c 61 20 68 72 65 66 3d 22 23 73 65 74 52 75 6e 74 69 ck.basis.with.<a.href="#setRunti
8b9c0 6d 65 53 61 66 65 74 79 22 3e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 61 3e 2e meSafety">@setRuntimeSafety</a>.
8b9e0 20 54 68 65 20 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 46 61 73 74 22 3e 52 65 6c 65 .The.<a.href="#ReleaseFast">Rele
8ba00 61 73 65 46 61 73 74 3c 2f 61 3e 0a 20 20 20 20 20 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 aseFast</a>.......and.<a.href="#
8ba20 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 3e 52 65 6c 65 61 73 65 53 6d 61 6c 6c 3c 2f 61 3e 20 62 ReleaseSmall">ReleaseSmall</a>.b
8ba40 75 69 6c 64 20 6d 6f 64 65 73 20 64 69 73 61 62 6c 65 20 61 6c 6c 20 73 61 66 65 74 79 20 63 68 uild.modes.disable.all.safety.ch
8ba60 65 63 6b 73 20 28 65 78 63 65 70 74 20 77 68 65 72 65 20 6f 76 65 72 72 69 64 64 65 6e 0a 20 20 ecks.(except.where.overridden...
8ba80 20 20 20 20 62 79 20 3c 61 20 68 72 65 66 3d 22 23 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 ....by.<a.href="#setRuntimeSafet
8baa0 79 22 3e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 61 3e 29 20 69 6e 20 6f 72 64 y">@setRuntimeSafety</a>).in.ord
8bac0 65 72 20 74 6f 20 66 61 63 69 6c 69 74 61 74 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 0a er.to.facilitate.optimizations..
8bae0 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 ......</p>.......<p>.......When.
8bb00 61 20 73 61 66 65 74 79 20 63 68 65 63 6b 20 66 61 69 6c 73 2c 20 5a 69 67 20 63 72 61 73 68 65 a.safety.check.fails,.Zig.crashe
8bb20 73 20 77 69 74 68 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2c 20 6c 69 6b 65 20 74 68 69 73 3a s.with.a.stack.trace,.like.this:
8bb40 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 .......</p>.......<p.class="file
8bb60 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">test.zig</p><pre><code.class="
8bb80 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f zig"><span.class="tok-kw">test</
8bba0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>.<span.class="tok-str">&quo
8bbc0 74 3b 73 61 66 65 74 79 20 63 68 65 63 6b 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 t;safety.check&quot;</span>.{...
8bbe0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 ..<span.class="tok-kw">unreachab
8bc00 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 le</span>;.}</code></pre><pre><c
8bc20 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
8bc40 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 73 61 66 65 74 79 20 63 68 65 63 t.zig.1/1.test.&quot;safety.chec
8bc60 6b 26 71 75 6f 74 3b 2e 2e 2e 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f k&quot;...reached.unreachable.co
8bc80 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 de.<span.class="t37_1">/home/and
8bca0 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a y/dev/zig/docgen_tmp/test.zig:2:
8bcc0 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 5</span>:.<span.class="t2_0">0x2
8bce0 30 35 35 38 36 20 69 6e 20 74 65 73 74 20 26 71 75 6f 74 3b 73 61 66 65 74 79 20 63 68 65 63 6b 05586.in.test.&quot;safety.check
8bd00 26 71 75 6f 74 3b 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 75 6e 72 65 61 63 68 &quot;.(test)</span>.....unreach
8bd20 61 62 6c 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c able;.....<span.class="t32_1">^<
8bd40 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 /span>.<span.class="t37_1">/home
8bd60 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 /andy/dev/zig/lib/std/special/te
8bd80 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 33 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 st_runner.zig:13:25</span>:.<spa
8bda0 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 33 61 31 20 69 6e 20 73 74 64 2e 73 n.class="t2_0">0x2283a1.in.std.s
8bdc0 70 65 63 69 61 6c 2e 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 pecial.main.(test)</span>.......
8bde0 20 20 69 66 20 28 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 29 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 ..if.(test_fn.func()).|_|.{.....
8be00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ....................<span.class=
8be20 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 "t32_1">^</span>.<span.class="t3
8be40 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 7_1">/home/andy/dev/zig/lib/std/
8be60 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 32 30 34 3a 33 37 3c 2f 73 70 61 6e 3e 3a special/start.zig:204:37</span>:
8be80 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 32 31 35 20 69 6e 20 .<span.class="t2_0">0x227215.in.
8bea0 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 std.special.posixCallMainAndExit
8bec0 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 .(test)</span>.............const
8bee0 20 72 65 73 75 6c 74 20 3d 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 72 .result.=.root.main().catch.|err
8bf00 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.{.............................
8bf20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
8bf40 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 pan>.<span.class="t37_1">/home/a
8bf60 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 ndy/dev/zig/lib/std/special/star
8bf80 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d t.zig:102:5</span>:.<span.class=
8bfa0 22 74 32 5f 30 22 3e 30 78 32 32 37 30 38 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f "t2_0">0x22708f.in.std.special._
8bfc0 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e start.(test)</span>.....@noInlin
8bfe0 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 eCall(posixCallMainAndExit);....
8c000 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 .<span.class="t32_1">^</span>..T
8c020 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 ests.failed..Use.the.following.c
8c040 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a ommand.to.reproduce.the.failure:
8c060 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 ./home/andy/dev/zig/docgen_tmp/t
8c080 65 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d est.</code></pre>........<h2.id=
8c0a0 22 52 65 61 63 68 69 6e 67 2d 55 6e 72 65 61 63 68 61 62 6c 65 2d 43 6f 64 65 22 3e 3c 61 20 68 "Reaching-Unreachable-Code"><a.h
8c0c0 72 65 66 3d 22 23 74 6f 63 2d 52 65 61 63 68 69 6e 67 2d 55 6e 72 65 61 63 68 61 62 6c 65 2d 43 ref="#toc-Reaching-Unreachable-C
8c0e0 6f 64 65 22 3e 52 65 61 63 68 69 6e 67 20 55 6e 72 65 61 63 68 61 62 6c 65 20 43 6f 64 65 3c 2f ode">Reaching.Unreachable.Code</
8c100 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 52 65 61 63 68 69 6e a>.<a.class="hdr".href="#Reachin
8c120 67 2d 55 6e 72 65 61 63 68 61 62 6c 65 2d 43 6f 64 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a g-Unreachable-Code">..</a></h2>.
8c140 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 .......<p>At.compile-time:</p>..
8c160 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 .....<p.class="file">test.zig</p
8c180 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ><pre><code.class="zig"><span.cl
8c1a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 ass="tok-kw">comptime</span>.{..
8c1c0 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 ...assert(<span.class="tok-null"
8c1e0 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >false</span>);.}.<span.class="t
8c200 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
8c220 6b 2d 66 6e 22 3e 61 73 73 65 72 74 3c 2f 73 70 61 6e 3e 28 6f 6b 3a 20 3c 73 70 61 6e 20 63 6c k-fn">assert</span>(ok:.<span.cl
8c240 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 ass="tok-type">bool</span>).<spa
8c260 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b n.class="tok-type">void</span>.{
8c280 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 .....<span.class="tok-kw">if</sp
8c2a0 61 6e 3e 20 28 21 6f 6b 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 an>.(!ok).<span.class="tok-kw">u
8c2c0 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 nreachable</span>;.<span.class="
8c2e0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 tok-comment">//.assertion.failur
8c300 65 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 e</span>.}</code></pre><pre><cod
8c320 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e e.class="shell">$.zig.test.test.
8c340 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 zig.<span.class="t0_1">/home/and
8c360 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a y/dev/zig/docgen_tmp/test.zig:5:
8c380 31 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 14:.</span><span.class="t31_1">e
8c3a0 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 rror:</span><span.class="t0_1">.
8c3c0 75 6e 61 62 6c 65 20 74 6f 20 65 76 61 6c 75 61 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 unable.to.evaluate.constant.expr
8c3e0 65 73 73 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 ession</span>.....if.(!ok).unrea
8c400 63 68 61 62 6c 65 3b 20 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 chable;.//.assertion.failure....
8c420 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ..........<span.class="t32_1">^<
8c440 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f /span>.<span.class="t0_1">/home/
8c460 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 andy/dev/zig/docgen_tmp/test.zig
8c480 3a 32 3a 31 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 :2:11:.</span><span.class="t36_1
8c4a0 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 ">note:</span><span.class="t0_1"
8c4c0 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 >.called.from.here</span>.....as
8c4e0 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 sert(false);...........<span.cla
8c500 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ss="t32_1">^</span>.<span.class=
8c520 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e "t0_1">/home/andy/dev/zig/docgen
8c540 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 3a 31 30 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e _tmp/test.zig:1:10:.</span><span
8c560 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e .class="t36_1">note:</span><span
8c580 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c .class="t0_1">.called.from.here<
8c5a0 2f 73 70 61 6e 3e 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e /span>.comptime.{..........<span
8c5c0 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c .class="t32_1">^</span>.<span.cl
8c5e0 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f ass="t0_1">/home/andy/dev/zig/do
8c600 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 31 31 3a 20 3c 2f 73 70 61 6e 3e 3c cgen_tmp/test.zig:2:11:.</span><
8c620 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c span.class="t36_1">note:</span><
8c640 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 68 65 span.class="t0_1">.referenced.he
8c660 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 20 20 20 re</span>.....assert(false);....
8c680 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 .......<span.class="t32_1">^</sp
8c6a0 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 an>.</code></pre>........<p>At.r
8c6c0 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 untime:</p>.......<p.class="file
8c6e0 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">test.zig</p><pre><code.class="
8c700 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c zig"><span.class="tok-kw">const<
8c720 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 /span>.std.=.<span.class="tok-bu
8c740 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 iltin">@import</span>(<span.clas
8c760 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;std&quot;</spa
8c780 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f n>);..<span.class="tok-kw">pub</
8c7a0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
8c7c0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f pan>.<span.class="tok-fn">main</
8c7e0 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 span>().<span.class="tok-type">v
8c800 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 oid</span>.{.....std.debug.asser
8c820 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f t(<span.class="tok-null">false</
8c840 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 span>);.}</code></pre><pre><code
8c860 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 .class="shell">$.zig.build-exe.t
8c880 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 est.zig.$../test.reached.unreach
8c8a0 61 62 6c 65 20 63 6f 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 able.code.<span.class="t37_1">/h
8c8c0 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 64 65 62 75 67 2e 7a ome/andy/dev/zig/lib/std/debug.z
8c8e0 69 67 3a 32 30 36 3a 31 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ig:206:14</span>:.<span.class="t
8c900 32 5f 30 22 3e 30 78 32 30 35 35 35 62 20 69 6e 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 2_0">0x20555b.in.std.debug.asser
8c920 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 t.(test)</span>.....if.(!ok).unr
8c940 65 61 63 68 61 62 6c 65 3b 20 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 20 eachable;.//.assertion.failure..
8c960 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e ............<span.class="t32_1">
8c980 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f ^</span>.<span.class="t37_1">/ho
8c9a0 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e me/andy/dev/zig/docgen_tmp/test.
8c9c0 7a 69 67 3a 34 3a 32 31 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 zig:4:21</span>:.<span.class="t2
8c9e0 5f 30 22 3e 30 78 32 32 38 30 66 61 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 _0">0x2280fa.in.main.(test)</spa
8ca00 6e 3e 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a n>.....std.debug.assert(false);.
8ca20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ....................<span.class=
8ca40 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 "t32_1">^</span>.<span.class="t3
8ca60 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 7_1">/home/andy/dev/zig/lib/std/
8ca80 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a special/start.zig:194:22</span>:
8caa0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 .<span.class="t2_0">0x22718b.in.
8cac0 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 std.special.posixCallMainAndExit
8cae0 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e .(test)</span>.............root.
8cb00 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 main();......................<sp
8cb20 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 an.class="t32_1">^</span>.<span.
8cb40 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 class="t37_1">/home/andy/dev/zig
8cb60 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 /lib/std/special/start.zig:102:5
8cb80 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 </span>:.<span.class="t2_0">0x22
8cba0 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 706f.in.std.special._start.(test
8cbc0 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 )</span>.....@noInlineCall(posix
8cbe0 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 CallMainAndExit);.....<span.clas
8cc00 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d s="t32_1">^</span>.(process.term
8cc20 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a inated.by.signal)</code></pre>..
8cc40 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 64 65 78 2d 6f 75 74 2d 6f .............<h2.id="Index-out-o
8cc60 66 2d 42 6f 75 6e 64 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 64 65 78 2d 6f 75 f-Bounds"><a.href="#toc-Index-ou
8cc80 74 2d 6f 66 2d 42 6f 75 6e 64 73 22 3e 49 6e 64 65 78 20 6f 75 74 20 6f 66 20 42 6f 75 6e 64 73 t-of-Bounds">Index.out.of.Bounds
8cca0 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 64 65 78 </a>.<a.class="hdr".href="#Index
8ccc0 2d 6f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 -out-of-Bounds">..</a></h2>.....
8cce0 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 ...<p>At.compile-time:</p>......
8cd00 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 .<p.class="file">test.zig</p><pr
8cd20 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
8cd40 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c "tok-kw">comptime</span>.{.....<
8cd60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
8cd80 20 61 72 72 61 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 .array.=.<span.class="tok-str">&
8cda0 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 quot;hello&quot;</span>;.....<sp
8cdc0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 67 an.class="tok-kw">const</span>.g
8cde0 61 72 62 61 67 65 20 3d 20 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d arbage.=.array[<span.class="tok-
8ce00 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 number">5</span>];.}</code></pre
8ce20 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 ><pre><code.class="shell">$.zig.
8ce40 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 test.test.zig.<span.class="t0_1"
8ce60 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 >/home/andy/dev/zig/docgen_tmp/t
8ce80 65 73 74 2e 7a 69 67 3a 33 3a 32 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 est.zig:3:26:.</span><span.class
8cea0 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 ="t31_1">error:</span><span.clas
8cec0 73 3d 22 74 30 5f 31 22 3e 20 69 6e 64 65 78 20 35 20 6f 75 74 73 69 64 65 20 61 72 72 61 79 20 s="t0_1">.index.5.outside.array.
8cee0 6f 66 20 73 69 7a 65 20 35 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 67 61 72 62 61 of.size.5</span>.....const.garba
8cf00 67 65 20 3d 20 61 72 72 61 79 5b 35 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ge.=.array[5];..................
8cf20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
8cf40 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 pan>.</code></pre>........<p>At.
8cf60 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c runtime:</p>.......<p.class="fil
8cf80 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
8cfa0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f "zig"><span.class="tok-kw">pub</
8cfc0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
8cfe0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f pan>.<span.class="tok-fn">main</
8d000 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 span>().<span.class="tok-type">v
8d020 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f oid</span>.{.....<span.class="to
8d040 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 20 3d 20 66 6f 6f 28 3c 73 70 61 6e 20 63 k-kw">var</span>.x.=.foo(<span.c
8d060 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b lass="tok-str">&quot;hello&quot;
8d080 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 </span>);.}..<span.class="tok-kw
8d0a0 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 ">fn</span>.<span.class="tok-fn"
8d0c0 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 78 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >foo</span>(x:.[]<span.class="to
8d0e0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">const</span>.<span.class="
8d100 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-type">u8</span>).<span.class
8d120 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 ="tok-type">u8</span>.{.....<spa
8d140 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 78 n.class="tok-kw">return</span>.x
8d160 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 [<span.class="tok-number">5</spa
8d180 6e 3e 5d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c n>];.}</code></pre><pre><code.cl
8d1a0 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 ass="shell">$.zig.build-exe.test
8d1c0 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 69 6e 64 65 78 20 6f 75 74 20 6f 66 20 62 6f 75 6e 64 .zig.$../test.index.out.of.bound
8d1e0 73 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 s.<span.class="t37_1">/home/andy
8d200 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 31 /dev/zig/docgen_tmp/test.zig:6:1
8d220 33 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 3</span>:.<span.class="t2_0">0x2
8d240 32 38 31 65 39 20 69 6e 20 66 6f 6f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 281e9.in.foo.(test)</span>.....r
8d260 65 74 75 72 6e 20 78 5b 35 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c eturn.x[5];.............<span.cl
8d280 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ass="t32_1">^</span>.<span.class
8d2a0 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 ="t37_1">/home/andy/dev/zig/docg
8d2c0 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 31 36 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 en_tmp/test.zig:2:16</span>:.<sp
8d2e0 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 30 36 20 69 6e 20 6d 61 69 6e an.class="t2_0">0x228106.in.main
8d300 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 78 20 3d 20 66 6f 6f 28 26 .(test)</span>.....var.x.=.foo(&
8d320 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 quot;hello&quot;);..............
8d340 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
8d360 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 span.class="t37_1">/home/andy/de
8d380 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a v/zig/lib/std/special/start.zig:
8d3a0 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 194:22</span>:.<span.class="t2_0
8d3c0 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 ">0x22718b.in.std.special.posixC
8d3e0 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 allMainAndExit.(test)</span>....
8d400 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 .........root.main();...........
8d420 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e ...........<span.class="t32_1">^
8d440 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d </span>.<span.class="t37_1">/hom
8d460 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 e/andy/dev/zig/lib/std/special/s
8d480 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 tart.zig:102:5</span>:.<span.cla
8d4a0 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 ss="t2_0">0x22706f.in.std.specia
8d4c0 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e l._start.(test)</span>.....@noIn
8d4e0 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a lineCall(posixCallMainAndExit);.
8d500 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e ....<span.class="t32_1">^</span>
8d520 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c .(process.terminated.by.signal)<
8d540 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 /code></pre>...............<h2.i
8d560 64 3d 22 43 61 73 74 2d 4e 65 67 61 74 69 76 65 2d 4e 75 6d 62 65 72 2d 74 6f 2d 55 6e 73 69 67 d="Cast-Negative-Number-to-Unsig
8d580 6e 65 64 2d 49 6e 74 65 67 65 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 61 73 74 2d ned-Integer"><a.href="#toc-Cast-
8d5a0 4e 65 67 61 74 69 76 65 2d 4e 75 6d 62 65 72 2d 74 6f 2d 55 6e 73 69 67 6e 65 64 2d 49 6e 74 65 Negative-Number-to-Unsigned-Inte
8d5c0 67 65 72 22 3e 43 61 73 74 20 4e 65 67 61 74 69 76 65 20 4e 75 6d 62 65 72 20 74 6f 20 55 6e 73 ger">Cast.Negative.Number.to.Uns
8d5e0 69 67 6e 65 64 20 49 6e 74 65 67 65 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 igned.Integer</a>.<a.class="hdr"
8d600 20 68 72 65 66 3d 22 23 43 61 73 74 2d 4e 65 67 61 74 69 76 65 2d 4e 75 6d 62 65 72 2d 74 6f 2d .href="#Cast-Negative-Number-to-
8d620 55 6e 73 69 67 6e 65 64 2d 49 6e 74 65 67 65 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 Unsigned-Integer">..</a></h2>...
8d640 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 .....<p>At.compile-time:</p>....
8d660 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
8d680 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
8d6a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 s="tok-kw">comptime</span>.{....
8d6c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
8d6e0 6e 3e 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 n>.value:.<span.class="tok-type"
8d700 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >i32</span>.=.-<span.class="tok-
8d720 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 number">1</span>;.....<span.clas
8d740 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 75 6e 73 69 67 6e 65 64 s="tok-kw">const</span>.unsigned
8d760 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e .=.<span.class="tok-builtin">@in
8d780 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 tCast</span>(<span.class="tok-ty
8d7a0 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 76 61 6c 75 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e pe">u32</span>,.value);.}</code>
8d7c0 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 </pre><pre><code.class="shell">$
8d7e0 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .zig.test.test.zig.<span.class="
8d800 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f t0_1">/home/andy/dev/zig/docgen_
8d820 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 33 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 tmp/test.zig:3:36:.</span><span.
8d840 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e class="t31_1">error:</span><span
8d860 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6e 6e 6f 74 20 63 61 73 74 20 6e 65 67 61 74 .class="t0_1">.cannot.cast.negat
8d880 69 76 65 20 76 61 6c 75 65 20 2d 31 20 74 6f 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 ive.value.-1.to.unsigned.integer
8d8a0 20 74 79 70 65 20 27 75 33 32 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 75 6e 73 .type.'u32'</span>.....const.uns
8d8c0 69 67 6e 65 64 20 3d 20 40 69 6e 74 43 61 73 74 28 75 33 32 2c 20 76 61 6c 75 65 29 3b 0a 20 20 igned.=.@intCast(u32,.value);...
8d8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8d900 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 .<span.class="t32_1">^</span>.<s
8d920 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f pan.class="t0_1">/home/andy/dev/
8d940 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 32 3a 20 3c 2f zig/docgen_tmp/test.zig:3:22:.</
8d960 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f span><span.class="t36_1">note:</
8d980 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e span><span.class="t0_1">.referen
8d9a0 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 75 6e 73 69 67 6e ced.here</span>.....const.unsign
8d9c0 65 64 20 3d 20 40 69 6e 74 43 61 73 74 28 75 33 32 2c 20 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 ed.=.@intCast(u32,.value);......
8d9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 ................<span.class="t32
8da00 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 _1">^</span>.</code></pre>......
8da20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c ..<p>At.runtime:</p>.......<p.cl
8da40 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 ass="file">test.zig</p><pre><cod
8da60 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e.class="zig"><span.class="tok-k
8da80 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 w">const</span>.std.=.<span.clas
8daa0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c s="tok-builtin">@import</span>(<
8dac0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 span.class="tok-str">&quot;std&q
8dae0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d uot;</span>);..<span.class="tok-
8db00 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d kw">pub</span>.<span.class="tok-
8db20 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 kw">fn</span>.<span.class="tok-f
8db40 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f n">main</span>().<span.class="to
8db60 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 k-type">void</span>.{.....<span.
8db80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 3a class="tok-kw">var</span>.value:
8dba0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 .<span.class="tok-type">i32</spa
8dbc0 6e 3e 20 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 n>.=.-<span.class="tok-number">1
8dbe0 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 </span>;.....<span.class="tok-kw
8dc00 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 75 6e 73 69 67 6e 65 64 20 3d 20 3c 73 70 61 6e 20 63 6c ">var</span>.unsigned.=.<span.cl
8dc20 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e ass="tok-builtin">@intCast</span
8dc40 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 >(<span.class="tok-type">u32</sp
8dc60 61 6e 3e 2c 20 76 61 6c 75 65 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 an>,.value);.....std.debug.warn(
8dc80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 <span.class="tok-str">&quot;valu
8dca0 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 75 6e 73 69 67 6e 65 64 29 3b e:.{}\n&quot;</span>,.unsigned);
8dcc0 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d .}</code></pre><pre><code.class=
8dce0 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 "shell">$.zig.build-exe.test.zig
8dd00 0a 24 20 2e 2f 74 65 73 74 0a 61 74 74 65 6d 70 74 20 74 6f 20 63 61 73 74 20 6e 65 67 61 74 69 .$../test.attempt.to.cast.negati
8dd20 76 65 20 76 61 6c 75 65 20 74 6f 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 0a 3c 73 70 ve.value.to.unsigned.integer.<sp
8dd40 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f an.class="t37_1">/home/andy/dev/
8dd60 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 30 3c 2f 73 70 zig/docgen_tmp/test.zig:5:20</sp
8dd80 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 33 30 an>:.<span.class="t2_0">0x228130
8dda0 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 75 .in.main.(test)</span>.....var.u
8ddc0 6e 73 69 67 6e 65 64 20 3d 20 40 69 6e 74 43 61 73 74 28 75 33 32 2c 20 76 61 6c 75 65 29 3b 0a nsigned.=.@intCast(u32,.value);.
8dde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...................<span.class="
8de00 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 t32_1">^</span>.<span.class="t37
8de20 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 _1">/home/andy/dev/zig/lib/std/s
8de40 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 pecial/start.zig:194:22</span>:.
8de60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 73 <span.class="t2_0">0x22718b.in.s
8de80 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 td.special.posixCallMainAndExit.
8dea0 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d (test)</span>.............root.m
8dec0 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 ain();......................<spa
8dee0 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 n.class="t32_1">^</span>.<span.c
8df00 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f lass="t37_1">/home/andy/dev/zig/
8df20 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c lib/std/special/start.zig:102:5<
8df40 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 /span>:.<span.class="t2_0">0x227
8df60 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 06f.in.std.special._start.(test)
8df80 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 </span>.....@noInlineCall(posixC
8dfa0 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 allMainAndExit);.....<span.class
8dfc0 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 ="t32_1">^</span>.(process.termi
8dfe0 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 nated.by.signal)</code></pre>...
8e000 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 6f 62 74 61 69 6e 20 74 68 65 20 6d 61 78 .....<p>.......To.obtain.the.max
8e020 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 imum.value.of.an.unsigned.intege
8e040 72 2c 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 6d 61 74 r,.use.<code.class="zig">std.mat
8e060 68 2e 6d 61 78 49 6e 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 h.maxInt</code>........</p>.....
8e080 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 61 73 74 2d 54 72 75 6e 63 61 74 65 73 2d .........<h2.id="Cast-Truncates-
8e0a0 44 61 74 61 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 61 73 74 2d 54 72 75 6e 63 61 74 Data"><a.href="#toc-Cast-Truncat
8e0c0 65 73 2d 44 61 74 61 22 3e 43 61 73 74 20 54 72 75 6e 63 61 74 65 73 20 44 61 74 61 3c 2f 61 3e es-Data">Cast.Truncates.Data</a>
8e0e0 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 61 73 74 2d 54 72 75 6e .<a.class="hdr".href="#Cast-Trun
8e100 63 61 74 65 73 2d 44 61 74 61 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c cates-Data">..</a></h2>........<
8e120 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 p>At.compile-time:</p>.......<p.
8e140 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 class="file">test.zig</p><pre><c
8e160 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
8e180 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e -kw">comptime</span>.{.....<span
8e1a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 70 61 .class="tok-kw">const</span>.spa
8e1c0 72 74 61 6e 5f 63 6f 75 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 rtan_count:.<span.class="tok-typ
8e1e0 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e">u16</span>.=.<span.class="tok
8e200 2d 6e 75 6d 62 65 72 22 3e 33 30 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 -number">300</span>;.....<span.c
8e220 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 79 74 65 20 lass="tok-kw">const</span>.byte.
8e240 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 =.<span.class="tok-builtin">@int
8e260 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 Cast</span>(<span.class="tok-typ
8e280 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 29 3b 0a 7d 3c e">u8</span>,.spartan_count);.}<
8e2a0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 /code></pre><pre><code.class="sh
8e2c0 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 ell">$.zig.test.test.zig.<span.c
8e2e0 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 lass="t0_1">/home/andy/dev/zig/d
8e300 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 33 31 3a 20 3c 2f 73 70 61 6e 3e ocgen_tmp/test.zig:3:31:.</span>
8e320 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e <span.class="t31_1">error:</span
8e340 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 69 6e 74 65 67 65 72 20 76 61 6c ><span.class="t0_1">.integer.val
8e360 75 65 20 33 30 30 20 63 61 6e 6e 6f 74 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 ue.300.cannot.be.implicitly.cast
8e380 65 64 20 74 6f 20 74 79 70 65 20 27 75 38 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 ed.to.type.'u8'</span>.....const
8e3a0 20 62 79 74 65 20 3d 20 40 69 6e 74 43 61 73 74 28 75 38 2c 20 73 70 61 72 74 61 6e 5f 63 6f 75 .byte.=.@intCast(u8,.spartan_cou
8e3c0 6e 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt);............................
8e3e0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a ...<span.class="t32_1">^</span>.
8e400 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 <span.class="t0_1">/home/andy/de
8e420 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 31 38 3a 20 v/zig/docgen_tmp/test.zig:3:18:.
8e440 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a </span><span.class="t36_1">note:
8e460 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 </span><span.class="t0_1">.refer
8e480 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 62 79 74 65 enced.here</span>.....const.byte
8e4a0 20 3d 20 40 69 6e 74 43 61 73 74 28 75 38 2c 20 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 29 3b 0a .=.@intCast(u8,.spartan_count);.
8e4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 .................<span.class="t3
8e4e0 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 2_1">^</span>.</code></pre>.....
8e500 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 ...<p>At.runtime:</p>.......<p.c
8e520 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f lass="file">test.zig</p><pre><co
8e540 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
8e560 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 kw">const</span>.std.=.<span.cla
8e580 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 ss="tok-builtin">@import</span>(
8e5a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 <span.class="tok-str">&quot;std&
8e5c0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b quot;</span>);..<span.class="tok
8e5e0 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b -kw">pub</span>.<span.class="tok
8e600 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d -kw">fn</span>.<span.class="tok-
8e620 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 fn">main</span>().<span.class="t
8e640 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e ok-type">void</span>.{.....<span
8e660 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 70 61 72 74 .class="tok-kw">var</span>.spart
8e680 61 6e 5f 63 6f 75 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 an_count:.<span.class="tok-type"
8e6a0 3e 75 31 36 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e >u16</span>.=.<span.class="tok-n
8e6c0 75 6d 62 65 72 22 3e 33 30 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 umber">300</span>;.....<span.cla
8e6e0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 79 74 65 20 3d 20 ss="tok-kw">const</span>.byte.=.
8e700 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 43 61 <span.class="tok-builtin">@intCa
8e720 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 st</span>(<span.class="tok-type"
8e740 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 29 3b 0a 20 20 20 20 >u8</span>,.spartan_count);.....
8e760 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d std.debug.warn(<span.class="tok-
8e780 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 str">&quot;value:.{}\n&quot;</sp
8e7a0 61 6e 3e 2c 20 62 79 74 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c an>,.byte);.}</code></pre><pre><
8e7c0 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 code.class="shell">$.zig.build-e
8e7e0 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 69 6e 74 65 67 65 72 20 63 61 73 xe.test.zig.$../test.integer.cas
8e800 74 20 74 72 75 6e 63 61 74 65 64 20 62 69 74 73 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 t.truncated.bits.<span.class="t3
8e820 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 7_1">/home/andy/dev/zig/docgen_t
8e840 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 mp/test.zig:5:18</span>:.<span.c
8e860 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 33 36 20 69 6e 20 6d 61 69 6e 20 28 74 65 lass="t2_0">0x228136.in.main.(te
8e880 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 62 79 74 65 20 3d 20 40 69 6e 74 st)</span>.....const.byte.=.@int
8e8a0 43 61 73 74 28 75 38 2c 20 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 29 3b 0a 20 20 20 20 20 20 20 Cast(u8,.spartan_count);........
8e8c0 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ..........<span.class="t32_1">^<
8e8e0 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 /span>.<span.class="t37_1">/home
8e900 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 /andy/dev/zig/lib/std/special/st
8e920 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 art.zig:194:22</span>:.<span.cla
8e940 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 ss="t2_0">0x22718b.in.std.specia
8e960 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 l.posixCallMainAndExit.(test)</s
8e980 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 pan>.............root.main();...
8e9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...................<span.class="
8e9c0 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 t32_1">^</span>.<span.class="t37
8e9e0 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 _1">/home/andy/dev/zig/lib/std/s
8ea00 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c pecial/start.zig:102:5</span>:.<
8ea20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 span.class="t2_0">0x22706f.in.st
8ea40 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 d.special._start.(test)</span>..
8ea60 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e ...@noInlineCall(posixCallMainAn
8ea80 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e dExit);.....<span.class="t32_1">
8eaa0 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 ^</span>.(process.terminated.by.
8eac0 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a signal)</code></pre>........<p>.
8eae0 20 20 20 20 20 20 54 6f 20 74 72 75 6e 63 61 74 65 20 62 69 74 73 2c 20 75 73 65 20 3c 61 20 68 ......To.truncate.bits,.use.<a.h
8eb00 72 65 66 3d 22 23 74 72 75 6e 63 61 74 65 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 61 3e 2e 0a 20 ref="#truncate">@truncate</a>...
8eb20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 .....</p>..............<h2.id="I
8eb40 6e 74 65 67 65 72 2d 4f 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 nteger-Overflow"><a.href="#toc-I
8eb60 6e 74 65 67 65 72 2d 4f 76 65 72 66 6c 6f 77 22 3e 49 6e 74 65 67 65 72 20 4f 76 65 72 66 6c 6f nteger-Overflow">Integer.Overflo
8eb80 77 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 74 65 w</a>.<a.class="hdr".href="#Inte
8eba0 67 65 72 2d 4f 76 65 72 66 6c 6f 77 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 ger-Overflow">..</a></h2>.......
8ebc0 20 3c 68 33 20 69 64 3d 22 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 3c 61 20 .<h3.id="Default-Operations"><a.
8ebe0 68 72 65 66 3d 22 23 74 6f 63 2d 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 44 href="#toc-Default-Operations">D
8ec00 65 66 61 75 6c 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 efault.Operations</a>.<a.class="
8ec20 68 64 72 22 20 68 72 65 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e hdr".href="#Default-Operations">
8ec40 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 20 66 6f 6c 6c 6f 77 ..</a></h3>........<p>The.follow
8ec60 69 6e 67 20 6f 70 65 72 61 74 6f 72 73 20 63 61 6e 20 63 61 75 73 65 20 69 6e 74 65 67 65 72 20 ing.operators.can.cause.integer.
8ec80 6f 76 65 72 66 6c 6f 77 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 overflow:</p>.......<ul>........
8eca0 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2b 3c 2f 63 6f 64 65 ...<li><code.class="zig">+</code
8ecc0 3e 20 28 61 64 64 69 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e >.(addition)</li>...........<li>
8ece0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 3c 2f 63 6f 64 65 3e 20 28 73 75 62 74 <code.class="zig">-</code>.(subt
8ed00 72 61 63 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 raction)</li>...........<li><cod
8ed20 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 3c 2f 63 6f 64 65 3e 20 28 6e 65 67 61 74 69 6f 6e e.class="zig">-</code>.(negation
8ed40 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 )</li>...........<li><code.class
8ed60 3d 22 7a 69 67 22 3e 2a 3c 2f 63 6f 64 65 3e 20 28 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 29 ="zig">*</code>.(multiplication)
8ed80 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d </li>...........<li><code.class=
8eda0 22 7a 69 67 22 3e 2f 3c 2f 63 6f 64 65 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 "zig">/</code>.(division)</li>..
8edc0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 54 72 75 6e 63 22 3e 40 .......<li><a.href="#divTrunc">@
8ede0 64 69 76 54 72 75 6e 63 3c 2f 61 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 divTrunc</a>.(division)</li>....
8ee00 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 46 6c 6f 6f 72 22 3e 40 64 69 .....<li><a.href="#divFloor">@di
8ee20 76 46 6c 6f 6f 72 3c 2f 61 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 vFloor</a>.(division)</li>......
8ee40 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 ...<li><a.href="#divExact">@divE
8ee60 78 61 63 74 3c 2f 61 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c xact</a>.(division)</li>.......<
8ee80 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 45 78 61 6d 70 6c 65 20 77 69 74 68 20 61 64 64 69 74 /ul>.......<p>Example.with.addit
8eea0 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c ion.at.compile-time:</p>.......<
8eec0 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e p.class="file">test.zig</p><pre>
8eee0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
8ef00 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 ok-kw">comptime</span>.{.....<sp
8ef20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 79 74 an.class="tok-kw">var</span>.byt
8ef40 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 e:.<span.class="tok-type">u8</sp
8ef60 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 an>.=.<span.class="tok-number">2
8ef80 35 35 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 62 79 74 65 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 55</span>;.....byte.+=.<span.cla
8efa0 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 ss="tok-number">1</span>;.}</cod
8efc0 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 e></pre><pre><code.class="shell"
8efe0 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 >$.zig.test.test.zig.<span.class
8f000 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 ="t0_1">/home/andy/dev/zig/docge
8f020 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 31 30 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 n_tmp/test.zig:3:10:.</span><spa
8f040 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 n.class="t31_1">error:</span><sp
8f060 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 6f 70 65 72 61 74 69 6f 6e 20 63 61 75 73 65 an.class="t0_1">.operation.cause
8f080 64 20 6f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 62 79 74 65 20 2b 3d 20 31 3b d.overflow</span>.....byte.+=.1;
8f0a0 0a 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ..........<span.class="t32_1">^<
8f0c0 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 /span>.</code></pre>........<p>A
8f0e0 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 t.runtime:</p>.......<p.class="f
8f100 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 ile">test.zig</p><pre><code.clas
8f120 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e s="zig"><span.class="tok-kw">con
8f140 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b st</span>.std.=.<span.class="tok
8f160 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 -builtin">@import</span>(<span.c
8f180 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f lass="tok-str">&quot;std&quot;</
8f1a0 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 span>);..<span.class="tok-kw">pu
8f1c0 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e b</span>.<span.class="tok-kw">fn
8f1e0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 </span>.<span.class="tok-fn">mai
8f200 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 n</span>().<span.class="tok-type
8f220 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ">void</span>.{.....<span.class=
8f240 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 79 74 65 3a 20 3c 73 70 61 6e 20 "tok-kw">var</span>.byte:.<span.
8f260 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 class="tok-type">u8</span>.=.<sp
8f280 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e an.class="tok-number">255</span>
8f2a0 3b 0a 20 20 20 20 62 79 74 65 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ;.....byte.+=.<span.class="tok-n
8f2c0 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 umber">1</span>;.....std.debug.w
8f2e0 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b arn(<span.class="tok-str">&quot;
8f300 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 62 79 74 65 29 3b value:.{}\n&quot;</span>,.byte);
8f320 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d .}</code></pre><pre><code.class=
8f340 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 "shell">$.zig.build-exe.test.zig
8f360 0a 24 20 2e 2f 74 65 73 74 0a 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 0a 3c 73 70 61 6e .$../test.integer.overflow.<span
8f380 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 .class="t37_1">/home/andy/dev/zi
8f3a0 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 30 3c 2f 73 70 61 6e g/docgen_tmp/test.zig:5:10</span
8f3c0 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 32 30 20 69 >:.<span.class="t2_0">0x228120.i
8f3e0 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 62 79 74 65 20 2b 3d n.main.(test)</span>.....byte.+=
8f400 20 31 3b 0a 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 .1;..........<span.class="t32_1"
8f420 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 >^</span>.<span.class="t37_1">/h
8f440 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c ome/andy/dev/zig/lib/std/special
8f460 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 /start.zig:194:22</span>:.<span.
8f480 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 class="t2_0">0x22718b.in.std.spe
8f4a0 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 cial.posixCallMainAndExit.(test)
8f4c0 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b </span>.............root.main();
8f4e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ......................<span.clas
8f500 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 s="t32_1">^</span>.<span.class="
8f520 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 t37_1">/home/andy/dev/zig/lib/st
8f540 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e d/special/start.zig:102:5</span>
8f560 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e :.<span.class="t2_0">0x22706f.in
8f580 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e .std.special._start.(test)</span
8f5a0 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 >.....@noInlineCall(posixCallMai
8f5c0 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f nAndExit);.....<span.class="t32_
8f5e0 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 1">^</span>.(process.terminated.
8f600 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a by.signal)</code></pre>.........
8f620 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 72 79 2d 4d ......<h3.id="Standard-Library-M
8f640 61 74 68 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 53 74 61 ath-Functions"><a.href="#toc-Sta
8f660 6e 64 61 72 64 2d 4c 69 62 72 61 72 79 2d 4d 61 74 68 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 53 74 ndard-Library-Math-Functions">St
8f680 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 4d 61 74 68 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 andard.Library.Math.Functions</a
8f6a0 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 74 61 6e 64 61 72 64 >.<a.class="hdr".href="#Standard
8f6c0 2d 4c 69 62 72 61 72 79 2d 4d 61 74 68 2d 46 75 6e 63 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c -Library-Math-Functions">..</a><
8f6e0 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 70 /h3>........<p>These.functions.p
8f700 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 rovided.by.the.standard.library.
8f720 72 65 74 75 72 6e 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 73 2e 3c 2f 70 3e 0a 20 20 20 20 return.possible.errors.</p>.....
8f740 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ..<ul>...........<li><code.class
8f760 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 ="zig"><span.class="tok-builtin"
8f780 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
8f7a0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 -str">&quot;std&quot;</span>).ma
8f7c0 74 68 2e 61 64 64 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 th.add</code></li>...........<li
8f7e0 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
8f800 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 tok-builtin">@import</span>(<spa
8f820 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 n.class="tok-str">&quot;std&quot
8f840 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 73 75 62 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 ;</span>).math.sub</code></li>..
8f860 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .........<li><code.class="zig"><
8f880 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
8f8a0 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
8f8c0 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 6d 75 6c 3c 2f uot;std&quot;</span>).math.mul</
8f8e0 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 code></li>...........<li><code.c
8f900 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
8f920 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d tin">@import</span>(<span.class=
8f940 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e "tok-str">&quot;std&quot;</span>
8f960 29 2e 6d 61 74 68 2e 64 69 76 54 72 75 6e 63 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ).math.divTrunc</code></li>.....
8f980 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 ......<li><code.class="zig"><spa
8f9a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 n.class="tok-builtin">@import</s
8f9c0 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
8f9e0 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 64 69 76 46 6c 6f 6f 72 ;std&quot;</span>).math.divFloor
8fa00 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 </code></li>...........<li><code
8fa20 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
8fa40 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 iltin">@import</span>(<span.clas
8fa60 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;std&quot;</spa
8fa80 6e 3e 29 2e 6d 61 74 68 2e 64 69 76 45 78 61 63 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 n>).math.divExact</code></li>...
8faa0 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 ........<li><code.class="zig"><s
8fac0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c pan.class="tok-builtin">@import<
8fae0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>(<span.class="tok-str">&qu
8fb00 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 73 68 6c 3c 2f 63 ot;std&quot;</span>).math.shl</c
8fb20 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 45 ode></li>.......</ul>.......<p>E
8fb40 78 61 6d 70 6c 65 20 6f 66 20 63 61 74 63 68 69 6e 67 20 61 6e 20 6f 76 65 72 66 6c 6f 77 20 66 xample.of.catching.an.overflow.f
8fb60 6f 72 20 61 64 64 69 74 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d or.addition:</p>.......<p.class=
8fb80 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c "file">test.zig</p><pre><code.cl
8fba0 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ass="zig"><span.class="tok-kw">c
8fbc0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 61 74 68 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 onst</span>.math.=.<span.class="
8fbe0 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 tok-builtin">@import</span>(<spa
8fc00 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 n.class="tok-str">&quot;std&quot
8fc20 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ;</span>).math;.<span.class="tok
8fc40 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d 20 3c 73 70 61 6e 20 63 -kw">const</span>.warn.=.<span.c
8fc60 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
8fc80 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
8fca0 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 3c 73 70 61 d&quot;</span>).debug.warn;.<spa
8fcc0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 n.class="tok-kw">pub</span>.<spa
8fce0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e n.class="tok-kw">fn</span>.<span
8fd00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 21 3c .class="tok-fn">main</span>().!<
8fd20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e span.class="tok-type">void</span
8fd40 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 >.{.....<span.class="tok-kw">var
8fd60 3c 2f 73 70 61 6e 3e 20 62 79 74 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 </span>.byte:.<span.class="tok-t
8fd80 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ype">u8</span>.=.<span.class="to
8fda0 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 62 79 74 65 20 k-number">255</span>;......byte.
8fdc0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e =.<span.class="tok-kw">if</span>
8fde0 20 28 6d 61 74 68 2e 61 64 64 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .(math.add(<span.class="tok-type
8fe00 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 62 79 74 65 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">u8</span>,.byte,.<span.class="
8fe20 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 29 20 7c 72 65 73 75 6c 74 7c 20 tok-number">1</span>)).|result|.
8fe40 72 65 73 75 6c 74 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 result.<span.class="tok-kw">else
8fe60 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 3c 73 70 </span>.|err|.{.........warn(<sp
8fe80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 6e 61 62 6c 65 20 an.class="tok-str">&quot;unable.
8fea0 74 6f 20 61 64 64 20 6f 6e 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c to.add.one:.{}\n&quot;</span>,.<
8fec0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 4e span.class="tok-builtin">@errorN
8fee0 61 6d 65 3c 2f 73 70 61 6e 3e 28 65 72 72 29 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 ame</span>(err));.........<span.
8ff00 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 65 72 72 class="tok-kw">return</span>.err
8ff20 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ;.....};......warn(<span.class="
8ff40 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 65 73 75 6c 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 tok-str">&quot;result:.{}\n&quot
8ff60 3b 3c 2f 73 70 61 6e 3e 2c 20 62 79 74 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c ;</span>,.byte);.}</code></pre><
8ff80 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 pre><code.class="shell">$.zig.bu
8ffa0 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 75 6e 61 62 6c 65 ild-exe.test.zig.$../test.unable
8ffc0 20 74 6f 20 61 64 64 20 6f 6e 65 3a 20 4f 76 65 72 66 6c 6f 77 0a 65 72 72 6f 72 3a 20 4f 76 65 .to.add.one:.Overflow.error:.Ove
8ffe0 72 66 6c 6f 77 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f rflow.<span.class="t37_1">/home/
90000 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 6d 61 74 68 2e 7a 69 67 3a 33 33 andy/dev/zig/lib/std/math.zig:33
90020 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 2:5</span>:.<span.class="t2_0">0
90040 78 32 32 38 35 62 30 20 69 6e 20 73 74 64 2e 6d 61 74 68 2e 61 64 64 20 28 74 65 73 74 29 3c 2f x2285b0.in.std.math.add.(test)</
90060 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 40 61 64 64 57 69 74 68 4f 76 65 span>.....return.if.(@addWithOve
90080 72 66 6c 6f 77 28 54 2c 20 61 2c 20 62 2c 20 26 61 6d 70 3b 61 6e 73 77 65 72 29 29 20 65 72 72 rflow(T,.a,.b,.&amp;answer)).err
900a0 6f 72 2e 4f 76 65 72 66 6c 6f 77 20 65 6c 73 65 20 61 6e 73 77 65 72 3b 0a 20 20 20 20 3c 73 70 or.Overflow.else.answer;.....<sp
900c0 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 an.class="t32_1">^</span>.<span.
900e0 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 class="t37_1">/home/andy/dev/zig
90100 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 38 3a 39 3c 2f 73 70 61 6e 3e 3a /docgen_tmp/test.zig:8:9</span>:
90120 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 33 30 35 20 69 6e 20 .<span.class="t2_0">0x228305.in.
90140 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 main.(test)</span>.........retur
90160 6e 20 65 72 72 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f n.err;.........<span.class="t32_
90180 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 1">^</span>.</code></pre>.......
901a0 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 42 75 69 6c 74 69 6e 2d 4f 76 65 72 66 6c 6f 77 ........<h3.id="Builtin-Overflow
901c0 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 42 75 69 6c 74 69 -Functions"><a.href="#toc-Builti
901e0 6e 2d 4f 76 65 72 66 6c 6f 77 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 4f 76 n-Overflow-Functions">Builtin.Ov
90200 65 72 66 6c 6f 77 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 erflow.Functions</a>.<a.class="h
90220 64 72 22 20 68 72 65 66 3d 22 23 42 75 69 6c 74 69 6e 2d 4f 76 65 72 66 6c 6f 77 2d 46 75 6e 63 dr".href="#Builtin-Overflow-Func
90240 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 tions">..</a></h3>........<p>...
90260 20 20 20 20 54 68 65 73 65 20 62 75 69 6c 74 69 6e 73 20 72 65 74 75 72 6e 20 61 20 3c 63 6f 64 ....These.builtins.return.a.<cod
90280 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 e.class="zig"><span.class="tok-t
902a0 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 66 20 77 68 65 74 68 ype">bool</span></code>.of.wheth
902c0 65 72 20 6f 72 20 6e 6f 74 20 6f 76 65 72 66 6c 6f 77 0a 20 20 20 20 20 20 6f 63 63 75 72 72 65 er.or.not.overflow.......occurre
902e0 64 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 72 65 74 75 72 6e 69 6e 67 20 74 68 65 20 6f 76 65 72 d,.as.well.as.returning.the.over
90300 66 6c 6f 77 65 64 20 62 69 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 flowed.bits:.......</p>.......<u
90320 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 64 64 57 69 l>...........<li><a.href="#addWi
90340 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e thOverflow">@addWithOverflow</a>
90360 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 75 </li>...........<li><a.href="#su
90380 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c bWithOverflow">@subWithOverflow<
903a0 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 /a></li>...........<li><a.href="
903c0 23 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c #mulWithOverflow">@mulWithOverfl
903e0 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 ow</a></li>...........<li><a.hre
90400 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 68 4f 76 65 f="#shlWithOverflow">@shlWithOve
90420 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 rflow</a></li>.......</ul>......
90440 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 20 6f 66 20 3c 61 20 68 72 65 66 3d 22 23 .<p>.......Example.of.<a.href="#
90460 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f addWithOverflow">@addWithOverflo
90480 77 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 w</a>:.......</p>.......<p.class
904a0 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ="file">test.zig</p><pre><code.c
904c0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
904e0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d const</span>.warn.=.<span.class=
90500 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 "tok-builtin">@import</span>(<sp
90520 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f an.class="tok-str">&quot;std&quo
90540 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 3c 73 70 61 6e 20 63 6c 61 t;</span>).debug.warn;.<span.cla
90560 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">pub</span>.<span.cla
90580 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ss="tok-kw">fn</span>.<span.clas
905a0 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 s="tok-fn">main</span>().<span.c
905c0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-type">void</span>.{...
905e0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e ..<span.class="tok-kw">var</span
90600 3e 20 62 79 74 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 >.byte:.<span.class="tok-type">u
90620 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 8</span>.=.<span.class="tok-numb
90640 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 er">255</span>;......<span.class
90660 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 3a 20 3c 73 70 ="tok-kw">var</span>.result:.<sp
90680 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 an.class="tok-type">u8</span>.=.
906a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 <span.class="tok-null">undefined
906c0 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 </span>;.....<span.class="tok-kw
906e0 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ">if</span>.(<span.class="tok-bu
90700 69 6c 74 69 6e 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 3c iltin">@addWithOverflow</span>(<
90720 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c span.class="tok-type">u8</span>,
90740 20 62 79 74 65 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e .byte,.<span.class="tok-number">
90760 31 30 3c 2f 73 70 61 6e 3e 2c 20 26 61 6d 70 3b 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 10</span>,.&amp;result)).{......
90780 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 ...warn(<span.class="tok-str">&q
907a0 75 6f 74 3b 6f 76 65 72 66 6c 6f 77 65 64 20 72 65 73 75 6c 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 uot;overflowed.result:.{}\n&quot
907c0 3b 3c 2f 73 70 61 6e 3e 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 ;</span>,.result);.....}.<span.c
907e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 lass="tok-kw">else</span>.{.....
90800 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 ....warn(<span.class="tok-str">&
90820 71 75 6f 74 3b 72 65 73 75 6c 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 quot;result:.{}\n&quot;</span>,.
90840 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 result);.....}.}</code></pre><pr
90860 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c e><code.class="shell">$.zig.buil
90880 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 6f 76 65 72 66 6c 6f 77 d-exe.test.zig.$../test.overflow
908a0 65 64 20 72 65 73 75 6c 74 3a 20 39 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 ed.result:.9.</code></pre>......
908c0 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 57 72 61 70 70 69 6e 67 2d 4f 70 65 72 61 74 .........<h3.id="Wrapping-Operat
908e0 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 57 72 61 70 70 69 6e 67 2d 4f 70 65 ions"><a.href="#toc-Wrapping-Ope
90900 72 61 74 69 6f 6e 73 22 3e 57 72 61 70 70 69 6e 67 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e rations">Wrapping.Operations</a>
90920 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 57 72 61 70 70 69 6e 67 2d .<a.class="hdr".href="#Wrapping-
90940 4f 70 65 72 61 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c Operations">..</a></h3>........<
90960 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 68 61 76 65 20 67 p>.......These.operations.have.g
90980 75 61 72 61 6e 74 65 65 64 20 77 72 61 70 61 72 6f 75 6e 64 20 73 65 6d 61 6e 74 69 63 73 2e 0a uaranteed.wraparound.semantics..
909a0 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 ......</p>.......<ul>...........
909c0 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2b 25 3c 2f 63 6f 64 65 3e 20 <li><code.class="zig">+%</code>.
909e0 28 77 72 61 70 61 72 6f 75 6e 64 20 61 64 64 69 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 (wraparound.addition)</li>......
90a00 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 25 3c 2f 63 .....<li><code.class="zig">-%</c
90a20 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 73 75 62 74 72 61 63 74 69 6f 6e 29 3c 2f 6c ode>.(wraparound.subtraction)</l
90a40 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 i>...........<li><code.class="zi
90a60 67 22 3e 2d 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 6e 65 67 61 74 69 6f g">-%</code>.(wraparound.negatio
90a80 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 n)</li>...........<li><code.clas
90aa0 73 3d 22 7a 69 67 22 3e 2a 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 6d 75 s="zig">*%</code>.(wraparound.mu
90ac0 6c 74 69 70 6c 69 63 61 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 ltiplication)</li>.......</ul>..
90ae0 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 .....<p.class="file">test.zig</p
90b00 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ><pre><code.class="zig"><span.cl
90b20 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 ass="tok-kw">const</span>.std.=.
90b40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
90b60 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
90b80 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c quot;std&quot;</span>);.<span.cl
90ba0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 ass="tok-kw">const</span>.assert
90bc0 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 .=.std.debug.assert;.<span.class
90be0 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 69 6e 49 6e 74 20 3d 20 ="tok-kw">const</span>.minInt.=.
90c00 73 74 64 2e 6d 61 74 68 2e 6d 69 6e 49 6e 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f std.math.minInt;.<span.class="to
90c20 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 61 78 49 6e 74 20 3d 20 73 74 64 2e k-kw">const</span>.maxInt.=.std.
90c40 6d 61 74 68 2e 6d 61 78 49 6e 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b math.maxInt;..<span.class="tok-k
90c60 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d w">test</span>.<span.class="tok-
90c80 73 74 72 22 3e 26 71 75 6f 74 3b 77 72 61 70 61 72 6f 75 6e 64 20 61 64 64 69 74 69 6f 6e 20 61 str">&quot;wraparound.addition.a
90ca0 6e 64 20 73 75 62 74 72 61 63 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 nd.subtraction&quot;</span>.{...
90cc0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
90ce0 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 an>.x:.<span.class="tok-type">i3
90d00 32 3c 2f 73 70 61 6e 3e 20 3d 20 6d 61 78 49 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 2</span>.=.maxInt(<span.class="t
90d20 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 ok-type">i32</span>);.....<span.
90d40 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 69 6e 5f class="tok-kw">const</span>.min_
90d60 76 61 6c 20 3d 20 78 20 2b 25 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 val.=.x.+%.<span.class="tok-numb
90d80 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 69 6e 5f 76 61 6c er">1</span>;.....assert(min_val
90da0 20 3d 3d 20 6d 69 6e 49 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .==.minInt(<span.class="tok-type
90dc0 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ">i32</span>));.....<span.class=
90de0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 61 78 5f 76 61 6c 20 3d 20 "tok-kw">const</span>.max_val.=.
90e00 6d 69 6e 5f 76 61 6c 20 2d 25 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 min_val.-%.<span.class="tok-numb
90e20 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 61 78 5f 76 61 6c er">1</span>;.....assert(max_val
90e40 20 3d 3d 20 6d 61 78 49 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .==.maxInt(<span.class="tok-type
90e60 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 ">i32</span>));.}</code></pre><p
90e80 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
90ea0 74 20 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 77 72 61 70 61 72 t.test.zig.1/1.test.&quot;wrapar
90ec0 6f 75 6e 64 20 61 64 64 69 74 69 6f 6e 20 61 6e 64 20 73 75 62 74 72 61 63 74 69 6f 6e 26 71 75 ound.addition.and.subtraction&qu
90ee0 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 ot;...OK.All.tests.passed..</cod
90f00 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 e></pre>......................<h
90f20 32 20 69 64 3d 22 45 78 61 63 74 2d 4c 65 66 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 2.id="Exact-Left-Shift-Overflow"
90f40 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 45 78 61 63 74 2d 4c 65 66 74 2d 53 68 69 66 74 2d ><a.href="#toc-Exact-Left-Shift-
90f60 4f 76 65 72 66 6c 6f 77 22 3e 45 78 61 63 74 20 4c 65 66 74 20 53 68 69 66 74 20 4f 76 65 72 66 Overflow">Exact.Left.Shift.Overf
90f80 6c 6f 77 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 78 low</a>.<a.class="hdr".href="#Ex
90fa0 61 63 74 2d 4c 65 66 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 3e c2 a7 3c 2f 61 3e 3c act-Left-Shift-Overflow">..</a><
90fc0 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c /h2>........<p>At.compile-time:<
90fe0 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a /p>.......<p.class="file">test.z
91000 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ig</p><pre><code.class="zig"><sp
91020 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e an.class="tok-kw">comptime</span
91040 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e >.{.....<span.class="tok-kw">con
91060 73 74 3c 2f 73 70 61 6e 3e 20 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 st</span>.x.=.<span.class="tok-b
91080 75 69 6c 74 69 6e 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 uiltin">@shlExact</span>(<span.c
910a0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 lass="tok-type">u8</span>(<span.
910c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 30 31 30 31 30 31 30 31 3c 2f 73 class="tok-number">0b01010101</s
910e0 70 61 6e 3e 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e pan>),.<span.class="tok-number">
91100 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 2</span>);.}</code></pre><pre><c
91120 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 ode.class="shell">$.zig.test.tes
91140 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 t.zig.<span.class="t0_1">/home/a
91160 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a ndy/dev/zig/docgen_tmp/test.zig:
91180 32 3a 31 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 2:15:.</span><span.class="t31_1"
911a0 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 >error:</span><span.class="t0_1"
911c0 3e 20 6f 70 65 72 61 74 69 6f 6e 20 63 61 75 73 65 64 20 6f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 >.operation.caused.overflow</spa
911e0 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 6c 45 78 61 63 74 28 75 38 28 30 62 n>.....const.x.=.@shlExact(u8(0b
91200 30 31 30 31 30 31 30 31 29 2c 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 01010101),.2);...............<sp
91220 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 an.class="t32_1">^</span>.</code
91240 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 ></pre>........<p>At.runtime:</p
91260 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 >.......<p.class="file">test.zig
91280 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e </p><pre><code.class="zig"><span
912a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 .class="tok-kw">const</span>.std
912c0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d .=.<span.class="tok-builtin">@im
912e0 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 port</span>(<span.class="tok-str
91300 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 ">&quot;std&quot;</span>);..<spa
91320 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 n.class="tok-kw">pub</span>.<spa
91340 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e n.class="tok-kw">fn</span>.<span
91360 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 .class="tok-fn">main</span>().<s
91380 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e pan.class="tok-type">void</span>
913a0 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c .{.....<span.class="tok-kw">var<
913c0 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 /span>.x:.<span.class="tok-type"
913e0 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 >u8</span>.=.<span.class="tok-nu
91400 6d 62 65 72 22 3e 30 62 30 31 30 31 30 31 30 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 mber">0b01010101</span>;.....<sp
91420 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 79 20 3d an.class="tok-kw">var</span>.y.=
91440 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 68 6c 45 .<span.class="tok-builtin">@shlE
91460 78 61 63 74 3c 2f 73 70 61 6e 3e 28 78 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d xact</span>(x,.<span.class="tok-
91480 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 number">2</span>);.....std.debug
914a0 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f .warn(<span.class="tok-str">&quo
914c0 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 79 29 3b 0a t;value:.{}\n&quot;</span>,.y);.
914e0 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
91500 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a shell">$.zig.build-exe.test.zig.
91520 24 20 2e 2f 74 65 73 74 0a 6c 65 66 74 20 73 68 69 66 74 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 $../test.left.shift.overflowed.b
91540 69 74 73 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e its.<span.class="t37_1">/home/an
91560 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 dy/dev/zig/docgen_tmp/test.zig:5
91580 3a 31 33 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 :13</span>:.<span.class="t2_0">0
915a0 78 32 32 38 31 33 37 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 x228137.in.main.(test)</span>...
915c0 20 20 76 61 72 20 79 20 3d 20 40 73 68 6c 45 78 61 63 74 28 78 2c 20 32 29 3b 0a 20 20 20 20 20 ..var.y.=.@shlExact(x,.2);......
915e0 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 .......<span.class="t32_1">^</sp
91600 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e an>.<span.class="t37_1">/home/an
91620 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 dy/dev/zig/lib/std/special/start
91640 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .zig:194:22</span>:.<span.class=
91660 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 "t2_0">0x22718b.in.std.special.p
91680 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e osixCallMainAndExit.(test)</span
916a0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 >.............root.main();......
916c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 ................<span.class="t32
916e0 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 _1">^</span>.<span.class="t37_1"
91700 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 >/home/andy/dev/zig/lib/std/spec
91720 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 ial/start.zig:102:5</span>:.<spa
91740 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 n.class="t2_0">0x22706f.in.std.s
91760 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 pecial._start.(test)</span>.....
91780 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 @noInlineCall(posixCallMainAndEx
917a0 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f it);.....<span.class="t32_1">^</
917c0 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 span>.(process.terminated.by.sig
917e0 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 nal)</code></pre>...............
91800 3c 68 32 20 69 64 3d 22 45 78 61 63 74 2d 52 69 67 68 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c <h2.id="Exact-Right-Shift-Overfl
91820 6f 77 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 45 78 61 63 74 2d 52 69 67 68 74 2d 53 68 ow"><a.href="#toc-Exact-Right-Sh
91840 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 3e 45 78 61 63 74 20 52 69 67 68 74 20 53 68 69 66 74 20 ift-Overflow">Exact.Right.Shift.
91860 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 Overflow</a>.<a.class="hdr".href
91880 3d 22 23 45 78 61 63 74 2d 52 69 67 68 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 3e c2 ="#Exact-Right-Shift-Overflow">.
918a0 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d .</a></h2>........<p>At.compile-
918c0 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e time:</p>.......<p.class="file">
918e0 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 test.zig</p><pre><code.class="zi
91900 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 g"><span.class="tok-kw">comptime
91920 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
91940 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d w">const</span>.x.=.<span.class=
91960 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 73 70 61 6e 3e 28 3c "tok-builtin">@shrExact</span>(<
91980 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 28 span.class="tok-type">u8</span>(
919a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 30 31 30 31 <span.class="tok-number">0b10101
919c0 30 31 30 3c 2f 73 70 61 6e 3e 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 010</span>),.<span.class="tok-nu
919e0 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c mber">2</span>);.}</code></pre><
91a00 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 pre><code.class="shell">$.zig.te
91a20 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f st.test.zig.<span.class="t0_1">/
91a40 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 home/andy/dev/zig/docgen_tmp/tes
91a60 74 2e 7a 69 67 3a 32 3a 31 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 t.zig:2:15:.</span><span.class="
91a80 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d t31_1">error:</span><span.class=
91aa0 22 74 30 5f 31 22 3e 20 65 78 61 63 74 20 73 68 69 66 74 20 73 68 69 66 74 65 64 20 6f 75 74 20 "t0_1">.exact.shift.shifted.out.
91ac0 31 20 62 69 74 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 72 1.bits</span>.....const.x.=.@shr
91ae0 45 78 61 63 74 28 75 38 28 30 62 31 30 31 30 31 30 31 30 29 2c 20 32 29 3b 0a 20 20 20 20 20 20 Exact(u8(0b10101010),.2);.......
91b00 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
91b20 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 pan>.</code></pre>........<p>At.
91b40 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c runtime:</p>.......<p.class="fil
91b60 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
91b80 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 "zig"><span.class="tok-kw">const
91ba0 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 </span>.std.=.<span.class="tok-b
91bc0 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 uiltin">@import</span>(<span.cla
91be0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 ss="tok-str">&quot;std&quot;</sp
91c00 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c an>);..<span.class="tok-kw">pub<
91c20 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f /span>.<span.class="tok-kw">fn</
91c40 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c span>.<span.class="tok-fn">main<
91c60 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e /span>().<span.class="tok-type">
91c80 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 void</span>.{.....<span.class="t
91ca0 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-kw">var</span>.x:.<span.class
91cc0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c ="tok-type">u8</span>.=.<span.cl
91ce0 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 30 31 30 31 30 31 30 3c 2f 73 70 61 ass="tok-number">0b10101010</spa
91d00 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 n>;.....<span.class="tok-kw">var
91d20 3c 2f 73 70 61 6e 3e 20 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 </span>.y.=.<span.class="tok-bui
91d40 6c 74 69 6e 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 73 70 61 6e 3e 28 78 2c 20 3c 73 70 61 6e 20 ltin">@shrExact</span>(x,.<span.
91d60 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 class="tok-number">2</span>);...
91d80 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..std.debug.warn(<span.class="to
91da0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f k-str">&quot;value:.{}\n&quot;</
91dc0 73 70 61 6e 3e 2c 20 79 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 span>,.y);.}</code></pre><pre><c
91de0 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 ode.class="shell">$.zig.build-ex
91e00 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 72 69 67 68 74 20 73 68 69 66 74 20 e.test.zig.$../test.right.shift.
91e20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 overflowed.bits.<span.class="t37
91e40 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d _1">/home/andy/dev/zig/docgen_tm
91e60 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 33 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c p/test.zig:5:13</span>:.<span.cl
91e80 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 33 37 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 ass="t2_0">0x228137.in.main.(tes
91ea0 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 79 20 3d 20 40 73 68 72 45 78 61 63 74 28 t)</span>.....var.y.=.@shrExact(
91ec0 78 2c 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 x,.2);.............<span.class="
91ee0 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 t32_1">^</span>.<span.class="t37
91f00 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 _1">/home/andy/dev/zig/lib/std/s
91f20 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 pecial/start.zig:194:22</span>:.
91f40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 73 <span.class="t2_0">0x22718b.in.s
91f60 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 td.special.posixCallMainAndExit.
91f80 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d (test)</span>.............root.m
91fa0 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 ain();......................<spa
91fc0 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 n.class="t32_1">^</span>.<span.c
91fe0 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f lass="t37_1">/home/andy/dev/zig/
92000 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c lib/std/special/start.zig:102:5<
92020 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 /span>:.<span.class="t2_0">0x227
92040 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 06f.in.std.special._start.(test)
92060 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 </span>.....@noInlineCall(posixC
92080 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 allMainAndExit);.....<span.class
920a0 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 ="t32_1">^</span>.(process.termi
920c0 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 nated.by.signal)</code></pre>...
920e0 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 44 69 76 69 73 69 6f 6e 2d 62 79 2d ............<h2.id="Division-by-
92100 5a 65 72 6f 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 44 69 76 69 73 69 6f 6e 2d 62 79 2d Zero"><a.href="#toc-Division-by-
92120 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 3c 61 20 63 6c Zero">Division.by.Zero</a>.<a.cl
92140 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 ass="hdr".href="#Division-by-Zer
92160 6f 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 o">..</a></h2>........<p>At.comp
92180 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 ile-time:</p>.......<p.class="fi
921a0 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 le">test.zig</p><pre><code.class
921c0 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 ="zig"><span.class="tok-kw">comp
921e0 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 time</span>.{.....<span.class="t
92200 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 ok-kw">const</span>.a:.<span.cla
92220 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e ss="tok-type">i32</span>.=.<span
92240 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 .class="tok-number">1</span>;...
92260 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
92280 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 an>.b:.<span.class="tok-type">i3
922a0 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 2</span>.=.<span.class="tok-numb
922c0 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 er">0</span>;.....<span.class="t
922e0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 61 20 2f 20 62 3b 0a 7d ok-kw">const</span>.c.=.a./.b;.}
92300 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 </code></pre><pre><code.class="s
92320 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 hell">$.zig.test.test.zig.<span.
92340 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f class="t0_1">/home/andy/dev/zig/
92360 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 31 37 3a 20 3c 2f 73 70 61 6e docgen_tmp/test.zig:4:17:.</span
92380 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 ><span.class="t31_1">error:</spa
923a0 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 64 69 76 69 73 69 6f 6e 20 62 n><span.class="t0_1">.division.b
923c0 79 20 7a 65 72 6f 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 2f 20 y.zero</span>.....const.c.=.a./.
923e0 62 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 b;.................<span.class="
92400 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 t32_1">^</span>.</code></pre>...
92420 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 .....<p>At.runtime:</p>.......<p
92440 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
92460 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
92480 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 k-kw">const</span>.std.=.<span.c
924a0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
924c0 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
924e0 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 d&quot;</span>);..<span.class="t
92500 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ok-kw">pub</span>.<span.class="t
92520 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
92540 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-fn">main</span>().<span.class=
92560 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 "tok-type">void</span>.{.....<sp
92580 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 an.class="tok-kw">var</span>.a:.
925a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e <span.class="tok-type">u32</span
925c0 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f >.=.<span.class="tok-number">1</
925e0 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e span>;.....<span.class="tok-kw">
92600 76 61 72 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 var</span>.b:.<span.class="tok-t
92620 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ype">u32</span>.=.<span.class="t
92640 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 ok-number">0</span>;.....<span.c
92660 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 61 20 2f lass="tok-kw">var</span>.c.=.a./
92680 20 62 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 .b;.....std.debug.warn(<span.cla
926a0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 ss="tok-str">&quot;value:.{}\n&q
926c0 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 63 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c uot;</span>,.c);.}</code></pre><
926e0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 pre><code.class="shell">$.zig.bu
92700 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 64 69 76 69 73 69 ild-exe.test.zig.$../test.divisi
92720 6f 6e 20 62 79 20 7a 65 72 6f 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f on.by.zero.<span.class="t37_1">/
92740 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 home/andy/dev/zig/docgen_tmp/tes
92760 74 2e 7a 69 67 3a 36 3a 31 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 t.zig:6:15</span>:.<span.class="
92780 74 32 5f 30 22 3e 30 78 32 32 38 31 32 39 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 t2_0">0x228129.in.main.(test)</s
927a0 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 63 20 3d 20 61 20 2f 20 62 3b 0a 20 20 20 20 20 20 20 20 pan>.....var.c.=.a./.b;.........
927c0 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 ......<span.class="t32_1">^</spa
927e0 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 n>.<span.class="t37_1">/home/and
92800 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e y/dev/zig/lib/std/special/start.
92820 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 zig:194:22</span>:.<span.class="
92840 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f t2_0">0x22718b.in.std.special.po
92860 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e sixCallMainAndExit.(test)</span>
92880 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 .............root.main();.......
928a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f ...............<span.class="t32_
928c0 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 1">^</span>.<span.class="t37_1">
928e0 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 /home/andy/dev/zig/lib/std/speci
92900 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e al/start.zig:102:5</span>:.<span
92920 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 .class="t2_0">0x22706f.in.std.sp
92940 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 ecial._start.(test)</span>.....@
92960 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 noInlineCall(posixCallMainAndExi
92980 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 t);.....<span.class="t32_1">^</s
929a0 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e pan>.(process.terminated.by.sign
929c0 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c al)</code></pre>...............<
929e0 68 32 20 69 64 3d 22 52 65 6d 61 69 6e 64 65 72 2d 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 h2.id="Remainder-Division-by-Zer
92a00 6f 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 52 65 6d 61 69 6e 64 65 72 2d 44 69 76 69 73 o"><a.href="#toc-Remainder-Divis
92a20 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 52 65 6d 61 69 6e 64 65 72 20 44 69 76 69 73 69 6f 6e 20 ion-by-Zero">Remainder.Division.
92a40 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d by.Zero</a>.<a.class="hdr".href=
92a60 22 23 52 65 6d 61 69 6e 64 65 72 2d 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e c2 a7 "#Remainder-Division-by-Zero">..
92a80 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 </a></h2>........<p>At.compile-t
92aa0 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ime:</p>.......<p.class="file">t
92ac0 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
92ae0 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c "><span.class="tok-kw">comptime<
92b00 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>.{.....<span.class="tok-kw
92b20 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ">const</span>.a:.<span.class="t
92b40 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ok-type">i32</span>.=.<span.clas
92b60 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 s="tok-number">10</span>;.....<s
92b80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
92ba0 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 b:.<span.class="tok-type">i32</s
92bc0 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e pan>.=.<span.class="tok-number">
92be0 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 0</span>;.....<span.class="tok-k
92c00 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 61 20 25 20 62 3b 0a 7d 3c 2f 63 6f w">const</span>.c.=.a.%.b;.}</co
92c20 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
92c40 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 ">$.zig.test.test.zig.<span.clas
92c60 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 s="t0_1">/home/andy/dev/zig/docg
92c80 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 31 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 en_tmp/test.zig:4:17:.</span><sp
92ca0 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 an.class="t31_1">error:</span><s
92cc0 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 pan.class="t0_1">.division.by.ze
92ce0 72 6f 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 25 20 62 3b 0a 20 ro</span>.....const.c.=.a.%.b;..
92d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f ...............<span.class="t32_
92d20 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 1">^</span>.</code></pre>.......
92d40 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 .<p>At.runtime:</p>.......<p.cla
92d60 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 ss="file">test.zig</p><pre><code
92d80 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
92da0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">const</span>.std.=.<span.class
92dc0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 ="tok-builtin">@import</span>(<s
92de0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 pan.class="tok-str">&quot;std&qu
92e00 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ot;</span>);..<span.class="tok-k
92e20 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b w">pub</span>.<span.class="tok-k
92e40 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e w">fn</span>.<span.class="tok-fn
92e60 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">main</span>().<span.class="tok
92e80 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 -type">void</span>.{.....<span.c
92ea0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 lass="tok-kw">var</span>.a:.<spa
92ec0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 n.class="tok-type">u32</span>.=.
92ee0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 <span.class="tok-number">10</spa
92f00 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 n>;.....<span.class="tok-kw">var
92f20 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 </span>.b:.<span.class="tok-type
92f40 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">u32</span>.=.<span.class="tok-
92f60 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 number">0</span>;.....<span.clas
92f80 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 61 20 25 20 62 3b s="tok-kw">var</span>.c.=.a.%.b;
92fa0 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d .....std.debug.warn(<span.class=
92fc0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 "tok-str">&quot;value:.{}\n&quot
92fe0 3b 3c 2f 73 70 61 6e 3e 2c 20 63 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 ;</span>,.c);.}</code></pre><pre
93000 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 ><code.class="shell">$.zig.build
93020 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 72 65 6d 61 69 6e 64 65 72 -exe.test.zig.$../test.remainder
93040 20 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 20 6f 72 20 6e 65 67 61 74 69 76 65 20 76 61 .division.by.zero.or.negative.va
93060 6c 75 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e lue.<span.class="t37_1">/home/an
93080 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 dy/dev/zig/docgen_tmp/test.zig:6
930a0 3a 31 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 :15</span>:.<span.class="t2_0">0
930c0 78 32 32 38 31 34 34 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 x228144.in.main.(test)</span>...
930e0 20 20 76 61 72 20 63 20 3d 20 61 20 25 20 62 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ..var.c.=.a.%.b;...............<
93100 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 span.class="t32_1">^</span>.<spa
93120 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a n.class="t37_1">/home/andy/dev/z
93140 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 ig/lib/std/special/start.zig:194
93160 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 :22</span>:.<span.class="t2_0">0
93180 78 32 32 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c x22718b.in.std.special.posixCall
931a0 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 MainAndExit.(test)</span>.......
931c0 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......root.main();..............
931e0 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
93200 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 pan>.<span.class="t37_1">/home/a
93220 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 ndy/dev/zig/lib/std/special/star
93240 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d t.zig:102:5</span>:.<span.class=
93260 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f "t2_0">0x22706f.in.std.special._
93280 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e start.(test)</span>.....@noInlin
932a0 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 eCall(posixCallMainAndExit);....
932c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 .<span.class="t32_1">^</span>.(p
932e0 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f rocess.terminated.by.signal)</co
93300 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 de></pre>...............<h2.id="
93320 45 78 61 63 74 2d 44 69 76 69 73 69 6f 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e 3c 61 20 68 72 65 Exact-Division-Remainder"><a.hre
93340 66 3d 22 23 74 6f 63 2d 45 78 61 63 74 2d 44 69 76 69 73 69 6f 6e 2d 52 65 6d 61 69 6e 64 65 72 f="#toc-Exact-Division-Remainder
93360 22 3e 45 78 61 63 74 20 44 69 76 69 73 69 6f 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f 61 3e 20 3c ">Exact.Division.Remainder</a>.<
93380 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 78 61 63 74 2d 44 69 76 69 73 a.class="hdr".href="#Exact-Divis
933a0 69 6f 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 ion-Remainder">..</a></h2>......
933c0 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 ..<p>At.compile-time:</p>.......
933e0 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 <p.class="file">test.zig</p><pre
93400 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
93420 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 tok-kw">comptime</span>.{.....<s
93440 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
93460 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 a:.<span.class="tok-type">u32</s
93480 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e pan>.=.<span.class="tok-number">
934a0 31 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 10</span>;.....<span.class="tok-
934c0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d kw">const</span>.b:.<span.class=
934e0 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c "tok-type">u32</span>.=.<span.cl
93500 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c ass="tok-number">3</span>;.....<
93520 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
93540 20 63 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 .c.=.<span.class="tok-builtin">@
93560 64 69 76 45 78 61 63 74 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c divExact</span>(a,.b);.}</code><
93580 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 /pre><pre><code.class="shell">$.
935a0 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 zig.test.test.zig.<span.class="t
935c0 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 0_1">/home/andy/dev/zig/docgen_t
935e0 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 31 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 mp/test.zig:4:15:.</span><span.c
93600 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 lass="t31_1">error:</span><span.
93620 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 65 78 61 63 74 20 64 69 76 69 73 69 6f 6e 20 68 61 64 class="t0_1">.exact.division.had
93640 20 61 20 72 65 6d 61 69 6e 64 65 72 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 .a.remainder</span>.....const.c.
93660 3d 20 40 64 69 76 45 78 61 63 74 28 61 2c 20 62 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 =.@divExact(a,.b);..............
93680 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f .<span.class="t32_1">^</span>.</
936a0 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 code></pre>........<p>At.runtime
936c0 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 :</p>.......<p.class="file">test
936e0 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c .zig</p><pre><code.class="zig"><
93700 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
93720 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 .std.=.<span.class="tok-builtin"
93740 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
93760 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a -str">&quot;std&quot;</span>);..
93780 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">pub</span>.
937a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c <span.class="tok-kw">fn</span>.<
937c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 span.class="tok-fn">main</span>(
937e0 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 ).<span.class="tok-type">void</s
93800 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.{.....<span.class="tok-kw">
93820 76 61 72 3c 2f 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 var</span>.a:.<span.class="tok-t
93840 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ype">u32</span>.=.<span.class="t
93860 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 ok-number">10</span>;.....<span.
93880 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 3a 20 3c 73 70 class="tok-kw">var</span>.b:.<sp
938a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d an.class="tok-type">u32</span>.=
938c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 .<span.class="tok-number">3</spa
938e0 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 n>;.....<span.class="tok-kw">var
93900 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 </span>.c.=.<span.class="tok-bui
93920 6c 74 69 6e 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 3b 0a 20 20 ltin">@divExact</span>(a,.b);...
93940 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..std.debug.warn(<span.class="to
93960 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f k-str">&quot;value:.{}\n&quot;</
93980 73 70 61 6e 3e 2c 20 63 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 span>,.c);.}</code></pre><pre><c
939a0 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 ode.class="shell">$.zig.build-ex
939c0 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 65 78 61 63 74 20 64 69 76 69 73 69 e.test.zig.$../test.exact.divisi
939e0 6f 6e 20 70 72 6f 64 75 63 65 64 20 72 65 6d 61 69 6e 64 65 72 0a 3c 73 70 61 6e 20 63 6c 61 73 on.produced.remainder.<span.clas
93a00 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 s="t37_1">/home/andy/dev/zig/doc
93a20 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 31 33 3c 2f 73 70 61 6e 3e 3a 20 3c 73 gen_tmp/test.zig:6:13</span>:.<s
93a40 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 36 36 20 69 6e 20 6d 61 69 pan.class="t2_0">0x228166.in.mai
93a60 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 63 20 3d 20 40 64 69 76 n.(test)</span>.....var.c.=.@div
93a80 45 78 61 63 74 28 61 2c 20 62 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 Exact(a,.b);.............<span.c
93aa0 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 lass="t32_1">^</span>.<span.clas
93ac0 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 s="t37_1">/home/andy/dev/zig/lib
93ae0 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 /std/special/start.zig:194:22</s
93b00 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 pan>:.<span.class="t2_0">0x22718
93b20 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e b.in.std.special.posixCallMainAn
93b40 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 dExit.(test)</span>.............
93b60 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 root.main();....................
93b80 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
93ba0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 span.class="t37_1">/home/andy/de
93bc0 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a v/zig/lib/std/special/start.zig:
93be0 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 102:5</span>:.<span.class="t2_0"
93c00 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 >0x22706f.in.std.special._start.
93c20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 (test)</span>.....@noInlineCall(
93c40 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e posixCallMainAndExit);.....<span
93c60 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 .class="t32_1">^</span>.(process
93c80 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 .terminated.by.signal)</code></p
93ca0 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 53 6c 69 63 65 2d re>...............<h2.id="Slice-
93cc0 57 69 64 65 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 53 Widen-Remainder"><a.href="#toc-S
93ce0 6c 69 63 65 2d 57 69 64 65 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e 53 6c 69 63 65 20 57 69 64 65 lice-Widen-Remainder">Slice.Wide
93d00 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 n.Remainder</a>.<a.class="hdr".h
93d20 72 65 66 3d 22 23 53 6c 69 63 65 2d 57 69 64 65 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e c2 a7 3c ref="#Slice-Widen-Remainder">..<
93d40 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 /a></h2>........<p>At.compile-ti
93d60 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 me:</p>.......<p.class="file">te
93d80 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 st.zig</p><pre><code.class="zig"
93da0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f ><span.class="tok-kw">comptime</
93dc0 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
93de0 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 79 74 65 73 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 >var</span>.bytes.=.[<span.class
93e00 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 ="tok-number">5</span>]<span.cla
93e20 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 ss="tok-type">u8</span>{.<span.c
93e40 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 lass="tok-number">1</span>,.<spa
93e60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 20 3c n.class="tok-number">2</span>,.<
93e80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e span.class="tok-number">3</span>
93ea0 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 ,.<span.class="tok-number">4</sp
93ec0 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c an>,.<span.class="tok-number">5<
93ee0 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b /span>.};.....<span.class="tok-k
93f00 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 w">var</span>.slice.=.<span.clas
93f20 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 79 74 65 73 54 6f 53 6c 69 63 65 3c 2f 73 s="tok-builtin">@bytesToSlice</s
93f40 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c pan>(<span.class="tok-type">u32<
93f60 2f 73 70 61 6e 3e 2c 20 62 79 74 65 73 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 /span>,.bytes);.}</code></pre><p
93f80 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 re><code.class="shell">$.zig.tes
93fa0 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 t.test.zig.<span.class="t0_1">/h
93fc0 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 ome/andy/dev/zig/docgen_tmp/test
93fe0 2e 7a 69 67 3a 33 3a 31 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .zig:3:17:.</span><span.class="t
94000 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 31_1">error:</span><span.class="
94020 74 30 5f 31 22 3e 20 75 6e 61 62 6c 65 20 74 6f 20 63 6f 6e 76 65 72 74 20 5b 35 5d 75 38 20 74 t0_1">.unable.to.convert.[5]u8.t
94040 6f 20 5b 5d 61 6c 69 67 6e 28 31 29 20 63 6f 6e 73 74 20 75 33 32 3a 20 73 69 7a 65 20 6d 69 73 o.[]align(1).const.u32:.size.mis
94060 6d 61 74 63 68 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 73 6c 69 63 65 20 3d 20 40 62 79 match</span>.....var.slice.=.@by
94080 74 65 73 54 6f 53 6c 69 63 65 28 75 33 32 2c 20 62 79 74 65 73 29 3b 0a 20 20 20 20 20 20 20 20 tesToSlice(u32,.bytes);.........
940a0 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
940c0 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e pan>.<span.class="t0_1">/home/an
940e0 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 dy/dev/zig/docgen_tmp/test.zig:3
94100 3a 33 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e :31:.</span><span.class="t36_1">
94120 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 note:</span><span.class="t0_1">.
94140 75 33 32 20 68 61 73 20 73 69 7a 65 20 34 3b 20 72 65 6d 61 69 6e 69 6e 67 20 62 79 74 65 73 3a u32.has.size.4;.remaining.bytes:
94160 20 31 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 73 6c 69 63 65 20 3d 20 40 62 79 74 65 73 .1</span>.....var.slice.=.@bytes
94180 54 6f 53 6c 69 63 65 28 75 33 32 2c 20 62 79 74 65 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ToSlice(u32,.bytes);............
941a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...................<span.class="
941c0 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 t32_1">^</span>.</code></pre>...
941e0 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 .....<p>At.runtime:</p>.......<p
94200 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
94220 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
94240 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 k-kw">const</span>.std.=.<span.c
94260 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e lass="tok-builtin">@import</span
94280 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >(<span.class="tok-str">&quot;st
942a0 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 d&quot;</span>);..<span.class="t
942c0 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ok-kw">pub</span>.<span.class="t
942e0 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
94300 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-fn">main</span>().<span.class=
94320 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 "tok-type">void</span>.{.....<sp
94340 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 79 74 an.class="tok-kw">var</span>.byt
94360 65 73 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 es.=.[<span.class="tok-number">5
94380 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 </span>]<span.class="tok-type">u
943a0 38 3c 2f 73 70 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 8</span>{.<span.class="tok-numbe
943c0 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 r">1</span>,.<span.class="tok-nu
943e0 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b mber">2</span>,.<span.class="tok
94400 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -number">3</span>,.<span.class="
94420 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 tok-number">4</span>,.<span.clas
94440 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c s="tok-number">5</span>.};.....<
94460 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 span.class="tok-kw">var</span>.s
94480 6c 69 63 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 lice.=.<span.class="tok-builtin"
944a0 3e 40 62 79 74 65 73 54 6f 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 >@bytesToSlice</span>(<span.clas
944c0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 79 74 65 73 5b 3c s="tok-type">u32</span>,.bytes[<
944e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
94500 2e 2e 5d 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 ..]);.....std.debug.warn(<span.c
94520 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e lass="tok-str">&quot;value:.{}\n
94540 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 73 6c 69 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 &quot;</span>,.slice[<span.class
94560 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 29 3b 0a 7d 3c 2f 63 6f 64 ="tok-number">0</span>]);.}</cod
94580 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 e></pre><pre><code.class="shell"
945a0 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 >$.zig.build-exe.test.zig.$../te
945c0 73 74 0a 73 6c 69 63 65 20 77 69 64 65 6e 69 6e 67 20 73 69 7a 65 20 6d 69 73 6d 61 74 63 68 0a st.slice.widening.size.mismatch.
945e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 <span.class="t37_1">/home/andy/d
94600 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 37 3c ev/zig/docgen_tmp/test.zig:5:17<
94620 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 /span>:.<span.class="t2_0">0x228
94640 31 36 36 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 166.in.main.(test)</span>.....va
94660 72 20 73 6c 69 63 65 20 3d 20 40 62 79 74 65 73 54 6f 53 6c 69 63 65 28 75 33 32 2c 20 62 79 74 r.slice.=.@bytesToSlice(u32,.byt
94680 65 73 5b 30 2e 2e 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 es[0..]);.................<span.
946a0 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 class="t32_1">^</span>.<span.cla
946c0 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 ss="t37_1">/home/andy/dev/zig/li
946e0 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f b/std/special/start.zig:194:22</
94700 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 span>:.<span.class="t2_0">0x2271
94720 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 8b.in.std.special.posixCallMainA
94740 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 ndExit.(test)</span>............
94760 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .root.main();...................
94780 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a ...<span.class="t32_1">^</span>.
947a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 <span.class="t37_1">/home/andy/d
947c0 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 ev/zig/lib/std/special/start.zig
947e0 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 :102:5</span>:.<span.class="t2_0
94800 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 ">0x22706f.in.std.special._start
94820 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c .(test)</span>.....@noInlineCall
94840 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 (posixCallMainAndExit);.....<spa
94860 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 n.class="t32_1">^</span>.(proces
94880 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f s.terminated.by.signal)</code></
948a0 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 74 74 65 6d pre>...............<h2.id="Attem
948c0 70 74 2d 74 6f 2d 55 6e 77 72 61 70 2d 4e 75 6c 6c 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 pt-to-Unwrap-Null"><a.href="#toc
948e0 2d 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 72 61 70 2d 4e 75 6c 6c 22 3e 41 74 74 65 6d 70 74 -Attempt-to-Unwrap-Null">Attempt
94900 20 74 6f 20 55 6e 77 72 61 70 20 4e 75 6c 6c 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 .to.Unwrap.Null</a>.<a.class="hd
94920 72 22 20 68 72 65 66 3d 22 23 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 72 61 70 2d 4e 75 6c 6c r".href="#Attempt-to-Unwrap-Null
94940 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 ">..</a></h2>........<p>At.compi
94960 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c le-time:</p>.......<p.class="fil
94980 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
949a0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 "zig"><span.class="tok-kw">compt
949c0 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ime</span>.{.....<span.class="to
949e0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 70 74 69 6f 6e 61 6c 5f 6e 75 6d 62 k-kw">const</span>.optional_numb
94a00 65 72 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c er:.?<span.class="tok-type">i32<
94a20 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e /span>.=.<span.class="tok-null">
94a40 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f null</span>;.....<span.class="to
94a60 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 20 3d 20 6f 70 74 69 k-kw">const</span>.number.=.opti
94a80 6f 6e 61 6c 5f 6e 75 6d 62 65 72 2e 3f 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 onal_number.?;.}</code></pre><pr
94aa0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 e><code.class="shell">$.zig.test
94ac0 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f .test.zig.<span.class="t0_1">/ho
94ae0 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e me/andy/dev/zig/docgen_tmp/test.
94b00 7a 69 67 3a 33 3a 33 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 zig:3:35:.</span><span.class="t3
94b20 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 1_1">error:</span><span.class="t
94b40 30 5f 31 22 3e 20 75 6e 61 62 6c 65 20 74 6f 20 75 6e 77 72 61 70 20 6e 75 6c 6c 3c 2f 73 70 61 0_1">.unable.to.unwrap.null</spa
94b60 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 6f 70 74 69 6f 6e 61 6c 5f 6e n>.....const.number.=.optional_n
94b80 75 6d 62 65 72 2e 3f 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 umber.?;........................
94ba0 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e ...........<span.class="t32_1">^
94bc0 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e </span>.</code></pre>........<p>
94be0 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 At.runtime:</p>.......<p.class="
94c00 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 file">test.zig</p><pre><code.cla
94c20 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f ss="zig"><span.class="tok-kw">co
94c40 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f nst</span>.std.=.<span.class="to
94c60 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
94c80 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
94ca0 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 /span>);..<span.class="tok-kw">p
94cc0 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 ub</span>.<span.class="tok-kw">f
94ce0 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 n</span>.<span.class="tok-fn">ma
94d00 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 in</span>().<span.class="tok-typ
94d20 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 e">void</span>.{.....<span.class
94d40 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6f 70 74 69 6f 6e 61 6c 5f 6e 75 ="tok-kw">var</span>.optional_nu
94d60 6d 62 65 72 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 mber:.?<span.class="tok-type">i3
94d80 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 2</span>.=.<span.class="tok-null
94da0 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">null</span>;.....<span.class="
94dc0 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 20 3d 20 6f 70 74 69 tok-kw">var</span>.number.=.opti
94de0 6f 6e 61 6c 5f 6e 75 6d 62 65 72 2e 3f 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 onal_number.?;.....std.debug.war
94e00 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 n(<span.class="tok-str">&quot;va
94e20 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 6e 75 6d 62 65 72 29 3b lue:.{}\n&quot;</span>,.number);
94e40 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d .}</code></pre><pre><code.class=
94e60 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 "shell">$.zig.build-exe.test.zig
94e80 0a 24 20 2e 2f 74 65 73 74 0a 61 74 74 65 6d 70 74 20 74 6f 20 75 6e 77 72 61 70 20 6e 75 6c 6c .$../test.attempt.to.unwrap.null
94ea0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f .<span.class="t37_1">/home/andy/
94ec0 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 33 33 dev/zig/docgen_tmp/test.zig:5:33
94ee0 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 </span>:.<span.class="t2_0">0x22
94f00 38 31 31 63 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 811c.in.main.(test)</span>.....v
94f20 61 72 20 6e 75 6d 62 65 72 20 3d 20 6f 70 74 69 6f 6e 61 6c 5f 6e 75 6d 62 65 72 2e 3f 3b 0a 20 ar.number.=.optional_number.?;..
94f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ...............................<
94f60 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 span.class="t32_1">^</span>.<spa
94f80 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a n.class="t37_1">/home/andy/dev/z
94fa0 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 ig/lib/std/special/start.zig:194
94fc0 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 :22</span>:.<span.class="t2_0">0
94fe0 78 32 32 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c x22718b.in.std.special.posixCall
95000 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 MainAndExit.(test)</span>.......
95020 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......root.main();..............
95040 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
95060 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 pan>.<span.class="t37_1">/home/a
95080 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 ndy/dev/zig/lib/std/special/star
950a0 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d t.zig:102:5</span>:.<span.class=
950c0 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f "t2_0">0x22706f.in.std.special._
950e0 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e start.(test)</span>.....@noInlin
95100 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 eCall(posixCallMainAndExit);....
95120 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 .<span.class="t32_1">^</span>.(p
95140 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f rocess.terminated.by.signal)</co
95160 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 4f 6e 65 20 77 61 79 20 74 6f 20 61 de></pre>........<p>One.way.to.a
95180 76 6f 69 64 20 74 68 69 73 20 63 72 61 73 68 20 69 73 20 74 6f 20 74 65 73 74 20 66 6f 72 20 6e void.this.crash.is.to.test.for.n
951a0 75 6c 6c 20 69 6e 73 74 65 61 64 20 6f 66 20 61 73 73 75 6d 69 6e 67 20 6e 6f 6e 2d 6e 75 6c 6c ull.instead.of.assuming.non-null
951c0 2c 20 77 69 74 68 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 ,.with.......the.<code.class="zi
951e0 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e g"><span.class="tok-kw">if</span
95200 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c ></code>.expression:</p>.......<
95220 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e p.class="file">test.zig</p><pre>
95240 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
95260 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 77 61 72 6e 20 3d 20 3c 73 70 61 6e ok-kw">const</span>.warn.=.<span
95280 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 .class="tok-builtin">@import</sp
952a0 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b an>(<span.class="tok-str">&quot;
952c0 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 3c 73 std&quot;</span>).debug.warn;.<s
952e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
95300 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 pan.class="tok-kw">fn</span>.<sp
95320 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 an.class="tok-fn">main</span>().
95340 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 <span.class="tok-type">void</spa
95360 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f n>.{.....<span.class="tok-kw">co
95380 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 70 74 69 6f 6e 61 6c 5f 6e 75 6d 62 65 72 3a 20 3f 3c 73 70 nst</span>.optional_number:.?<sp
953a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d an.class="tok-type">i32</span>.=
953c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 .<span.class="tok-null">null</sp
953e0 61 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 an>;......<span.class="tok-kw">i
95400 66 3c 2f 73 70 61 6e 3e 20 28 6f 70 74 69 6f 6e 61 6c 5f 6e 75 6d 62 65 72 29 20 7c 6e 75 6d 62 f</span>.(optional_number).|numb
95420 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 er|.{.........warn(<span.class="
95440 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 67 6f 74 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 tok-str">&quot;got.number:.{}\n&
95460 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 7d 20 3c 73 70 quot;</span>,.number);.....}.<sp
95480 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7b 0a an.class="tok-kw">else</span>.{.
954a0 20 20 20 20 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 ........warn(<span.class="tok-st
954c0 72 22 3e 26 71 75 6f 74 3b 69 74 27 73 20 6e 75 6c 6c 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e r">&quot;it's.null\n&quot;</span
954e0 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f >);.....}.}</code></pre><pre><co
95500 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 de.class="shell">$.zig.build-exe
95520 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 69 74 27 73 20 6e 75 6c 6c 0a 3c 2f 63 .test.zig.$../test.it's.null.</c
95540 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f ode></pre>........<p>See.also:</
95560 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 73 22 3e p><ul>.<li><a.href="#Optionals">
95580 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 Optionals</a></li>.</ul>........
955a0 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 72 61 70 .......<h2.id="Attempt-to-Unwrap
955c0 2d 45 72 72 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 41 74 74 65 6d 70 74 2d 74 6f -Error"><a.href="#toc-Attempt-to
955e0 2d 55 6e 77 72 61 70 2d 45 72 72 6f 72 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 -Unwrap-Error">Attempt.to.Unwrap
95600 20 45 72 72 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 .Error</a>.<a.class="hdr".href="
95620 23 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 72 61 70 2d 45 72 72 6f 72 22 3e c2 a7 3c 2f 61 3e #Attempt-to-Unwrap-Error">..</a>
95640 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a </h2>........<p>At.compile-time:
95660 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e </p>.......<p.class="file">test.
95680 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
956a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
956c0 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f n>.{.....<span.class="tok-kw">co
956e0 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 20 3d 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 nst</span>.number.=.getNumberOrF
95700 61 69 6c 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 ail().<span.class="tok-kw">catch
95720 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 </span>.<span.class="tok-kw">unr
95740 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d eachable</span>;.}..<span.class=
95760 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
95780 74 6f 6b 2d 66 6e 22 3e 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 3c 2f 73 70 61 6e 3e 28 29 tok-fn">getNumberOrFail</span>()
957a0 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 .!<span.class="tok-type">i32</sp
957c0 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 an>.{.....<span.class="tok-kw">r
957e0 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 eturn</span>.<span.class="tok-kw
95800 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d ">error</span>.UnableToReturnNum
95820 62 65 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c ber;.}</code></pre><pre><code.cl
95840 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a ass="shell">$.zig.test.test.zig.
95860 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 <span.class="t0_1">/home/andy/de
95880 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 33 38 3a 20 v/zig/docgen_tmp/test.zig:2:38:.
958a0 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 </span><span.class="t31_1">error
958c0 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 75 67 :</span><span.class="t0_1">.caug
958e0 68 74 20 75 6e 65 78 70 65 63 74 65 64 20 65 72 72 6f 72 20 27 55 6e 61 62 6c 65 54 6f 52 65 74 ht.unexpected.error.'UnableToRet
95900 75 72 6e 4e 75 6d 62 65 72 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 urnNumber'</span>.....const.numb
95920 65 72 20 3d 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 20 63 61 74 63 68 20 75 6e 72 er.=.getNumberOrFail().catch.unr
95940 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eachable;.......................
95960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f ...............<span.class="t32_
95980 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 1">^</span>.</code></pre>.......
959a0 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 .<p>At.runtime:</p>.......<p.cla
959c0 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 ss="file">test.zig</p><pre><code
959e0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
95a00 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">const</span>.std.=.<span.class
95a20 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 ="tok-builtin">@import</span>(<s
95a40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 pan.class="tok-str">&quot;std&qu
95a60 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ot;</span>);..<span.class="tok-k
95a80 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b w">pub</span>.<span.class="tok-k
95aa0 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e w">fn</span>.<span.class="tok-fn
95ac0 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">main</span>().<span.class="tok
95ae0 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 -type">void</span>.{.....<span.c
95b00 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 lass="tok-kw">const</span>.numbe
95b20 72 20 3d 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 r.=.getNumberOrFail().<span.clas
95b40 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c s="tok-kw">catch</span>.<span.cl
95b60 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b ass="tok-kw">unreachable</span>;
95b80 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d .....std.debug.warn(<span.class=
95ba0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 "tok-str">&quot;value:.{}\n&quot
95bc0 3b 3c 2f 73 70 61 6e 3e 2c 20 6e 75 6d 62 65 72 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 ;</span>,.number);.}..<span.clas
95be0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
95c00 3d 22 74 6f 6b 2d 66 6e 22 3e 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 3c 2f 73 70 61 6e 3e ="tok-fn">getNumberOrFail</span>
95c20 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f ().!<span.class="tok-type">i32</
95c40 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
95c60 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >return</span>.<span.class="tok-
95c80 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e kw">error</span>.UnableToReturnN
95ca0 75 6d 62 65 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 umber;.}</code></pre><pre><code.
95cc0 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 class="shell">$.zig.build-exe.te
95ce0 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 61 74 74 65 6d 70 74 20 74 6f 20 75 6e 77 72 61 st.zig.$../test.attempt.to.unwra
95d00 70 20 65 72 72 6f 72 3a 20 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 0a 3c 73 p.error:.UnableToReturnNumber.<s
95d20 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 pan.class="t37_1">/home/andy/dev
95d40 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 39 3a 35 3c 2f 73 70 /zig/docgen_tmp/test.zig:9:5</sp
95d60 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 32 34 61 an>:.<span.class="t2_0">0x22824a
95d80 20 69 6e 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 20 28 74 65 73 74 29 3c 2f 73 70 61 6e .in.getNumberOrFail.(test)</span
95da0 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 >.....return.error.UnableToRetur
95dc0 6e 4e 75 6d 62 65 72 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 nNumber;.....<span.class="t32_1"
95de0 3e 5e 3c 2f 73 70 61 6e 3e 0a 3f 3f 3f 3a 3f 3a 3f 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >^</span>.???:?:?:.<span.class="
95e00 74 32 5f 30 22 3e 30 78 32 32 38 33 30 63 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 t2_0">0x22830c.in.???.(???)</spa
95e20 6e 3e 0a 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 n>...<span.class="t37_1">/home/a
95e40 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a ndy/dev/zig/docgen_tmp/test.zig:
95e60 34 3a 33 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 4:38</span>:.<span.class="t2_0">
95e80 30 78 32 32 38 31 35 62 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 0x22815b.in.main.(test)</span>..
95ea0 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 ...const.number.=.getNumberOrFai
95ec0 6c 28 29 20 63 61 74 63 68 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 l().catch.unreachable;..........
95ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 ............................<spa
95f00 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 n.class="t32_1">^</span>.<span.c
95f20 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f lass="t37_1">/home/andy/dev/zig/
95f40 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 lib/std/special/start.zig:194:22
95f60 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 </span>:.<span.class="t2_0">0x22
95f80 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 718b.in.std.special.posixCallMai
95fa0 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 nAndExit.(test)</span>..........
95fc0 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...root.main();.................
95fe0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e .....<span.class="t32_1">^</span
96000 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 >.<span.class="t37_1">/home/andy
96020 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a /dev/zig/lib/std/special/start.z
96040 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 ig:102:5</span>:.<span.class="t2
96060 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 _0">0x22706f.in.std.special._sta
96080 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 rt.(test)</span>.....@noInlineCa
960a0 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 ll(posixCallMainAndExit);.....<s
960c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 pan.class="t32_1">^</span>.(proc
960e0 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e ess.terminated.by.signal)</code>
96100 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 4f 6e 65 20 77 61 79 20 74 6f 20 61 76 6f 69 </pre>........<p>One.way.to.avoi
96120 64 20 74 68 69 73 20 63 72 61 73 68 20 69 73 20 74 6f 20 74 65 73 74 20 66 6f 72 20 61 6e 20 65 d.this.crash.is.to.test.for.an.e
96140 72 72 6f 72 20 69 6e 73 74 65 61 64 20 6f 66 20 61 73 73 75 6d 69 6e 67 20 61 20 73 75 63 63 65 rror.instead.of.assuming.a.succe
96160 73 73 66 75 6c 20 72 65 73 75 6c 74 2c 20 77 69 74 68 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f ssful.result,.with.......the.<co
96180 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
961a0 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a kw">if</span></code>.expression:
961c0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e </p>.......<p.class="file">test.
961e0 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 zig</p><pre><code.class="zig"><s
96200 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
96220 77 61 72 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 warn.=.<span.class="tok-builtin"
96240 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >@import</span>(<span.class="tok
96260 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 -str">&quot;std&quot;</span>).de
96280 62 75 67 2e 77 61 72 6e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e bug.warn;..<span.class="tok-kw">
962a0 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pub</span>.<span.class="tok-kw">
962c0 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d fn</span>.<span.class="tok-fn">m
962e0 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ain</span>().<span.class="tok-ty
96300 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 pe">void</span>.{.....<span.clas
96320 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 20 3d s="tok-kw">const</span>.result.=
96340 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 .getNumberOrFail();......<span.c
96360 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 72 65 73 75 6c 74 29 lass="tok-kw">if</span>.(result)
96380 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 .|number|.{.........warn(<span.c
963a0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 67 6f 74 20 6e 75 6d 62 65 72 3a lass="tok-str">&quot;got.number:
963c0 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 6e 75 6d 62 65 72 29 3b 0a 20 20 20 .{}\n&quot;</span>,.number);....
963e0 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 .}.<span.class="tok-kw">else</sp
96400 61 6e 3e 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 3c 73 70 61 6e 20 63 an>.|err|.{.........warn(<span.c
96420 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 67 6f 74 20 65 72 72 6f 72 3a 20 lass="tok-str">&quot;got.error:.
96440 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 {}\n&quot;</span>,.<span.class="
96460 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 65 tok-builtin">@errorName</span>(e
96480 72 72 29 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d rr));.....}.}..<span.class="tok-
964a0 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 kw">fn</span>.<span.class="tok-f
964c0 6e 22 3e 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 n">getNumberOrFail</span>().!<sp
964e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b an.class="tok-type">i32</span>.{
96500 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e .....<span.class="tok-kw">return
96520 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 </span>.<span.class="tok-kw">err
96540 6f 72 3c 2f 73 70 61 6e 3e 2e 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 3b 0a or</span>.UnableToReturnNumber;.
96560 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 }</code></pre><pre><code.class="
96580 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a shell">$.zig.build-exe.test.zig.
965a0 24 20 2e 2f 74 65 73 74 0a 67 6f 74 20 65 72 72 6f 72 3a 20 55 6e 61 62 6c 65 54 6f 52 65 74 75 $../test.got.error:.UnableToRetu
965c0 72 6e 4e 75 6d 62 65 72 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 rnNumber.</code></pre>........<p
965e0 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 >See.also:</p><ul>.<li><a.href="
96600 23 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a #Errors">Errors</a></li>.</ul>..
96620 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 76 61 6c 69 64 2d 45 72 72 .............<h2.id="Invalid-Err
96640 6f 72 2d 43 6f 64 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 76 61 6c 69 64 2d 45 or-Code"><a.href="#toc-Invalid-E
96660 72 72 6f 72 2d 43 6f 64 65 22 3e 49 6e 76 61 6c 69 64 20 45 72 72 6f 72 20 43 6f 64 65 3c 2f 61 rror-Code">Invalid.Error.Code</a
96680 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 76 61 6c 69 64 2d >.<a.class="hdr".href="#Invalid-
966a0 45 72 72 6f 72 2d 43 6f 64 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c Error-Code">..</a></h2>........<
966c0 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 p>At.compile-time:</p>.......<p.
966e0 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 class="file">test.zig</p><pre><c
96700 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
96720 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e -kw">comptime</span>.{.....<span
96740 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 72 72 .class="tok-kw">const</span>.err
96760 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 .=.<span.class="tok-kw">error</s
96780 70 61 6e 3e 2e 41 6e 45 72 72 6f 72 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>.AnError;.....<span.class="t
967a0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 20 3d 20 3c 73 70 ok-kw">const</span>.number.=.<sp
967c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 54 6f 49 an.class="tok-builtin">@errorToI
967e0 6e 74 3c 2f 73 70 61 6e 3e 28 65 72 72 29 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f nt</span>(err).+.<span.class="to
96800 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 k-number">10</span>;.....<span.c
96820 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 6e 76 61 6c lass="tok-kw">const</span>.inval
96840 69 64 5f 65 72 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 id_err.=.<span.class="tok-builti
96860 6e 22 3e 40 69 6e 74 54 6f 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 6e 75 6d 62 65 72 29 3b 0a 7d n">@intToError</span>(number);.}
96880 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 </code></pre><pre><code.class="s
968a0 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 hell">$.zig.test.test.zig.<span.
968c0 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f class="t0_1">/home/andy/dev/zig/
968e0 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 32 35 3a 20 3c 2f 73 70 61 6e docgen_tmp/test.zig:4:25:.</span
96900 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 ><span.class="t31_1">error:</spa
96920 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 69 6e 74 65 67 65 72 20 76 61 n><span.class="t0_1">.integer.va
96940 6c 75 65 20 31 31 20 72 65 70 72 65 73 65 6e 74 73 20 6e 6f 20 65 72 72 6f 72 3c 2f 73 70 61 6e lue.11.represents.no.error</span
96960 3e 0a 20 20 20 20 63 6f 6e 73 74 20 69 6e 76 61 6c 69 64 5f 65 72 72 20 3d 20 40 69 6e 74 54 6f >.....const.invalid_err.=.@intTo
96980 45 72 72 6f 72 28 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Error(number);..................
969a0 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 .......<span.class="t32_1">^</sp
969c0 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 an>.</code></pre>........<p>At.r
969e0 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 untime:</p>.......<p.class="file
96a00 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ">test.zig</p><pre><code.class="
96a20 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c zig"><span.class="tok-kw">const<
96a40 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 /span>.std.=.<span.class="tok-bu
96a60 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 iltin">@import</span>(<span.clas
96a80 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;std&quot;</spa
96aa0 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f n>);..<span.class="tok-kw">pub</
96ac0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
96ae0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f pan>.<span.class="tok-fn">main</
96b00 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 span>().<span.class="tok-type">v
96b20 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f oid</span>.{.....<span.class="to
96b40 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 65 72 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 k-kw">var</span>.err.=.<span.cla
96b60 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 41 6e 45 72 72 6f 72 ss="tok-kw">error</span>.AnError
96b80 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f ;.....<span.class="tok-kw">var</
96ba0 73 70 61 6e 3e 20 6e 75 6d 62 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d span>.number.=.<span.class="tok-
96bc0 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 54 6f 49 6e 74 3c 2f 73 70 61 6e 3e 28 65 72 72 29 builtin">@errorToInt</span>(err)
96be0 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 30 30 3c .+.<span.class="tok-number">500<
96c00 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>;.....<span.class="tok-kw"
96c20 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 6e 76 61 6c 69 64 5f 65 72 72 20 3d 20 3c 73 70 61 6e 20 >var</span>.invalid_err.=.<span.
96c40 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 45 72 72 6f 72 3c class="tok-builtin">@intToError<
96c60 2f 73 70 61 6e 3e 28 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 /span>(number);.....std.debug.wa
96c80 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 rn(<span.class="tok-str">&quot;v
96ca0 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 6e 75 6d 62 65 72 29 alue:.{}\n&quot;</span>,.number)
96cc0 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ;.}</code></pre><pre><code.class
96ce0 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 ="shell">$.zig.build-exe.test.zi
96d00 67 0a 24 20 2e 2f 74 65 73 74 0a 69 6e 76 61 6c 69 64 20 65 72 72 6f 72 20 63 6f 64 65 0a 3c 73 g.$../test.invalid.error.code.<s
96d20 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 pan.class="t37_1">/home/andy/dev
96d40 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 32 33 3c 2f 73 /zig/docgen_tmp/test.zig:6:23</s
96d60 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 34 pan>:.<span.class="t2_0">0x22814
96d80 63 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 c.in.main.(test)</span>.....var.
96da0 69 6e 76 61 6c 69 64 5f 65 72 72 20 3d 20 40 69 6e 74 54 6f 45 72 72 6f 72 28 6e 75 6d 62 65 72 invalid_err.=.@intToError(number
96dc0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 );.......................<span.c
96de0 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 lass="t32_1">^</span>.<span.clas
96e00 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 s="t37_1">/home/andy/dev/zig/lib
96e20 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 /std/special/start.zig:194:22</s
96e40 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 pan>:.<span.class="t2_0">0x22718
96e60 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e b.in.std.special.posixCallMainAn
96e80 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 dExit.(test)</span>.............
96ea0 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 root.main();....................
96ec0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
96ee0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 span.class="t37_1">/home/andy/de
96f00 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a v/zig/lib/std/special/start.zig:
96f20 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 102:5</span>:.<span.class="t2_0"
96f40 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 >0x22706f.in.std.special._start.
96f60 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 (test)</span>.....@noInlineCall(
96f80 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e posixCallMainAndExit);.....<span
96fa0 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 .class="t32_1">^</span>.(process
96fc0 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 .terminated.by.signal)</code></p
96fe0 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 76 61 6c 69 re>...............<h2.id="Invali
97000 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 76 61 6c d-Enum-Cast"><a.href="#toc-Inval
97020 69 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e 49 6e 76 61 6c 69 64 20 45 6e 75 6d 20 43 61 73 74 3c id-Enum-Cast">Invalid.Enum.Cast<
97040 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 76 61 6c 69 /a>.<a.class="hdr".href="#Invali
97060 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 d-Enum-Cast">..</a></h2>........
97080 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 <p>At.compile-time:</p>.......<p
970a0 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c .class="file">test.zig</p><pre><
970c0 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code.class="zig"><span.class="to
970e0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 k-kw">const</span>.Foo.=.<span.c
97100 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 lass="tok-kw">enum</span>.{.....
97120 41 2c 0a 20 20 20 20 42 2c 0a 20 20 20 20 43 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d A,.....B,.....C,.};.<span.class=
97140 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c "tok-kw">comptime</span>.{.....<
97160 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
97180 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 3c 2f 73 .a:.<span.class="tok-type">u2</s
971a0 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e pan>.=.<span.class="tok-number">
971c0 33 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 3</span>;.....<span.class="tok-k
971e0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d w">const</span>.b.=.<span.class=
97200 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 "tok-builtin">@intToEnum</span>(
97220 46 6f 6f 2c 20 61 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 Foo,.a);.}</code></pre><pre><cod
97240 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e e.class="shell">$.zig.test.test.
97260 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 zig.<span.class="t0_1">/home/and
97280 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 38 3a y/dev/zig/docgen_tmp/test.zig:8:
972a0 31 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 15:.</span><span.class="t31_1">e
972c0 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 rror:</span><span.class="t0_1">.
972e0 65 6e 75 6d 20 27 46 6f 6f 27 20 68 61 73 20 6e 6f 20 74 61 67 20 6d 61 74 63 68 69 6e 67 20 69 enum.'Foo'.has.no.tag.matching.i
97300 6e 74 65 67 65 72 20 76 61 6c 75 65 20 33 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 nteger.value.3</span>.....const.
97320 62 20 3d 20 40 69 6e 74 54 6f 45 6e 75 6d 28 46 6f 6f 2c 20 61 29 3b 0a 20 20 20 20 20 20 20 20 b.=.@intToEnum(Foo,.a);.........
97340 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 ......<span.class="t32_1">^</spa
97360 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 n>.<span.class="t0_1">/home/andy
97380 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 3a 31 /dev/zig/docgen_tmp/test.zig:1:1
973a0 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 3:.</span><span.class="t36_1">no
973c0 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 27 46 te:</span><span.class="t0_1">.'F
973e0 6f 6f 27 20 64 65 63 6c 61 72 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 63 6f 6e 73 74 20 46 oo'.declared.here</span>.const.F
97400 6f 6f 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c oo.=.enum.{.............<span.cl
97420 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ass="t32_1">^</span>.</code></pr
97440 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 e>........<p>At.runtime:</p>....
97460 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
97480 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
974a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 s="tok-kw">const</span>.std.=.<s
974c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c pan.class="tok-builtin">@import<
974e0 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 /span>(<span.class="tok-str">&qu
97500 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 ot;std&quot;</span>);..<span.cla
97520 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c ss="tok-kw">const</span>.Foo.=.<
97540 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">enum</span>.
97560 7b 0a 20 20 20 20 41 2c 0a 20 20 20 20 42 2c 0a 20 20 20 20 43 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e {.....A,.....B,.....C,.};..<span
97580 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e .class="tok-kw">pub</span>.<span
975a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 .class="tok-kw">fn</span>.<span.
975c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 class="tok-fn">main</span>().<sp
975e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 an.class="tok-type">void</span>.
97600 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f {.....<span.class="tok-kw">var</
97620 73 70 61 6e 3e 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e span>.a:.<span.class="tok-type">
97640 75 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d u2</span>.=.<span.class="tok-num
97660 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ber">3</span>;.....<span.class="
97680 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 20 3d 20 3c 73 70 61 6e 20 63 6c 61 tok-kw">var</span>.b.=.<span.cla
976a0 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 45 6e 75 6d 3c 2f 73 70 61 ss="tok-builtin">@intToEnum</spa
976c0 6e 3e 28 46 6f 6f 2c 20 61 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c n>(Foo,.a);.....std.debug.warn(<
976e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 span.class="tok-str">&quot;value
97700 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 :.{}\n&quot;</span>,.<span.class
97720 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 62 ="tok-builtin">@tagName</span>(b
97740 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 ));.}</code></pre><pre><code.cla
97760 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e ss="shell">$.zig.build-exe.test.
97780 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 69 6e 76 61 6c 69 64 20 65 6e 75 6d 20 76 61 6c 75 65 0a zig.$../test.invalid.enum.value.
977a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 <span.class="t37_1">/home/andy/d
977c0 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 31 3a 31 33 ev/zig/docgen_tmp/test.zig:11:13
977e0 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 </span>:.<span.class="t2_0">0x22
97800 38 31 32 63 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 812c.in.main.(test)</span>.....v
97820 61 72 20 62 20 3d 20 40 69 6e 74 54 6f 45 6e 75 6d 28 46 6f 6f 2c 20 61 29 3b 0a 20 20 20 20 20 ar.b.=.@intToEnum(Foo,.a);......
97840 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 .......<span.class="t32_1">^</sp
97860 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e an>.<span.class="t37_1">/home/an
97880 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 dy/dev/zig/lib/std/special/start
978a0 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .zig:194:22</span>:.<span.class=
978c0 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 "t2_0">0x22718b.in.std.special.p
978e0 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e osixCallMainAndExit.(test)</span
97900 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 >.............root.main();......
97920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 ................<span.class="t32
97940 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 _1">^</span>.<span.class="t37_1"
97960 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 >/home/andy/dev/zig/lib/std/spec
97980 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 ial/start.zig:102:5</span>:.<spa
979a0 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 n.class="t2_0">0x22706f.in.std.s
979c0 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 pecial._start.(test)</span>.....
979e0 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 @noInlineCall(posixCallMainAndEx
97a00 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f it);.....<span.class="t32_1">^</
97a20 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 span>.(process.terminated.by.sig
97a40 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 nal)</code></pre>...............
97a60 20 3c 68 32 20 69 64 3d 22 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 53 65 74 2d 43 61 73 74 22 .<h2.id="Invalid-Error-Set-Cast"
97a80 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 53 65 74 ><a.href="#toc-Invalid-Error-Set
97aa0 2d 43 61 73 74 22 3e 49 6e 76 61 6c 69 64 20 45 72 72 6f 72 20 53 65 74 20 43 61 73 74 3c 2f 61 -Cast">Invalid.Error.Set.Cast</a
97ac0 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 76 61 6c 69 64 2d >.<a.class="hdr".href="#Invalid-
97ae0 45 72 72 6f 72 2d 53 65 74 2d 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 Error-Set-Cast">..</a></h2>.....
97b00 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 ...<p>At.compile-time:</p>......
97b20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 .<p.class="file">test.zig</p><pr
97b40 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
97b60 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 65 74 31 20 3d 20 3c 73 70 "tok-kw">const</span>.Set1.=.<sp
97b80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 0a an.class="tok-kw">error</span>{.
97ba0 20 20 20 20 41 2c 0a 20 20 20 20 42 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ....A,.....B,.};.<span.class="to
97bc0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 65 74 32 20 3d 20 3c 73 70 61 6e 20 k-kw">const</span>.Set2.=.<span.
97be0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 0a 20 20 20 class="tok-kw">error</span>{....
97c00 20 41 2c 0a 20 20 20 20 43 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b .A,.....C,.};.<span.class="tok-k
97c20 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 5f 20 3d 20 3c 73 70 w">comptime</span>.{....._.=.<sp
97c40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 53 65 74 43 61 an.class="tok-builtin">@errSetCa
97c60 73 74 3c 2f 73 70 61 6e 3e 28 53 65 74 32 2c 20 53 65 74 31 2e 42 29 3b 0a 7d 3c 2f 63 6f 64 65 st</span>(Set2,.Set1.B);.}</code
97c80 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e ></pre><pre><code.class="shell">
97ca0 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d $.zig.test.test.zig.<span.class=
97cc0 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e "t0_1">/home/andy/dev/zig/docgen
97ce0 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e _tmp/test.zig:10:9:.</span><span
97d00 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 .class="t31_1">error:</span><spa
97d20 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 65 72 72 6f 72 2e 42 20 6e 6f 74 20 61 20 6d 65 n.class="t0_1">.error.B.not.a.me
97d40 6d 62 65 72 20 6f 66 20 65 72 72 6f 72 20 73 65 74 20 27 53 65 74 32 27 3c 2f 73 70 61 6e 3e 0a mber.of.error.set.'Set2'</span>.
97d60 20 20 20 20 5f 20 3d 20 40 65 72 72 53 65 74 43 61 73 74 28 53 65 74 32 2c 20 53 65 74 31 2e 42 ...._.=.@errSetCast(Set2,.Set1.B
97d80 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e );.........<span.class="t32_1">^
97da0 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e </span>.</code></pre>........<p>
97dc0 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 At.runtime:</p>.......<p.class="
97de0 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 file">test.zig</p><pre><code.cla
97e00 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f ss="zig"><span.class="tok-kw">co
97e20 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f nst</span>.std.=.<span.class="to
97e40 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-builtin">@import</span>(<span.
97e60 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c class="tok-str">&quot;std&quot;<
97e80 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 /span>);..<span.class="tok-kw">c
97ea0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 65 74 31 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 onst</span>.Set1.=.<span.class="
97ec0 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 0a 20 20 20 20 41 2c 0a 20 20 20 tok-kw">error</span>{.....A,....
97ee0 20 42 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 .B,.};.<span.class="tok-kw">cons
97f00 74 3c 2f 73 70 61 6e 3e 20 53 65 74 32 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b t</span>.Set2.=.<span.class="tok
97f20 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 0a 20 20 20 20 41 2c 0a 20 20 20 20 43 2c -kw">error</span>{.....A,.....C,
97f40 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 .};.<span.class="tok-kw">pub</sp
97f60 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 an>.<span.class="tok-kw">fn</spa
97f80 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 n>.<span.class="tok-fn">main</sp
97fa0 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 an>().<span.class="tok-type">voi
97fc0 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6f 6f 28 53 65 74 31 2e 42 29 3b 0a 7d 0a 3c 73 d</span>.{.....foo(Set1.B);.}.<s
97fe0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 pan.class="tok-kw">fn</span>.<sp
98000 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 73 65 74 an.class="tok-fn">foo</span>(set
98020 31 3a 20 53 65 74 31 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 1:.Set1).<span.class="tok-type">
98040 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 void</span>.{.....<span.class="t
98060 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 20 3d 20 3c 73 70 61 6e 20 63 6c ok-kw">const</span>.x.=.<span.cl
98080 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 53 65 74 43 61 73 74 3c 2f 73 ass="tok-builtin">@errSetCast</s
980a0 70 61 6e 3e 28 53 65 74 32 2c 20 73 65 74 31 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e pan>(Set2,.set1);.....std.debug.
980c0 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 warn(<span.class="tok-str">&quot
980e0 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 78 29 3b 0a 7d ;value:.{}\n&quot;</span>,.x);.}
98100 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 </code></pre><pre><code.class="s
98120 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 hell">$.zig.build-exe.test.zig.$
98140 20 2e 2f 74 65 73 74 0a 69 6e 76 61 6c 69 64 20 65 72 72 6f 72 20 63 6f 64 65 0a 3c 73 70 61 6e ../test.invalid.error.code.<span
98160 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 .class="t37_1">/home/andy/dev/zi
98180 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 35 3a 31 35 3c 2f 73 70 61 g/docgen_tmp/test.zig:15:15</spa
981a0 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 31 66 62 20 n>:.<span.class="t2_0">0x2281fb.
981c0 69 6e 20 66 6f 6f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 78 in.foo.(test)</span>.....const.x
981e0 20 3d 20 40 65 72 72 53 65 74 43 61 73 74 28 53 65 74 32 2c 20 73 65 74 31 29 3b 0a 20 20 20 20 .=.@errSetCast(Set2,.set1);.....
98200 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ..........<span.class="t32_1">^<
98220 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 /span>.<span.class="t37_1">/home
98240 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 /andy/dev/zig/docgen_tmp/test.zi
98260 67 3a 31 32 3a 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 g:12:8</span>:.<span.class="t2_0
98280 22 3e 30 78 32 32 38 30 66 64 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e ">0x2280fd.in.main.(test)</span>
982a0 0a 20 20 20 20 66 6f 6f 28 53 65 74 31 2e 42 29 3b 0a 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 .....foo(Set1.B);........<span.c
982c0 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 lass="t32_1">^</span>.<span.clas
982e0 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 s="t37_1">/home/andy/dev/zig/lib
98300 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 /std/special/start.zig:194:22</s
98320 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 pan>:.<span.class="t2_0">0x22718
98340 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e b.in.std.special.posixCallMainAn
98360 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 dExit.(test)</span>.............
98380 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 root.main();....................
983a0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
983c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 span.class="t37_1">/home/andy/de
983e0 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a v/zig/lib/std/special/start.zig:
98400 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 102:5</span>:.<span.class="t2_0"
98420 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 >0x22706f.in.std.special._start.
98440 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 (test)</span>.....@noInlineCall(
98460 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e posixCallMainAndExit);.....<span
98480 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 .class="t32_1">^</span>.(process
984a0 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 .terminated.by.signal)</code></p
984c0 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 63 6f 72 re>................<h2.id="Incor
984e0 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e 3c 61 20 68 72 65 66 3d rect-Pointer-Alignment"><a.href=
98500 22 23 74 6f 63 2d 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 6e "#toc-Incorrect-Pointer-Alignmen
98520 74 22 3e 49 6e 63 6f 72 72 65 63 74 20 50 6f 69 6e 74 65 72 20 41 6c 69 67 6e 6d 65 6e 74 3c 2f t">Incorrect.Pointer.Alignment</
98540 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 63 6f 72 72 65 a>.<a.class="hdr".href="#Incorre
98560 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 ct-Pointer-Alignment">..</a></h2
98580 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e >........<p>At.compile-time:</p>
985a0 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c .......<p.class="file">test.zig<
985c0 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 /p><pre><code.class="zig"><span.
985e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b class="tok-kw">comptime</span>.{
98600 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c .....<span.class="tok-kw">const<
98620 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 /span>.ptr.=.<span.class="tok-bu
98640 69 6c 74 69 6e 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 61 6e 20 63 iltin">@intToPtr</span>(*<span.c
98660 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 lass="tok-type">i32</span>,.<spa
98680 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 3c 2f 73 70 61 6e 3e 29 n.class="tok-number">0x1</span>)
986a0 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 ;.....<span.class="tok-kw">const
986c0 3c 2f 73 70 61 6e 3e 20 61 6c 69 67 6e 65 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 </span>.aligned.=.<span.class="t
986e0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 ok-builtin">@alignCast</span>(<s
98700 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c pan.class="tok-number">4</span>,
98720 20 70 74 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 .ptr);.}</code></pre><pre><code.
98740 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 class="shell">$.zig.test.test.zi
98760 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f g.<span.class="t0_1">/home/andy/
98780 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 33 35 dev/zig/docgen_tmp/test.zig:3:35
987a0 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 :.</span><span.class="t31_1">err
987c0 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 70 6f or:</span><span.class="t0_1">.po
987e0 69 6e 74 65 72 20 61 64 64 72 65 73 73 20 30 78 31 20 69 73 20 6e 6f 74 20 61 6c 69 67 6e 65 64 inter.address.0x1.is.not.aligned
98800 20 74 6f 20 34 20 62 79 74 65 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 61 6c 69 .to.4.bytes</span>.....const.ali
98820 67 6e 65 64 20 3d 20 40 61 6c 69 67 6e 43 61 73 74 28 34 2c 20 70 74 72 29 3b 0a 20 20 20 20 20 gned.=.@alignCast(4,.ptr);......
98840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 .............................<sp
98860 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 an.class="t32_1">^</span>.<span.
98880 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f class="t0_1">/home/andy/dev/zig/
988a0 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 31 3a 20 3c 2f 73 70 61 6e docgen_tmp/test.zig:3:21:.</span
988c0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e ><span.class="t36_1">note:</span
988e0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 72 65 66 65 72 65 6e 63 65 64 20 ><span.class="t0_1">.referenced.
98900 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 61 6c 69 67 6e 65 64 20 3d 20 here</span>.....const.aligned.=.
98920 40 61 6c 69 67 6e 43 61 73 74 28 34 2c 20 70 74 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 @alignCast(4,.ptr);.............
98940 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 ........<span.class="t32_1">^</s
98960 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 pan>.</code></pre>........<p>At.
98980 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c runtime:</p>.......<p.class="fil
989a0 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
989c0 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f "zig"><span.class="tok-kw">pub</
989e0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
98a00 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f pan>.<span.class="tok-fn">main</
98a20 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e span>().!<span.class="tok-type">
98a40 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 void</span>.{.....<span.class="t
98a60 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 20 3c 73 70 61 6e 20 63 6c ok-kw">var</span>.array.<span.cl
98a80 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 67 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 ass="tok-kw">align</span>(<span.
98aa0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 3d 20 5b class="tok-number">4</span>).=.[
98ac0 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 _]<span.class="tok-type">u32</sp
98ae0 61 6e 3e 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 an>{.<span.class="tok-number">0x
98b00 31 31 31 31 31 31 31 31 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 11111111</span>,.<span.class="to
98b20 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 31 31 31 31 31 31 31 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 k-number">0x11111111</span>.};..
98b40 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ...<span.class="tok-kw">const</s
98b60 70 61 6e 3e 20 62 79 74 65 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 pan>.bytes.=.<span.class="tok-bu
98b80 69 6c 74 69 6e 22 3e 40 73 6c 69 63 65 54 6f 42 79 74 65 73 3c 2f 73 70 61 6e 3e 28 61 72 72 61 iltin">@sliceToBytes</span>(arra
98ba0 79 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 y[<span.class="tok-number">0</sp
98bc0 61 6e 3e 2e 2e 5d 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 an>..]);.....<span.class="tok-kw
98be0 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 66 6f 6f 28 62 79 74 65 73 29 20 21 3d 20 3c 73 70 61 6e ">if</span>.(foo(bytes).!=.<span
98c00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 31 31 31 31 31 31 31 3c 2f .class="tok-number">0x11111111</
98c20 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 span>).<span.class="tok-kw">retu
98c40 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 rn</span>.<span.class="tok-kw">e
98c60 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 57 72 6f 6e 67 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 rror</span>.Wrong;.}.<span.class
98c80 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="tok-kw">fn</span>.<span.class=
98ca0 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 62 79 74 65 73 3a 20 5b 5d 3c 73 70 "tok-fn">foo</span>(bytes:.[]<sp
98cc0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c an.class="tok-type">u8</span>).<
98ce0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e span.class="tok-type">u32</span>
98d00 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 .{.....<span.class="tok-kw">cons
98d20 74 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 34 20 3d 20 62 79 74 65 73 5b 3c 73 70 61 6e 20 63 6c t</span>.slice4.=.bytes[<span.cl
98d40 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2e 2e 3c 73 70 61 6e ass="tok-number">1</span>..<span
98d60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 5d 3b 0a 20 .class="tok-number">5</span>];..
98d80 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ...<span.class="tok-kw">const</s
98da0 70 61 6e 3e 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pan>.int_slice.=.<span.class="to
98dc0 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 79 74 65 73 54 6f 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 k-builtin">@bytesToSlice</span>(
98de0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e <span.class="tok-type">u32</span
98e00 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 6c >,.<span.class="tok-builtin">@al
98e20 69 67 6e 43 61 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ignCast</span>(<span.class="tok-
98e40 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 73 6c 69 63 65 34 29 29 3b 0a 20 20 20 20 number">4</span>,.slice4));.....
98e60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 <span.class="tok-kw">return</spa
98e80 6e 3e 20 69 6e 74 5f 73 6c 69 63 65 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 n>.int_slice[<span.class="tok-nu
98ea0 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c mber">0</span>];.}</code></pre><
98ec0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 pre><code.class="shell">$.zig.bu
98ee0 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 69 6e 63 6f 72 72 ild-exe.test.zig.$../test.incorr
98f00 65 63 74 20 61 6c 69 67 6e 6d 65 6e 74 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 ect.alignment.<span.class="t37_1
98f20 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f ">/home/andy/dev/zig/docgen_tmp/
98f40 74 65 73 74 2e 7a 69 67 3a 38 3a 35 36 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 test.zig:8:56</span>:.<span.clas
98f60 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 35 30 65 20 69 6e 20 66 6f 6f 20 28 74 65 73 74 29 3c s="t2_0">0x22850e.in.foo.(test)<
98f80 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 40 62 79 /span>.....const.int_slice.=.@by
98fa0 74 65 73 54 6f 53 6c 69 63 65 28 75 33 32 2c 20 40 61 6c 69 67 6e 43 61 73 74 28 34 2c 20 73 6c tesToSlice(u32,.@alignCast(4,.sl
98fc0 69 63 65 34 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ice4));.........................
98fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ...............................<
99000 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 span.class="t32_1">^</span>.<spa
99020 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a n.class="t37_1">/home/andy/dev/z
99040 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 31 32 3c 2f 73 70 61 ig/docgen_tmp/test.zig:4:12</spa
99060 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 38 32 39 37 20 n>:.<span.class="t2_0">0x228297.
99080 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 69 66 20 28 66 6f in.main.(test)</span>.....if.(fo
990a0 6f 28 62 79 74 65 73 29 20 21 3d 20 30 78 31 31 31 31 31 31 31 31 29 20 72 65 74 75 72 6e 20 65 o(bytes).!=.0x11111111).return.e
990c0 72 72 6f 72 2e 57 72 6f 6e 67 3b 0a 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 rror.Wrong;............<span.cla
990e0 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ss="t32_1">^</span>.<span.class=
99100 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 "t37_1">/home/andy/dev/zig/lib/s
99120 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 32 30 34 3a 33 37 3c 2f 73 70 61 td/special/start.zig:204:37</spa
99140 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 66 35 20 n>:.<span.class="t2_0">0x2271f5.
99160 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 in.std.special.posixCallMainAndE
99180 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f xit.(test)</span>.............co
991a0 6e 73 74 20 72 65 73 75 6c 74 20 3d 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c nst.result.=.root.main().catch.|
991c0 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 err|.{..........................
991e0 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e ...........<span.class="t32_1">^
99200 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d </span>.<span.class="t37_1">/hom
99220 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 e/andy/dev/zig/lib/std/special/s
99240 74 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 tart.zig:102:5</span>:.<span.cla
99260 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 ss="t2_0">0x22706f.in.std.specia
99280 6c 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e l._start.(test)</span>.....@noIn
992a0 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a lineCall(posixCallMainAndExit);.
992c0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e ....<span.class="t32_1">^</span>
992e0 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c .(process.terminated.by.signal)<
99300 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 /code></pre>...............<h2.i
99320 64 3d 22 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 73 73 22 3e 3c 61 20 d="Wrong-Union-Field-Access"><a.
99340 68 72 65 66 3d 22 23 74 6f 63 2d 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 href="#toc-Wrong-Union-Field-Acc
99360 65 73 73 22 3e 57 72 6f 6e 67 20 55 6e 69 6f 6e 20 46 69 65 6c 64 20 41 63 63 65 73 73 3c 2f 61 ess">Wrong.Union.Field.Access</a
99380 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 57 72 6f 6e 67 2d 55 6e >.<a.class="hdr".href="#Wrong-Un
993a0 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 73 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 ion-Field-Access">..</a></h2>...
993c0 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 .....<p>At.compile-time:</p>....
993e0 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c ...<p.class="file">test.zig</p><
99400 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 pre><code.class="zig"><span.clas
99420 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 s="tok-kw">comptime</span>.{....
99440 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">var</span>
99460 20 66 20 3d 20 46 6f 6f 7b 20 2e 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .f.=.Foo{..int.=.<span.class="to
99480 6b 2d 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 66 2e 66 6c 6f k-number">42</span>.};.....f.flo
994a0 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 at.=.<span.class="tok-number">12
994c0 2e 33 34 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .34</span>;.}..<span.class="tok-
994e0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 kw">const</span>.Foo.=.<span.cla
99500 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 ss="tok-kw">union</span>.{.....f
99520 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 loat:.<span.class="tok-type">f32
99540 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 </span>,.....int:.<span.class="t
99560 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f ok-type">u32</span>,.};</code></
99580 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a pre><pre><code.class="shell">$.z
995a0 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 ig.test.test.zig.<span.class="t0
995c0 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d _1">/home/andy/dev/zig/docgen_tm
995e0 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 p/test.zig:3:6:.</span><span.cla
99600 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c ss="t31_1">error:</span><span.cl
99620 61 73 73 3d 22 74 30 5f 31 22 3e 20 61 63 63 65 73 73 69 6e 67 20 75 6e 69 6f 6e 20 66 69 65 6c ass="t0_1">.accessing.union.fiel
99640 64 20 27 66 6c 6f 61 74 27 20 77 68 69 6c 65 20 66 69 65 6c 64 20 27 69 6e 74 27 20 69 73 20 73 d.'float'.while.field.'int'.is.s
99660 65 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 2e 66 6c 6f 61 74 20 3d 20 31 32 2e 33 34 3b 0a 20 et</span>.....f.float.=.12.34;..
99680 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e ....<span.class="t32_1">^</span>
996a0 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 .</code></pre>........<p>At.runt
996c0 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ime:</p>.......<p.class="file">t
996e0 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
99700 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 "><span.class="tok-kw">const</sp
99720 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 an>.std.=.<span.class="tok-built
99740 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 in">@import</span>(<span.class="
99760 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tok-str">&quot;std&quot;</span>)
99780 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ;..<span.class="tok-kw">const</s
997a0 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pan>.Foo.=.<span.class="tok-kw">
997c0 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 union</span>.{.....float:.<span.
997e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 class="tok-type">f32</span>,....
99800 20 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 .int:.<span.class="tok-type">u32
99820 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 </span>,.};..<span.class="tok-kw
99840 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ">pub</span>.<span.class="tok-kw
99860 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 ">fn</span>.<span.class="tok-fn"
99880 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >main</span>().<span.class="tok-
998a0 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c type">void</span>.{.....<span.cl
998c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 20 3d 20 46 6f 6f 7b ass="tok-kw">var</span>.f.=.Foo{
998e0 20 2e 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 ..int.=.<span.class="tok-number"
99900 3e 34 32 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 62 61 72 28 26 61 6d 70 3b 66 29 3b 0a 7d >42</span>.};.....bar(&amp;f);.}
99920 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e ..<span.class="tok-kw">fn</span>
99940 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 72 3c 2f 73 70 61 6e 3e .<span.class="tok-fn">bar</span>
99960 28 66 3a 20 2a 46 6f 6f 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 (f:.*Foo).<span.class="tok-type"
99980 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 2e 66 6c 6f 61 74 20 3d 20 3c 73 70 >void</span>.{.....f.float.=.<sp
999a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 an.class="tok-number">12.34</spa
999c0 6e 3e 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 n>;.....std.debug.warn(<span.cla
999e0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 ss="tok-str">&quot;value:.{}\n&q
99a00 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 66 2e 66 6c 6f 61 74 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c uot;</span>,.f.float);.}</code><
99a20 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 /pre><pre><code.class="shell">$.
99a40 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a zig.build-exe.test.zig.$../test.
99a60 61 63 63 65 73 73 20 6f 66 20 69 6e 61 63 74 69 76 65 20 75 6e 69 6f 6e 20 66 69 65 6c 64 0a 3c access.of.inactive.union.field.<
99a80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 span.class="t37_1">/home/andy/de
99aa0 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 34 3a 36 3c 2f v/zig/docgen_tmp/test.zig:14:6</
99ac0 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 33 30 32 span>:.<span.class="t2_0">0x2302
99ae0 31 61 20 69 6e 20 62 61 72 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 2e 66 6c 1a.in.bar.(test)</span>.....f.fl
99b00 6f 61 74 20 3d 20 31 32 2e 33 34 3b 0a 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 oat.=.12.34;......<span.class="t
99b20 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 32_1">^</span>.<span.class="t37_
99b40 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 1">/home/andy/dev/zig/docgen_tmp
99b60 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 /test.zig:10:8</span>:.<span.cla
99b80 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 33 30 31 30 63 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 ss="t2_0">0x23010c.in.main.(test
99ba0 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 62 61 72 28 26 61 6d 70 3b 66 29 3b 0a 20 20 20 20 20 20 )</span>.....bar(&amp;f);.......
99bc0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 .<span.class="t32_1">^</span>.<s
99be0 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 pan.class="t37_1">/home/andy/dev
99c00 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 /zig/lib/std/special/start.zig:1
99c20 39 34 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 94:22</span>:.<span.class="t2_0"
99c40 3e 30 78 32 32 66 31 38 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 >0x22f18b.in.std.special.posixCa
99c60 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 llMainAndExit.(test)</span>.....
99c80 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ........root.main();............
99ca0 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c ..........<span.class="t32_1">^<
99cc0 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 /span>.<span.class="t37_1">/home
99ce0 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 /andy/dev/zig/lib/std/special/st
99d00 61 72 74 2e 7a 69 67 3a 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 art.zig:102:5</span>:.<span.clas
99d20 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 66 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c s="t2_0">0x22f06f.in.std.special
99d40 2e 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c ._start.(test)</span>.....@noInl
99d60 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 ineCall(posixCallMainAndExit);..
99d80 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a ...<span.class="t32_1">^</span>.
99da0 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f (process.terminated.by.signal)</
99dc0 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 code></pre>........<p>.......Thi
99de0 73 20 73 61 66 65 74 79 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 3c 63 s.safety.is.not.available.for.<c
99e00 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
99e20 2d 6b 77 22 3e 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f -kw">extern</span></code>.or.<co
99e40 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
99e60 6b 77 22 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 75 6e 69 6f 6e 73 2e kw">packed</span></code>.unions.
99e80 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 63 .......</p>.......<p>.......To.c
99ea0 68 61 6e 67 65 20 74 68 65 20 61 63 74 69 76 65 20 66 69 65 6c 64 20 6f 66 20 61 20 75 6e 69 6f hange.the.active.field.of.a.unio
99ec0 6e 2c 20 61 73 73 69 67 6e 20 74 68 65 20 65 6e 74 69 72 65 20 75 6e 69 6f 6e 2c 20 6c 69 6b 65 n,.assign.the.entire.union,.like
99ee0 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 .this:.......</p>.......<p.class
99f00 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ="file">test.zig</p><pre><code.c
99f20 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
99f40 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 const</span>.std.=.<span.class="
99f60 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 tok-builtin">@import</span>(<spa
99f80 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 n.class="tok-str">&quot;std&quot
99fa0 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ;</span>);..<span.class="tok-kw"
99fc0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >const</span>.Foo.=.<span.class=
99fe0 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6c 6f 61 "tok-kw">union</span>.{.....floa
9a000 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 t:.<span.class="tok-type">f32</s
9a020 70 61 6e 3e 2c 0a 20 20 20 20 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pan>,.....int:.<span.class="tok-
9a040 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 type">u32</span>,.};..<span.clas
9a060 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 s="tok-kw">pub</span>.<span.clas
9a080 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 s="tok-kw">fn</span>.<span.class
9a0a0 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c ="tok-fn">main</span>().<span.cl
9a0c0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 ass="tok-type">void</span>.{....
9a0e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">var</span>
9a100 20 66 20 3d 20 46 6f 6f 7b 20 2e 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .f.=.Foo{..int.=.<span.class="to
9a120 6b 2d 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 62 61 72 28 26 k-number">42</span>.};.....bar(&
9a140 61 6d 70 3b 66 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e amp;f);.}..<span.class="tok-kw">
9a160 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 fn</span>.<span.class="tok-fn">b
9a180 61 72 3c 2f 73 70 61 6e 3e 28 66 3a 20 2a 46 6f 6f 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ar</span>(f:.*Foo).<span.class="
9a1a0 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 2e 2a 20 tok-type">void</span>.{.....f.*.
9a1c0 3d 20 46 6f 6f 7b 20 2e 66 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b =.Foo{..float.=.<span.class="tok
9a1e0 2d 6e 75 6d 62 65 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 73 74 64 -number">12.34</span>.};.....std
9a200 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 .debug.warn(<span.class="tok-str
9a220 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e ">&quot;value:.{}\n&quot;</span>
9a240 2c 20 66 2e 66 6c 6f 61 74 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c ,.f.float);.}</code></pre><pre><
9a260 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 code.class="shell">$.zig.build-e
9a280 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 76 61 6c 75 65 3a 20 31 2e 32 33 xe.test.zig.$../test.value:.1.23
9a2a0 34 30 30 30 30 31 65 2b 30 31 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 400001e+01.</code></pre>........
9a2c0 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 63 68 61 6e 67 65 20 74 68 65 20 61 63 74 69 76 65 20 66 <p>.......To.change.the.active.f
9a2e0 69 65 6c 64 20 6f 66 20 61 20 75 6e 69 6f 6e 20 77 68 65 6e 20 61 20 6d 65 61 6e 69 6e 67 66 75 ield.of.a.union.when.a.meaningfu
9a300 6c 20 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 66 69 65 6c 64 20 69 73 20 6e 6f 74 20 6b 6e 6f l.value.for.the.field.is.not.kno
9a320 77 6e 2c 0a 20 20 20 20 20 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 6e 65 wn,.......use.<a.href="#undefine
9a340 64 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 d">undefined</a>,.like.this:....
9a360 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ...</p>.......<p.class="file">te
9a380 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 st.zig</p><pre><code.class="zig"
9a3a0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 ><span.class="tok-kw">const</spa
9a3c0 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 n>.std.=.<span.class="tok-builti
9a3e0 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">@import</span>(<span.class="t
9a400 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b ok-str">&quot;std&quot;</span>);
9a420 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ..<span.class="tok-kw">const</sp
9a440 61 6e 3e 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 an>.Foo.=.<span.class="tok-kw">u
9a460 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 63 nion</span>.{.....float:.<span.c
9a480 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 lass="tok-type">f32</span>,.....
9a4a0 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c int:.<span.class="tok-type">u32<
9a4c0 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 /span>,.};..<span.class="tok-kw"
9a4e0 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 >pub</span>.<span.class="tok-kw"
9a500 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e >fn</span>.<span.class="tok-fn">
9a520 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 main</span>().<span.class="tok-t
9a540 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ype">void</span>.{.....<span.cla
9a560 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 20 3d 20 46 6f 6f 7b 20 ss="tok-kw">var</span>.f.=.Foo{.
9a580 2e 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e .int.=.<span.class="tok-number">
9a5a0 34 32 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 66 20 3d 20 46 6f 6f 7b 20 2e 66 6c 6f 61 74 42</span>.};.....f.=.Foo{..float
9a5c0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 .=.<span.class="tok-null">undefi
9a5e0 6e 65 64 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 62 61 72 28 26 61 6d 70 3b 66 29 3b 0a 20 ned</span>.};.....bar(&amp;f);..
9a600 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ...std.debug.warn(<span.class="t
9a620 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c ok-str">&quot;value:.{}\n&quot;<
9a640 2f 73 70 61 6e 3e 2c 20 66 2e 66 6c 6f 61 74 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 /span>,.f.float);.}..<span.class
9a660 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="tok-kw">fn</span>.<span.class=
9a680 22 74 6f 6b 2d 66 6e 22 3e 62 61 72 3c 2f 73 70 61 6e 3e 28 66 3a 20 2a 46 6f 6f 29 20 3c 73 70 "tok-fn">bar</span>(f:.*Foo).<sp
9a6a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 an.class="tok-type">void</span>.
9a6c0 7b 0a 20 20 20 20 66 2e 66 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b {.....f.float.=.<span.class="tok
9a6e0 2d 6e 75 6d 62 65 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c -number">12.34</span>;.}</code><
9a700 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 /pre><pre><code.class="shell">$.
9a720 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a zig.build-exe.test.zig.$../test.
9a740 76 61 6c 75 65 3a 20 31 2e 32 33 34 30 30 30 30 31 65 2b 30 31 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 value:.1.23400001e+01.</code></p
9a760 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a re>........<p>See.also:</p><ul>.
9a780 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 3c 2f <li><a.href="#union">union</a></
9a7a0 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 75 6e 69 6f 6e 22 3e li>.<li><a.href="#extern-union">
9a7c0 65 78 74 65 72 6e 20 75 6e 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 extern.union</a></li>.</ul>.....
9a7e0 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 4f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 ...........<h2.id="Out-of-Bounds
9a800 2d 46 6c 6f 61 74 2d 74 6f 2d 49 6e 74 65 67 65 72 2d 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d -Float-to-Integer-Cast"><a.href=
9a820 22 23 74 6f 63 2d 4f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 2d 46 6c 6f 61 74 2d 74 6f 2d 49 6e 74 "#toc-Out-of-Bounds-Float-to-Int
9a840 65 67 65 72 2d 43 61 73 74 22 3e 4f 75 74 20 6f 66 20 42 6f 75 6e 64 73 20 46 6c 6f 61 74 20 74 eger-Cast">Out.of.Bounds.Float.t
9a860 6f 20 49 6e 74 65 67 65 72 20 43 61 73 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 o.Integer.Cast</a>.<a.class="hdr
9a880 22 20 68 72 65 66 3d 22 23 4f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 2d 46 6c 6f 61 74 2d 74 6f 2d ".href="#Out-of-Bounds-Float-to-
9a8a0 49 6e 74 65 67 65 72 2d 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 Integer-Cast">..</a></h2>.......
9a8c0 20 3c 70 3e 54 4f 44 4f 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 .<p>TODO</p>...............<h2.i
9a8e0 64 3d 22 50 6f 69 6e 74 65 72 2d 43 61 73 74 2d 49 6e 76 61 6c 69 64 2d 4e 75 6c 6c 22 3e 3c 61 d="Pointer-Cast-Invalid-Null"><a
9a900 20 68 72 65 66 3d 22 23 74 6f 63 2d 50 6f 69 6e 74 65 72 2d 43 61 73 74 2d 49 6e 76 61 6c 69 64 .href="#toc-Pointer-Cast-Invalid
9a920 2d 4e 75 6c 6c 22 3e 50 6f 69 6e 74 65 72 20 43 61 73 74 20 49 6e 76 61 6c 69 64 20 4e 75 6c 6c -Null">Pointer.Cast.Invalid.Null
9a940 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 </a>.<a.class="hdr".href="#Point
9a960 65 72 2d 43 61 73 74 2d 49 6e 76 61 6c 69 64 2d 4e 75 6c 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 er-Cast-Invalid-Null">..</a></h2
9a980 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 68 61 70 70 65 6e 73 20 >........<p>.......This.happens.
9a9a0 77 68 65 6e 20 63 61 73 74 69 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 77 69 74 68 20 74 68 65 20 when.casting.a.pointer.with.the.
9a9c0 61 64 64 72 65 73 73 20 30 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 20 77 68 69 63 68 20 6d 61 79 address.0.to.a.pointer.which.may
9a9e0 20 6e 6f 74 20 68 61 76 65 20 74 68 65 20 61 64 64 72 65 73 73 20 30 2e 0a 20 20 20 20 20 20 46 .not.have.the.address.0........F
9aa00 6f 72 20 65 78 61 6d 70 6c 65 2c 20 3c 61 20 68 72 65 66 3d 22 23 43 2d 50 6f 69 6e 74 65 72 73 or.example,.<a.href="#C-Pointers
9aa20 22 3e 43 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 ">C.Pointers</a>,.<a.href="#Opti
9aa40 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 22 3e 4f 70 74 69 6f 6e 61 6c 20 50 6f 69 6e 74 65 72 73 onal-Pointers">Optional.Pointers
9aa60 3c 2f 61 3e 2c 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 61 6c 6c 6f 77 7a 65 72 6f 22 3e 61 </a>,.and.<a.href="#allowzero">a
9aa80 6c 6c 6f 77 7a 65 72 6f 3c 2f 61 3e 20 70 6f 69 6e 74 65 72 73 0a 20 20 20 20 20 20 61 6c 6c 6f llowzero</a>.pointers.......allo
9aaa0 77 20 61 64 64 72 65 73 73 20 7a 65 72 6f 2c 20 62 75 74 20 6e 6f 72 6d 61 6c 20 3c 61 20 68 72 w.address.zero,.but.normal.<a.hr
9aac0 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 64 6f 20 6e ef="#Pointers">Pointers</a>.do.n
9aae0 6f 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 ot........</p>.......<p>At.compi
9ab00 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c le-time:</p>.......<p.class="fil
9ab20 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d e">test.zig</p><pre><code.class=
9ab40 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 "zig"><span.class="tok-kw">compt
9ab60 69 6d 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ime</span>.{.....<span.class="to
9ab80 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 70 74 5f 70 74 72 3a 20 3f 2a 3c 73 k-kw">const</span>.opt_ptr:.?*<s
9aba0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 pan.class="tok-type">i32</span>.
9abc0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 =.<span.class="tok-null">null</s
9abe0 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pan>;.....<span.class="tok-kw">c
9ac00 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 onst</span>.ptr.=.<span.class="t
9ac20 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 43 61 73 74 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 ok-builtin">@ptrCast</span>(*<sp
9ac40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 an.class="tok-type">i32</span>,.
9ac60 6f 70 74 5f 70 74 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f opt_ptr);.}</code></pre><pre><co
9ac80 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 de.class="shell">$.zig.test.test
9aca0 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e .zig.<span.class="t0_1">/home/an
9acc0 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 dy/dev/zig/docgen_tmp/test.zig:3
9ace0 3a 31 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e :17:.</span><span.class="t31_1">
9ad00 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e error:</span><span.class="t0_1">
9ad20 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 20 63 61 73 74 65 64 20 74 6f 20 74 79 70 65 20 27 2a 69 .null.pointer.casted.to.type.'*i
9ad40 33 32 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 40 70 74 72 43 32'</span>.....const.ptr.=.@ptrC
9ad60 61 73 74 28 2a 69 33 32 2c 20 6f 70 74 5f 70 74 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ast(*i32,.opt_ptr);.............
9ad80 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e ....<span.class="t32_1">^</span>
9ada0 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 .</code></pre>........<p>At.runt
9adc0 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 ime:</p>.......<p.class="file">t
9ade0 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 est.zig</p><pre><code.class="zig
9ae00 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e "><span.class="tok-kw">pub</span
9ae20 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e >.<span.class="tok-kw">fn</span>
9ae40 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e .<span.class="tok-fn">main</span
9ae60 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c >().<span.class="tok-type">void<
9ae80 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>.{.....<span.class="tok-kw
9aea0 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6f 70 74 5f 70 74 72 3a 20 3f 2a 3c 73 70 61 6e 20 63 6c ">var</span>.opt_ptr:.?*<span.cl
9aec0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 ass="tok-type">i32</span>.=.<spa
9aee0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a n.class="tok-null">null</span>;.
9af00 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 ....<span.class="tok-kw">var</sp
9af20 61 6e 3e 20 70 74 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 an>.ptr.=.<span.class="tok-built
9af40 69 6e 22 3e 40 70 74 72 43 61 73 74 3c 2f 73 70 61 6e 3e 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 in">@ptrCast</span>(*<span.class
9af60 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 6f 70 74 5f 70 74 72 29 ="tok-type">i32</span>,.opt_ptr)
9af80 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ;.}</code></pre><pre><code.class
9afa0 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 ="shell">$.zig.build-exe.test.zi
9afc0 67 0a 24 20 2e 2f 74 65 73 74 0a 63 61 73 74 20 63 61 75 73 65 73 20 70 6f 69 6e 74 65 72 20 74 g.$../test.cast.causes.pointer.t
9afe0 6f 20 62 65 20 6e 75 6c 6c 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 o.be.null.<span.class="t37_1">/h
9b000 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 ome/andy/dev/zig/docgen_tmp/test
9b020 2e 7a 69 67 3a 33 3a 31 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .zig:3:15</span>:.<span.class="t
9b040 32 5f 30 22 3e 30 78 32 32 38 31 32 30 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f 73 70 2_0">0x228120.in.main.(test)</sp
9b060 61 6e 3e 0a 20 20 20 20 76 61 72 20 70 74 72 20 3d 20 40 70 74 72 43 61 73 74 28 2a 69 33 32 2c an>.....var.ptr.=.@ptrCast(*i32,
9b080 20 6f 70 74 5f 70 74 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 .opt_ptr);...............<span.c
9b0a0 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 lass="t32_1">^</span>.<span.clas
9b0c0 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 6c 69 62 s="t37_1">/home/andy/dev/zig/lib
9b0e0 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a 31 39 34 3a 32 32 3c 2f 73 /std/special/start.zig:194:22</s
9b100 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 32 37 31 38 pan>:.<span.class="t2_0">0x22718
9b120 62 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e b.in.std.special.posixCallMainAn
9b140 64 45 78 69 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 dExit.(test)</span>.............
9b160 72 6f 6f 74 2e 6d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 root.main();....................
9b180 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c ..<span.class="t32_1">^</span>.<
9b1a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 span.class="t37_1">/home/andy/de
9b1c0 76 2f 7a 69 67 2f 6c 69 62 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 73 74 61 72 74 2e 7a 69 67 3a v/zig/lib/std/special/start.zig:
9b1e0 31 30 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 102:5</span>:.<span.class="t2_0"
9b200 3e 30 78 32 32 37 30 36 66 20 69 6e 20 73 74 64 2e 73 70 65 63 69 61 6c 2e 5f 73 74 61 72 74 20 >0x22706f.in.std.special._start.
9b220 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 (test)</span>.....@noInlineCall(
9b240 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e posixCallMainAndExit);.....<span
9b260 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 .class="t32_1">^</span>.(process
9b280 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 .terminated.by.signal)</code></p
9b2a0 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 re>.......................<h1.id
9b2c0 3d 22 4d 65 6d 6f 72 79 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4d 65 6d 6f 72 79 22 3e ="Memory"><a.href="#toc-Memory">
9b2e0 4d 65 6d 6f 72 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 Memory</a>.<a.class="hdr".href="
9b300 23 4d 65 6d 6f 72 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a #Memory">..</a></h1>........<p>.
9b320 20 20 20 20 20 20 54 68 65 20 5a 69 67 20 6c 61 6e 67 75 61 67 65 20 70 65 72 66 6f 72 6d 73 20 ......The.Zig.language.performs.
9b340 6e 6f 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 20 6f 6e 20 62 65 68 61 6c 66 20 6f no.memory.management.on.behalf.o
9b360 66 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 54 68 69 73 20 69 73 0a 20 20 20 20 20 20 f.the.programmer..This.is.......
9b380 77 68 79 20 5a 69 67 20 68 61 73 20 6e 6f 20 72 75 6e 74 69 6d 65 2c 20 61 6e 64 20 77 68 79 20 why.Zig.has.no.runtime,.and.why.
9b3a0 5a 69 67 20 63 6f 64 65 20 77 6f 72 6b 73 20 73 65 61 6d 6c 65 73 73 6c 79 20 69 6e 20 73 6f 20 Zig.code.works.seamlessly.in.so.
9b3c0 6d 61 6e 79 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 2c 0a 20 20 20 20 20 20 69 6e 63 6c 75 64 69 many.environments,.......includi
9b3e0 6e 67 20 72 65 61 6c 2d 74 69 6d 65 20 73 6f 66 74 77 61 72 65 2c 20 6f 70 65 72 61 74 69 6e 67 ng.real-time.software,.operating
9b400 20 73 79 73 74 65 6d 20 6b 65 72 6e 65 6c 73 2c 20 65 6d 62 65 64 64 65 64 20 64 65 76 69 63 65 .system.kernels,.embedded.device
9b420 73 2c 20 61 6e 64 0a 20 20 20 20 20 20 6c 6f 77 20 6c 61 74 65 6e 63 79 20 73 65 72 76 65 72 73 s,.and.......low.latency.servers
9b440 2e 20 41 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 2c 20 5a 69 67 20 70 72 6f 67 72 61 6d 6d ..As.a.consequence,.Zig.programm
9b460 65 72 73 20 6d 75 73 74 20 61 6c 77 61 79 73 20 62 65 20 61 62 6c 65 20 74 6f 20 61 6e 73 77 65 ers.must.always.be.able.to.answe
9b480 72 0a 20 20 20 20 20 20 74 68 65 20 71 75 65 73 74 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e r.......the.question:.......</p>
9b4a0 0a 20 20 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d 22 23 57 68 65 72 65 2d 61 72 65 2d 74 68 .......<p><a.href="#Where-are-th
9b4c0 65 2d 62 79 74 65 73 22 3e 57 68 65 72 65 20 61 72 65 20 74 68 65 20 62 79 74 65 73 3f 3c 2f 61 e-bytes">Where.are.the.bytes?</a
9b4e0 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c 69 6b 65 20 5a 69 67 2c 20 ></p>.......<p>.......Like.Zig,.
9b500 74 68 65 20 43 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 68 61 73 20 6d the.C.programming.language.has.m
9b520 61 6e 75 61 6c 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 2e 20 48 6f 77 65 76 65 72 anual.memory.management..However
9b540 2c 20 75 6e 6c 69 6b 65 20 5a 69 67 2c 0a 20 20 20 20 20 20 43 20 68 61 73 20 61 20 64 65 66 61 ,.unlike.Zig,.......C.has.a.defa
9b560 75 6c 74 20 61 6c 6c 6f 63 61 74 6f 72 20 2d 20 3c 63 6f 64 65 3e 6d 61 6c 6c 6f 63 3c 2f 63 6f ult.allocator.-.<code>malloc</co
9b580 64 65 3e 2c 20 3c 63 6f 64 65 3e 72 65 61 6c 6c 6f 63 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c de>,.<code>realloc</code>,.and.<
9b5a0 63 6f 64 65 3e 66 72 65 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 57 68 65 6e 20 6c 69 6e code>free</code>........When.lin
9b5c0 6b 69 6e 67 20 61 67 61 69 6e 73 74 20 6c 69 62 63 2c 20 5a 69 67 20 65 78 70 6f 73 65 73 20 74 king.against.libc,.Zig.exposes.t
9b5e0 68 69 73 20 61 6c 6c 6f 63 61 74 6f 72 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 his.allocator.with.<code.class="
9b600 7a 69 67 22 3e 73 74 64 2e 68 65 61 70 2e 63 5f 61 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e zig">std.heap.c_allocator</code>
9b620 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 62 79 20 63 6f 6e 76 65 6e 74 69 6f 6e 2c 20 ........However,.by.convention,.
9b640 74 68 65 72 65 20 69 73 20 6e 6f 20 64 65 66 61 75 6c 74 20 61 6c 6c 6f 63 61 74 6f 72 20 69 6e there.is.no.default.allocator.in
9b660 20 5a 69 67 2e 20 49 6e 73 74 65 61 64 2c 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 20 6e .Zig..Instead,.functions.which.n
9b680 65 65 64 20 74 6f 0a 20 20 20 20 20 20 61 6c 6c 6f 63 61 74 65 20 61 63 63 65 70 74 20 61 6e 20 eed.to.......allocate.accept.an.
9b6a0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f <code.class="zig">*Allocator</co
9b6c0 64 65 3e 20 70 61 72 61 6d 65 74 65 72 2e 20 4c 69 6b 65 77 69 73 65 2c 20 64 61 74 61 20 73 74 de>.parameter..Likewise,.data.st
9b6e0 72 75 63 74 75 72 65 73 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 ructures.such.as.......<code.cla
9b700 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 41 72 72 61 79 4c 69 73 74 3c 2f 63 6f 64 65 3e 20 61 63 ss="zig">std.ArrayList</code>.ac
9b720 63 65 70 74 20 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 41 6c 6c 6f 63 cept.an.<code.class="zig">*Alloc
9b740 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 70 61 72 61 6d 65 74 65 72 20 69 6e 0a 20 20 20 20 20 20 74 ator</code>.parameter.in.......t
9b760 68 65 69 72 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 3a 0a 20 heir.initialization.functions:..
9b780 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e .....</p>.......<p.class="file">
9b7a0 61 6c 6c 6f 63 61 74 6f 72 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 allocator.zig</p><pre><code.clas
9b7c0 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e s="zig"><span.class="tok-kw">con
9b7e0 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b st</span>.std.=.<span.class="tok
9b800 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 -builtin">@import</span>(<span.c
9b820 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f lass="tok-str">&quot;std&quot;</
9b840 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e span>);.<span.class="tok-kw">con
9b860 73 74 3c 2f 73 70 61 6e 3e 20 41 6c 6c 6f 63 61 74 6f 72 20 3d 20 73 74 64 2e 6d 65 6d 2e 41 6c st</span>.Allocator.=.std.mem.Al
9b880 6c 6f 63 61 74 6f 72 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f locator;.<span.class="tok-kw">co
9b8a0 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 nst</span>.assert.=.std.debug.as
9b8c0 73 65 72 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 sert;..<span.class="tok-kw">test
9b8e0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>.<span.class="tok-str">&q
9b900 75 6f 74 3b 75 73 69 6e 67 20 61 6e 20 61 6c 6c 6f 63 61 74 6f 72 26 71 75 6f 74 3b 3c 2f 73 70 uot;using.an.allocator&quot;</sp
9b920 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 an>.{.....<span.class="tok-kw">v
9b940 61 72 3c 2f 73 70 61 6e 3e 20 62 75 66 66 65 72 3a 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ar</span>.buffer:.[<span.class="
9b960 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 tok-number">100</span>]<span.cla
9b980 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 ss="tok-type">u8</span>.=.<span.
9b9a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e class="tok-null">undefined</span
9b9c0 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 >;.....<span.class="tok-kw">cons
9b9e0 74 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 20 3d 20 26 61 6d 70 3b 73 74 64 2e 68 65 t</span>.allocator.=.&amp;std.he
9ba00 61 70 2e 46 69 78 65 64 42 75 66 66 65 72 41 6c 6c 6f 63 61 74 6f 72 2e 69 6e 69 74 28 26 61 6d ap.FixedBufferAllocator.init(&am
9ba20 70 3b 62 75 66 66 65 72 29 2e 61 6c 6c 6f 63 61 74 6f 72 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 p;buffer).allocator;.....<span.c
9ba40 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c lass="tok-kw">const</span>.resul
9ba60 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 t.=.<span.class="tok-kw">try</sp
9ba80 61 6e 3e 20 63 6f 6e 63 61 74 28 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 an>.concat(allocator,.<span.clas
9baa0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 s="tok-str">&quot;foo&quot;</spa
9bac0 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b n>,.<span.class="tok-str">&quot;
9bae0 62 61 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 74 bar&quot;</span>);.....assert(st
9bb00 64 2e 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 d.mem.eql(<span.class="tok-type"
9bb20 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 >u8</span>,.<span.class="tok-str
9bb40 22 3e 26 71 75 6f 74 3b 66 6f 6f 62 61 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 72 65 73 ">&quot;foobar&quot;</span>,.res
9bb60 75 6c 74 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 ult));.}..<span.class="tok-kw">f
9bb80 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 63 6f n</span>.<span.class="tok-fn">co
9bba0 6e 63 61 74 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 2a 41 6c 6c 6f 63 61 74 6f ncat</span>(allocator:.*Allocato
9bbc0 72 2c 20 61 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e r,.a:.[]<span.class="tok-kw">con
9bbe0 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 st</span>.<span.class="tok-type"
9bc00 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >u8</span>,.b:.[]<span.class="to
9bc20 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">const</span>.<span.class="
9bc40 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 21 5b 5d 3c 73 70 61 6e 20 63 6c tok-type">u8</span>).![]<span.cl
9bc60 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c ass="tok-type">u8</span>.{.....<
9bc80 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
9bca0 20 72 65 73 75 6c 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 .result.=.<span.class="tok-kw">t
9bcc0 72 79 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 61 6c 6c 6f 63 28 3c 73 70 61 6e 20 ry</span>.allocator.alloc(<span.
9bce0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 61 2e 6c 65 class="tok-type">u8</span>,.a.le
9bd00 6e 20 2b 20 62 2e 6c 65 6e 29 3b 0a 20 20 20 20 73 74 64 2e 6d 65 6d 2e 63 6f 70 79 28 3c 73 70 n.+.b.len);.....std.mem.copy(<sp
9bd20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 72 an.class="tok-type">u8</span>,.r
9bd40 65 73 75 6c 74 2c 20 61 29 3b 0a 20 20 20 20 73 74 64 2e 6d 65 6d 2e 63 6f 70 79 28 3c 73 70 61 esult,.a);.....std.mem.copy(<spa
9bd60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 72 65 n.class="tok-type">u8</span>,.re
9bd80 73 75 6c 74 5b 61 2e 6c 65 6e 2e 2e 5d 2c 20 62 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 sult[a.len..],.b);.....<span.cla
9bda0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 72 65 73 75 6c 74 ss="tok-kw">return</span>.result
9bdc0 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ;.}</code></pre><pre><code.class
9bde0 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 61 6c 6c 6f 63 61 74 6f 72 2e 7a 69 ="shell">$.zig.test.allocator.zi
9be00 67 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 75 73 69 6e 67 20 61 6e 20 61 6c 6c 6f 63 61 g.1/1.test.&quot;using.an.alloca
9be20 74 6f 72 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e tor&quot;...OK.All.tests.passed.
9be40 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 .</code></pre>........<p>.......
9be60 49 6e 20 74 68 65 20 61 62 6f 76 65 20 65 78 61 6d 70 6c 65 2c 20 31 30 30 20 62 79 74 65 73 20 In.the.above.example,.100.bytes.
9be80 6f 66 20 73 74 61 63 6b 20 6d 65 6d 6f 72 79 20 61 72 65 20 75 73 65 64 20 74 6f 20 69 6e 69 74 of.stack.memory.are.used.to.init
9bea0 69 61 6c 69 7a 65 20 61 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 ialize.a.......<code.class="zig"
9bec0 3e 46 69 78 65 64 42 75 66 66 65 72 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2c 20 77 68 >FixedBufferAllocator</code>,.wh
9bee0 69 63 68 20 69 73 20 74 68 65 6e 20 70 61 73 73 65 64 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e ich.is.then.passed.to.a.function
9bf00 2e 0a 20 20 20 20 20 20 41 73 20 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 74 68 65 72 65 20 69 ........As.a.convenience.there.i
9bf20 73 20 61 20 67 6c 6f 62 61 6c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 46 69 78 s.a.global.<code.class="zig">Fix
9bf40 65 64 42 75 66 66 65 72 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 61 edBufferAllocator</code>.......a
9bf60 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 71 75 69 63 6b 20 74 65 73 74 73 20 61 74 20 3c 63 6f 64 vailable.for.quick.tests.at.<cod
9bf80 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 64 65 62 75 67 2e 67 6c 6f 62 61 6c 5f 61 e.class="zig">std.debug.global_a
9bfa0 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 68 6f 77 65 76 65 72 20 69 llocator</code>,.......however.i
9bfc0 74 20 69 73 20 64 65 70 72 65 63 61 74 65 64 20 61 6e 64 20 73 68 6f 75 6c 64 20 62 65 20 61 76 t.is.deprecated.and.should.be.av
9bfe0 6f 69 64 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 64 69 72 65 63 74 6c 79 20 75 73 69 6e 67 oided.in.favor.of.directly.using
9c000 20 61 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 46 69 78 65 64 .a.......<code.class="zig">Fixed
9c020 42 75 66 66 65 72 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 61 73 20 69 6e 20 74 68 65 BufferAllocator</code>.as.in.the
9c040 20 65 78 61 6d 70 6c 65 20 61 62 6f 76 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 .example.above........</p>......
9c060 20 3c 70 3e 0a 20 20 20 20 20 20 43 75 72 72 65 6e 74 6c 79 20 5a 69 67 20 68 61 73 20 6e 6f 20 .<p>.......Currently.Zig.has.no.
9c080 67 65 6e 65 72 61 6c 20 70 75 72 70 6f 73 65 20 61 6c 6c 6f 63 61 74 6f 72 2c 20 62 75 74 20 74 general.purpose.allocator,.but.t
9c0a0 68 65 72 65 20 69 73 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 here.is.......<a.href="https://g
9c0c0 69 74 68 75 62 2e 63 6f 6d 2f 61 6e 64 72 65 77 72 6b 2f 7a 69 67 2d 67 65 6e 65 72 61 6c 2d 70 ithub.com/andrewrk/zig-general-p
9c0e0 75 72 70 6f 73 65 2d 61 6c 6c 6f 63 61 74 6f 72 2f 22 3e 6f 6e 65 20 75 6e 64 65 72 20 61 63 74 urpose-allocator/">one.under.act
9c100 69 76 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 4f 6e 63 65 20 ive.development</a>........Once.
9c120 69 74 20 69 73 20 6d 65 72 67 65 64 20 69 6e 74 6f 20 74 68 65 20 5a 69 67 20 73 74 61 6e 64 61 it.is.merged.into.the.Zig.standa
9c140 72 64 20 6c 69 62 72 61 72 79 20 69 74 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 61 76 61 69 6c 61 rd.library.it.will.become.availa
9c160 62 6c 65 20 74 6f 20 69 6d 70 6f 72 74 0a 20 20 20 20 20 20 77 69 74 68 20 3c 63 6f 64 65 20 63 ble.to.import.......with.<code.c
9c180 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 68 65 61 70 2e 64 65 66 61 75 6c 74 5f 61 6c 6c 6f lass="zig">std.heap.default_allo
9c1a0 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 48 6f 77 65 76 65 72 2c 20 69 74 20 77 69 6c 6c 20 73 cator</code>..However,.it.will.s
9c1c0 74 69 6c 6c 20 62 65 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 0a 20 20 20 20 20 20 66 6f 6c till.be.recommended.to.......fol
9c1e0 6c 6f 77 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 43 68 6f 6f 73 69 6e 67 2d 61 6e 2d 41 6c low.the.<a.href="#Choosing-an-Al
9c200 6c 6f 63 61 74 6f 72 22 3e 43 68 6f 6f 73 69 6e 67 20 61 6e 20 41 6c 6c 6f 63 61 74 6f 72 3c 2f locator">Choosing.an.Allocator</
9c220 61 3e 20 67 75 69 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 a>.guide........</p>........<h2.
9c240 69 64 3d 22 43 68 6f 6f 73 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 22 3e 3c 61 20 68 72 id="Choosing-an-Allocator"><a.hr
9c260 65 66 3d 22 23 74 6f 63 2d 43 68 6f 6f 73 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 22 3e ef="#toc-Choosing-an-Allocator">
9c280 43 68 6f 6f 73 69 6e 67 20 61 6e 20 41 6c 6c 6f 63 61 74 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 Choosing.an.Allocator</a>.<a.cla
9c2a0 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 68 6f 6f 73 69 6e 67 2d 61 6e 2d 41 6c 6c 6f ss="hdr".href="#Choosing-an-Allo
9c2c0 63 61 74 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 57 68 61 cator">..</a></h2>........<p>Wha
9c2e0 74 20 61 6c 6c 6f 63 61 74 6f 72 20 74 6f 20 75 73 65 20 64 65 70 65 6e 64 73 20 6f 6e 20 61 20 t.allocator.to.use.depends.on.a.
9c300 6e 75 6d 62 65 72 20 6f 66 20 66 61 63 74 6f 72 73 2e 20 48 65 72 65 20 69 73 20 61 20 66 6c 6f number.of.factors..Here.is.a.flo
9c320 77 20 63 68 61 72 74 20 74 6f 20 68 65 6c 70 20 79 6f 75 20 64 65 63 69 64 65 3a 0a 20 20 20 20 w.chart.to.help.you.decide:.....
9c340 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e ..</p>.......<ol>...........<li>
9c360 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 72 65 20 79 6f 75 20 6d 61 6b 69 6e 67 20 61 20 ...............Are.you.making.a.
9c380 6c 69 62 72 61 72 79 3f 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 62 65 73 74 20 74 6f 20 61 library?.In.this.case,.best.to.a
9c3a0 63 63 65 70 74 20 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 41 6c 6c 6f ccept.an.<code.class="zig">*Allo
9c3c0 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 20 61 20 cator</code>...............as.a.
9c3e0 70 61 72 61 6d 65 74 65 72 20 61 6e 64 20 61 6c 6c 6f 77 20 79 6f 75 72 20 6c 69 62 72 61 72 79 parameter.and.allow.your.library
9c400 27 73 20 75 73 65 72 73 20 74 6f 20 64 65 63 69 64 65 20 77 68 61 74 20 61 6c 6c 6f 63 61 74 6f 's.users.to.decide.what.allocato
9c420 72 20 74 6f 20 75 73 65 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 r.to.use............</li>.......
9c440 20 20 20 20 3c 6c 69 3e 41 72 65 20 79 6f 75 20 6c 69 6e 6b 69 6e 67 20 6c 69 62 63 3f 20 49 6e ....<li>Are.you.linking.libc?.In
9c460 20 74 68 69 73 20 63 61 73 65 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 .this.case,.<code.class="zig">st
9c480 64 2e 68 65 61 70 2e 63 5f 61 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 69 73 20 6c 69 6b d.heap.c_allocator</code>.is.lik
9c4a0 65 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 72 69 67 68 74 20 63 68 6f 69 ely...............the.right.choi
9c4c0 63 65 2c 20 61 74 20 6c 65 61 73 74 20 66 6f 72 20 79 6f 75 72 20 6d 61 69 6e 20 61 6c 6c 6f 63 ce,.at.least.for.your.main.alloc
9c4e0 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 72 65 20 79 6f 75 ator.</li>...........<li>Are.you
9c500 20 62 75 69 6c 64 69 6e 67 20 66 6f 72 20 57 65 62 41 73 73 65 6d 62 6c 79 3f 20 49 6e 20 74 68 .building.for.WebAssembly?.In.th
9c520 69 73 20 63 61 73 65 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 68 is.case,.<code.class="zig">std.h
9c540 65 61 70 2e 77 61 73 6d 5f 61 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 69 73 20 6c 69 6b eap.wasm_allocator</code>.is.lik
9c560 65 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 72 69 67 68 74 20 63 68 6f 69 ely...............the.right.choi
9c580 63 65 20 66 6f 72 20 79 6f 75 72 20 6d 61 69 6e 20 61 6c 6c 6f 63 61 74 6f 72 20 61 73 20 69 74 ce.for.your.main.allocator.as.it
9c5a0 20 75 73 65 73 20 57 65 62 41 73 73 65 6d 62 6c 79 27 73 20 6d 65 6d 6f 72 79 20 69 6e 73 74 72 .uses.WebAssembly's.memory.instr
9c5c0 75 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 uctions.</li>...........<li>....
9c5e0 20 20 20 20 20 20 20 20 20 20 20 49 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 ...........Is.the.maximum.number
9c600 20 6f 66 20 62 79 74 65 73 20 74 68 61 74 20 79 6f 75 20 77 69 6c 6c 20 6e 65 65 64 20 62 6f 75 .of.bytes.that.you.will.need.bou
9c620 6e 64 65 64 20 62 79 20 61 20 6e 75 6d 62 65 72 20 6b 6e 6f 77 6e 20 61 74 0a 20 20 20 20 20 20 nded.by.a.number.known.at.......
9c640 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 ........<a.href="#comptime">comp
9c660 74 69 6d 65 3c 2f 61 3e 3f 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 75 73 65 20 3c 63 6f 64 time</a>?.In.this.case,.use.<cod
9c680 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 68 65 61 70 2e 46 69 78 65 64 42 75 66 66 e.class="zig">std.heap.FixedBuff
9c6a0 65 72 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 erAllocator</code>.or...........
9c6c0 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 68 65 61 70 2e 54 ....<code.class="zig">std.heap.T
9c6e0 68 72 65 61 64 53 61 66 65 46 69 78 65 64 42 75 66 66 65 72 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 hreadSafeFixedBufferAllocator</c
9c700 6f 64 65 3e 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 79 6f 75 20 6e 65 ode>.depending.on.whether.you.ne
9c720 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 65 61 64 2d 73 61 66 65 74 79 20 6f ed...............thread-safety.o
9c740 72 20 6e 6f 74 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 r.not............</li>..........
9c760 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 73 20 79 6f 75 72 20 70 72 6f 67 .<li>...............Is.your.prog
9c780 72 61 6d 20 61 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 77 ram.a.command.line.application.w
9c7a0 68 69 63 68 20 72 75 6e 73 20 66 72 6f 6d 20 73 74 61 72 74 20 74 6f 20 65 6e 64 20 77 69 74 68 hich.runs.from.start.to.end.with
9c7c0 6f 75 74 20 61 6e 79 20 66 75 6e 64 61 6d 65 6e 74 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 out.any.fundamental.............
9c7e0 20 20 63 79 63 6c 69 63 61 6c 20 70 61 74 74 65 72 6e 20 28 73 75 63 68 20 61 73 20 61 20 76 69 ..cyclical.pattern.(such.as.a.vi
9c800 64 65 6f 20 67 61 6d 65 20 6d 61 69 6e 20 6c 6f 6f 70 2c 20 6f 72 20 61 20 77 65 62 20 73 65 72 deo.game.main.loop,.or.a.web.ser
9c820 76 65 72 20 72 65 71 75 65 73 74 20 68 61 6e 64 6c 65 72 29 2c 0a 20 20 20 20 20 20 20 20 20 20 ver.request.handler),...........
9c840 20 20 20 20 73 75 63 68 20 74 68 61 74 20 69 74 20 77 6f 75 6c 64 20 6d 61 6b 65 20 73 65 6e 73 ....such.that.it.would.make.sens
9c860 65 20 74 6f 20 66 72 65 65 20 65 76 65 72 79 74 68 69 6e 67 20 61 74 20 6f 6e 63 65 20 61 74 20 e.to.free.everything.at.once.at.
9c880 74 68 65 20 65 6e 64 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 63 the.end?...............In.this.c
9c8a0 61 73 65 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 66 6f 6c 6c 6f 77 ase,.it.is.recommended.to.follow
9c8c0 20 74 68 69 73 20 70 61 74 74 65 72 6e 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 20 .this.pattern:...............<p.
9c8e0 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 6c 69 5f 61 6c 6c 6f 63 61 74 69 6f 6e 2e 7a 69 67 3c class="file">cli_allocation.zig<
9c900 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 /p><pre><code.class="zig"><span.
9c920 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 class="tok-kw">const</span>.std.
9c940 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 =.<span.class="tok-builtin">@imp
9c960 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 ort</span>(<span.class="tok-str"
9c980 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c 73 70 61 6e >&quot;std&quot;</span>);..<span
9c9a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e .class="tok-kw">pub</span>.<span
9c9c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 .class="tok-kw">fn</span>.<span.
9c9e0 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 class="tok-fn">main</span>().!<s
9ca00 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e pan.class="tok-type">void</span>
9ca20 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c .{.....<span.class="tok-kw">var<
9ca40 2f 73 70 61 6e 3e 20 61 72 65 6e 61 20 3d 20 73 74 64 2e 68 65 61 70 2e 41 72 65 6e 61 41 6c 6c /span>.arena.=.std.heap.ArenaAll
9ca60 6f 63 61 74 6f 72 2e 69 6e 69 74 28 73 74 64 2e 68 65 61 70 2e 64 69 72 65 63 74 5f 61 6c 6c 6f ocator.init(std.heap.direct_allo
9ca80 63 61 74 6f 72 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 cator);.....<span.class="tok-kw"
9caa0 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 61 72 65 6e 61 2e 64 65 69 6e 69 74 28 29 3b 0a 0a 20 >defer</span>.arena.deinit();...
9cac0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 ...<span.class="tok-kw">const</s
9cae0 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 20 3d 20 26 61 6d 70 3b 61 72 65 6e 61 2e 61 6c 6c 6f pan>.allocator.=.&amp;arena.allo
9cb00 63 61 74 6f 72 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 cator;......<span.class="tok-kw"
9cb20 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >const</span>.ptr.=.<span.class=
9cb40 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 "tok-kw">try</span>.allocator.cr
9cb60 65 61 74 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c eate(<span.class="tok-type">i32<
9cb80 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 /span>);.....std.debug.warn(<spa
9cba0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 74 72 3d 7b 2a 7d 5c n.class="tok-str">&quot;ptr={*}\
9cbc0 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 70 74 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f n&quot;</span>,.ptr);.}</code></
9cbe0 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a pre><pre><code.class="shell">$.z
9cc00 69 67 20 62 75 69 6c 64 2d 65 78 65 20 63 6c 69 5f 61 6c 6c 6f 63 61 74 69 6f 6e 2e 7a 69 67 0a ig.build-exe.cli_allocation.zig.
9cc20 24 20 2e 2f 63 6c 69 5f 61 6c 6c 6f 63 61 74 69 6f 6e 0a 70 74 72 3d 69 33 32 40 37 66 31 66 36 $../cli_allocation.ptr=i32@7f1f6
9cc40 64 61 61 61 30 31 38 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 20 20 20 daaa018.</code></pre>...........
9cc60 20 20 20 20 20 57 68 65 6e 20 75 73 69 6e 67 20 74 68 69 73 20 6b 69 6e 64 20 6f 66 20 61 6c 6c .....When.using.this.kind.of.all
9cc80 6f 63 61 74 6f 72 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6e 65 65 64 20 74 6f 20 66 72 65 65 ocator,.there.is.no.need.to.free
9cca0 20 61 6e 79 74 68 69 6e 67 20 6d 61 6e 75 61 6c 6c 79 2e 20 45 76 65 72 79 74 68 69 6e 67 0a 20 .anything.manually..Everything..
9ccc0 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 73 20 66 72 65 65 64 20 61 74 20 6f 6e 63 65 20 .............gets.freed.at.once.
9cce0 77 69 74 68 20 74 68 65 20 63 61 6c 6c 20 74 6f 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 with.the.call.to.<code.class="zi
9cd00 67 22 3e 61 72 65 6e 61 2e 64 65 69 6e 69 74 28 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 g">arena.deinit()</code>........
9cd20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 ....</li>...........<li>........
9cd40 20 20 20 20 20 20 20 41 72 65 20 74 68 65 20 61 6c 6c 6f 63 61 74 69 6f 6e 73 20 70 61 72 74 20 .......Are.the.allocations.part.
9cd60 6f 66 20 61 20 63 79 63 6c 69 63 61 6c 20 70 61 74 74 65 72 6e 20 73 75 63 68 20 61 73 20 61 20 of.a.cyclical.pattern.such.as.a.
9cd80 76 69 64 65 6f 20 67 61 6d 65 20 6d 61 69 6e 20 6c 6f 6f 70 2c 20 6f 72 20 61 20 77 65 62 0a 20 video.game.main.loop,.or.a.web..
9cda0 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 76 65 72 20 72 65 71 75 65 73 74 20 68 61 6e 64 .............server.request.hand
9cdc0 6c 65 72 3f 20 49 66 20 74 68 65 20 61 6c 6c 6f 63 61 74 69 6f 6e 73 20 63 61 6e 20 61 6c 6c 20 ler?.If.the.allocations.can.all.
9cde0 62 65 20 66 72 65 65 64 20 61 74 20 6f 6e 63 65 2c 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 be.freed.at.once,.at.the.end.of.
9ce00 74 68 65 20 63 79 63 6c 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 65 78 61 the.cycle,...............for.exa
9ce20 6d 70 6c 65 20 6f 6e 63 65 20 74 68 65 20 76 69 64 65 6f 20 67 61 6d 65 20 66 72 61 6d 65 20 68 mple.once.the.video.game.frame.h
9ce40 61 73 20 62 65 65 6e 20 66 75 6c 6c 79 20 72 65 6e 64 65 72 65 64 2c 20 6f 72 20 74 68 65 20 77 as.been.fully.rendered,.or.the.w
9ce60 65 62 20 73 65 72 76 65 72 20 72 65 71 75 65 73 74 20 68 61 73 0a 20 20 20 20 20 20 20 20 20 20 eb.server.request.has...........
9ce80 20 20 20 20 62 65 65 6e 20 73 65 72 76 65 64 2c 20 74 68 65 6e 20 3c 63 6f 64 65 20 63 6c 61 73 ....been.served,.then.<code.clas
9cea0 73 3d 22 7a 69 67 22 3e 73 74 64 2e 68 65 61 70 2e 41 72 65 6e 61 41 6c 6c 6f 63 61 74 6f 72 3c s="zig">std.heap.ArenaAllocator<
9cec0 2f 63 6f 64 65 3e 20 69 73 20 61 20 67 72 65 61 74 20 63 61 6e 64 69 64 61 74 65 2e 20 41 73 0a /code>.is.a.great.candidate..As.
9cee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6d 6f 6e 73 74 72 61 74 65 64 20 69 6e 20 74 68 ..............demonstrated.in.th
9cf00 65 20 70 72 65 76 69 6f 75 73 20 62 75 6c 6c 65 74 20 70 6f 69 6e 74 2c 20 74 68 69 73 20 61 6c e.previous.bullet.point,.this.al
9cf20 6c 6f 77 73 20 79 6f 75 20 74 6f 20 66 72 65 65 20 65 6e 74 69 72 65 20 61 72 65 6e 61 73 20 61 lows.you.to.free.entire.arenas.a
9cf40 74 20 6f 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 74 65 20 61 6c 73 6f 20 t.once................Note.also.
9cf60 74 68 61 74 20 69 66 20 61 6e 20 75 70 70 65 72 20 62 6f 75 6e 64 20 6f 66 20 6d 65 6d 6f 72 79 that.if.an.upper.bound.of.memory
9cf80 20 63 61 6e 20 62 65 20 65 73 74 61 62 6c 69 73 68 65 64 2c 20 74 68 65 6e 0a 20 20 20 20 20 20 .can.be.established,.then.......
9cfa0 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 68 65 ........<code.class="zig">std.he
9cfc0 61 70 2e 46 69 78 65 64 42 75 66 66 65 72 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 63 ap.FixedBufferAllocator</code>.c
9cfe0 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 61 20 66 75 72 74 68 65 72 20 6f 70 74 69 6d 69 7a 61 an.be.used.as.a.further.optimiza
9d000 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 tion............</li>...........
9d020 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 72 65 20 79 6f 75 20 77 72 69 74 69 <li>...............Are.you.writi
9d040 6e 67 20 61 20 74 65 73 74 2c 20 61 6e 64 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6d 61 6b 65 20 ng.a.test,.and.you.want.to.make.
9d060 73 75 72 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 sure.<code.class="zig"><span.cla
9d080 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4f 75 74 4f 66 4d 65 ss="tok-kw">error</span>.OutOfMe
9d0a0 6d 6f 72 79 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 68 61 6e mory</code>...............is.han
9d0c0 64 6c 65 64 20 63 6f 72 72 65 63 74 6c 79 3f 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 75 73 dled.correctly?.In.this.case,.us
9d0e0 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 64 65 62 75 67 2e 46 61 e.<code.class="zig">std.debug.Fa
9d100 69 6c 69 6e 67 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 ilingAllocator</code>...........
9d120 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 .</li>...........<li>...........
9d140 20 20 20 20 46 69 6e 61 6c 6c 79 2c 20 69 66 20 6e 6f 6e 65 20 6f 66 20 74 68 65 20 61 62 6f 76 ....Finally,.if.none.of.the.abov
9d160 65 20 61 70 70 6c 79 2c 20 79 6f 75 20 6e 65 65 64 20 61 20 67 65 6e 65 72 61 6c 20 70 75 72 70 e.apply,.you.need.a.general.purp
9d180 6f 73 65 20 61 6c 6c 6f 63 61 74 6f 72 2e 20 5a 69 67 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 ose.allocator..Zig.does.not.....
9d1a0 20 20 20 20 20 20 20 20 20 20 79 65 74 20 68 61 76 65 20 61 20 67 65 6e 65 72 61 6c 20 70 75 72 ..........yet.have.a.general.pur
9d1c0 70 6f 73 65 20 61 6c 6c 6f 63 61 74 6f 72 20 69 6e 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c pose.allocator.in.the.standard.l
9d1e0 69 62 72 61 72 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 ibrary,...............<a.href="h
9d200 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 61 6e 64 72 65 77 72 6b 2f 7a 69 67 2d 67 ttps://github.com/andrewrk/zig-g
9d220 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 2d 61 6c 6c 6f 63 61 74 6f 72 2f 22 3e 62 75 74 20 6f eneral-purpose-allocator/">but.o
9d240 6e 65 20 69 73 20 62 65 69 6e 67 20 61 63 74 69 76 65 6c 79 20 64 65 76 65 6c 6f 70 65 64 3c 2f ne.is.being.actively.developed</
9d260 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 63 a>................You.can.also.c
9d280 6f 6e 73 69 64 65 72 20 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 2d 61 onsider.<a.href="#Implementing-a
9d2a0 6e 2d 41 6c 6c 6f 63 61 74 6f 72 22 3e 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 61 6e 20 41 6c 6c n-Allocator">Implementing.an.All
9d2c0 6f 63 61 74 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 ocator</a>............</li>.....
9d2e0 20 20 3c 2f 6f 6c 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 57 68 ..</ol>...............<h2.id="Wh
9d300 65 72 65 2d 61 72 65 2d 74 68 65 2d 62 79 74 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 ere-are-the-bytes"><a.href="#toc
9d320 2d 57 68 65 72 65 2d 61 72 65 2d 74 68 65 2d 62 79 74 65 73 22 3e 57 68 65 72 65 20 61 72 65 20 -Where-are-the-bytes">Where.are.
9d340 74 68 65 20 62 79 74 65 73 3f 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 the.bytes?</a>.<a.class="hdr".hr
9d360 65 66 3d 22 23 57 68 65 72 65 2d 61 72 65 2d 74 68 65 2d 62 79 74 65 73 22 3e c2 a7 3c 2f 61 3e ef="#Where-are-the-bytes">..</a>
9d380 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 </h2>........<p>String.literals.
9d3a0 73 75 63 68 20 61 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 such.as.<code.class="zig"><span.
9d3c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 3c class="tok-str">&quot;foo&quot;<
9d3e0 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 72 65 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 /span></code>.are.in.the.global.
9d400 63 6f 6e 73 74 61 6e 74 20 64 61 74 61 20 73 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 54 68 69 constant.data.section........Thi
9d420 73 20 69 73 20 77 68 79 20 69 74 20 69 73 20 61 6e 20 65 72 72 6f 72 20 74 6f 20 70 61 73 73 20 s.is.why.it.is.an.error.to.pass.
9d440 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 74 6f 20 61 20 6d 75 74 61 62 6c 65 20 73 6c a.string.literal.to.a.mutable.sl
9d460 69 63 65 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 ice,.like.this:.......</p>......
9d480 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 .<p.class="file">test.zig</p><pr
9d4a0 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
9d4c0 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
9d4e0 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 73 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c tok-fn">foo</span>(s:.[]<span.cl
9d500 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 ass="tok-type">u8</span>).<span.
9d520 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 0a class="tok-type">void</span>.{}.
9d540 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e .<span.class="tok-kw">test</span
9d560 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 >.<span.class="tok-str">&quot;st
9d580 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 74 6f 20 6d 75 74 61 62 6c 65 20 73 6c 69 63 65 26 71 75 ring.literal.to.mutable.slice&qu
9d5a0 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 ot;</span>.{.....foo(<span.class
9d5c0 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 ="tok-str">&quot;hello&quot;</sp
9d5e0 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 an>);.}</code></pre><pre><code.c
9d600 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 lass="shell">$.zig.test.test.zig
9d620 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 .<span.class="t0_1">/home/andy/d
9d640 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 39 3a 20 ev/zig/docgen_tmp/test.zig:4:9:.
9d660 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 </span><span.class="t31_1">error
9d680 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 65 78 70 65 :</span><span.class="t0_1">.expe
9d6a0 63 74 65 64 20 74 79 70 65 20 27 5b 5d 75 38 27 2c 20 66 6f 75 6e 64 20 27 5b 35 5d 75 38 27 3c cted.type.'[]u8',.found.'[5]u8'<
9d6c0 2f 73 70 61 6e 3e 0a 20 20 20 20 66 6f 6f 28 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b /span>.....foo(&quot;hello&quot;
9d6e0 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e );.........<span.class="t32_1">^
9d700 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 </span>.<span.class="t0_1">/home
9d720 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 /andy/dev/zig/docgen_tmp/test.zi
9d740 67 3a 34 3a 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 g:4:8:.</span><span.class="t36_1
9d760 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 ">note:</span><span.class="t0_1"
9d780 3e 20 72 65 66 65 72 65 6e 63 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 6f 6f >.referenced.here</span>.....foo
9d7a0 28 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 20 20 20 3c 73 70 61 (&quot;hello&quot;);........<spa
9d7c0 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e n.class="t32_1">^</span>.</code>
9d7e0 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 48 6f 77 65 76 65 72 20 69 66 20 79 6f 75 20 </pre>........<p>However.if.you.
9d800 6d 61 6b 65 20 74 68 65 20 73 6c 69 63 65 20 63 6f 6e 73 74 61 6e 74 2c 20 74 68 65 6e 20 69 74 make.the.slice.constant,.then.it
9d820 20 77 6f 72 6b 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 .works:</p>.......<p.class="file
9d840 22 3e 73 74 72 6c 69 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 ">strlit.zig</p><pre><code.class
9d860 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f ="zig"><span.class="tok-kw">fn</
9d880 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f span>.<span.class="tok-fn">foo</
9d8a0 73 70 61 6e 3e 28 73 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e span>(s:.[]<span.class="tok-kw">
9d8c0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 const</span>.<span.class="tok-ty
9d8e0 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pe">u8</span>).<span.class="tok-
9d900 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 type">void</span>.{}..<span.clas
9d920 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">test</span>.<span.cla
9d940 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 72 69 6e 67 20 6c 69 74 65 72 61 ss="tok-str">&quot;string.litera
9d960 6c 20 74 6f 20 63 6f 6e 73 74 61 6e 74 20 73 6c 69 63 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e l.to.constant.slice&quot;</span>
9d980 20 7b 0a 20 20 20 20 66 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 .{.....foo(<span.class="tok-str"
9d9a0 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 >&quot;hello&quot;</span>);.}</c
9d9c0 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c ode></pre><pre><code.class="shel
9d9e0 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 74 72 6c 69 74 2e 7a 69 67 0a 31 2f 31 20 74 65 73 l">$.zig.test.strlit.zig.1/1.tes
9da00 74 20 26 71 75 6f 74 3b 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 74 6f 20 63 6f 6e 73 74 61 t.&quot;string.literal.to.consta
9da20 6e 74 20 73 6c 69 63 65 26 71 75 6f 74 3b 2e 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 nt.slice&quot;...OK.All.tests.pa
9da40 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 ssed..</code></pre>........<p>..
9da60 20 20 20 20 20 4a 75 73 74 20 6c 69 6b 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 2c 20 .....Just.like.string.literals,.
9da80 60 63 6f 6e 73 74 60 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 77 68 65 6e 20 74 68 65 20 76 `const`.declarations,.when.the.v
9daa0 61 6c 75 65 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 alue.is.known.at.<a.href="#compt
9dac0 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 61 72 65 20 73 74 6f ime">comptime</a>,.......are.sto
9dae0 72 65 64 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 73 74 61 6e 74 20 64 61 74 61 20 red.in.the.global.constant.data.
9db00 73 65 63 74 69 6f 6e 2e 20 41 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d section..Also.<a.href="#Compile-
9db20 54 69 6d 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 54 69 6d 65 20 56 61 72 Time-Variables">Compile.Time.Var
9db40 69 61 62 6c 65 73 3c 2f 61 3e 20 61 72 65 20 73 74 6f 72 65 64 0a 20 20 20 20 20 20 69 6e 20 74 iables</a>.are.stored.......in.t
9db60 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 73 74 61 6e 74 20 64 61 74 61 20 73 65 63 74 69 6f 6e 2e he.global.constant.data.section.
9db80 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 60 76 61 72 .......</p>.......<p>.......`var
9dba0 60 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 69 6e 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 73 20 `.declarations.inside.functions.
9dbc0 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 27 73 20 73 74 61 are.stored.in.the.function's.sta
9dbe0 63 6b 20 66 72 61 6d 65 2e 20 4f 6e 63 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e ck.frame..Once.a.function.return
9dc00 73 2c 0a 20 20 20 20 20 20 61 6e 79 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 s,.......any.<a.href="#Pointers"
9dc20 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 74 6f 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20 74 68 >Pointers</a>.to.variables.in.th
9dc40 65 20 66 75 6e 63 74 69 6f 6e 27 73 20 73 74 61 63 6b 20 66 72 61 6d 65 20 62 65 63 6f 6d 65 20 e.function's.stack.frame.become.
9dc60 69 6e 76 61 6c 69 64 20 72 65 66 65 72 65 6e 63 65 73 2c 20 61 6e 64 0a 20 20 20 20 20 20 64 65 invalid.references,.and.......de
9dc80 72 65 66 65 72 65 6e 63 69 6e 67 20 74 68 65 6d 20 62 65 63 6f 6d 65 73 20 75 6e 63 68 65 63 6b referencing.them.becomes.uncheck
9dca0 65 64 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 ed.<a.href="#Undefined-Behavior"
9dcc0 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c >Undefined.Behavior</a>........<
9dce0 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 60 76 61 72 60 20 64 65 63 6c 61 72 /p>.......<p>.......`var`.declar
9dd00 61 74 69 6f 6e 73 20 61 74 20 74 68 65 20 74 6f 70 20 6c 65 76 65 6c 20 6f 72 20 69 6e 20 3c 61 ations.at.the.top.level.or.in.<a
9dd20 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 20 64 65 63 6c 61 .href="#struct">struct</a>.decla
9dd40 72 61 74 69 6f 6e 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c rations.are.stored.in.the.global
9dd60 0a 20 20 20 20 20 20 64 61 74 61 20 73 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a .......data.section........</p>.
9dd80 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 ......<p>.......The.location.of.
9dda0 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 65 64 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 73 memory.allocated.with.<code.clas
9ddc0 73 3d 22 7a 69 67 22 3e 61 6c 6c 6f 63 61 74 6f 72 2e 61 6c 6c 6f 63 3c 2f 63 6f 64 65 3e 20 6f s="zig">allocator.alloc</code>.o
9dde0 72 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 6c 6c 6f 63 61 r.......<code.class="zig">alloca
9de00 74 6f 72 2e 63 72 65 61 74 65 3c 2f 63 6f 64 65 3e 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 tor.create</code>.is.determined.
9de20 62 79 20 74 68 65 20 61 6c 6c 6f 63 61 74 6f 72 27 73 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f by.the.allocator's.implementatio
9de40 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 2f 70 3e 54 4f 44 4f 3a 20 74 68 n........</p>.......</p>TODO:.th
9de60 72 65 61 64 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 3c 2f 70 3e 0a 20 20 20 20 20 20 0a read.local.variables</p>........
9de80 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 2d 61 6e 2d 41 .......<h2.id="Implementing-an-A
9dea0 6c 6c 6f 63 61 74 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 6c 65 6d 65 6e llocator"><a.href="#toc-Implemen
9dec0 74 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 22 3e 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 ting-an-Allocator">Implementing.
9dee0 61 6e 20 41 6c 6c 6f 63 61 74 6f 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 an.Allocator</a>.<a.class="hdr".
9df00 68 72 65 66 3d 22 23 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 href="#Implementing-an-Allocator
9df20 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 70 72 6f 67 ">..</a></h2>........<p>Zig.prog
9df40 72 61 6d 6d 65 72 73 20 63 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 69 72 20 6f 77 6e 20 rammers.can.implement.their.own.
9df60 61 6c 6c 6f 63 61 74 6f 72 73 20 62 79 20 66 75 6c 66 69 6c 6c 69 6e 67 20 74 68 65 20 41 6c 6c allocators.by.fulfilling.the.All
9df80 6f 63 61 74 6f 72 20 69 6e 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 20 49 6e 20 6f 72 64 65 72 ocator.interface........In.order
9dfa0 20 74 6f 20 64 6f 20 74 68 69 73 20 6f 6e 65 20 6d 75 73 74 20 72 65 61 64 20 63 61 72 65 66 75 .to.do.this.one.must.read.carefu
9dfc0 6c 6c 79 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 63 6f 6d 6d 65 6e 74 73 20 69 lly.the.documentation.comments.i
9dfe0 6e 20 73 74 64 2f 6d 65 6d 2e 7a 69 67 20 61 6e 64 0a 20 20 20 20 20 20 74 68 65 6e 20 73 75 70 n.std/mem.zig.and.......then.sup
9e000 70 6c 79 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 72 65 61 6c 6c 6f 63 46 ply.a.<code.class="zig">reallocF
9e020 6e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 n</code>.and.a.<code.class="zig"
9e040 3e 73 68 72 69 6e 6b 46 6e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 >shrinkFn</code>........</p>....
9e060 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 61 72 65 20 6d 61 6e 79 20 65 78 61 6d ...<p>.......There.are.many.exam
9e080 70 6c 65 20 61 6c 6c 6f 63 61 74 6f 72 73 20 74 6f 20 6c 6f 6f 6b 20 61 74 20 66 6f 72 20 69 6e ple.allocators.to.look.at.for.in
9e0a0 73 70 69 72 61 74 69 6f 6e 2e 20 4c 6f 6f 6b 20 61 74 20 73 74 64 2f 68 65 61 70 2e 7a 69 67 20 spiration..Look.at.std/heap.zig.
9e0c0 61 6e 64 0a 20 20 20 20 20 20 61 74 20 74 68 69 73 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d and.......at.this.......<a.href=
9e0e0 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 61 6e 64 72 65 77 72 6b 2f 7a 69 67 "https://github.com/andrewrk/zig
9e100 2d 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 2d 61 6c 6c 6f 63 61 74 6f 72 2f 22 3e 77 6f 72 -general-purpose-allocator/">wor
9e120 6b 2d 69 6e 2d 70 72 6f 67 72 65 73 73 20 67 65 6e 65 72 61 6c 20 70 75 72 70 6f 73 65 20 61 6c k-in-progress.general.purpose.al
9e140 6c 6f 63 61 74 6f 72 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 54 4f 44 4f 3a 20 6f 6e 63 65 20 3c 61 locator</a>........TODO:.once.<a
9e160 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e .href="https://github.com/ziglan
9e180 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 32 31 22 3e 23 32 31 3c 2f 61 3e 20 69 73 20 64 6f 6e 65 g/zig/issues/21">#21</a>.is.done
9e1a0 2c 20 6c 69 6e 6b 20 74 6f 20 74 68 65 20 64 6f 63 73 0a 20 20 20 20 20 20 68 65 72 65 2e 0a 20 ,.link.to.the.docs.......here...
9e1c0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 .....</p>...............<h2.id="
9e1e0 48 65 61 70 2d 41 6c 6c 6f 63 61 74 69 6f 6e 2d 46 61 69 6c 75 72 65 22 3e 3c 61 20 68 72 65 66 Heap-Allocation-Failure"><a.href
9e200 3d 22 23 74 6f 63 2d 48 65 61 70 2d 41 6c 6c 6f 63 61 74 69 6f 6e 2d 46 61 69 6c 75 72 65 22 3e ="#toc-Heap-Allocation-Failure">
9e220 48 65 61 70 20 41 6c 6c 6f 63 61 74 69 6f 6e 20 46 61 69 6c 75 72 65 3c 2f 61 3e 20 3c 61 20 63 Heap.Allocation.Failure</a>.<a.c
9e240 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 48 65 61 70 2d 41 6c 6c 6f 63 61 74 69 6f lass="hdr".href="#Heap-Allocatio
9e260 6e 2d 46 61 69 6c 75 72 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 n-Failure">..</a></h2>........<p
9e280 3e 0a 20 20 20 20 20 20 4d 61 6e 79 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 >.......Many.programming.languag
9e2a0 65 73 20 63 68 6f 6f 73 65 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 65 20 70 6f 73 73 69 62 69 6c es.choose.to.handle.the.possibil
9e2c0 69 74 79 20 6f 66 20 68 65 61 70 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 62 ity.of.heap.allocation.failure.b
9e2e0 79 0a 20 20 20 20 20 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 63 72 61 73 68 69 6e 67 y.......unconditionally.crashing
9e300 2e 20 42 79 20 63 6f 6e 76 65 6e 74 69 6f 6e 2c 20 5a 69 67 20 70 72 6f 67 72 61 6d 6d 65 72 73 ..By.convention,.Zig.programmers
9e320 20 64 6f 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 20 74 6f 20 62 65 20 61 0a 20 20 .do.not.consider.this.to.be.a...
9e340 20 20 20 20 73 61 74 69 73 66 61 63 74 6f 72 79 20 73 6f 6c 75 74 69 6f 6e 2e 20 49 6e 73 74 65 ....satisfactory.solution..Inste
9e360 61 64 2c 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 ad,.<code.class="zig"><span.clas
9e380 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4f 75 74 4f 66 4d 65 6d s="tok-kw">error</span>.OutOfMem
9e3a0 6f 72 79 3c 2f 63 6f 64 65 3e 20 72 65 70 72 65 73 65 6e 74 73 0a 20 20 20 20 20 20 68 65 61 70 ory</code>.represents.......heap
9e3c0 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 66 61 69 6c 75 72 65 2c 20 61 6e 64 20 5a 69 67 20 6c 69 62 .allocation.failure,.and.Zig.lib
9e3e0 72 61 72 69 65 73 20 72 65 74 75 72 6e 20 74 68 69 73 20 65 72 72 6f 72 20 63 6f 64 65 20 77 68 raries.return.this.error.code.wh
9e400 65 6e 65 76 65 72 20 68 65 61 70 20 61 6c 6c 6f 63 61 74 69 6f 6e 0a 20 20 20 20 20 20 66 61 69 enever.heap.allocation.......fai
9e420 6c 75 72 65 20 70 72 65 76 65 6e 74 65 64 20 61 6e 20 6f 70 65 72 61 74 69 6f 6e 20 66 72 6f 6d lure.prevented.an.operation.from
9e440 20 63 6f 6d 70 6c 65 74 69 6e 67 20 73 75 63 63 65 73 73 66 75 6c 6c 79 2e 0a 20 20 20 20 20 20 .completing.successfully........
9e460 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 6f 6d 65 20 68 61 76 65 20 61 </p>.......<p>.......Some.have.a
9e480 72 67 75 65 64 20 74 68 61 74 20 62 65 63 61 75 73 65 20 73 6f 6d 65 20 6f 70 65 72 61 74 69 6e rgued.that.because.some.operatin
9e4a0 67 20 73 79 73 74 65 6d 73 20 73 75 63 68 20 61 73 20 4c 69 6e 75 78 20 68 61 76 65 20 6d 65 6d g.systems.such.as.Linux.have.mem
9e4c0 6f 72 79 20 6f 76 65 72 63 6f 6d 6d 69 74 20 65 6e 61 62 6c 65 64 20 62 79 0a 20 20 20 20 20 20 ory.overcommit.enabled.by.......
9e4e0 64 65 66 61 75 6c 74 2c 20 69 74 20 69 73 20 70 6f 69 6e 74 6c 65 73 73 20 74 6f 20 68 61 6e 64 default,.it.is.pointless.to.hand
9e500 6c 65 20 68 65 61 70 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 66 61 69 6c 75 72 65 2e 20 54 68 65 72 le.heap.allocation.failure..Ther
9e520 65 20 61 72 65 20 6d 61 6e 79 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 74 68 69 73 20 72 65 e.are.many.problems.with.this.re
9e540 61 73 6f 6e 69 6e 67 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 asoning:.......</p>.......<ul>..
9e560 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 6e 6c 79 20 73 6f 6d 65 20 6f 70 65 72 61 74 69 6e 67 .........<li>Only.some.operating
9e580 20 73 79 73 74 65 6d 73 20 68 61 76 65 20 61 6e 20 6f 76 65 72 63 6f 6d 6d 69 74 20 66 65 61 74 .systems.have.an.overcommit.feat
9e5a0 75 72 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 ure................<ul>.........
9e5c0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 4c 69 6e 75 78 20 68 61 73 20 69 74 20 65 6e 61 62 6c ..........<li>Linux.has.it.enabl
9e5e0 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 62 75 74 20 69 74 20 69 73 20 63 6f 6e 66 69 67 75 ed.by.default,.but.it.is.configu
9e600 72 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c rable.</li>...................<l
9e620 69 3e 57 69 6e 64 6f 77 73 20 64 6f 65 73 20 6e 6f 74 20 6f 76 65 72 63 6f 6d 6d 69 74 2e 3c 2f i>Windows.does.not.overcommit.</
9e640 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 6d 62 65 64 64 li>...................<li>Embedd
9e660 65 64 20 73 79 73 74 65 6d 73 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 6f 76 65 72 63 6f 6d 6d 69 ed.systems.do.not.have.overcommi
9e680 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 48 6f t.</li>...................<li>Ho
9e6a0 62 62 79 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 73 20 6d 61 79 20 6f 72 20 6d 61 79 bby.operating.systems.may.or.may
9e6c0 20 6e 6f 74 20 68 61 76 65 20 6f 76 65 72 63 6f 6d 6d 69 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 .not.have.overcommit.</li>......
9e6e0 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 .........</ul>...........</li>..
9e700 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6f 72 20 .........<li>...............For.
9e720 72 65 61 6c 2d 74 69 6d 65 20 73 79 73 74 65 6d 73 2c 20 6e 6f 74 20 6f 6e 6c 79 20 69 73 20 74 real-time.systems,.not.only.is.t
9e740 68 65 72 65 20 6e 6f 20 6f 76 65 72 63 6f 6d 6d 69 74 2c 20 62 75 74 20 74 79 70 69 63 61 6c 6c here.no.overcommit,.but.typicall
9e760 79 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 61 6d 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 y.the.maximum.amount............
9e780 20 20 20 6f 66 20 6d 65 6d 6f 72 79 20 70 65 72 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 73 20 ...of.memory.per.application.is.
9e7a0 64 65 74 65 72 6d 69 6e 65 64 20 61 68 65 61 64 20 6f 66 20 74 69 6d 65 2e 0a 20 20 20 20 20 20 determined.ahead.of.time........
9e7c0 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 ....</li>...........<li>........
9e7e0 20 20 20 20 20 20 20 57 68 65 6e 20 77 72 69 74 69 6e 67 20 61 20 6c 69 62 72 61 72 79 2c 20 6f .......When.writing.a.library,.o
9e800 6e 65 20 6f 66 20 74 68 65 20 6d 61 69 6e 20 67 6f 61 6c 73 20 69 73 20 63 6f 64 65 20 72 65 75 ne.of.the.main.goals.is.code.reu
9e820 73 65 2e 20 42 79 20 6d 61 6b 69 6e 67 20 63 6f 64 65 20 68 61 6e 64 6c 65 0a 20 20 20 20 20 20 se..By.making.code.handle.......
9e840 20 20 20 20 20 20 20 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 63 6f 72 72 65 ........allocation.failure.corre
9e860 63 74 6c 79 2c 20 61 20 6c 69 62 72 61 72 79 20 62 65 63 6f 6d 65 73 20 65 6c 69 67 69 62 6c 65 ctly,.a.library.becomes.eligible
9e880 20 74 6f 20 62 65 20 72 65 75 73 65 64 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d .to.be.reused.in...............m
9e8a0 6f 72 65 20 63 6f 6e 74 65 78 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 ore.contexts............</li>...
9e8c0 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6c 74 68 6f ........<li>...............Altho
9e8e0 75 67 68 20 73 6f 6d 65 20 73 6f 66 74 77 61 72 65 20 68 61 73 20 67 72 6f 77 6e 20 74 6f 20 64 ugh.some.software.has.grown.to.d
9e900 65 70 65 6e 64 20 6f 6e 20 6f 76 65 72 63 6f 6d 6d 69 74 20 62 65 69 6e 67 20 65 6e 61 62 6c 65 epend.on.overcommit.being.enable
9e920 64 2c 20 69 74 73 20 65 78 69 73 74 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 d,.its.existence...............i
9e940 73 20 74 68 65 20 73 6f 75 72 63 65 20 6f 66 20 63 6f 75 6e 74 6c 65 73 73 20 75 73 65 72 20 65 s.the.source.of.countless.user.e
9e960 78 70 65 72 69 65 6e 63 65 20 64 69 73 61 73 74 65 72 73 2e 20 57 68 65 6e 20 61 20 73 79 73 74 xperience.disasters..When.a.syst
9e980 65 6d 20 77 69 74 68 20 6f 76 65 72 63 6f 6d 6d 69 74 20 65 6e 61 62 6c 65 64 2c 0a 20 20 20 20 em.with.overcommit.enabled,.....
9e9a0 20 20 20 20 20 20 20 20 20 20 73 75 63 68 20 61 73 20 4c 69 6e 75 78 20 6f 6e 20 64 65 66 61 75 ..........such.as.Linux.on.defau
9e9c0 6c 74 20 73 65 74 74 69 6e 67 73 2c 20 63 6f 6d 65 73 20 63 6c 6f 73 65 20 74 6f 20 6d 65 6d 6f lt.settings,.comes.close.to.memo
9e9e0 72 79 20 65 78 68 61 75 73 74 69 6f 6e 2c 20 74 68 65 20 73 79 73 74 65 6d 20 6c 6f 63 6b 73 20 ry.exhaustion,.the.system.locks.
9ea00 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 62 65 63 6f 6d 65 73 20 75 6e 75 up...............and.becomes.unu
9ea20 73 61 62 6c 65 2e 20 41 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 74 68 65 20 4f 4f 4d 20 4b 69 sable..At.this.point,.the.OOM.Ki
9ea40 6c 6c 65 72 20 73 65 6c 65 63 74 73 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 74 6f 20 6b ller.selects.an.application.to.k
9ea60 69 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 73 65 64 20 6f 6e 20 68 65 75 72 69 ill...............based.on.heuri
9ea80 73 74 69 63 73 2e 20 54 68 69 73 20 6e 6f 6e 2d 64 65 74 65 72 6d 69 6e 69 73 74 69 63 20 64 65 stics..This.non-deterministic.de
9eaa0 63 69 73 69 6f 6e 20 6f 66 74 65 6e 20 72 65 73 75 6c 74 73 20 69 6e 20 61 6e 20 69 6d 70 6f 72 cision.often.results.in.an.impor
9eac0 74 61 6e 74 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 69 6e 67 tant.process...............being
9eae0 20 6b 69 6c 6c 65 64 2c 20 61 6e 64 20 6f 66 74 65 6e 20 66 61 69 6c 73 20 74 6f 20 72 65 74 75 .killed,.and.often.fails.to.retu
9eb00 72 6e 20 74 68 65 20 73 79 73 74 65 6d 20 62 61 63 6b 20 74 6f 20 77 6f 72 6b 69 6e 67 20 6f 72 rn.the.system.back.to.working.or
9eb20 64 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e der............</li>.......</ul>
9eb40 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 65 63 75 72 73 69 6f 6e ...............<h2.id="Recursion
9eb60 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 52 65 63 75 72 73 69 6f 6e 22 3e 52 65 63 75 72 "><a.href="#toc-Recursion">Recur
9eb80 73 69 6f 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 52 sion</a>.<a.class="hdr".href="#R
9eba0 65 63 75 72 73 69 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e ecursion">..</a></h2>........<p>
9ebc0 0a 20 20 20 20 20 20 52 65 63 75 72 73 69 6f 6e 20 69 73 20 61 20 66 75 6e 64 61 6d 65 6e 74 61 .......Recursion.is.a.fundamenta
9ebe0 6c 20 74 6f 6f 6c 20 69 6e 20 6d 6f 64 65 6c 69 6e 67 20 73 6f 66 74 77 61 72 65 2e 20 48 6f 77 l.tool.in.modeling.software..How
9ec00 65 76 65 72 20 69 74 20 68 61 73 20 61 6e 20 6f 66 74 65 6e 2d 6f 76 65 72 6c 6f 6f 6b 65 64 20 ever.it.has.an.often-overlooked.
9ec20 70 72 6f 62 6c 65 6d 3a 0a 20 20 20 20 20 20 75 6e 62 6f 75 6e 64 65 64 20 6d 65 6d 6f 72 79 20 problem:.......unbounded.memory.
9ec40 61 6c 6c 6f 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e allocation........</p>.......<p>
9ec60 0a 20 20 20 20 20 20 52 65 63 75 72 73 69 6f 6e 20 69 73 20 61 6e 20 61 72 65 61 20 6f 66 20 61 .......Recursion.is.an.area.of.a
9ec80 63 74 69 76 65 20 65 78 70 65 72 69 6d 65 6e 74 61 74 69 6f 6e 20 69 6e 20 5a 69 67 20 61 6e 64 ctive.experimentation.in.Zig.and
9eca0 20 73 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 68 65 72 65 20 69 73 20 6e 6f .so.the.documentation.here.is.no
9ecc0 74 20 66 69 6e 61 6c 2e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 72 65 61 64 20 61 0a 20 20 t.final........You.can.read.a...
9ece0 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 ....<a.href="https://ziglang.org
9ed00 2f 64 6f 77 6e 6c 6f 61 64 2f 30 2e 33 2e 30 2f 72 65 6c 65 61 73 65 2d 6e 6f 74 65 73 2e 68 74 /download/0.3.0/release-notes.ht
9ed20 6d 6c 23 72 65 63 75 72 73 69 6f 6e 22 3e 73 75 6d 6d 61 72 79 20 6f 66 20 72 65 63 75 72 73 69 ml#recursion">summary.of.recursi
9ed40 6f 6e 20 73 74 61 74 75 73 20 69 6e 20 74 68 65 20 30 2e 33 2e 30 20 72 65 6c 65 61 73 65 20 6e on.status.in.the.0.3.0.release.n
9ed60 6f 74 65 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 otes</a>........</p>.......<p>..
9ed80 20 20 20 20 20 54 68 65 20 73 68 6f 72 74 20 73 75 6d 6d 61 72 79 20 69 73 20 74 68 61 74 20 63 .....The.short.summary.is.that.c
9eda0 75 72 72 65 6e 74 6c 79 20 72 65 63 75 72 73 69 6f 6e 20 77 6f 72 6b 73 20 6e 6f 72 6d 61 6c 6c urrently.recursion.works.normall
9edc0 79 20 61 73 20 79 6f 75 20 77 6f 75 6c 64 20 65 78 70 65 63 74 2e 20 41 6c 74 68 6f 75 67 68 20 y.as.you.would.expect..Although.
9ede0 5a 69 67 20 63 6f 64 65 0a 20 20 20 20 20 20 69 73 20 6e 6f 74 20 79 65 74 20 70 72 6f 74 65 63 Zig.code.......is.not.yet.protec
9ee00 74 65 64 20 66 72 6f 6d 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 2c 20 69 74 20 69 73 20 70 ted.from.stack.overflow,.it.is.p
9ee20 6c 61 6e 6e 65 64 20 74 68 61 74 20 61 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 lanned.that.a.future.version.of.
9ee40 5a 69 67 20 77 69 6c 6c 20 70 72 6f 76 69 64 65 0a 20 20 20 20 20 20 73 75 63 68 20 70 72 6f 74 Zig.will.provide.......such.prot
9ee60 65 63 74 69 6f 6e 2c 20 77 69 74 68 20 73 6f 6d 65 20 64 65 67 72 65 65 20 6f 66 20 63 6f 6f 70 ection,.with.some.degree.of.coop
9ee80 65 72 61 74 69 6f 6e 20 66 72 6f 6d 20 5a 69 67 20 63 6f 64 65 20 72 65 71 75 69 72 65 64 2e 0a eration.from.Zig.code.required..
9eea0 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d ......</p>...............<h2.id=
9eec0 22 4c 69 66 65 74 69 6d 65 2d 61 6e 64 2d 4f 77 6e 65 72 73 68 69 70 22 3e 3c 61 20 68 72 65 66 "Lifetime-and-Ownership"><a.href
9eee0 3d 22 23 74 6f 63 2d 4c 69 66 65 74 69 6d 65 2d 61 6e 64 2d 4f 77 6e 65 72 73 68 69 70 22 3e 4c ="#toc-Lifetime-and-Ownership">L
9ef00 69 66 65 74 69 6d 65 20 61 6e 64 20 4f 77 6e 65 72 73 68 69 70 3c 2f 61 3e 20 3c 61 20 63 6c 61 ifetime.and.Ownership</a>.<a.cla
9ef20 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4c 69 66 65 74 69 6d 65 2d 61 6e 64 2d 4f 77 6e ss="hdr".href="#Lifetime-and-Own
9ef40 65 72 73 68 69 70 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 ership">..</a></h2>........<p>..
9ef60 20 20 20 20 20 49 74 20 69 73 20 74 68 65 20 5a 69 67 20 70 72 6f 67 72 61 6d 6d 65 72 27 73 20 .....It.is.the.Zig.programmer's.
9ef80 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 79 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 61 20 responsibility.to.ensure.that.a.
9efa0 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 20 <a.href="#Pointers">pointer</a>.
9efc0 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 61 63 63 65 73 73 65 64 20 77 68 65 6e 20 74 68 65 20 6d is.not.......accessed.when.the.m
9efe0 65 6d 6f 72 79 20 70 6f 69 6e 74 65 64 20 74 6f 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 76 emory.pointed.to.is.no.longer.av
9f000 61 69 6c 61 62 6c 65 2e 20 4e 6f 74 65 20 74 68 61 74 20 61 20 3c 61 20 68 72 65 66 3d 22 23 53 ailable..Note.that.a.<a.href="#S
9f020 6c 69 63 65 73 22 3e 73 6c 69 63 65 3c 2f 61 3e 0a 20 20 20 20 20 20 69 73 20 61 20 66 6f 72 6d lices">slice</a>.......is.a.form
9f040 20 6f 66 20 70 6f 69 6e 74 65 72 2c 20 69 6e 20 74 68 61 74 20 69 74 20 72 65 66 65 72 65 6e 63 .of.pointer,.in.that.it.referenc
9f060 65 73 20 6f 74 68 65 72 20 6d 65 6d 6f 72 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 es.other.memory........</p>.....
9f080 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 ..<p>.......In.order.to.prevent.
9f0a0 62 75 67 73 2c 20 74 68 65 72 65 20 61 72 65 20 73 6f 6d 65 20 68 65 6c 70 66 75 6c 20 63 6f 6e bugs,.there.are.some.helpful.con
9f0c0 76 65 6e 74 69 6f 6e 73 20 74 6f 20 66 6f 6c 6c 6f 77 20 77 68 65 6e 20 64 65 61 6c 69 6e 67 20 ventions.to.follow.when.dealing.
9f0e0 77 69 74 68 20 70 6f 69 6e 74 65 72 73 2e 0a 20 20 20 20 20 20 49 6e 20 67 65 6e 65 72 61 6c 2c with.pointers........In.general,
9f100 20 77 68 65 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 70 6f 69 6e 74 .when.a.function.returns.a.point
9f120 65 72 2c 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 er,.the.documentation.for.the.fu
9f140 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 65 78 70 6c 61 69 6e 0a 20 20 20 20 20 20 77 68 6f 20 nction.should.explain.......who.
9f160 22 6f 77 6e 73 22 20 74 68 65 20 70 6f 69 6e 74 65 72 2e 20 54 68 69 73 20 63 6f 6e 63 65 70 74 "owns".the.pointer..This.concept
9f180 20 68 65 6c 70 73 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 64 65 63 69 64 65 20 77 68 65 .helps.the.programmer.decide.whe
9f1a0 6e 20 69 74 20 69 73 20 61 70 70 72 6f 70 72 69 61 74 65 2c 20 69 66 20 65 76 65 72 2c 0a 20 20 n.it.is.appropriate,.if.ever,...
9f1c0 20 20 20 20 74 6f 20 66 72 65 65 20 74 68 65 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 20 20 3c ....to.free.the.pointer........<
9f1e0 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c /p>.......<p>.......For.example,
9f200 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 27 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6d 61 .the.function's.documentation.ma
9f220 79 20 73 61 79 20 22 63 61 6c 6c 65 72 20 6f 77 6e 73 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 y.say."caller.owns.the.returned.
9f240 6d 65 6d 6f 72 79 22 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 0a 20 20 20 20 20 20 74 68 65 memory",.in.which.case.......the
9f260 20 63 6f 64 65 20 74 68 61 74 20 63 61 6c 6c 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6d 75 .code.that.calls.the.function.mu
9f280 73 74 20 68 61 76 65 20 61 20 70 6c 61 6e 20 66 6f 72 20 77 68 65 6e 20 74 6f 20 66 72 65 65 20 st.have.a.plan.for.when.to.free.
9f2a0 74 68 61 74 20 6d 65 6d 6f 72 79 2e 20 50 72 6f 62 61 62 6c 79 20 69 6e 20 74 68 69 73 20 73 69 that.memory..Probably.in.this.si
9f2c0 74 75 61 74 69 6f 6e 2c 0a 20 20 20 20 20 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c tuation,.......the.function.will
9f2e0 20 61 63 63 65 70 74 20 61 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 41 6c .accept.an.<code.class="zig">*Al
9f300 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 70 61 72 61 6d 65 74 65 72 2e 0a 20 20 20 20 20 20 locator</code>.parameter........
9f320 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 6f 6d 65 74 69 6d 65 73 20 74 </p>.......<p>.......Sometimes.t
9f340 68 65 20 6c 69 66 65 74 69 6d 65 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 20 6d 61 79 20 62 65 20 he.lifetime.of.a.pointer.may.be.
9f360 6d 6f 72 65 20 63 6f 6d 70 6c 69 63 61 74 65 64 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 77 more.complicated..For.example,.w
9f380 68 65 6e 20 75 73 69 6e 67 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 hen.using.......<code.class="zig
9f3a0 22 3e 73 74 64 2e 41 72 72 61 79 4c 69 73 74 28 54 29 2e 74 6f 53 6c 69 63 65 28 29 3c 2f 63 6f ">std.ArrayList(T).toSlice()</co
9f3c0 64 65 3e 2c 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 73 6c 69 63 65 20 68 61 73 20 61 20 6c 69 de>,.the.returned.slice.has.a.li
9f3e0 66 65 74 69 6d 65 20 74 68 61 74 20 72 65 6d 61 69 6e 73 0a 20 20 20 20 20 20 76 61 6c 69 64 20 fetime.that.remains.......valid.
9f400 75 6e 74 69 6c 20 74 68 65 20 6e 65 78 74 20 74 69 6d 65 20 74 68 65 20 6c 69 73 74 20 69 73 20 until.the.next.time.the.list.is.
9f420 72 65 73 69 7a 65 64 2c 20 73 75 63 68 20 61 73 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 6e 65 resized,.such.as.by.appending.ne
9f440 77 20 65 6c 65 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e w.elements........</p>.......<p>
9f460 0a 20 20 20 20 20 20 54 68 65 20 41 50 49 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 .......The.API.documentation.for
9f480 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 20 73 .functions.and.data.structures.s
9f4a0 68 6f 75 6c 64 20 74 61 6b 65 20 67 72 65 61 74 20 63 61 72 65 20 74 6f 20 65 78 70 6c 61 69 6e hould.take.great.care.to.explain
9f4c0 0a 20 20 20 20 20 20 74 68 65 20 6f 77 6e 65 72 73 68 69 70 20 61 6e 64 20 6c 69 66 65 74 69 6d .......the.ownership.and.lifetim
9f4e0 65 20 73 65 6d 61 6e 74 69 63 73 20 6f 66 20 70 6f 69 6e 74 65 72 73 2e 20 4f 77 6e 65 72 73 68 e.semantics.of.pointers..Ownersh
9f500 69 70 20 64 65 74 65 72 6d 69 6e 65 73 20 77 68 6f 73 65 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 ip.determines.whose.responsibili
9f520 74 79 20 69 74 0a 20 20 20 20 20 20 69 73 20 74 6f 20 66 72 65 65 20 74 68 65 20 6d 65 6d 6f 72 ty.it.......is.to.free.the.memor
9f540 79 20 72 65 66 65 72 65 6e 63 65 64 20 62 79 20 74 68 65 20 70 6f 69 6e 74 65 72 2c 20 61 6e 64 y.referenced.by.the.pointer,.and
9f560 20 6c 69 66 65 74 69 6d 65 20 64 65 74 65 72 6d 69 6e 65 73 20 74 68 65 20 70 6f 69 6e 74 20 61 .lifetime.determines.the.point.a
9f580 74 20 77 68 69 63 68 0a 20 20 20 20 20 20 74 68 65 20 6d 65 6d 6f 72 79 20 62 65 63 6f 6d 65 73 t.which.......the.memory.becomes
9f5a0 20 69 6e 61 63 63 65 73 73 69 62 6c 65 20 28 6c 65 73 74 20 3c 61 20 68 72 65 66 3d 22 23 55 6e .inaccessible.(lest.<a.href="#Un
9f5c0 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 defined-Behavior">Undefined.Beha
9f5e0 76 69 6f 72 3c 2f 61 3e 20 6f 63 63 75 72 29 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 vior</a>.occur)........</p>.....
9f600 20 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 43 6f 6d 70 69 6c 65 .................<h1.id="Compile
9f620 2d 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 6f 6d 70 69 6c -Variables"><a.href="#toc-Compil
9f640 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f e-Variables">Compile.Variables</
9f660 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 a>.<a.class="hdr".href="#Compile
9f680 2d 56 61 72 69 61 62 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c -Variables">..</a></h1>........<
9f6a0 70 3e 0a 20 20 20 20 20 20 43 6f 6d 70 69 6c 65 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 61 p>.......Compile.variables.are.a
9f6c0 63 63 65 73 73 69 62 6c 65 20 62 79 20 69 6d 70 6f 72 74 69 6e 67 20 74 68 65 20 3c 63 6f 64 65 ccessible.by.importing.the.<code
9f6e0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 .class="zig"><span.class="tok-st
9f700 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3c 2f 63 r">&quot;builtin&quot;</span></c
9f720 6f 64 65 3e 20 70 61 63 6b 61 67 65 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 74 68 65 20 63 6f ode>.package,.......which.the.co
9f740 6d 70 69 6c 65 72 20 6d 61 6b 65 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 65 76 65 72 79 20 mpiler.makes.available.to.every.
9f760 5a 69 67 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 20 49 74 20 63 6f 6e 74 61 69 6e 73 0a 20 20 20 Zig.source.file..It.contains....
9f780 20 20 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 73 20 73 75 63 68 20 61 ...compile-time.constants.such.a
9f7a0 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 61 72 67 65 74 2c 20 65 6e 64 69 61 6e 6e 65 73 73 s.the.current.target,.endianness
9f7c0 2c 20 61 6e 64 20 72 65 6c 65 61 73 65 20 6d 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 ,.and.release.mode........</p>..
9f7e0 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 .....<pre><code.class="zig"><spa
9f800 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 75 n.class="tok-kw">const</span>.bu
9f820 69 6c 74 69 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e iltin.=.<span.class="tok-builtin
9f840 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">@import</span>(<span.class="to
9f860 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e k-str">&quot;builtin&quot;</span
9f880 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f >);.<span.class="tok-kw">const</
9f8a0 73 70 61 6e 3e 20 73 65 70 61 72 61 74 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>.separator.=.<span.class="t
9f8c0 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 75 69 6c 74 69 6e 2e 6f 73 20 3d 3d 20 ok-kw">if</span>.(builtin.os.==.
9f8e0 62 75 69 6c 74 69 6e 2e 4f 73 2e 77 69 6e 64 6f 77 73 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d builtin.Os.windows).<span.class=
9f900 22 74 6f 6b 2d 73 74 72 22 3e 27 5c 5c 27 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 "tok-str">'\\'</span>.<span.clas
9f920 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 s="tok-kw">else</span>.<span.cla
9f940 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 2f 27 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c ss="tok-str">'/'</span>;</code><
9f960 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 20 6f 66 /pre>.......<p>.......Example.of
9f980 20 77 68 61 74 20 69 73 20 69 6d 70 6f 72 74 65 64 20 77 69 74 68 20 3c 63 6f 64 65 20 63 6c 61 .what.is.imported.with.<code.cla
9f9a0 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ss="zig"><span.class="tok-builti
9f9c0 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">@import</span>(<span.class="t
9f9e0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 ok-str">&quot;builtin&quot;</spa
9fa00 6e 3e 29 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 n>)</code>:.......</p>.......<pr
9fa20 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d e><code.class="zig"><span.class=
9fa40 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d "tok-kw">pub</span>.<span.class=
9fa60 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 74 61 63 6b 54 72 61 63 65 "tok-kw">const</span>.StackTrace
9fa80 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f .=.<span.class="tok-kw">struct</
9faa0 73 70 61 6e 3e 20 7b 0a 20 20 20 20 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 span>.{.....index:.<span.class="
9fac0 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 69 6e 73 74 tok-type">usize</span>,.....inst
9fae0 72 75 63 74 69 6f 6e 5f 61 64 64 72 65 73 73 65 73 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 ruction_addresses:.[]<span.class
9fb00 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 ="tok-type">usize</span>,.};..<s
9fb20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
9fb40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
9fb60 50 61 6e 69 63 46 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 PanicFn.=.<span.class="tok-kw">f
9fb80 6e 3c 2f 73 70 61 6e 3e 28 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e n</span>([]<span.class="tok-kw">
9fba0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 const</span>.<span.class="tok-ty
9fbc0 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 3f 2a 53 74 61 63 6b 54 72 61 63 65 29 20 3c 73 70 pe">u8</span>,.?*StackTrace).<sp
9fbe0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 an.class="tok-type">noreturn</sp
9fc00 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f an>;..<span.class="tok-kw">pub</
9fc20 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
9fc40 3c 2f 73 70 61 6e 3e 20 4f 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 </span>.Os.=.<span.class="tok-kw
9fc60 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 72 65 65 73 74 61 6e 64 69 6e 67 ">enum</span>.{.....freestanding
9fc80 2c 0a 20 20 20 20 61 6e 61 6e 61 73 2c 0a 20 20 20 20 63 6c 6f 75 64 61 62 69 2c 0a 20 20 20 20 ,.....ananas,.....cloudabi,.....
9fca0 64 72 61 67 6f 6e 66 6c 79 2c 0a 20 20 20 20 66 72 65 65 62 73 64 2c 0a 20 20 20 20 66 75 63 68 dragonfly,.....freebsd,.....fuch
9fcc0 73 69 61 2c 0a 20 20 20 20 69 6f 73 2c 0a 20 20 20 20 6b 66 72 65 65 62 73 64 2c 0a 20 20 20 20 sia,.....ios,.....kfreebsd,.....
9fce0 6c 69 6e 75 78 2c 0a 20 20 20 20 6c 76 32 2c 0a 20 20 20 20 6d 61 63 6f 73 78 2c 0a 20 20 20 20 linux,.....lv2,.....macosx,.....
9fd00 6e 65 74 62 73 64 2c 0a 20 20 20 20 6f 70 65 6e 62 73 64 2c 0a 20 20 20 20 73 6f 6c 61 72 69 73 netbsd,.....openbsd,.....solaris
9fd20 2c 0a 20 20 20 20 77 69 6e 64 6f 77 73 2c 0a 20 20 20 20 68 61 69 6b 75 2c 0a 20 20 20 20 6d 69 ,.....windows,.....haiku,.....mi
9fd40 6e 69 78 2c 0a 20 20 20 20 72 74 65 6d 73 2c 0a 20 20 20 20 6e 61 63 6c 2c 0a 20 20 20 20 63 6e nix,.....rtems,.....nacl,.....cn
9fd60 6b 2c 0a 20 20 20 20 61 69 78 2c 0a 20 20 20 20 63 75 64 61 2c 0a 20 20 20 20 6e 76 63 6c 2c 0a k,.....aix,.....cuda,.....nvcl,.
9fd80 20 20 20 20 61 6d 64 68 73 61 2c 0a 20 20 20 20 70 73 34 2c 0a 20 20 20 20 65 6c 66 69 61 6d 63 ....amdhsa,.....ps4,.....elfiamc
9fda0 75 2c 0a 20 20 20 20 74 76 6f 73 2c 0a 20 20 20 20 77 61 74 63 68 6f 73 2c 0a 20 20 20 20 6d 65 u,.....tvos,.....watchos,.....me
9fdc0 73 61 33 64 2c 0a 20 20 20 20 63 6f 6e 74 69 6b 69 2c 0a 20 20 20 20 61 6d 64 70 61 6c 2c 0a 20 sa3d,.....contiki,.....amdpal,..
9fde0 20 20 20 68 65 72 6d 69 74 2c 0a 20 20 20 20 68 75 72 64 2c 0a 20 20 20 20 77 61 73 69 2c 0a 20 ...hermit,.....hurd,.....wasi,..
9fe00 20 20 20 65 6d 73 63 72 69 70 74 65 6e 2c 0a 20 20 20 20 7a 65 6e 2c 0a 20 20 20 20 75 65 66 69 ...emscripten,.....zen,.....uefi
9fe20 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f ,.};..<span.class="tok-kw">pub</
9fe40 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
9fe60 3c 2f 73 70 61 6e 3e 20 41 72 63 68 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d </span>.Arch.=.<span.class="tok-
9fe80 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f kw">union</span>(<span.class="to
9fea0 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 61 72 6d 3a 20 41 72 k-kw">enum</span>).{.....arm:.Ar
9fec0 6d 33 32 2c 0a 20 20 20 20 61 72 6d 65 62 3a 20 41 72 6d 33 32 2c 0a 20 20 20 20 61 61 72 63 68 m32,.....armeb:.Arm32,.....aarch
9fee0 36 34 3a 20 41 72 6d 36 34 2c 0a 20 20 20 20 61 61 72 63 68 36 34 5f 62 65 3a 20 41 72 6d 36 34 64:.Arm64,.....aarch64_be:.Arm64
9ff00 2c 0a 20 20 20 20 61 61 72 63 68 36 34 5f 33 32 3a 20 41 72 6d 36 34 2c 0a 20 20 20 20 61 72 63 ,.....aarch64_32:.Arm64,.....arc
9ff20 2c 0a 20 20 20 20 61 76 72 2c 0a 20 20 20 20 62 70 66 65 6c 2c 0a 20 20 20 20 62 70 66 65 62 2c ,.....avr,.....bpfel,.....bpfeb,
9ff40 0a 20 20 20 20 68 65 78 61 67 6f 6e 2c 0a 20 20 20 20 6d 69 70 73 2c 0a 20 20 20 20 6d 69 70 73 .....hexagon,.....mips,.....mips
9ff60 65 6c 2c 0a 20 20 20 20 6d 69 70 73 36 34 2c 0a 20 20 20 20 6d 69 70 73 36 34 65 6c 2c 0a 20 20 el,.....mips64,.....mips64el,...
9ff80 20 20 6d 73 70 34 33 30 2c 0a 20 20 20 20 70 6f 77 65 72 70 63 2c 0a 20 20 20 20 70 6f 77 65 72 ..msp430,.....powerpc,.....power
9ffa0 70 63 36 34 2c 0a 20 20 20 20 70 6f 77 65 72 70 63 36 34 6c 65 2c 0a 20 20 20 20 72 36 30 30 2c pc64,.....powerpc64le,.....r600,
9ffc0 0a 20 20 20 20 61 6d 64 67 63 6e 2c 0a 20 20 20 20 72 69 73 63 76 33 32 2c 0a 20 20 20 20 72 69 .....amdgcn,.....riscv32,.....ri
9ffe0 73 63 76 36 34 2c 0a 20 20 20 20 73 70 61 72 63 2c 0a 20 20 20 20 73 70 61 72 63 76 39 2c 0a 20 scv64,.....sparc,.....sparcv9,..
a0000 20 20 20 73 70 61 72 63 65 6c 2c 0a 20 20 20 20 73 33 39 30 78 2c 0a 20 20 20 20 74 63 65 2c 0a ...sparcel,.....s390x,.....tce,.
a0020 20 20 20 20 74 63 65 6c 65 2c 0a 20 20 20 20 74 68 75 6d 62 3a 20 41 72 6d 33 32 2c 0a 20 20 20 ....tcele,.....thumb:.Arm32,....
a0040 20 74 68 75 6d 62 65 62 3a 20 41 72 6d 33 32 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 .thumbeb:.Arm32,.....<span.class
a0060 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 38 36 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 78 38 36 ="tok-type">i386</span>,.....x86
a0080 5f 36 34 2c 0a 20 20 20 20 78 63 6f 72 65 2c 0a 20 20 20 20 6e 76 70 74 78 2c 0a 20 20 20 20 6e _64,.....xcore,.....nvptx,.....n
a00a0 76 70 74 78 36 34 2c 0a 20 20 20 20 6c 65 33 32 2c 0a 20 20 20 20 6c 65 36 34 2c 0a 20 20 20 20 vptx64,.....le32,.....le64,.....
a00c0 61 6d 64 69 6c 2c 0a 20 20 20 20 61 6d 64 69 6c 36 34 2c 0a 20 20 20 20 68 73 61 69 6c 2c 0a 20 amdil,.....amdil64,.....hsail,..
a00e0 20 20 20 68 73 61 69 6c 36 34 2c 0a 20 20 20 20 73 70 69 72 2c 0a 20 20 20 20 73 70 69 72 36 34 ...hsail64,.....spir,.....spir64
a0100 2c 0a 20 20 20 20 6b 61 6c 69 6d 62 61 3a 20 4b 61 6c 69 6d 62 61 2c 0a 20 20 20 20 73 68 61 76 ,.....kalimba:.Kalimba,.....shav
a0120 65 2c 0a 20 20 20 20 6c 61 6e 61 69 2c 0a 20 20 20 20 77 61 73 6d 33 32 2c 0a 20 20 20 20 77 61 e,.....lanai,.....wasm32,.....wa
a0140 73 6d 36 34 2c 0a 20 20 20 20 72 65 6e 64 65 72 73 63 72 69 70 74 33 32 2c 0a 20 20 20 20 72 65 sm64,.....renderscript32,.....re
a0160 6e 64 65 72 73 63 72 69 70 74 36 34 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 nderscript64,.....<span.class="t
a0180 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ok-kw">pub</span>.<span.class="t
a01a0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 72 6d 33 32 20 3d 20 3c 73 70 61 ok-kw">const</span>.Arm32.=.<spa
a01c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 n.class="tok-kw">enum</span>.{..
a01e0 20 20 20 20 20 20 20 76 38 5f 35 61 2c 0a 20 20 20 20 20 20 20 20 76 38 5f 34 61 2c 0a 20 20 20 .......v8_5a,.........v8_4a,....
a0200 20 20 20 20 20 76 38 5f 33 61 2c 0a 20 20 20 20 20 20 20 20 76 38 5f 32 61 2c 0a 20 20 20 20 20 .....v8_3a,.........v8_2a,......
a0220 20 20 20 76 38 5f 31 61 2c 0a 20 20 20 20 20 20 20 20 76 38 2c 0a 20 20 20 20 20 20 20 20 76 38 ...v8_1a,.........v8,.........v8
a0240 72 2c 0a 20 20 20 20 20 20 20 20 76 38 6d 5f 62 61 73 65 6c 69 6e 65 2c 0a 20 20 20 20 20 20 20 r,.........v8m_baseline,........
a0260 20 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 2c 0a 20 20 20 20 20 20 20 20 76 38 5f 31 6d 5f 6d 61 69 .v8m_mainline,.........v8_1m_mai
a0280 6e 6c 69 6e 65 2c 0a 20 20 20 20 20 20 20 20 76 37 2c 0a 20 20 20 20 20 20 20 20 76 37 65 6d 2c nline,.........v7,.........v7em,
a02a0 0a 20 20 20 20 20 20 20 20 76 37 6d 2c 0a 20 20 20 20 20 20 20 20 76 37 73 2c 0a 20 20 20 20 20 .........v7m,.........v7s,......
a02c0 20 20 20 76 37 6b 2c 0a 20 20 20 20 20 20 20 20 76 37 76 65 2c 0a 20 20 20 20 20 20 20 20 76 36 ...v7k,.........v7ve,.........v6
a02e0 2c 0a 20 20 20 20 20 20 20 20 76 36 6d 2c 0a 20 20 20 20 20 20 20 20 76 36 6b 2c 0a 20 20 20 20 ,.........v6m,.........v6k,.....
a0300 20 20 20 20 76 36 74 32 2c 0a 20 20 20 20 20 20 20 20 76 35 2c 0a 20 20 20 20 20 20 20 20 76 35 ....v6t2,.........v5,.........v5
a0320 74 65 2c 0a 20 20 20 20 20 20 20 20 76 34 74 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 3c 73 70 61 te,.........v4t,.....};.....<spa
a0340 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 n.class="tok-kw">pub</span>.<spa
a0360 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 72 n.class="tok-kw">const</span>.Ar
a0380 6d 36 34 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c m64.=.<span.class="tok-kw">enum<
a03a0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 76 38 5f 35 61 2c 0a 20 20 20 20 20 20 20 20 /span>.{.........v8_5a,.........
a03c0 76 38 5f 34 61 2c 0a 20 20 20 20 20 20 20 20 76 38 5f 33 61 2c 0a 20 20 20 20 20 20 20 20 76 38 v8_4a,.........v8_3a,.........v8
a03e0 5f 32 61 2c 0a 20 20 20 20 20 20 20 20 76 38 5f 31 61 2c 0a 20 20 20 20 20 20 20 20 76 38 2c 0a _2a,.........v8_1a,.........v8,.
a0400 20 20 20 20 20 20 20 20 76 38 72 2c 0a 20 20 20 20 20 20 20 20 76 38 6d 5f 62 61 73 65 6c 69 6e ........v8r,.........v8m_baselin
a0420 65 2c 0a 20 20 20 20 20 20 20 20 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 2c 0a 20 20 20 20 7d 3b 0a e,.........v8m_mainline,.....};.
a0440 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 ....<span.class="tok-kw">pub</sp
a0460 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f an>.<span.class="tok-kw">const</
a0480 73 70 61 6e 3e 20 4b 61 6c 69 6d 62 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b span>.Kalimba.=.<span.class="tok
a04a0 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 76 35 2c 0a 20 -kw">enum</span>.{.........v5,..
a04c0 20 20 20 20 20 20 20 76 34 2c 0a 20 20 20 20 20 20 20 20 76 33 2c 0a 20 20 20 20 7d 3b 0a 20 20 .......v4,.........v3,.....};...
a04e0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e ..<span.class="tok-kw">pub</span
a0500 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 >.<span.class="tok-kw">const</sp
a0520 61 6e 3e 20 4d 69 70 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e an>.Mips.=.<span.class="tok-kw">
a0540 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 72 36 2c 0a 20 20 20 20 7d 3b enum</span>.{.........r6,.....};
a0560 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 .};..<span.class="tok-kw">pub</s
a0580 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c pan>.<span.class="tok-kw">const<
a05a0 2f 73 70 61 6e 3e 20 41 62 69 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>.Abi.=.<span.class="tok-kw
a05c0 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 6e 6f 6e 65 2c 0a 20 20 20 20 67 6e ">enum</span>.{.....none,.....gn
a05e0 75 2c 0a 20 20 20 20 67 6e 75 61 62 69 6e 33 32 2c 0a 20 20 20 20 67 6e 75 61 62 69 36 34 2c 0a u,.....gnuabin32,.....gnuabi64,.
a0600 20 20 20 20 67 6e 75 65 61 62 69 2c 0a 20 20 20 20 67 6e 75 65 61 62 69 68 66 2c 0a 20 20 20 20 ....gnueabi,.....gnueabihf,.....
a0620 67 6e 75 78 33 32 2c 0a 20 20 20 20 63 6f 64 65 31 36 2c 0a 20 20 20 20 65 61 62 69 2c 0a 20 20 gnux32,.....code16,.....eabi,...
a0640 20 20 65 61 62 69 68 66 2c 0a 20 20 20 20 65 6c 66 76 31 2c 0a 20 20 20 20 65 6c 66 76 32 2c 0a ..eabihf,.....elfv1,.....elfv2,.
a0660 20 20 20 20 61 6e 64 72 6f 69 64 2c 0a 20 20 20 20 6d 75 73 6c 2c 0a 20 20 20 20 6d 75 73 6c 65 ....android,.....musl,.....musle
a0680 61 62 69 2c 0a 20 20 20 20 6d 75 73 6c 65 61 62 69 68 66 2c 0a 20 20 20 20 6d 73 76 63 2c 0a 20 abi,.....musleabihf,.....msvc,..
a06a0 20 20 20 69 74 61 6e 69 75 6d 2c 0a 20 20 20 20 63 79 67 6e 75 73 2c 0a 20 20 20 20 63 6f 72 65 ...itanium,.....cygnus,.....core
a06c0 63 6c 72 2c 0a 20 20 20 20 73 69 6d 75 6c 61 74 6f 72 2c 0a 20 20 20 20 6d 61 63 61 62 69 2c 0a clr,.....simulator,.....macabi,.
a06e0 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 };..<span.class="tok-kw">pub</sp
a0700 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f an>.<span.class="tok-kw">const</
a0720 73 70 61 6e 3e 20 4f 62 6a 65 63 74 46 6f 72 6d 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 span>.ObjectFormat.=.<span.class
a0740 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 75 6e 6b 6e ="tok-kw">enum</span>.{.....unkn
a0760 6f 77 6e 2c 0a 20 20 20 20 63 6f 66 66 2c 0a 20 20 20 20 65 6c 66 2c 0a 20 20 20 20 6d 61 63 68 own,.....coff,.....elf,.....mach
a0780 6f 2c 0a 20 20 20 20 77 61 73 6d 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f o,.....wasm,.};..<span.class="to
a07a0 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f k-kw">pub</span>.<span.class="to
a07c0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 k-kw">const</span>.GlobalLinkage
a07e0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 .=.<span.class="tok-kw">enum</sp
a0800 61 6e 3e 20 7b 0a 20 20 20 20 49 6e 74 65 72 6e 61 6c 2c 0a 20 20 20 20 53 74 72 6f 6e 67 2c 0a an>.{.....Internal,.....Strong,.
a0820 20 20 20 20 57 65 61 6b 2c 0a 20 20 20 20 4c 69 6e 6b 4f 6e 63 65 2c 0a 7d 3b 0a 0a 3c 73 70 61 ....Weak,.....LinkOnce,.};..<spa
a0840 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 n.class="tok-kw">pub</span>.<spa
a0860 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 74 n.class="tok-kw">const</span>.At
a0880 6f 6d 69 63 4f 72 64 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 omicOrder.=.<span.class="tok-kw"
a08a0 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 55 6e 6f 72 64 65 72 65 64 2c 0a 20 20 >enum</span>.{.....Unordered,...
a08c0 20 20 4d 6f 6e 6f 74 6f 6e 69 63 2c 0a 20 20 20 20 41 63 71 75 69 72 65 2c 0a 20 20 20 20 52 65 ..Monotonic,.....Acquire,.....Re
a08e0 6c 65 61 73 65 2c 0a 20 20 20 20 41 63 71 52 65 6c 2c 0a 20 20 20 20 53 65 71 43 73 74 2c 0a 7d lease,.....AcqRel,.....SeqCst,.}
a0900 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 ;..<span.class="tok-kw">pub</spa
a0920 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 n>.<span.class="tok-kw">const</s
a0940 70 61 6e 3e 20 41 74 6f 6d 69 63 52 6d 77 4f 70 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 pan>.AtomicRmwOp.=.<span.class="
a0960 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 58 63 68 67 2c 0a tok-kw">enum</span>.{.....Xchg,.
a0980 20 20 20 20 41 64 64 2c 0a 20 20 20 20 53 75 62 2c 0a 20 20 20 20 41 6e 64 2c 0a 20 20 20 20 4e ....Add,.....Sub,.....And,.....N
a09a0 61 6e 64 2c 0a 20 20 20 20 4f 72 2c 0a 20 20 20 20 58 6f 72 2c 0a 20 20 20 20 4d 61 78 2c 0a 20 and,.....Or,.....Xor,.....Max,..
a09c0 20 20 20 4d 69 6e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ...Min,.};..<span.class="tok-kw"
a09e0 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 >pub</span>.<span.class="tok-kw"
a0a00 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 4d 6f 64 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 >const</span>.Mode.=.<span.class
a0a20 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 44 65 62 75 ="tok-kw">enum</span>.{.....Debu
a0a40 67 2c 0a 20 20 20 20 52 65 6c 65 61 73 65 53 61 66 65 2c 0a 20 20 20 20 52 65 6c 65 61 73 65 46 g,.....ReleaseSafe,.....ReleaseF
a0a60 61 73 74 2c 0a 20 20 20 20 52 65 6c 65 61 73 65 53 6d 61 6c 6c 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e ast,.....ReleaseSmall,.};..<span
a0a80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e .class="tok-kw">pub</span>.<span
a0aa0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 54 79 70 .class="tok-kw">const</span>.Typ
a0ac0 65 49 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c eId.=.<span.class="tok-kw">enum<
a0ae0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 54 79 70 65 2c 0a 20 20 20 20 56 6f 69 64 2c 0a 20 20 20 /span>.{.....Type,.....Void,....
a0b00 20 42 6f 6f 6c 2c 0a 20 20 20 20 4e 6f 52 65 74 75 72 6e 2c 0a 20 20 20 20 49 6e 74 2c 0a 20 20 .Bool,.....NoReturn,.....Int,...
a0b20 20 20 46 6c 6f 61 74 2c 0a 20 20 20 20 50 6f 69 6e 74 65 72 2c 0a 20 20 20 20 41 72 72 61 79 2c ..Float,.....Pointer,.....Array,
a0b40 0a 20 20 20 20 53 74 72 75 63 74 2c 0a 20 20 20 20 43 6f 6d 70 74 69 6d 65 46 6c 6f 61 74 2c 0a .....Struct,.....ComptimeFloat,.
a0b60 20 20 20 20 43 6f 6d 70 74 69 6d 65 49 6e 74 2c 0a 20 20 20 20 55 6e 64 65 66 69 6e 65 64 2c 0a ....ComptimeInt,.....Undefined,.
a0b80 20 20 20 20 4e 75 6c 6c 2c 0a 20 20 20 20 4f 70 74 69 6f 6e 61 6c 2c 0a 20 20 20 20 45 72 72 6f ....Null,.....Optional,.....Erro
a0ba0 72 55 6e 69 6f 6e 2c 0a 20 20 20 20 45 72 72 6f 72 53 65 74 2c 0a 20 20 20 20 45 6e 75 6d 2c 0a rUnion,.....ErrorSet,.....Enum,.
a0bc0 20 20 20 20 55 6e 69 6f 6e 2c 0a 20 20 20 20 46 6e 2c 0a 20 20 20 20 42 6f 75 6e 64 46 6e 2c 0a ....Union,.....Fn,.....BoundFn,.
a0be0 20 20 20 20 41 72 67 54 75 70 6c 65 2c 0a 20 20 20 20 4f 70 61 71 75 65 2c 0a 20 20 20 20 46 72 ....ArgTuple,.....Opaque,.....Fr
a0c00 61 6d 65 2c 0a 20 20 20 20 41 6e 79 46 72 61 6d 65 2c 0a 20 20 20 20 56 65 63 74 6f 72 2c 0a 20 ame,.....AnyFrame,.....Vector,..
a0c20 20 20 20 45 6e 75 6d 4c 69 74 65 72 61 6c 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ...EnumLiteral,.};..<span.class=
a0c40 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d "tok-kw">pub</span>.<span.class=
a0c60 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 54 79 70 65 49 6e 66 6f 20 3d "tok-kw">const</span>.TypeInfo.=
a0c80 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 .<span.class="tok-kw">union</spa
a0ca0 6e 3e 28 54 79 70 65 49 64 29 20 7b 0a 20 20 20 20 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 n>(TypeId).{.....Type:.<span.cla
a0cc0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 56 ss="tok-type">void</span>,.....V
a0ce0 6f 69 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 oid:.<span.class="tok-type">void
a0d00 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 42 6f 6f 6c 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>,.....Bool:.<span.class="
a0d20 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 4e 6f 52 65 74 tok-type">void</span>,.....NoRet
a0d40 75 72 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 urn:.<span.class="tok-type">void
a0d60 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 49 6e 74 3a 20 49 6e 74 2c 0a 20 20 20 20 46 6c 6f 61 74 </span>,.....Int:.Int,.....Float
a0d80 3a 20 46 6c 6f 61 74 2c 0a 20 20 20 20 50 6f 69 6e 74 65 72 3a 20 50 6f 69 6e 74 65 72 2c 0a 20 :.Float,.....Pointer:.Pointer,..
a0da0 20 20 20 41 72 72 61 79 3a 20 41 72 72 61 79 2c 0a 20 20 20 20 53 74 72 75 63 74 3a 20 53 74 72 ...Array:.Array,.....Struct:.Str
a0dc0 75 63 74 2c 0a 20 20 20 20 43 6f 6d 70 74 69 6d 65 46 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 63 6c uct,.....ComptimeFloat:.<span.cl
a0de0 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 ass="tok-type">void</span>,.....
a0e00 43 6f 6d 70 74 69 6d 65 49 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ComptimeInt:.<span.class="tok-ty
a0e20 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 55 6e 64 65 66 69 6e 65 64 3a 20 pe">void</span>,.....Undefined:.
a0e40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 <span.class="tok-type">void</spa
a0e60 6e 3e 2c 0a 20 20 20 20 4e 75 6c 6c 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 n>,.....Null:.<span.class="tok-t
a0e80 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 4f 70 74 69 6f 6e 61 6c 3a 20 ype">void</span>,.....Optional:.
a0ea0 4f 70 74 69 6f 6e 61 6c 2c 0a 20 20 20 20 45 72 72 6f 72 55 6e 69 6f 6e 3a 20 45 72 72 6f 72 55 Optional,.....ErrorUnion:.ErrorU
a0ec0 6e 69 6f 6e 2c 0a 20 20 20 20 45 72 72 6f 72 53 65 74 3a 20 45 72 72 6f 72 53 65 74 2c 0a 20 20 nion,.....ErrorSet:.ErrorSet,...
a0ee0 20 20 45 6e 75 6d 3a 20 45 6e 75 6d 2c 0a 20 20 20 20 55 6e 69 6f 6e 3a 20 55 6e 69 6f 6e 2c 0a ..Enum:.Enum,.....Union:.Union,.
a0f00 20 20 20 20 46 6e 3a 20 46 6e 2c 0a 20 20 20 20 42 6f 75 6e 64 46 6e 3a 20 46 6e 2c 0a 20 20 20 ....Fn:.Fn,.....BoundFn:.Fn,....
a0f20 20 41 72 67 54 75 70 6c 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .ArgTuple:.<span.class="tok-type
a0f40 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 4f 70 61 71 75 65 3a 20 3c 73 70 61 6e ">void</span>,.....Opaque:.<span
a0f60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 .class="tok-type">void</span>,..
a0f80 20 20 20 46 72 61 6d 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ...Frame:.<span.class="tok-type"
a0fa0 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 41 6e 79 46 72 61 6d 65 3a 20 41 6e 79 46 >void</span>,.....AnyFrame:.AnyF
a0fc0 72 61 6d 65 2c 0a 20 20 20 20 56 65 63 74 6f 72 3a 20 56 65 63 74 6f 72 2c 0a 20 20 20 20 45 6e rame,.....Vector:.Vector,.....En
a0fe0 75 6d 4c 69 74 65 72 61 6c 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 umLiteral:.<span.class="tok-type
a1000 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 2c 0a 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">void</span>,.......<span.class
a1020 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 ="tok-kw">pub</span>.<span.class
a1040 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 49 6e 74 20 3d 20 3c 73 70 ="tok-kw">const</span>.Int.=.<sp
a1060 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 an.class="tok-kw">struct</span>.
a1080 7b 0a 20 20 20 20 20 20 20 20 69 73 5f 73 69 67 6e 65 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 {.........is_signed:.<span.class
a10a0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 ="tok-type">bool</span>,........
a10c0 20 62 69 74 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f .bits:.<span.class="tok-type">co
a10e0 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c mptime_int</span>,.....};......<
a1100 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c span.class="tok-kw">pub</span>.<
a1120 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
a1140 20 46 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 .Float.=.<span.class="tok-kw">st
a1160 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 62 69 74 73 3a 20 3c 73 70 61 ruct</span>.{.........bits:.<spa
a1180 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c n.class="tok-type">comptime_int<
a11a0 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d /span>,.....};......<span.class=
a11c0 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d "tok-kw">pub</span>.<span.class=
a11e0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 50 6f 69 6e 74 65 72 20 3d 20 "tok-kw">const</span>.Pointer.=.
a1200 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 <span.class="tok-kw">struct</spa
a1220 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 73 69 7a 65 3a 20 53 69 7a 65 2c 0a 20 20 20 20 20 20 20 n>.{.........size:.Size,........
a1240 20 69 73 5f 63 6f 6e 73 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 .is_const:.<span.class="tok-type
a1260 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 69 73 5f 76 6f 6c 61 74 69 ">bool</span>,.........is_volati
a1280 6c 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c le:.<span.class="tok-type">bool<
a12a0 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 61 6c 69 67 6e 6d 65 6e 74 3a 20 3c 73 70 61 6e /span>,.........alignment:.<span
a12c0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f .class="tok-type">comptime_int</
a12e0 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 span>,.........child:.<span.clas
a1300 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 s="tok-type">type</span>,.......
a1320 20 20 69 73 5f 61 6c 6c 6f 77 7a 65 72 6f 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ..is_allowzero:.<span.class="tok
a1340 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 -type">bool</span>,..........<sp
a1360 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 an.class="tok-kw">pub</span>.<sp
a1380 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 an.class="tok-kw">const</span>.S
a13a0 69 7a 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c ize.=.<span.class="tok-kw">enum<
a13c0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 4f 6e 65 2c 0a 20 20 20 20 20 20 /span>.{.............One,.......
a13e0 20 20 20 20 20 20 4d 61 6e 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 6c 69 63 65 2c 0a 20 ......Many,.............Slice,..
a1400 20 20 20 20 20 20 20 20 20 20 20 43 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 7d 3b 0a ...........C,.........};.....};.
a1420 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 .....<span.class="tok-kw">pub</s
a1440 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c pan>.<span.class="tok-kw">const<
a1460 2f 73 70 61 6e 3e 20 41 72 72 61 79 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d /span>.Array.=.<span.class="tok-
a1480 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6c 65 6e 3a kw">struct</span>.{.........len:
a14a0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 .<span.class="tok-type">comptime
a14c0 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 3a 20 3c 73 70 61 _int</span>,.........child:.<spa
a14e0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a n.class="tok-type">type</span>,.
a1500 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ....};......<span.class="tok-kw"
a1520 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 >pub</span>.<span.class="tok-kw"
a1540 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 6f 6e 74 61 69 6e 65 72 4c 61 79 6f 75 74 20 3d 20 >const</span>.ContainerLayout.=.
a1560 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e <span.class="tok-kw">enum</span>
a1580 20 7b 0a 20 20 20 20 20 20 20 20 41 75 74 6f 2c 0a 20 20 20 20 20 20 20 20 45 78 74 65 72 6e 2c .{.........Auto,.........Extern,
a15a0 0a 20 20 20 20 20 20 20 20 50 61 63 6b 65 64 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 .........Packed,.....};......<sp
a15c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 an.class="tok-kw">pub</span>.<sp
a15e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 an.class="tok-kw">const</span>.S
a1600 74 72 75 63 74 46 69 65 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 tructField.=.<span.class="tok-kw
a1620 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 3a 20 ">struct</span>.{.........name:.
a1640 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 []<span.class="tok-kw">const</sp
a1660 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 an>.<span.class="tok-type">u8</s
a1680 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 6f 66 66 73 65 74 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 pan>,.........offset:.?<span.cla
a16a0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e ss="tok-type">comptime_int</span
a16c0 3e 2c 0a 20 20 20 20 20 20 20 20 66 69 65 6c 64 5f 74 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 >,.........field_type:.<span.cla
a16e0 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d ss="tok-type">type</span>,.....}
a1700 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c ;......<span.class="tok-kw">pub<
a1720 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 /span>.<span.class="tok-kw">cons
a1740 74 3c 2f 73 70 61 6e 3e 20 53 74 72 75 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t</span>.Struct.=.<span.class="t
a1760 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6c ok-kw">struct</span>.{.........l
a1780 61 79 6f 75 74 3a 20 43 6f 6e 74 61 69 6e 65 72 4c 61 79 6f 75 74 2c 0a 20 20 20 20 20 20 20 20 ayout:.ContainerLayout,.........
a17a0 66 69 65 6c 64 73 3a 20 5b 5d 53 74 72 75 63 74 46 69 65 6c 64 2c 0a 20 20 20 20 20 20 20 20 64 fields:.[]StructField,.........d
a17c0 65 63 6c 73 3a 20 5b 5d 44 65 63 6c 61 72 61 74 69 6f 6e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 ecls:.[]Declaration,.....};.....
a17e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">pub</span>
a1800 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
a1820 6e 3e 20 4f 70 74 69 6f 6e 61 6c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b n>.Optional.=.<span.class="tok-k
a1840 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 w">struct</span>.{.........child
a1860 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 :.<span.class="tok-type">type</s
a1880 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>,.....};......<span.class="t
a18a0 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ok-kw">pub</span>.<span.class="t
a18c0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 72 72 6f 72 55 6e 69 6f 6e 20 3d ok-kw">const</span>.ErrorUnion.=
a18e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 .<span.class="tok-kw">struct</sp
a1900 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f 73 65 74 3a 20 3c 73 70 61 6e 20 63 an>.{.........error_set:.<span.c
a1920 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 lass="tok-type">type</span>,....
a1940 20 20 20 20 20 70 61 79 6c 6f 61 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 .....payload:.<span.class="tok-t
a1960 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 ype">type</span>,.....};......<s
a1980 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
a19a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
a19c0 45 72 72 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 Error.=.<span.class="tok-kw">str
a19e0 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 uct</span>.{.........name:.[]<sp
a1a00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c an.class="tok-kw">const</span>.<
a1a20 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c span.class="tok-type">u8</span>,
a1a40 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .........value:.<span.class="tok
a1a60 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 -type">comptime_int</span>,.....
a1a80 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 };......<span.class="tok-kw">pub
a1aa0 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e </span>.<span.class="tok-kw">con
a1ac0 73 74 3c 2f 73 70 61 6e 3e 20 45 72 72 6f 72 53 65 74 20 3d 20 3f 5b 5d 45 72 72 6f 72 3b 0a 0a st</span>.ErrorSet.=.?[]Error;..
a1ae0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 ....<span.class="tok-kw">pub</sp
a1b00 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f an>.<span.class="tok-kw">const</
a1b20 73 70 61 6e 3e 20 45 6e 75 6d 46 69 65 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>.EnumField.=.<span.class="t
a1b40 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6e ok-kw">struct</span>.{.........n
a1b60 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 ame:.[]<span.class="tok-kw">cons
a1b80 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e t</span>.<span.class="tok-type">
a1ba0 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 u8</span>,.........value:.<span.
a1bc0 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 class="tok-type">comptime_int</s
a1be0 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>,.....};......<span.class="t
a1c00 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ok-kw">pub</span>.<span.class="t
a1c20 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 45 6e 75 6d 20 3d 20 3c 73 70 61 6e ok-kw">const</span>.Enum.=.<span
a1c40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a .class="tok-kw">struct</span>.{.
a1c60 20 20 20 20 20 20 20 20 6c 61 79 6f 75 74 3a 20 43 6f 6e 74 61 69 6e 65 72 4c 61 79 6f 75 74 2c ........layout:.ContainerLayout,
a1c80 0a 20 20 20 20 20 20 20 20 74 61 67 5f 74 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .........tag_type:.<span.class="
a1ca0 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 66 tok-type">type</span>,.........f
a1cc0 69 65 6c 64 73 3a 20 5b 5d 45 6e 75 6d 46 69 65 6c 64 2c 0a 20 20 20 20 20 20 20 20 64 65 63 6c ields:.[]EnumField,.........decl
a1ce0 73 3a 20 5b 5d 44 65 63 6c 61 72 61 74 69 6f 6e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 s:.[]Declaration,.....};......<s
a1d00 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
a1d20 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
a1d40 55 6e 69 6f 6e 46 69 65 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 UnionField.=.<span.class="tok-kw
a1d60 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 3a 20 ">struct</span>.{.........name:.
a1d80 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 []<span.class="tok-kw">const</sp
a1da0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 an>.<span.class="tok-type">u8</s
a1dc0 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 65 6e 75 6d 5f 66 69 65 6c 64 3a 20 3f 45 6e 75 6d 46 pan>,.........enum_field:.?EnumF
a1de0 69 65 6c 64 2c 0a 20 20 20 20 20 20 20 20 66 69 65 6c 64 5f 74 79 70 65 3a 20 3c 73 70 61 6e 20 ield,.........field_type:.<span.
a1e00 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 class="tok-type">type</span>,...
a1e20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 ..};......<span.class="tok-kw">p
a1e40 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ub</span>.<span.class="tok-kw">c
a1e60 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 55 6e 69 6f 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d onst</span>.Union.=.<span.class=
a1e80 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 "tok-kw">struct</span>.{........
a1ea0 20 6c 61 79 6f 75 74 3a 20 43 6f 6e 74 61 69 6e 65 72 4c 61 79 6f 75 74 2c 0a 20 20 20 20 20 20 .layout:.ContainerLayout,.......
a1ec0 20 20 74 61 67 5f 74 79 70 65 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ..tag_type:.?<span.class="tok-ty
a1ee0 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 66 69 65 6c 64 73 3a pe">type</span>,.........fields:
a1f00 20 5b 5d 55 6e 69 6f 6e 46 69 65 6c 64 2c 0a 20 20 20 20 20 20 20 20 64 65 63 6c 73 3a 20 5b 5d .[]UnionField,.........decls:.[]
a1f20 44 65 63 6c 61 72 61 74 69 6f 6e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 Declaration,.....};......<span.c
a1f40 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 lass="tok-kw">pub</span>.<span.c
a1f60 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 61 6c 6c 69 lass="tok-kw">const</span>.Calli
a1f80 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ngConvention.=.<span.class="tok-
a1fa0 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 55 6e 73 70 65 63 kw">enum</span>.{.........Unspec
a1fc0 69 66 69 65 64 2c 0a 20 20 20 20 20 20 20 20 43 2c 0a 20 20 20 20 20 20 20 20 43 6f 6c 64 2c 0a ified,.........C,.........Cold,.
a1fe0 20 20 20 20 20 20 20 20 4e 61 6b 65 64 2c 0a 20 20 20 20 20 20 20 20 53 74 64 63 61 6c 6c 2c 0a ........Naked,.........Stdcall,.
a2000 20 20 20 20 20 20 20 20 41 73 79 6e 63 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e ........Async,.....};......<span
a2020 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e .class="tok-kw">pub</span>.<span
a2040 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6e 41 .class="tok-kw">const</span>.FnA
a2060 72 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 rg.=.<span.class="tok-kw">struct
a2080 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 69 73 5f 67 65 6e 65 72 69 63 3a 20 3c 73 </span>.{.........is_generic:.<s
a20a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e pan.class="tok-type">bool</span>
a20c0 2c 0a 20 20 20 20 20 20 20 20 69 73 5f 6e 6f 61 6c 69 61 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 ,.........is_noalias:.<span.clas
a20e0 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 s="tok-type">bool</span>,.......
a2100 20 20 61 72 67 5f 74 79 70 65 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ..arg_type:.?<span.class="tok-ty
a2120 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 pe">type</span>,.....};......<sp
a2140 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 an.class="tok-kw">pub</span>.<sp
a2160 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 an.class="tok-kw">const</span>.F
a2180 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c n.=.<span.class="tok-kw">struct<
a21a0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 63 61 6c 6c 69 6e 67 5f 63 6f 6e 76 65 6e 74 /span>.{.........calling_convent
a21c0 69 6f 6e 3a 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 ion:.CallingConvention,.........
a21e0 69 73 5f 67 65 6e 65 72 69 63 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 is_generic:.<span.class="tok-typ
a2200 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 69 73 5f 76 61 72 5f 61 e">bool</span>,.........is_var_a
a2220 72 67 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c rgs:.<span.class="tok-type">bool
a2240 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 5f 74 79 70 65 3a 20 3f 3c </span>,.........return_type:.?<
a2260 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e span.class="tok-type">type</span
a2280 3e 2c 0a 20 20 20 20 20 20 20 20 61 72 67 73 3a 20 5b 5d 46 6e 41 72 67 2c 0a 20 20 20 20 7d 3b >,.........args:.[]FnArg,.....};
a22a0 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f ......<span.class="tok-kw">pub</
a22c0 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
a22e0 3c 2f 73 70 61 6e 3e 20 41 6e 79 46 72 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>.AnyFrame.=.<span.class="
a2300 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 tok-kw">struct</span>.{.........
a2320 63 68 69 6c 64 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 child:.?<span.class="tok-type">t
a2340 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ype</span>,.....};......<span.cl
a2360 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ass="tok-kw">pub</span>.<span.cl
a2380 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 56 65 63 74 6f 72 ass="tok-kw">const</span>.Vector
a23a0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f .=.<span.class="tok-kw">struct</
a23c0 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6c 65 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 span>.{.........len:.<span.class
a23e0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c ="tok-type">comptime_int</span>,
a2400 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .........child:.<span.class="tok
a2420 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 -type">type</span>,.....};......
a2440 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 <span.class="tok-kw">pub</span>.
a2460 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e <span.class="tok-kw">const</span
a2480 3e 20 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >.Declaration.=.<span.class="tok
a24a0 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 6e 61 6d -kw">struct</span>.{.........nam
a24c0 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c e:.[]<span.class="tok-kw">const<
a24e0 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 /span>.<span.class="tok-type">u8
a2500 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 69 73 5f 70 75 62 3a 20 3c 73 70 61 6e 20 63 </span>,.........is_pub:.<span.c
a2520 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 lass="tok-type">bool</span>,....
a2540 20 20 20 20 20 64 61 74 61 3a 20 44 61 74 61 2c 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 .....data:.Data,..........<span.
a2560 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 class="tok-kw">pub</span>.<span.
a2580 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 44 61 74 61 class="tok-kw">const</span>.Data
a25a0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 .=.<span.class="tok-kw">union</s
a25c0 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f pan>(<span.class="tok-kw">enum</
a25e0 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 79 70 65 3a 20 3c 73 70 61 6e span>).{.............Type:.<span
a2600 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 .class="tok-type">type</span>,..
a2620 20 20 20 20 20 20 20 20 20 20 20 56 61 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ...........Var:.<span.class="tok
a2640 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 -type">type</span>,.............
a2660 46 6e 3a 20 46 6e 44 65 63 6c 2c 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 Fn:.FnDecl,..............<span.c
a2680 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 lass="tok-kw">pub</span>.<span.c
a26a0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6e 44 65 63 lass="tok-kw">const</span>.FnDec
a26c0 6c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c l.=.<span.class="tok-kw">struct<
a26e0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6e 5f 74 79 70 65 /span>.{.................fn_type
a2700 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 :.<span.class="tok-type">type</s
a2720 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 6c 69 6e 65 5f 74 79 70 pan>,.................inline_typ
a2740 65 3a 20 49 6e 6c 69 6e 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6c 6c 69 e:.Inline,.................calli
a2760 6e 67 5f 63 6f 6e 76 65 6e 74 69 6f 6e 3a 20 43 61 6c 6c 69 6e 67 43 6f 6e 76 65 6e 74 69 6f 6e ng_convention:.CallingConvention
a2780 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 5f 76 61 72 5f 61 72 67 73 3a 20 3c ,.................is_var_args:.<
a27a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e span.class="tok-type">bool</span
a27c0 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 5f 65 78 74 65 72 6e 3a 20 3c 73 >,.................is_extern:.<s
a27e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e pan.class="tok-type">bool</span>
a2800 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 5f 65 78 70 6f 72 74 3a 20 3c 73 70 ,.................is_export:.<sp
a2820 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c an.class="tok-type">bool</span>,
a2840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 62 5f 6e 61 6d 65 3a 20 3f 5b 5d 3c 73 .................lib_name:.?[]<s
a2860 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
a2880 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e <span.class="tok-type">u8</span>
a28a0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 5f 74 79 70 65 3a 20 3c ,.................return_type:.<
a28c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e span.class="tok-type">type</span
a28e0 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 5f 6e 61 6d 65 73 3a 20 5b 5d >,.................arg_names:.[]
a2900 5b 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 [].<span.class="tok-kw">const</s
a2920 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f pan>.<span.class="tok-type">u8</
a2940 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c span>,..................<span.cl
a2960 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ass="tok-kw">pub</span>.<span.cl
a2980 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 49 6e 6c 69 6e 65 ass="tok-kw">const</span>.Inline
a29a0 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 .=.<span.class="tok-kw">enum</sp
a29c0 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 75 74 6f 2c 0a an>.{.....................Auto,.
a29e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 6c 77 61 79 73 2c 0a 20 20 20 20 ....................Always,.....
a2a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 65 76 65 72 2c 0a 20 20 20 20 20 20 20 20 20 ................Never,..........
a2a20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 .......};.............};........
a2a40 20 7d 3b 0a 20 20 20 20 7d 3b 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .};.....};.};..<span.class="tok-
a2a60 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d kw">pub</span>.<span.class="tok-
a2a80 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 46 6c 6f 61 74 4d 6f 64 65 20 3d 20 3c 73 70 kw">const</span>.FloatMode.=.<sp
a2aa0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a an.class="tok-kw">enum</span>.{.
a2ac0 20 20 20 20 53 74 72 69 63 74 2c 0a 20 20 20 20 4f 70 74 69 6d 69 7a 65 64 2c 0a 7d 3b 0a 0a 3c ....Strict,.....Optimized,.};..<
a2ae0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c span.class="tok-kw">pub</span>.<
a2b00 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
a2b20 20 45 6e 64 69 61 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 .Endian.=.<span.class="tok-kw">e
a2b40 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 42 69 67 2c 0a 20 20 20 20 4c 69 74 74 6c 65 num</span>.{.....Big,.....Little
a2b60 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f ,.};..<span.class="tok-kw">pub</
a2b80 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
a2ba0 3c 2f 73 70 61 6e 3e 20 56 65 72 73 69 6f 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 </span>.Version.=.<span.class="t
a2bc0 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 6d 61 6a 6f 72 ok-kw">struct</span>.{.....major
a2be0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 :.<span.class="tok-type">u32</sp
a2c00 61 6e 3e 2c 0a 20 20 20 20 6d 69 6e 6f 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b an>,.....minor:.<span.class="tok
a2c20 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 70 61 74 63 68 3a 20 3c 73 -type">u32</span>,.....patch:.<s
a2c40 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c pan.class="tok-type">u32</span>,
a2c60 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 .};..<span.class="tok-kw">pub</s
a2c80 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c pan>.<span.class="tok-kw">const<
a2ca0 2f 73 70 61 6e 3e 20 53 75 62 53 79 73 74 65 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 /span>.SubSystem.=.<span.class="
a2cc0 74 6f 6b 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 43 6f 6e 73 6f 6c tok-kw">enum</span>.{.....Consol
a2ce0 65 2c 0a 20 20 20 20 57 69 6e 64 6f 77 73 2c 0a 20 20 20 20 50 6f 73 69 78 2c 0a 20 20 20 20 4e e,.....Windows,.....Posix,.....N
a2d00 61 74 69 76 65 2c 0a 20 20 20 20 45 66 69 41 70 70 6c 69 63 61 74 69 6f 6e 2c 0a 20 20 20 20 45 ative,.....EfiApplication,.....E
a2d20 66 69 42 6f 6f 74 53 65 72 76 69 63 65 44 72 69 76 65 72 2c 0a 20 20 20 20 45 66 69 52 6f 6d 2c fiBootServiceDriver,.....EfiRom,
a2d40 0a 20 20 20 20 45 66 69 52 75 6e 74 69 6d 65 44 72 69 76 65 72 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e .....EfiRuntimeDriver,.};..<span
a2d60 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e .class="tok-kw">pub</span>.<span
a2d80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 6e 64 .class="tok-kw">const</span>.end
a2da0 69 61 6e 20 3d 20 45 6e 64 69 61 6e 2e 4c 69 74 74 6c 65 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ian.=.Endian.Little;.<span.class
a2dc0 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 ="tok-kw">pub</span>.<span.class
a2de0 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 73 5f 74 65 73 74 20 3d ="tok-kw">const</span>.is_test.=
a2e00 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 .<span.class="tok-null">false</s
a2e20 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f pan>;.<span.class="tok-kw">pub</
a2e40 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
a2e60 3c 2f 73 70 61 6e 3e 20 73 69 6e 67 6c 65 5f 74 68 72 65 61 64 65 64 20 3d 20 3c 73 70 61 6e 20 </span>.single_threaded.=.<span.
a2e80 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a 3c class="tok-null">false</span>;.<
a2ea0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c span.class="tok-kw">pub</span>.<
a2ec0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e span.class="tok-kw">const</span>
a2ee0 20 6f 73 20 3d 20 4f 73 2e 6c 69 6e 75 78 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .os.=.Os.linux;.<span.class="tok
a2f00 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b -kw">pub</span>.<span.class="tok
a2f20 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 63 68 20 3d 20 41 72 63 68 2e 78 38 -kw">const</span>.arch.=.Arch.x8
a2f40 36 5f 36 34 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 6_64;.<span.class="tok-kw">pub</
a2f60 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 span>.<span.class="tok-kw">const
a2f80 3c 2f 73 70 61 6e 3e 20 61 62 69 20 3d 20 41 62 69 2e 67 6e 75 3b 0a 3c 73 70 61 6e 20 63 6c 61 </span>.abi.=.Abi.gnu;.<span.cla
a2fa0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">pub</span>.<span.cla
a2fc0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 67 6c 69 62 63 5f 76 ss="tok-kw">const</span>.glibc_v
a2fe0 65 72 73 69 6f 6e 3a 20 3f 56 65 72 73 69 6f 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ersion:.?Version.=.<span.class="
a3000 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 tok-null">null</span>;.<span.cla
a3020 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">pub</span>.<span.cla
a3040 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 62 6a 65 63 74 5f ss="tok-kw">const</span>.object_
a3060 66 6f 72 6d 61 74 20 3d 20 4f 62 6a 65 63 74 46 6f 72 6d 61 74 2e 65 6c 66 3b 0a 3c 73 70 61 6e format.=.ObjectFormat.elf;.<span
a3080 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e .class="tok-kw">pub</span>.<span
a30a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 6f 64 .class="tok-kw">const</span>.mod
a30c0 65 20 3d 20 4d 6f 64 65 2e 44 65 62 75 67 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e.=.Mode.Debug;.<span.class="tok
a30e0 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b -kw">pub</span>.<span.class="tok
a3100 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6c 69 6e 6b 5f 6c 69 62 63 20 3d 20 3c 73 -kw">const</span>.link_libc.=.<s
a3120 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e pan.class="tok-null">false</span
a3140 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 >;.<span.class="tok-kw">pub</spa
a3160 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 n>.<span.class="tok-kw">const</s
a3180 70 61 6e 3e 20 68 61 76 65 5f 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 69 6e 67 20 3d pan>.have_error_return_tracing.=
a31a0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 .<span.class="tok-null">true</sp
a31c0 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 an>;.<span.class="tok-kw">pub</s
a31e0 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c pan>.<span.class="tok-kw">const<
a3200 2f 73 70 61 6e 3e 20 76 61 6c 67 72 69 6e 64 5f 73 75 70 70 6f 72 74 20 3d 20 3c 73 70 61 6e 20 /span>.valgrind_support.=.<span.
a3220 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 class="tok-null">true</span>;.<s
a3240 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 pan.class="tok-kw">pub</span>.<s
a3260 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 pan.class="tok-kw">const</span>.
a3280 70 6f 73 69 74 69 6f 6e 5f 69 6e 64 65 70 65 6e 64 65 6e 74 5f 63 6f 64 65 20 3d 20 3c 73 70 61 position_independent_code.=.<spa
a32a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b n.class="tok-null">false</span>;
a32c0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e .<span.class="tok-kw">pub</span>
a32e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
a3300 6e 3e 20 73 74 72 69 70 5f 64 65 62 75 67 5f 69 6e 66 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 n>.strip_debug_info.=.<span.clas
a3320 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 s="tok-null">false</span>;</code
a3340 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 ></pre>.......<p>See.also:</p><u
a3360 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 42 75 69 6c 64 2d 4d 6f 64 65 22 3e 42 75 69 l>.<li><a.href="#Build-Mode">Bui
a3380 6c 64 20 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 ld.Mode</a></li>.</ul>..........
a33a0 20 20 20 20 20 3c 68 31 20 69 64 3d 22 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 3e 3c .....<h1.id="Root-Source-File"><
a33c0 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 3e 52 a.href="#toc-Root-Source-File">R
a33e0 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 oot.Source.File</a>.<a.class="hd
a3400 72 22 20 68 72 65 66 3d 22 23 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 3e c2 a7 3c 2f r".href="#Root-Source-File">..</
a3420 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 a></h1>........<p>TODO:.explain.
a3440 68 6f 77 20 72 6f 6f 74 20 73 6f 75 72 63 65 20 66 69 6c 65 20 66 69 6e 64 73 20 6f 74 68 65 72 how.root.source.file.finds.other
a3460 20 66 69 6c 65 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 70 75 62 20 66 6e .files</p>.......<p>TODO:.pub.fn
a3480 20 6d 61 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 70 75 62 20 66 6e 20 .main</p>.......<p>TODO:.pub.fn.
a34a0 70 61 6e 69 63 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 69 66 20 6c 69 6e 6b panic</p>.......<p>TODO:.if.link
a34c0 69 6e 67 20 77 69 74 68 20 6c 69 62 63 20 79 6f 75 20 63 61 6e 20 75 73 65 20 65 78 70 6f 72 74 ing.with.libc.you.can.use.export
a34e0 20 66 6e 20 6d 61 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6f 72 64 65 .fn.main</p>.......<p>TODO:.orde
a3500 72 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 r.independent.top.level.declarat
a3520 69 6f 6e 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6c 61 7a 79 20 61 6e 61 ions</p>.......<p>TODO:.lazy.ana
a3540 6c 79 73 69 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 75 73 69 6e 67 20 63 lysis</p>.......<p>TODO:.using.c
a3560 6f 6d 70 74 69 6d 65 20 7b 20 5f 20 3d 20 40 69 6d 70 6f 72 74 28 29 20 7d 3c 2f 70 3e 0a 20 20 omptime.{._.=.@import().}</p>...
a3580 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 5a 69 67 2d 54 65 73 74 22 3e 3c 61 20 ...........<h1.id="Zig-Test"><a.
a35a0 68 72 65 66 3d 22 23 74 6f 63 2d 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 href="#toc-Zig-Test">Zig.Test</a
a35c0 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 5a 69 67 2d 54 65 73 74 >.<a.class="hdr".href="#Zig-Test
a35e0 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c ">..</a></h1>........<p>.......<
a3600 63 6f 64 65 3e 7a 69 67 20 74 65 73 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 74 6f 6f 6c 20 74 code>zig.test</code>.is.a.tool.t
a3620 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 71 75 69 63 6b 6c 79 20 62 75 69 6c 64 hat.can.be.used.to.quickly.build
a3640 20 61 6e 64 20 72 75 6e 20 5a 69 67 20 63 6f 64 65 0a 20 20 20 20 20 20 74 6f 20 6d 61 6b 65 20 .and.run.Zig.code.......to.make.
a3660 73 75 72 65 20 62 65 68 61 76 69 6f 72 20 6d 65 65 74 73 20 65 78 70 65 63 74 61 74 69 6f 6e 73 sure.behavior.meets.expectations
a3680 2e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..<code.class="zig"><span.class=
a36a0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 "tok-builtin">@import</span>(<sp
a36c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e an.class="tok-str">&quot;builtin
a36e0 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 69 73 5f 74 65 73 74 3c 2f 63 6f 64 65 3e 0a 20 20 &quot;</span>).is_test</code>...
a3700 20 20 20 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 63 6f 64 65 20 74 6f 20 64 65 74 ....is.available.for.code.to.det
a3720 65 63 74 20 77 68 65 74 68 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 69 6c 64 20 69 73 ect.whether.the.current.build.is
a3740 20 61 20 74 65 73 74 20 62 75 69 6c 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 .a.test.build........</p>.......
a3760 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 64 65 74 65 63 74 5f 74 65 73 74 2e 7a 69 67 3c <p.class="file">detect_test.zig<
a3780 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 /p><pre><code.class="zig"><span.
a37a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 class="tok-kw">const</span>.std.
a37c0 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 =.<span.class="tok-builtin">@imp
a37e0 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 ort</span>(<span.class="tok-str"
a3800 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 >&quot;std&quot;</span>);.<span.
a3820 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 75 69 6c class="tok-kw">const</span>.buil
a3840 74 69 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e tin.=.<span.class="tok-builtin">
a3860 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d @import</span>(<span.class="tok-
a3880 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 str">&quot;builtin&quot;</span>)
a38a0 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 ;.<span.class="tok-kw">const</sp
a38c0 61 6e 3e 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a an>.assert.=.std.debug.assert;..
a38e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e <span.class="tok-kw">test</span>
a3900 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 75 69 .<span.class="tok-str">&quot;bui
a3920 6c 74 69 6e 2e 69 73 5f 74 65 73 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 ltin.is_test&quot;</span>.{.....
a3940 61 73 73 65 72 74 28 62 75 69 6c 74 69 6e 2e 69 73 5f 74 65 73 74 29 3b 0a 7d 3c 2f 63 6f 64 65 assert(builtin.is_test);.}</code
a3960 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e ></pre><pre><code.class="shell">
a3980 24 20 7a 69 67 20 74 65 73 74 20 64 65 74 65 63 74 5f 74 65 73 74 2e 7a 69 67 0a 31 2f 31 20 74 $.zig.test.detect_test.zig.1/1.t
a39a0 65 73 74 20 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 2e 69 73 5f 74 65 73 74 26 71 75 6f 74 3b 2e est.&quot;builtin.is_test&quot;.
a39c0 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f ..OK.All.tests.passed..</code></
a39e0 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 68 61 73 20 6c 61 pre>........<p>.......Zig.has.la
a3a00 7a 79 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 61 6e 61 6c 79 73 69 zy.top.level.declaration.analysi
a3a20 73 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 61 74 20 69 66 20 61 20 66 75 6e 63 74 69 6f s,.which.means.that.if.a.functio
a3a40 6e 20 69 73 20 6e 6f 74 20 63 61 6c 6c 65 64 2c 0a 20 20 20 20 20 20 6f 72 20 6f 74 68 65 72 77 n.is.not.called,.......or.otherw
a3a60 69 73 65 20 75 73 65 64 2c 20 69 74 20 69 73 20 6e 6f 74 20 61 6e 61 6c 79 7a 65 64 2e 20 54 68 ise.used,.it.is.not.analyzed..Th
a3a80 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 61 6e 20 75 6e is.means.that.there.may.be.an.un
a3aa0 64 69 73 63 6f 76 65 72 65 64 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 discovered.......compile.error.i
a3ac0 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 62 65 63 61 75 73 65 20 69 74 20 69 73 20 6e 65 76 65 72 n.a.function.because.it.is.never
a3ae0 20 63 61 6c 6c 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 .called........</p>.......<p.cla
a3b00 73 73 3d 22 66 69 6c 65 22 3e 75 6e 75 73 65 64 5f 66 6e 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e ss="file">unused_fn.zig</p><pre>
a3b20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
a3b40 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
a3b60 6b 2d 66 6e 22 3e 75 6e 75 73 65 64 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 k-fn">unused</span>().<span.clas
a3b80 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 s="tok-type">i32</span>.{.....<s
a3ba0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e pan.class="tok-kw">return</span>
a3bc0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 77 72 6f .<span.class="tok-str">&quot;wro
a3be0 6e 67 20 72 65 74 75 72 6e 20 74 79 70 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 3c ng.return.type&quot;</span>;.}.<
a3c00 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 span.class="tok-kw">test</span>.
a3c20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 6e 75 73 <span.class="tok-str">&quot;unus
a3c40 65 64 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 20 7d 3c 2f 63 6f ed.function&quot;</span>.{.}</co
a3c60 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
a3c80 22 3e 24 20 7a 69 67 20 74 65 73 74 20 75 6e 75 73 65 64 5f 66 6e 2e 7a 69 67 0a 31 2f 31 20 74 ">$.zig.test.unused_fn.zig.1/1.t
a3ca0 65 73 74 20 26 71 75 6f 74 3b 75 6e 75 73 65 64 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 2e est.&quot;unused.function&quot;.
a3cc0 2e 2e 4f 4b 0a 41 6c 6c 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 63 6f 64 65 3e 3c 2f ..OK.All.tests.passed..</code></
a3ce0 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 2c pre>........<p>.......Note.that,
a3d00 20 77 68 69 6c 65 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 44 65 62 75 67 22 3e 44 65 62 75 67 .while.in.<a.href="#Debug">Debug
a3d20 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 53 61 66 65 22 3e </a>.and.<a.href="#ReleaseSafe">
a3d40 52 65 6c 65 61 73 65 53 61 66 65 3c 2f 61 3e 20 6d 6f 64 65 73 2c 20 3c 61 20 68 72 65 66 3d 22 ReleaseSafe</a>.modes,.<a.href="
a3d60 23 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 61 3e 20 65 6d #unreachable">unreachable</a>.em
a3d80 69 74 73 20 61 0a 20 20 20 20 20 20 63 61 6c 6c 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 23 70 61 its.a.......call.to.<a.href="#pa
a3da0 6e 69 63 22 3e 40 70 61 6e 69 63 3c 2f 61 3e 2c 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 52 65 nic">@panic</a>,.in.<a.href="#Re
a3dc0 6c 65 61 73 65 46 61 73 74 22 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 20 61 6e 64 20 3c leaseFast">ReleaseFast</a>.and.<
a3de0 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 3e 52 65 6c 65 61 73 65 53 6d a.href="#ReleaseSmall">ReleaseSm
a3e00 61 6c 6c 3c 2f 61 3e 20 6d 6f 64 65 73 2c 20 69 74 20 69 73 20 72 65 61 6c 6c 79 0a 20 20 20 20 all</a>.modes,.it.is.really.....
a3e20 20 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 20 54 68 65 20 69 6d 70 6c 65 6d ..undefined.behavior..The.implem
a3e40 65 6e 74 61 74 69 6f 6e 20 6f 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 entation.of.<code.class="zig">st
a3e60 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 73 0a 20 20 20 20 d.debug.assert</code>.is.as.....
a3e80 20 20 73 69 6d 70 6c 65 20 61 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 ..simple.as:.......</p>.......<p
a3ea0 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
a3ec0 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 ="tok-kw">pub</span>.<span.class
a3ee0 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="tok-kw">fn</span>.<span.class=
a3f00 22 74 6f 6b 2d 66 6e 22 3e 61 73 73 65 72 74 3c 2f 73 70 61 6e 3e 28 6f 6b 3a 20 3c 73 70 61 6e "tok-fn">assert</span>(ok:.<span
a3f20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 29 20 3c .class="tok-type">bool</span>).<
a3f40 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e span.class="tok-type">void</span
a3f60 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c >.{.....<span.class="tok-kw">if<
a3f80 2f 73 70 61 6e 3e 20 28 21 6f 6b 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>.(!ok).<span.class="tok-kw
a3fa0 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f ">unreachable</span>;.}</code></
a3fc0 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 6d 65 61 6e 73 20 pre>.......<p>.......This.means.
a3fe0 74 68 61 74 20 77 68 65 6e 20 74 65 73 74 69 6e 67 20 69 6e 20 52 65 6c 65 61 73 65 46 61 73 74 that.when.testing.in.ReleaseFast
a4000 20 6f 72 20 52 65 6c 65 61 73 65 53 6d 61 6c 6c 20 6d 6f 64 65 2c 20 3c 63 6f 64 65 20 63 6c 61 .or.ReleaseSmall.mode,.<code.cla
a4020 73 73 3d 22 7a 69 67 22 3e 61 73 73 65 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 69 73 20 ss="zig">assert</code>.......is.
a4040 6e 6f 74 20 73 75 66 66 69 63 69 65 6e 74 20 74 6f 20 63 68 65 63 6b 20 74 68 65 20 72 65 73 75 not.sufficient.to.check.the.resu
a4060 6c 74 20 6f 66 20 61 20 63 6f 6d 70 75 74 61 74 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a lt.of.a.computation:.......</p>.
a4080 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 ......<pre><code.class="zig"><sp
a40a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 an.class="tok-kw">const</span>.s
a40c0 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 td.=.<span.class="tok-builtin">@
a40e0 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 import</span>(<span.class="tok-s
a4100 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 tr">&quot;std&quot;</span>);.<sp
a4120 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 an.class="tok-kw">const</span>.a
a4140 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 3c 73 70 61 6e ssert.=.std.debug.assert;..<span
a4160 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 .class="tok-kw">test</span>.<spa
a4180 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 73 73 65 72 74 20 69 n.class="tok-str">&quot;assert.i
a41a0 6e 20 72 65 6c 65 61 73 65 20 66 61 73 74 20 6d 6f 64 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e n.release.fast.mode&quot;</span>
a41c0 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e .{.....assert(<span.class="tok-n
a41e0 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ull">false</span>);.}</code></pr
a4200 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 63 6f 6d 70 69 6c 69 6e e>.......<p>.......When.compilin
a4220 67 20 74 68 69 73 20 74 65 73 74 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 g.this.test.in.<a.href="#Release
a4240 46 61 73 74 22 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 20 6d 6f 64 65 2c 20 69 74 20 69 Fast">ReleaseFast</a>.mode,.it.i
a4260 6e 76 6f 6b 65 73 20 75 6e 63 68 65 63 6b 65 64 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 nvokes.unchecked.......<a.href="
a4280 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 #Undefined-Behavior">Undefined.B
a42a0 65 68 61 76 69 6f 72 3c 2f 61 3e 2e 20 53 69 6e 63 65 20 74 68 61 74 20 63 6f 75 6c 64 20 64 6f ehavior</a>..Since.that.could.do
a42c0 20 61 6e 79 74 68 69 6e 67 2c 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a 20 20 .anything,.this.documentation...
a42e0 20 20 20 20 63 61 6e 6e 6f 74 20 73 68 6f 77 20 79 6f 75 20 74 68 65 20 6f 75 74 70 75 74 2e 0a ....cannot.show.you.the.output..
a4300 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 65 74 74 65 ......</p>.......<p>.......Bette
a4320 72 20 70 72 61 63 74 69 63 65 20 66 6f 72 20 63 68 65 63 6b 69 6e 67 20 74 68 65 20 6f 75 74 70 r.practice.for.checking.the.outp
a4340 75 74 20 77 68 65 6e 20 74 65 73 74 69 6e 67 20 69 73 20 74 6f 20 75 73 65 20 3c 63 6f 64 65 20 ut.when.testing.is.to.use.<code.
a4360 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3c 2f class="zig">std.testing.expect</
a4380 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 code>:.......</p>.......<p.class
a43a0 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ="file">test.zig</p><pre><code.c
a43c0 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
a43e0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 const</span>.std.=.<span.class="
a4400 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 tok-builtin">@import</span>(<spa
a4420 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 n.class="tok-str">&quot;std&quot
a4440 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ;</span>);.<span.class="tok-kw">
a4460 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e const</span>.expect.=.std.testin
a4480 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e g.expect;..<span.class="tok-kw">
a44a0 74 65 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 test</span>.<span.class="tok-str
a44c0 22 3e 26 71 75 6f 74 3b 61 73 73 65 72 74 20 69 6e 20 72 65 6c 65 61 73 65 20 66 61 73 74 20 6d ">&quot;assert.in.release.fast.m
a44e0 6f 64 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 65 78 70 65 63 74 28 3c 73 ode&quot;</span>.{.....expect(<s
a4500 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e pan.class="tok-null">false</span
a4520 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 >);.}</code></pre><pre><code.cla
a4540 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 20 2d ss="shell">$.zig.test.test.zig.-
a4560 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 0a 31 2f 31 20 74 65 73 74 20 26 71 75 6f 74 3b 61 73 73 -release-fast.1/1.test.&quot;ass
a4580 65 72 74 20 69 6e 20 72 65 6c 65 61 73 65 20 66 61 73 74 20 6d 6f 64 65 26 71 75 6f 74 3b 2e 2e ert.in.release.fast.mode&quot;..
a45a0 2e 74 65 73 74 20 66 61 69 6c 75 72 65 0a 0a 54 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 .test.failure..Tests.failed..Use
a45c0 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 .the.following.command.to.reprod
a45e0 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f uce.the.failure:./home/andy/dev/
a4600 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 zig/docgen_tmp/test.</code></pre
a4620 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 >........<p>See.the.rest.of.the.
a4640 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 74 65 73 74 69 6e 67 3c 2f 63 <code.class="zig">std.testing</c
a4660 6f 64 65 3e 20 6e 61 6d 65 73 70 61 63 65 20 66 6f 72 20 6d 6f 72 65 20 61 76 61 69 6c 61 62 6c ode>.namespace.for.more.availabl
a4680 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 e.functions.</p>.......<p>......
a46a0 20 3c 63 6f 64 65 3e 7a 69 67 20 74 65 73 74 3c 2f 63 6f 64 65 3e 20 68 61 73 20 61 20 66 65 77 .<code>zig.test</code>.has.a.few
a46c0 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 61 72 61 6d 65 74 65 72 73 20 77 68 69 63 68 20 61 .command.line.parameters.which.a
a46e0 66 66 65 63 74 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2e 20 53 65 65 0a 20 20 20 20 20 ffect.the.compilation..See......
a4700 20 3c 63 6f 64 65 3e 7a 69 67 20 2d 2d 68 65 6c 70 3c 2f 63 6f 64 65 3e 20 66 6f 72 20 61 20 66 .<code>zig.--help</code>.for.a.f
a4720 75 6c 6c 20 6c 69 73 74 2e 20 54 68 65 20 6d 6f 73 74 20 69 6e 74 65 72 65 73 74 69 6e 67 20 6f ull.list..The.most.interesting.o
a4740 6e 65 20 69 73 20 3c 63 6f 64 65 3e 2d 2d 74 65 73 74 2d 66 69 6c 74 65 72 20 5b 74 65 78 74 5d ne.is.<code>--test-filter.[text]
a4760 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 54 68 69 73 20 6d 61 6b 65 73 20 74 68 65 20 74 65 </code>........This.makes.the.te
a4780 73 74 20 62 75 69 6c 64 20 6f 6e 6c 79 20 69 6e 63 6c 75 64 65 20 74 65 73 74 73 20 77 68 6f 73 st.build.only.include.tests.whos
a47a0 65 20 6e 61 6d 65 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 73 75 70 70 6c 69 65 64 20 66 69 6c e.name.contains.the.supplied.fil
a47c0 74 65 72 20 74 65 78 74 2e 0a 20 20 20 20 20 20 41 67 61 69 6e 2c 20 74 68 61 6e 6b 73 20 74 6f ter.text........Again,.thanks.to
a47e0 20 6c 61 7a 79 20 61 6e 61 6c 79 73 69 73 2c 20 74 68 69 73 20 63 61 6e 20 61 6c 6c 6f 77 20 79 .lazy.analysis,.this.can.allow.y
a4800 6f 75 20 74 6f 20 6e 61 72 72 6f 77 20 61 20 62 75 69 6c 64 20 74 6f 20 6f 6e 6c 79 20 61 20 66 ou.to.narrow.a.build.to.only.a.f
a4820 65 77 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 0a 20 20 20 20 20 20 69 73 6f 6c 61 74 69 6f 6e 2e ew.functions.in.......isolation.
a4840 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d .......</p>..............<h1.id=
a4860 22 5a 69 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 6d 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 "Zig-Build-System"><a.href="#toc
a4880 2d 5a 69 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 79 73 -Zig-Build-System">Zig.Build.Sys
a48a0 74 65 6d 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 5a 69 tem</a>.<a.class="hdr".href="#Zi
a48c0 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 6d 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 g-Build-System">..</a></h1>.....
a48e0 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 70 75 72 70 6f 73 65 2c 20 69 74 27 ...<p>TODO:.explain.purpose,.it'
a4900 73 20 73 75 70 70 6f 73 65 64 20 74 6f 20 72 65 70 6c 61 63 65 20 6d 61 6b 65 2f 63 6d 61 6b 65 s.supposed.to.replace.make/cmake
a4920 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 62 </p>.......<p>TODO:.example.of.b
a4940 75 69 6c 64 69 6e 67 20 61 20 7a 69 67 20 65 78 65 63 75 74 61 62 6c 65 3c 2f 70 3e 0a 20 20 20 uilding.a.zig.executable</p>....
a4960 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 ...<p>TODO:.example.of.building.
a4980 61 20 43 20 6c 69 62 72 61 72 79 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 a.C.library</p>..............<h1
a49a0 20 69 64 3d 22 43 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 22 3e 43 3c 2f 61 3e 20 3c .id="C"><a.href="#toc-C">C</a>.<
a49c0 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 22 3e c2 a7 3c 2f 61 3e 3c 2f a.class="hdr".href="#C">..</a></
a49e0 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6c 74 68 6f 75 67 68 20 5a 69 h1>........<p>.......Although.Zi
a4a00 67 20 69 73 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 6f 66 20 43 2c 20 61 6e 64 2c 20 75 6e 6c 69 g.is.independent.of.C,.and,.unli
a4a20 6b 65 20 6d 6f 73 74 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 2c 20 64 6f 65 73 20 6e 6f ke.most.other.languages,.does.no
a4a40 74 20 64 65 70 65 6e 64 20 6f 6e 20 6c 69 62 63 2c 0a 20 20 20 20 20 20 5a 69 67 20 61 63 6b 6e t.depend.on.libc,.......Zig.ackn
a4a60 6f 77 6c 65 64 67 65 73 20 74 68 65 20 69 6d 70 6f 72 74 61 6e 63 65 20 6f 66 20 69 6e 74 65 72 owledges.the.importance.of.inter
a4a80 61 63 74 69 6e 67 20 77 69 74 68 20 65 78 69 73 74 69 6e 67 20 43 20 63 6f 64 65 2e 0a 20 20 20 acting.with.existing.C.code.....
a4aa0 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 61 72 ...</p>.......<p>.......There.ar
a4ac0 65 20 61 20 66 65 77 20 77 61 79 73 20 74 68 61 74 20 5a 69 67 20 66 61 63 69 6c 69 74 61 74 65 e.a.few.ways.that.Zig.facilitate
a4ae0 73 20 43 20 69 6e 74 65 72 6f 70 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 s.C.interop........</p>.......<h
a4b00 32 20 69 64 3d 22 43 2d 54 79 70 65 2d 50 72 69 6d 69 74 69 76 65 73 22 3e 3c 61 20 68 72 65 66 2.id="C-Type-Primitives"><a.href
a4b20 3d 22 23 74 6f 63 2d 43 2d 54 79 70 65 2d 50 72 69 6d 69 74 69 76 65 73 22 3e 43 20 54 79 70 65 ="#toc-C-Type-Primitives">C.Type
a4b40 20 50 72 69 6d 69 74 69 76 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 .Primitives</a>.<a.class="hdr".h
a4b60 72 65 66 3d 22 23 43 2d 54 79 70 65 2d 50 72 69 6d 69 74 69 76 65 73 22 3e c2 a7 3c 2f 61 3e 3c ref="#C-Type-Primitives">..</a><
a4b80 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 68 61 76 65 /h2>........<p>.......These.have
a4ba0 20 67 75 61 72 61 6e 74 65 65 64 20 43 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 .guaranteed.C.ABI.compatibility.
a4bc0 61 6e 64 20 63 61 6e 20 62 65 20 75 73 65 64 20 6c 69 6b 65 20 61 6e 79 20 6f 74 68 65 72 20 74 and.can.be.used.like.any.other.t
a4be0 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 ype........</p>.......<ul>......
a4c00 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e .....<li><code.class="zig"><span
a4c20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 73 68 6f 72 74 3c 2f 73 70 61 6e 3e .class="tok-type">c_short</span>
a4c40 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 </code></li>...........<li><code
a4c60 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 .class="zig"><span.class="tok-ty
a4c80 70 65 22 3e 63 5f 75 73 68 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a pe">c_ushort</span></code></li>.
a4ca0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e ..........<li><code.class="zig">
a4cc0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 69 6e 74 3c 2f 73 70 <span.class="tok-type">c_int</sp
a4ce0 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 an></code></li>...........<li><c
a4d00 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
a4d20 2d 74 79 70 65 22 3e 63 5f 75 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e -type">c_uint</span></code></li>
a4d40 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 ...........<li><code.class="zig"
a4d60 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 6c 6f 6e 67 3c 2f ><span.class="tok-type">c_long</
a4d80 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e span></code></li>...........<li>
a4da0 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 <code.class="zig"><span.class="t
a4dc0 6f 6b 2d 74 79 70 65 22 3e 63 5f 75 6c 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f ok-type">c_ulong</span></code></
a4de0 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a li>...........<li><code.class="z
a4e00 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 6c 6f 6e ig"><span.class="tok-type">c_lon
a4e20 67 6c 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 glong</span></code></li>........
a4e40 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 ...<li><code.class="zig"><span.c
a4e60 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 75 6c 6f 6e 67 6c 6f 6e 67 3c 2f 73 70 61 lass="tok-type">c_ulonglong</spa
a4e80 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f n></code></li>...........<li><co
a4ea0 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
a4ec0 74 79 70 65 22 3e 63 5f 6c 6f 6e 67 64 6f 75 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e type">c_longdouble</span></code>
a4ee0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d </li>...........<li><code.class=
a4f00 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 76 "zig"><span.class="tok-type">c_v
a4f20 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 oid</span></code></li>.......</u
a4f40 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c l>.......<p>See.also:</p><ul>.<l
a4f60 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 50 72 69 i><a.href="#Primitive-Types">Pri
a4f80 6d 69 74 69 76 65 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 mitive.Types</a></li>.</ul>.....
a4fa0 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 ..........<h2.id="C-String-Liter
a4fc0 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 2d 53 74 72 69 6e 67 2d 4c 69 74 65 als"><a.href="#toc-C-String-Lite
a4fe0 72 61 6c 73 22 3e 43 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 rals">C.String.Literals</a>.<a.c
a5000 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 lass="hdr".href="#C-String-Liter
a5020 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 als">..</a></h2>........<p.class
a5040 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ="file">test.zig</p><pre><code.c
a5060 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e lass="zig"><span.class="tok-kw">
a5080 65 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b extern</span>.<span.class="tok-k
a50a0 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e w">fn</span>.<span.class="tok-fn
a50c0 22 3e 70 75 74 73 3c 2f 73 70 61 6e 3e 28 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">puts</span>([*]<span.class="to
a50e0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-kw">const</span>.<span.class="
a5100 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 tok-type">u8</span>).<span.class
a5120 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 ="tok-type">void</span>;..<span.
a5140 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 class="tok-kw">pub</span>.<span.
a5160 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 class="tok-kw">fn</span>.<span.c
a5180 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 lass="tok-fn">main</span>().<spa
a51a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b n.class="tok-type">void</span>.{
a51c0 0a 20 20 20 20 70 75 74 73 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e .....puts(<span.class="tok-str">
a51e0 63 26 71 75 6f 74 3b 74 68 69 73 20 68 61 73 20 61 20 6e 75 6c 6c 20 74 65 72 6d 69 6e 61 74 6f c&quot;this.has.a.null.terminato
a5200 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 70 75 74 73 28 0a 20 20 20 20 20 r&quot;</span>);.....puts(......
a5220 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 63 5c 5c 61 6e 64 20 ...<span.class="tok-str">c\\and.
a5240 73 6f 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 so.</span>........<span.class="t
a5260 6f 6b 2d 73 74 72 22 3e 63 5c 5c 64 6f 65 73 20 74 68 69 73 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 ok-str">c\\does.this.</span>....
a5280 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 63 5c 5c 6d 75 6c ....<span.class="tok-str">c\\mul
a52a0 74 69 6c 69 6e 65 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 0a 3c 2f 73 70 61 6e 3e 20 tiline.C.string.literal.</span>.
a52c0 20 20 20 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 ...);.}</code></pre><pre><code.c
a52e0 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 lass="shell">$.zig.build-exe.tes
a5300 74 2e 7a 69 67 20 2d 6c 63 0a 24 20 2e 2f 74 65 73 74 0a 74 68 69 73 20 68 61 73 20 61 20 6e 75 t.zig.-lc.$../test.this.has.a.nu
a5320 6c 6c 20 74 65 72 6d 69 6e 61 74 6f 72 0a 61 6e 64 20 73 6f 0a 64 6f 65 73 20 74 68 69 73 0a 6d ll.terminator.and.so.does.this.m
a5340 75 6c 74 69 6c 69 6e 65 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 0a 3c 2f 63 6f 64 65 ultiline.C.string.literal.</code
a5360 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c ></pre>........<p>See.also:</p><
a5380 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c ul>.<li><a.href="#String-Literal
a53a0 73 2d 61 6e 64 2d 43 68 61 72 61 63 74 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 s-and-Character-Literals">String
a53c0 20 4c 69 74 65 72 61 6c 73 20 61 6e 64 20 43 68 61 72 61 63 74 65 72 20 4c 69 74 65 72 61 6c 73 .Literals.and.Character.Literals
a53e0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c </a></li>.</ul>................<
a5400 68 32 20 69 64 3d 22 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 h2.id="Import-from-C-Header-File
a5420 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 "><a.href="#toc-Import-from-C-He
a5440 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 ader-File">Import.from.C.Header.
a5460 46 69 6c 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 File</a>.<a.class="hdr".href="#I
a5480 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e c2 a7 3c 2f 61 3e mport-from-C-Header-File">..</a>
a54a0 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 </h2>........<p>.......The.<code
a54c0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 .class="zig"><span.class="tok-bu
a54e0 69 6c 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 75 iltin">@cImport</span></code>.bu
a5500 69 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 0a 20 20 20 20 20 iltin.function.can.be.used......
a5520 20 74 6f 20 64 69 72 65 63 74 6c 79 20 69 6d 70 6f 72 74 20 73 79 6d 62 6f 6c 73 20 66 72 6f 6d .to.directly.import.symbols.from
a5540 20 2e 68 20 66 69 6c 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 ..h.files:.......</p>.......<p.c
a5560 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f lass="file">test.zig</p><pre><co
a5580 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d de.class="zig"><span.class="tok-
a55a0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 kw">const</span>.c.=.<span.class
a55c0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 7b ="tok-builtin">@cImport</span>({
a55e0 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f .....<span.class="tok-comment">/
a5600 2f 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 /.See.https://github.com/ziglang
a5620 2f 7a 69 67 2f 69 73 73 75 65 73 2f 35 31 35 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e /zig/issues/515</span>.....<span
a5640 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 44 65 66 69 6e 65 3c 2f 73 .class="tok-builtin">@cDefine</s
a5660 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
a5680 3b 5f 4e 4f 5f 43 52 54 5f 53 54 44 49 4f 5f 49 4e 4c 49 4e 45 26 71 75 6f 74 3b 3c 2f 73 70 61 ;_NO_CRT_STDIO_INLINE&quot;</spa
a56a0 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b n>,.<span.class="tok-str">&quot;
a56c0 31 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 1&quot;</span>);.....<span.class
a56e0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 73 70 61 6e 3e 28 ="tok-builtin">@cInclude</span>(
a5700 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 69 <span.class="tok-str">&quot;stdi
a5720 6f 2e 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 o.h&quot;</span>);.});.<span.cla
a5740 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 ss="tok-kw">pub</span>.<span.cla
a5760 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 ss="tok-kw">fn</span>.<span.clas
a5780 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 s="tok-fn">main</span>().<span.c
a57a0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 lass="tok-type">void</span>.{...
a57c0 20 20 5f 20 3d 20 63 2e 70 72 69 6e 74 66 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .._.=.c.printf(<span.class="tok-
a57e0 73 74 72 22 3e 63 26 71 75 6f 74 3b 68 65 6c 6c 6f 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e str">c&quot;hello\n&quot;</span>
a5800 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 );.}</code></pre><pre><code.clas
a5820 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a s="shell">$.zig.build-exe.test.z
a5840 69 67 20 2d 6c 63 0a 24 20 2e 2f 74 65 73 74 0a 68 65 6c 6c 6f 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 ig.-lc.$../test.hello.</code></p
a5860 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 20 63 re>........<p>.......The.<code.c
a5880 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c lass="zig"><span.class="tok-buil
a58a0 74 69 6e 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 tin">@cImport</span></code>.func
a58c0 74 69 6f 6e 20 74 61 6b 65 73 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 61 73 20 61 20 70 61 tion.takes.an.expression.as.a.pa
a58e0 72 61 6d 65 74 65 72 2e 0a 20 20 20 20 20 20 54 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e 20 69 rameter........This.expression.i
a5900 73 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 6e 64 20 s.evaluated.at.compile-time.and.
a5920 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6e 74 72 6f 6c 0a 20 20 20 20 20 20 70 72 65 70 72 6f 63 is.used.to.control.......preproc
a5940 65 73 73 6f 72 20 64 69 72 65 63 74 69 76 65 73 20 61 6e 64 20 69 6e 63 6c 75 64 65 20 6d 75 6c essor.directives.and.include.mul
a5960 74 69 70 6c 65 20 2e 68 20 66 69 6c 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 tiple..h.files:.......</p>......
a5980 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .<pre><code.class="zig"><span.cl
a59a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 75 69 6c 74 69 ass="tok-kw">const</span>.builti
a59c0 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 n.=.<span.class="tok-builtin">@i
a59e0 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 mport</span>(<span.class="tok-st
a5a00 72 22 3e 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a r">&quot;builtin&quot;</span>);.
a5a20 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 .<span.class="tok-kw">const</spa
a5a40 6e 3e 20 63 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 n>.c.=.<span.class="tok-builtin"
a5a60 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 >@cImport</span>({.....<span.cla
a5a80 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 44 65 66 69 6e 65 3c 2f 73 70 61 6e 3e ss="tok-builtin">@cDefine</span>
a5aa0 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 4e 44 45 (<span.class="tok-str">&quot;NDE
a5ac0 42 55 47 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 62 75 69 6c 74 69 6e 2e 6d 6f 64 65 20 3d BUG&quot;</span>,.builtin.mode.=
a5ae0 3d 20 62 75 69 6c 74 69 6e 2e 4d 6f 64 65 2e 52 65 6c 65 61 73 65 46 61 73 74 29 3b 0a 20 20 20 =.builtin.Mode.ReleaseFast);....
a5b00 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 .<span.class="tok-kw">if</span>.
a5b20 28 73 6f 6d 65 74 68 69 6e 67 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 (something).{.........<span.clas
a5b40 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 44 65 66 69 6e 65 3c 2f 73 70 61 6e 3e 28 s="tok-builtin">@cDefine</span>(
a5b60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 5f 47 4e 55 <span.class="tok-str">&quot;_GNU
a5b80 5f 53 4f 55 52 43 45 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 7b 7d 29 3b 0a 20 20 20 20 7d _SOURCE&quot;</span>,.{});.....}
a5ba0 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 .....<span.class="tok-builtin">@
a5bc0 63 49 6e 63 6c 75 64 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b cInclude</span>(<span.class="tok
a5be0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 6c 69 62 2e 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e -str">&quot;stdlib.h&quot;</span
a5c00 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c >);.....<span.class="tok-kw">if<
a5c20 2f 73 70 61 6e 3e 20 28 73 6f 6d 65 74 68 69 6e 67 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 /span>.(something).{.........<sp
a5c40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 55 6e 64 65 66 3c 2f an.class="tok-builtin">@cUndef</
a5c60 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f span>(<span.class="tok-str">&quo
a5c80 74 3b 5f 47 4e 55 5f 53 4f 55 52 43 45 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 t;_GNU_SOURCE&quot;</span>);....
a5ca0 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 .}.....<span.class="tok-builtin"
a5cc0 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >@cInclude</span>(<span.class="t
a5ce0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 6f 75 6e 64 69 6f 2e 68 26 71 75 6f 74 3b 3c 2f 73 ok-str">&quot;soundio.h&quot;</s
a5d00 70 61 6e 3e 29 3b 0a 7d 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 pan>);.});</code></pre>.......<p
a5d20 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 >See.also:</p><ul>.<li><a.href="
a5d40 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e #cImport">@cImport</a></li>.<li>
a5d60 3c 61 20 68 72 65 66 3d 22 23 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 <a.href="#cInclude">@cInclude</a
a5d80 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 44 65 66 69 6e 65 22 3e 40 63 ></li>.<li><a.href="#cDefine">@c
a5da0 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 55 Define</a></li>.<li><a.href="#cU
a5dc0 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 ndef">@cUndef</a></li>.<li><a.hr
a5de0 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f ef="#import">@import</a></li>.</
a5e00 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 2d 50 6f 69 ul>................<h2.id="C-Poi
a5e20 6e 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 43 2d 50 6f 69 6e 74 65 72 73 22 nters"><a.href="#toc-C-Pointers"
a5e40 3e 43 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 >C.Pointers</a>.<a.class="hdr".h
a5e60 72 65 66 3d 22 23 43 2d 50 6f 69 6e 74 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 ref="#C-Pointers">..</a></h2>...
a5e80 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 74 79 70 65 20 69 73 20 74 6f 20 62 .....<p>.......This.type.is.to.b
a5ea0 65 20 61 76 6f 69 64 65 64 20 77 68 65 6e 65 76 65 72 20 70 6f 73 73 69 62 6c 65 2e 20 54 68 65 e.avoided.whenever.possible..The
a5ec0 20 6f 6e 6c 79 20 76 61 6c 69 64 20 72 65 61 73 6f 6e 20 66 6f 72 20 75 73 69 6e 67 20 61 20 43 .only.valid.reason.for.using.a.C
a5ee0 20 70 6f 69 6e 74 65 72 20 69 73 20 69 6e 0a 20 20 20 20 20 20 61 75 74 6f 2d 67 65 6e 65 72 61 .pointer.is.in.......auto-genera
a5f00 74 65 64 20 63 6f 64 65 20 66 72 6f 6d 20 74 72 61 6e 73 6c 61 74 69 6e 67 20 43 20 63 6f 64 65 ted.code.from.translating.C.code
a5f20 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 ........</p>.......<p>.......Whe
a5f40 6e 20 69 6d 70 6f 72 74 69 6e 67 20 43 20 68 65 61 64 65 72 20 66 69 6c 65 73 2c 20 69 74 20 69 n.importing.C.header.files,.it.i
a5f60 73 20 61 6d 62 69 67 75 6f 75 73 20 77 68 65 74 68 65 72 20 70 6f 69 6e 74 65 72 73 20 73 68 6f s.ambiguous.whether.pointers.sho
a5f80 75 6c 64 20 62 65 20 74 72 61 6e 73 6c 61 74 65 64 20 61 73 0a 20 20 20 20 20 20 73 69 6e 67 6c uld.be.translated.as.......singl
a5fa0 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 73 20 28 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 e-item.pointers.(<code.class="zi
a5fc0 67 22 3e 2a 54 3c 2f 63 6f 64 65 3e 29 20 6f 72 20 75 6e 6b 6e 6f 77 6e 2d 6c 65 6e 67 74 68 20 g">*T</code>).or.unknown-length.
a5fe0 70 6f 69 6e 74 65 72 73 20 28 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 5b 2a 5d 54 pointers.(<code.class="zig">[*]T
a6000 3c 2f 63 6f 64 65 3e 29 2e 0a 20 20 20 20 20 20 43 20 70 6f 69 6e 74 65 72 73 20 61 72 65 20 61 </code>)........C.pointers.are.a
a6020 20 63 6f 6d 70 72 6f 6d 69 73 65 20 73 6f 20 74 68 61 74 20 5a 69 67 20 63 6f 64 65 20 63 61 6e .compromise.so.that.Zig.code.can
a6040 20 75 74 69 6c 69 7a 65 20 74 72 61 6e 73 6c 61 74 65 64 20 68 65 61 64 65 72 20 66 69 6c 65 73 .utilize.translated.header.files
a6060 20 64 69 72 65 63 74 6c 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c .directly........</p>.......<p><
a6080 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 5b 2a 63 5d 54 3c 2f 63 6f 64 65 3e 20 2d 20 code.class="zig">[*c]T</code>.-.
a60a0 43 20 70 6f 69 6e 74 65 72 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 C.pointer.</p>.......<ul>.......
a60c0 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 73 20 61 6c 6c 20 74 68 65 20 73 79 6e 74 61 78 20 6f 66 ..<li>Supports.all.the.syntax.of
a60e0 20 74 68 65 20 6f 74 68 65 72 20 74 77 6f 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 2e 3c 2f 6c .the.other.two.pointer.types.</l
a6100 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 73 20 i>.........<li>Implicitly.casts.
a6120 74 6f 20 6f 74 68 65 72 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 2c 20 61 73 20 77 65 6c 6c 20 to.other.pointer.types,.as.well.
a6140 61 73 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 22 3e as.<a.href="#Optional-Pointers">
a6160 4f 70 74 69 6f 6e 61 6c 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 Optional.Pointers</a>...........
a6180 20 20 20 57 68 65 6e 20 61 20 43 20 70 6f 69 6e 74 65 72 20 69 73 20 69 6d 70 6c 69 63 69 74 6c ...When.a.C.pointer.is.implicitl
a61a0 79 20 63 61 73 74 65 64 20 74 6f 20 61 20 6e 6f 6e 2d 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 y.casted.to.a.non-optional.point
a61c0 65 72 2c 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c er,.safety-checked.............<
a61e0 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 a.href="#Undefined-Behavior">Und
a6200 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 20 6f 63 63 75 72 73 20 69 66 20 74 68 efined.Behavior</a>.occurs.if.th
a6220 65 20 61 64 64 72 65 73 73 20 69 73 20 30 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 e.address.is.0..........</li>...
a6240 20 20 20 20 20 20 3c 6c 69 3e 41 6c 6c 6f 77 73 20 61 64 64 72 65 73 73 20 30 2e 20 4f 6e 20 6e ......<li>Allows.address.0..On.n
a6260 6f 6e 2d 66 72 65 65 73 74 61 6e 64 69 6e 67 20 74 61 72 67 65 74 73 2c 20 64 65 72 65 66 65 72 on-freestanding.targets,.derefer
a6280 65 6e 63 69 6e 67 20 61 64 64 72 65 73 73 20 30 20 69 73 20 73 61 66 65 74 79 2d 63 68 65 63 6b encing.address.0.is.safety-check
a62a0 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e ed.............<a.href="#Undefin
a62c0 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c ed-Behavior">Undefined.Behavior<
a62e0 2f 61 3e 2e 20 4f 70 74 69 6f 6e 61 6c 20 43 20 70 6f 69 6e 74 65 72 73 20 69 6e 74 72 6f 64 75 /a>..Optional.C.pointers.introdu
a6300 63 65 20 61 6e 6f 74 68 65 72 20 62 69 74 20 74 6f 20 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 0a ce.another.bit.to.keep.track.of.
a6320 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6c 6c 2c 20 6a 75 73 74 20 6c 69 6b 65 20 3c 63 6f 64 ............null,.just.like.<cod
a6340 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d e.class="zig">?<span.class="tok-
a6360 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 4e 6f 74 65 20 type">usize</span></code>..Note.
a6380 74 68 61 74 20 63 72 65 61 74 69 6e 67 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 43 20 70 6f 69 6e that.creating.an.optional.C.poin
a63a0 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 75 6e 6e 65 63 65 73 73 61 72 79 20 61 ter.............is.unnecessary.a
a63c0 73 20 6f 6e 65 20 63 61 6e 20 75 73 65 20 6e 6f 72 6d 61 6c 20 3c 61 20 68 72 65 66 3d 22 23 4f s.one.can.use.normal.<a.href="#O
a63e0 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 22 3e 4f 70 74 69 6f 6e 61 6c 20 50 6f 69 6e 74 ptional-Pointers">Optional.Point
a6400 65 72 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c ers</a>..........</li>.........<
a6420 6c 69 3e 53 75 70 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6c 69 63 69 74 2d 43 li>Supports.<a.href="#Implicit-C
a6440 61 73 74 73 22 3e 69 6d 70 6c 69 63 69 74 20 63 61 73 74 69 6e 67 3c 2f 61 3e 20 74 6f 20 61 6e asts">implicit.casting</a>.to.an
a6460 64 20 66 72 6f 6d 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c d.from.integers.</li>.........<l
a6480 69 3e 53 75 70 70 6f 72 74 73 20 63 6f 6d 70 61 72 69 73 6f 6e 20 77 69 74 68 20 69 6e 74 65 67 i>Supports.comparison.with.integ
a64a0 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 44 6f 65 73 20 6e 6f 74 20 73 ers.</li>.........<li>Does.not.s
a64c0 75 70 70 6f 72 74 20 5a 69 67 2d 6f 6e 6c 79 20 70 6f 69 6e 74 65 72 20 61 74 74 72 69 62 75 74 upport.Zig-only.pointer.attribut
a64e0 65 73 20 73 75 63 68 20 61 73 20 61 6c 69 67 6e 6d 65 6e 74 2e 20 55 73 65 20 6e 6f 72 6d 61 6c es.such.as.alignment..Use.normal
a6500 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 .<a.href="#Pointers">Pointers</a
a6520 3e 0a 20 20 20 20 20 20 20 20 70 6c 65 61 73 65 21 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 >.........please!</li>.......</u
a6540 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 57 68 65 6e 20 61 20 43 20 70 6f 69 6e 74 65 72 20 69 73 20 l>.......<p>When.a.C.pointer.is.
a6560 70 6f 69 6e 74 69 6e 67 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 73 74 72 75 63 74 20 28 6e 6f 74 pointing.to.a.single.struct.(not
a6580 20 61 6e 20 61 72 72 61 79 29 2c 20 64 65 66 65 72 65 6e 63 65 20 74 68 65 20 43 20 70 6f 69 6e .an.array),.deference.the.C.poin
a65a0 74 65 72 20 74 6f 0a 20 20 20 20 20 20 20 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 73 74 72 ter.to.........access.to.the.str
a65c0 75 63 74 27 73 20 66 69 65 6c 64 73 20 6f 72 20 6d 65 6d 62 65 72 20 64 61 74 61 2e 20 54 68 61 uct's.fields.or.member.data..Tha
a65e0 74 20 73 79 6e 74 61 78 20 6c 6f 6f 6b 73 20 6c 69 6b 65 0a 20 20 20 20 20 20 20 20 74 68 69 73 t.syntax.looks.like.........this
a6600 3a 20 3c 2f 70 3e 0a 20 20 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a :.</p>.........<p><code.class="z
a6620 69 67 22 3e 70 74 72 5f 74 6f 5f 73 74 72 75 63 74 2e 2a 2e 73 74 72 75 63 74 5f 6d 65 6d 62 65 ig">ptr_to_struct.*.struct_membe
a6640 72 3c 2f 63 6f 64 65 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 20 r</code></p>.........<p>This.is.
a6660 63 6f 6d 70 61 72 61 62 6c 65 20 74 6f 20 64 6f 69 6e 67 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d comparable.to.doing.<code.class=
a6680 22 7a 69 67 22 3e 2d 26 67 74 3b 3c 2f 63 6f 64 65 3e 20 69 6e 20 43 2e 3c 2f 70 3e 0a 20 20 20 "zig">-&gt;</code>.in.C.</p>....
a66a0 20 20 20 20 20 3c 70 3e 20 57 68 65 6e 20 61 20 43 20 70 6f 69 6e 74 65 72 20 69 73 20 70 6f 69 .....<p>.When.a.C.pointer.is.poi
a66c0 6e 74 69 6e 67 20 74 6f 20 61 6e 20 61 72 72 61 79 20 6f 66 20 73 74 72 75 63 74 73 2c 20 74 68 nting.to.an.array.of.structs,.th
a66e0 65 20 73 79 6e 74 61 78 20 72 65 76 65 72 74 73 20 74 6f 20 74 68 69 73 3a 3c 2f 70 3e 0a 20 20 e.syntax.reverts.to.this:</p>...
a6700 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 74 72 5f 74 ......<p><code.class="zig">ptr_t
a6720 6f 5f 73 74 72 75 63 74 5f 61 72 72 61 79 5b 69 6e 64 65 78 5d 2e 73 74 72 75 63 74 5f 6d 65 6d o_struct_array[index].struct_mem
a6740 62 65 72 3c 2f 63 6f 64 65 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 ber</code></p>...............<h2
a6760 20 69 64 3d 22 45 78 70 6f 72 74 69 6e 67 2d 61 2d 43 2d 4c 69 62 72 61 72 79 22 3e 3c 61 20 68 .id="Exporting-a-C-Library"><a.h
a6780 72 65 66 3d 22 23 74 6f 63 2d 45 78 70 6f 72 74 69 6e 67 2d 61 2d 43 2d 4c 69 62 72 61 72 79 22 ref="#toc-Exporting-a-C-Library"
a67a0 3e 45 78 70 6f 72 74 69 6e 67 20 61 20 43 20 4c 69 62 72 61 72 79 3c 2f 61 3e 20 3c 61 20 63 6c >Exporting.a.C.Library</a>.<a.cl
a67c0 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 78 70 6f 72 74 69 6e 67 2d 61 2d 43 2d 4c ass="hdr".href="#Exporting-a-C-L
a67e0 69 62 72 61 72 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 ibrary">..</a></h2>........<p>..
a6800 20 20 20 20 20 4f 6e 65 20 6f 66 20 74 68 65 20 70 72 69 6d 61 72 79 20 75 73 65 20 63 61 73 65 .....One.of.the.primary.use.case
a6820 73 20 66 6f 72 20 5a 69 67 20 69 73 20 65 78 70 6f 72 74 69 6e 67 20 61 20 6c 69 62 72 61 72 79 s.for.Zig.is.exporting.a.library
a6840 20 77 69 74 68 20 74 68 65 20 43 20 41 42 49 20 66 6f 72 20 6f 74 68 65 72 20 70 72 6f 67 72 61 .with.the.C.ABI.for.other.progra
a6860 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 73 0a 20 20 20 20 20 20 74 6f 20 63 61 6c 6c 20 69 6e mming.languages.......to.call.in
a6880 74 6f 2e 20 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 to..The.<code.class="zig"><span.
a68a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f class="tok-kw">export</span></co
a68c0 64 65 3e 20 6b 65 79 77 6f 72 64 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e de>.keyword.in.front.of.function
a68e0 73 2c 20 76 61 72 69 61 62 6c 65 73 2c 20 61 6e 64 20 74 79 70 65 73 20 63 61 75 73 65 73 20 74 s,.variables,.and.types.causes.t
a6900 68 65 6d 20 74 6f 0a 20 20 20 20 20 20 62 65 20 70 61 72 74 20 6f 66 20 74 68 65 20 6c 69 62 72 hem.to.......be.part.of.the.libr
a6920 61 72 79 20 41 50 49 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 ary.API:.......</p>.......<p.cla
a6940 73 73 3d 22 66 69 6c 65 22 3e 6d 61 74 68 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 ss="file">mathtest.zig</p>......
a6960 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c .<pre><code.class="zig"><span.cl
a6980 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e ass="tok-kw">export</span>.<span
a69a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 .class="tok-kw">fn</span>.<span.
a69c0 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 64 64 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 class="tok-fn">add</span>(a:.<sp
a69e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 an.class="tok-type">i32</span>,.
a6a00 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 b:.<span.class="tok-type">i32</s
a6a20 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 pan>).<span.class="tok-type">i32
a6a40 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.{.....<span.class="tok-k
a6a60 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 2b 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e w">return</span>.a.+.b;.}</code>
a6a80 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 6f 20 6d 61 6b 65 20 61 20 73 74 61 74 69 63 </pre>.......<p>To.make.a.static
a6aa0 20 6c 69 62 72 61 72 79 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 .library:</p>.......<pre><code.c
a6ac0 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6c 69 62 20 6d 61 74 lass="shell">$.zig.build-lib.mat
a6ae0 68 74 65 73 74 2e 7a 69 67 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 htest.zig.</code></pre>.......<p
a6b00 3e 54 6f 20 6d 61 6b 65 20 61 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 3a 3c 2f 70 3e 0a 20 >To.make.a.shared.library:</p>..
a6b20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 .....<pre><code.class="shell">$.
a6b40 7a 69 67 20 62 75 69 6c 64 2d 6c 69 62 20 6d 61 74 68 74 65 73 74 2e 7a 69 67 20 2d 64 79 6e 61 zig.build-lib.mathtest.zig.-dyna
a6b60 6d 69 63 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 48 65 72 65 20 mic.</code></pre>.......<p>Here.
a6b80 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 77 69 74 68 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 is.an.example.with.the.<a.href="
a6ba0 23 5a 69 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 79 73 #Zig-Build-System">Zig.Build.Sys
a6bc0 74 65 6d 3c 2f 61 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c tem</a>:</p>.......<p.class="fil
a6be0 65 22 3e 74 65 73 74 2e 63 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 e">test.c</p>.......<pre><code.c
a6c00 6c 61 73 73 3d 22 63 70 70 22 3e 2f 2f 20 54 68 69 73 20 68 65 61 64 65 72 20 69 73 20 67 65 6e lass="cpp">//.This.header.is.gen
a6c20 65 72 61 74 65 64 20 62 79 20 7a 69 67 20 66 72 6f 6d 20 6d 61 74 68 74 65 73 74 2e 7a 69 67 0a erated.by.zig.from.mathtest.zig.
a6c40 23 69 6e 63 6c 75 64 65 20 22 6d 61 74 68 74 65 73 74 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 26 #include."mathtest.h".#include.&
a6c60 6c 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 0a 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 lt;stdio.h&gt;..int.main(int.arg
a6c80 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 20 20 20 69 6e 74 33 32 5f 74 20 72 65 c,.char.**argv).{.....int32_t.re
a6ca0 73 75 6c 74 20 3d 20 61 64 64 28 34 32 2c 20 31 33 33 37 29 3b 0a 20 20 20 20 70 72 69 6e 74 66 sult.=.add(42,.1337);.....printf
a6cc0 28 22 25 64 5c 6e 22 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a ("%d\n",.result);.....return.0;.
a6ce0 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 }</code></pre>.......<p.class="f
a6d00 69 6c 65 22 3e 62 75 69 6c 64 2e 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 ile">build.zig</p>.......<pre><c
a6d20 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ode.class="zig"><span.class="tok
a6d40 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 42 75 69 6c 64 65 72 20 3d 20 3c 73 70 61 -kw">const</span>.Builder.=.<spa
a6d60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 n.class="tok-builtin">@import</s
a6d80 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 pan>(<span.class="tok-str">&quot
a6da0 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 62 75 69 6c 64 2e 42 75 69 6c 64 65 72 ;std&quot;</span>).build.Builder
a6dc0 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 ;..<span.class="tok-kw">pub</spa
a6de0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e n>.<span.class="tok-kw">fn</span
a6e00 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 75 69 6c 64 3c 2f 73 70 >.<span.class="tok-fn">build</sp
a6e20 61 6e 3e 28 62 3a 20 2a 42 75 69 6c 64 65 72 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f an>(b:.*Builder).<span.class="to
a6e40 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 k-type">void</span>.{.....<span.
a6e60 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6c 69 62 20 class="tok-kw">const</span>.lib.
a6e80 3d 20 62 2e 61 64 64 53 68 61 72 65 64 4c 69 62 72 61 72 79 28 3c 73 70 61 6e 20 63 6c 61 73 73 =.b.addSharedLibrary(<span.class
a6ea0 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6d 61 74 68 74 65 73 74 26 71 75 6f 74 3b 3c ="tok-str">&quot;mathtest&quot;<
a6ec0 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 /span>,.<span.class="tok-str">&q
a6ee0 75 6f 74 3b 6d 61 74 68 74 65 73 74 2e 7a 69 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 62 uot;mathtest.zig&quot;</span>,.b
a6f00 2e 76 65 72 73 69 6f 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 .version(<span.class="tok-number
a6f20 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ">1</span>,.<span.class="tok-num
a6f40 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ber">0</span>,.<span.class="tok-
a6f60 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 number">0</span>));......<span.c
a6f80 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 65 20 3d lass="tok-kw">const</span>.exe.=
a6fa0 20 62 2e 61 64 64 45 78 65 63 75 74 61 62 6c 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .b.addExecutable(<span.class="to
a6fc0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 65 73 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 k-str">&quot;test&quot;</span>,.
a6fe0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 <span.class="tok-null">null</spa
a7000 6e 3e 29 3b 0a 20 20 20 20 65 78 65 2e 61 64 64 43 53 6f 75 72 63 65 46 69 6c 65 28 3c 73 70 61 n>);.....exe.addCSourceFile(<spa
a7020 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 65 73 74 2e 63 26 71 n.class="tok-str">&quot;test.c&q
a7040 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 5b 5f 5d 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 uot;</span>,.[_][]<span.class="t
a7060 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-kw">const</span>.<span.class=
a7080 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-type">u8</span>{<span.class
a70a0 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 2d 73 74 64 3d 63 39 39 26 71 75 6f 74 3b 3c ="tok-str">&quot;-std=c99&quot;<
a70c0 2f 73 70 61 6e 3e 7d 29 3b 0a 20 20 20 20 65 78 65 2e 6c 69 6e 6b 4c 69 62 72 61 72 79 28 6c 69 /span>});.....exe.linkLibrary(li
a70e0 62 29 3b 0a 20 20 20 20 65 78 65 2e 6c 69 6e 6b 53 79 73 74 65 6d 4c 69 62 72 61 72 79 28 3c 73 b);.....exe.linkSystemLibrary(<s
a7100 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 26 71 75 6f 74 pan.class="tok-str">&quot;c&quot
a7120 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 62 2e 64 65 66 61 75 6c 74 5f 73 74 65 70 2e 64 ;</span>);......b.default_step.d
a7140 65 70 65 6e 64 4f 6e 28 26 61 6d 70 3b 65 78 65 2e 73 74 65 70 29 3b 0a 0a 20 20 20 20 3c 73 70 ependOn(&amp;exe.step);......<sp
a7160 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 an.class="tok-kw">const</span>.r
a7180 75 6e 5f 63 6d 64 20 3d 20 65 78 65 2e 72 75 6e 28 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 un_cmd.=.exe.run();......<span.c
a71a0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 74 65 73 74 5f lass="tok-kw">const</span>.test_
a71c0 73 74 65 70 20 3d 20 62 2e 73 74 65 70 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 step.=.b.step(<span.class="tok-s
a71e0 74 72 22 3e 26 71 75 6f 74 3b 74 65 73 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 tr">&quot;test&quot;</span>,.<sp
a7200 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 54 65 73 74 20 74 68 an.class="tok-str">&quot;Test.th
a7220 65 20 70 72 6f 67 72 61 6d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 74 65 73 e.program&quot;</span>);.....tes
a7240 74 5f 73 74 65 70 2e 64 65 70 65 6e 64 4f 6e 28 26 61 6d 70 3b 72 75 6e 5f 63 6d 64 2e 73 74 65 t_step.dependOn(&amp;run_cmd.ste
a7260 70 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 p);.}</code></pre>.......<p.clas
a7280 73 3d 22 66 69 6c 65 22 3e 74 65 72 6d 69 6e 61 6c 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 s="file">terminal</p>.......<pre
a72a0 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 ><code.class="shell">$.zig.build
a72c0 20 74 65 73 74 0a 31 33 37 39 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c .test.1379.</code></pre>.......<
a72e0 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d p>See.also:</p><ul>.<li><a.href=
a7300 22 23 65 78 70 6f 72 74 22 3e 65 78 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a "#export">export</a></li>.</ul>.
a7320 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 4d 69 78 69 6e 67 2d 4f 62 6a ..............<h2.id="Mixing-Obj
a7340 65 63 74 2d 46 69 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4d 69 78 69 6e 67 2d ect-Files"><a.href="#toc-Mixing-
a7360 4f 62 6a 65 63 74 2d 46 69 6c 65 73 22 3e 4d 69 78 69 6e 67 20 4f 62 6a 65 63 74 20 46 69 6c 65 Object-Files">Mixing.Object.File
a7380 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4d 69 78 69 s</a>.<a.class="hdr".href="#Mixi
a73a0 6e 67 2d 4f 62 6a 65 63 74 2d 46 69 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 ng-Object-Files">..</a></h2>....
a73c0 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 6d 69 78 20 5a 69 67 20 6f 62 ....<p>.......You.can.mix.Zig.ob
a73e0 6a 65 63 74 20 66 69 6c 65 73 20 77 69 74 68 20 61 6e 79 20 6f 74 68 65 72 20 6f 62 6a 65 63 74 ject.files.with.any.other.object
a7400 20 66 69 6c 65 73 20 74 68 61 74 20 72 65 73 70 65 63 74 20 74 68 65 20 43 20 41 42 49 2e 20 45 .files.that.respect.the.C.ABI..E
a7420 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 xample:.......</p>.......<p.clas
a7440 73 3d 22 66 69 6c 65 22 3e 62 61 73 65 36 34 2e 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 s="file">base64.zig</p>.......<p
a7460 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 re><code.class="zig"><span.class
a7480 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 61 73 65 36 34 20 3d 20 ="tok-kw">const</span>.base64.=.
a74a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
a74c0 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
a74e0 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 62 61 73 65 36 34 3b 0a 0a quot;std&quot;</span>).base64;..
a7500 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 <span.class="tok-kw">export</spa
a7520 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e n>.<span.class="tok-kw">fn</span
a7540 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 65 63 6f 64 65 5f 62 61 >.<span.class="tok-fn">decode_ba
a7560 73 65 5f 36 34 3c 2f 73 70 61 6e 3e 28 0a 20 20 20 20 64 65 73 74 5f 70 74 72 3a 20 5b 2a 5d 3c se_64</span>(.....dest_ptr:.[*]<
a7580 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c span.class="tok-type">u8</span>,
a75a0 0a 20 20 20 20 64 65 73 74 5f 6c 65 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .....dest_len:.<span.class="tok-
a75c0 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 73 6f 75 72 63 65 5f 70 type">usize</span>,.....source_p
a75e0 74 72 3a 20 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 tr:.[*]<span.class="tok-kw">cons
a7600 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e t</span>.<span.class="tok-type">
a7620 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 73 6f 75 72 63 65 5f 6c 65 6e 3a 20 3c 73 70 61 6e u8</span>,.....source_len:.<span
a7640 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 0a .class="tok-type">usize</span>,.
a7660 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f ).<span.class="tok-type">usize</
a7680 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 span>.{.....<span.class="tok-kw"
a76a0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 72 63 20 3d 20 73 6f 75 72 63 65 5f 70 74 72 5b 3c >const</span>.src.=.source_ptr[<
a76c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e span.class="tok-number">0</span>
a76e0 2e 2e 73 6f 75 72 63 65 5f 6c 65 6e 5d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ..source_len];.....<span.class="
a7700 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 64 65 73 74 20 3d 20 64 65 73 74 tok-kw">const</span>.dest.=.dest
a7720 5f 70 74 72 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c _ptr[<span.class="tok-number">0<
a7740 2f 73 70 61 6e 3e 2e 2e 64 65 73 74 5f 6c 65 6e 5d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 /span>..dest_len];.....<span.cla
a7760 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 61 73 65 36 34 5f ss="tok-kw">const</span>.base64_
a7780 64 65 63 6f 64 65 72 20 3d 20 62 61 73 65 36 34 2e 73 74 61 6e 64 61 72 64 5f 64 65 63 6f 64 65 decoder.=.base64.standard_decode
a77a0 72 5f 75 6e 73 61 66 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b r_unsafe;.....<span.class="tok-k
a77c0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 64 65 63 6f 64 65 64 5f 73 69 7a 65 20 3d 20 62 w">const</span>.decoded_size.=.b
a77e0 61 73 65 36 34 5f 64 65 63 6f 64 65 72 2e 63 61 6c 63 53 69 7a 65 28 73 72 63 29 3b 0a 20 20 20 ase64_decoder.calcSize(src);....
a7800 20 62 61 73 65 36 34 5f 64 65 63 6f 64 65 72 2e 64 65 63 6f 64 65 28 64 65 73 74 5b 3c 73 70 61 .base64_decoder.decode(dest[<spa
a7820 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 64 n.class="tok-number">0</span>..d
a7840 65 63 6f 64 65 64 5f 73 69 7a 65 5d 2c 20 73 72 63 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ecoded_size],.src);.....<span.cl
a7860 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 64 65 63 6f 64 ass="tok-kw">return</span>.decod
a7880 65 64 5f 73 69 7a 65 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 ed_size;.}</code></pre>.......<p
a78a0 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 63 3c 2f 70 3e 0a 20 20 20 20 20 20 3c .class="file">test.c</p>.......<
a78c0 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 70 70 22 3e 2f 2f 20 54 68 69 73 20 68 65 pre><code.class="cpp">//.This.he
a78e0 61 64 65 72 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 7a 69 67 20 66 72 6f 6d 20 62 61 ader.is.generated.by.zig.from.ba
a7900 73 65 36 34 2e 7a 69 67 0a 23 69 6e 63 6c 75 64 65 20 22 62 61 73 65 36 34 2e 68 22 0a 0a 23 69 se64.zig.#include."base64.h"..#i
a7920 6e 63 6c 75 64 65 20 26 6c 74 3b 73 74 72 69 6e 67 2e 68 26 67 74 3b 0a 23 69 6e 63 6c 75 64 65 nclude.&lt;string.h&gt;.#include
a7940 20 26 6c 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 0a 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 .&lt;stdio.h&gt;..int.main(int.a
a7960 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 rgc,.char.**argv).{.....const.ch
a7980 61 72 20 2a 65 6e 63 6f 64 65 64 20 3d 20 22 59 57 78 73 49 48 6c 76 64 58 49 67 59 6d 46 7a 5a ar.*encoded.=."YWxsIHlvdXIgYmFzZ
a79a0 53 42 68 63 6d 55 67 59 6d 56 73 62 32 35 6e 49 48 52 76 49 48 56 7a 22 3b 0a 20 20 20 20 63 68 SBhcmUgYmVsb25nIHRvIHVz";.....ch
a79c0 61 72 20 62 75 66 5b 32 30 30 5d 3b 0a 0a 20 20 20 20 73 69 7a 65 5f 74 20 6c 65 6e 20 3d 20 64 ar.buf[200];......size_t.len.=.d
a79e0 65 63 6f 64 65 5f 62 61 73 65 5f 36 34 28 62 75 66 2c 20 32 30 30 2c 20 65 6e 63 6f 64 65 64 2c ecode_base_64(buf,.200,.encoded,
a7a00 20 73 74 72 6c 65 6e 28 65 6e 63 6f 64 65 64 29 29 3b 0a 20 20 20 20 62 75 66 5b 6c 65 6e 5d 20 .strlen(encoded));.....buf[len].
a7a20 3d 20 30 3b 0a 20 20 20 20 70 75 74 73 28 62 75 66 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 =.0;.....puts(buf);......return.
a7a40 30 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 0;.}</code></pre>.......<p.class
a7a60 3d 22 66 69 6c 65 22 3e 62 75 69 6c 64 2e 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 ="file">build.zig</p>.......<pre
a7a80 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
a7aa0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 42 75 69 6c 64 65 72 20 3d 20 3c tok-kw">const</span>.Builder.=.<
a7ac0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 74 span.class="tok-builtin">@import
a7ae0 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 </span>(<span.class="tok-str">&q
a7b00 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 62 75 69 6c 64 2e 42 75 69 6c uot;std&quot;</span>).build.Buil
a7b20 64 65 72 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f der;..<span.class="tok-kw">pub</
a7b40 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 span>.<span.class="tok-kw">fn</s
a7b60 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 75 69 6c 64 3c pan>.<span.class="tok-fn">build<
a7b80 2f 73 70 61 6e 3e 28 62 3a 20 2a 42 75 69 6c 64 65 72 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d /span>(b:.*Builder).<span.class=
a7ba0 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 "tok-type">void</span>.{.....<sp
a7bc0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f an.class="tok-kw">const</span>.o
a7be0 62 6a 20 3d 20 62 2e 61 64 64 4f 62 6a 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f bj.=.b.addObject(<span.class="to
a7c00 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 61 73 65 36 34 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e k-str">&quot;base64&quot;</span>
a7c20 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 61 ,.<span.class="tok-str">&quot;ba
a7c40 73 65 36 34 2e 7a 69 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 se64.zig&quot;</span>);......<sp
a7c60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 an.class="tok-kw">const</span>.e
a7c80 78 65 20 3d 20 62 2e 61 64 64 45 78 65 63 75 74 61 62 6c 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 xe.=.b.addExecutable(<span.class
a7ca0 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 65 73 74 26 71 75 6f 74 3b 3c 2f 73 70 61 ="tok-str">&quot;test&quot;</spa
a7cc0 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c n>,.<span.class="tok-null">null<
a7ce0 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 65 78 65 2e 61 64 64 43 53 6f 75 72 63 65 46 69 6c 65 28 /span>);.....exe.addCSourceFile(
a7d00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 65 73 74 <span.class="tok-str">&quot;test
a7d20 2e 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 5b 5f 5d 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 .c&quot;</span>,.[_][]<span.clas
a7d40 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c s="tok-kw">const</span>.<span.cl
a7d60 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 7b 3c 73 70 61 6e 20 63 ass="tok-type">u8</span>{<span.c
a7d80 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 2d 73 74 64 3d 63 39 39 26 71 75 lass="tok-str">&quot;-std=c99&qu
a7da0 6f 74 3b 3c 2f 73 70 61 6e 3e 7d 29 3b 0a 20 20 20 20 65 78 65 2e 61 64 64 4f 62 6a 65 63 74 28 ot;</span>});.....exe.addObject(
a7dc0 6f 62 6a 29 3b 0a 20 20 20 20 65 78 65 2e 6c 69 6e 6b 53 79 73 74 65 6d 4c 69 62 72 61 72 79 28 obj);.....exe.linkSystemLibrary(
a7de0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 26 71 75 <span.class="tok-str">&quot;c&qu
a7e00 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 65 78 65 2e 69 6e 73 74 61 6c 6c 28 29 3b 0a ot;</span>);.....exe.install();.
a7e20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 }</code></pre>.......<p.class="f
a7e40 69 6c 65 22 3e 74 65 72 6d 69 6e 61 6c 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f ile">terminal</p>.......<pre><co
a7e60 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 0a 24 20 2e de.class="shell">$.zig.build.$..
a7e80 2f 7a 69 67 2d 63 61 63 68 65 2f 62 69 6e 2f 74 65 73 74 0a 61 6c 6c 20 79 6f 75 72 20 62 61 73 /zig-cache/bin/test.all.your.bas
a7ea0 65 20 61 72 65 20 62 65 6c 6f 6e 67 20 74 6f 20 75 73 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a e.are.belong.to.us</code></pre>.
a7ec0 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c ......<p>See.also:</p><ul>.<li><
a7ee0 61 20 68 72 65 66 3d 22 23 54 61 72 67 65 74 73 22 3e 54 61 72 67 65 74 73 3c 2f 61 3e 3c 2f 6c a.href="#Targets">Targets</a></l
a7f00 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 5a 69 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 i>.<li><a.href="#Zig-Build-Syste
a7f20 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 79 73 74 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 m">Zig.Build.System</a></li>.</u
a7f40 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 l>......................<h1.id="
a7f60 57 65 62 41 73 73 65 6d 62 6c 79 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 57 65 62 41 73 WebAssembly"><a.href="#toc-WebAs
a7f80 73 65 6d 62 6c 79 22 3e 57 65 62 41 73 73 65 6d 62 6c 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 sembly">WebAssembly</a>.<a.class
a7fa0 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 57 65 62 41 73 73 65 6d 62 6c 79 22 3e c2 a7 3c 2f 61 ="hdr".href="#WebAssembly">..</a
a7fc0 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 73 75 70 70 6f 72 74 73 20 62 75 ></h1>........<p>Zig.supports.bu
a7fe0 69 6c 64 69 6e 67 20 66 6f 72 20 57 65 62 41 73 73 65 6d 62 6c 79 20 6f 75 74 20 6f 66 20 74 68 ilding.for.WebAssembly.out.of.th
a8000 65 20 62 6f 78 2e 20 54 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 20 73 70 65 63 69 61 6c 69 7a e.box..There.is.also.a.specializ
a8020 65 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 74 64 2e 68 65 61 70 2e 77 61 ed.<code.class="zig">std.heap.wa
a8040 73 6d 5f 61 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 6d 65 6d 6f 72 79 sm_allocator</code>.......memory
a8060 20 61 6c 6c 6f 63 61 74 6f 72 20 66 6f 72 20 57 65 62 41 73 73 65 6d 62 6c 79 20 65 6e 76 69 72 .allocator.for.WebAssembly.envir
a8080 6f 6e 6d 65 6e 74 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 46 72 65 65 73 onments.</p>.......<h2.id="Frees
a80a0 74 61 6e 64 69 6e 67 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 46 72 65 65 73 74 61 6e 64 tanding"><a.href="#toc-Freestand
a80c0 69 6e 67 22 3e 46 72 65 65 73 74 61 6e 64 69 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 ing">Freestanding</a>.<a.class="
a80e0 68 64 72 22 20 68 72 65 66 3d 22 23 46 72 65 65 73 74 61 6e 64 69 6e 67 22 3e c2 a7 3c 2f 61 3e hdr".href="#Freestanding">..</a>
a8100 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 68 6f 73 74 20 65 6e 76 69 72 6f 6e </h2>........<p>For.host.environ
a8120 6d 65 6e 74 73 20 6c 69 6b 65 20 74 68 65 20 77 65 62 20 62 72 6f 77 73 65 72 20 61 6e 64 20 6e ments.like.the.web.browser.and.n
a8140 6f 64 65 6a 73 2c 20 62 75 69 6c 64 20 61 73 20 61 20 6c 69 62 72 61 72 79 20 75 73 69 6e 67 20 odejs,.build.as.a.library.using.
a8160 74 68 65 20 66 72 65 65 73 74 61 6e 64 69 6e 67 20 4f 53 20 74 61 72 67 65 74 2e 0a 20 20 20 20 the.freestanding.OS.target......
a8180 20 20 48 65 72 65 27 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 72 75 6e 6e 69 6e 67 20 5a ..Here's.an.example.of.running.Z
a81a0 69 67 20 63 6f 64 65 20 63 6f 6d 70 69 6c 65 64 20 74 6f 20 57 65 62 41 73 73 65 6d 62 6c 79 20 ig.code.compiled.to.WebAssembly.
a81c0 77 69 74 68 20 6e 6f 64 65 6a 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d with.nodejs.</p>.......<p.class=
a81e0 22 66 69 6c 65 22 3e 6d 61 74 68 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c "file">math.zig</p><pre><code.cl
a8200 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 ass="zig"><span.class="tok-kw">e
a8220 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 xtern</span>.<span.class="tok-kw
a8240 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 ">fn</span>.<span.class="tok-fn"
a8260 3e 70 72 69 6e 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 >print</span>(<span.class="tok-t
a8280 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ype">i32</span>).<span.class="to
a82a0 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 k-type">void</span>;..<span.clas
a82c0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 s="tok-kw">export</span>.<span.c
a82e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c lass="tok-kw">fn</span>.<span.cl
a8300 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 64 64 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c 73 70 61 6e ass="tok-fn">add</span>(a:.<span
a8320 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 20 62 3a .class="tok-type">i32</span>,.b:
a8340 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 .<span.class="tok-type">i32</spa
a8360 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f 69 64 3c n>).<span.class="tok-type">void<
a8380 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 70 72 69 6e 74 28 61 20 2b 20 62 29 3b 0a 7d 3c 2f 63 6f /span>.{.....print(a.+.b);.}</co
a83a0 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c de></pre><pre><code.class="shell
a83c0 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6c 69 62 20 6d 61 74 68 2e 7a 69 67 20 2d 74 61 72 67 ">$.zig.build-lib.math.zig.-targ
a83e0 65 74 20 77 61 73 6d 33 32 2d 66 72 65 65 73 74 61 6e 64 69 6e 67 0a 3c 2f 63 6f 64 65 3e 3c 2f et.wasm32-freestanding.</code></
a8400 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c pre>...............<p.class="fil
a8420 65 22 3e 74 65 73 74 2e 6a 73 3c 2f 70 3e 0a 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 63 6f e">test.js</p>.....<pre><code>co
a8440 6e 73 74 20 66 73 20 3d 20 72 65 71 75 69 72 65 28 27 66 73 27 29 3b 0a 63 6f 6e 73 74 20 73 6f nst.fs.=.require('fs');.const.so
a8460 75 72 63 65 20 3d 20 66 73 2e 72 65 61 64 46 69 6c 65 53 79 6e 63 28 22 2e 2f 6d 61 74 68 2e 77 urce.=.fs.readFileSync("./math.w
a8480 61 73 6d 22 29 3b 0a 63 6f 6e 73 74 20 74 79 70 65 64 41 72 72 61 79 20 3d 20 6e 65 77 20 55 69 asm");.const.typedArray.=.new.Ui
a84a0 6e 74 38 41 72 72 61 79 28 73 6f 75 72 63 65 29 3b 0a 0a 57 65 62 41 73 73 65 6d 62 6c 79 2e 69 nt8Array(source);..WebAssembly.i
a84c0 6e 73 74 61 6e 74 69 61 74 65 28 74 79 70 65 64 41 72 72 61 79 2c 20 7b 0a 20 20 65 6e 76 3a 20 nstantiate(typedArray,.{...env:.
a84e0 7b 0a 20 20 20 20 70 72 69 6e 74 3a 20 28 72 65 73 75 6c 74 29 20 3d 26 67 74 3b 20 7b 20 63 6f {.....print:.(result).=&gt;.{.co
a8500 6e 73 6f 6c 65 2e 6c 6f 67 28 60 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 24 7b 72 65 73 75 6c nsole.log(`The.result.is.${resul
a8520 74 7d 60 29 3b 20 7d 0a 20 20 7d 7d 29 2e 74 68 65 6e 28 72 65 73 75 6c 74 20 3d 26 67 74 3b 20 t}`);.}...}}).then(result.=&gt;.
a8540 7b 0a 20 20 63 6f 6e 73 74 20 61 64 64 20 3d 20 72 65 73 75 6c 74 2e 69 6e 73 74 61 6e 63 65 2e {...const.add.=.result.instance.
a8560 65 78 70 6f 72 74 73 2e 61 64 64 3b 0a 20 20 61 64 64 28 31 2c 20 32 29 3b 0a 7d 29 3b 3c 2f 63 exports.add;...add(1,.2);.});</c
a8580 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 24 20 6e 6f 64 65 ode></pre>.....<pre><code>$.node
a85a0 20 74 65 73 74 2e 6a 73 0a 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 33 3c 2f 63 6f 64 65 3e 3c .test.js.The.result.is.3</code><
a85c0 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 57 41 53 49 22 3e 3c 61 20 68 72 65 /pre>.......<h2.id="WASI"><a.hre
a85e0 66 3d 22 23 74 6f 63 2d 57 41 53 49 22 3e 57 41 53 49 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d f="#toc-WASI">WASI</a>.<a.class=
a8600 22 68 64 72 22 20 68 72 65 66 3d 22 23 57 41 53 49 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a "hdr".href="#WASI">..</a></h2>..
a8620 20 20 20 20 20 20 3c 70 3e 5a 69 67 27 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 57 65 62 41 73 ......<p>Zig's.support.for.WebAs
a8640 73 65 6d 62 6c 79 20 53 79 73 74 65 6d 20 49 6e 74 65 72 66 61 63 65 20 28 57 41 53 49 29 20 69 sembly.System.Interface.(WASI).i
a8660 73 20 75 6e 64 65 72 20 61 63 74 69 76 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 2e 20 45 78 61 6d s.under.active.development..Exam
a8680 70 6c 65 20 6f 66 20 75 73 69 6e 67 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 ple.of.using.the.standard.librar
a86a0 79 20 61 6e 64 20 72 65 61 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d y.and.reading.command.line.argum
a86c0 65 6e 74 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ents:</p>.......<p.class="file">
a86e0 77 61 73 69 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 wasi.zig</p><pre><code.class="zi
a8700 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 g"><span.class="tok-kw">const</s
a8720 70 61 6e 3e 20 73 74 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c pan>.std.=.<span.class="tok-buil
a8740 74 69 6e 22 3e 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d tin">@import</span>(<span.class=
a8760 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e "tok-str">&quot;std&quot;</span>
a8780 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 );..<span.class="tok-kw">pub</sp
a87a0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 an>.<span.class="tok-kw">fn</spa
a87c0 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 69 6e 3c 2f 73 70 n>.<span.class="tok-fn">main</sp
a87e0 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 76 6f an>().!<span.class="tok-type">vo
a8800 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b id</span>.{.....<span.class="tok
a8820 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 67 73 20 3d 20 3c 73 70 61 6e 20 63 -kw">const</span>.args.=.<span.c
a8840 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 70 72 6f lass="tok-kw">try</span>.std.pro
a8860 63 65 73 73 2e 61 72 67 73 41 6c 6c 6f 63 28 73 74 64 2e 68 65 61 70 2e 77 61 73 6d 5f 61 6c 6c cess.argsAlloc(std.heap.wasm_all
a8880 6f 63 61 74 6f 72 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ocator);.....<span.class="tok-kw
a88a0 22 3e 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 70 72 6f 63 65 73 73 2e 61 72 67 73 46 ">defer</span>.std.process.argsF
a88c0 72 65 65 28 73 74 64 2e 68 65 61 70 2e 77 61 73 6d 5f 61 6c 6c 6f 63 61 74 6f 72 2c 20 61 72 67 ree(std.heap.wasm_allocator,.arg
a88e0 73 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f s);......<span.class="tok-kw">fo
a8900 72 3c 2f 73 70 61 6e 3e 20 28 61 72 67 73 29 20 7c 61 72 67 2c 20 69 7c 20 7b 0a 20 20 20 20 20 r</span>.(args).|arg,.i|.{......
a8920 20 20 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ...std.debug.warn(<span.class="t
a8940 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 7d 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 ok-str">&quot;{}:.{}\n&quot;</sp
a8960 61 6e 3e 2c 20 69 2c 20 61 72 67 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 an>,.i,.arg);.....}.}</code></pr
a8980 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 e><pre><code.class="shell">$.zig
a89a0 20 62 75 69 6c 64 2d 65 78 65 20 77 61 73 69 2e 7a 69 67 20 2d 74 61 72 67 65 74 20 77 61 73 6d .build-exe.wasi.zig.-target.wasm
a89c0 33 32 2d 77 61 73 69 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 3c 70 72 65 3e 32-wasi</code></pre>.......<pre>
a89e0 3c 63 6f 64 65 3e 24 20 77 61 73 6d 65 72 20 72 75 6e 20 77 61 73 69 2e 77 61 73 6d 20 31 32 33 <code>$.wasmer.run.wasi.wasm.123
a8a00 20 68 65 6c 6c 6f 0a 30 3a 20 77 61 73 69 2e 77 61 73 6d 0a 31 3a 20 31 32 33 0a 32 3a 20 68 65 .hello.0:.wasi.wasm.1:.123.2:.he
a8a20 6c 6c 6f 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 llo</code></pre>................
a8a40 20 20 20 20 20 3c 68 31 20 69 64 3d 22 54 61 72 67 65 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 .....<h1.id="Targets"><a.href="#
a8a60 74 6f 63 2d 54 61 72 67 65 74 73 22 3e 54 61 72 67 65 74 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 toc-Targets">Targets</a>.<a.clas
a8a80 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 61 72 67 65 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f s="hdr".href="#Targets">..</a></
a8aa0 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 73 75 70 70 6f 72 74 h1>........<p>.......Zig.support
a8ac0 73 20 67 65 6e 65 72 61 74 69 6e 67 20 63 6f 64 65 20 66 6f 72 20 61 6c 6c 20 74 61 72 67 65 74 s.generating.code.for.all.target
a8ae0 73 20 74 68 61 74 20 4c 4c 56 4d 20 73 75 70 70 6f 72 74 73 2e 20 48 65 72 65 20 69 73 0a 20 20 s.that.LLVM.supports..Here.is...
a8b00 20 20 20 20 77 68 61 74 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 6f 20 65 78 65 63 75 74 ....what.it.looks.like.to.execut
a8b20 65 20 3c 63 6f 64 65 3e 7a 69 67 20 74 61 72 67 65 74 73 3c 2f 63 6f 64 65 3e 20 6f 6e 20 61 20 e.<code>zig.targets</code>.on.a.
a8b40 4c 69 6e 75 78 20 78 38 36 5f 36 34 0a 20 20 20 20 20 20 63 6f 6d 70 75 74 65 72 3a 0a 20 20 20 Linux.x86_64.......computer:....
a8b60 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 ...</p>.......<pre><code.class="
a8b80 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 61 72 67 65 74 73 0a 41 72 63 68 69 74 65 63 74 75 72 shell">$.zig.targets.Architectur
a8ba0 65 73 3a 0a 20 20 61 72 6d 0a 20 20 20 20 76 38 5f 34 61 0a 20 20 20 20 76 38 5f 33 61 0a 20 20 es:...arm.....v8_4a.....v8_3a...
a8bc0 20 20 76 38 5f 32 61 0a 20 20 20 20 76 38 5f 31 61 0a 20 20 20 20 76 38 0a 20 20 20 20 76 38 72 ..v8_2a.....v8_1a.....v8.....v8r
a8be0 0a 20 20 20 20 76 38 6d 5f 62 61 73 65 6c 69 6e 65 0a 20 20 20 20 76 38 6d 5f 6d 61 69 6e 6c 69 .....v8m_baseline.....v8m_mainli
a8c00 6e 65 0a 20 20 20 20 76 37 0a 20 20 20 20 76 37 65 6d 0a 20 20 20 20 76 37 6d 0a 20 20 20 20 76 ne.....v7.....v7em.....v7m.....v
a8c20 37 73 0a 20 20 20 20 76 37 6b 0a 20 20 20 20 76 37 76 65 0a 20 20 20 20 76 36 0a 20 20 20 20 76 7s.....v7k.....v7ve.....v6.....v
a8c40 36 6d 0a 20 20 20 20 76 36 6b 0a 20 20 20 20 76 36 74 32 0a 20 20 20 20 76 35 0a 20 20 20 20 76 6m.....v6k.....v6t2.....v5.....v
a8c60 35 74 65 0a 20 20 20 20 76 34 74 0a 20 20 61 72 6d 65 62 0a 20 20 20 20 76 38 5f 34 61 0a 20 20 5te.....v4t...armeb.....v8_4a...
a8c80 20 20 76 38 5f 33 61 0a 20 20 20 20 76 38 5f 32 61 0a 20 20 20 20 76 38 5f 31 61 0a 20 20 20 20 ..v8_3a.....v8_2a.....v8_1a.....
a8ca0 76 38 0a 20 20 20 20 76 38 72 0a 20 20 20 20 76 38 6d 5f 62 61 73 65 6c 69 6e 65 0a 20 20 20 20 v8.....v8r.....v8m_baseline.....
a8cc0 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 0a 20 20 20 20 76 37 0a 20 20 20 20 76 37 65 6d 0a 20 20 20 v8m_mainline.....v7.....v7em....
a8ce0 20 76 37 6d 0a 20 20 20 20 76 37 73 0a 20 20 20 20 76 37 6b 0a 20 20 20 20 76 37 76 65 0a 20 20 .v7m.....v7s.....v7k.....v7ve...
a8d00 20 20 76 36 0a 20 20 20 20 76 36 6d 0a 20 20 20 20 76 36 6b 0a 20 20 20 20 76 36 74 32 0a 20 20 ..v6.....v6m.....v6k.....v6t2...
a8d20 20 20 76 35 0a 20 20 20 20 76 35 74 65 0a 20 20 20 20 76 34 74 0a 20 20 61 61 72 63 68 36 34 0a ..v5.....v5te.....v4t...aarch64.
a8d40 20 20 20 20 76 38 5f 34 61 0a 20 20 20 20 76 38 5f 33 61 0a 20 20 20 20 76 38 5f 32 61 0a 20 20 ....v8_4a.....v8_3a.....v8_2a...
a8d60 20 20 76 38 5f 31 61 0a 20 20 20 20 76 38 0a 20 20 20 20 76 38 72 0a 20 20 20 20 76 38 6d 5f 62 ..v8_1a.....v8.....v8r.....v8m_b
a8d80 61 73 65 6c 69 6e 65 0a 20 20 20 20 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 0a 20 20 61 61 72 63 68 aseline.....v8m_mainline...aarch
a8da0 36 34 5f 62 65 0a 20 20 20 20 76 38 5f 34 61 0a 20 20 20 20 76 38 5f 33 61 0a 20 20 20 20 76 38 64_be.....v8_4a.....v8_3a.....v8
a8dc0 5f 32 61 0a 20 20 20 20 76 38 5f 31 61 0a 20 20 20 20 76 38 0a 20 20 20 20 76 38 72 0a 20 20 20 _2a.....v8_1a.....v8.....v8r....
a8de0 20 76 38 6d 5f 62 61 73 65 6c 69 6e 65 0a 20 20 20 20 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 0a 20 .v8m_baseline.....v8m_mainline..
a8e00 20 61 76 72 0a 20 20 62 70 66 65 6c 0a 20 20 62 70 66 65 62 0a 20 20 68 65 78 61 67 6f 6e 0a 20 .avr...bpfel...bpfeb...hexagon..
a8e20 20 6d 69 70 73 0a 20 20 6d 69 70 73 65 6c 0a 20 20 6d 69 70 73 36 34 0a 20 20 6d 69 70 73 36 34 .mips...mipsel...mips64...mips64
a8e40 65 6c 0a 20 20 6d 73 70 34 33 30 0a 20 20 70 6f 77 65 72 70 63 0a 20 20 70 6f 77 65 72 70 63 36 el...msp430...powerpc...powerpc6
a8e60 34 0a 20 20 70 6f 77 65 72 70 63 36 34 6c 65 0a 20 20 72 36 30 30 0a 20 20 61 6d 64 67 63 6e 0a 4...powerpc64le...r600...amdgcn.
a8e80 20 20 72 69 73 63 76 33 32 0a 20 20 72 69 73 63 76 36 34 0a 20 20 73 70 61 72 63 0a 20 20 73 70 ..riscv32...riscv64...sparc...sp
a8ea0 61 72 63 76 39 0a 20 20 73 70 61 72 63 65 6c 0a 20 20 73 33 39 30 78 0a 20 20 74 68 75 6d 62 0a arcv9...sparcel...s390x...thumb.
a8ec0 20 20 20 20 76 38 5f 34 61 0a 20 20 20 20 76 38 5f 33 61 0a 20 20 20 20 76 38 5f 32 61 0a 20 20 ....v8_4a.....v8_3a.....v8_2a...
a8ee0 20 20 76 38 5f 31 61 0a 20 20 20 20 76 38 0a 20 20 20 20 76 38 72 0a 20 20 20 20 76 38 6d 5f 62 ..v8_1a.....v8.....v8r.....v8m_b
a8f00 61 73 65 6c 69 6e 65 0a 20 20 20 20 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 0a 20 20 20 20 76 37 0a aseline.....v8m_mainline.....v7.
a8f20 20 20 20 20 76 37 65 6d 0a 20 20 20 20 76 37 6d 0a 20 20 20 20 76 37 73 0a 20 20 20 20 76 37 6b ....v7em.....v7m.....v7s.....v7k
a8f40 0a 20 20 20 20 76 37 76 65 0a 20 20 20 20 76 36 0a 20 20 20 20 76 36 6d 0a 20 20 20 20 76 36 6b .....v7ve.....v6.....v6m.....v6k
a8f60 0a 20 20 20 20 76 36 74 32 0a 20 20 20 20 76 35 0a 20 20 20 20 76 35 74 65 0a 20 20 20 20 76 34 .....v6t2.....v5.....v5te.....v4
a8f80 74 0a 20 20 74 68 75 6d 62 65 62 0a 20 20 20 20 76 38 5f 34 61 0a 20 20 20 20 76 38 5f 33 61 0a t...thumbeb.....v8_4a.....v8_3a.
a8fa0 20 20 20 20 76 38 5f 32 61 0a 20 20 20 20 76 38 5f 31 61 0a 20 20 20 20 76 38 0a 20 20 20 20 76 ....v8_2a.....v8_1a.....v8.....v
a8fc0 38 72 0a 20 20 20 20 76 38 6d 5f 62 61 73 65 6c 69 6e 65 0a 20 20 20 20 76 38 6d 5f 6d 61 69 6e 8r.....v8m_baseline.....v8m_main
a8fe0 6c 69 6e 65 0a 20 20 20 20 76 37 0a 20 20 20 20 76 37 65 6d 0a 20 20 20 20 76 37 6d 0a 20 20 20 line.....v7.....v7em.....v7m....
a9000 20 76 37 73 0a 20 20 20 20 76 37 6b 0a 20 20 20 20 76 37 76 65 0a 20 20 20 20 76 36 0a 20 20 20 .v7s.....v7k.....v7ve.....v6....
a9020 20 76 36 6d 0a 20 20 20 20 76 36 6b 0a 20 20 20 20 76 36 74 32 0a 20 20 20 20 76 35 0a 20 20 20 .v6m.....v6k.....v6t2.....v5....
a9040 20 76 35 74 65 0a 20 20 20 20 76 34 74 0a 20 20 69 33 38 36 0a 20 20 78 38 36 5f 36 34 20 28 6e .v5te.....v4t...i386...x86_64.(n
a9060 61 74 69 76 65 29 0a 20 20 78 63 6f 72 65 0a 20 20 6e 76 70 74 78 0a 20 20 6e 76 70 74 78 36 34 ative)...xcore...nvptx...nvptx64
a9080 0a 20 20 6c 61 6e 61 69 0a 20 20 77 61 73 6d 33 32 0a 20 20 77 61 73 6d 36 34 0a 0a 4f 70 65 72 ...lanai...wasm32...wasm64..Oper
a90a0 61 74 69 6e 67 20 53 79 73 74 65 6d 73 3a 0a 20 20 66 72 65 65 73 74 61 6e 64 69 6e 67 0a 20 20 ating.Systems:...freestanding...
a90c0 61 6e 61 6e 61 73 0a 20 20 63 6c 6f 75 64 61 62 69 0a 20 20 64 72 61 67 6f 6e 66 6c 79 0a 20 20 ananas...cloudabi...dragonfly...
a90e0 66 72 65 65 62 73 64 0a 20 20 66 75 63 68 73 69 61 0a 20 20 69 6f 73 0a 20 20 6b 66 72 65 65 62 freebsd...fuchsia...ios...kfreeb
a9100 73 64 0a 20 20 6c 69 6e 75 78 20 28 6e 61 74 69 76 65 29 0a 20 20 6c 76 32 0a 20 20 6d 61 63 6f sd...linux.(native)...lv2...maco
a9120 73 78 0a 20 20 6e 65 74 62 73 64 0a 20 20 6f 70 65 6e 62 73 64 0a 20 20 73 6f 6c 61 72 69 73 0a sx...netbsd...openbsd...solaris.
a9140 20 20 77 69 6e 64 6f 77 73 0a 20 20 68 61 69 6b 75 0a 20 20 6d 69 6e 69 78 0a 20 20 72 74 65 6d ..windows...haiku...minix...rtem
a9160 73 0a 20 20 6e 61 63 6c 0a 20 20 63 6e 6b 0a 20 20 61 69 78 0a 20 20 63 75 64 61 0a 20 20 6e 76 s...nacl...cnk...aix...cuda...nv
a9180 63 6c 0a 20 20 61 6d 64 68 73 61 0a 20 20 70 73 34 0a 20 20 65 6c 66 69 61 6d 63 75 0a 20 20 74 cl...amdhsa...ps4...elfiamcu...t
a91a0 76 6f 73 0a 20 20 77 61 74 63 68 6f 73 0a 20 20 6d 65 73 61 33 64 0a 20 20 63 6f 6e 74 69 6b 69 vos...watchos...mesa3d...contiki
a91c0 0a 20 20 61 6d 64 70 61 6c 0a 20 20 7a 65 6e 0a 20 20 75 65 66 69 0a 0a 43 20 41 42 49 73 3a 0a ...amdpal...zen...uefi..C.ABIs:.
a91e0 20 20 6e 6f 6e 65 0a 20 20 67 6e 75 20 28 6e 61 74 69 76 65 29 0a 20 20 67 6e 75 61 62 69 6e 33 ..none...gnu.(native)...gnuabin3
a9200 32 0a 20 20 67 6e 75 61 62 69 36 34 0a 20 20 67 6e 75 65 61 62 69 0a 20 20 67 6e 75 65 61 62 69 2...gnuabi64...gnueabi...gnueabi
a9220 68 66 0a 20 20 67 6e 75 78 33 32 0a 20 20 63 6f 64 65 31 36 0a 20 20 65 61 62 69 0a 20 20 65 61 hf...gnux32...code16...eabi...ea
a9240 62 69 68 66 0a 20 20 61 6e 64 72 6f 69 64 0a 20 20 6d 75 73 6c 0a 20 20 6d 75 73 6c 65 61 62 69 bihf...android...musl...musleabi
a9260 0a 20 20 6d 75 73 6c 65 61 62 69 68 66 0a 20 20 6d 73 76 63 0a 20 20 69 74 61 6e 69 75 6d 0a 20 ...musleabihf...msvc...itanium..
a9280 20 63 79 67 6e 75 73 0a 20 20 63 6f 72 65 63 6c 72 0a 20 20 73 69 6d 75 6c 61 74 6f 72 0a 0a 41 .cygnus...coreclr...simulator..A
a92a0 76 61 69 6c 61 62 6c 65 20 6c 69 62 63 73 3a 0a 20 20 61 61 72 63 68 36 34 5f 62 65 2d 6c 69 6e vailable.libcs:...aarch64_be-lin
a92c0 75 78 2d 67 6e 75 0a 20 20 61 61 72 63 68 36 34 5f 62 65 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 ux-gnu...aarch64_be-linux-musl..
a92e0 20 61 61 72 63 68 36 34 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 20 61 61 72 63 68 36 34 2d 6c 69 6e .aarch64-linux-gnu...aarch64-lin
a9300 75 78 2d 6d 75 73 6c 65 61 62 69 0a 20 20 61 72 6d 65 62 2d 6c 69 6e 75 78 2d 67 6e 75 65 61 62 ux-musleabi...armeb-linux-gnueab
a9320 69 0a 20 20 61 72 6d 65 62 2d 6c 69 6e 75 78 2d 67 6e 75 65 61 62 69 68 66 0a 20 20 61 72 6d 65 i...armeb-linux-gnueabihf...arme
a9340 62 2d 6c 69 6e 75 78 2d 6d 75 73 6c 65 61 62 69 0a 20 20 61 72 6d 65 62 2d 6c 69 6e 75 78 2d 6d b-linux-musleabi...armeb-linux-m
a9360 75 73 6c 65 61 62 69 68 66 0a 20 20 61 72 6d 2d 6c 69 6e 75 78 2d 67 6e 75 65 61 62 69 0a 20 20 usleabihf...arm-linux-gnueabi...
a9380 61 72 6d 2d 6c 69 6e 75 78 2d 67 6e 75 65 61 62 69 68 66 0a 20 20 61 72 6d 2d 6c 69 6e 75 78 2d arm-linux-gnueabihf...arm-linux-
a93a0 6d 75 73 6c 65 61 62 69 0a 20 20 61 72 6d 2d 6c 69 6e 75 78 2d 6d 75 73 6c 65 61 62 69 68 66 0a musleabi...arm-linux-musleabihf.
a93c0 20 20 69 33 38 36 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 20 69 33 38 36 2d 6c 69 6e 75 78 2d 6d 75 ..i386-linux-gnu...i386-linux-mu
a93e0 73 6c 0a 20 20 6d 69 70 73 36 34 65 6c 2d 6c 69 6e 75 78 2d 67 6e 75 61 62 69 36 34 0a 20 20 6d sl...mips64el-linux-gnuabi64...m
a9400 69 70 73 36 34 65 6c 2d 6c 69 6e 75 78 2d 67 6e 75 61 62 69 6e 33 32 0a 20 20 6d 69 70 73 36 34 ips64el-linux-gnuabin32...mips64
a9420 65 6c 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 6d 69 70 73 36 34 2d 6c 69 6e 75 78 2d 67 6e 75 el-linux-musl...mips64-linux-gnu
a9440 61 62 69 36 34 0a 20 20 6d 69 70 73 36 34 2d 6c 69 6e 75 78 2d 67 6e 75 61 62 69 6e 33 32 0a 20 abi64...mips64-linux-gnuabin32..
a9460 20 6d 69 70 73 36 34 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 6d 69 70 73 65 6c 2d 6c 69 6e 75 .mips64-linux-musl...mipsel-linu
a9480 78 2d 67 6e 75 0a 20 20 6d 69 70 73 65 6c 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 6d 69 70 73 x-gnu...mipsel-linux-musl...mips
a94a0 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 20 6d 69 70 73 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 6e -linux-gnu...mips-linux-musl...n
a94c0 69 6f 73 32 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 20 70 6f 77 65 72 70 63 36 34 6c 65 2d 6c 69 6e ios2-linux-gnu...powerpc64le-lin
a94e0 75 78 2d 67 6e 75 0a 20 20 70 6f 77 65 72 70 63 36 34 6c 65 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a ux-gnu...powerpc64le-linux-musl.
a9500 20 20 70 6f 77 65 72 70 63 36 34 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 20 70 6f 77 65 72 70 63 36 ..powerpc64-linux-gnu...powerpc6
a9520 34 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 70 6f 77 65 72 70 63 2d 6c 69 6e 75 78 2d 67 6e 75 4-linux-musl...powerpc-linux-gnu
a9540 0a 20 20 70 6f 77 65 72 70 63 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 72 69 73 63 76 33 32 2d ...powerpc-linux-musl...riscv32-
a9560 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 72 69 73 63 76 36 34 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 linux-musl...riscv64-linux-gnu..
a9580 20 72 69 73 63 76 36 34 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 73 33 39 30 78 2d 6c 69 6e 75 .riscv64-linux-musl...s390x-linu
a95a0 78 2d 67 6e 75 0a 20 20 73 33 39 30 78 2d 6c 69 6e 75 78 2d 6d 75 73 6c 0a 20 20 73 70 61 72 63 x-gnu...s390x-linux-musl...sparc
a95c0 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 20 73 70 61 72 63 76 39 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 -linux-gnu...sparcv9-linux-gnu..
a95e0 20 77 61 73 6d 33 32 2d 66 72 65 65 73 74 61 6e 64 69 6e 67 2d 6d 75 73 6c 0a 20 20 78 38 36 5f .wasm32-freestanding-musl...x86_
a9600 36 34 2d 6c 69 6e 75 78 2d 67 6e 75 0a 20 20 78 38 36 5f 36 34 2d 6c 69 6e 75 78 2d 67 6e 75 78 64-linux-gnu...x86_64-linux-gnux
a9620 33 32 0a 20 20 78 38 36 5f 36 34 2d 6c 69 6e 75 78 2d 6d 75 73 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 32...x86_64-linux-musl</code></p
a9640 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 5a 69 67 20 53 74 61 6e re>.......<p>.......The.Zig.Stan
a9660 64 61 72 64 20 4c 69 62 72 61 72 79 20 28 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e dard.Library.(<code.class="zig">
a9680 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6d 70 6f 72 <span.class="tok-builtin">@impor
a96a0 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 t</span>(<span.class="tok-str">&
a96c0 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 29 20 68 quot;std&quot;</span>)</code>).h
a96e0 61 73 20 61 72 63 68 69 74 65 63 74 75 72 65 2c 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e as.architecture,.environment,.an
a9700 64 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 0a 20 20 20 20 20 20 61 62 73 74 72 61 63 d.operating.system.......abstrac
a9720 74 69 6f 6e 73 2c 20 61 6e 64 20 74 68 75 73 20 74 61 6b 65 73 20 61 64 64 69 74 69 6f 6e 61 6c tions,.and.thus.takes.additional
a9740 20 77 6f 72 6b 20 74 6f 20 73 75 70 70 6f 72 74 20 6d 6f 72 65 20 70 6c 61 74 66 6f 72 6d 73 2e .work.to.support.more.platforms.
a9760 0a 20 20 20 20 20 20 4e 6f 74 20 61 6c 6c 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 .......Not.all.standard.library.
a9780 63 6f 64 65 20 72 65 71 75 69 72 65 73 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 61 code.requires.operating.system.a
a97a0 62 73 74 72 61 63 74 69 6f 6e 73 2c 20 68 6f 77 65 76 65 72 2c 0a 20 20 20 20 20 20 73 6f 20 74 bstractions,.however,.......so.t
a97c0 68 69 6e 67 73 20 73 75 63 68 20 61 73 20 67 65 6e 65 72 69 63 20 64 61 74 61 20 73 74 72 75 63 hings.such.as.generic.data.struc
a97e0 74 75 72 65 73 20 77 6f 72 6b 20 61 6e 20 61 6c 6c 20 61 62 6f 76 65 20 70 6c 61 74 66 6f 72 6d tures.work.an.all.above.platform
a9800 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 20 63 75 72 72 65 s........</p>.......<p>The.curre
a9820 6e 74 20 6c 69 73 74 20 6f 66 20 74 61 72 67 65 74 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 nt.list.of.targets.supported.by.
a9840 74 68 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 69 73 3a 3c 2f 70 3e the.Zig.Standard.Library.is:</p>
a9860 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 4c 69 6e 75 78 20 78 38 36 5f .......<ul>.......<li>Linux.x86_
a9880 36 34 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 57 69 6e 64 6f 77 73 20 78 38 36 5f 36 34 64</li>.......<li>Windows.x86_64
a98a0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 6c 69 3e 6d 61 63 4f 53 20 78 38 36 5f 36 34 3c 2f 6c 69 </li>.......<li>macOS.x86_64</li
a98c0 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 >.......</ul>..............<h1.i
a98e0 64 3d 22 53 74 79 6c 65 2d 47 75 69 64 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 53 74 d="Style-Guide"><a.href="#toc-St
a9900 79 6c 65 2d 47 75 69 64 65 22 3e 53 74 79 6c 65 20 47 75 69 64 65 3c 2f 61 3e 20 3c 61 20 63 6c yle-Guide">Style.Guide</a>.<a.cl
a9920 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 74 79 6c 65 2d 47 75 69 64 65 22 3e c2 a7 ass="hdr".href="#Style-Guide">..
a9940 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 54 68 65 73 65 20 63 6f 64 69 6e </a></h1>........<p>.These.codin
a9960 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 65 6e 66 6f 72 63 65 64 20 62 g.conventions.are.not.enforced.b
a9980 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 20 73 68 69 y.the.compiler,.but.they.are.shi
a99a0 70 70 65 64 20 69 6e 0a 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6c 6f 6e 67 pped.in.this.documentation.along
a99c0 20 77 69 74 68 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 .with.the.compiler.in.order.to.p
a99e0 72 6f 76 69 64 65 20 61 20 70 6f 69 6e 74 20 6f 66 0a 72 65 66 65 72 65 6e 63 65 2c 20 73 68 6f rovide.a.point.of.reference,.sho
a9a00 75 6c 64 20 61 6e 79 6f 6e 65 20 77 69 73 68 20 74 6f 20 70 6f 69 6e 74 20 74 6f 20 61 6e 20 61 uld.anyone.wish.to.point.to.an.a
a9a20 75 74 68 6f 72 69 74 79 20 6f 6e 20 61 67 72 65 65 64 20 75 70 6f 6e 20 5a 69 67 0a 63 6f 64 69 uthority.on.agreed.upon.Zig.codi
a9a40 6e 67 20 73 74 79 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 ng.style........</p>.......<h2.i
a9a60 64 3d 22 57 68 69 74 65 73 70 61 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 57 68 69 d="Whitespace"><a.href="#toc-Whi
a9a80 74 65 73 70 61 63 65 22 3e 57 68 69 74 65 73 70 61 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 tespace">Whitespace</a>.<a.class
a9aa0 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 57 68 69 74 65 73 70 61 63 65 22 3e c2 a7 3c 2f 61 3e ="hdr".href="#Whitespace">..</a>
a9ac0 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 </h2>........<ul>.........<li>..
a9ae0 20 20 20 20 20 20 20 20 20 34 20 73 70 61 63 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 20 20 20 .........4.space.indentation....
a9b00 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 .....</li>.........<li>.........
a9b20 20 20 4f 70 65 6e 20 62 72 61 63 65 73 20 6f 6e 20 73 61 6d 65 20 6c 69 6e 65 2c 20 75 6e 6c 65 ..Open.braces.on.same.line,.unle
a9b40 73 73 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 77 72 61 70 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c ss.you.need.to.wrap..........</l
a9b60 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 61 20 6c 69 73 74 20 6f 66 20 74 68 69 6e i>.........<li>If.a.list.of.thin
a9b80 67 73 20 69 73 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 32 2c 20 70 75 74 20 65 61 63 68 20 69 74 gs.is.longer.than.2,.put.each.it
a9ba0 65 6d 20 6f 6e 20 69 74 73 20 6f 77 6e 20 6c 69 6e 65 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 em.on.its.own.line.and..........
a9bc0 20 65 78 65 72 63 69 73 65 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75 74 20 61 6e 20 .exercise.the.ability.to.put.an.
a9be0 65 78 74 72 61 20 63 6f 6d 6d 61 20 61 74 20 74 68 65 20 65 6e 64 2e 0a 20 20 20 20 20 20 20 20 extra.comma.at.the.end..........
a9c00 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 4c 69 6e </li>.........<li>...........Lin
a9c20 65 20 6c 65 6e 67 74 68 3a 20 61 69 6d 20 66 6f 72 20 31 30 30 3b 20 75 73 65 20 63 6f 6d 6d 6f e.length:.aim.for.100;.use.commo
a9c40 6e 20 73 65 6e 73 65 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 n.sense..........</li>.......</u
a9c60 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 4e 61 6d 65 73 22 3e 3c l>..............<h2.id="Names"><
a9c80 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 4e 61 6d 65 73 22 3e 4e 61 6d 65 73 3c 2f 61 3e 20 3c 61 a.href="#toc-Names">Names</a>.<a
a9ca0 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4e 61 6d 65 73 22 3e c2 a7 3c 2f 61 .class="hdr".href="#Names">..</a
a9cc0 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 6f 75 67 68 6c 79 20 ></h2>........<p>.......Roughly.
a9ce0 73 70 65 61 6b 69 6e 67 3a 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 61 6d 65 speaking:.<code.class="zig">came
a9d00 6c 43 61 73 65 46 75 6e 63 74 69 6f 6e 4e 61 6d 65 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 lCaseFunctionName</code>,.<code.
a9d20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 69 74 6c 65 43 61 73 65 54 79 70 65 4e 61 6d 65 3c 2f 63 class="zig">TitleCaseTypeName</c
a9d40 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d ode>,...............<code.class=
a9d60 22 7a 69 67 22 3e 73 6e 61 6b 65 5f 63 61 73 65 5f 76 61 72 69 61 62 6c 65 5f 6e 61 6d 65 3c 2f "zig">snake_case_variable_name</
a9d80 63 6f 64 65 3e 2e 20 4d 6f 72 65 20 70 72 65 63 69 73 65 6c 79 3a 0a 20 20 20 20 20 20 3c 2f 70 code>..More.precisely:.......</p
a9da0 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 >.......<ul>.........<li>.......
a9dc0 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 78 3c 2f 63 6f ......If.<code.class="zig">x</co
a9de0 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e de>.is.a.<code.class="zig"><span
a9e00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 .class="tok-type">type</span></c
a9e20 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 3c 63 6f 64 65 20 63 6c 61 73 ode>.............then.<code.clas
a9e40 73 3d 22 7a 69 67 22 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c 63 6f 64 65 s="zig">x</code>.should.be.<code
a9e60 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 69 74 6c 65 43 61 73 65 3c 2f 63 6f 64 65 3e 2c 20 75 .class="zig">TitleCase</code>,.u
a9e80 6e 6c 65 73 73 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 61 20 3c 63 6f 64 65 20 nless.it.............is.a.<code.
a9ea0 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 class="zig"><span.class="tok-kw"
a9ec0 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 69 74 68 20 30 20 66 69 65 >struct</span></code>.with.0.fie
a9ee0 6c 64 73 20 61 6e 64 20 69 73 20 6e 65 76 65 72 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 69 6e 73 lds.and.is.never.meant.to.be.ins
a9f00 74 61 6e 74 69 61 74 65 64 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 20 77 68 69 63 68 20 tantiated,.............in.which.
a9f20 63 61 73 65 20 69 74 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 62 65 20 61 20 22 6e case.it.is.considered.to.be.a."n
a9f40 61 6d 65 73 70 61 63 65 22 20 61 6e 64 20 75 73 65 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 amespace".and.uses.<code.class="
a9f60 7a 69 67 22 3e 73 6e 61 6b 65 5f 63 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 zig">snake_case</code>..........
a9f80 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 </li>.........<li>.............I
a9fa0 66 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 f.<code.class="zig">x</code>.is.
a9fc0 63 61 6c 6c 61 62 6c 65 2c 20 61 6e 64 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e callable,.and.<code.class="zig">
a9fe0 78 3c 2f 63 6f 64 65 3e 27 73 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 0a 20 20 20 20 20 20 x</code>'s.return.type.is.......
aa000 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c ......<code.class="zig"><span.cl
aa020 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ass="tok-type">type</span></code
aa040 3e 2c 20 74 68 65 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 78 3c 2f 63 6f 64 >,.then.<code.class="zig">x</cod
aa060 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 54 e>.should.be.<code.class="zig">T
aa080 69 74 6c 65 43 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 itleCase</code>..........</li>..
aa0a0 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 .......<li>.............If.<code
aa0c0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 6f 74 68 65 72 77 69 .class="zig">x</code>.is.otherwi
aa0e0 73 65 20 63 61 6c 6c 61 62 6c 65 2c 20 74 68 65 6e 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a se.callable,.then.<code.class="z
aa100 69 67 22 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ig">x</code>.should.............
aa120 62 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 61 6d 65 6c 43 61 73 65 3c 2f be.<code.class="zig">camelCase</
aa140 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 code>..........</li>.........<li
aa160 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 77 69 73 65 2c 20 3c 63 6f 64 65 20 63 >.............Otherwise,.<code.c
aa180 6c 61 73 73 3d 22 7a 69 67 22 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c 63 lass="zig">x</code>.should.be.<c
aa1a0 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 73 6e 61 6b 65 5f 63 61 73 65 3c 2f 63 6f 64 65 ode.class="zig">snake_case</code
aa1c0 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 >..........</li>.......</ul>....
aa1e0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 63 72 6f 6e 79 6d 73 2c 20 69 6e 69 74 69 61 6c 69 73 ...<p>.......Acronyms,.initialis
aa200 6d 73 2c 20 70 72 6f 70 65 72 20 6e 6f 75 6e 73 2c 20 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 77 ms,.proper.nouns,.or.any.other.w
aa220 6f 72 64 20 74 68 61 74 20 68 61 73 20 63 61 70 69 74 61 6c 69 7a 61 74 69 6f 6e 0a 20 20 20 20 ord.that.has.capitalization.....
aa240 20 20 72 75 6c 65 73 20 69 6e 20 77 72 69 74 74 65 6e 20 45 6e 67 6c 69 73 68 20 61 72 65 20 73 ..rules.in.written.English.are.s
aa260 75 62 6a 65 63 74 20 74 6f 20 6e 61 6d 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 6a 75 73 ubject.to.naming.conventions.jus
aa280 74 20 6c 69 6b 65 20 61 6e 79 20 6f 74 68 65 72 0a 20 20 20 20 20 20 77 6f 72 64 2e 20 45 76 65 t.like.any.other.......word..Eve
aa2a0 6e 20 61 63 72 6f 6e 79 6d 73 20 74 68 61 74 20 61 72 65 20 6f 6e 6c 79 20 32 20 6c 65 74 74 65 n.acronyms.that.are.only.2.lette
aa2c0 72 73 20 6c 6f 6e 67 20 61 72 65 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 73 65 0a 20 20 20 rs.long.are.subject.to.these....
aa2e0 20 20 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 ...conventions........</p>......
aa300 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 61 72 65 20 67 65 6e 65 72 61 6c 20 72 75 6c .<p>.......These.are.general.rul
aa320 65 73 20 6f 66 20 74 68 75 6d 62 3b 20 69 66 20 69 74 20 6d 61 6b 65 73 20 73 65 6e 73 65 20 74 es.of.thumb;.if.it.makes.sense.t
aa340 6f 20 64 6f 20 73 6f 6d 65 74 68 69 6e 67 20 64 69 66 66 65 72 65 6e 74 2c 0a 20 20 20 20 20 20 o.do.something.different,.......
aa360 64 6f 20 77 68 61 74 20 6d 61 6b 65 73 20 73 65 6e 73 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 do.what.makes.sense..For.example
aa380 2c 20 69 66 20 74 68 65 72 65 20 69 73 20 61 6e 20 65 73 74 61 62 6c 69 73 68 65 64 20 63 6f 6e ,.if.there.is.an.established.con
aa3a0 76 65 6e 74 69 6f 6e 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 vention.such.as.......<code.clas
aa3c0 73 3d 22 7a 69 67 22 3e 45 4e 4f 45 4e 54 3c 2f 63 6f 64 65 3e 2c 20 66 6f 6c 6c 6f 77 20 74 68 s="zig">ENOENT</code>,.follow.th
aa3e0 65 20 65 73 74 61 62 6c 69 73 68 65 64 20 63 6f 6e 76 65 6e 74 69 6f 6e 2e 0a 20 20 20 20 20 20 e.established.convention........
aa400 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 78 61 6d 70 6c </p>..............<h2.id="Exampl
aa420 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 45 78 61 6d 70 6c 65 73 22 3e 45 78 61 6d es"><a.href="#toc-Examples">Exam
aa440 70 6c 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 ples</a>.<a.class="hdr".href="#E
aa460 78 61 6d 70 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 xamples">..</a></h2>........<pre
aa480 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ><code.class="zig"><span.class="
aa4a0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 61 6d 65 73 70 61 63 65 5f 6e tok-kw">const</span>.namespace_n
aa4c0 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e ame.=.<span.class="tok-builtin">
aa4e0 40 69 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d @import</span>(<span.class="tok-
aa500 73 74 72 22 3e 26 71 75 6f 74 3b 64 69 72 5f 6e 61 6d 65 2f 66 69 6c 65 5f 6e 61 6d 65 2e 7a 69 str">&quot;dir_name/file_name.zi
aa520 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f g&quot;</span>);.<span.class="to
aa540 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 67 6c 6f 62 61 6c 5f 76 61 72 3a 20 3c 73 70 k-kw">var</span>.global_var:.<sp
aa560 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d an.class="tok-type">i32</span>.=
aa580 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 75 6e 64 65 66 69 6e 65 .<span.class="tok-null">undefine
aa5a0 64 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 d</span>;.<span.class="tok-kw">c
aa5c0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 6f 6e 73 74 5f 6e 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 onst</span>.const_name.=.<span.c
aa5e0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 lass="tok-number">42</span>;.<sp
aa600 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 an.class="tok-kw">const</span>.p
aa620 72 69 6d 69 74 69 76 65 5f 74 79 70 65 5f 61 6c 69 61 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 rimitive_type_alias.=.<span.clas
aa640 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 s="tok-type">f32</span>;.<span.c
aa660 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 72 69 6e lass="tok-kw">const</span>.strin
aa680 67 5f 61 6c 69 61 73 20 3d 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 g_alias.=.[]<span.class="tok-typ
aa6a0 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d e">u8</span>;..<span.class="tok-
aa6c0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 74 72 75 63 74 4e 61 6d 65 20 3d 20 3c 73 kw">const</span>.StructName.=.<s
aa6e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e pan.class="tok-kw">struct</span>
aa700 20 7b 0a 20 20 20 20 66 69 65 6c 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 .{.....field:.<span.class="tok-t
aa720 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ype">i32</span>,.};.<span.class=
aa740 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 74 72 75 63 74 41 6c 69 61 "tok-kw">const</span>.StructAlia
aa760 73 20 3d 20 53 74 72 75 63 74 4e 61 6d 65 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f s.=.StructName;..<span.class="to
aa780 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b k-kw">fn</span>.<span.class="tok
aa7a0 2d 66 6e 22 3e 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 70 61 72 61 6d 5f 6e -fn">functionName</span>(param_n
aa7c0 61 6d 65 3a 20 54 79 70 65 4e 61 6d 65 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ame:.TypeName).<span.class="tok-
aa7e0 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c type">void</span>.{.....<span.cl
aa800 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 75 6e 63 74 69 6f 6e ass="tok-kw">var</span>.function
aa820 50 6f 69 6e 74 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 20 20 66 75 6e 63 Pointer.=.functionName;.....func
aa840 74 69 6f 6e 50 6f 69 6e 74 65 72 28 29 3b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 50 6f 69 6e 74 tionPointer();.....functionPoint
aa860 65 72 20 3d 20 6f 74 68 65 72 46 75 6e 63 74 69 6f 6e 3b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e er.=.otherFunction;.....function
aa880 50 6f 69 6e 74 65 72 28 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 Pointer();.}.<span.class="tok-kw
aa8a0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 75 6e 63 74 69 6f 6e 41 6c 69 61 73 20 3d 20 66 ">const</span>.functionAlias.=.f
aa8c0 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b unctionName;..<span.class="tok-k
aa8e0 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e w">fn</span>.<span.class="tok-fn
aa900 22 3e 4c 69 73 74 54 65 6d 70 6c 61 74 65 46 75 6e 63 74 69 6f 6e 3c 2f 73 70 61 6e 3e 28 3c 73 ">ListTemplateFunction</span>(<s
aa920 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 pan.class="tok-kw">comptime</spa
aa940 6e 3e 20 43 68 69 6c 64 54 79 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 n>.ChildType:.<span.class="tok-t
aa960 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ype">type</span>,.<span.class="t
aa980 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 66 69 78 65 64 5f 73 69 7a ok-kw">comptime</span>.fixed_siz
aa9a0 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c e:.<span.class="tok-type">usize<
aa9c0 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 /span>).<span.class="tok-type">t
aa9e0 79 70 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ype</span>.{.....<span.class="to
aaa00 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 4c 69 73 74 28 43 68 69 6c 64 54 79 k-kw">return</span>.List(ChildTy
aaa20 70 65 2c 20 66 69 78 65 64 5f 73 69 7a 65 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d pe,.fixed_size);.}..<span.class=
aaa40 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "tok-kw">fn</span>.<span.class="
aaa60 74 6f 6b 2d 66 6e 22 3e 53 68 6f 72 74 4c 69 73 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 tok-fn">ShortList</span>(<span.c
aaa80 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 54 3a lass="tok-kw">comptime</span>.T:
aaaa0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 .<span.class="tok-type">type</sp
aaac0 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 an>,.<span.class="tok-kw">compti
aaae0 6d 65 3c 2f 73 70 61 6e 3e 20 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 me</span>.n:.<span.class="tok-ty
aab00 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pe">usize</span>).<span.class="t
aab20 6f 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e ok-type">type</span>.{.....<span
aab40 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 3c 73 .class="tok-kw">return</span>.<s
aab60 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e pan.class="tok-kw">struct</span>
aab80 20 7b 0a 20 20 20 20 20 20 20 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 5b 6e 5d 54 2c 0a 20 20 20 .{.........field_name:.[n]T,....
aaba0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 .....<span.class="tok-kw">fn</sp
aabc0 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 65 74 68 6f 64 4e an>.<span.class="tok-fn">methodN
aabe0 61 6d 65 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ame</span>().<span.class="tok-ty
aac00 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 3c 73 70 pe">void</span>.{}.....};.}..<sp
aac20 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 77 6f an.class="tok-comment">//.The.wo
aac40 72 64 20 58 4d 4c 20 6c 6f 73 65 73 20 69 74 73 20 63 61 73 69 6e 67 20 77 68 65 6e 20 75 73 65 rd.XML.loses.its.casing.when.use
aac60 64 20 69 6e 20 5a 69 67 20 69 64 65 6e 74 69 66 69 65 72 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 d.in.Zig.identifiers.</span>.<sp
aac80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 an.class="tok-kw">const</span>.x
aaca0 6d 6c 5f 64 6f 63 75 6d 65 6e 74 20 3d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ml_document.=.....<span.class="t
aacc0 6f 6b 2d 73 74 72 22 3e 5c 5c 26 6c 74 3b 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 26 71 75 6f 74 ok-str">\\&lt;?xml.version=&quot
aace0 3b 31 2e 30 26 71 75 6f 74 3b 20 65 6e 63 6f 64 69 6e 67 3d 26 71 75 6f 74 3b 55 54 46 2d 38 26 ;1.0&quot;.encoding=&quot;UTF-8&
aad00 71 75 6f 74 3b 3f 26 67 74 3b 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 quot;?&gt;.</span>....<span.clas
aad20 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 26 6c 74 3b 64 6f 63 75 6d 65 6e 74 26 67 74 3b 0a 3c s="tok-str">\\&lt;document&gt;.<
aad40 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e /span>....<span.class="tok-str">
aad60 5c 5c 26 6c 74 3b 2f 64 6f 63 75 6d 65 6e 74 26 67 74 3b 0a 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 \\&lt;/document&gt;.</span>;.<sp
aad80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 58 an.class="tok-kw">const</span>.X
aada0 6d 6c 50 61 72 73 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e mlParser.=.<span.class="tok-kw">
aadc0 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 69 65 6c 64 3a 20 3c 73 70 61 6e struct</span>.{.....field:.<span
aade0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b .class="tok-type">i32</span>,.};
aae00 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 ..<span.class="tok-comment">//.T
aae20 68 65 20 69 6e 69 74 69 61 6c 73 20 42 45 20 28 42 69 67 20 45 6e 64 69 61 6e 29 20 61 72 65 20 he.initials.BE.(Big.Endian).are.
aae40 6a 75 73 74 20 61 6e 6f 74 68 65 72 20 77 6f 72 64 20 69 6e 20 5a 69 67 20 69 64 65 6e 74 69 66 just.another.word.in.Zig.identif
aae60 69 65 72 20 6e 61 6d 65 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ier.names.</span>.<span.class="t
aae80 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ok-kw">fn</span>.<span.class="to
aaea0 6b 2d 66 6e 22 3e 72 65 61 64 55 33 32 42 65 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 k-fn">readU32Be</span>().<span.c
aaec0 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 7b 7d 3c 2f 63 lass="tok-type">u32</span>.{}</c
aaee0 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 65 65 20 74 ode></pre>.......<p>.......See.t
aaf00 68 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 66 6f 72 20 6d 6f 72 65 he.Zig.Standard.Library.for.more
aaf20 20 65 78 61 6d 70 6c 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 .examples........</p>...........
aaf40 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 53 6f 75 72 63 65 2d 45 6e 63 6f 64 69 6e ..........<h1.id="Source-Encodin
aaf60 67 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 53 6f 75 72 63 65 2d 45 6e 63 6f 64 69 6e 67 g"><a.href="#toc-Source-Encoding
aaf80 22 3e 53 6f 75 72 63 65 20 45 6e 63 6f 64 69 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 ">Source.Encoding</a>.<a.class="
aafa0 68 64 72 22 20 68 72 65 66 3d 22 23 53 6f 75 72 63 65 2d 45 6e 63 6f 64 69 6e 67 22 3e c2 a7 3c hdr".href="#Source-Encoding">..<
aafc0 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 73 6f 75 72 63 65 20 63 6f /a></h1>........<p>Zig.source.co
aafe0 64 65 20 69 73 20 65 6e 63 6f 64 65 64 20 69 6e 20 55 54 46 2d 38 2e 20 41 6e 20 69 6e 76 61 6c de.is.encoded.in.UTF-8..An.inval
ab000 69 64 20 55 54 46 2d 38 20 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 72 65 73 75 6c 74 73 20 69 id.UTF-8.byte.sequence.results.i
ab020 6e 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e n.a.compile.error.</p>.......<p>
ab040 54 68 72 6f 75 67 68 6f 75 74 20 61 6c 6c 20 7a 69 67 20 73 6f 75 72 63 65 20 63 6f 64 65 20 28 Throughout.all.zig.source.code.(
ab060 69 6e 63 6c 75 64 69 6e 67 20 69 6e 20 63 6f 6d 6d 65 6e 74 73 29 2c 20 73 6f 6d 65 20 63 6f 64 including.in.comments),.some.cod
ab080 65 70 6f 69 6e 74 73 20 61 72 65 20 6e 65 76 65 72 20 61 6c 6c 6f 77 65 64 3a 3c 2f 70 3e 0a 20 epoints.are.never.allowed:</p>..
ab0a0 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 73 63 69 69 20 63 6f 6e 74 .....<ul>.........<li>Ascii.cont
ab0c0 72 6f 6c 20 63 68 61 72 61 63 74 65 72 73 2c 20 65 78 63 65 70 74 20 66 6f 72 20 55 2b 30 30 30 rol.characters,.except.for.U+000
ab0e0 61 20 28 4c 46 29 3a 20 55 2b 30 30 30 30 20 2d 20 55 2b 30 30 30 39 2c 20 55 2b 30 30 30 62 20 a.(LF):.U+0000.-.U+0009,.U+000b.
ab100 2d 20 55 2b 30 30 30 31 66 2c 20 55 2b 30 30 37 66 2e 20 28 4e 6f 74 65 20 74 68 61 74 20 57 69 -.U+0001f,.U+007f..(Note.that.Wi
ab120 6e 64 6f 77 73 20 6c 69 6e 65 20 65 6e 64 69 6e 67 73 20 28 43 52 4c 46 29 20 61 72 65 20 6e 6f ndows.line.endings.(CRLF).are.no
ab140 74 20 61 6c 6c 6f 77 65 64 2c 20 61 6e 64 20 68 61 72 64 20 74 61 62 73 20 61 72 65 20 6e 6f 74 t.allowed,.and.hard.tabs.are.not
ab160 20 61 6c 6c 6f 77 65 64 2e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4e 6f 6e 2d .allowed.)</li>.........<li>Non-
ab180 41 73 63 69 69 20 55 6e 69 63 6f 64 65 20 6c 69 6e 65 20 65 6e 64 69 6e 67 73 3a 20 55 2b 30 30 Ascii.Unicode.line.endings:.U+00
ab1a0 38 35 20 28 4e 45 4c 29 2c 20 55 2b 32 30 32 38 20 28 4c 53 29 2c 20 55 2b 32 30 32 39 20 28 50 85.(NEL),.U+2028.(LS),.U+2029.(P
ab1c0 53 29 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 S).</li>.......</ul>.......<p>Th
ab1e0 65 20 63 6f 64 65 70 6f 69 6e 74 20 55 2b 30 30 30 61 20 28 4c 46 29 20 28 77 68 69 63 68 20 69 e.codepoint.U+000a.(LF).(which.i
ab200 73 20 65 6e 63 6f 64 65 64 20 61 73 20 74 68 65 20 73 69 6e 67 6c 65 2d 62 79 74 65 20 76 61 6c s.encoded.as.the.single-byte.val
ab220 75 65 20 30 78 30 61 29 20 69 73 20 74 68 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 ue.0x0a).is.the.line.terminator.
ab240 63 68 61 72 61 63 74 65 72 2e 20 54 68 69 73 20 63 68 61 72 61 63 74 65 72 20 61 6c 77 61 79 73 character..This.character.always
ab260 20 74 65 72 6d 69 6e 61 74 65 73 20 61 20 6c 69 6e 65 20 6f 66 20 7a 69 67 20 73 6f 75 72 63 65 .terminates.a.line.of.zig.source
ab280 20 63 6f 64 65 20 28 65 78 63 65 70 74 20 70 6f 73 73 62 6c 79 20 74 68 65 20 6c 61 73 74 20 6c .code.(except.possbly.the.last.l
ab2a0 69 6e 65 20 6f 66 20 74 68 65 20 66 69 6c 65 29 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 46 ine.of.the.file).</p>.......<p>F
ab2c0 6f 72 20 73 6f 6d 65 20 64 69 73 63 75 73 73 69 6f 6e 20 6f 6e 20 74 68 65 20 72 61 74 69 6f 6e or.some.discussion.on.the.ration
ab2e0 61 6c 65 20 62 65 68 69 6e 64 20 74 68 65 73 65 20 64 65 73 69 67 6e 20 64 65 63 69 73 69 6f 6e ale.behind.these.design.decision
ab300 73 2c 20 73 65 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 s,.see.<a.href="https://github.c
ab320 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 36 36 33 22 3e 69 73 73 75 65 om/ziglang/zig/issues/663">issue
ab340 20 23 36 36 33 3c 2f 61 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 31 20 .#663</a></p>...............<h1.
ab360 69 64 3d 22 4b 65 79 77 6f 72 64 2d 52 65 66 65 72 65 6e 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 id="Keyword-Reference"><a.href="
ab380 23 74 6f 63 2d 4b 65 79 77 6f 72 64 2d 52 65 66 65 72 65 6e 63 65 22 3e 4b 65 79 77 6f 72 64 20 #toc-Keyword-Reference">Keyword.
ab3a0 52 65 66 65 72 65 6e 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 Reference</a>.<a.class="hdr".hre
ab3c0 66 3d 22 23 4b 65 79 77 6f 72 64 2d 52 65 66 65 72 65 6e 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 f="#Keyword-Reference">..</a></h
ab3e0 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 4f 44 4f 20 74 68 65 20 72 65 73 1>........<p>.......TODO.the.res
ab400 74 20 6f 66 20 74 68 65 20 6b 65 79 77 6f 72 64 73 2e 20 4d 6f 73 74 20 6f 66 20 74 68 65 73 65 t.of.the.keywords..Most.of.these
ab420 20 63 61 6e 20 6a 75 73 74 20 62 65 20 6c 69 6e 6b 73 20 74 6f 20 74 68 65 20 72 65 6c 65 76 61 .can.just.be.links.to.the.releva
ab440 6e 74 20 73 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 nt.section........</p>.......<h2
ab460 20 69 64 3d 22 4b 65 79 77 6f 72 64 2d 70 75 62 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d .id="Keyword-pub"><a.href="#toc-
ab480 4b 65 79 77 6f 72 64 2d 70 75 62 22 3e 4b 65 79 77 6f 72 64 3a 20 70 75 62 3c 2f 61 3e 20 3c 61 Keyword-pub">Keyword:.pub</a>.<a
ab4a0 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4b 65 79 77 6f 72 64 2d 70 75 62 22 .class="hdr".href="#Keyword-pub"
ab4c0 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 20 3c 63 6f 64 65 >..</a></h2>........<p>The.<code
ab4e0 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .class="zig"><span.class="tok-kw
ab500 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 ">pub</span></code>.in.front.of.
ab520 61 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6d 61 6b 65 73 20 74 68 a.top.level.declaration.makes.th
ab540 65 0a 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20 74 6f e.......declaration.available.to
ab560 20 72 65 66 65 72 65 6e 63 65 20 66 72 6f 6d 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 65 .reference.from.a.different.file
ab580 20 74 68 61 6e 20 74 68 65 20 6f 6e 65 20 69 74 20 69 73 20 64 65 63 6c 61 72 65 64 20 69 6e 2e .than.the.one.it.is.declared.in.
ab5a0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 </p>.......<p><a.href="https://g
ab5c0 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 32 30 35 ithub.com/ziglang/zig/issues/205
ab5e0 39 22 3e 54 4f 44 4f 20 64 65 6c 65 74 65 20 70 75 62 20 73 79 6e 74 61 78 20 66 6f 72 20 66 69 9">TODO.delete.pub.syntax.for.fi
ab600 65 6c 64 73 2c 20 6f 72 20 6d 61 6b 65 20 69 74 20 64 6f 20 73 6f 6d 65 74 68 69 6e 67 2e 3c 2f elds,.or.make.it.do.something.</
ab620 61 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c a></p>.......<p>See.also:</p><ul
ab640 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c >.<li><a.href="#import">@import<
ab660 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 /a></li>.</ul>..................
ab680 20 20 20 20 20 3c 68 31 20 69 64 3d 22 47 72 61 6d 6d 61 72 22 3e 3c 61 20 68 72 65 66 3d 22 23 .....<h1.id="Grammar"><a.href="#
ab6a0 74 6f 63 2d 47 72 61 6d 6d 61 72 22 3e 47 72 61 6d 6d 61 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 toc-Grammar">Grammar</a>.<a.clas
ab6c0 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 47 72 61 6d 6d 61 72 22 3e c2 a7 3c 2f 61 3e 3c 2f s="hdr".href="#Grammar">..</a></
ab6e0 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 52 6f 6f 74 20 26 6c 74 3b 2d h1>........<pre><code>Root.&lt;-
ab700 20 73 6b 69 70 20 43 6f 6e 74 61 69 6e 65 72 4d 65 6d 62 65 72 73 20 65 6f 66 0a 0a 23 20 2a 2a .skip.ContainerMembers.eof..#.**
ab720 2a 20 54 6f 70 20 6c 65 76 65 6c 20 2a 2a 2a 0a 43 6f 6e 74 61 69 6e 65 72 4d 65 6d 62 65 72 73 *.Top.level.***.ContainerMembers
ab740 0a 20 20 20 20 26 6c 74 3b 2d 20 54 65 73 74 44 65 63 6c 20 43 6f 6e 74 61 69 6e 65 72 4d 65 6d .....&lt;-.TestDecl.ContainerMem
ab760 62 65 72 73 0a 20 20 20 20 20 2f 20 54 6f 70 4c 65 76 65 6c 43 6f 6d 70 74 69 6d 65 20 43 6f 6e bers....../.TopLevelComptime.Con
ab780 74 61 69 6e 65 72 4d 65 6d 62 65 72 73 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 70 75 62 tainerMembers....../.KEYWORD_pub
ab7a0 3f 20 54 6f 70 4c 65 76 65 6c 44 65 63 6c 20 43 6f 6e 74 61 69 6e 65 72 4d 65 6d 62 65 72 73 0a ?.TopLevelDecl.ContainerMembers.
ab7c0 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 70 75 62 3f 20 43 6f 6e 74 61 69 6e 65 72 46 69 65 ...../.KEYWORD_pub?.ContainerFie
ab7e0 6c 64 20 43 4f 4d 4d 41 20 43 6f 6e 74 61 69 6e 65 72 4d 65 6d 62 65 72 73 0a 20 20 20 20 20 2f ld.COMMA.ContainerMembers....../
ab800 20 4b 45 59 57 4f 52 44 5f 70 75 62 3f 20 43 6f 6e 74 61 69 6e 65 72 46 69 65 6c 64 0a 20 20 20 .KEYWORD_pub?.ContainerField....
ab820 20 20 2f 0a 0a 54 65 73 74 44 65 63 6c 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 74 65 73 74 ../..TestDecl.&lt;-.KEYWORD_test
ab840 20 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 20 42 6c 6f 63 6b 0a 0a 54 6f 70 4c 65 76 65 6c 43 6f .STRINGLITERAL.Block..TopLevelCo
ab860 6d 70 74 69 6d 65 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 20 42 6c mptime.&lt;-.KEYWORD_comptime.Bl
ab880 6f 63 6b 45 78 70 72 0a 0a 54 6f 70 4c 65 76 65 6c 44 65 63 6c 0a 20 20 20 20 26 6c 74 3b 2d 20 ockExpr..TopLevelDecl.....&lt;-.
ab8a0 28 4b 45 59 57 4f 52 44 5f 65 78 70 6f 72 74 20 2f 20 4b 45 59 57 4f 52 44 5f 65 78 74 65 72 6e (KEYWORD_export./.KEYWORD_extern
ab8c0 20 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 3f 20 2f 20 4b 45 59 57 4f 52 44 5f 69 6e 6c 69 6e 65 .STRINGLITERAL?./.KEYWORD_inline
ab8e0 29 3f 20 46 6e 50 72 6f 74 6f 20 28 53 45 4d 49 43 4f 4c 4f 4e 20 2f 20 42 6c 6f 63 6b 29 0a 20 )?.FnProto.(SEMICOLON./.Block)..
ab900 20 20 20 20 2f 20 28 4b 45 59 57 4f 52 44 5f 65 78 70 6f 72 74 20 2f 20 4b 45 59 57 4f 52 44 5f ..../.(KEYWORD_export./.KEYWORD_
ab920 65 78 74 65 72 6e 20 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 3f 29 3f 20 4b 45 59 57 4f 52 44 5f extern.STRINGLITERAL?)?.KEYWORD_
ab940 74 68 72 65 61 64 6c 6f 63 61 6c 3f 20 56 61 72 44 65 63 6c 0a 20 20 20 20 20 2f 20 4b 45 59 57 threadlocal?.VarDecl....../.KEYW
ab960 4f 52 44 5f 75 73 65 20 45 78 70 72 20 53 45 4d 49 43 4f 4c 4f 4e 0a 0a 46 6e 50 72 6f 74 6f 20 ORD_use.Expr.SEMICOLON..FnProto.
ab980 26 6c 74 3b 2d 20 46 6e 43 43 3f 20 4b 45 59 57 4f 52 44 5f 66 6e 20 49 44 45 4e 54 49 46 49 45 &lt;-.FnCC?.KEYWORD_fn.IDENTIFIE
ab9a0 52 3f 20 4c 50 41 52 45 4e 20 50 61 72 61 6d 44 65 63 6c 4c 69 73 74 20 52 50 41 52 45 4e 20 42 R?.LPAREN.ParamDeclList.RPAREN.B
ab9c0 79 74 65 41 6c 69 67 6e 3f 20 4c 69 6e 6b 53 65 63 74 69 6f 6e 3f 20 45 58 43 4c 41 4d 41 54 49 yteAlign?.LinkSection?.EXCLAMATI
ab9e0 4f 4e 4d 41 52 4b 3f 20 28 4b 45 59 57 4f 52 44 5f 76 61 72 20 2f 20 54 79 70 65 45 78 70 72 29 ONMARK?.(KEYWORD_var./.TypeExpr)
aba00 0a 0a 56 61 72 44 65 63 6c 20 26 6c 74 3b 2d 20 28 4b 45 59 57 4f 52 44 5f 63 6f 6e 73 74 20 2f ..VarDecl.&lt;-.(KEYWORD_const./
aba20 20 4b 45 59 57 4f 52 44 5f 76 61 72 29 20 49 44 45 4e 54 49 46 49 45 52 20 28 43 4f 4c 4f 4e 20 .KEYWORD_var).IDENTIFIER.(COLON.
aba40 54 79 70 65 45 78 70 72 29 3f 20 42 79 74 65 41 6c 69 67 6e 3f 20 4c 69 6e 6b 53 65 63 74 69 6f TypeExpr)?.ByteAlign?.LinkSectio
aba60 6e 3f 20 28 45 51 55 41 4c 20 45 78 70 72 29 3f 20 53 45 4d 49 43 4f 4c 4f 4e 0a 0a 43 6f 6e 74 n?.(EQUAL.Expr)?.SEMICOLON..Cont
aba80 61 69 6e 65 72 46 69 65 6c 64 20 26 6c 74 3b 2d 20 49 44 45 4e 54 49 46 49 45 52 20 28 43 4f 4c ainerField.&lt;-.IDENTIFIER.(COL
abaa0 4f 4e 20 54 79 70 65 45 78 70 72 29 3f 20 28 45 51 55 41 4c 20 45 78 70 72 29 3f 0a 0a 23 20 2a ON.TypeExpr)?.(EQUAL.Expr)?..#.*
abac0 2a 2a 20 42 6c 6f 63 6b 20 4c 65 76 65 6c 20 2a 2a 2a 0a 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 **.Block.Level.***.Statement....
abae0 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 3f 20 56 61 72 44 65 63 6c .&lt;-.KEYWORD_comptime?.VarDecl
abb00 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 20 42 6c 6f 63 6b 45 78 ....../.KEYWORD_comptime.BlockEx
abb20 70 72 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 73 75 73 70 65 prStatement....../.KEYWORD_suspe
abb40 6e 64 20 28 53 45 4d 49 43 4f 4c 4f 4e 20 2f 20 42 6c 6f 63 6b 45 78 70 72 53 74 61 74 65 6d 65 nd.(SEMICOLON./.BlockExprStateme
abb60 6e 74 29 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 64 65 66 65 72 20 42 6c 6f 63 6b 45 78 nt)....../.KEYWORD_defer.BlockEx
abb80 70 72 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 65 72 72 64 65 prStatement....../.KEYWORD_errde
abba0 66 65 72 20 42 6c 6f 63 6b 45 78 70 72 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2f 20 49 66 fer.BlockExprStatement....../.If
abbc0 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2f 20 4c 61 62 65 6c 65 64 53 74 61 74 65 6d 65 6e Statement....../.LabeledStatemen
abbe0 74 0a 20 20 20 20 20 2f 20 53 77 69 74 63 68 45 78 70 72 0a 20 20 20 20 20 2f 20 41 73 73 69 67 t....../.SwitchExpr....../.Assig
abc00 6e 45 78 70 72 20 53 45 4d 49 43 4f 4c 4f 4e 0a 0a 49 66 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 nExpr.SEMICOLON..IfStatement....
abc20 20 26 6c 74 3b 2d 20 49 66 50 72 65 66 69 78 20 42 6c 6f 63 6b 45 78 70 72 20 28 20 4b 45 59 57 .&lt;-.IfPrefix.BlockExpr.(.KEYW
abc40 4f 52 44 5f 65 6c 73 65 20 50 61 79 6c 6f 61 64 3f 20 53 74 61 74 65 6d 65 6e 74 20 29 3f 0a 20 ORD_else.Payload?.Statement.)?..
abc60 20 20 20 20 2f 20 49 66 50 72 65 66 69 78 20 41 73 73 69 67 6e 45 78 70 72 20 28 20 53 45 4d 49 ..../.IfPrefix.AssignExpr.(.SEMI
abc80 43 4f 4c 4f 4e 20 2f 20 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 50 61 79 6c 6f 61 64 3f 20 53 74 COLON./.KEYWORD_else.Payload?.St
abca0 61 74 65 6d 65 6e 74 20 29 0a 0a 4c 61 62 65 6c 65 64 53 74 61 74 65 6d 65 6e 74 20 26 6c 74 3b atement.)..LabeledStatement.&lt;
abcc0 2d 20 42 6c 6f 63 6b 4c 61 62 65 6c 3f 20 28 42 6c 6f 63 6b 20 2f 20 4c 6f 6f 70 53 74 61 74 65 -.BlockLabel?.(Block./.LoopState
abce0 6d 65 6e 74 29 0a 0a 4c 6f 6f 70 53 74 61 74 65 6d 65 6e 74 20 26 6c 74 3b 2d 20 4b 45 59 57 4f ment)..LoopStatement.&lt;-.KEYWO
abd00 52 44 5f 69 6e 6c 69 6e 65 3f 20 28 46 6f 72 53 74 61 74 65 6d 65 6e 74 20 2f 20 57 68 69 6c 65 RD_inline?.(ForStatement./.While
abd20 53 74 61 74 65 6d 65 6e 74 29 0a 0a 46 6f 72 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 26 6c 74 Statement)..ForStatement.....&lt
abd40 3b 2d 20 46 6f 72 50 72 65 66 69 78 20 42 6c 6f 63 6b 45 78 70 72 20 28 20 4b 45 59 57 4f 52 44 ;-.ForPrefix.BlockExpr.(.KEYWORD
abd60 5f 65 6c 73 65 20 53 74 61 74 65 6d 65 6e 74 20 29 3f 0a 20 20 20 20 20 2f 20 46 6f 72 50 72 65 _else.Statement.)?....../.ForPre
abd80 66 69 78 20 41 73 73 69 67 6e 45 78 70 72 20 28 20 53 45 4d 49 43 4f 4c 4f 4e 20 2f 20 4b 45 59 fix.AssignExpr.(.SEMICOLON./.KEY
abda0 57 4f 52 44 5f 65 6c 73 65 20 53 74 61 74 65 6d 65 6e 74 20 29 0a 0a 57 68 69 6c 65 53 74 61 74 WORD_else.Statement.)..WhileStat
abdc0 65 6d 65 6e 74 0a 20 20 20 20 26 6c 74 3b 2d 20 57 68 69 6c 65 50 72 65 66 69 78 20 42 6c 6f 63 ement.....&lt;-.WhilePrefix.Bloc
abde0 6b 45 78 70 72 20 28 20 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 50 61 79 6c 6f 61 64 3f 20 53 74 kExpr.(.KEYWORD_else.Payload?.St
abe00 61 74 65 6d 65 6e 74 20 29 3f 0a 20 20 20 20 20 2f 20 57 68 69 6c 65 50 72 65 66 69 78 20 41 73 atement.)?....../.WhilePrefix.As
abe20 73 69 67 6e 45 78 70 72 20 28 20 53 45 4d 49 43 4f 4c 4f 4e 20 2f 20 4b 45 59 57 4f 52 44 5f 65 signExpr.(.SEMICOLON./.KEYWORD_e
abe40 6c 73 65 20 50 61 79 6c 6f 61 64 3f 20 53 74 61 74 65 6d 65 6e 74 20 29 0a 0a 42 6c 6f 63 6b 45 lse.Payload?.Statement.)..BlockE
abe60 78 70 72 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 26 6c 74 3b 2d 20 42 6c 6f 63 6b 45 78 70 72 xprStatement.....&lt;-.BlockExpr
abe80 0a 20 20 20 20 20 2f 20 41 73 73 69 67 6e 45 78 70 72 20 53 45 4d 49 43 4f 4c 4f 4e 0a 0a 42 6c ....../.AssignExpr.SEMICOLON..Bl
abea0 6f 63 6b 45 78 70 72 20 26 6c 74 3b 2d 20 42 6c 6f 63 6b 4c 61 62 65 6c 3f 20 42 6c 6f 63 6b 0a ockExpr.&lt;-.BlockLabel?.Block.
abec0 0a 23 20 2a 2a 2a 20 45 78 70 72 65 73 73 69 6f 6e 20 4c 65 76 65 6c 20 2a 2a 2a 0a 41 73 73 69 .#.***.Expression.Level.***.Assi
abee0 67 6e 45 78 70 72 20 26 6c 74 3b 2d 20 45 78 70 72 20 28 41 73 73 69 67 6e 4f 70 20 45 78 70 72 gnExpr.&lt;-.Expr.(AssignOp.Expr
abf00 29 3f 0a 0a 45 78 70 72 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 74 72 79 2a 20 42 6f 6f 6c )?..Expr.&lt;-.KEYWORD_try*.Bool
abf20 4f 72 45 78 70 72 0a 0a 42 6f 6f 6c 4f 72 45 78 70 72 20 26 6c 74 3b 2d 20 42 6f 6f 6c 41 6e 64 OrExpr..BoolOrExpr.&lt;-.BoolAnd
abf40 45 78 70 72 20 28 4b 45 59 57 4f 52 44 5f 6f 72 20 42 6f 6f 6c 41 6e 64 45 78 70 72 29 2a 0a 0a Expr.(KEYWORD_or.BoolAndExpr)*..
abf60 42 6f 6f 6c 41 6e 64 45 78 70 72 20 26 6c 74 3b 2d 20 43 6f 6d 70 61 72 65 45 78 70 72 20 28 4b BoolAndExpr.&lt;-.CompareExpr.(K
abf80 45 59 57 4f 52 44 5f 61 6e 64 20 43 6f 6d 70 61 72 65 45 78 70 72 29 2a 0a 0a 43 6f 6d 70 61 72 EYWORD_and.CompareExpr)*..Compar
abfa0 65 45 78 70 72 20 26 6c 74 3b 2d 20 42 69 74 77 69 73 65 45 78 70 72 20 28 43 6f 6d 70 61 72 65 eExpr.&lt;-.BitwiseExpr.(Compare
abfc0 4f 70 20 42 69 74 77 69 73 65 45 78 70 72 29 3f 0a 0a 42 69 74 77 69 73 65 45 78 70 72 20 26 6c Op.BitwiseExpr)?..BitwiseExpr.&l
abfe0 74 3b 2d 20 42 69 74 53 68 69 66 74 45 78 70 72 20 28 42 69 74 77 69 73 65 4f 70 20 42 69 74 53 t;-.BitShiftExpr.(BitwiseOp.BitS
ac000 68 69 66 74 45 78 70 72 29 2a 0a 0a 42 69 74 53 68 69 66 74 45 78 70 72 20 26 6c 74 3b 2d 20 41 hiftExpr)*..BitShiftExpr.&lt;-.A
ac020 64 64 69 74 69 6f 6e 45 78 70 72 20 28 42 69 74 53 68 69 66 74 4f 70 20 41 64 64 69 74 69 6f 6e dditionExpr.(BitShiftOp.Addition
ac040 45 78 70 72 29 2a 0a 0a 41 64 64 69 74 69 6f 6e 45 78 70 72 20 26 6c 74 3b 2d 20 4d 75 6c 74 69 Expr)*..AdditionExpr.&lt;-.Multi
ac060 70 6c 79 45 78 70 72 20 28 41 64 64 69 74 69 6f 6e 4f 70 20 4d 75 6c 74 69 70 6c 79 45 78 70 72 plyExpr.(AdditionOp.MultiplyExpr
ac080 29 2a 0a 0a 4d 75 6c 74 69 70 6c 79 45 78 70 72 20 26 6c 74 3b 2d 20 50 72 65 66 69 78 45 78 70 )*..MultiplyExpr.&lt;-.PrefixExp
ac0a0 72 20 28 4d 75 6c 74 69 70 6c 79 4f 70 20 50 72 65 66 69 78 45 78 70 72 29 2a 0a 0a 50 72 65 66 r.(MultiplyOp.PrefixExpr)*..Pref
ac0c0 69 78 45 78 70 72 20 26 6c 74 3b 2d 20 50 72 65 66 69 78 4f 70 2a 20 50 72 69 6d 61 72 79 45 78 ixExpr.&lt;-.PrefixOp*.PrimaryEx
ac0e0 70 72 0a 0a 50 72 69 6d 61 72 79 45 78 70 72 0a 20 20 20 20 26 6c 74 3b 2d 20 41 73 6d 45 78 70 pr..PrimaryExpr.....&lt;-.AsmExp
ac100 72 0a 20 20 20 20 20 2f 20 49 66 45 78 70 72 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 62 r....../.IfExpr....../.KEYWORD_b
ac120 72 65 61 6b 20 42 72 65 61 6b 4c 61 62 65 6c 3f 20 45 78 70 72 3f 0a 20 20 20 20 20 2f 20 4b 45 reak.BreakLabel?.Expr?....../.KE
ac140 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 20 45 78 70 72 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f YWORD_comptime.Expr....../.KEYWO
ac160 52 44 5f 63 6f 6e 74 69 6e 75 65 20 42 72 65 61 6b 4c 61 62 65 6c 3f 0a 20 20 20 20 20 2f 20 4b RD_continue.BreakLabel?....../.K
ac180 45 59 57 4f 52 44 5f 72 65 73 75 6d 65 20 45 78 70 72 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 EYWORD_resume.Expr....../.KEYWOR
ac1a0 44 5f 72 65 74 75 72 6e 20 45 78 70 72 3f 0a 20 20 20 20 20 2f 20 42 6c 6f 63 6b 4c 61 62 65 6c D_return.Expr?....../.BlockLabel
ac1c0 3f 20 4c 6f 6f 70 45 78 70 72 0a 20 20 20 20 20 2f 20 42 6c 6f 63 6b 0a 20 20 20 20 20 2f 20 43 ?.LoopExpr....../.Block....../.C
ac1e0 75 72 6c 79 53 75 66 66 69 78 45 78 70 72 0a 0a 49 66 45 78 70 72 20 26 6c 74 3b 2d 20 49 66 50 urlySuffixExpr..IfExpr.&lt;-.IfP
ac200 72 65 66 69 78 20 45 78 70 72 20 28 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 50 61 79 6c 6f 61 64 refix.Expr.(KEYWORD_else.Payload
ac220 3f 20 45 78 70 72 29 3f 0a 0a 42 6c 6f 63 6b 20 26 6c 74 3b 2d 20 4c 42 52 41 43 45 20 53 74 61 ?.Expr)?..Block.&lt;-.LBRACE.Sta
ac240 74 65 6d 65 6e 74 2a 20 52 42 52 41 43 45 0a 0a 4c 6f 6f 70 45 78 70 72 20 26 6c 74 3b 2d 20 4b tement*.RBRACE..LoopExpr.&lt;-.K
ac260 45 59 57 4f 52 44 5f 69 6e 6c 69 6e 65 3f 20 28 46 6f 72 45 78 70 72 20 2f 20 57 68 69 6c 65 45 EYWORD_inline?.(ForExpr./.WhileE
ac280 78 70 72 29 0a 0a 46 6f 72 45 78 70 72 20 26 6c 74 3b 2d 20 46 6f 72 50 72 65 66 69 78 20 45 78 xpr)..ForExpr.&lt;-.ForPrefix.Ex
ac2a0 70 72 20 28 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 45 78 70 72 29 3f 0a 0a 57 68 69 6c 65 45 78 pr.(KEYWORD_else.Expr)?..WhileEx
ac2c0 70 72 20 26 6c 74 3b 2d 20 57 68 69 6c 65 50 72 65 66 69 78 20 45 78 70 72 20 28 4b 45 59 57 4f pr.&lt;-.WhilePrefix.Expr.(KEYWO
ac2e0 52 44 5f 65 6c 73 65 20 50 61 79 6c 6f 61 64 3f 20 45 78 70 72 29 3f 0a 0a 43 75 72 6c 79 53 75 RD_else.Payload?.Expr)?..CurlySu
ac300 66 66 69 78 45 78 70 72 20 26 6c 74 3b 2d 20 54 79 70 65 45 78 70 72 20 49 6e 69 74 4c 69 73 74 ffixExpr.&lt;-.TypeExpr.InitList
ac320 3f 0a 0a 49 6e 69 74 4c 69 73 74 0a 20 20 20 20 26 6c 74 3b 2d 20 4c 42 52 41 43 45 20 46 69 65 ?..InitList.....&lt;-.LBRACE.Fie
ac340 6c 64 49 6e 69 74 20 28 43 4f 4d 4d 41 20 46 69 65 6c 64 49 6e 69 74 29 2a 20 43 4f 4d 4d 41 3f ldInit.(COMMA.FieldInit)*.COMMA?
ac360 20 52 42 52 41 43 45 0a 20 20 20 20 20 2f 20 4c 42 52 41 43 45 20 45 78 70 72 20 28 43 4f 4d 4d .RBRACE....../.LBRACE.Expr.(COMM
ac380 41 20 45 78 70 72 29 2a 20 43 4f 4d 4d 41 3f 20 52 42 52 41 43 45 0a 20 20 20 20 20 2f 20 4c 42 A.Expr)*.COMMA?.RBRACE....../.LB
ac3a0 52 41 43 45 20 52 42 52 41 43 45 0a 0a 54 79 70 65 45 78 70 72 20 26 6c 74 3b 2d 20 50 72 65 66 RACE.RBRACE..TypeExpr.&lt;-.Pref
ac3c0 69 78 54 79 70 65 4f 70 2a 20 45 72 72 6f 72 55 6e 69 6f 6e 45 78 70 72 0a 0a 45 72 72 6f 72 55 ixTypeOp*.ErrorUnionExpr..ErrorU
ac3e0 6e 69 6f 6e 45 78 70 72 20 26 6c 74 3b 2d 20 53 75 66 66 69 78 45 78 70 72 20 28 45 58 43 4c 41 nionExpr.&lt;-.SuffixExpr.(EXCLA
ac400 4d 41 54 49 4f 4e 4d 41 52 4b 20 54 79 70 65 45 78 70 72 29 3f 0a 0a 53 75 66 66 69 78 45 78 70 MATIONMARK.TypeExpr)?..SuffixExp
ac420 72 0a 20 20 20 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 61 73 79 6e 63 20 50 72 69 6d 61 72 r.....&lt;-.KEYWORD_async.Primar
ac440 79 54 79 70 65 45 78 70 72 20 53 75 66 66 69 78 4f 70 2a 20 46 6e 43 61 6c 6c 41 72 67 75 6d 65 yTypeExpr.SuffixOp*.FnCallArgume
ac460 6e 74 73 0a 20 20 20 20 20 2f 20 50 72 69 6d 61 72 79 54 79 70 65 45 78 70 72 20 28 53 75 66 66 nts....../.PrimaryTypeExpr.(Suff
ac480 69 78 4f 70 20 2f 20 46 6e 43 61 6c 6c 41 72 67 75 6d 65 6e 74 73 29 2a 0a 0a 50 72 69 6d 61 72 ixOp./.FnCallArguments)*..Primar
ac4a0 79 54 79 70 65 45 78 70 72 0a 20 20 20 20 26 6c 74 3b 2d 20 42 55 49 4c 54 49 4e 49 44 45 4e 54 yTypeExpr.....&lt;-.BUILTINIDENT
ac4c0 49 46 49 45 52 20 46 6e 43 61 6c 6c 41 72 67 75 6d 65 6e 74 73 0a 20 20 20 20 20 2f 20 43 48 41 IFIER.FnCallArguments....../.CHA
ac4e0 52 5f 4c 49 54 45 52 41 4c 0a 20 20 20 20 20 2f 20 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 0a 20 R_LITERAL....../.ContainerDecl..
ac500 20 20 20 20 2f 20 44 4f 54 20 49 44 45 4e 54 49 46 49 45 52 0a 20 20 20 20 20 2f 20 45 72 72 6f ..../.DOT.IDENTIFIER....../.Erro
ac520 72 53 65 74 44 65 63 6c 0a 20 20 20 20 20 2f 20 46 4c 4f 41 54 0a 20 20 20 20 20 2f 20 46 6e 50 rSetDecl....../.FLOAT....../.FnP
ac540 72 6f 74 6f 0a 20 20 20 20 20 2f 20 47 72 6f 75 70 65 64 45 78 70 72 0a 20 20 20 20 20 2f 20 4c roto....../.GroupedExpr....../.L
ac560 61 62 65 6c 65 64 54 79 70 65 45 78 70 72 0a 20 20 20 20 20 2f 20 49 44 45 4e 54 49 46 49 45 52 abeledTypeExpr....../.IDENTIFIER
ac580 0a 20 20 20 20 20 2f 20 49 66 54 79 70 65 45 78 70 72 0a 20 20 20 20 20 2f 20 49 4e 54 45 47 45 ....../.IfTypeExpr....../.INTEGE
ac5a0 52 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 20 54 79 70 65 45 78 R....../.KEYWORD_comptime.TypeEx
ac5c0 70 72 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 65 72 72 6f 72 20 44 4f 54 20 49 44 45 4e pr....../.KEYWORD_error.DOT.IDEN
ac5e0 54 49 46 49 45 52 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 66 61 6c 73 65 0a 20 20 20 20 TIFIER....../.KEYWORD_false.....
ac600 20 2f 20 4b 45 59 57 4f 52 44 5f 6e 75 6c 6c 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 70 ./.KEYWORD_null....../.KEYWORD_p
ac620 72 6f 6d 69 73 65 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 74 72 75 65 0a 20 20 20 20 20 romise....../.KEYWORD_true......
ac640 2f 20 4b 45 59 57 4f 52 44 5f 75 6e 64 65 66 69 6e 65 64 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f /.KEYWORD_undefined....../.KEYWO
ac660 52 44 5f 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 20 2f 20 53 54 52 49 4e 47 4c 49 54 45 RD_unreachable....../.STRINGLITE
ac680 52 41 4c 0a 20 20 20 20 20 2f 20 53 77 69 74 63 68 45 78 70 72 0a 0a 43 6f 6e 74 61 69 6e 65 72 RAL....../.SwitchExpr..Container
ac6a0 44 65 63 6c 20 26 6c 74 3b 2d 20 28 4b 45 59 57 4f 52 44 5f 65 78 74 65 72 6e 20 2f 20 4b 45 59 Decl.&lt;-.(KEYWORD_extern./.KEY
ac6c0 57 4f 52 44 5f 70 61 63 6b 65 64 29 3f 20 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 41 75 74 6f 0a WORD_packed)?.ContainerDeclAuto.
ac6e0 0a 45 72 72 6f 72 53 65 74 44 65 63 6c 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 65 72 72 6f .ErrorSetDecl.&lt;-.KEYWORD_erro
ac700 72 20 4c 42 52 41 43 45 20 49 64 65 6e 74 69 66 69 65 72 4c 69 73 74 20 52 42 52 41 43 45 0a 0a r.LBRACE.IdentifierList.RBRACE..
ac720 47 72 6f 75 70 65 64 45 78 70 72 20 26 6c 74 3b 2d 20 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 GroupedExpr.&lt;-.LPAREN.Expr.RP
ac740 41 52 45 4e 0a 0a 49 66 54 79 70 65 45 78 70 72 20 26 6c 74 3b 2d 20 49 66 50 72 65 66 69 78 20 AREN..IfTypeExpr.&lt;-.IfPrefix.
ac760 54 79 70 65 45 78 70 72 20 28 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 50 61 79 6c 6f 61 64 3f 20 TypeExpr.(KEYWORD_else.Payload?.
ac780 54 79 70 65 45 78 70 72 29 3f 0a 0a 4c 61 62 65 6c 65 64 54 79 70 65 45 78 70 72 0a 20 20 20 20 TypeExpr)?..LabeledTypeExpr.....
ac7a0 26 6c 74 3b 2d 20 42 6c 6f 63 6b 4c 61 62 65 6c 20 42 6c 6f 63 6b 0a 20 20 20 20 20 2f 20 42 6c &lt;-.BlockLabel.Block....../.Bl
ac7c0 6f 63 6b 4c 61 62 65 6c 3f 20 4c 6f 6f 70 54 79 70 65 45 78 70 72 0a 0a 4c 6f 6f 70 54 79 70 65 ockLabel?.LoopTypeExpr..LoopType
ac7e0 45 78 70 72 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 69 6e 6c 69 6e 65 3f 20 28 46 6f 72 54 Expr.&lt;-.KEYWORD_inline?.(ForT
ac800 79 70 65 45 78 70 72 20 2f 20 57 68 69 6c 65 54 79 70 65 45 78 70 72 29 0a 0a 46 6f 72 54 79 70 ypeExpr./.WhileTypeExpr)..ForTyp
ac820 65 45 78 70 72 20 26 6c 74 3b 2d 20 46 6f 72 50 72 65 66 69 78 20 54 79 70 65 45 78 70 72 20 28 eExpr.&lt;-.ForPrefix.TypeExpr.(
ac840 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 54 79 70 65 45 78 70 72 29 3f 0a 0a 57 68 69 6c 65 54 79 KEYWORD_else.TypeExpr)?..WhileTy
ac860 70 65 45 78 70 72 20 26 6c 74 3b 2d 20 57 68 69 6c 65 50 72 65 66 69 78 20 54 79 70 65 45 78 70 peExpr.&lt;-.WhilePrefix.TypeExp
ac880 72 20 28 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 50 61 79 6c 6f 61 64 3f 20 54 79 70 65 45 78 70 r.(KEYWORD_else.Payload?.TypeExp
ac8a0 72 29 3f 0a 0a 53 77 69 74 63 68 45 78 70 72 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 73 77 r)?..SwitchExpr.&lt;-.KEYWORD_sw
ac8c0 69 74 63 68 20 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 41 52 45 4e 20 4c 42 52 41 43 45 20 53 itch.LPAREN.Expr.RPAREN.LBRACE.S
ac8e0 77 69 74 63 68 50 72 6f 6e 67 4c 69 73 74 20 52 42 52 41 43 45 0a 0a 23 20 2a 2a 2a 20 41 73 73 witchProngList.RBRACE..#.***.Ass
ac900 65 6d 62 6c 79 20 2a 2a 2a 0a 41 73 6d 45 78 70 72 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f embly.***.AsmExpr.&lt;-.KEYWORD_
ac920 61 73 6d 20 4b 45 59 57 4f 52 44 5f 76 6f 6c 61 74 69 6c 65 3f 20 4c 50 41 52 45 4e 20 53 54 52 asm.KEYWORD_volatile?.LPAREN.STR
ac940 49 4e 47 4c 49 54 45 52 41 4c 20 41 73 6d 4f 75 74 70 75 74 3f 20 52 50 41 52 45 4e 0a 0a 41 73 INGLITERAL.AsmOutput?.RPAREN..As
ac960 6d 4f 75 74 70 75 74 20 26 6c 74 3b 2d 20 43 4f 4c 4f 4e 20 41 73 6d 4f 75 74 70 75 74 4c 69 73 mOutput.&lt;-.COLON.AsmOutputLis
ac980 74 20 41 73 6d 49 6e 70 75 74 3f 0a 0a 41 73 6d 4f 75 74 70 75 74 49 74 65 6d 20 26 6c 74 3b 2d t.AsmInput?..AsmOutputItem.&lt;-
ac9a0 20 4c 42 52 41 43 4b 45 54 20 49 44 45 4e 54 49 46 49 45 52 20 52 42 52 41 43 4b 45 54 20 53 54 .LBRACKET.IDENTIFIER.RBRACKET.ST
ac9c0 52 49 4e 47 4c 49 54 45 52 41 4c 20 4c 50 41 52 45 4e 20 28 4d 49 4e 55 53 52 41 52 52 4f 57 20 RINGLITERAL.LPAREN.(MINUSRARROW.
ac9e0 54 79 70 65 45 78 70 72 20 2f 20 49 44 45 4e 54 49 46 49 45 52 29 20 52 50 41 52 45 4e 0a 0a 41 TypeExpr./.IDENTIFIER).RPAREN..A
aca00 73 6d 49 6e 70 75 74 20 26 6c 74 3b 2d 20 43 4f 4c 4f 4e 20 41 73 6d 49 6e 70 75 74 4c 69 73 74 smInput.&lt;-.COLON.AsmInputList
aca20 20 41 73 6d 43 6c 6f 62 62 65 72 73 3f 0a 0a 41 73 6d 49 6e 70 75 74 49 74 65 6d 20 26 6c 74 3b .AsmClobbers?..AsmInputItem.&lt;
aca40 2d 20 4c 42 52 41 43 4b 45 54 20 49 44 45 4e 54 49 46 49 45 52 20 52 42 52 41 43 4b 45 54 20 53 -.LBRACKET.IDENTIFIER.RBRACKET.S
aca60 54 52 49 4e 47 4c 49 54 45 52 41 4c 20 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 41 52 45 4e 0a TRINGLITERAL.LPAREN.Expr.RPAREN.
aca80 0a 41 73 6d 43 6c 6f 62 62 65 72 73 20 26 6c 74 3b 2d 20 43 4f 4c 4f 4e 20 53 74 72 69 6e 67 4c .AsmClobbers.&lt;-.COLON.StringL
acaa0 69 73 74 0a 0a 23 20 2a 2a 2a 20 48 65 6c 70 65 72 20 67 72 61 6d 6d 61 72 20 2a 2a 2a 0a 42 72 ist..#.***.Helper.grammar.***.Br
acac0 65 61 6b 4c 61 62 65 6c 20 26 6c 74 3b 2d 20 43 4f 4c 4f 4e 20 49 44 45 4e 54 49 46 49 45 52 0a eakLabel.&lt;-.COLON.IDENTIFIER.
acae0 0a 42 6c 6f 63 6b 4c 61 62 65 6c 20 26 6c 74 3b 2d 20 49 44 45 4e 54 49 46 49 45 52 20 43 4f 4c .BlockLabel.&lt;-.IDENTIFIER.COL
acb00 4f 4e 0a 0a 46 69 65 6c 64 49 6e 69 74 20 26 6c 74 3b 2d 20 44 4f 54 20 49 44 45 4e 54 49 46 49 ON..FieldInit.&lt;-.DOT.IDENTIFI
acb20 45 52 20 45 51 55 41 4c 20 45 78 70 72 0a 0a 57 68 69 6c 65 43 6f 6e 74 69 6e 75 65 45 78 70 72 ER.EQUAL.Expr..WhileContinueExpr
acb40 20 26 6c 74 3b 2d 20 43 4f 4c 4f 4e 20 4c 50 41 52 45 4e 20 41 73 73 69 67 6e 45 78 70 72 20 52 .&lt;-.COLON.LPAREN.AssignExpr.R
acb60 50 41 52 45 4e 0a 0a 4c 69 6e 6b 53 65 63 74 69 6f 6e 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 PAREN..LinkSection.&lt;-.KEYWORD
acb80 5f 6c 69 6e 6b 73 65 63 74 69 6f 6e 20 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 41 52 45 4e 0a _linksection.LPAREN.Expr.RPAREN.
acba0 0a 23 20 46 6e 20 73 70 65 63 69 66 69 63 0a 46 6e 43 43 0a 20 20 20 20 26 6c 74 3b 2d 20 4b 45 .#.Fn.specific.FnCC.....&lt;-.KE
acbc0 59 57 4f 52 44 5f 6e 61 6b 65 64 63 63 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 73 74 64 YWORD_nakedcc....../.KEYWORD_std
acbe0 63 61 6c 6c 63 63 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 65 78 74 65 72 6e 0a 20 20 20 callcc....../.KEYWORD_extern....
acc00 20 20 2f 20 4b 45 59 57 4f 52 44 5f 61 73 79 6e 63 0a 0a 50 61 72 61 6d 44 65 63 6c 20 26 6c 74 ../.KEYWORD_async..ParamDecl.&lt
acc20 3b 2d 20 28 4b 45 59 57 4f 52 44 5f 6e 6f 61 6c 69 61 73 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f ;-.(KEYWORD_noalias./.KEYWORD_co
acc40 6d 70 74 69 6d 65 29 3f 20 28 49 44 45 4e 54 49 46 49 45 52 20 43 4f 4c 4f 4e 29 3f 20 50 61 72 mptime)?.(IDENTIFIER.COLON)?.Par
acc60 61 6d 54 79 70 65 0a 0a 50 61 72 61 6d 54 79 70 65 0a 20 20 20 20 26 6c 74 3b 2d 20 4b 45 59 57 amType..ParamType.....&lt;-.KEYW
acc80 4f 52 44 5f 76 61 72 0a 20 20 20 20 20 2f 20 44 4f 54 33 0a 20 20 20 20 20 2f 20 54 79 70 65 45 ORD_var....../.DOT3....../.TypeE
acca0 78 70 72 0a 0a 23 20 43 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 70 72 65 66 69 78 65 73 0a 49 66 50 xpr..#.Control.flow.prefixes.IfP
accc0 72 65 66 69 78 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 69 66 20 4c 50 41 52 45 4e 20 45 78 refix.&lt;-.KEYWORD_if.LPAREN.Ex
acce0 70 72 20 52 50 41 52 45 4e 20 50 74 72 50 61 79 6c 6f 61 64 3f 0a 0a 57 68 69 6c 65 50 72 65 66 pr.RPAREN.PtrPayload?..WhilePref
acd00 69 78 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 77 68 69 6c 65 20 4c 50 41 52 45 4e 20 45 78 ix.&lt;-.KEYWORD_while.LPAREN.Ex
acd20 70 72 20 52 50 41 52 45 4e 20 50 74 72 50 61 79 6c 6f 61 64 3f 20 57 68 69 6c 65 43 6f 6e 74 69 pr.RPAREN.PtrPayload?.WhileConti
acd40 6e 75 65 45 78 70 72 3f 0a 0a 46 6f 72 50 72 65 66 69 78 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 nueExpr?..ForPrefix.&lt;-.KEYWOR
acd60 44 5f 66 6f 72 20 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 41 52 45 4e 20 50 74 72 49 6e 64 65 D_for.LPAREN.Expr.RPAREN.PtrInde
acd80 78 50 61 79 6c 6f 61 64 0a 0a 23 20 50 61 79 6c 6f 61 64 73 0a 50 61 79 6c 6f 61 64 20 26 6c 74 xPayload..#.Payloads.Payload.&lt
acda0 3b 2d 20 50 49 50 45 20 49 44 45 4e 54 49 46 49 45 52 20 50 49 50 45 0a 0a 50 74 72 50 61 79 6c ;-.PIPE.IDENTIFIER.PIPE..PtrPayl
acdc0 6f 61 64 20 26 6c 74 3b 2d 20 50 49 50 45 20 41 53 54 45 52 49 53 4b 3f 20 49 44 45 4e 54 49 46 oad.&lt;-.PIPE.ASTERISK?.IDENTIF
acde0 49 45 52 20 50 49 50 45 0a 0a 50 74 72 49 6e 64 65 78 50 61 79 6c 6f 61 64 20 26 6c 74 3b 2d 20 IER.PIPE..PtrIndexPayload.&lt;-.
ace00 50 49 50 45 20 41 53 54 45 52 49 53 4b 3f 20 49 44 45 4e 54 49 46 49 45 52 20 28 43 4f 4d 4d 41 PIPE.ASTERISK?.IDENTIFIER.(COMMA
ace20 20 49 44 45 4e 54 49 46 49 45 52 29 3f 20 50 49 50 45 0a 0a 0a 23 20 53 77 69 74 63 68 20 73 70 .IDENTIFIER)?.PIPE...#.Switch.sp
ace40 65 63 69 66 69 63 0a 53 77 69 74 63 68 50 72 6f 6e 67 20 26 6c 74 3b 2d 20 53 77 69 74 63 68 43 ecific.SwitchProng.&lt;-.SwitchC
ace60 61 73 65 20 45 51 55 41 4c 52 41 52 52 4f 57 20 50 74 72 50 61 79 6c 6f 61 64 3f 20 41 73 73 69 ase.EQUALRARROW.PtrPayload?.Assi
ace80 67 6e 45 78 70 72 0a 0a 53 77 69 74 63 68 43 61 73 65 0a 20 20 20 20 26 6c 74 3b 2d 20 53 77 69 gnExpr..SwitchCase.....&lt;-.Swi
acea0 74 63 68 49 74 65 6d 20 28 43 4f 4d 4d 41 20 53 77 69 74 63 68 49 74 65 6d 29 2a 20 43 4f 4d 4d tchItem.(COMMA.SwitchItem)*.COMM
acec0 41 3f 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 65 6c 73 65 0a 0a 53 77 69 74 63 68 49 74 A?....../.KEYWORD_else..SwitchIt
acee0 65 6d 20 26 6c 74 3b 2d 20 45 78 70 72 20 28 44 4f 54 33 20 45 78 70 72 29 3f 0a 0a 23 20 4f 70 em.&lt;-.Expr.(DOT3.Expr)?..#.Op
acf00 65 72 61 74 6f 72 73 0a 41 73 73 69 67 6e 4f 70 0a 20 20 20 20 26 6c 74 3b 2d 20 41 53 54 45 52 erators.AssignOp.....&lt;-.ASTER
acf20 49 53 4b 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 53 4c 41 53 48 45 51 55 41 4c 0a 20 20 20 20 20 ISKEQUAL....../.SLASHEQUAL......
acf40 2f 20 50 45 52 43 45 4e 54 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 50 4c 55 53 45 51 55 41 4c 0a /.PERCENTEQUAL....../.PLUSEQUAL.
acf60 20 20 20 20 20 2f 20 4d 49 4e 55 53 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 4c 41 52 52 4f 57 32 ...../.MINUSEQUAL....../.LARROW2
acf80 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 52 41 52 52 4f 57 32 45 51 55 41 4c 0a 20 20 20 20 20 2f EQUAL....../.RARROW2EQUAL....../
acfa0 20 41 4d 50 45 52 53 41 4e 44 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 43 41 52 45 54 45 51 55 41 .AMPERSANDEQUAL....../.CARETEQUA
acfc0 4c 0a 20 20 20 20 20 2f 20 50 49 50 45 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 41 53 54 45 52 49 L....../.PIPEEQUAL....../.ASTERI
acfe0 53 4b 50 45 52 43 45 4e 54 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 50 4c 55 53 50 45 52 43 45 4e SKPERCENTEQUAL....../.PLUSPERCEN
ad000 54 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 4d 49 4e 55 53 50 45 52 43 45 4e 54 45 51 55 41 4c 0a TEQUAL....../.MINUSPERCENTEQUAL.
ad020 20 20 20 20 20 2f 20 45 51 55 41 4c 0a 0a 43 6f 6d 70 61 72 65 4f 70 0a 20 20 20 20 26 6c 74 3b ...../.EQUAL..CompareOp.....&lt;
ad040 2d 20 45 51 55 41 4c 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 45 58 43 4c 41 4d 41 54 49 4f 4e 4d -.EQUALEQUAL....../.EXCLAMATIONM
ad060 41 52 4b 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 4c 41 52 52 4f 57 0a 20 20 20 20 20 2f 20 52 41 ARKEQUAL....../.LARROW....../.RA
ad080 52 52 4f 57 0a 20 20 20 20 20 2f 20 4c 41 52 52 4f 57 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 52 RROW....../.LARROWEQUAL....../.R
ad0a0 41 52 52 4f 57 45 51 55 41 4c 0a 0a 42 69 74 77 69 73 65 4f 70 0a 20 20 20 20 26 6c 74 3b 2d 20 ARROWEQUAL..BitwiseOp.....&lt;-.
ad0c0 41 4d 50 45 52 53 41 4e 44 0a 20 20 20 20 20 2f 20 43 41 52 45 54 0a 20 20 20 20 20 2f 20 50 49 AMPERSAND....../.CARET....../.PI
ad0e0 50 45 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 6f 72 65 6c 73 65 0a 20 20 20 20 20 2f 20 PE....../.KEYWORD_orelse....../.
ad100 4b 45 59 57 4f 52 44 5f 63 61 74 63 68 20 50 61 79 6c 6f 61 64 3f 0a 0a 42 69 74 53 68 69 66 74 KEYWORD_catch.Payload?..BitShift
ad120 4f 70 0a 20 20 20 20 26 6c 74 3b 2d 20 4c 41 52 52 4f 57 32 0a 20 20 20 20 20 2f 20 52 41 52 52 Op.....&lt;-.LARROW2....../.RARR
ad140 4f 57 32 0a 0a 41 64 64 69 74 69 6f 6e 4f 70 0a 20 20 20 20 26 6c 74 3b 2d 20 50 4c 55 53 0a 20 OW2..AdditionOp.....&lt;-.PLUS..
ad160 20 20 20 20 2f 20 4d 49 4e 55 53 0a 20 20 20 20 20 2f 20 50 4c 55 53 32 0a 20 20 20 20 20 2f 20 ..../.MINUS....../.PLUS2....../.
ad180 50 4c 55 53 50 45 52 43 45 4e 54 0a 20 20 20 20 20 2f 20 4d 49 4e 55 53 50 45 52 43 45 4e 54 0a PLUSPERCENT....../.MINUSPERCENT.
ad1a0 0a 4d 75 6c 74 69 70 6c 79 4f 70 0a 20 20 20 20 26 6c 74 3b 2d 20 50 49 50 45 32 0a 20 20 20 20 .MultiplyOp.....&lt;-.PIPE2.....
ad1c0 20 2f 20 41 53 54 45 52 49 53 4b 0a 20 20 20 20 20 2f 20 53 4c 41 53 48 0a 20 20 20 20 20 2f 20 ./.ASTERISK....../.SLASH....../.
ad1e0 50 45 52 43 45 4e 54 0a 20 20 20 20 20 2f 20 41 53 54 45 52 49 53 4b 32 0a 20 20 20 20 20 2f 20 PERCENT....../.ASTERISK2....../.
ad200 41 53 54 45 52 49 53 4b 50 45 52 43 45 4e 54 0a 0a 50 72 65 66 69 78 4f 70 0a 20 20 20 20 26 6c ASTERISKPERCENT..PrefixOp.....&l
ad220 74 3b 2d 20 45 58 43 4c 41 4d 41 54 49 4f 4e 4d 41 52 4b 0a 20 20 20 20 20 2f 20 4d 49 4e 55 53 t;-.EXCLAMATIONMARK....../.MINUS
ad240 0a 20 20 20 20 20 2f 20 54 49 4c 44 45 0a 20 20 20 20 20 2f 20 4d 49 4e 55 53 50 45 52 43 45 4e ....../.TILDE....../.MINUSPERCEN
ad260 54 0a 20 20 20 20 20 2f 20 41 4d 50 45 52 53 41 4e 44 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 T....../.AMPERSAND....../.KEYWOR
ad280 44 5f 74 72 79 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 61 77 61 69 74 0a 0a 50 72 65 66 D_try....../.KEYWORD_await..Pref
ad2a0 69 78 54 79 70 65 4f 70 0a 20 20 20 20 26 6c 74 3b 2d 20 51 55 45 53 54 49 4f 4e 4d 41 52 4b 0a ixTypeOp.....&lt;-.QUESTIONMARK.
ad2c0 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 70 72 6f 6d 69 73 65 20 4d 49 4e 55 53 52 41 52 52 ...../.KEYWORD_promise.MINUSRARR
ad2e0 4f 57 0a 20 20 20 20 20 2f 20 41 72 72 61 79 54 79 70 65 53 74 61 72 74 20 28 42 79 74 65 41 6c OW....../.ArrayTypeStart.(ByteAl
ad300 69 67 6e 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6e 73 74 20 2f 20 4b 45 59 57 4f 52 44 5f 76 6f ign./.KEYWORD_const./.KEYWORD_vo
ad320 6c 61 74 69 6c 65 20 2f 20 4b 45 59 57 4f 52 44 5f 61 6c 6c 6f 77 7a 65 72 6f 29 2a 0a 20 20 20 latile./.KEYWORD_allowzero)*....
ad340 20 20 2f 20 50 74 72 54 79 70 65 53 74 61 72 74 20 28 4b 45 59 57 4f 52 44 5f 61 6c 69 67 6e 20 ../.PtrTypeStart.(KEYWORD_align.
ad360 4c 50 41 52 45 4e 20 45 78 70 72 20 28 43 4f 4c 4f 4e 20 49 4e 54 45 47 45 52 20 43 4f 4c 4f 4e LPAREN.Expr.(COLON.INTEGER.COLON
ad380 20 49 4e 54 45 47 45 52 29 3f 20 52 50 41 52 45 4e 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6e 73 .INTEGER)?.RPAREN./.KEYWORD_cons
ad3a0 74 20 2f 20 4b 45 59 57 4f 52 44 5f 76 6f 6c 61 74 69 6c 65 20 2f 20 4b 45 59 57 4f 52 44 5f 61 t./.KEYWORD_volatile./.KEYWORD_a
ad3c0 6c 6c 6f 77 7a 65 72 6f 29 2a 0a 0a 53 75 66 66 69 78 4f 70 0a 20 20 20 20 26 6c 74 3b 2d 20 4c llowzero)*..SuffixOp.....&lt;-.L
ad3e0 42 52 41 43 4b 45 54 20 45 78 70 72 20 28 44 4f 54 32 20 45 78 70 72 3f 29 3f 20 52 42 52 41 43 BRACKET.Expr.(DOT2.Expr?)?.RBRAC
ad400 4b 45 54 0a 20 20 20 20 20 2f 20 44 4f 54 20 49 44 45 4e 54 49 46 49 45 52 0a 20 20 20 20 20 2f KET....../.DOT.IDENTIFIER....../
ad420 20 44 4f 54 41 53 54 45 52 49 53 4b 0a 20 20 20 20 20 2f 20 44 4f 54 51 55 45 53 54 49 4f 4e 4d .DOTASTERISK....../.DOTQUESTIONM
ad440 41 52 4b 0a 0a 46 6e 43 61 6c 6c 41 72 67 75 6d 65 6e 74 73 20 26 6c 74 3b 2d 20 4c 50 41 52 45 ARK..FnCallArguments.&lt;-.LPARE
ad460 4e 20 45 78 70 72 4c 69 73 74 20 52 50 41 52 45 4e 0a 0a 23 20 50 74 72 20 73 70 65 63 69 66 69 N.ExprList.RPAREN..#.Ptr.specifi
ad480 63 0a 41 72 72 61 79 54 79 70 65 53 74 61 72 74 20 26 6c 74 3b 2d 20 4c 42 52 41 43 4b 45 54 20 c.ArrayTypeStart.&lt;-.LBRACKET.
ad4a0 45 78 70 72 3f 20 52 42 52 41 43 4b 45 54 0a 0a 50 74 72 54 79 70 65 53 74 61 72 74 0a 20 20 20 Expr?.RBRACKET..PtrTypeStart....
ad4c0 20 26 6c 74 3b 2d 20 41 53 54 45 52 49 53 4b 0a 20 20 20 20 20 2f 20 41 53 54 45 52 49 53 4b 32 .&lt;-.ASTERISK....../.ASTERISK2
ad4e0 0a 20 20 20 20 20 2f 20 50 54 52 55 4e 4b 4e 4f 57 4e 0a 20 20 20 20 20 2f 20 50 54 52 43 0a 0a ....../.PTRUNKNOWN....../.PTRC..
ad500 23 20 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 20 73 70 65 63 69 66 69 63 0a 43 6f 6e 74 61 69 6e #.ContainerDecl.specific.Contain
ad520 65 72 44 65 63 6c 41 75 74 6f 20 26 6c 74 3b 2d 20 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 54 79 erDeclAuto.&lt;-.ContainerDeclTy
ad540 70 65 20 4c 42 52 41 43 45 20 43 6f 6e 74 61 69 6e 65 72 4d 65 6d 62 65 72 73 20 52 42 52 41 43 pe.LBRACE.ContainerMembers.RBRAC
ad560 45 0a 0a 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 54 79 70 65 0a 20 20 20 20 26 6c 74 3b 2d 20 28 E..ContainerDeclType.....&lt;-.(
ad580 4b 45 59 57 4f 52 44 5f 73 74 72 75 63 74 20 2f 20 4b 45 59 57 4f 52 44 5f 65 6e 75 6d 29 20 28 KEYWORD_struct./.KEYWORD_enum).(
ad5a0 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 41 52 45 4e 29 3f 0a 20 20 20 20 20 2f 20 4b 45 59 57 LPAREN.Expr.RPAREN)?....../.KEYW
ad5c0 4f 52 44 5f 75 6e 69 6f 6e 20 28 4c 50 41 52 45 4e 20 28 4b 45 59 57 4f 52 44 5f 65 6e 75 6d 20 ORD_union.(LPAREN.(KEYWORD_enum.
ad5e0 28 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 41 52 45 4e 29 3f 20 2f 20 45 78 70 72 29 20 52 50 (LPAREN.Expr.RPAREN)?./.Expr).RP
ad600 41 52 45 4e 29 3f 0a 0a 23 20 41 6c 69 67 6e 6d 65 6e 74 0a 42 79 74 65 41 6c 69 67 6e 20 26 6c AREN)?..#.Alignment.ByteAlign.&l
ad620 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 61 6c 69 67 6e 20 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 t;-.KEYWORD_align.LPAREN.Expr.RP
ad640 41 52 45 4e 0a 0a 23 20 4c 69 73 74 73 0a 49 64 65 6e 74 69 66 69 65 72 4c 69 73 74 20 26 6c 74 AREN..#.Lists.IdentifierList.&lt
ad660 3b 2d 20 28 49 44 45 4e 54 49 46 49 45 52 20 43 4f 4d 4d 41 29 2a 20 49 44 45 4e 54 49 46 49 45 ;-.(IDENTIFIER.COMMA)*.IDENTIFIE
ad680 52 3f 0a 0a 53 77 69 74 63 68 50 72 6f 6e 67 4c 69 73 74 20 26 6c 74 3b 2d 20 28 53 77 69 74 63 R?..SwitchProngList.&lt;-.(Switc
ad6a0 68 50 72 6f 6e 67 20 43 4f 4d 4d 41 29 2a 20 53 77 69 74 63 68 50 72 6f 6e 67 3f 0a 0a 41 73 6d hProng.COMMA)*.SwitchProng?..Asm
ad6c0 4f 75 74 70 75 74 4c 69 73 74 20 26 6c 74 3b 2d 20 28 41 73 6d 4f 75 74 70 75 74 49 74 65 6d 20 OutputList.&lt;-.(AsmOutputItem.
ad6e0 43 4f 4d 4d 41 29 2a 20 41 73 6d 4f 75 74 70 75 74 49 74 65 6d 3f 0a 0a 41 73 6d 49 6e 70 75 74 COMMA)*.AsmOutputItem?..AsmInput
ad700 4c 69 73 74 20 26 6c 74 3b 2d 20 28 41 73 6d 49 6e 70 75 74 49 74 65 6d 20 43 4f 4d 4d 41 29 2a List.&lt;-.(AsmInputItem.COMMA)*
ad720 20 41 73 6d 49 6e 70 75 74 49 74 65 6d 3f 0a 0a 53 74 72 69 6e 67 4c 69 73 74 20 26 6c 74 3b 2d .AsmInputItem?..StringList.&lt;-
ad740 20 28 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 20 43 4f 4d 4d 41 29 2a 20 53 54 52 49 4e 47 4c 49 .(STRINGLITERAL.COMMA)*.STRINGLI
ad760 54 45 52 41 4c 3f 0a 0a 50 61 72 61 6d 44 65 63 6c 4c 69 73 74 20 26 6c 74 3b 2d 20 28 50 61 72 TERAL?..ParamDeclList.&lt;-.(Par
ad780 61 6d 44 65 63 6c 20 43 4f 4d 4d 41 29 2a 20 50 61 72 61 6d 44 65 63 6c 3f 0a 0a 45 78 70 72 4c amDecl.COMMA)*.ParamDecl?..ExprL
ad7a0 69 73 74 20 26 6c 74 3b 2d 20 28 45 78 70 72 20 43 4f 4d 4d 41 29 2a 20 45 78 70 72 3f 0a 0a 23 ist.&lt;-.(Expr.COMMA)*.Expr?..#
ad7c0 20 2a 2a 2a 20 54 6f 6b 65 6e 73 20 2a 2a 2a 0a 65 6f 66 20 26 6c 74 3b 2d 20 21 2e 0a 68 65 78 .***.Tokens.***.eof.&lt;-.!..hex
ad7e0 20 26 6c 74 3b 2d 20 5b 30 2d 39 61 2d 66 41 2d 46 5d 0a 63 68 61 72 5f 65 73 63 61 70 65 0a 20 .&lt;-.[0-9a-fA-F].char_escape..
ad800 20 20 20 26 6c 74 3b 2d 20 22 5c 5c 78 22 20 68 65 78 20 68 65 78 0a 20 20 20 20 20 2f 20 22 5c ...&lt;-."\\x".hex.hex....../."\
ad820 5c 75 7b 22 20 68 65 78 2b 20 22 7d 22 0a 20 20 20 20 20 2f 20 22 5c 5c 22 20 5b 6e 72 5c 5c 74 \u{".hex+."}"....../."\\".[nr\\t
ad840 27 22 5d 0a 63 68 61 72 5f 63 68 61 72 0a 20 20 20 20 26 6c 74 3b 2d 20 63 68 61 72 5f 65 73 63 '"].char_char.....&lt;-.char_esc
ad860 61 70 65 0a 20 20 20 20 20 2f 20 5b 5e 5c 5c 27 5c 6e 5d 0a 73 74 72 69 6e 67 5f 63 68 61 72 0a ape....../.[^\\'\n].string_char.
ad880 20 20 20 20 26 6c 74 3b 2d 20 63 68 61 72 5f 65 73 63 61 70 65 0a 20 20 20 20 20 2f 20 5b 5e 5c ....&lt;-.char_escape....../.[^\
ad8a0 5c 22 5c 6e 5d 0a 0a 6c 69 6e 65 5f 63 6f 6d 6d 65 6e 74 20 26 6c 74 3b 2d 20 27 2f 2f 27 5b 5e \"\n]..line_comment.&lt;-.'//'[^
ad8c0 5c 6e 5d 2a 0a 6c 69 6e 65 5f 73 74 72 69 6e 67 20 26 6c 74 3b 2d 20 28 22 5c 5c 5c 5c 22 20 5b \n]*.line_string.&lt;-.("\\\\".[
ad8e0 5e 5c 6e 5d 2a 20 5b 20 5c 6e 5d 2a 29 2b 0a 6c 69 6e 65 5f 63 73 74 72 69 6e 67 20 26 6c 74 3b ^\n]*.[.\n]*)+.line_cstring.&lt;
ad900 2d 20 28 22 63 5c 5c 5c 5c 22 20 5b 5e 5c 6e 5d 2a 20 5b 20 5c 6e 5d 2a 29 2b 0a 73 6b 69 70 20 -.("c\\\\".[^\n]*.[.\n]*)+.skip.
ad920 26 6c 74 3b 2d 20 28 5b 20 5c 6e 5d 20 2f 20 6c 69 6e 65 5f 63 6f 6d 6d 65 6e 74 29 2a 0a 0a 43 &lt;-.([.\n]./.line_comment)*..C
ad940 48 41 52 5f 4c 49 54 45 52 41 4c 20 26 6c 74 3b 2d 20 22 27 22 20 63 68 61 72 5f 63 68 61 72 20 HAR_LITERAL.&lt;-."'".char_char.
ad960 22 27 22 20 73 6b 69 70 0a 46 4c 4f 41 54 0a 20 20 20 20 26 6c 74 3b 2d 20 22 30 78 22 20 68 65 "'".skip.FLOAT.....&lt;-."0x".he
ad980 78 2b 20 20 20 22 2e 22 20 68 65 78 2b 20 20 20 28 5b 70 50 5d 20 5b 2d 2b 5d 3f 20 68 65 78 2b x+...".".hex+...([pP].[-+]?.hex+
ad9a0 29 3f 20 20 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 20 20 20 20 20 5b 30 2d 39 5d 2b 20 22 2e 22 )?...skip....../......[0-9]+."."
ad9c0 20 5b 30 2d 39 5d 2b 20 28 5b 65 45 5d 20 5b 2d 2b 5d 3f 20 5b 30 2d 39 5d 2b 29 3f 20 73 6b 69 .[0-9]+.([eE].[-+]?.[0-9]+)?.ski
ad9e0 70 0a 20 20 20 20 20 2f 20 22 30 78 22 20 68 65 78 2b 20 20 20 22 2e 22 3f 20 5b 70 50 5d 20 5b p....../."0x".hex+..."."?.[pP].[
ada00 2d 2b 5d 3f 20 68 65 78 2b 20 20 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 20 20 20 20 20 5b 30 2d -+]?.hex+...skip....../......[0-
ada20 39 5d 2b 20 22 2e 22 3f 20 5b 65 45 5d 20 5b 2d 2b 5d 3f 20 5b 30 2d 39 5d 2b 20 73 6b 69 70 0a 9]+."."?.[eE].[-+]?.[0-9]+.skip.
ada40 49 4e 54 45 47 45 52 0a 20 20 20 20 26 6c 74 3b 2d 20 22 30 62 22 20 5b 30 31 5d 2b 20 20 73 6b INTEGER.....&lt;-."0b".[01]+..sk
ada60 69 70 0a 20 20 20 20 20 2f 20 22 30 6f 22 20 5b 30 2d 37 5d 2b 20 73 6b 69 70 0a 20 20 20 20 20 ip....../."0o".[0-7]+.skip......
ada80 2f 20 22 30 78 22 20 68 65 78 2b 20 20 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 20 20 20 20 20 5b /."0x".hex+...skip....../......[
adaa0 30 2d 39 5d 2b 20 73 6b 69 70 0a 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 0a 20 20 20 20 26 6c 74 0-9]+.skip.STRINGLITERAL.....&lt
adac0 3b 2d 20 22 63 22 3f 20 22 5c 22 22 20 73 74 72 69 6e 67 5f 63 68 61 72 2a 20 22 5c 22 22 20 73 ;-."c"?."\"".string_char*."\"".s
adae0 6b 69 70 0a 20 20 20 20 20 2f 20 6c 69 6e 65 5f 73 74 72 69 6e 67 20 20 20 20 20 20 20 20 20 20 kip....../.line_string..........
adb00 20 20 20 20 20 20 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 6c 69 6e 65 5f 63 73 74 72 69 6e 67 20 .......skip....../.line_cstring.
adb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 49 44 45 4e 54 49 46 49 45 52 0a 20 ...............skip.IDENTIFIER..
adb40 20 20 20 26 6c 74 3b 2d 20 21 6b 65 79 77 6f 72 64 20 28 22 63 22 20 21 5b 22 5c 5c 5d 20 2f 20 ...&lt;-.!keyword.("c".!["\\]./.
adb60 5b 41 2d 5a 61 62 64 2d 7a 5f 5d 29 20 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 5d 2a 20 73 6b 69 70 0a [A-Zabd-z_]).[A-Za-z0-9_]*.skip.
adb80 20 20 20 20 20 2f 20 22 40 5c 22 22 20 73 74 72 69 6e 67 5f 63 68 61 72 2a 20 22 5c 22 22 20 20 ...../."@\"".string_char*."\""..
adba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 42 ..........................skip.B
adbc0 55 49 4c 54 49 4e 49 44 45 4e 54 49 46 49 45 52 20 26 6c 74 3b 2d 20 22 40 22 5b 41 2d 5a 61 2d UILTINIDENTIFIER.&lt;-."@"[A-Za-
adbe0 7a 5f 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 5d 2a 20 73 6b 69 70 0a 0a 0a 41 4d 50 45 52 53 41 4e z_][A-Za-z0-9_]*.skip...AMPERSAN
adc00 44 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 61 6d 70 3b 27 20 20 20 20 20 20 D............&lt;-.'&amp;'......
adc20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 41 4d 50 45 52 53 41 4e 44 45 51 55 41 4c 20 20 20 ![=]......skip.AMPERSANDEQUAL...
adc40 20 20 20 20 26 6c 74 3b 2d 20 27 26 61 6d 70 3b 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....&lt;-.'&amp;='..............
adc60 20 73 6b 69 70 0a 41 53 54 45 52 49 53 4b 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d .skip.ASTERISK.............&lt;-
adc80 20 27 2a 27 20 20 20 20 20 20 21 5b 2a 25 3d 5d 20 20 20 20 73 6b 69 70 0a 41 53 54 45 52 49 53 .'*'......![*%=]....skip.ASTERIS
adca0 4b 32 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2a 2a 27 20 20 20 20 20 20 20 20 K2............&lt;-.'**'........
adcc0 20 20 20 20 20 20 20 73 6b 69 70 0a 41 53 54 45 52 49 53 4b 45 51 55 41 4c 20 20 20 20 20 20 20 .......skip.ASTERISKEQUAL.......
adce0 20 26 6c 74 3b 2d 20 27 2a 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 41 .&lt;-.'*='...............skip.A
add00 53 54 45 52 49 53 4b 50 45 52 43 45 4e 54 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2a 25 27 20 20 STERISKPERCENT......&lt;-.'*%'..
add20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 41 53 54 45 52 49 53 4b 50 45 52 43 45 4e ...![=]......skip.ASTERISKPERCEN
add40 54 45 51 55 41 4c 20 26 6c 74 3b 2d 20 27 2a 25 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TEQUAL.&lt;-.'*%='..............
add60 73 6b 69 70 0a 43 41 52 45 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 skip.CARET................&lt;-.
add80 27 5e 27 20 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 43 41 52 45 54 45 51 55 '^'......![=]......skip.CARETEQU
adda0 41 4c 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 5e 3d 27 20 20 20 20 20 20 20 20 20 AL...........&lt;-.'^='.........
addc0 20 20 20 20 20 20 73 6b 69 70 0a 43 4f 4c 4f 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......skip.COLON................
adde0 26 6c 74 3b 2d 20 27 3a 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 43 4f &lt;-.':'................skip.CO
ade00 4d 4d 41 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2c 27 20 20 20 20 MMA................&lt;-.','....
ade20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 44 4f 54 20 20 20 20 20 20 20 20 20 20 20 20 ............skip.DOT............
ade40 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2e 27 20 20 20 20 20 20 21 5b 2a 2e 3f 5d 20 20 20 20 73 ......&lt;-.'.'......![*.?]....s
ade60 6b 69 70 0a 44 4f 54 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 kip.DOT2.................&lt;-.'
ade80 2e 2e 27 20 20 20 20 20 21 5b 2e 5d 20 20 20 20 20 20 73 6b 69 70 0a 44 4f 54 33 20 20 20 20 20 ..'.....![.]......skip.DOT3.....
adea0 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2e 2e 2e 27 20 20 20 20 20 20 20 20 20 ............&lt;-.'...'.........
adec0 20 20 20 20 20 73 6b 69 70 0a 44 4f 54 41 53 54 45 52 49 53 4b 20 20 20 20 20 20 20 20 20 20 26 .....skip.DOTASTERISK..........&
adee0 6c 74 3b 2d 20 27 2e 2a 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 44 4f 54 lt;-.'.*'...............skip.DOT
adf00 51 55 45 53 54 49 4f 4e 4d 41 52 4b 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2e 3f 27 20 20 20 20 QUESTIONMARK......&lt;-.'.?'....
adf20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 ...........skip.EQUAL...........
adf40 20 20 20 20 20 26 6c 74 3b 2d 20 27 3d 27 20 20 20 20 20 20 21 5b 26 67 74 3b 3d 5d 20 20 20 20 .....&lt;-.'='......![&gt;=]....
adf60 20 73 6b 69 70 0a 45 51 55 41 4c 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d .skip.EQUALEQUAL...........&lt;-
adf80 20 27 3d 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 45 51 55 41 4c 52 41 .'=='...............skip.EQUALRA
adfa0 52 52 4f 57 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 3d 26 67 74 3b 27 20 20 20 20 20 RROW..........&lt;-.'=&gt;'.....
adfc0 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 45 58 43 4c 41 4d 41 54 49 4f 4e 4d 41 52 4b 20 20 ..........skip.EXCLAMATIONMARK..
adfe0 20 20 20 20 26 6c 74 3b 2d 20 27 21 27 20 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 ....&lt;-.'!'......![=]......ski
ae000 70 0a 45 58 43 4c 41 4d 41 54 49 4f 4e 4d 41 52 4b 45 51 55 41 4c 20 26 6c 74 3b 2d 20 27 21 3d p.EXCLAMATIONMARKEQUAL.&lt;-.'!=
ae020 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 4c 41 52 52 4f 57 20 20 20 20 20 '...............skip.LARROW.....
ae040 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 6c 74 3b 27 20 20 20 20 20 20 21 5b 26 6c ..........&lt;-.'&lt;'......![&l
ae060 74 3b 3d 5d 20 20 20 20 20 73 6b 69 70 0a 4c 41 52 52 4f 57 32 20 20 20 20 20 20 20 20 20 20 20 t;=].....skip.LARROW2...........
ae080 20 20 20 26 6c 74 3b 2d 20 27 26 6c 74 3b 26 6c 74 3b 27 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 ...&lt;-.'&lt;&lt;'.....![=]....
ae0a0 20 20 73 6b 69 70 0a 4c 41 52 52 4f 57 32 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 26 6c 74 3b ..skip.LARROW2EQUAL.........&lt;
ae0c0 2d 20 27 26 6c 74 3b 26 6c 74 3b 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a -.'&lt;&lt;='..............skip.
ae0e0 4c 41 52 52 4f 57 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 6c 74 3b LARROWEQUAL..........&lt;-.'&lt;
ae100 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 4c 42 52 41 43 45 20 20 20 20 ='...............skip.LBRACE....
ae120 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 7b 27 20 20 20 20 20 20 20 20 20 20 20 20 ...........&lt;-.'{'............
ae140 20 20 20 20 73 6b 69 70 0a 4c 42 52 41 43 4b 45 54 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c ....skip.LBRACKET.............&l
ae160 74 3b 2d 20 27 5b 27 20 20 20 20 20 20 21 5b 2a 5d 20 20 20 20 20 20 73 6b 69 70 0a 4c 50 41 52 t;-.'['......![*]......skip.LPAR
ae180 45 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 28 27 20 20 20 20 20 20 EN...............&lt;-.'('......
ae1a0 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 4d 49 4e 55 53 20 20 20 20 20 20 20 20 20 20 20 20 ..........skip.MINUS............
ae1c0 20 20 20 20 26 6c 74 3b 2d 20 27 2d 27 20 20 20 20 20 20 21 5b 25 3d 26 67 74 3b 5d 20 20 20 20 ....&lt;-.'-'......![%=&gt;]....
ae1e0 73 6b 69 70 0a 4d 49 4e 55 53 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 skip.MINUSEQUAL...........&lt;-.
ae200 27 2d 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 4d 49 4e 55 53 50 45 52 '-='...............skip.MINUSPER
ae220 43 45 4e 54 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2d 25 27 20 20 20 20 20 21 5b 3d 5d CENT.........&lt;-.'-%'.....![=]
ae240 20 20 20 20 20 20 73 6b 69 70 0a 4d 49 4e 55 53 50 45 52 43 45 4e 54 45 51 55 41 4c 20 20 20 20 ......skip.MINUSPERCENTEQUAL....
ae260 26 6c 74 3b 2d 20 27 2d 25 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 4d 49 &lt;-.'-%='..............skip.MI
ae280 4e 55 53 52 41 52 52 4f 57 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2d 26 67 74 3b 27 NUSRARROW..........&lt;-.'-&gt;'
ae2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 50 45 52 43 45 4e 54 20 20 20 20 20 ...............skip.PERCENT.....
ae2c0 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 25 27 20 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 .........&lt;-.'%'......![=]....
ae2e0 20 20 73 6b 69 70 0a 50 45 52 43 45 4e 54 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 26 6c 74 3b ..skip.PERCENTEQUAL.........&lt;
ae300 2d 20 27 25 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 50 49 50 45 20 20 -.'%='...............skip.PIPE..
ae320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 7c 27 20 20 20 20 20 20 21 5b ...............&lt;-.'|'......![
ae340 7c 3d 5d 20 20 20 20 20 73 6b 69 70 0a 50 49 50 45 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |=].....skip.PIPE2..............
ae360 20 20 26 6c 74 3b 2d 20 27 7c 7c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a ..&lt;-.'||'...............skip.
ae380 50 49 50 45 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 7c 3d 27 20 PIPEEQUAL............&lt;-.'|='.
ae3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 50 4c 55 53 20 20 20 20 20 20 20 20 20 ..............skip.PLUS.........
ae3c0 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2b 27 20 20 20 20 20 20 21 5b 25 2b 3d 5d 20 20 20 ........&lt;-.'+'......![%+=]...
ae3e0 20 73 6b 69 70 0a 50 4c 55 53 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d .skip.PLUS2................&lt;-
ae400 20 27 2b 2b 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 50 4c 55 53 45 51 55 .'++'...............skip.PLUSEQU
ae420 41 4c 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2b 3d 27 20 20 20 20 20 20 20 20 AL............&lt;-.'+='........
ae440 20 20 20 20 20 20 20 73 6b 69 70 0a 50 4c 55 53 50 45 52 43 45 4e 54 20 20 20 20 20 20 20 20 20 .......skip.PLUSPERCENT.........
ae460 20 26 6c 74 3b 2d 20 27 2b 25 27 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 50 .&lt;-.'+%'.....![=]......skip.P
ae480 4c 55 53 50 45 52 43 45 4e 54 45 51 55 41 4c 20 20 20 20 20 26 6c 74 3b 2d 20 27 2b 25 3d 27 20 LUSPERCENTEQUAL.....&lt;-.'+%='.
ae4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 50 54 52 43 20 20 20 20 20 20 20 20 20 20 .............skip.PTRC..........
ae4c0 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 5b 2a 63 5d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 .......&lt;-.'[*c]'.............
ae4e0 73 6b 69 70 0a 50 54 52 55 4e 4b 4e 4f 57 4e 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 skip.PTRUNKNOWN...........&lt;-.
ae500 27 5b 2a 5d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 51 55 45 53 54 49 4f 4e '[*]'..............skip.QUESTION
ae520 4d 41 52 4b 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 3f 27 20 20 20 20 20 20 20 20 20 20 MARK.........&lt;-.'?'..........
ae540 20 20 20 20 20 20 73 6b 69 70 0a 52 41 52 52 4f 57 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......skip.RARROW...............
ae560 26 6c 74 3b 2d 20 27 26 67 74 3b 27 20 20 20 20 20 20 21 5b 26 67 74 3b 3d 5d 20 20 20 20 20 73 &lt;-.'&gt;'......![&gt;=].....s
ae580 6b 69 70 0a 52 41 52 52 4f 57 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 kip.RARROW2..............&lt;-.'
ae5a0 26 67 74 3b 26 67 74 3b 27 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 52 41 52 &gt;&gt;'.....![=]......skip.RAR
ae5c0 52 4f 57 32 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 67 74 3b 26 67 74 ROW2EQUAL.........&lt;-.'&gt;&gt
ae5e0 3b 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 52 41 52 52 4f 57 45 51 55 41 ;='..............skip.RARROWEQUA
ae600 4c 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 67 74 3b 3d 27 20 20 20 20 20 20 20 20 L..........&lt;-.'&gt;='........
ae620 20 20 20 20 20 20 20 73 6b 69 70 0a 52 42 52 41 43 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......skip.RBRACE..............
ae640 20 26 6c 74 3b 2d 20 27 7d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 52 .&lt;-.'}'................skip.R
ae660 42 52 41 43 4b 45 54 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 5d 27 20 20 20 BRACKET.............&lt;-.']'...
ae680 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 52 50 41 52 45 4e 20 20 20 20 20 20 20 20 .............skip.RPAREN........
ae6a0 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 29 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......&lt;-.')'................
ae6c0 73 6b 69 70 0a 53 45 4d 49 43 4f 4c 4f 4e 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 skip.SEMICOLON............&lt;-.
ae6e0 27 3b 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 53 4c 41 53 48 20 20 20 ';'................skip.SLASH...
ae700 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2f 27 20 20 20 20 20 20 21 5b 3d 5d .............&lt;-.'/'......![=]
ae720 20 20 20 20 20 20 73 6b 69 70 0a 53 4c 41 53 48 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 ......skip.SLASHEQUAL...........
ae740 26 6c 74 3b 2d 20 27 2f 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 54 49 &lt;-.'/='...............skip.TI
ae760 4c 44 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 7e 27 20 20 20 20 LDE................&lt;-.'~'....
ae780 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 0a 65 6e 64 5f 6f 66 5f 77 6f 72 64 20 26 6c ............skip..end_of_word.&l
ae7a0 74 3b 2d 20 21 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5d 20 73 6b 69 70 0a 4b 45 59 57 4f 52 44 5f 61 t;-.![a-zA-Z0-9_].skip.KEYWORD_a
ae7c0 6c 69 67 6e 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 61 6c 69 67 6e 27 20 20 20 20 20 20 20 65 lign.......&lt;-.'align'.......e
ae7e0 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 61 6c 6c 6f 77 7a 65 72 6f 20 20 20 26 nd_of_word.KEYWORD_allowzero...&
ae800 6c 74 3b 2d 20 27 61 6c 6c 6f 77 7a 65 72 6f 27 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'allowzero'...end_of_word.K
ae820 45 59 57 4f 52 44 5f 61 6e 64 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 61 6e 64 27 20 20 EYWORD_and.........&lt;-.'and'..
ae840 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 61 73 6d 20 20 .......end_of_word.KEYWORD_asm..
ae860 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 61 73 6d 27 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f .......&lt;-.'asm'.........end_o
ae880 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 61 73 79 6e 63 20 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_async.......&lt;-
ae8a0 20 27 61 73 79 6e 63 27 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f .'async'.......end_of_word.KEYWO
ae8c0 52 44 5f 61 77 61 69 74 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 61 77 61 69 74 27 20 20 20 20 RD_await.......&lt;-.'await'....
ae8e0 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 62 72 65 61 6b 20 20 20 20 ...end_of_word.KEYWORD_break....
ae900 20 20 20 26 6c 74 3b 2d 20 27 62 72 65 61 6b 27 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'break'.......end_of_wo
ae920 72 64 0a 4b 45 59 57 4f 52 44 5f 63 61 74 63 68 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 63 61 rd.KEYWORD_catch.......&lt;-.'ca
ae940 74 63 68 27 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 63 tch'.......end_of_word.KEYWORD_c
ae960 6f 6d 70 74 69 6d 65 20 20 20 20 26 6c 74 3b 2d 20 27 63 6f 6d 70 74 69 6d 65 27 20 20 20 20 65 omptime....&lt;-.'comptime'....e
ae980 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 63 6f 6e 73 74 20 20 20 20 20 20 20 26 nd_of_word.KEYWORD_const.......&
ae9a0 6c 74 3b 2d 20 27 63 6f 6e 73 74 27 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'const'.......end_of_word.K
ae9c0 45 59 57 4f 52 44 5f 63 6f 6e 74 69 6e 75 65 20 20 20 20 26 6c 74 3b 2d 20 27 63 6f 6e 74 69 6e EYWORD_continue....&lt;-.'contin
ae9e0 75 65 27 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 64 65 66 65 72 ue'....end_of_word.KEYWORD_defer
aea00 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 64 65 66 65 72 27 20 20 20 20 20 20 20 65 6e 64 5f 6f .......&lt;-.'defer'.......end_o
aea20 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 20 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_else........&lt;-
aea40 20 27 65 6c 73 65 27 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f .'else'........end_of_word.KEYWO
aea60 52 44 5f 65 6e 75 6d 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 65 6e 75 6d 27 20 20 20 20 20 RD_enum........&lt;-.'enum'.....
aea80 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 65 72 72 64 65 66 65 72 20 ...end_of_word.KEYWORD_errdefer.
aeaa0 20 20 20 26 6c 74 3b 2d 20 27 65 72 72 64 65 66 65 72 27 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'errdefer'....end_of_wo
aeac0 72 64 0a 4b 45 59 57 4f 52 44 5f 65 72 72 6f 72 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 65 72 rd.KEYWORD_error.......&lt;-.'er
aeae0 72 6f 72 27 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 65 ror'.......end_of_word.KEYWORD_e
aeb00 78 70 6f 72 74 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 65 78 70 6f 72 74 27 20 20 20 20 20 20 65 xport......&lt;-.'export'......e
aeb20 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 65 78 74 65 72 6e 20 20 20 20 20 20 26 nd_of_word.KEYWORD_extern......&
aeb40 6c 74 3b 2d 20 27 65 78 74 65 72 6e 27 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'extern'......end_of_word.K
aeb60 45 59 57 4f 52 44 5f 66 61 6c 73 65 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 66 61 6c 73 65 27 EYWORD_false.......&lt;-.'false'
aeb80 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 66 6e 20 20 20 .......end_of_word.KEYWORD_fn...
aeba0 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 66 6e 27 20 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f .......&lt;-.'fn'..........end_o
aebc0 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 66 6f 72 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_for.........&lt;-
aebe0 20 27 66 6f 72 27 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f .'for'.........end_of_word.KEYWO
aec00 52 44 5f 69 66 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 69 66 27 20 20 20 20 20 20 20 RD_if..........&lt;-.'if'.......
aec20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 69 6e 6c 69 6e 65 20 20 20 ...end_of_word.KEYWORD_inline...
aec40 20 20 20 26 6c 74 3b 2d 20 27 69 6e 6c 69 6e 65 27 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'inline'......end_of_wo
aec60 72 64 0a 4b 45 59 57 4f 52 44 5f 6e 61 6b 65 64 63 63 20 20 20 20 20 26 6c 74 3b 2d 20 27 6e 61 rd.KEYWORD_nakedcc.....&lt;-.'na
aec80 6b 65 64 63 63 27 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 6e kedcc'.....end_of_word.KEYWORD_n
aeca0 6f 61 6c 69 61 73 20 20 20 20 20 26 6c 74 3b 2d 20 27 6e 6f 61 6c 69 61 73 27 20 20 20 20 20 65 oalias.....&lt;-.'noalias'.....e
aecc0 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 6e 75 6c 6c 20 20 20 20 20 20 20 20 26 nd_of_word.KEYWORD_null........&
aece0 6c 74 3b 2d 20 27 6e 75 6c 6c 27 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'null'........end_of_word.K
aed00 45 59 57 4f 52 44 5f 6f 72 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 6f 72 27 20 20 20 EYWORD_or..........&lt;-.'or'...
aed20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 6f 72 65 6c 73 .......end_of_word.KEYWORD_orels
aed40 65 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 6f 72 65 6c 73 65 27 20 20 20 20 20 20 65 6e 64 5f 6f e......&lt;-.'orelse'......end_o
aed60 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 70 61 63 6b 65 64 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_packed......&lt;-
aed80 20 27 70 61 63 6b 65 64 27 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f .'packed'......end_of_word.KEYWO
aeda0 52 44 5f 70 72 6f 6d 69 73 65 20 20 20 20 20 26 6c 74 3b 2d 20 27 70 72 6f 6d 69 73 65 27 20 20 RD_promise.....&lt;-.'promise'..
aedc0 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 70 75 62 20 20 20 20 20 20 ...end_of_word.KEYWORD_pub......
aede0 20 20 20 26 6c 74 3b 2d 20 27 70 75 62 27 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'pub'.........end_of_wo
aee00 72 64 0a 4b 45 59 57 4f 52 44 5f 72 65 73 75 6d 65 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 72 65 rd.KEYWORD_resume......&lt;-.'re
aee20 73 75 6d 65 27 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 72 sume'......end_of_word.KEYWORD_r
aee40 65 74 75 72 6e 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 72 65 74 75 72 6e 27 20 20 20 20 20 20 65 eturn......&lt;-.'return'......e
aee60 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 6c 69 6e 6b 73 65 63 74 69 6f 6e 20 26 nd_of_word.KEYWORD_linksection.&
aee80 6c 74 3b 2d 20 27 6c 69 6e 6b 73 65 63 74 69 6f 6e 27 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'linksection'.end_of_word.K
aeea0 45 59 57 4f 52 44 5f 73 74 64 63 61 6c 6c 63 63 20 20 20 26 6c 74 3b 2d 20 27 73 74 64 63 61 6c EYWORD_stdcallcc...&lt;-.'stdcal
aeec0 6c 63 63 27 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 73 74 72 75 63 lcc'...end_of_word.KEYWORD_struc
aeee0 74 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 73 74 72 75 63 74 27 20 20 20 20 20 20 65 6e 64 5f 6f t......&lt;-.'struct'......end_o
aef00 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 73 75 73 70 65 6e 64 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_suspend.....&lt;-
aef20 20 27 73 75 73 70 65 6e 64 27 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f .'suspend'.....end_of_word.KEYWO
aef40 52 44 5f 73 77 69 74 63 68 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 73 77 69 74 63 68 27 20 20 20 RD_switch......&lt;-.'switch'...
aef60 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 74 65 73 74 20 20 20 20 20 ...end_of_word.KEYWORD_test.....
aef80 20 20 20 26 6c 74 3b 2d 20 27 74 65 73 74 27 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'test'........end_of_wo
aefa0 72 64 0a 4b 45 59 57 4f 52 44 5f 74 68 72 65 61 64 6c 6f 63 61 6c 20 26 6c 74 3b 2d 20 27 74 68 rd.KEYWORD_threadlocal.&lt;-.'th
aefc0 72 65 61 64 6c 6f 63 61 6c 27 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 74 readlocal'.end_of_word.KEYWORD_t
aefe0 72 75 65 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 74 72 75 65 27 20 20 20 20 20 20 20 20 65 rue........&lt;-.'true'........e
af000 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 74 72 79 20 20 20 20 20 20 20 20 20 26 nd_of_word.KEYWORD_try.........&
af020 6c 74 3b 2d 20 27 74 72 79 27 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'try'.........end_of_word.K
af040 45 59 57 4f 52 44 5f 75 6e 64 65 66 69 6e 65 64 20 20 20 26 6c 74 3b 2d 20 27 75 6e 64 65 66 69 EYWORD_undefined...&lt;-.'undefi
af060 6e 65 64 27 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 75 6e 69 6f 6e ned'...end_of_word.KEYWORD_union
af080 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 75 6e 69 6f 6e 27 20 20 20 20 20 20 20 65 6e 64 5f 6f .......&lt;-.'union'.......end_o
af0a0 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 75 6e 72 65 61 63 68 61 62 6c 65 20 26 6c 74 3b 2d f_word.KEYWORD_unreachable.&lt;-
af0c0 20 27 75 6e 72 65 61 63 68 61 62 6c 65 27 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f .'unreachable'.end_of_word.KEYWO
af0e0 52 44 5f 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 20 26 6c 74 3b 2d 20 27 75 73 69 6e 67 6e 61 RD_usingnamespace.&lt;-.'usingna
af100 6d 65 73 70 61 63 65 27 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 76 61 72 mespace'.end_of_word.KEYWORD_var
af120 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 76 61 72 27 20 20 20 20 20 20 20 20 20 65 6e 64 .........&lt;-.'var'.........end
af140 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 76 6f 6c 61 74 69 6c 65 20 20 20 20 26 6c 74 _of_word.KEYWORD_volatile....&lt
af160 3b 2d 20 27 76 6f 6c 61 74 69 6c 65 27 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 ;-.'volatile'....end_of_word.KEY
af180 57 4f 52 44 5f 77 68 69 6c 65 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 77 68 69 6c 65 27 20 20 WORD_while.......&lt;-.'while'..
af1a0 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 0a 6b 65 79 77 6f 72 64 20 26 6c 74 3b 2d 20 .....end_of_word..keyword.&lt;-.
af1c0 4b 45 59 57 4f 52 44 5f 61 6c 69 67 6e 20 2f 20 4b 45 59 57 4f 52 44 5f 61 6e 64 20 2f 20 4b 45 KEYWORD_align./.KEYWORD_and./.KE
af1e0 59 57 4f 52 44 5f 61 6c 6c 6f 77 7a 65 72 6f 20 2f 20 4b 45 59 57 4f 52 44 5f 61 73 6d 0a 20 20 YWORD_allowzero./.KEYWORD_asm...
af200 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 61 73 79 6e 63 20 2f 20 4b 45 59 57 4f 52 44 ......./.KEYWORD_async./.KEYWORD
af220 5f 61 77 61 69 74 20 2f 20 4b 45 59 57 4f 52 44 5f 62 72 65 61 6b 0a 20 20 20 20 20 20 20 20 20 _await./.KEYWORD_break..........
af240 2f 20 4b 45 59 57 4f 52 44 5f 63 61 74 63 68 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 /.KEYWORD_catch./.KEYWORD_compti
af260 6d 65 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6e 73 74 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6e me./.KEYWORD_const./.KEYWORD_con
af280 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 64 65 66 65 72 20 2f tinue........../.KEYWORD_defer./
af2a0 20 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 2f 20 4b 45 59 57 4f 52 44 5f 65 6e 75 6d 20 2f 20 4b .KEYWORD_else./.KEYWORD_enum./.K
af2c0 45 59 57 4f 52 44 5f 65 72 72 64 65 66 65 72 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f EYWORD_errdefer........../.KEYWO
af2e0 52 44 5f 65 72 72 6f 72 20 2f 20 4b 45 59 57 4f 52 44 5f 65 78 70 6f 72 74 20 2f 20 4b 45 59 57 RD_error./.KEYWORD_export./.KEYW
af300 4f 52 44 5f 65 78 74 65 72 6e 20 2f 20 4b 45 59 57 4f 52 44 5f 66 61 6c 73 65 0a 20 20 20 20 20 ORD_extern./.KEYWORD_false......
af320 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 66 6e 20 2f 20 4b 45 59 57 4f 52 44 5f 66 6f 72 20 2f ..../.KEYWORD_fn./.KEYWORD_for./
af340 20 4b 45 59 57 4f 52 44 5f 69 66 20 2f 20 4b 45 59 57 4f 52 44 5f 69 6e 6c 69 6e 65 0a 20 20 20 .KEYWORD_if./.KEYWORD_inline....
af360 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 6e 61 6b 65 64 63 63 20 2f 20 4b 45 59 57 4f 52 ....../.KEYWORD_nakedcc./.KEYWOR
af380 44 5f 6e 6f 61 6c 69 61 73 20 2f 20 4b 45 59 57 4f 52 44 5f 6e 75 6c 6c 20 2f 20 4b 45 59 57 4f D_noalias./.KEYWORD_null./.KEYWO
af3a0 52 44 5f 6f 72 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 6f 72 65 6c 73 65 20 RD_or........../.KEYWORD_orelse.
af3c0 2f 20 4b 45 59 57 4f 52 44 5f 70 61 63 6b 65 64 20 2f 20 4b 45 59 57 4f 52 44 5f 70 72 6f 6d 69 /.KEYWORD_packed./.KEYWORD_promi
af3e0 73 65 20 2f 20 4b 45 59 57 4f 52 44 5f 70 75 62 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 se./.KEYWORD_pub........../.KEYW
af400 4f 52 44 5f 72 65 73 75 6d 65 20 2f 20 4b 45 59 57 4f 52 44 5f 72 65 74 75 72 6e 20 2f 20 4b 45 ORD_resume./.KEYWORD_return./.KE
af420 59 57 4f 52 44 5f 6c 69 6e 6b 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 YWORD_linksection........../.KEY
af440 57 4f 52 44 5f 73 74 64 63 61 6c 6c 63 63 20 2f 20 4b 45 59 57 4f 52 44 5f 73 74 72 75 63 74 20 WORD_stdcallcc./.KEYWORD_struct.
af460 2f 20 4b 45 59 57 4f 52 44 5f 73 75 73 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 /.KEYWORD_suspend........../.KEY
af480 57 4f 52 44 5f 73 77 69 74 63 68 20 2f 20 4b 45 59 57 4f 52 44 5f 74 65 73 74 20 2f 20 4b 45 59 WORD_switch./.KEYWORD_test./.KEY
af4a0 57 4f 52 44 5f 74 68 72 65 61 64 6c 6f 63 61 6c 20 2f 20 4b 45 59 57 4f 52 44 5f 74 72 75 65 20 WORD_threadlocal./.KEYWORD_true.
af4c0 2f 20 4b 45 59 57 4f 52 44 5f 74 72 79 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 /.KEYWORD_try........../.KEYWORD
af4e0 5f 75 6e 64 65 66 69 6e 65 64 20 2f 20 4b 45 59 57 4f 52 44 5f 75 6e 69 6f 6e 20 2f 20 4b 45 59 _undefined./.KEYWORD_union./.KEY
af500 57 4f 52 44 5f 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 WORD_unreachable........../.KEYW
af520 4f 52 44 5f 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 20 2f 20 4b 45 59 57 4f 52 44 5f 76 61 72 ORD_usingnamespace./.KEYWORD_var
af540 20 2f 20 4b 45 59 57 4f 52 44 5f 76 6f 6c 61 74 69 6c 65 20 2f 20 4b 45 59 57 4f 52 44 5f 77 68 ./.KEYWORD_volatile./.KEYWORD_wh
af560 69 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 ile</code></pre>..............<h
af580 31 20 69 64 3d 22 5a 65 6e 22 3e 3c 61 20 68 72 65 66 3d 22 23 74 6f 63 2d 5a 65 6e 22 3e 5a 65 1.id="Zen"><a.href="#toc-Zen">Ze
af5a0 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 5a 65 6e 22 n</a>.<a.class="hdr".href="#Zen"
af5c0 3e c2 a7 3c 2f 61 3e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 >..</a></h1>........<ul>........
af5e0 20 3c 6c 69 3e 43 6f 6d 6d 75 6e 69 63 61 74 65 20 69 6e 74 65 6e 74 20 70 72 65 63 69 73 65 6c .<li>Communicate.intent.precisel
af600 79 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 64 67 65 20 63 61 73 65 73 20 6d y.</li>.........<li>Edge.cases.m
af620 61 74 74 65 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 61 76 6f 72 20 72 65 atter.</li>.........<li>Favor.re
af640 61 64 69 6e 67 20 63 6f 64 65 20 6f 76 65 72 20 77 72 69 74 69 6e 67 20 63 6f 64 65 2e 3c 2f 6c ading.code.over.writing.code.</l
af660 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 6e 6c 79 20 6f 6e 65 20 6f 62 76 69 6f 75 73 20 i>.........<li>Only.one.obvious.
af680 77 61 79 20 74 6f 20 64 6f 20 74 68 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c way.to.do.things.</li>.........<
af6a0 6c 69 3e 52 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 61 72 65 20 62 65 74 74 65 72 20 74 68 li>Runtime.crashes.are.better.th
af6c0 61 6e 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6d 70 69 6c an.bugs.</li>.........<li>Compil
af6e0 65 20 65 72 72 6f 72 73 20 61 72 65 20 62 65 74 74 65 72 20 74 68 61 6e 20 72 75 6e 74 69 6d 65 e.errors.are.better.than.runtime
af700 20 63 72 61 73 68 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 63 72 65 .crashes.</li>.........<li>Incre
af720 6d 65 6e 74 61 6c 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 mental.improvements.</li>.......
af740 20 20 3c 6c 69 3e 41 76 6f 69 64 20 6c 6f 63 61 6c 20 6d 61 78 69 6d 75 6d 73 2e 3c 2f 6c 69 3e ..<li>Avoid.local.maximums.</li>
af760 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 64 75 63 65 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f .........<li>Reduce.the.amount.o
af780 6e 65 20 6d 75 73 74 20 72 65 6d 65 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c ne.must.remember.</li>.........<
af7a0 6c 69 3e 4d 69 6e 69 6d 69 7a 65 20 65 6e 65 72 67 79 20 73 70 65 6e 74 20 6f 6e 20 63 6f 64 69 li>Minimize.energy.spent.on.codi
af7c0 6e 67 20 73 74 79 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 73 6f 75 ng.style.</li>.........<li>Resou
af7e0 72 63 65 20 64 65 61 6c 6c 6f 63 61 74 69 6f 6e 20 6d 75 73 74 20 73 75 63 63 65 65 64 2e 3c 2f rce.deallocation.must.succeed.</
af800 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 6f 67 65 74 68 65 72 20 77 65 20 73 65 72 76 li>.........<li>Together.we.serv
af820 65 20 65 6e 64 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 e.end.users.</li>.......</ul>...
af840 20 20 20 20 0a 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 3c 2f 62 6f 64 79 3e 0a 3c 2f 68 74 6d 6c .........</div>...</body>.</html
af860 3e 0a 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 6f 61 ab 2c 14 00 00 00 14 00 00 00 08 00 >.PK............!Roa.,..........
af880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 69 6d 65 74 79 70 65 50 4b 01 02 14 00 14 00 ................mimetypePK......
af8a0 00 00 00 00 00 00 21 52 6f 92 d0 0a fc 00 00 00 fc 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 ......!Ro.......................
af8c0 00 00 3a 00 00 00 4d 45 54 41 2d 49 4e 46 2f 63 6f 6e 74 61 69 6e 65 72 2e 78 6d 6c 50 4b 01 02 ..:...META-INF/container.xmlPK..
af8e0 14 00 14 00 00 00 00 00 00 00 21 52 3c a4 dd ee a7 02 00 00 a7 02 00 00 11 00 00 00 00 00 00 00 ..........!R<...................
af900 00 00 00 00 00 00 6a 01 00 00 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 2e 6f 70 66 50 4b 01 02 14 ......j...OEBPS/content.opfPK...
af920 00 14 00 00 00 00 00 00 00 21 52 62 1f 38 3c 86 01 00 00 86 01 00 00 0f 00 00 00 00 00 00 00 00 .........!Rb.8<.................
af940 00 00 00 00 00 40 04 00 00 4f 45 42 50 53 2f 6e 61 76 2e 78 68 74 6d 6c 50 4b 01 02 14 00 14 00 .....@...OEBPS/nav.xhtmlPK......
af960 00 00 00 00 00 00 21 52 3a a9 15 08 40 f2 0a 00 40 f2 0a 00 11 00 00 00 00 00 00 00 00 00 00 00 ......!R:...@...@...............
af980 00 00 f3 05 00 00 4f 45 42 50 53 2f 69 6e 64 65 78 2e 78 68 74 6d 6c 50 4b 05 06 00 00 00 00 05 ......OEBPS/index.xhtmlPK.......
af9a0 00 05 00 35 01 00 00 62 f8 0a 00 00 00 ...5...b.....