aboutsummaryrefslogtreecommitdiffstats
path: root/epubs/zig-0.12.1.epub
blob: 64b217976b73528d343fafb50c7e403e835767e7 (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 cd 62 3e 26 c4 02 00 00 ontainer>.PK..........!R.b>&....
0180 c4 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 31 32 2e 31 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 :0.12.1</dc:identifier>.....<dc:
02a0 74 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 title>Zig.Language.Reference.(0.
02c0 31 32 2e 31 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 12.1)</dc:title>.....<dc:languag
02e0 65 3e 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 e>en</dc:language>.....<meta.pro
0300 70 65 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 perty="dcterms:modified">2021-01
0320 2d 30 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 -01T00:00:00Z</meta>...</metadat
0340 61 3e 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 a>...<manifest>.....<item.id="na
0360 76 22 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 v".href="nav.xhtml".media-type="
0380 61 70 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 application/xhtml+xml".propertie
03a0 73 3d 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 s="nav"/>.....<item.id="index".h
03c0 72 65 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 ref="index.xhtml".media-type="ap
03e0 70 6c 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 plication/xhtml+xml"/>...</manif
0400 65 73 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 est>...<spine>.....<itemref.idre
0420 66 3d 22 6e 61 76 22 2f 3e 0a 20 20 20 20 3c 69 74 65 6d 72 65 66 20 69 64 72 65 66 3d 22 69 6e f="nav"/>.....<itemref.idref="in
0440 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 50 4b 03 dex"/>...</spine>.</package>.PK.
0460 04 14 00 00 00 00 00 00 00 21 52 a9 23 1a fa 25 88 00 00 25 88 00 00 0f 00 00 00 4f 45 42 50 53 .........!R.#..%...%.......OEBPS
0480 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 20 65 6e /nav.xhtml<?xml.version="1.0".en
04a0 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 22 68 74 coding="utf-8"?>.<html.xmlns="ht
04c0 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 6d 6c 6e tp://www.w3.org/1999/xhtml".xmln
04e0 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 30 30 37 s:epub="http://www.idpf.org/2007
0500 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 6c 65 3e /ops".lang="en">...<head><title>
0520 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 31 32 2e 31 29 3c Zig.Language.Reference.(0.12.1)<
0540 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 61 76 /title></head>...<body>.....<nav
0560 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 20 20 .epub:type="toc".id="toc">......
0580 20 3c 68 31 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 31 .<h1>Zig.Language.Reference.(0.1
05a0 32 2e 31 29 3c 2f 68 31 3e 0a 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 2.1)</h1>.......<ol>.........<li
05c0 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="
05e0 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6e 74 72 6f 64 75 63 74 69 6f 6e 22 3e 49 6e 74 72 6f 64 index.xhtml#Introduction">Introd
0600 75 63 74 69 6f 6e 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 uction</a></li>.........<li><a.i
0620 64 3d 22 74 6f 63 2d 5a 69 67 2d 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 72 79 22 20 68 72 65 d="toc-Zig-Standard-Library".hre
0640 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 5a 69 67 2d 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 f="index.xhtml#Zig-Standard-Libr
0660 61 72 79 22 3e 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c 2f 61 3e 3c 2f 6c ary">Zig.Standard.Library</a></l
0680 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 48 65 6c 6c 6f 2d i>.........<li><a.id="toc-Hello-
06a0 57 6f 72 6c 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 48 65 6c 6c 6f 2d 57 World".href="index.xhtml#Hello-W
06c0 6f 72 6c 64 22 3e 48 65 6c 6c 6f 20 57 6f 72 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 orld">Hello.World</a></li>......
06e0 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 20 68 72 65 66 ...<li><a.id="toc-Comments".href
0700 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 6f 6d 6d 65 6e 74 73 22 3e 43 6f 6d 6d 65 6e 74 73 ="index.xhtml#Comments">Comments
0720 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c </a>.........<ol>.............<l
0740 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 44 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 20 68 72 65 66 3d i><a.id="toc-Doc-Comments".href=
0760 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 44 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 3e 44 6f 63 20 43 "index.xhtml#Doc-Comments">Doc.C
0780 6f 6d 6d 65 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 omments</a></li>.............<li
07a0 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 6f 70 2d 4c 65 76 65 6c 2d 44 6f 63 2d 43 6f 6d 6d 65 6e ><a.id="toc-Top-Level-Doc-Commen
07c0 74 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 6f 70 2d 4c 65 76 65 6c 2d ts".href="index.xhtml#Top-Level-
07e0 44 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 3e 54 6f 70 2d 4c 65 76 65 6c 20 44 6f 63 20 43 6f 6d 6d Doc-Comments">Top-Level.Doc.Comm
0800 65 6e 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e ents</a></li>.........</ol></li>
0820 0a 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 .........<li><a.id="toc-Values".
0840 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 56 61 6c 75 65 73 22 3e 56 61 6c 75 65 73 href="index.xhtml#Values">Values
0860 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c </a>.........<ol>.............<l
0880 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 20 68 72 i><a.id="toc-Primitive-Types".hr
08a0 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 ef="index.xhtml#Primitive-Types"
08c0 3e 50 72 69 6d 69 74 69 76 65 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 >Primitive.Types</a></li>.......
08e0 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 50 72 69 6d 69 74 69 76 65 2d 56 ......<li><a.id="toc-Primitive-V
0900 61 6c 75 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 50 72 69 6d 69 74 69 alues".href="index.xhtml#Primiti
0920 76 65 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 ve-Values">Primitive.Values</a><
0940 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-
0960 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 2d 61 6e 64 2d 55 6e 69 63 6f 64 65 2d 43 6f 64 65 String-Literals-and-Unicode-Code
0980 2d 50 6f 69 6e 74 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 -Point-Literals".href="index.xht
09a0 6d 6c 23 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 2d 61 6e 64 2d 55 6e 69 63 6f 64 65 2d 43 ml#String-Literals-and-Unicode-C
09c0 6f 64 65 2d 50 6f 69 6e 74 2d 4c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 20 4c 69 74 65 72 ode-Point-Literals">String.Liter
09e0 61 6c 73 20 61 6e 64 20 55 6e 69 63 6f 64 65 20 43 6f 64 65 20 50 6f 69 6e 74 20 4c 69 74 65 72 als.and.Unicode.Code.Point.Liter
0a00 61 6c 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 als</a>.............<ol>........
0a20 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 73 63 61 70 65 2d 53 .........<li><a.id="toc-Escape-S
0a40 65 71 75 65 6e 63 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 45 73 63 61 equences".href="index.xhtml#Esca
0a60 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 63 65 73 3c 2f pe-Sequences">Escape.Sequences</
0a80 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
0aa0 64 3d 22 74 6f 63 2d 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 d="toc-Multiline-String-Literals
0ac0 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 ".href="index.xhtml#Multiline-St
0ae0 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 67 20 ring-Literals">Multiline.String.
0b00 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 3c 2f Literals</a></li>.............</
0b20 6f 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 22 ol></li>.............<li><a.id="
0b40 74 6f 63 2d 41 73 73 69 67 6e 6d 65 6e 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d toc-Assignment".href="index.xhtm
0b60 6c 23 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 0a 20 20 20 l#Assignment">Assignment</a>....
0b80 20 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c .........<ol>.................<l
0ba0 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 75 6e 64 65 66 69 6e 65 64 22 20 68 72 65 66 3d 22 69 6e i><a.id="toc-undefined".href="in
0bc0 64 65 78 2e 78 68 74 6d 6c 23 75 6e 64 65 66 69 6e 65 64 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f dex.xhtml#undefined">undefined</
0be0 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 a></li>.............</ol></li>..
0c00 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 .......</ol></li>.........<li><a
0c20 20 69 64 3d 22 74 6f 63 2d 5a 69 67 2d 54 65 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 .id="toc-Zig-Test".href="index.x
0c40 68 74 6d 6c 23 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e 0a 20 20 20 20 html#Zig-Test">Zig.Test</a>.....
0c60 20 20 20 20 3c 6f 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 ....<ol>.............<li><a.id="
0c80 74 6f 63 2d 54 65 73 74 2d 44 65 63 6c 61 72 61 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 69 6e 64 toc-Test-Declarations".href="ind
0ca0 65 78 2e 78 68 74 6d 6c 23 54 65 73 74 2d 44 65 63 6c 61 72 61 74 69 6f 6e 73 22 3e 54 65 73 74 ex.xhtml#Test-Declarations">Test
0cc0 20 44 65 63 6c 61 72 61 74 69 6f 6e 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6f .Declarations</a>.............<o
0ce0 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 74 6f l>.................<li><a.id="to
0d00 63 2d 44 6f 63 74 65 73 74 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 44 6f c-Doctests".href="index.xhtml#Do
0d20 63 74 65 73 74 73 22 3e 44 6f 63 74 65 73 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 ctests">Doctests</a></li>.......
0d40 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 ......</ol></li>.............<li
0d60 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 65 73 74 2d 46 61 69 6c 75 72 65 22 20 68 72 65 66 3d 22 ><a.id="toc-Test-Failure".href="
0d80 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 65 73 74 2d 46 61 69 6c 75 72 65 22 3e 54 65 73 74 20 46 index.xhtml#Test-Failure">Test.F
0da0 61 69 6c 75 72 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 ailure</a></li>.............<li>
0dc0 3c 61 20 69 64 3d 22 74 6f 63 2d 53 6b 69 70 2d 54 65 73 74 73 22 20 68 72 65 66 3d 22 69 6e 64 <a.id="toc-Skip-Tests".href="ind
0de0 65 78 2e 78 68 74 6d 6c 23 53 6b 69 70 2d 54 65 73 74 73 22 3e 53 6b 69 70 20 54 65 73 74 73 3c ex.xhtml#Skip-Tests">Skip.Tests<
0e00 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="
0e20 74 6f 63 2d 52 65 70 6f 72 74 2d 4d 65 6d 6f 72 79 2d 4c 65 61 6b 73 22 20 68 72 65 66 3d 22 69 toc-Report-Memory-Leaks".href="i
0e40 6e 64 65 78 2e 78 68 74 6d 6c 23 52 65 70 6f 72 74 2d 4d 65 6d 6f 72 79 2d 4c 65 61 6b 73 22 3e ndex.xhtml#Report-Memory-Leaks">
0e60 52 65 70 6f 72 74 20 4d 65 6d 6f 72 79 20 4c 65 61 6b 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 Report.Memory.Leaks</a></li>....
0e80 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 65 74 65 63 74 69 6e .........<li><a.id="toc-Detectin
0ea0 67 2d 54 65 73 74 2d 42 75 69 6c 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 g-Test-Build".href="index.xhtml#
0ec0 44 65 74 65 63 74 69 6e 67 2d 54 65 73 74 2d 42 75 69 6c 64 22 3e 44 65 74 65 63 74 69 6e 67 20 Detecting-Test-Build">Detecting.
0ee0 54 65 73 74 20 42 75 69 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 Test.Build</a></li>.............
0f00 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 65 73 74 2d 4f 75 74 70 75 74 2d 61 6e 64 2d 4c <li><a.id="toc-Test-Output-and-L
0f20 6f 67 67 69 6e 67 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 65 73 74 2d 4f ogging".href="index.xhtml#Test-O
0f40 75 74 70 75 74 2d 61 6e 64 2d 4c 6f 67 67 69 6e 67 22 3e 54 65 73 74 20 4f 75 74 70 75 74 20 61 utput-and-Logging">Test.Output.a
0f60 6e 64 20 4c 6f 67 67 69 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 nd.Logging</a></li>.............
0f80 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 68 65 2d 54 65 73 74 69 6e 67 2d 4e 61 6d 65 73 <li><a.id="toc-The-Testing-Names
0fa0 70 61 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 68 65 2d 54 65 73 74 pace".href="index.xhtml#The-Test
0fc0 69 6e 67 2d 4e 61 6d 65 73 70 61 63 65 22 3e 54 68 65 20 54 65 73 74 69 6e 67 20 4e 61 6d 65 73 ing-Namespace">The.Testing.Names
0fe0 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 3e 3c 61 pace</a></li>.............<li><a
1000 20 69 64 3d 22 74 6f 63 2d 54 65 73 74 2d 54 6f 6f 6c 2d 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e .id="toc-Test-Tool-Documentation
1020 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 65 73 74 2d 54 6f 6f 6c 2d 44 6f ".href="index.xhtml#Test-Tool-Do
1040 63 75 6d 65 6e 74 61 74 69 6f 6e 22 3e 54 65 73 74 20 54 6f 6f 6c 20 44 6f 63 75 6d 65 6e 74 61 cumentation">Test.Tool.Documenta
1060 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e tion</a></li>.........</ol></li>
1080 0a 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 72 69 61 62 6c 65 .........<li><a.id="toc-Variable
10a0 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 56 61 72 69 61 62 6c 65 73 22 3e s".href="index.xhtml#Variables">
10c0 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 Variables</a>.........<ol>......
10e0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 64 65 6e 74 69 66 69 65 72 .......<li><a.id="toc-Identifier
1100 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 64 65 6e 74 69 66 69 65 72 73 s".href="index.xhtml#Identifiers
1120 22 3e 49 64 65 6e 74 69 66 69 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 ">Identifiers</a></li>..........
1140 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 6f 6e 74 61 69 6e 65 72 2d 4c 65 76 65 ...<li><a.id="toc-Container-Leve
1160 6c 2d 56 61 72 69 61 62 6c 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 l-Variables".href="index.xhtml#C
1180 6f 6e 74 61 69 6e 65 72 2d 4c 65 76 65 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6e 74 61 69 ontainer-Level-Variables">Contai
11a0 6e 65 72 20 4c 65 76 65 6c 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 ner.Level.Variables</a></li>....
11c0 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 61 74 69 63 2d 4c .........<li><a.id="toc-Static-L
11e0 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d ocal-Variables".href="index.xhtm
1200 6c 23 53 74 61 74 69 63 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 53 74 61 74 69 63 l#Static-Local-Variables">Static
1220 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 20 20 20 20 20 .Local.Variables</a></li>.......
1240 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 68 72 65 61 64 2d 4c 6f 63 61 ......<li><a.id="toc-Thread-Loca
1260 6c 2d 56 61 72 69 61 62 6c 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 l-Variables".href="index.xhtml#T
1280 68 72 65 61 64 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 54 68 72 65 61 64 20 4c 6f hread-Local-Variables">Thread.Lo
12a0 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 20 20 20 20 20 cal.Variables</a></li>..........
12c0 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 ...<li><a.id="toc-Local-Variable
12e0 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4c 6f 63 61 6c 2d 56 61 72 69 61 s".href="index.xhtml#Local-Varia
1300 62 6c 65 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 bles">Local.Variables</a></li>..
1320 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 .......</ol></li>.........<li><a
1340 20 69 64 3d 22 74 6f 63 2d 49 6e 74 65 67 65 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 .id="toc-Integers".href="index.x
1360 68 74 6d 6c 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 0a 20 20 20 20 html#Integers">Integers</a>.....
1380 20 20 20 20 3c 6f 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 ....<ol>.............<li><a.id="
13a0 74 6f 63 2d 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 toc-Integer-Literals".href="inde
13c0 78 2e 78 68 74 6d 6c 23 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 49 6e 74 65 67 65 x.xhtml#Integer-Literals">Intege
13e0 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 20 20 20 20 20 20 20 r.Literals</a></li>.............
1400 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 74 65 67 65 72 2d 56 <li><a.id="toc-Runtime-Integer-V
1420 61 6c 75 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 52 75 6e 74 69 6d 65 alues".href="index.xhtml#Runtime
1440 2d 49 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 -Integer-Values">Runtime.Integer
1460 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 3c 2f 6f 6c 3e 3c 2f .Values</a></li>.........</ol></
1480 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 46 6c 6f 61 74 li>.........<li><a.id="toc-Float
14a0 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 46 6c 6f 61 74 73 22 3e 46 6c 6f s".href="index.xhtml#Floats">Flo
14c0 61 74 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 ats</a>.........<ol>............
14e0 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 46 6c 6f 61 74 2d 4c 69 74 65 72 61 6c 73 22 20 .<li><a.id="toc-Float-Literals".
1500 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 46 6c 6f 61 74 2d 4c 69 74 65 72 61 6c 73 href="index.xhtml#Float-Literals
1520 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 20 20 20 20 20 20 ">Float.Literals</a></li>.......
1540 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 69 6e 67 2d 50 6f ......<li><a.id="toc-Floating-Po
1560 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d int-Operations".href="index.xhtm
1580 6c 23 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 46 6c 6f l#Floating-Point-Operations">Flo
15a0 61 74 69 6e 67 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 ating.Point.Operations</a></li>.
15c0 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c ........</ol></li>.........<li><
15e0 61 20 69 64 3d 22 74 6f 63 2d 4f 70 65 72 61 74 6f 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 a.id="toc-Operators".href="index
1600 2e 78 68 74 6d 6c 23 4f 70 65 72 61 74 6f 72 73 22 3e 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 0a .xhtml#Operators">Operators</a>.
1620 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 ........<ol>.............<li><a.
1640 69 64 3d 22 74 6f 63 2d 54 61 62 6c 65 2d 6f 66 2d 4f 70 65 72 61 74 6f 72 73 22 20 68 72 65 66 id="toc-Table-of-Operators".href
1660 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 61 62 6c 65 2d 6f 66 2d 4f 70 65 72 61 74 6f 72 73 ="index.xhtml#Table-of-Operators
1680 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 69 3e 0a 20 20 ">Table.of.Operators</a></li>...
16a0 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 65 63 65 64 65 ..........<li><a.id="toc-Precede
16c0 6e 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 50 72 65 63 65 64 65 6e 63 nce".href="index.xhtml#Precedenc
16e0 65 22 3e 50 72 65 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 e">Precedence</a></li>.........<
1700 2f 6f 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 /ol></li>.........<li><a.id="toc
1720 2d 41 72 72 61 79 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 72 72 61 79 -Arrays".href="index.xhtml#Array
1740 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 s">Arrays</a>.........<ol>......
1760 20 20 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 64 69 6d 65 6e .......<li><a.id="toc-Multidimen
1780 73 69 6f 6e 61 6c 2d 41 72 72 61 79 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c sional-Arrays".href="index.xhtml
17a0 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 6c 74 69 64 #Multidimensional-Arrays">Multid
17c0 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 20 20 20 20 imensional.Arrays</a></li>......
17e0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 65 6e 74 69 6e 65 6c 2d 54 .......<li><a.id="toc-Sentinel-T
1800 65 72 6d 69 6e 61 74 65 64 2d 41 72 72 61 79 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 erminated-Arrays".href="index.xh
1820 74 6d 6c 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 41 72 72 61 79 73 22 3e tml#Sentinel-Terminated-Arrays">
1840 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 41 72 72 61 79 73 3c 2f 61 3e 3c 2f Sentinel-Terminated.Arrays</a></
1860 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c li>.........</ol></li>.........<
1880 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 56 65 63 74 6f 72 73 22 20 68 72 65 66 3d 22 69 6e 64 li><a.id="toc-Vectors".href="ind
18a0 65 78 2e 78 68 74 6d 6c 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 3c 2f 6c ex.xhtml#Vectors">Vectors</a></l
18c0 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 50 6f 69 6e 74 65 i>.........<li><a.id="toc-Pointe
18e0 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 50 6f 69 6e 74 65 72 73 22 3e rs".href="index.xhtml#Pointers">
1900 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 Pointers</a>.........<ol>.......
1920 20 20 20 20 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 ......<li><a.id="toc-volatile".h
1940 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 76 6f 6c 61 74 69 6c 65 22 3e 76 6f 6c 61 74 ref="index.xhtml#volatile">volat
1960 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 20 ile</a></li>.............<li><a.
1980 69 64 3d 22 74 6f 63 2d 41 6c 69 67 6e 6d 65 6e 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 id="toc-Alignment".href="index.x
19a0 68 74 6d 6c 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 html#Alignment">Alignment</a></l
19c0 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 61 6c i>.............<li><a.id="toc-al
19e0 6c 6f 77 7a 65 72 6f 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 61 6c 6c 6f 77 lowzero".href="index.xhtml#allow
1a00 7a 65 72 6f 22 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 zero">allowzero</a></li>........
1a20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 65 6e 74 69 6e 65 6c 2d 54 65 72 .....<li><a.id="toc-Sentinel-Ter
1a40 6d 69 6e 61 74 65 64 2d 50 6f 69 6e 74 65 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 minated-Pointers".href="index.xh
1a60 74 6d 6c 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 50 6f 69 6e 74 65 72 73 tml#Sentinel-Terminated-Pointers
1a80 22 3e 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 50 6f 69 6e 74 65 72 73 3c 2f ">Sentinel-Terminated.Pointers</
1aa0 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 a></li>.........</ol></li>......
1ac0 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 6c 69 63 65 73 22 20 68 72 65 66 3d 22 ...<li><a.id="toc-Slices".href="
1ae0 69 6e 64 65 78 2e 78 68 74 6d 6c 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 0a 20 index.xhtml#Slices">Slices</a>..
1b00 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 .......<ol>.............<li><a.i
1b20 64 3d 22 74 6f 63 2d 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 53 6c 69 63 65 d="toc-Sentinel-Terminated-Slice
1b40 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 53 65 6e 74 69 6e 65 6c 2d 54 65 s".href="index.xhtml#Sentinel-Te
1b60 72 6d 69 6e 61 74 65 64 2d 53 6c 69 63 65 73 22 3e 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e rminated-Slices">Sentinel-Termin
1b80 61 74 65 64 20 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f ated.Slices</a></li>.........</o
1ba0 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 73 l></li>.........<li><a.id="toc-s
1bc0 74 72 75 63 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 74 72 75 63 74 22 truct".href="index.xhtml#struct"
1be0 3e 73 74 72 75 63 74 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 >struct</a>.........<ol>........
1c00 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 44 65 66 61 75 6c 74 2d 46 69 65 6c .....<li><a.id="toc-Default-Fiel
1c20 64 2d 56 61 6c 75 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 44 65 66 61 d-Values".href="index.xhtml#Defa
1c40 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 64 20 ult-Field-Values">Default.Field.
1c60 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 20 20 20 3c 6c 69 3e Values</a></li>.............<li>
1c80 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 20 68 72 65 66 3d 22 <a.id="toc-extern-struct".href="
1ca0 69 6e 64 65 78 2e 78 68 74 6d 6c 23 65 78 74 65 72 6e 2d 73 74 72 75 63 74 22 3e 65 78 74 65 72 index.xhtml#extern-struct">exter
1cc0 6e 20 73 74 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 n.struct</a></li>.............<l
1ce0 69 3e 3c 61 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 i><a.id="toc-packed-struct".href
1d00 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 70 61 63 6b 65 64 2d 73 74 72 75 63 74 22 3e 70 61 63 ="index.xhtml#packed-struct">pac
1d20 6b 65 64 20 73 74 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 ked.struct</a></li>.............
1d40 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 74 72 75 63 74 2d 4e 61 6d 69 6e 67 22 20 68 72 <li><a.id="toc-Struct-Naming".hr
1d60 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 53 74 72 75 63 74 2d 4e 61 6d 69 6e 67 22 3e 53 ef="index.xhtml#Struct-Naming">S
1d80 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 20 20 20 20 20 20 truct.Naming</a></li>...........
1da0 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 41 6e 6f 6e 79 6d 6f 75 73 2d 53 74 72 75 63 ..<li><a.id="toc-Anonymous-Struc
1dc0 74 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 6e t-Literals".href="index.xhtml#An
1de0 6f 6e 79 6d 6f 75 73 2d 53 74 72 75 63 74 2d 4c 69 74 65 72 61 6c 73 22 3e 41 6e 6f 6e 79 6d 6f onymous-Struct-Literals">Anonymo
1e00 75 73 20 53 74 72 75 63 74 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 us.Struct.Literals</a></li>.....
1e20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 75 70 6c 65 73 22 20 68 ........<li><a.id="toc-Tuples".h
1e40 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 75 70 6c 65 73 22 3e 54 75 70 6c 65 73 3c ref="index.xhtml#Tuples">Tuples<
1e60 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 /a></li>.........</ol></li>.....
1e80 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 6e 75 6d 22 20 68 72 65 66 3d 22 69 ....<li><a.id="toc-enum".href="i
1ea0 6e 64 65 78 2e 78 68 74 6d 6c 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 0a 20 20 20 20 20 20 ndex.xhtml#enum">enum</a>.......
1ec0 20 20 3c 6f 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 ..<ol>.............<li><a.id="to
1ee0 63 2d 65 78 74 65 72 6e 2d 65 6e 75 6d 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c c-extern-enum".href="index.xhtml
1f00 23 65 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 #extern-enum">extern.enum</a></l
1f20 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 45 6e i>.............<li><a.id="toc-En
1f40 75 6d 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 45 um-Literals".href="index.xhtml#E
1f60 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 3c num-Literals">Enum.Literals</a><
1f80 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-
1fa0 4e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 2d 65 6e 75 6d 22 20 68 72 65 66 3d 22 69 6e 64 65 78 Non-exhaustive-enum".href="index
1fc0 2e 78 68 74 6d 6c 23 4e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 2d 65 6e 75 6d 22 3e 4e 6f 6e 2d .xhtml#Non-exhaustive-enum">Non-
1fe0 65 78 68 61 75 73 74 69 76 65 20 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 exhaustive.enum</a></li>........
2000 20 3c 2f 6f 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 .</ol></li>.........<li><a.id="t
2020 6f 63 2d 75 6e 69 6f 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 75 6e 69 6f oc-union".href="index.xhtml#unio
2040 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 n">union</a>.........<ol>.......
2060 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 75 6e 69 6f ......<li><a.id="toc-Tagged-unio
2080 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 61 67 67 65 64 2d 75 6e 69 6f n".href="index.xhtml#Tagged-unio
20a0 6e 22 3e 54 61 67 67 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 n">Tagged.union</a></li>........
20c0 20 20 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 75 6e 69 6f 6e .....<li><a.id="toc-extern-union
20e0 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 65 78 74 65 72 6e 2d 75 6e 69 6f 6e ".href="index.xhtml#extern-union
2100 22 3e 65 78 74 65 72 6e 20 75 6e 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 ">extern.union</a></li>.........
2120 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 70 61 63 6b 65 64 2d 75 6e 69 6f 6e 22 ....<li><a.id="toc-packed-union"
2140 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 70 61 63 6b 65 64 2d 75 6e 69 6f 6e 22 .href="index.xhtml#packed-union"
2160 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 20 20 20 >packed.union</a></li>..........
2180 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 41 6e 6f 6e 79 6d 6f 75 73 2d 55 6e 69 6f ...<li><a.id="toc-Anonymous-Unio
21a0 6e 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 6e n-Literals".href="index.xhtml#An
21c0 6f 6e 79 6d 6f 75 73 2d 55 6e 69 6f 6e 2d 4c 69 74 65 72 61 6c 73 22 3e 41 6e 6f 6e 79 6d 6f 75 onymous-Union-Literals">Anonymou
21e0 73 20 55 6e 69 6f 6e 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 s.Union.Literals</a></li>.......
2200 20 20 3c 2f 6f 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 ..</ol></li>.........<li><a.id="
2220 74 6f 63 2d 6f 70 61 71 75 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6f 70 toc-opaque".href="index.xhtml#op
2240 61 71 75 65 22 3e 6f 70 61 71 75 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c aque">opaque</a></li>.........<l
2260 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 42 6c 6f 63 6b 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 i><a.id="toc-Blocks".href="index
2280 2e 78 68 74 6d 6c 23 42 6c 6f 63 6b 73 22 3e 42 6c 6f 63 6b 73 3c 2f 61 3e 0a 20 20 20 20 20 20 .xhtml#Blocks">Blocks</a>.......
22a0 20 20 3c 6f 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 ..<ol>.............<li><a.id="to
22c0 63 2d 53 68 61 64 6f 77 69 6e 67 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 53 c-Shadowing".href="index.xhtml#S
22e0 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 20 hadowing">Shadowing</a></li>....
2300 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 6d 70 74 79 2d 42 6c .........<li><a.id="toc-Empty-Bl
2320 6f 63 6b 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 45 6d 70 74 79 2d 42 6c ocks".href="index.xhtml#Empty-Bl
2340 6f 63 6b 73 22 3e 45 6d 70 74 79 20 42 6c 6f 63 6b 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ocks">Empty.Blocks</a></li>.....
2360 20 20 20 20 3c 2f 6f 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 ....</ol></li>.........<li><a.id
2380 3d 22 74 6f 63 2d 73 77 69 74 63 68 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 ="toc-switch".href="index.xhtml#
23a0 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a switch">switch</a>.........<ol>.
23c0 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 68 61 75 ............<li><a.id="toc-Exhau
23e0 73 74 69 76 65 2d 53 77 69 74 63 68 69 6e 67 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 stive-Switching".href="index.xht
2400 6d 6c 23 45 78 68 61 75 73 74 69 76 65 2d 53 77 69 74 63 68 69 6e 67 22 3e 45 78 68 61 75 73 74 ml#Exhaustive-Switching">Exhaust
2420 69 76 65 20 53 77 69 74 63 68 69 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 ive.Switching</a></li>..........
2440 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 53 77 69 74 63 68 69 6e 67 2d 77 69 74 68 ...<li><a.id="toc-Switching-with
2460 2d 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d -Enum-Literals".href="index.xhtm
2480 6c 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 3e l#Switching-with-Enum-Literals">
24a0 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 3e Switching.with.Enum.Literals</a>
24c0 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
24e0 2d 49 6e 6c 69 6e 65 2d 53 77 69 74 63 68 2d 50 72 6f 6e 67 73 22 20 68 72 65 66 3d 22 69 6e 64 -Inline-Switch-Prongs".href="ind
2500 65 78 2e 78 68 74 6d 6c 23 49 6e 6c 69 6e 65 2d 53 77 69 74 63 68 2d 50 72 6f 6e 67 73 22 3e 49 ex.xhtml#Inline-Switch-Prongs">I
2520 6e 6c 69 6e 65 20 53 77 69 74 63 68 20 50 72 6f 6e 67 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 nline.Switch.Prongs</a></li>....
2540 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 .....</ol></li>.........<li><a.i
2560 64 3d 22 74 6f 63 2d 77 68 69 6c 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 d="toc-while".href="index.xhtml#
2580 77 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 6f 6c 3e 0a 20 20 while">while</a>.........<ol>...
25a0 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 61 62 65 6c 65 64 ..........<li><a.id="toc-Labeled
25c0 2d 77 68 69 6c 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4c 61 62 65 6c 65 -while".href="index.xhtml#Labele
25e0 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 2f 6c 69 3e 0a d-while">Labeled.while</a></li>.
2600 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
2620 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 -with-Optionals".href="index.xht
2640 6d 6c 23 77 68 69 6c 65 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 77 68 69 6c 65 20 77 ml#while-with-Optionals">while.w
2660 69 74 68 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 20 20 20 20 ith.Optionals</a></li>..........
2680 20 20 20 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 45 72 72 ...<li><a.id="toc-while-with-Err
26a0 6f 72 2d 55 6e 69 6f 6e 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 77 68 69 or-Unions".href="index.xhtml#whi
26c0 6c 65 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 le-with-Error-Unions">while.with
26e0 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 20 20 20 20 20 20 20 .Error.Unions</a></li>..........
2700 20 20 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 ...<li><a.id="toc-inline-while".
2720 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 3e href="index.xhtml#inline-while">
2740 69 6e 6c 69 6e 65 20 77 68 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f inline.while</a></li>.........</
2760 6f 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 ol></li>.........<li><a.id="toc-
2780 66 6f 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 66 6f 72 22 3e 66 6f 72 3c for".href="index.xhtml#for">for<
27a0 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 /a>.........<ol>.............<li
27c0 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4c 61 62 65 6c 65 64 2d 66 6f 72 22 20 68 72 65 66 3d 22 69 ><a.id="toc-Labeled-for".href="i
27e0 6e 64 65 78 2e 78 68 74 6d 6c 23 4c 61 62 65 6c 65 64 2d 66 6f 72 22 3e 4c 61 62 65 6c 65 64 20 ndex.xhtml#Labeled-for">Labeled.
2800 66 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 61 20 for</a></li>.............<li><a.
2820 69 64 3d 22 74 6f 63 2d 69 6e 6c 69 6e 65 2d 66 6f 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e id="toc-inline-for".href="index.
2840 78 68 74 6d 6c 23 69 6e 6c 69 6e 65 2d 66 6f 72 22 3e 69 6e 6c 69 6e 65 20 66 6f 72 3c 2f 61 3e xhtml#inline-for">inline.for</a>
2860 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 </li>.........</ol></li>........
2880 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 66 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e .<li><a.id="toc-if".href="index.
28a0 78 68 74 6d 6c 23 69 66 22 3e 69 66 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 xhtml#if">if</a>.........<ol>...
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 69 66 2d 77 69 74 68 ..........<li><a.id="toc-if-with
28e0 2d 4f 70 74 69 6f 6e 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 69 66 -Optionals".href="index.xhtml#if
2900 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 69 66 20 77 69 74 68 20 4f 70 74 69 6f 6e 61 -with-Optionals">if.with.Optiona
2920 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 ls</a></li>.........</ol></li>..
2940 20 20 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 .......<li><a.id="toc-defer".hre
2960 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 64 65 66 65 72 22 3e 64 65 66 65 72 3c 2f 61 3e 3c f="index.xhtml#defer">defer</a><
2980 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 75 6e 72 65 /li>.........<li><a.id="toc-unre
29a0 61 63 68 61 62 6c 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 75 6e 72 65 61 achable".href="index.xhtml#unrea
29c0 63 68 61 62 6c 65 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 chable">unreachable</a>.........
29e0 3c 6f 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 <ol>.............<li><a.id="toc-
2a00 42 61 73 69 63 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 42 61 73 69 63 73 Basics".href="index.xhtml#Basics
2a20 22 3e 42 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 ">Basics</a></li>.............<l
2a40 69 3e 3c 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 i><a.id="toc-At-Compile-Time".hr
2a60 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 ef="index.xhtml#At-Compile-Time"
2a80 3e 41 74 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 >At.Compile-Time</a></li>.......
2aa0 20 20 3c 2f 6f 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 ..</ol></li>.........<li><a.id="
2ac0 74 6f 63 2d 6e 6f 72 65 74 75 72 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 toc-noreturn".href="index.xhtml#
2ae0 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 69 3e 0a 20 20 20 20 noreturn">noreturn</a></li>.....
2b00 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 6f 6e 73 22 20 68 72 ....<li><a.id="toc-Functions".hr
2b20 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 46 75 6e 63 74 69 6f 6e 73 22 3e 46 75 6e 63 74 ef="index.xhtml#Functions">Funct
2b40 69 6f 6e 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 ions</a>.........<ol>...........
2b60 20 20 3c 6c 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 ..<li><a.id="toc-Pass-by-value-P
2b80 61 72 61 6d 65 74 65 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 50 61 73 arameters".href="index.xhtml#Pas
2ba0 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
2bc0 61 6c 75 65 20 50 61 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 alue.Parameters</a></li>........
2be0 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 6f 6e 2d 50 61 72 .....<li><a.id="toc-Function-Par
2c00 61 6d 65 74 65 72 2d 54 79 70 65 2d 49 6e 66 65 72 65 6e 63 65 22 20 68 72 65 66 3d 22 69 6e 64 ameter-Type-Inference".href="ind
2c20 65 78 2e 78 68 74 6d 6c 23 46 75 6e 63 74 69 6f 6e 2d 50 61 72 61 6d 65 74 65 72 2d 54 79 70 65 ex.xhtml#Function-Parameter-Type
2c40 2d 49 6e 66 65 72 65 6e 63 65 22 3e 46 75 6e 63 74 69 6f 6e 20 50 61 72 61 6d 65 74 65 72 20 54 -Inference">Function.Parameter.T
2c60 79 70 65 20 49 6e 66 65 72 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 ype.Inference</a></li>..........
2c80 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 6c 69 6e 65 2d 66 6e 22 20 68 72 65 ...<li><a.id="toc-inline-fn".hre
2ca0 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 69 6e 6c 69 6e 65 2d 66 6e 22 3e 69 6e 6c 69 6e 65 f="index.xhtml#inline-fn">inline
2cc0 20 66 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 3c 61 20 .fn</a></li>.............<li><a.
2ce0 69 64 3d 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 id="toc-Function-Reflection".hre
2d00 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 f="index.xhtml#Function-Reflecti
2d20 6f 6e 22 3e 46 75 6e 63 74 69 6f 6e 20 52 65 66 6c 65 63 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e on">Function.Reflection</a></li>
2d40 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e .........</ol></li>.........<li>
2d60 3c 61 20 69 64 3d 22 74 6f 63 2d 45 72 72 6f 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 <a.id="toc-Errors".href="index.x
2d80 68 74 6d 6c 23 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 html#Errors">Errors</a>.........
2da0 3c 6f 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 <ol>.............<li><a.id="toc-
2dc0 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d Error-Set-Type".href="index.xhtm
2de0 6c 23 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 l#Error-Set-Type">Error.Set.Type
2e00 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 </a>.............<ol>...........
2e20 20 20 20 20 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 ......<li><a.id="toc-The-Global-
2e40 45 72 72 6f 72 2d 53 65 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 68 65 Error-Set".href="index.xhtml#The
2e60 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 6c 20 45 72 -Global-Error-Set">The.Global.Er
2e80 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 20 20 20 20 3c 2f 6f ror.Set</a></li>.............</o
2ea0 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 22 74 l></li>.............<li><a.id="t
2ec0 6f 63 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 oc-Error-Union-Type".href="index
2ee0 2e 78 68 74 6d 6c 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 .xhtml#Error-Union-Type">Error.U
2f00 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 3c 6f 6c 3e 0a 20 nion.Type</a>.............<ol>..
2f20 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 63 61 ...............<li><a.id="toc-ca
2f40 74 63 68 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 61 74 63 68 22 3e 63 61 tch".href="index.xhtml#catch">ca
2f60 74 63 68 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 tch</a></li>.................<li
2f80 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 74 72 79 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 ><a.id="toc-try".href="index.xht
2fa0 6d 6c 23 74 72 79 22 3e 74 72 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 ml#try">try</a></li>............
2fc0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 72 72 64 65 66 65 72 22 20 68 72 .....<li><a.id="toc-errdefer".hr
2fe0 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 65 72 72 64 65 66 65 72 22 3e 65 72 72 64 65 66 ef="index.xhtml#errdefer">errdef
3000 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 20 3c 6c 69 3e er</a></li>.................<li>
3020 3c 61 20 69 64 3d 22 74 6f 63 2d 43 6f 6d 6d 6f 6e 2d 65 72 72 64 65 66 65 72 2d 53 6c 69 70 2d <a.id="toc-Common-errdefer-Slip-
3040 55 70 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 6f 6d 6d 6f 6e 2d 65 72 Ups".href="index.xhtml#Common-er
3060 72 64 65 66 65 72 2d 53 6c 69 70 2d 55 70 73 22 3e 43 6f 6d 6d 6f 6e 20 65 72 72 64 65 66 65 72 rdefer-Slip-Ups">Common.errdefer
3080 20 53 6c 69 70 2d 55 70 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .Slip-Ups</a></li>..............
30a0 20 20 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 ...<li><a.id="toc-Merging-Error-
30c0 53 65 74 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4d 65 72 67 69 6e 67 2d Sets".href="index.xhtml#Merging-
30e0 45 72 72 6f 72 2d 53 65 74 73 22 3e 4d 65 72 67 69 6e 67 20 45 72 72 6f 72 20 53 65 74 73 3c 2f Error-Sets">Merging.Error.Sets</
3100 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
3120 64 3d 22 74 6f 63 2d 49 6e 66 65 72 72 65 64 2d 45 72 72 6f 72 2d 53 65 74 73 22 20 68 72 65 66 d="toc-Inferred-Error-Sets".href
3140 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6e 66 65 72 72 65 64 2d 45 72 72 6f 72 2d 53 65 74 ="index.xhtml#Inferred-Error-Set
3160 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 3c 2f 6c 69 3e 0a s">Inferred.Error.Sets</a></li>.
3180 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 ............</ol></li>..........
31a0 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 72 72 6f 72 2d 52 65 74 75 72 6e 2d 54 ...<li><a.id="toc-Error-Return-T
31c0 72 61 63 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 45 72 72 6f 72 2d 52 races".href="index.xhtml#Error-R
31e0 65 74 75 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 eturn-Traces">Error.Return.Trace
3200 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 s</a>.............<ol>..........
3220 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 65 6d 65 6e 74 61 .......<li><a.id="toc-Implementa
3240 74 69 6f 6e 2d 44 65 74 61 69 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 tion-Details".href="index.xhtml#
3260 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 6c 65 6d 65 6e Implementation-Details">Implemen
3280 74 61 74 69 6f 6e 20 44 65 74 61 69 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 tation.Details</a></li>.........
32a0 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 ....</ol></li>.........</ol></li
32c0 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 4f 70 74 69 6f 6e 61 >.........<li><a.id="toc-Optiona
32e0 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4f 70 74 69 6f 6e 61 6c 73 22 ls".href="index.xhtml#Optionals"
3300 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 >Optionals</a>.........<ol>.....
3320 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 74 69 6f 6e 61 6c 2d ........<li><a.id="toc-Optional-
3340 54 79 70 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4f 70 74 69 6f 6e 61 6c Type".href="index.xhtml#Optional
3360 2d 54 79 70 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 -Type">Optional.Type</a></li>...
3380 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 75 6c 6c 22 20 68 ..........<li><a.id="toc-null".h
33a0 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 3c ref="index.xhtml#null">null</a><
33c0 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-
33e0 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 Optional-Pointers".href="index.x
3400 68 74 6d 6c 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 61 6c html#Optional-Pointers">Optional
3420 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 20 3c 2f 6f 6c 3e .Pointers</a></li>.........</ol>
3440 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 43 61 73 </li>.........<li><a.id="toc-Cas
3460 74 69 6e 67 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 61 73 74 69 6e 67 22 ting".href="index.xhtml#Casting"
3480 3e 43 61 73 74 69 6e 67 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 >Casting</a>.........<ol>.......
34a0 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 2d 43 6f 65 72 63 69 ......<li><a.id="toc-Type-Coerci
34c0 6f 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 79 70 65 2d 43 6f 65 72 63 on".href="index.xhtml#Type-Coerc
34e0 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 ion">Type.Coercion</a>..........
3500 20 20 20 3c 6f 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 ...<ol>.................<li><a.i
3520 64 3d 22 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 53 74 72 69 63 74 65 72 2d 51 75 d="toc-Type-Coercion-Stricter-Qu
3540 61 6c 69 66 69 63 61 74 69 6f 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 alification".href="index.xhtml#T
3560 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 53 74 72 69 63 74 65 72 2d 51 75 61 6c 69 66 69 63 61 74 ype-Coercion-Stricter-Qualificat
3580 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 53 74 72 69 63 74 65 72 20 51 75 61 ion">Type.Coercion:.Stricter.Qua
35a0 6c 69 66 69 63 61 74 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 lification</a></li>.............
35c0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e ....<li><a.id="toc-Type-Coercion
35e0 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 67 22 20 68 72 65 -Integer-and-Float-Widening".hre
3600 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 49 6e 74 f="index.xhtml#Type-Coercion-Int
3620 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 54 79 70 65 20 43 6f eger-and-Float-Widening">Type.Co
3640 65 72 63 69 6f 6e 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 ercion:.Integer.and.Float.Wideni
3660 6e 67 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 ng</a></li>.................<li>
3680 3c 61 20 69 64 3d 22 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 46 6c 6f 61 74 2d 74 <a.id="toc-Type-Coercion-Float-t
36a0 6f 2d 49 6e 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 79 70 65 2d 43 6f o-Int".href="index.xhtml#Type-Co
36c0 65 72 63 69 6f 6e 2d 46 6c 6f 61 74 2d 74 6f 2d 49 6e 74 22 3e 54 79 70 65 20 43 6f 65 72 63 69 ercion-Float-to-Int">Type.Coerci
36e0 6f 6e 3a 20 46 6c 6f 61 74 20 74 6f 20 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 on:.Float.to.Int</a></li>.......
3700 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 2d 43 6f ..........<li><a.id="toc-Type-Co
3720 65 72 63 69 6f 6e 2d 53 6c 69 63 65 73 2d 41 72 72 61 79 73 2d 61 6e 64 2d 50 6f 69 6e 74 65 72 ercion-Slices-Arrays-and-Pointer
3740 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 79 70 65 2d 43 6f 65 72 63 69 s".href="index.xhtml#Type-Coerci
3760 6f 6e 2d 53 6c 69 63 65 73 2d 41 72 72 61 79 73 2d 61 6e 64 2d 50 6f 69 6e 74 65 72 73 22 3e 54 on-Slices-Arrays-and-Pointers">T
3780 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 53 6c 69 63 65 73 2c 20 41 72 72 61 79 73 20 61 6e 64 ype.Coercion:.Slices,.Arrays.and
37a0 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 20 20 20 20 20 20 .Pointers</a></li>..............
37c0 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d ...<li><a.id="toc-Type-Coercion-
37e0 4f 70 74 69 6f 6e 61 6c 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 79 70 Optionals".href="index.xhtml#Typ
3800 65 2d 43 6f 65 72 63 69 6f 6e 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 54 79 70 65 20 43 6f 65 72 63 e-Coercion-Optionals">Type.Coerc
3820 69 6f 6e 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 20 20 20 ion:.Optionals</a></li>.........
3840 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 2d 43 6f 65 72 ........<li><a.id="toc-Type-Coer
3860 63 69 6f 6e 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 cion-Error-Unions".href="index.x
3880 68 74 6d 6c 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 html#Type-Coercion-Error-Unions"
38a0 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 45 72 72 6f 72 20 55 6e 69 6f 6e 73 3c 2f 61 3e >Type.Coercion:.Error.Unions</a>
38c0 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=
38e0 22 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d "toc-Type-Coercion-Compile-Time-
3900 4b 6e 6f 77 6e 2d 4e 75 6d 62 65 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c Known-Numbers".href="index.xhtml
3920 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 4b 6e 6f 77 #Type-Coercion-Compile-Time-Know
3940 6e 2d 4e 75 6d 62 65 72 73 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 43 6f 6d 70 69 6c n-Numbers">Type.Coercion:.Compil
3960 65 2d 54 69 6d 65 20 4b 6e 6f 77 6e 20 4e 75 6d 62 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 e-Time.Known.Numbers</a></li>...
3980 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 54 79 70 ..............<li><a.id="toc-Typ
39a0 65 2d 43 6f 65 72 63 69 6f 6e 2d 55 6e 69 6f 6e 73 2d 61 6e 64 2d 45 6e 75 6d 73 22 20 68 72 65 e-Coercion-Unions-and-Enums".hre
39c0 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 55 6e 69 f="index.xhtml#Type-Coercion-Uni
39e0 6f 6e 73 2d 61 6e 64 2d 45 6e 75 6d 73 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 55 6e ons-and-Enums">Type.Coercion:.Un
3a00 69 6f 6e 73 20 61 6e 64 20 45 6e 75 6d 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 ions.and.Enums</a></li>.........
3a20 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 2d 43 6f 65 72 ........<li><a.id="toc-Type-Coer
3a40 63 69 6f 6e 2d 75 6e 64 65 66 69 6e 65 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d cion-undefined".href="index.xhtm
3a60 6c 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 75 6e 64 65 66 69 6e 65 64 22 3e 54 79 70 65 20 l#Type-Coercion-undefined">Type.
3a80 43 6f 65 72 63 69 6f 6e 3a 20 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 Coercion:.undefined</a></li>....
3aa0 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 54 79 70 65 .............<li><a.id="toc-Type
3ac0 2d 43 6f 65 72 63 69 6f 6e 2d 54 75 70 6c 65 73 2d 74 6f 2d 41 72 72 61 79 73 22 20 68 72 65 66 -Coercion-Tuples-to-Arrays".href
3ae0 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 54 75 70 6c ="index.xhtml#Type-Coercion-Tupl
3b00 65 73 2d 74 6f 2d 41 72 72 61 79 73 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 54 75 70 es-to-Arrays">Type.Coercion:.Tup
3b20 6c 65 73 20 74 6f 20 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 les.to.Arrays</a></li>..........
3b40 20 20 20 3c 2f 6f 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 ...</ol></li>.............<li><a
3b60 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 72 65 66 3d 22 69 .id="toc-Explicit-Casts".href="i
3b80 6e 64 65 78 2e 78 68 74 6d 6c 23 45 78 70 6c 69 63 69 74 2d 43 61 73 74 73 22 3e 45 78 70 6c 69 ndex.xhtml#Explicit-Casts">Expli
3ba0 63 69 74 20 43 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 cit.Casts</a></li>.............<
3bc0 6c 69 3e 3c 61 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 li><a.id="toc-Peer-Type-Resoluti
3be0 6f 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 50 65 65 72 2d 54 79 70 65 2d on".href="index.xhtml#Peer-Type-
3c00 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 6e Resolution">Peer.Type.Resolution
3c20 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 </a></li>.........</ol></li>....
3c40 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 5a 65 72 6f 2d 42 69 74 2d 54 79 70 .....<li><a.id="toc-Zero-Bit-Typ
3c60 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 5a 65 72 6f 2d 42 69 74 2d 54 es".href="index.xhtml#Zero-Bit-T
3c80 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 20 20 20 20 20 ypes">Zero.Bit.Types</a>........
3ca0 20 3c 6f 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 .<ol>.............<li><a.id="toc
3cc0 2d 76 6f 69 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 76 6f 69 64 22 3e 76 -void".href="index.xhtml#void">v
3ce0 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a oid</a></li>.........</ol></li>.
3d00 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 6c 74 2d 4c 6f ........<li><a.id="toc-Result-Lo
3d20 63 61 74 69 6f 6e 2d 53 65 6d 61 6e 74 69 63 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 cation-Semantics".href="index.xh
3d40 74 6d 6c 23 52 65 73 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 tml#Result-Location-Semantics">R
3d60 65 73 75 6c 74 20 4c 6f 63 61 74 69 6f 6e 20 53 65 6d 61 6e 74 69 63 73 3c 2f 61 3e 0a 20 20 20 esult.Location.Semantics</a>....
3d80 20 20 20 20 20 3c 6f 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 .....<ol>.............<li><a.id=
3da0 22 74 6f 63 2d 52 65 73 75 6c 74 2d 54 79 70 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 "toc-Result-Types".href="index.x
3dc0 68 74 6d 6c 23 52 65 73 75 6c 74 2d 54 79 70 65 73 22 3e 52 65 73 75 6c 74 20 54 79 70 65 73 3c html#Result-Types">Result.Types<
3de0 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="
3e00 74 6f 63 2d 52 65 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 69 6e 64 65 toc-Result-Locations".href="inde
3e20 78 2e 78 68 74 6d 6c 23 52 65 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 73 22 3e 52 65 73 75 6c 74 x.xhtml#Result-Locations">Result
3e40 20 4c 6f 63 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c .Locations</a></li>.........</ol
3e60 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 75 73 ></li>.........<li><a.id="toc-us
3e80 69 6e 67 6e 61 6d 65 73 70 61 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 ingnamespace".href="index.xhtml#
3ea0 75 73 69 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 usingnamespace">usingnamespace</
3ec0 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 63 a></li>.........<li><a.id="toc-c
3ee0 6f 6d 70 74 69 6d 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 6f 6d 70 74 omptime".href="index.xhtml#compt
3f00 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 ime">comptime</a>.........<ol>..
3f20 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 74 72 6f 64 ...........<li><a.id="toc-Introd
3f40 75 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 20 ucing-the-Compile-Time-Concept".
3f60 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6e 74 72 6f 64 75 63 69 6e 67 2d 74 68 href="index.xhtml#Introducing-th
3f80 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 6e 74 72 6f 64 75 63 e-Compile-Time-Concept">Introduc
3fa0 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 65 70 74 3c 2f 61 3e ing.the.Compile-Time.Concept</a>
3fc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............<ol>...............
3fe0 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 50 61 ..<li><a.id="toc-Compile-Time-Pa
4000 72 61 6d 65 74 65 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 6f 6d 70 rameters".href="index.xhtml#Comp
4020 69 6c 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 ile-Time-Parameters">Compile-Tim
4040 65 20 50 61 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 e.Parameters</a></li>...........
4060 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 54 69 6d ......<li><a.id="toc-Compile-Tim
4080 65 2d 56 61 72 69 61 62 6c 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 e-Variables".href="index.xhtml#C
40a0 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 69 6c 65 2d 54 ompile-Time-Variables">Compile-T
40c0 69 6d 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 ime.Variables</a></li>..........
40e0 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 54 69 .......<li><a.id="toc-Compile-Ti
4100 6d 65 2d 45 78 70 72 65 73 73 69 6f 6e 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d me-Expressions".href="index.xhtm
4120 6c 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 22 3e 43 6f 6d 70 l#Compile-Time-Expressions">Comp
4140 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 6c 69 3e 0a 20 20 ile-Time.Expressions</a></li>...
4160 20 20 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 ..........</ol></li>............
4180 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 74 61 2d 53 74 72 .<li><a.id="toc-Generic-Data-Str
41a0 75 63 74 75 72 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 47 65 6e 65 72 uctures".href="index.xhtml#Gener
41c0 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 63 20 44 61 74 61 ic-Data-Structures">Generic.Data
41e0 20 53 74 72 75 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 .Structures</a></li>............
4200 20 3c 6c 69 3e 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 .<li><a.id="toc-Case-Study-print
4220 2d 69 6e 2d 5a 69 67 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 61 73 65 2d -in-Zig".href="index.xhtml#Case-
4240 53 74 75 64 79 2d 70 72 69 6e 74 2d 69 6e 2d 5a 69 67 22 3e 43 61 73 65 20 53 74 75 64 79 3a 20 Study-print-in-Zig">Case.Study:.
4260 70 72 69 6e 74 20 69 6e 20 5a 69 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f print.in.Zig</a></li>.........</
4280 6f 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 ol></li>.........<li><a.id="toc-
42a0 41 73 73 65 6d 62 6c 79 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 73 73 65 Assembly".href="index.xhtml#Asse
42c0 6d 62 6c 79 22 3e 41 73 73 65 6d 62 6c 79 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a mbly">Assembly</a>.........<ol>.
42e0 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 74 70 75 ............<li><a.id="toc-Outpu
4300 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c t-Constraints".href="index.xhtml
4320 23 4f 75 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 #Output-Constraints">Output.Cons
4340 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
4360 3e 3c 61 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 ><a.id="toc-Input-Constraints".h
4380 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6e 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e ref="index.xhtml#Input-Constrain
43a0 74 73 22 3e 49 6e 70 75 74 20 43 6f 6e 73 74 72 61 69 6e 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 ts">Input.Constraints</a></li>..
43c0 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 43 6c 6f 62 62 65 ...........<li><a.id="toc-Clobbe
43e0 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 6c 6f 62 62 65 72 73 22 3e rs".href="index.xhtml#Clobbers">
4400 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 20 20 20 20 20 3c 6c Clobbers</a></li>.............<l
4420 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 62 6c 79 22 20 68 72 i><a.id="toc-Global-Assembly".hr
4440 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 47 6c 6f 62 61 6c 2d 41 73 73 65 6d 62 6c 79 22 ef="index.xhtml#Global-Assembly"
4460 3e 47 6c 6f 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 >Global.Assembly</a></li>.......
4480 20 20 3c 2f 6f 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 ..</ol></li>.........<li><a.id="
44a0 74 6f 63 2d 41 74 6f 6d 69 63 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 toc-Atomics".href="index.xhtml#A
44c0 74 6f 6d 69 63 73 22 3e 41 74 6f 6d 69 63 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 tomics">Atomics</a></li>........
44e0 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 6f 6e 73 22 .<li><a.id="toc-Async-Functions"
4500 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f .href="index.xhtml#Async-Functio
4520 6e 73 22 3e 41 73 79 6e 63 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 ns">Async.Functions</a></li>....
4540 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 63 .....<li><a.id="toc-Builtin-Func
4560 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 42 75 69 6c 74 69 6e tions".href="index.xhtml#Builtin
4580 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 -Functions">Builtin.Functions</a
45a0 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 20 73 74 79 6c 65 3d 22 63 6f 6c 75 6d 6e 73 3a 20 32 22 >.........<ol.style="columns:.2"
45c0 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 64 64 >.............<li><a.id="toc-add
45e0 72 53 70 61 63 65 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 61 64 rSpaceCast".href="index.xhtml#ad
4600 64 72 53 70 61 63 65 43 61 73 74 22 3e 40 61 64 64 72 53 70 61 63 65 43 61 73 74 3c 2f 61 3e 3c drSpaceCast">@addrSpaceCast</a><
4620 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-
4640 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 addWithOverflow".href="index.xht
4660 6d 6c 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 ml#addWithOverflow">@addWithOver
4680 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 69 3e 3c 61 flow</a></li>.............<li><a
46a0 20 69 64 3d 22 74 6f 63 2d 61 6c 69 67 6e 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e .id="toc-alignCast".href="index.
46c0 78 68 74 6d 6c 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 xhtml#alignCast">@alignCast</a><
46e0 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-
4700 61 6c 69 67 6e 4f 66 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 61 6c 69 67 6e alignOf".href="index.xhtml#align
4720 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 Of">@alignOf</a></li>...........
4740 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 61 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 ..<li><a.id="toc-as".href="index
4760 2e 78 68 74 6d 6c 23 61 73 22 3e 40 61 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 .xhtml#as">@as</a></li>.........
4780 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 20 68 ....<li><a.id="toc-atomicLoad".h
47a0 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 61 74 6f 6d 69 63 4c 6f 61 64 22 3e 40 61 74 ref="index.xhtml#atomicLoad">@at
47c0 6f 6d 69 63 4c 6f 61 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 omicLoad</a></li>.............<l
47e0 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 61 74 6f 6d 69 63 52 6d 77 22 20 68 72 65 66 3d 22 69 6e i><a.id="toc-atomicRmw".href="in
4800 64 65 78 2e 78 68 74 6d 6c 23 61 74 6f 6d 69 63 52 6d 77 22 3e 40 61 74 6f 6d 69 63 52 6d 77 3c dex.xhtml#atomicRmw">@atomicRmw<
4820 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="
4840 74 6f 63 2d 61 74 6f 6d 69 63 53 74 6f 72 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 toc-atomicStore".href="index.xht
4860 6d 6c 23 61 74 6f 6d 69 63 53 74 6f 72 65 22 3e 40 61 74 6f 6d 69 63 53 74 6f 72 65 3c 2f 61 3e ml#atomicStore">@atomicStore</a>
4880 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
48a0 2d 62 69 74 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 62 69 74 43 -bitCast".href="index.xhtml#bitC
48c0 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 20 20 20 20 ast">@bitCast</a></li>..........
48e0 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 66 22 20 68 ...<li><a.id="toc-bitOffsetOf".h
4900 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 62 69 74 4f 66 66 73 65 74 4f 66 22 3e 40 62 ref="index.xhtml#bitOffsetOf">@b
4920 69 74 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 20 20 20 20 itOffsetOf</a></li>.............
4940 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 62 69 74 53 69 7a 65 4f 66 22 20 68 72 65 66 3d 22 <li><a.id="toc-bitSizeOf".href="
4960 69 6e 64 65 78 2e 78 68 74 6d 6c 23 62 69 74 53 69 7a 65 4f 66 22 3e 40 62 69 74 53 69 7a 65 4f index.xhtml#bitSizeOf">@bitSizeO
4980 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 69 64 f</a></li>.............<li><a.id
49a0 3d 22 74 6f 63 2d 62 72 65 61 6b 70 6f 69 6e 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 ="toc-breakpoint".href="index.xh
49c0 74 6d 6c 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 61 3e 3c tml#breakpoint">@breakpoint</a><
49e0 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-
4a00 6d 75 6c 41 64 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6d 75 6c 41 64 64 mulAdd".href="index.xhtml#mulAdd
4a20 22 3e 40 6d 75 6c 41 64 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c ">@mulAdd</a></li>.............<
4a40 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 62 79 74 65 53 77 61 70 22 20 68 72 65 66 3d 22 69 6e li><a.id="toc-byteSwap".href="in
4a60 64 65 78 2e 78 68 74 6d 6c 23 62 79 74 65 53 77 61 70 22 3e 40 62 79 74 65 53 77 61 70 3c 2f 61 dex.xhtml#byteSwap">@byteSwap</a
4a80 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
4aa0 63 2d 62 69 74 52 65 76 65 72 73 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 c-bitReverse".href="index.xhtml#
4ac0 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 69 3e bitReverse">@bitReverse</a></li>
4ae0 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 6f 66 66 73 .............<li><a.id="toc-offs
4b00 65 74 4f 66 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6f 66 66 73 65 74 4f 66 etOf".href="index.xhtml#offsetOf
4b20 22 3e 40 6f 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 20 20 20 ">@offsetOf</a></li>............
4b40 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 61 6c 6c 22 20 68 72 65 66 3d 22 69 6e 64 65 .<li><a.id="toc-call".href="inde
4b60 78 2e 78 68 74 6d 6c 23 63 61 6c 6c 22 3e 40 63 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 x.xhtml#call">@call</a></li>....
4b80 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 44 65 66 69 6e 65 22 .........<li><a.id="toc-cDefine"
4ba0 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 44 65 66 69 6e 65 22 3e 40 63 44 65 .href="index.xhtml#cDefine">@cDe
4bc0 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 6c 69 3e 3c 61 fine</a></li>.............<li><a
4be0 20 69 64 3d 22 74 6f 63 2d 63 49 6d 70 6f 72 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 .id="toc-cImport".href="index.xh
4c00 74 6d 6c 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 20 tml#cImport">@cImport</a></li>..
4c20 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 49 6e 63 6c 75 ...........<li><a.id="toc-cInclu
4c40 64 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 49 6e 63 6c 75 64 65 22 3e de".href="index.xhtml#cInclude">
4c60 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c @cInclude</a></li>.............<
4c80 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 6c 7a 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 li><a.id="toc-clz".href="index.x
4ca0 68 74 6d 6c 23 63 6c 7a 22 3e 40 63 6c 7a 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 html#clz">@clz</a></li>.........
4cc0 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 72 6f 6e 67 ....<li><a.id="toc-cmpxchgStrong
4ce0 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 6d 70 78 63 68 67 53 74 72 6f 6e ".href="index.xhtml#cmpxchgStron
4d00 67 22 3e 40 63 6d 70 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 g">@cmpxchgStrong</a></li>......
4d20 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 57 65 61 .......<li><a.id="toc-cmpxchgWea
4d40 6b 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 6d 70 78 63 68 67 57 65 61 6b k".href="index.xhtml#cmpxchgWeak
4d60 22 3e 40 63 6d 70 78 63 68 67 57 65 61 6b 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 ">@cmpxchgWeak</a></li>.........
4d80 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 45 72 72 6f 72 22 ....<li><a.id="toc-compileError"
4da0 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 .href="index.xhtml#compileError"
4dc0 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 20 20 20 >@compileError</a></li>.........
4de0 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 22 20 68 ....<li><a.id="toc-compileLog".h
4e00 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 6f 6d 70 69 6c 65 4c 6f 67 22 3e 40 63 6f ref="index.xhtml#compileLog">@co
4e20 6d 70 69 6c 65 4c 6f 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c mpileLog</a></li>.............<l
4e40 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 6f 6e 73 74 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e i><a.id="toc-constCast".href="in
4e60 64 65 78 2e 78 68 74 6d 6c 23 63 6f 6e 73 74 43 61 73 74 22 3e 40 63 6f 6e 73 74 43 61 73 74 3c dex.xhtml#constCast">@constCast<
4e80 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="
4ea0 74 6f 63 2d 63 74 7a 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 74 7a 22 3e toc-ctz".href="index.xhtml#ctz">
4ec0 40 63 74 7a 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 @ctz</a></li>.............<li><a
4ee0 20 69 64 3d 22 74 6f 63 2d 63 55 6e 64 65 66 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 .id="toc-cUndef".href="index.xht
4f00 6d 6c 23 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ml#cUndef">@cUndef</a></li>.....
4f20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 56 61 41 72 67 22 20 68 ........<li><a.id="toc-cVaArg".h
4f40 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 56 61 41 72 67 22 3e 40 63 56 61 41 72 67 ref="index.xhtml#cVaArg">@cVaArg
4f60 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=
4f80 22 74 6f 63 2d 63 56 61 43 6f 70 79 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 "toc-cVaCopy".href="index.xhtml#
4fa0 63 56 61 43 6f 70 79 22 3e 40 63 56 61 43 6f 70 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 cVaCopy">@cVaCopy</a></li>......
4fc0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 56 61 45 6e 64 22 20 68 72 .......<li><a.id="toc-cVaEnd".hr
4fe0 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 56 61 45 6e 64 22 3e 40 63 56 61 45 6e 64 3c ef="index.xhtml#cVaEnd">@cVaEnd<
5000 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="
5020 74 6f 63 2d 63 56 61 53 74 61 72 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 toc-cVaStart".href="index.xhtml#
5040 63 56 61 53 74 61 72 74 22 3e 40 63 56 61 53 74 61 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 cVaStart">@cVaStart</a></li>....
5060 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 64 69 76 45 78 61 63 74 .........<li><a.id="toc-divExact
5080 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 64 69 76 45 78 61 63 74 22 3e 40 64 ".href="index.xhtml#divExact">@d
50a0 69 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 ivExact</a></li>.............<li
50c0 3e 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 69 6e 64 65 ><a.id="toc-divFloor".href="inde
50e0 78 2e 78 68 74 6d 6c 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 x.xhtml#divFloor">@divFloor</a><
5100 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-
5120 64 69 76 54 72 75 6e 63 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 64 69 76 54 divTrunc".href="index.xhtml#divT
5140 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 20 20 20 20 20 20 20 runc">@divTrunc</a></li>........
5160 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 6d 62 65 64 46 69 6c 65 22 20 68 .....<li><a.id="toc-embedFile".h
5180 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 ref="index.xhtml#embedFile">@emb
51a0 65 64 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 edFile</a></li>.............<li>
51c0 3c 61 20 69 64 3d 22 74 6f 63 2d 65 6e 75 6d 46 72 6f 6d 49 6e 74 22 20 68 72 65 66 3d 22 69 6e <a.id="toc-enumFromInt".href="in
51e0 64 65 78 2e 78 68 74 6d 6c 23 65 6e 75 6d 46 72 6f 6d 49 6e 74 22 3e 40 65 6e 75 6d 46 72 6f 6d dex.xhtml#enumFromInt">@enumFrom
5200 49 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 61 20 Int</a></li>.............<li><a.
5220 69 64 3d 22 74 6f 63 2d 65 72 72 6f 72 46 72 6f 6d 49 6e 74 22 20 68 72 65 66 3d 22 69 6e 64 65 id="toc-errorFromInt".href="inde
5240 78 2e 78 68 74 6d 6c 23 65 72 72 6f 72 46 72 6f 6d 49 6e 74 22 3e 40 65 72 72 6f 72 46 72 6f 6d x.xhtml#errorFromInt">@errorFrom
5260 49 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 61 20 Int</a></li>.............<li><a.
5280 69 64 3d 22 74 6f 63 2d 65 72 72 6f 72 4e 61 6d 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 id="toc-errorName".href="index.x
52a0 68 74 6d 6c 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 3c 2f html#errorName">@errorName</a></
52c0 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
52e0 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 rrorReturnTrace".href="index.xht
5300 6d 6c 23 65 72 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 ml#errorReturnTrace">@errorRetur
5320 6e 54 72 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 3e nTrace</a></li>.............<li>
5340 3c 61 20 69 64 3d 22 74 6f 63 2d 65 72 72 6f 72 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 <a.id="toc-errorCast".href="inde
5360 78 2e 78 68 74 6d 6c 23 65 72 72 6f 72 43 61 73 74 22 3e 40 65 72 72 6f 72 43 61 73 74 3c 2f 61 x.xhtml#errorCast">@errorCast</a
5380 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
53a0 63 2d 65 78 70 6f 72 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 65 78 70 6f c-export".href="index.xhtml#expo
53c0 72 74 22 3e 40 65 78 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 rt">@export</a></li>............
53e0 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 78 74 65 72 6e 22 20 68 72 65 66 3d 22 69 6e .<li><a.id="toc-extern".href="in
5400 64 65 78 2e 78 68 74 6d 6c 23 65 78 74 65 72 6e 22 3e 40 65 78 74 65 72 6e 3c 2f 61 3e 3c 2f 6c dex.xhtml#extern">@extern</a></l
5420 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 65 i>.............<li><a.id="toc-fe
5440 6e 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 66 65 6e 63 65 22 3e 40 66 nce".href="index.xhtml#fence">@f
5460 65 6e 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 ence</a></li>.............<li><a
5480 20 69 64 3d 22 74 6f 63 2d 66 69 65 6c 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d .id="toc-field".href="index.xhtm
54a0 6c 23 66 69 65 6c 64 22 3e 40 66 69 65 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 l#field">@field</a></li>........
54c0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 69 65 6c 64 50 61 72 65 6e 74 50 .....<li><a.id="toc-fieldParentP
54e0 74 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 66 69 65 6c 64 50 61 72 65 6e tr".href="index.xhtml#fieldParen
5500 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 69 3e 0a 20 tPtr">@fieldParentPtr</a></li>..
5520 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 6f 61 74 43 ...........<li><a.id="toc-floatC
5540 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 66 6c 6f 61 74 43 61 73 74 ast".href="index.xhtml#floatCast
5560 22 3e 40 66 6c 6f 61 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 ">@floatCast</a></li>...........
5580 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 22 20 68 ..<li><a.id="toc-floatFromInt".h
55a0 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 22 3e 40 ref="index.xhtml#floatFromInt">@
55c0 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 floatFromInt</a></li>...........
55e0 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 66 72 61 6d 65 41 64 64 72 65 73 73 22 20 68 ..<li><a.id="toc-frameAddress".h
5600 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 66 72 61 6d 65 41 64 64 72 65 73 73 22 3e 40 ref="index.xhtml#frameAddress">@
5620 66 72 61 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 frameAddress</a></li>...........
5640 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 68 61 73 44 65 63 6c 22 20 68 72 65 66 3d 22 ..<li><a.id="toc-hasDecl".href="
5660 69 6e 64 65 78 2e 78 68 74 6d 6c 23 68 61 73 44 65 63 6c 22 3e 40 68 61 73 44 65 63 6c 3c 2f 61 index.xhtml#hasDecl">@hasDecl</a
5680 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
56a0 63 2d 68 61 73 46 69 65 6c 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 68 61 c-hasField".href="index.xhtml#ha
56c0 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 0a 20 20 20 20 20 sField">@hasField</a></li>......
56e0 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6d 70 6f 72 74 22 20 68 72 .......<li><a.id="toc-import".hr
5700 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c ef="index.xhtml#import">@import<
5720 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="
5740 74 6f 63 2d 69 6e 43 6f 6d 70 74 69 6d 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d toc-inComptime".href="index.xhtm
5760 6c 23 69 6e 43 6f 6d 70 74 69 6d 65 22 3e 40 69 6e 43 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c l#inComptime">@inComptime</a></l
5780 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 69 6e i>.............<li><a.id="toc-in
57a0 74 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 69 6e 74 43 61 73 74 tCast".href="index.xhtml#intCast
57c0 22 3e 40 69 6e 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 ">@intCast</a></li>.............
57e0 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 74 46 72 6f 6d 42 6f 6f 6c 22 20 68 72 65 66 <li><a.id="toc-intFromBool".href
5800 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 69 6e 74 46 72 6f 6d 42 6f 6f 6c 22 3e 40 69 6e 74 46 ="index.xhtml#intFromBool">@intF
5820 72 6f 6d 42 6f 6f 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 romBool</a></li>.............<li
5840 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 69 6e 74 46 72 6f 6d 45 6e 75 6d 22 20 68 72 65 66 3d 22 69 ><a.id="toc-intFromEnum".href="i
5860 6e 64 65 78 2e 78 68 74 6d 6c 23 69 6e 74 46 72 6f 6d 45 6e 75 6d 22 3e 40 69 6e 74 46 72 6f 6d ndex.xhtml#intFromEnum">@intFrom
5880 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 69 3e 3c 61 Enum</a></li>.............<li><a
58a0 20 69 64 3d 22 74 6f 63 2d 69 6e 74 46 72 6f 6d 45 72 72 6f 72 22 20 68 72 65 66 3d 22 69 6e 64 .id="toc-intFromError".href="ind
58c0 65 78 2e 78 68 74 6d 6c 23 69 6e 74 46 72 6f 6d 45 72 72 6f 72 22 3e 40 69 6e 74 46 72 6f 6d 45 ex.xhtml#intFromError">@intFromE
58e0 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 61 rror</a></li>.............<li><a
5900 20 69 64 3d 22 74 6f 63 2d 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 22 20 68 72 65 66 3d 22 69 6e 64 .id="toc-intFromFloat".href="ind
5920 65 78 2e 78 68 74 6d 6c 23 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 22 3e 40 69 6e 74 46 72 6f 6d 46 ex.xhtml#intFromFloat">@intFromF
5940 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 3c 61 loat</a></li>.............<li><a
5960 20 69 64 3d 22 74 6f 63 2d 69 6e 74 46 72 6f 6d 50 74 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 .id="toc-intFromPtr".href="index
5980 2e 78 68 74 6d 6c 23 69 6e 74 46 72 6f 6d 50 74 72 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f .xhtml#intFromPtr">@intFromPtr</
59a0 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
59c0 6f 63 2d 6d 61 78 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6d 61 78 22 3e 40 oc-max".href="index.xhtml#max">@
59e0 6d 61 78 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 max</a></li>.............<li><a.
5a00 69 64 3d 22 74 6f 63 2d 6d 65 6d 63 70 79 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d id="toc-memcpy".href="index.xhtm
5a20 6c 23 6d 65 6d 63 70 79 22 3e 40 6d 65 6d 63 70 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 l#memcpy">@memcpy</a></li>......
5a40 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 73 65 74 22 20 68 72 .......<li><a.id="toc-memset".hr
5a60 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6d 65 6d 73 65 74 22 3e 40 6d 65 6d 73 65 74 3c ef="index.xhtml#memset">@memset<
5a80 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="
5aa0 74 6f 63 2d 6d 69 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6d 69 6e 22 3e toc-min".href="index.xhtml#min">
5ac0 40 6d 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 3c 61 @min</a></li>.............<li><a
5ae0 20 69 64 3d 22 74 6f 63 2d 77 61 73 6d 4d 65 6d 6f 72 79 53 69 7a 65 22 20 68 72 65 66 3d 22 69 .id="toc-wasmMemorySize".href="i
5b00 6e 64 65 78 2e 78 68 74 6d 6c 23 77 61 73 6d 4d 65 6d 6f 72 79 53 69 7a 65 22 3e 40 77 61 73 6d ndex.xhtml#wasmMemorySize">@wasm
5b20 4d 65 6d 6f 72 79 53 69 7a 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 MemorySize</a></li>.............
5b40 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 22 20 68 <li><a.id="toc-wasmMemoryGrow".h
5b60 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 22 ref="index.xhtml#wasmMemoryGrow"
5b80 3e 40 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 >@wasmMemoryGrow</a></li>.......
5ba0 20 20 20 20 20 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 ......<li><a.id="toc-mod".href="
5bc0 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6d 6f 64 22 3e 40 6d 6f 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 index.xhtml#mod">@mod</a></li>..
5be0 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 75 6c 57 69 74 ...........<li><a.id="toc-mulWit
5c00 68 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6d 75 6c hOverflow".href="index.xhtml#mul
5c20 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 6f 77 3c 2f WithOverflow">@mulWithOverflow</
5c40 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
5c60 6f 63 2d 70 61 6e 69 63 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 70 61 6e 69 oc-panic".href="index.xhtml#pani
5c80 63 22 3e 40 70 61 6e 69 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c c">@panic</a></li>.............<
5ca0 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 70 6f 70 43 6f 75 6e 74 22 20 68 72 65 66 3d 22 69 6e li><a.id="toc-popCount".href="in
5cc0 64 65 78 2e 78 68 74 6d 6c 23 70 6f 70 43 6f 75 6e 74 22 3e 40 70 6f 70 43 6f 75 6e 74 3c 2f 61 dex.xhtml#popCount">@popCount</a
5ce0 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
5d00 63 2d 70 72 65 66 65 74 63 68 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 70 72 c-prefetch".href="index.xhtml#pr
5d20 65 66 65 74 63 68 22 3e 40 70 72 65 66 65 74 63 68 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 efetch">@prefetch</a></li>......
5d40 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 70 74 72 43 61 73 74 22 20 68 .......<li><a.id="toc-ptrCast".h
5d60 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 70 74 72 43 61 73 74 22 3e 40 70 74 72 43 61 ref="index.xhtml#ptrCast">@ptrCa
5d80 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 61 20 69 st</a></li>.............<li><a.i
5da0 64 3d 22 74 6f 63 2d 70 74 72 46 72 6f 6d 49 6e 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 d="toc-ptrFromInt".href="index.x
5dc0 68 74 6d 6c 23 70 74 72 46 72 6f 6d 49 6e 74 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 61 3e html#ptrFromInt">@ptrFromInt</a>
5de0 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
5e00 2d 72 65 6d 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 72 65 6d 22 3e 40 72 65 -rem".href="index.xhtml#rem">@re
5e20 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 3e 3c 61 20 69 64 m</a></li>.............<li><a.id
5e40 3d 22 74 6f 63 2d 72 65 74 75 72 6e 41 64 64 72 65 73 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 ="toc-returnAddress".href="index
5e60 2e 78 68 74 6d 6c 23 72 65 74 75 72 6e 41 64 64 72 65 73 73 22 3e 40 72 65 74 75 72 6e 41 64 64 .xhtml#returnAddress">@returnAdd
5e80 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 3c 61 ress</a></li>.............<li><a
5ea0 20 69 64 3d 22 74 6f 63 2d 73 65 6c 65 63 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 .id="toc-select".href="index.xht
5ec0 6d 6c 23 73 65 6c 65 63 74 22 3e 40 73 65 6c 65 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ml#select">@select</a></li>.....
5ee0 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 65 74 41 6c 69 67 6e 53 ........<li><a.id="toc-setAlignS
5f00 74 61 63 6b 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 65 74 41 6c 69 67 6e tack".href="index.xhtml#setAlign
5f20 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 3c 2f 6c 69 3e 0a 20 Stack">@setAlignStack</a></li>..
5f40 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 65 74 43 6f 6c ...........<li><a.id="toc-setCol
5f60 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 65 74 43 6f 6c 64 22 3e 40 73 d".href="index.xhtml#setCold">@s
5f80 65 74 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 etCold</a></li>.............<li>
5fa0 3c 61 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 <a.id="toc-setEvalBranchQuota".h
5fc0 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 ref="index.xhtml#setEvalBranchQu
5fe0 6f 74 61 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 3c 2f 6c 69 ota">@setEvalBranchQuota</a></li
6000 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 65 74 >.............<li><a.id="toc-set
6020 46 6c 6f 61 74 4d 6f 64 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 65 74 FloatMode".href="index.xhtml#set
6040 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 2f 61 3e 3c 2f 6c 69 FloatMode">@setFloatMode</a></li
6060 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 65 74 >.............<li><a.id="toc-set
6080 52 75 6e 74 69 6d 65 53 61 66 65 74 79 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c RuntimeSafety".href="index.xhtml
60a0 23 73 65 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 #setRuntimeSafety">@setRuntimeSa
60c0 66 65 74 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 fety</a></li>.............<li><a
60e0 20 69 64 3d 22 74 6f 63 2d 73 68 6c 45 78 61 63 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 .id="toc-shlExact".href="index.x
6100 68 74 6d 6c 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 html#shlExact">@shlExact</a></li
6120 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 68 6c >.............<li><a.id="toc-shl
6140 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 WithOverflow".href="index.xhtml#
6160 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 72 66 6c 6f shlWithOverflow">@shlWithOverflo
6180 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 69 64 w</a></li>.............<li><a.id
61a0 3d 22 74 6f 63 2d 73 68 72 45 78 61 63 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d ="toc-shrExact".href="index.xhtm
61c0 6c 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 3e 0a 20 l#shrExact">@shrExact</a></li>..
61e0 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 68 75 66 66 6c ...........<li><a.id="toc-shuffl
6200 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 68 75 66 66 6c 65 22 3e 40 73 e".href="index.xhtml#shuffle">@s
6220 68 75 66 66 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 huffle</a></li>.............<li>
6240 3c 61 20 69 64 3d 22 74 6f 63 2d 73 69 7a 65 4f 66 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 <a.id="toc-sizeOf".href="index.x
6260 68 74 6d 6c 23 73 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 html#sizeOf">@sizeOf</a></li>...
6280 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 70 6c 61 74 22 20 ..........<li><a.id="toc-splat".
62a0 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 70 6c 61 74 22 3e 40 73 70 6c 61 74 3c href="index.xhtml#splat">@splat<
62c0 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="
62e0 74 6f 63 2d 72 65 64 75 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 72 65 toc-reduce".href="index.xhtml#re
6300 64 75 63 65 22 3e 40 72 65 64 75 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 duce">@reduce</a></li>..........
6320 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 73 72 63 22 20 68 72 65 66 3d 22 69 6e 64 ...<li><a.id="toc-src".href="ind
6340 65 78 2e 78 68 74 6d 6c 23 73 72 63 22 3e 40 73 72 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ex.xhtml#src">@src</a></li>.....
6360 20 20 20 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 ........<li><a.id="toc-sqrt".hre
6380 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 71 72 74 22 3e 40 73 71 72 74 3c 2f 61 3e 3c 2f f="index.xhtml#sqrt">@sqrt</a></
63a0 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
63c0 69 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 73 69 6e 22 3e 40 73 69 6e 3c in".href="index.xhtml#sin">@sin<
63e0 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="
6400 74 6f 63 2d 63 6f 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 6f 73 22 3e toc-cos".href="index.xhtml#cos">
6420 40 63 6f 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 @cos</a></li>.............<li><a
6440 20 69 64 3d 22 74 6f 63 2d 74 61 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 .id="toc-tan".href="index.xhtml#
6460 74 61 6e 22 3e 40 74 61 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c tan">@tan</a></li>.............<
6480 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 78 70 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 li><a.id="toc-exp".href="index.x
64a0 68 74 6d 6c 23 65 78 70 22 3e 40 65 78 70 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 html#exp">@exp</a></li>.........
64c0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 65 78 70 32 22 20 68 72 65 66 3d 22 69 ....<li><a.id="toc-exp2".href="i
64e0 6e 64 65 78 2e 78 68 74 6d 6c 23 65 78 70 32 22 3e 40 65 78 70 32 3c 2f 61 3e 3c 2f 6c 69 3e 0a ndex.xhtml#exp2">@exp2</a></li>.
6500 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 6f 67 22 20 ............<li><a.id="toc-log".
6520 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6c 6f 67 22 3e 40 6c 6f 67 3c 2f 61 3e 3c href="index.xhtml#log">@log</a><
6540 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-
6560 6c 6f 67 32 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 6c 6f 67 32 22 3e 40 6c log2".href="index.xhtml#log2">@l
6580 6f 67 32 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 og2</a></li>.............<li><a.
65a0 69 64 3d 22 74 6f 63 2d 6c 6f 67 31 30 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c id="toc-log10".href="index.xhtml
65c0 23 6c 6f 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 #log10">@log10</a></li>.........
65e0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 61 62 73 22 20 68 72 65 66 3d 22 69 6e ....<li><a.id="toc-abs".href="in
6600 64 65 78 2e 78 68 74 6d 6c 23 61 62 73 22 3e 40 61 62 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 dex.xhtml#abs">@abs</a></li>....
6620 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 6f 6f 72 22 20 68 .........<li><a.id="toc-floor".h
6640 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 66 6c 6f 6f 72 22 3e 40 66 6c 6f 6f 72 3c 2f ref="index.xhtml#floor">@floor</
6660 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
6680 6f 63 2d 63 65 69 6c 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 65 69 6c 22 oc-ceil".href="index.xhtml#ceil"
66a0 3e 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 >@ceil</a></li>.............<li>
66c0 3c 61 20 69 64 3d 22 74 6f 63 2d 74 72 75 6e 63 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 <a.id="toc-trunc".href="index.xh
66e0 74 6d 6c 23 74 72 75 6e 63 22 3e 40 74 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 tml#trunc">@trunc</a></li>......
6700 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 72 6f 75 6e 64 22 20 68 72 65 .......<li><a.id="toc-round".hre
6720 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 72 6f 75 6e 64 22 3e 40 72 6f 75 6e 64 3c 2f 61 3e f="index.xhtml#round">@round</a>
6740 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
6760 2d 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 -subWithOverflow".href="index.xh
6780 74 6d 6c 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 tml#subWithOverflow">@subWithOve
67a0 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 69 3e 3c rflow</a></li>.............<li><
67c0 61 20 69 64 3d 22 74 6f 63 2d 74 61 67 4e 61 6d 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 a.id="toc-tagName".href="index.x
67e0 68 74 6d 6c 23 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 html#tagName">@tagName</a></li>.
6800 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 54 68 69 73 22 ............<li><a.id="toc-This"
6820 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 68 69 73 22 3e 40 54 68 69 73 3c 2f .href="index.xhtml#This">@This</
6840 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
6860 6f 63 2d 74 72 61 70 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 74 72 61 70 22 oc-trap".href="index.xhtml#trap"
6880 3e 40 74 72 61 70 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 >@trap</a></li>.............<li>
68a0 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 22 69 6e 64 65 78 <a.id="toc-truncate".href="index
68c0 2e 78 68 74 6d 6c 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 .xhtml#truncate">@truncate</a></
68e0 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 54 li>.............<li><a.id="toc-T
6900 79 70 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 79 70 65 22 3e 40 54 79 ype".href="index.xhtml#Type">@Ty
6920 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 20 69 pe</a></li>.............<li><a.i
6940 64 3d 22 74 6f 63 2d 74 79 70 65 49 6e 66 6f 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 d="toc-typeInfo".href="index.xht
6960 6d 6c 23 74 79 70 65 49 6e 66 6f 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a ml#typeInfo">@typeInfo</a></li>.
6980 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 74 79 70 65 4e ............<li><a.id="toc-typeN
69a0 61 6d 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 74 79 70 65 4e 61 6d 65 22 ame".href="index.xhtml#typeName"
69c0 3e 40 74 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 >@typeName</a></li>.............
69e0 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 79 70 65 4f 66 22 20 68 72 65 66 3d 22 69 6e 64 <li><a.id="toc-TypeOf".href="ind
6a00 65 78 2e 78 68 74 6d 6c 23 54 79 70 65 4f 66 22 3e 40 54 79 70 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 ex.xhtml#TypeOf">@TypeOf</a></li
6a20 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 75 6e 69 >.............<li><a.id="toc-uni
6a40 6f 6e 49 6e 69 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 75 6e 69 6f 6e 49 onInit".href="index.xhtml#unionI
6a60 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 20 20 20 20 20 20 20 nit">@unionInit</a></li>........
6a80 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 72 22 20 68 72 65 66 .....<li><a.id="toc-Vector".href
6aa0 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 56 65 63 74 6f 72 22 3e 40 56 65 63 74 6f 72 3c 2f 61 ="index.xhtml#Vector">@Vector</a
6ac0 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
6ae0 63 2d 76 6f 6c 61 74 69 6c 65 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d c-volatileCast".href="index.xhtm
6b00 6c 23 76 6f 6c 61 74 69 6c 65 43 61 73 74 22 3e 40 76 6f 6c 61 74 69 6c 65 43 61 73 74 3c 2f 61 l#volatileCast">@volatileCast</a
6b20 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
6b40 63 2d 77 6f 72 6b 47 72 6f 75 70 49 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c c-workGroupId".href="index.xhtml
6b60 23 77 6f 72 6b 47 72 6f 75 70 49 64 22 3e 40 77 6f 72 6b 47 72 6f 75 70 49 64 3c 2f 61 3e 3c 2f #workGroupId">@workGroupId</a></
6b80 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 77 li>.............<li><a.id="toc-w
6ba0 6f 72 6b 47 72 6f 75 70 53 69 7a 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 orkGroupSize".href="index.xhtml#
6bc0 77 6f 72 6b 47 72 6f 75 70 53 69 7a 65 22 3e 40 77 6f 72 6b 47 72 6f 75 70 53 69 7a 65 3c 2f 61 workGroupSize">@workGroupSize</a
6be0 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
6c00 63 2d 77 6f 72 6b 49 74 65 6d 49 64 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 c-workItemId".href="index.xhtml#
6c20 77 6f 72 6b 49 74 65 6d 49 64 22 3e 40 77 6f 72 6b 49 74 65 6d 49 64 3c 2f 61 3e 3c 2f 6c 69 3e workItemId">@workItemId</a></li>
6c40 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e .........</ol></li>.........<li>
6c60 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 69 6e 64 <a.id="toc-Build-Mode".href="ind
6c80 65 78 2e 78 68 74 6d 6c 23 42 75 69 6c 64 2d 4d 6f 64 65 22 3e 42 75 69 6c 64 20 4d 6f 64 65 3c ex.xhtml#Build-Mode">Build.Mode<
6ca0 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 /a>.........<ol>.............<li
6cc0 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 44 65 62 75 67 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 ><a.id="toc-Debug".href="index.x
6ce0 68 74 6d 6c 23 44 65 62 75 67 22 3e 44 65 62 75 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 html#Debug">Debug</a></li>......
6d00 20 20 20 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 46 61 73 .......<li><a.id="toc-ReleaseFas
6d20 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 52 65 6c 65 61 73 65 46 61 73 74 t".href="index.xhtml#ReleaseFast
6d40 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 20 ">ReleaseFast</a></li>..........
6d60 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 68 ...<li><a.id="toc-ReleaseSafe".h
6d80 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 52 65 6c 65 61 73 65 53 61 66 65 22 3e 52 65 ref="index.xhtml#ReleaseSafe">Re
6da0 6c 65 61 73 65 53 61 66 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c leaseSafe</a></li>.............<
6dc0 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 20 68 72 65 66 li><a.id="toc-ReleaseSmall".href
6de0 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 3e 52 65 6c 65 ="index.xhtml#ReleaseSmall">Rele
6e00 61 73 65 53 6d 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c aseSmall</a></li>.........</ol><
6e20 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 69 6e 67 /li>.........<li><a.id="toc-Sing
6e40 6c 65 2d 54 68 72 65 61 64 65 64 2d 42 75 69 6c 64 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e le-Threaded-Builds".href="index.
6e60 78 68 74 6d 6c 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 xhtml#Single-Threaded-Builds">Si
6e80 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>...
6ea0 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
6ec0 65 68 61 76 69 6f 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 55 6e 64 65 66 ehavior".href="index.xhtml#Undef
6ee0 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
6f00 72 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c r</a>.........<ol>.............<
6f20 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 65 61 63 68 69 6e 67 2d 55 6e 72 65 61 63 68 61 62 li><a.id="toc-Reaching-Unreachab
6f40 6c 65 2d 43 6f 64 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 52 65 61 63 68 le-Code".href="index.xhtml#Reach
6f60 69 6e 67 2d 55 6e 72 65 61 63 68 61 62 6c 65 2d 43 6f 64 65 22 3e 52 65 61 63 68 69 6e 67 20 55 ing-Unreachable-Code">Reaching.U
6f80 6e 72 65 61 63 68 61 62 6c 65 20 43 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 nreachable.Code</a></li>........
6fa0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 64 65 78 2d 6f 75 74 2d 6f 66 .....<li><a.id="toc-Index-out-of
6fc0 2d 42 6f 75 6e 64 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6e 64 65 78 -Bounds".href="index.xhtml#Index
6fe0 2d 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 -out-of-Bounds">Index.out.of.Bou
7000 6e 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 nds</a></li>.............<li><a.
7020 69 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 id="toc-Cast-Negative-Number-to-
7040 55 6e 73 69 67 6e 65 64 2d 49 6e 74 65 67 65 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 Unsigned-Integer".href="index.xh
7060 74 6d 6c 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 55 6e 73 69 tml#Cast-Negative-Number-to-Unsi
7080 67 6e 65 64 2d 49 6e 74 65 67 65 72 22 3e 43 61 73 74 20 4e 65 67 61 74 69 76 65 20 4e 75 6d 62 gned-Integer">Cast.Negative.Numb
70a0 65 72 20 74 6f 20 55 6e 73 69 67 6e 65 64 20 49 6e 74 65 67 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a er.to.Unsigned.Integer</a></li>.
70c0 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 43 61 73 74 2d ............<li><a.id="toc-Cast-
70e0 54 72 75 6e 63 61 74 65 73 2d 44 61 74 61 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d Truncates-Data".href="index.xhtm
7100 6c 23 43 61 73 74 2d 54 72 75 6e 63 61 74 65 73 2d 44 61 74 61 22 3e 43 61 73 74 20 54 72 75 6e l#Cast-Truncates-Data">Cast.Trun
7120 63 61 74 65 73 20 44 61 74 61 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 cates.Data</a></li>.............
7140 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 74 65 67 65 72 2d 4f 76 65 72 66 6c 6f 77 22 <li><a.id="toc-Integer-Overflow"
7160 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6e 74 65 67 65 72 2d 4f 76 65 72 66 .href="index.xhtml#Integer-Overf
7180 6c 6f 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 low">Integer.Overflow</a>.......
71a0 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c ......<ol>.................<li><
71c0 61 20 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 a.id="toc-Default-Operations".hr
71e0 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f ef="index.xhtml#Default-Operatio
7200 6e 73 22 3e 44 65 66 61 75 6c 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a ns">Default.Operations</a></li>.
7220 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 53 ................<li><a.id="toc-S
7240 74 61 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 20 tandard-Library-Math-Functions".
7260 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 href="index.xhtml#Standard-Libra
7280 72 79 2d 4d 61 74 68 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 53 74 61 6e 64 61 72 64 20 4c 69 62 72 ry-Math-Functions">Standard.Libr
72a0 61 72 79 20 4d 61 74 68 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 ary.Math.Functions</a></li>.....
72c0 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 42 75 69 6c 74 ............<li><a.id="toc-Built
72e0 69 6e 2d 4f 76 65 72 66 6c 6f 77 2d 46 75 6e 63 74 69 6f 6e 73 22 20 68 72 65 66 3d 22 69 6e 64 in-Overflow-Functions".href="ind
7300 65 78 2e 78 68 74 6d 6c 23 42 75 69 6c 74 69 6e 2d 4f 76 65 72 66 6c 6f 77 2d 46 75 6e 63 74 69 ex.xhtml#Builtin-Overflow-Functi
7320 6f 6e 73 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 ons">Builtin.Overflow.Functions<
7340 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.
7360 69 64 3d 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 id="toc-Wrapping-Operations".hre
7380 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 57 72 61 70 70 69 6e 67 2d 4f 70 65 72 61 74 69 6f f="index.xhtml#Wrapping-Operatio
73a0 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 2f 6c 69 3e ns">Wrapping.Operations</a></li>
73c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 .............</ol></li>.........
73e0 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 45 78 61 63 74 2d 4c 65 66 74 2d 53 68 ....<li><a.id="toc-Exact-Left-Sh
7400 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 ift-Overflow".href="index.xhtml#
7420 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 3e 45 78 61 63 74 Exact-Left-Shift-Overflow">Exact
7440 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 2f 6c 69 3e 0a 20 20 .Left.Shift.Overflow</a></li>...
7460 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 74 2d 52 ..........<li><a.id="toc-Exact-R
7480 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 3d 22 69 6e 64 65 78 ight-Shift-Overflow".href="index
74a0 2e 78 68 74 6d 6c 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 .xhtml#Exact-Right-Shift-Overflo
74c0 77 22 3e 45 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 w">Exact.Right.Shift.Overflow</a
74e0 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
7500 63 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 69 6e 64 65 78 2e c-Division-by-Zero".href="index.
7520 78 68 74 6d 6c 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 xhtml#Division-by-Zero">Division
7540 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c .by.Zero</a></li>.............<l
7560 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 65 6d 61 69 6e 64 65 72 2d 44 69 76 69 73 69 6f 6e 2d i><a.id="toc-Remainder-Division-
7580 62 79 2d 5a 65 72 6f 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 52 65 6d 61 69 by-Zero".href="index.xhtml#Remai
75a0 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 61 69 6e 64 65 72 nder-Division-by-Zero">Remainder
75c0 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 0a 20 20 20 20 20 .Division.by.Zero</a></li>......
75e0 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 74 2d 44 69 76 69 .......<li><a.id="toc-Exact-Divi
7600 73 69 6f 6e 2d 52 65 6d 61 69 6e 64 65 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d sion-Remainder".href="index.xhtm
7620 6c 23 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 45 78 61 63 l#Exact-Division-Remainder">Exac
7640 74 20 44 69 76 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 t.Division.Remainder</a></li>...
7660 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 74 74 65 6d 70 74 ..........<li><a.id="toc-Attempt
7680 2d 74 6f 2d 55 6e 77 72 61 70 2d 4e 75 6c 6c 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 -to-Unwrap-Null".href="index.xht
76a0 6d 6c 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 ml#Attempt-to-Unwrap-Null">Attem
76c0 70 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 pt.to.Unwrap.Null</a></li>......
76e0 20 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 .......<li><a.id="toc-Attempt-to
7700 2d 55 6e 77 72 61 70 2d 45 72 72 6f 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c -Unwrap-Error".href="index.xhtml
7720 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 41 74 74 65 6d 70 #Attempt-to-Unwrap-Error">Attemp
7740 74 20 74 6f 20 55 6e 77 72 61 70 20 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 t.to.Unwrap.Error</a></li>......
7760 20 20 20 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 .......<li><a.id="toc-Invalid-Er
7780 72 6f 72 2d 43 6f 64 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6e 76 61 ror-Code".href="index.xhtml#Inva
77a0 6c 69 64 2d 45 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 lid-Error-Code">Invalid.Error.Co
77c0 64 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 69 de</a></li>.............<li><a.i
77e0 64 3d 22 74 6f 63 2d 49 6e 76 61 6c 69 64 2d 45 6e 75 6d 2d 43 61 73 74 22 20 68 72 65 66 3d 22 d="toc-Invalid-Enum-Cast".href="
7800 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6e 76 61 6c 69 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e 49 index.xhtml#Invalid-Enum-Cast">I
7820 6e 76 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 nvalid.Enum.Cast</a></li>.......
7840 20 20 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 ......<li><a.id="toc-Invalid-Err
7860 6f 72 2d 53 65 74 2d 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 or-Set-Cast".href="index.xhtml#I
7880 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 53 65 74 2d 43 61 73 74 22 3e 49 6e 76 61 6c 69 64 20 45 nvalid-Error-Set-Cast">Invalid.E
78a0 72 72 6f 72 20 53 65 74 20 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 rror.Set.Cast</a></li>..........
78c0 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e ...<li><a.id="toc-Incorrect-Poin
78e0 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c ter-Alignment".href="index.xhtml
7900 23 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 22 3e 49 6e #Incorrect-Pointer-Alignment">In
7920 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 61 3e 3c 2f 6c correct.Pointer.Alignment</a></l
7940 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 57 72 i>.............<li><a.id="toc-Wr
7960 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 73 73 22 20 68 72 65 66 3d 22 69 6e ong-Union-Field-Access".href="in
7980 64 65 78 2e 78 68 74 6d 6c 23 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 dex.xhtml#Wrong-Union-Field-Acce
79a0 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 3e ss">Wrong.Union.Field.Access</a>
79c0 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
79e0 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 65 67 65 72 2d -Out-of-Bounds-Float-to-Integer-
7a00 43 61 73 74 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4f 75 74 2d 6f 66 2d 42 Cast".href="index.xhtml#Out-of-B
7a20 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 74 22 3e 4f 75 74 ounds-Float-to-Integer-Cast">Out
7a40 20 6f 66 20 42 6f 75 6e 64 73 20 46 6c 6f 61 74 20 74 6f 20 49 6e 74 65 67 65 72 20 43 61 73 74 .of.Bounds.Float.to.Integer.Cast
7a60 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=
7a80 22 74 6f 63 2d 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 20 "toc-Pointer-Cast-Invalid-Null".
7aa0 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 50 6f 69 6e 74 65 72 2d 43 61 73 74 2d 49 href="index.xhtml#Pointer-Cast-I
7ac0 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 20 49 6e 76 61 6c 69 nvalid-Null">Pointer.Cast.Invali
7ae0 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 2f 6f 6c 3e 3c 2f 6c d.Null</a></li>.........</ol></l
7b00 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 4d 65 6d 6f 72 79 i>.........<li><a.id="toc-Memory
7b20 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f ".href="index.xhtml#Memory">Memo
7b40 72 79 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ry</a>.........<ol>.............
7b60 3c 6c 69 3e 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 <li><a.id="toc-Choosing-an-Alloc
7b80 61 74 6f 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 68 6f 6f 73 69 6e 67 ator".href="index.xhtml#Choosing
7ba0 2d 61 6e 2d 41 6c 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 -an-Allocator">Choosing.an.Alloc
7bc0 61 74 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 61 ator</a></li>.............<li><a
7be0 20 69 64 3d 22 74 6f 63 2d 57 68 65 72 65 2d 61 72 65 2d 74 68 65 2d 62 79 74 65 73 22 20 68 72 .id="toc-Where-are-the-bytes".hr
7c00 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 57 68 65 72 65 2d 61 72 65 2d 74 68 65 2d 62 79 ef="index.xhtml#Where-are-the-by
7c20 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 3e 3c 2f 6c tes">Where.are.the.bytes?</a></l
7c40 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 6d i>.............<li><a.id="toc-Im
7c60 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 72 65 66 3d 22 69 plementing-an-Allocator".href="i
7c80 6e 64 65 78 2e 78 68 74 6d 6c 23 49 6d 70 6c 65 6d 65 6e 74 69 6e 67 2d 61 6e 2d 41 6c 6c 6f 63 ndex.xhtml#Implementing-an-Alloc
7ca0 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 6f 63 61 74 6f 72 3c ator">Implementing.an.Allocator<
7cc0 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="
7ce0 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 20 68 72 65 toc-Heap-Allocation-Failure".hre
7d00 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 48 65 61 70 2d 41 6c 6c 6f 63 61 74 69 6f 6e 2d 46 f="index.xhtml#Heap-Allocation-F
7d20 61 69 6c 75 72 65 22 3e 48 65 61 70 20 41 6c 6c 6f 63 61 74 69 6f 6e 20 46 61 69 6c 75 72 65 3c ailure">Heap.Allocation.Failure<
7d40 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="
7d60 74 6f 63 2d 52 65 63 75 72 73 69 6f 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c toc-Recursion".href="index.xhtml
7d80 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 6c 69 3e 0a 20 #Recursion">Recursion</a></li>..
7da0 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 69 66 65 74 69 ...........<li><a.id="toc-Lifeti
7dc0 6d 65 2d 61 6e 64 2d 4f 77 6e 65 72 73 68 69 70 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 me-and-Ownership".href="index.xh
7de0 74 6d 6c 23 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 69 66 65 tml#Lifetime-and-Ownership">Life
7e00 74 69 6d 65 20 61 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 time.and.Ownership</a></li>.....
7e20 20 20 20 20 3c 2f 6f 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 ....</ol></li>.........<li><a.id
7e40 3d 22 74 6f 63 2d 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 69 ="toc-Compile-Variables".href="i
7e60 6e 64 65 78 2e 78 68 74 6d 6c 23 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f ndex.xhtml#Compile-Variables">Co
7e80 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 20 20 20 20 20 20 20 mpile.Variables</a></li>........
7ea0 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 .<li><a.id="toc-Root-Source-File
7ec0 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 52 6f 6f 74 2d 53 6f 75 72 63 65 2d ".href="index.xhtml#Root-Source-
7ee0 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 6c 69 3e 0a File">Root.Source.File</a></li>.
7f00 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 42 75 69 6c 64 ........<li><a.id="toc-Zig-Build
7f20 2d 53 79 73 74 65 6d 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 5a 69 67 2d 42 -System".href="index.xhtml#Zig-B
7f40 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 74 65 6d 3c 2f 61 uild-System">Zig.Build.System</a
7f60 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 43 22 ></li>.........<li><a.id="toc-C"
7f80 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 22 3e 43 3c 2f 61 3e 0a 20 20 20 20 .href="index.xhtml#C">C</a>.....
7fa0 20 20 20 20 3c 6f 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 ....<ol>.............<li><a.id="
7fc0 74 6f 63 2d 43 2d 54 79 70 65 2d 50 72 69 6d 69 74 69 76 65 73 22 20 68 72 65 66 3d 22 69 6e 64 toc-C-Type-Primitives".href="ind
7fe0 65 78 2e 78 68 74 6d 6c 23 43 2d 54 79 70 65 2d 50 72 69 6d 69 74 69 76 65 73 22 3e 43 20 54 79 ex.xhtml#C-Type-Primitives">C.Ty
8000 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 20 20 20 20 20 20 20 pe.Primitives</a></li>..........
8020 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d ...<li><a.id="toc-Import-from-C-
8040 48 65 61 64 65 72 2d 46 69 6c 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 49 Header-File".href="index.xhtml#I
8060 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 49 6d 70 6f 72 74 mport-from-C-Header-File">Import
8080 20 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 .from.C.Header.File</a></li>....
80a0 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 54 72 61 6e 73 6c .........<li><a.id="toc-C-Transl
80c0 61 74 69 6f 6e 2d 43 4c 49 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 2d 54 ation-CLI".href="index.xhtml#C-T
80e0 72 61 6e 73 6c 61 74 69 6f 6e 2d 43 4c 49 22 3e 43 20 54 72 61 6e 73 6c 61 74 69 6f 6e 20 43 4c ranslation-CLI">C.Translation.CL
8100 49 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6f 6c 3e 0a 20 20 20 20 20 20 20 20 20 I</a>.............<ol>..........
8120 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 6d 61 6e 64 2d 6c 69 .......<li><a.id="toc-Command-li
8140 6e 65 2d 66 6c 61 67 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 6f 6d 6d ne-flags".href="index.xhtml#Comm
8160 61 6e 64 2d 6c 69 6e 65 2d 66 6c 61 67 73 22 3e 43 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 66 6c 61 and-line-flags">Command.line.fla
8180 67 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 gs</a></li>.................<li>
81a0 3c 61 20 69 64 3d 22 74 6f 63 2d 55 73 69 6e 67 2d 2d 74 61 72 67 65 74 2d 61 6e 64 2d 2d 63 66 <a.id="toc-Using--target-and--cf
81c0 6c 61 67 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 55 73 69 6e 67 2d 2d 74 lags".href="index.xhtml#Using--t
81e0 61 72 67 65 74 2d 61 6e 64 2d 2d 63 66 6c 61 67 73 22 3e 55 73 69 6e 67 20 2d 74 61 72 67 65 74 arget-and--cflags">Using.-target
8200 20 61 6e 64 20 2d 63 66 6c 61 67 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 .and.-cflags</a></li>...........
8220 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 63 49 6d 70 6f 72 74 2d 76 73 2d ......<li><a.id="toc-cImport-vs-
8240 74 72 61 6e 73 6c 61 74 65 2d 63 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 63 translate-c".href="index.xhtml#c
8260 49 6d 70 6f 72 74 2d 76 73 2d 74 72 61 6e 73 6c 61 74 65 2d 63 22 3e 40 63 49 6d 70 6f 72 74 20 Import-vs-translate-c">@cImport.
8280 76 73 20 74 72 61 6e 73 6c 61 74 65 2d 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 vs.translate-c</a></li>.........
82a0 20 20 20 20 3c 2f 6f 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 ....</ol></li>.............<li><
82c0 61 20 69 64 3d 22 74 6f 63 2d 43 2d 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 43 61 63 68 69 6e 67 22 a.id="toc-C-Translation-Caching"
82e0 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 2d 54 72 61 6e 73 6c 61 74 69 6f 6e .href="index.xhtml#C-Translation
8300 2d 43 61 63 68 69 6e 67 22 3e 43 20 54 72 61 6e 73 6c 61 74 69 6f 6e 20 43 61 63 68 69 6e 67 3c -Caching">C.Translation.Caching<
8320 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="
8340 74 6f 63 2d 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 66 61 69 6c 75 72 65 73 22 20 68 72 65 66 3d 22 toc-Translation-failures".href="
8360 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 66 61 69 6c 75 72 65 73 index.xhtml#Translation-failures
8380 22 3e 54 72 61 6e 73 6c 61 74 69 6f 6e 20 66 61 69 6c 75 72 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a ">Translation.failures</a></li>.
83a0 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 43 2d 4d 61 63 ............<li><a.id="toc-C-Mac
83c0 72 6f 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 2d 4d 61 63 72 6f 73 22 ros".href="index.xhtml#C-Macros"
83e0 3e 43 20 4d 61 63 72 6f 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c >C.Macros</a></li>.............<
8400 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 43 2d 50 6f 69 6e 74 65 72 73 22 20 68 72 65 66 3d 22 li><a.id="toc-C-Pointers".href="
8420 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 2d 50 6f 69 6e 74 65 72 73 22 3e 43 20 50 6f 69 6e 74 65 index.xhtml#C-Pointers">C.Pointe
8440 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 6c 69 3e 3c 61 20 69 rs</a></li>.............<li><a.i
8460 64 3d 22 74 6f 63 2d 43 2d 56 61 72 69 61 64 69 63 2d 46 75 6e 63 74 69 6f 6e 73 22 20 68 72 65 d="toc-C-Variadic-Functions".hre
8480 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 43 2d 56 61 72 69 61 64 69 63 2d 46 75 6e 63 74 69 f="index.xhtml#C-Variadic-Functi
84a0 6f 6e 73 22 3e 43 20 56 61 72 69 61 64 69 63 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c ons">C.Variadic.Functions</a></l
84c0 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 45 78 i>.............<li><a.id="toc-Ex
84e0 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 3d 22 69 6e 64 65 78 porting-a-C-Library".href="index
8500 2e 78 68 74 6d 6c 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 .xhtml#Exporting-a-C-Library">Ex
8520 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 6c 69 3e 0a 20 20 20 porting.a.C.Library</a></li>....
8540 20 20 20 20 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 .........<li><a.id="toc-Mixing-O
8560 62 6a 65 63 74 2d 46 69 6c 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4d bject-Files".href="index.xhtml#M
8580 69 78 69 6e 67 2d 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 ixing-Object-Files">Mixing.Objec
85a0 74 20 46 69 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f t.Files</a></li>.........</ol></
85c0 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 57 65 62 41 73 li>.........<li><a.id="toc-WebAs
85e0 73 65 6d 62 6c 79 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 57 65 62 41 73 73 sembly".href="index.xhtml#WebAss
8600 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 20 20 20 20 20 3c embly">WebAssembly</a>.........<
8620 6f 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 46 ol>.............<li><a.id="toc-F
8640 72 65 65 73 74 61 6e 64 69 6e 67 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 46 reestanding".href="index.xhtml#F
8660 72 65 65 73 74 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 reestanding">Freestanding</a></l
8680 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 57 41 i>.............<li><a.id="toc-WA
86a0 53 49 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 57 41 53 49 22 3e 57 41 53 49 SI".href="index.xhtml#WASI">WASI
86c0 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 </a></li>.........</ol></li>....
86e0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 54 61 72 67 65 74 73 22 20 68 72 65 .....<li><a.id="toc-Targets".hre
8700 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 54 61 72 67 65 74 73 22 3e 54 61 72 67 65 74 73 3c f="index.xhtml#Targets">Targets<
8720 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 2d /a></li>.........<li><a.id="toc-
8740 53 74 79 6c 65 2d 47 75 69 64 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 53 Style-Guide".href="index.xhtml#S
8760 74 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 0a 20 20 20 20 tyle-Guide">Style.Guide</a>.....
8780 20 20 20 20 3c 6f 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 ....<ol>.............<li><a.id="
87a0 74 6f 63 2d 41 76 6f 69 64 2d 52 65 64 75 6e 64 61 6e 63 79 2d 69 6e 2d 4e 61 6d 65 73 22 20 68 toc-Avoid-Redundancy-in-Names".h
87c0 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 76 6f 69 64 2d 52 65 64 75 6e 64 61 6e 63 ref="index.xhtml#Avoid-Redundanc
87e0 79 2d 69 6e 2d 4e 61 6d 65 73 22 3e 41 76 6f 69 64 20 52 65 64 75 6e 64 61 6e 63 79 20 69 6e 20 y-in-Names">Avoid.Redundancy.in.
8800 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 3c Names</a></li>.............<li><
8820 61 20 69 64 3d 22 74 6f 63 2d 41 76 6f 69 64 2d 52 65 64 75 6e 64 61 6e 74 2d 4e 61 6d 65 73 2d a.id="toc-Avoid-Redundant-Names-
8840 69 6e 2d 46 75 6c 6c 79 2d 51 75 61 6c 69 66 69 65 64 2d 4e 61 6d 65 73 70 61 63 65 73 22 20 68 in-Fully-Qualified-Namespaces".h
8860 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 41 76 6f 69 64 2d 52 65 64 75 6e 64 61 6e 74 ref="index.xhtml#Avoid-Redundant
8880 2d 4e 61 6d 65 73 2d 69 6e 2d 46 75 6c 6c 79 2d 51 75 61 6c 69 66 69 65 64 2d 4e 61 6d 65 73 70 -Names-in-Fully-Qualified-Namesp
88a0 61 63 65 73 22 3e 41 76 6f 69 64 20 52 65 64 75 6e 64 61 6e 74 20 4e 61 6d 65 73 20 69 6e 20 46 aces">Avoid.Redundant.Names.in.F
88c0 75 6c 6c 79 2d 51 75 61 6c 69 66 69 65 64 20 4e 61 6d 65 73 70 61 63 65 73 3c 2f 61 3e 3c 2f 6c ully-Qualified.Namespaces</a></l
88e0 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 57 68 i>.............<li><a.id="toc-Wh
8900 69 74 65 73 70 61 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 57 68 69 74 itespace".href="index.xhtml#Whit
8920 65 73 70 61 63 65 22 3e 57 68 69 74 65 73 70 61 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 espace">Whitespace</a></li>.....
8940 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 4e 61 6d 65 73 22 20 68 72 ........<li><a.id="toc-Names".hr
8960 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 4e 61 6d 65 73 22 3e 4e 61 6d 65 73 3c 2f 61 3e ef="index.xhtml#Names">Names</a>
8980 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
89a0 2d 45 78 61 6d 70 6c 65 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 45 78 61 -Examples".href="index.xhtml#Exa
89c0 6d 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 mples">Examples</a></li>........
89e0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 44 6f 63 2d 43 6f 6d 6d 65 6e 74 2d .....<li><a.id="toc-Doc-Comment-
8a00 47 75 69 64 61 6e 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 44 6f 63 2d Guidance".href="index.xhtml#Doc-
8a20 43 6f 6d 6d 65 6e 74 2d 47 75 69 64 61 6e 63 65 22 3e 44 6f 63 20 43 6f 6d 6d 65 6e 74 20 47 75 Comment-Guidance">Doc.Comment.Gu
8a40 69 64 61 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f 6c 3e 3c 2f 6c idance</a></li>.........</ol></l
8a60 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 6f 75 72 63 65 i>.........<li><a.id="toc-Source
8a80 2d 45 6e 63 6f 64 69 6e 67 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 53 6f 75 -Encoding".href="index.xhtml#Sou
8aa0 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 6e 67 3c 2f 61 rce-Encoding">Source.Encoding</a
8ac0 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 4b 65 ></li>.........<li><a.id="toc-Ke
8ae0 79 77 6f 72 64 2d 52 65 66 65 72 65 6e 63 65 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 yword-Reference".href="index.xht
8b00 6d 6c 23 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 52 65 ml#Keyword-Reference">Keyword.Re
8b20 66 65 72 65 6e 63 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 ference</a></li>.........<li><a.
8b40 69 64 3d 22 74 6f 63 2d 41 70 70 65 6e 64 69 78 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 id="toc-Appendix".href="index.xh
8b60 74 6d 6c 23 41 70 70 65 6e 64 69 78 22 3e 41 70 70 65 6e 64 69 78 3c 2f 61 3e 0a 20 20 20 20 20 tml#Appendix">Appendix</a>......
8b80 20 20 20 3c 6f 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 ...<ol>.............<li><a.id="t
8ba0 6f 63 2d 43 6f 6e 74 61 69 6e 65 72 73 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c oc-Containers".href="index.xhtml
8bc0 23 43 6f 6e 74 61 69 6e 65 72 73 22 3e 43 6f 6e 74 61 69 6e 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e #Containers">Containers</a></li>
8be0 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 47 72 61 6d .............<li><a.id="toc-Gram
8c00 6d 61 72 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 23 47 72 61 6d 6d 61 72 22 3e mar".href="index.xhtml#Grammar">
8c20 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 20 20 20 20 3c 6c 69 Grammar</a></li>.............<li
8c40 3e 3c 61 20 69 64 3d 22 74 6f 63 2d 5a 65 6e 22 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 ><a.id="toc-Zen".href="index.xht
8c60 6d 6c 23 5a 65 6e 22 3e 5a 65 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6f ml#Zen">Zen</a></li>.........</o
8c80 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 3c 2f 6f 6c 3e 0a 20 20 20 20 3c 2f 6e 61 76 3e 0a 20 20 3c l></li>.....</ol>.....</nav>...<
8ca0 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 52 00 5d 48 /body>.</html>.PK..........!R.]H
8cc0 e7 6d c4 0d 00 6d c4 0d 00 11 00 00 00 4f 45 42 50 53 2f 69 6e 64 65 78 2e 78 68 74 6d 6c 3c 3f .m...m.......OEBPS/index.xhtml<?
8ce0 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 75 74 66 2d xml.version="1.0".encoding="utf-
8d00 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 77 2e 77 33 8"?>..<html.xmlns="http://www.w3
8d20 2e 6f 72 67 2f 31 39 39 39 2f 78 68 74 6d 6c 22 20 6c 61 6e 67 3d 22 65 6e 22 3e 0a 20 20 3c 68 .org/1999/xhtml".lang="en">...<h
8d40 65 61 64 3e 0a 20 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 ead>.....<meta.charset="utf-8"/>
8d60 0a 20 20 20 20 3c 6d 65 74 61 20 6e 61 6d 65 3d 22 76 69 65 77 70 6f 72 74 22 20 63 6f 6e 74 65 .....<meta.name="viewport".conte
8d80 6e 74 3d 22 77 69 64 74 68 3d 64 65 76 69 63 65 2d 77 69 64 74 68 2c 20 69 6e 69 74 69 61 6c 2d nt="width=device-width,.initial-
8da0 73 63 61 6c 65 3d 31 2e 30 22 2f 3e 0a 20 20 20 20 3c 6d 65 74 61 20 6e 61 6d 65 3d 22 63 6f 6c scale=1.0"/>.....<meta.name="col
8dc0 6f 72 2d 73 63 68 65 6d 65 22 20 63 6f 6e 74 65 6e 74 3d 22 6c 69 67 68 74 20 64 61 72 6b 22 2f or-scheme".content="light.dark"/
8de0 3e 0a 20 20 20 20 3c 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 >.....<title>Documentation.-.The
8e00 20 5a 69 67 20 50 72 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 .Zig.Programming.Language</title
8e20 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 22 64 61 74 >.....<link.rel="icon".href="dat
8e40 61 3a 69 6d 61 67 65 2f 70 6e 67 3b 62 61 73 65 36 34 2c 69 56 42 4f 52 77 30 4b 47 67 6f 41 41 a:image/png;base64,iVBORw0KGgoAA
8e60 41 41 4e 53 55 68 45 55 67 41 41 41 42 41 41 41 41 41 51 43 41 59 41 41 41 41 66 38 2f 39 68 41 AANSUhEUgAAABAAAAAQCAYAAAAf8/9hA
8e80 41 41 41 67 6b 6c 45 51 56 52 34 41 57 4d 59 57 75 44 37 45 6c 6c 4a 49 4d 34 47 34 67 34 67 35 AAAgklEQVR4AWMYWuD7EllJIM4G4g4g5
8ea0 6f 49 4a 2f 6f 64 68 4f 4a 38 77 54 6f 4f 78 53 54 58 67 4e 78 44 48 6f 65 69 42 4d 66 41 34 2b oIJ/odhOJ8wToOxSTXgNxDHoeiBMfA4+
8ec0 77 47 53 68 6a 79 59 4f 43 6b 47 2f 49 47 71 57 51 7a 69 45 7a 59 41 6f 55 41 65 69 46 39 44 35 wGShjyYOCkG/IGqWQziEzYAoUAeiF9D5
8ee0 55 2b 44 78 45 67 31 34 44 52 55 37 6a 57 49 54 35 49 42 49 4f 64 43 78 66 2b 41 2b 43 51 5a 41 U+DxEg14DRU7jWIT5IBIOdCxf+A+CQZA
8f00 41 6f 6f 70 45 42 37 51 4a 77 42 43 42 77 48 69 69 70 38 55 59 6d 52 64 72 41 6c 44 70 49 4d 67 AoopEB7QJwBCBwHiip8UYmRdrAlDpIMg
8f20 41 70 77 51 5a 4e 6e 4e 69 69 35 44 71 30 4d 42 67 43 78 78 79 63 42 6e 77 45 64 2b 77 41 41 41 ApwQZNnNii5Dq0MBgCxxycBnwEd+wAAA
8f40 41 42 4a 52 55 35 45 72 6b 4a 67 67 67 3d 3d 22 2f 3e 0a 20 20 20 20 3c 6c 69 6e 6b 20 72 65 6c ABJRU5ErkJggg=="/>.....<link.rel
8f60 3d 22 69 63 6f 6e 22 20 68 72 65 66 3d 22 64 61 74 61 3a 69 6d 61 67 65 2f 73 76 67 2b 78 6d 6c ="icon".href="data:image/svg+xml
8f80 3b 62 61 73 65 36 34 2c 50 48 4e 32 5a 79 42 34 62 57 78 75 63 7a 30 69 61 48 52 30 63 44 6f 76 ;base64,PHN2ZyB4bWxucz0iaHR0cDov
8fa0 4c 33 64 33 64 79 35 33 4d 79 35 76 63 6d 63 76 4d 6a 41 77 4d 43 39 7a 64 6d 63 69 49 48 5a 70 L3d3dy53My5vcmcvMjAwMC9zdmciIHZp
8fc0 5a 58 64 43 62 33 67 39 49 6a 41 67 4d 43 41 78 4e 54 4d 67 4d 54 51 77 49 6a 34 38 5a 79 42 6d ZXdCb3g9IjAgMCAxNTMgMTQwIj48ZyBm
8fe0 61 57 78 73 50 53 49 6a 52 6a 64 42 4e 44 46 45 49 6a 34 38 5a 7a 34 38 63 47 39 73 65 57 64 76 aWxsPSIjRjdBNDFEIj48Zz48cG9seWdv
9000 62 69 42 77 62 32 6c 75 64 48 4d 39 49 6a 51 32 4c 44 49 79 49 44 49 34 4c 44 51 30 49 44 45 35 biBwb2ludHM9IjQ2LDIyIDI4LDQ0IDE5
9020 4c 44 4d 77 49 69 38 2b 50 48 42 76 62 48 6c 6e 62 32 34 67 63 47 39 70 62 6e 52 7a 50 53 49 30 LDMwIi8+PHBvbHlnb24gcG9pbnRzPSI0
9040 4e 69 77 79 4d 69 41 7a 4d 79 77 7a 4d 79 41 79 4f 43 77 30 4e 43 41 79 4d 69 77 30 4e 43 41 79 NiwyMiAzMywzMyAyOCw0NCAyMiw0NCAy
9060 4d 69 77 35 4e 53 41 7a 4d 53 77 35 4e 53 41 79 4d 43 77 78 4d 44 41 67 4d 54 49 73 4d 54 45 33 Miw5NSAzMSw5NSAyMCwxMDAgMTIsMTE3
9080 49 44 41 73 4d 54 45 33 49 44 41 73 4d 6a 49 69 49 48 4e 6f 59 58 42 6c 4c 58 4a 6c 62 6d 52 6c IDAsMTE3IDAsMjIiIHNoYXBlLXJlbmRl
90a0 63 6d 6c 75 5a 7a 30 69 59 33 4a 70 63 33 42 46 5a 47 64 6c 63 79 49 76 50 6a 78 77 62 32 78 35 cmluZz0iY3Jpc3BFZGdlcyIvPjxwb2x5
90c0 5a 32 39 75 49 48 42 76 61 57 35 30 63 7a 30 69 4d 7a 45 73 4f 54 55 67 4d 54 49 73 4d 54 45 33 Z29uIHBvaW50cz0iMzEsOTUgMTIsMTE3
90e0 49 44 51 73 4d 54 41 32 49 69 38 2b 50 43 39 6e 50 6a 78 6e 50 6a 78 77 62 32 78 35 5a 32 39 75 IDQsMTA2Ii8+PC9nPjxnPjxwb2x5Z29u
9100 49 48 42 76 61 57 35 30 63 7a 30 69 4e 54 59 73 4d 6a 49 67 4e 6a 49 73 4d 7a 59 67 4d 7a 63 73 IHBvaW50cz0iNTYsMjIgNjIsMzYgMzcs
9120 4e 44 51 69 4c 7a 34 38 63 47 39 73 65 57 64 76 62 69 42 77 62 32 6c 75 64 48 4d 39 49 6a 55 32 NDQiLz48cG9seWdvbiBwb2ludHM9IjU2
9140 4c 44 49 79 49 44 45 78 4d 53 77 79 4d 69 41 78 4d 54 45 73 4e 44 51 67 4d 7a 63 73 4e 44 51 67 LDIyIDExMSwyMiAxMTEsNDQgMzcsNDQg
9160 4e 54 59 73 4d 7a 49 69 49 48 4e 6f 59 58 42 6c 4c 58 4a 6c 62 6d 52 6c 63 6d 6c 75 5a 7a 30 69 NTYsMzIiIHNoYXBlLXJlbmRlcmluZz0i
9180 59 33 4a 70 63 33 42 46 5a 47 64 6c 63 79 49 76 50 6a 78 77 62 32 78 35 5a 32 39 75 49 48 42 76 Y3Jpc3BFZGdlcyIvPjxwb2x5Z29uIHBv
91a0 61 57 35 30 63 7a 30 69 4d 54 45 32 4c 44 6b 31 49 44 6b 33 4c 44 45 78 4e 79 41 35 4d 43 77 78 aW50cz0iMTE2LDk1IDk3LDExNyA5MCwx
91c0 4d 44 51 69 4c 7a 34 38 63 47 39 73 65 57 64 76 62 69 42 77 62 32 6c 75 64 48 4d 39 49 6a 45 78 MDQiLz48cG9seWdvbiBwb2ludHM9IjEx
91e0 4e 69 77 35 4e 53 41 78 4d 44 41 73 4d 54 41 30 49 44 6b 33 4c 44 45 78 4e 79 41 30 4d 69 77 78 Niw5NSAxMDAsMTA0IDk3LDExNyA0Miwx
9200 4d 54 63 67 4e 44 49 73 4f 54 55 69 49 48 4e 6f 59 58 42 6c 4c 58 4a 6c 62 6d 52 6c 63 6d 6c 75 MTcgNDIsOTUiIHNoYXBlLXJlbmRlcmlu
9220 5a 7a 30 69 59 33 4a 70 63 33 42 46 5a 47 64 6c 63 79 49 76 50 6a 78 77 62 32 78 35 5a 32 39 75 Zz0iY3Jpc3BFZGdlcyIvPjxwb2x5Z29u
9240 49 48 42 76 61 57 35 30 63 7a 30 69 4d 54 55 77 4c 44 41 67 4e 54 49 73 4d 54 45 33 49 44 4d 73 IHBvaW50cz0iMTUwLDAgNTIsMTE3IDMs
9260 4d 54 51 77 49 44 45 77 4d 53 77 79 4d 69 49 76 50 6a 77 76 5a 7a 34 38 5a 7a 34 38 63 47 39 73 MTQwIDEwMSwyMiIvPjwvZz48Zz48cG9s
9280 65 57 64 76 62 69 42 77 62 32 6c 75 64 48 4d 39 49 6a 45 30 4d 53 77 79 4d 69 41 78 4e 44 41 73 eWdvbiBwb2ludHM9IjE0MSwyMiAxNDAs
92a0 4e 44 41 67 4d 54 49 79 4c 44 51 31 49 69 38 2b 50 48 42 76 62 48 6c 6e 62 32 34 67 63 47 39 70 NDAgMTIyLDQ1Ii8+PHBvbHlnb24gcG9p
92c0 62 6e 52 7a 50 53 49 78 4e 54 4d 73 4d 6a 49 67 4d 54 55 7a 4c 44 45 78 4e 79 41 78 4d 44 59 73 bnRzPSIxNTMsMjIgMTUzLDExNyAxMDYs
92e0 4d 54 45 33 49 44 45 79 4d 43 77 78 4d 44 55 67 4d 54 49 31 4c 44 6b 31 49 44 45 7a 4d 53 77 35 MTE3IDEyMCwxMDUgMTI1LDk1IDEzMSw5
9300 4e 53 41 78 4d 7a 45 73 4e 44 55 67 4d 54 49 79 4c 44 51 31 49 44 45 7a 4d 69 77 7a 4e 69 41 78 NSAxMzEsNDUgMTIyLDQ1IDEzMiwzNiAx
9320 4e 44 45 73 4d 6a 49 69 49 48 4e 6f 59 58 42 6c 4c 58 4a 6c 62 6d 52 6c 63 6d 6c 75 5a 7a 30 69 NDEsMjIiIHNoYXBlLXJlbmRlcmluZz0i
9340 59 33 4a 70 63 33 42 46 5a 47 64 6c 63 79 49 76 50 6a 78 77 62 32 78 35 5a 32 39 75 49 48 42 76 Y3Jpc3BFZGdlcyIvPjxwb2x5Z29uIHBv
9360 61 57 35 30 63 7a 30 69 4d 54 49 31 4c 44 6b 31 49 44 45 7a 4d 43 77 78 4d 54 41 67 4d 54 41 32 aW50cz0iMTI1LDk1IDEzMCwxMTAgMTA2
9380 4c 44 45 78 4e 79 49 76 50 6a 77 76 5a 7a 34 38 4c 32 63 2b 50 43 39 7a 64 6d 63 2b 22 2f 3e 0a LDExNyIvPjwvZz48L2c+PC9zdmc+"/>.
93a0 20 20 20 20 3c 73 74 79 6c 65 3e 0a 20 20 20 20 20 20 3a 72 6f 6f 74 7b 0a 20 20 20 20 20 20 20 ....<style>.......:root{........
93c0 20 20 2d 2d 6e 61 76 2d 77 69 64 74 68 3a 20 32 36 65 6d 3b 0a 20 20 20 20 20 20 20 20 20 2d 2d ..--nav-width:.26em;..........--
93e0 6e 61 76 2d 6d 61 72 67 69 6e 2d 6c 3a 20 31 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 nav-margin-l:.1em;.......}......
9400 20 62 6f 64 79 7b 0a 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 66 61 6d 69 6c 79 3a 20 73 79 73 74 .body{.........font-family:.syst
9420 65 6d 2d 75 69 2c 20 2d 61 70 70 6c 65 2d 73 79 73 74 65 6d 2c 20 52 6f 62 6f 74 6f 2c 20 22 53 em-ui,.-apple-system,.Roboto,."S
9440 65 67 6f 65 20 55 49 22 2c 20 73 61 6e 73 2d 73 65 72 69 66 3b 0a 20 20 20 20 20 20 20 20 6d 61 egoe.UI",.sans-serif;.........ma
9460 72 67 69 6e 3a 20 30 3b 0a 20 20 20 20 20 20 20 20 6c 69 6e 65 2d 68 65 69 67 68 74 3a 20 31 2e rgin:.0;.........line-height:.1.
9480 35 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 68 65 61 64 65 72 20 7b 0a 20 20 20 20 20 20 5;.......}.......header.{.......
94a0 20 20 70 61 64 64 69 6e 67 3a 20 30 20 31 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ..padding:.0.1em;.......}.......
94c0 23 63 6f 6e 74 65 6e 74 73 20 7b 0a 20 20 20 20 20 20 20 20 6d 61 78 2d 77 69 64 74 68 3a 20 36 #contents.{.........max-width:.6
94e0 30 65 6d 3b 0a 20 20 20 20 20 20 20 20 6d 61 72 67 69 6e 3a 20 61 75 74 6f 3b 0a 20 20 20 20 20 0em;.........margin:.auto;......
9500 20 20 20 70 61 64 64 69 6e 67 3a 20 30 20 31 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 ...padding:.0.1em;.......}......
9520 20 23 6e 61 76 69 67 61 74 69 6f 6e 20 7b 0a 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 3a 20 .#navigation.{.........padding:.
9540 30 20 31 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 74 61 62 6c 65 20 75 6c 20 7b 0a 0.1em;.......}.......table.ul.{.
9560 20 20 20 20 20 20 20 20 6c 69 73 74 2d 73 74 79 6c 65 2d 74 79 70 65 3a 20 6e 6f 6e 65 3b 0a 20 ........list-style-type:.none;..
9580 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 3a 20 30 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 .......padding:.0em;.......}....
95a0 20 20 20 74 61 62 6c 65 20 6c 69 20 7b 0a 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 2d 62 6f ...table.li.{.........padding-bo
95c0 74 74 6f 6d 3a 20 31 65 6d 3b 0a 20 20 20 20 20 20 20 20 6c 69 6e 65 2d 68 65 69 67 68 74 3a 31 ttom:.1em;.........line-height:1
95e0 2e 32 65 6d 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 .2em;.......}.......table,.th,.t
9600 64 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 d.{.........border-collapse:.col
9620 6c 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 lapse;.........border:.1px.solid
9640 20 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 .grey;.......}.......th,.td.{...
9660 20 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 7d 0a 20 20 ......padding:.0.5em;.......}...
9680 20 20 20 20 74 68 5b 73 63 6f 70 65 3d 72 6f 77 5d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 74 65 ....th[scope=row].{...........te
96a0 78 74 2d 61 6c 69 67 6e 3a 20 6c 65 66 74 3b 0a 20 20 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 77 xt-align:.left;...........font-w
96c0 65 69 67 68 74 3a 20 6e 6f 72 6d 61 6c 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 40 6d eight:.normal;.......}........@m
96e0 65 64 69 61 20 73 63 72 65 65 6e 20 61 6e 64 20 28 6d 69 6e 2d 77 69 64 74 68 3a 20 31 30 32 35 edia.screen.and.(min-width:.1025
9700 70 78 29 20 7b 0a 20 20 20 20 20 20 20 20 68 65 61 64 65 72 20 7b 0a 20 20 20 20 20 20 20 20 20 px).{.........header.{..........
9720 20 6d 61 72 67 69 6e 2d 6c 65 66 74 3a 20 63 61 6c 63 28 76 61 72 28 2d 2d 6e 61 76 2d 77 69 64 .margin-left:.calc(var(--nav-wid
9740 74 68 29 20 2b 20 76 61 72 28 2d 2d 6e 61 76 2d 6d 61 72 67 69 6e 2d 6c 29 29 3b 0a 20 20 20 20 th).+.var(--nav-margin-l));.....
9760 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 68 65 61 64 65 72 20 68 31 20 7b 0a 20 20 20 20 20 20 ....}.........header.h1.{.......
9780 20 20 20 20 6d 61 72 67 69 6e 3a 20 61 75 74 6f 3b 0a 20 20 20 20 20 20 20 20 20 20 6d 61 78 2d ....margin:.auto;...........max-
97a0 77 69 64 74 68 3a 20 33 30 65 6d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 23 width:.30em;.........}.........#
97c0 6e 61 76 69 67 61 74 69 6f 6e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 6f 76 65 72 66 6c 6f 77 3a navigation.{...........overflow:
97e0 20 61 75 74 6f 3b 0a 20 20 20 20 20 20 20 20 20 20 77 69 64 74 68 3a 20 76 61 72 28 2d 2d 6e 61 .auto;...........width:.var(--na
9800 76 2d 77 69 64 74 68 29 3b 0a 20 20 20 20 20 20 20 20 20 20 68 65 69 67 68 74 3a 20 31 30 30 76 v-width);...........height:.100v
9820 68 3b 0a 20 20 20 20 20 20 20 20 20 20 70 6f 73 69 74 69 6f 6e 3a 20 66 69 78 65 64 3b 0a 20 20 h;...........position:.fixed;...
9840 20 20 20 20 20 20 20 20 74 6f 70 3a 30 3b 0a 20 20 20 20 20 20 20 20 20 20 6c 65 66 74 3a 30 3b ........top:0;...........left:0;
9860 0a 20 20 20 20 20 20 20 20 20 20 62 6f 74 74 6f 6d 3a 30 3b 0a 20 20 20 20 20 20 20 20 20 20 70 ...........bottom:0;...........p
9880 61 64 64 69 6e 67 3a 20 75 6e 73 65 74 3b 0a 20 20 20 20 20 20 20 20 20 20 6d 61 72 67 69 6e 2d adding:.unset;...........margin-
98a0 6c 65 66 74 3a 20 76 61 72 28 2d 2d 6e 61 76 2d 6d 61 72 67 69 6e 2d 6c 29 3b 0a 20 20 20 20 20 left:.var(--nav-margin-l);......
98c0 20 20 20 7d 0a 20 20 20 20 20 20 20 20 23 6e 61 76 69 67 61 74 69 6f 6e 20 6e 61 76 20 75 6c 20 ...}.........#navigation.nav.ul.
98e0 7b 0a 20 20 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 2d 6c 65 66 74 3a 20 31 65 6d 3b 0a 20 {...........padding-left:.1em;..
9900 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 23 63 6f 6e 74 65 6e 74 73 2d 77 72 61 70 70 .......}.........#contents-wrapp
9920 65 72 20 7b 0a 20 20 20 20 20 20 20 20 20 20 6d 61 72 67 69 6e 2d 6c 65 66 74 3a 20 63 61 6c 63 er.{...........margin-left:.calc
9940 28 76 61 72 28 2d 2d 6e 61 76 2d 77 69 64 74 68 29 20 2b 20 76 61 72 28 2d 2d 6e 61 76 2d 6d 61 (var(--nav-width).+.var(--nav-ma
9960 72 67 69 6e 2d 6c 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 rgin-l));.........}.......}.....
9980 20 20 20 61 3a 68 6f 76 65 72 2c 61 3a 66 6f 63 75 73 20 7b 0a 20 20 20 20 20 20 20 20 62 61 63 ...a:hover,a:focus.{.........bac
99a0 6b 67 72 6f 75 6e 64 3a 20 23 66 66 66 32 61 38 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 kground:.#fff2a8;.......}.......
99c0 64 74 20 7b 0a 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 dt.{.........font-weight:.bold;.
99e0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 73 67 72 2d 31 6d 20 7b 0a 20 20 20 20 20 20 20 20 ......}........sgr-1m.{.........
9a00 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 20 font-weight:.bold;.......}......
9a20 20 2e 73 67 72 2d 32 6d 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 35 37 35 37 35 ..sgr-2m.{.........color:.#57575
9a40 37 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 73 67 72 2d 33 31 5f 31 6d 20 7b 0a 20 20 7;.......}........sgr-31_1m.{...
9a60 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 62 34 30 30 30 30 3b 0a 20 20 20 20 20 20 7d 0a 20 20 ......color:.#b40000;.......}...
9a80 20 20 20 20 2e 73 67 72 2d 33 32 5f 31 6d 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 .....sgr-32_1m.{.........color:.
9aa0 67 72 65 65 6e 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 73 67 72 2d 33 36 5f 31 6d 20 green;.......}........sgr-36_1m.
9ac0 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 35 43 37 41 3b 0a 20 20 20 20 20 20 {.........color:.#005C7A;.......
9ae0 7d 0a 20 20 20 20 20 20 2e 66 69 6c 65 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 77 65 69 }........file.{.........font-wei
9b00 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 3a 20 75 6e 73 65 74 ght:.bold;.........border:.unset
9b20 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 63 6f 64 65 20 7b 0a 20 20 20 20 20 20 20 20 62 ;.......}.......code.{.........b
9b40 61 63 6b 67 72 6f 75 6e 64 3a 20 23 66 38 66 38 66 38 3b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 ackground:.#f8f8f8;.........bord
9b60 65 72 3a 20 31 70 78 20 64 6f 74 74 65 64 20 73 69 6c 76 65 72 3b 0a 20 20 20 20 20 20 20 20 70 er:.1px.dotted.silver;.........p
9b80 61 64 64 69 6e 67 2d 6c 65 66 74 3a 20 30 2e 33 65 6d 3b 0a 20 20 20 20 20 20 20 20 70 61 64 64 adding-left:.0.3em;.........padd
9ba0 69 6e 67 2d 72 69 67 68 74 3a 20 30 2e 33 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ing-right:.0.3em;.......}.......
9bc0 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
9be0 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;....
9c00 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 62 6f 72 .....padding:.0.5em;.........bor
9c20 64 65 72 3a 20 31 70 78 20 73 6f 6c 69 64 20 23 65 65 65 3b 0a 20 20 20 20 20 20 20 20 6c 69 6e der:.1px.solid.#eee;.........lin
9c40 65 2d 68 65 69 67 68 74 3a 20 6e 6f 72 6d 61 6c 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 e-height:.normal;.......}.......
9c60 73 61 6d 70 20 7b 0a 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a 20 23 66 61 66 61 samp.{.........background:.#fafa
9c80 66 61 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 70 72 65 20 3e 20 73 61 6d 70 20 7b 0a 20 fa;.......}.......pre.>.samp.{..
9ca0 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 3a 20 62 6c 6f 63 6b 3b 0a 20 20 20 20 20 20 20 20 6f .......display:.block;.........o
9cc0 76 65 72 66 6c 6f 77 3a 20 61 75 74 6f 3b 0a 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 3a 20 verflow:.auto;.........padding:.
9ce0 30 2e 35 65 6d 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 0.5em;.........border:.1px.solid
9d00 20 23 65 65 65 3b 0a 20 20 20 20 20 20 20 20 6c 69 6e 65 2d 68 65 69 67 68 74 3a 20 6e 6f 72 6d .#eee;.........line-height:.norm
9d20 61 6c 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 6b 62 64 20 7b 0a 20 20 20 20 20 20 20 20 al;.......}.......kbd.{.........
9d40 66 6f 6e 74 2d 77 65 69 67 68 74 3a 20 6e 6f 72 6d 61 6c 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 font-weight:.normal;.......}....
9d60 20 20 20 2e 74 61 62 6c 65 2d 77 72 61 70 70 65 72 20 7b 0a 20 20 20 20 20 20 20 20 77 69 64 74 ....table-wrapper.{.........widt
9d80 68 3a 20 31 30 30 25 3b 0a 20 20 20 20 20 20 20 20 6f 76 65 72 66 6c 6f 77 2d 78 3a 20 61 75 74 h:.100%;.........overflow-x:.aut
9da0 6f 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 6b 77 20 7b 0a 20 20 20 20 o;.......}.........tok-kw.{.....
9dc0 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 33 33 33 3b 0a 20 20 20 20 20 20 20 20 20 20 66 6f 6e ......color:.#333;...........fon
9de0 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 20 20 2e 74 t-weight:.bold;.......}........t
9e00 6f 6b 2d 73 74 72 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 64 31 34 3b 0a ok-str.{...........color:.#d14;.
9e20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 62 75 69 6c 74 69 6e 20 7b 0a 20 20 20 ......}........tok-builtin.{....
9e40 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 35 43 37 41 3b 0a 20 20 20 20 20 20 7d 0a 20 .......color:.#005C7A;.......}..
9e60 20 20 20 20 20 2e 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f ......tok-comment.{...........co
9e80 6c 6f 72 3a 20 23 35 34 35 34 35 34 3b 0a 20 20 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 73 74 79 lor:.#545454;...........font-sty
9ea0 6c 65 3a 20 69 74 61 6c 69 63 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 66 le:.italic;.......}........tok-f
9ec0 6e 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 39 30 30 3b 0a 20 20 20 20 20 n.{...........color:.#900;......
9ee0 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 20 20 20 20 20 7d 0a .....font-weight:.bold;.......}.
9f00 20 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 63 6f 6c 6f .......tok-null.{...........colo
9f20 72 3a 20 23 30 30 35 43 35 43 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 6e r:.#005C5C;.......}........tok-n
9f40 75 6d 62 65 72 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 35 43 35 43 umber.{...........color:.#005C5C
9f60 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 6f 6b 2d 74 79 70 65 20 7b 0a 20 20 20 20 ;.......}........tok-type.{.....
9f80 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 34 35 38 3b 0a 20 20 20 20 20 20 20 20 20 20 66 6f 6e ......color:.#458;...........fon
9fa0 74 2d 77 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 66 t-weight:.bold;.......}........f
9fc0 69 67 75 72 65 20 7b 0a 20 20 20 20 20 20 20 20 6d 61 72 67 69 6e 3a 20 61 75 74 6f 20 30 3b 0a igure.{.........margin:.auto.0;.
9fe0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 66 69 67 75 72 65 20 70 72 65 20 7b 0a 20 20 20 20 20 ......}.......figure.pre.{......
a000 20 20 20 6d 61 72 67 69 6e 2d 74 6f 70 3a 20 30 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ...margin-top:.0;.......}.......
a020 20 66 69 67 63 61 70 74 69 6f 6e 20 7b 0a 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 2d 6c 65 .figcaption.{.........padding-le
a040 66 74 3a 20 30 2e 35 65 6d 3b 0a 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 73 69 7a 65 3a 20 73 6d ft:.0.5em;.........font-size:.sm
a060 61 6c 6c 3b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 2d 74 6f 70 2d 6c 65 66 74 2d 72 61 64 all;.........border-top-left-rad
a080 69 75 73 3a 20 35 70 78 3b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 2d 74 6f 70 2d 72 69 67 ius:.5px;.........border-top-rig
a0a0 68 74 2d 72 61 64 69 75 73 3a 20 35 70 78 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 66 69 ht-radius:.5px;.......}.......fi
a0c0 67 63 61 70 74 69 6f 6e 2e 7a 69 67 2d 63 61 70 20 7b 0a 20 20 20 20 20 20 20 20 62 61 63 6b 67 gcaption.zig-cap.{.........backg
a0e0 72 6f 75 6e 64 3a 20 23 66 63 64 62 61 35 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 66 69 round:.#fcdba5;.......}.......fi
a100 67 63 61 70 74 69 6f 6e 2e 63 2d 63 61 70 20 7b 0a 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f gcaption.c-cap.{.........backgro
a120 75 6e 64 3a 20 23 61 38 62 39 63 63 3b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 und:.#a8b9cc;.........color:.#00
a140 30 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 66 69 67 63 61 70 74 69 6f 6e 2e 70 65 67 2d 0;.......}.......figcaption.peg-
a160 63 61 70 20 7b 0a 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a 20 23 66 63 64 62 61 cap.{.........background:.#fcdba
a180 35 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 66 69 67 63 61 70 74 69 6f 6e 2e 6a 61 76 61 5;.......}.......figcaption.java
a1a0 73 63 72 69 70 74 2d 63 61 70 20 7b 0a 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a script-cap.{.........background:
a1c0 20 23 33 36 35 64 39 35 3b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 66 66 66 3b 0a 20 .#365d95;.........color:.#fff;..
a1e0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 66 69 67 63 61 70 74 69 6f 6e 2e 73 68 65 6c 6c 2d 63 61 .....}.......figcaption.shell-ca
a200 70 20 7b 0a 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a 20 23 63 63 63 3b 0a 20 20 p.{.........background:.#ccc;...
a220 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 30 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 ......color:.#000;.......}......
a240 20 20 61 73 69 64 65 20 7b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 2d 6c 65 66 74 3a 20 30 ..aside.{.........border-left:.0
a260 2e 32 35 65 6d 20 73 6f 6c 69 64 20 23 66 37 61 34 31 64 3b 0a 20 20 20 20 20 20 20 20 70 61 64 .25em.solid.#f7a41d;.........pad
a280 64 69 6e 67 3a 20 30 20 31 65 6d 20 30 20 31 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 ding:.0.1em.0.1em;.......}......
a2a0 20 20 68 31 20 61 2c 20 68 32 20 61 2c 20 68 33 20 61 2c 20 68 34 20 61 2c 20 68 35 20 61 20 7b ..h1.a,.h2.a,.h3.a,.h4.a,.h5.a.{
a2c0 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 6f 6e 65 3b 0a .........text-decoration:.none;.
a2e0 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 33 33 33 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 ........color:.#333;.......}....
a300 20 20 20 20 61 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 ....a.hdr.{.........visibility:.
a320 68 69 64 64 65 6e 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 68 31 3a 68 6f 76 65 72 20 3e hidden;.......}.......h1:hover.>
a340 20 61 2e 68 64 72 2c 20 68 32 3a 68 6f 76 65 72 20 3e 20 61 2e 68 64 72 2c 20 68 33 3a 68 6f 76 .a.hdr,.h2:hover.>.a.hdr,.h3:hov
a360 65 72 20 3e 20 61 2e 68 64 72 2c 20 68 34 3a 68 6f 76 65 72 20 3e 20 61 2e 68 64 72 2c 20 68 35 er.>.a.hdr,.h4:hover.>.a.hdr,.h5
a380 3a 68 6f 76 65 72 20 3e 20 61 2e 68 64 72 20 7b 0a 20 20 20 20 20 20 20 20 76 69 73 69 62 69 6c :hover.>.a.hdr.{.........visibil
a3a0 69 74 79 3a 20 76 69 73 69 62 6c 65 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 74 68 20 ity:.visible;.......}........th.
a3c0 70 72 65 20 63 6f 64 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a pre.code.{...........background:
a3e0 20 6e 6f 6e 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 .none;.......}........@media.(pr
a400 65 66 65 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 efers-color-scheme:.dark).{.....
a420 20 20 20 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 ....body{.............background
a440 3a 23 31 32 31 32 31 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 63 63 :#121212;.............color:.#cc
a460 63 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 c;.........}.........a.{........
a480 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;.........}.....
a4a0 20 20 20 20 61 3a 68 6f 76 65 72 2c 61 3a 66 6f 63 75 73 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ....a:hover,a:focus.{...........
a4c0 20 20 63 6f 6c 6f 72 3a 20 23 30 30 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 ..color:.#000;.........}........
a4e0 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 62 6f 72 .table,.th,.td.{.............bor
a500 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 20 20 20 der-color:.grey;.........}......
a520 20 20 20 2e 73 67 72 2d 32 6d 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 ....sgr-2m.{.............color:.
a540 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 73 67 72 2d 33 31 5f grey;.........}..........sgr-31_
a560 31 6d 20 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 1m.{.............color:.red;....
a580 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2e 73 67 72 2d 33 32 5f 31 6d 20 7b 0a 20 20 20 20 .....}..........sgr-32_1m.{.....
a5a0 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 42 38 30 30 3b 0a 20 20 20 20 20 20 20 20 ........color:.#00B800;.........
a5c0 7d 0a 20 20 20 20 20 20 20 20 2e 73 67 72 2d 33 36 5f 31 6d 20 7b 0a 20 20 20 20 20 20 20 20 20 }..........sgr-36_1m.{..........
a5e0 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 38 36 62 33 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ...color:.#0086b3;.........}....
a600 20 20 20 20 20 63 6f 64 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 .....code.{...........background
a620 3a 20 23 32 32 32 3b 0a 20 20 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 2d 63 6f 6c 6f 72 3a 20 :.#222;...........border-color:.
a640 23 34 34 34 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 #444;.........}.........pre.>.co
a660 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;...
a680 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;.....
a6a0 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 3a 20 75 6e 73 65 74 3b 0a 20 20 20 20 20 20 20 20 7d ........border:.unset;.........}
a6c0 0a 20 20 20 20 20 20 20 20 73 61 6d 70 20 7b 0a 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 .........samp.{...........backgr
a6e0 6f 75 6e 64 3a 20 23 30 30 30 3b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 63 63 ound:.#000;...........color:.#cc
a700 63 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 73 61 6d 70 20 c;.........}.........pre.>.samp.
a720 7b 0a 20 20 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 3a 20 75 6e 73 65 74 3b 0a 20 20 20 20 20 {...........border:.unset;......
a740 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 20 ...}..........tok-kw.{..........
a760 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 20 ...color:.#eee;.........}.......
a780 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 20 ...tok-str.{.............color:.
a7a0 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 69 #2e5;.........}..........tok-bui
a7c0 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 34 ltin.{.............color:.#ff894
a7e0 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 6e c;.........}..........tok-commen
a800 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 20 t.{.............color:.#aa7;....
a820 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 20 .....}..........tok-fn.{........
a840 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 42 31 41 30 46 38 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 .....color:.#B1A0F8;.........}..
a860 20 20 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 ........tok-null.{.............c
a880 6f 6c 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 olor:.#ff8080;.........}........
a8a0 20 2e 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 ..tok-number.{.............color
a8c0 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 74 6f :.#ff8080;.........}..........to
a8e0 6b 2d 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 k-type.{.............color:.#68f
a900 3b 0a 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 ;.........}.........h1.a,.h2.a,.
a920 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 20 20 20 20 63 h3.a,.h4.a,.h5.a.{.............c
a940 6f 6c 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 20 20 66 69 olor:.#aaa;.........}.........fi
a960 67 63 61 70 74 69 6f 6e 2e 7a 69 67 2d 63 61 70 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 gcaption.zig-cap.{.............b
a980 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 20 23 62 32 37 33 30 36 3b 0a 20 20 20 20 20 20 ackground-color:.#b27306;.......
a9a0 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ......color:.#000;.........}....
a9c0 20 20 20 20 20 66 69 67 63 61 70 74 69 6f 6e 2e 70 65 67 2d 63 61 70 20 7b 0a 20 20 20 20 20 20 .....figcaption.peg-cap.{.......
a9e0 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 20 23 62 32 37 33 30 36 3b ......background-color:.#b27306;
aa00 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 30 3b 0a 20 20 20 20 20 20 .............color:.#000;.......
aa20 20 20 7d 0a 20 20 20 20 20 20 20 20 66 69 67 63 61 70 74 69 6f 6e 2e 73 68 65 6c 6c 2d 63 61 70 ..}.........figcaption.shell-cap
aa40 20 7b 0a 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 67 72 6f 75 6e 64 3a 20 23 32 61 32 61 32 61 .{...........background:.#2a2a2a
aa60 3b 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 66 66 66 3b 0a 20 20 20 20 20 20 20 ;...........color:.#fff;........
aa80 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 3c 2f 73 74 79 6c 65 3e 0a 3c 2f 68 65 61 64 3e 0a .}.......}.....</style>.</head>.
aaa0 3c 62 6f 64 79 3e 0a 20 20 3c 68 65 61 64 65 72 3e 3c 68 31 3e 5a 69 67 20 4c 61 6e 67 75 61 67 <body>...<header><h1>Zig.Languag
aac0 65 20 52 65 66 65 72 65 6e 63 65 3c 2f 68 31 3e 3c 2f 68 65 61 64 65 72 3e 0a 20 20 3c 64 69 76 e.Reference</h1></header>...<div
aae0 20 69 64 3d 22 6d 61 69 6e 2d 77 72 61 70 70 65 72 22 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 .id="main-wrapper">.............
ab00 20 3c 64 69 76 20 69 64 3d 22 63 6f 6e 74 65 6e 74 73 2d 77 72 61 70 70 65 72 22 3e 3c 6d 61 69 .<div.id="contents-wrapper"><mai
ab20 6e 20 69 64 3d 22 63 6f 6e 74 65 6e 74 73 22 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 n.id="contents">.......<h2.id="I
ab40 6e 74 72 6f 64 75 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 ntroduction"><a.href="nav.xhtml#
ab60 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 6f 6e 3c 2f toc-Introduction">Introduction</
ab80 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 72 6f 64 75 a>.<a.class="hdr".href="#Introdu
aba0 63 74 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 0a 20 20 ction">..</a></h2>........<p>...
abc0 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
abe0 22 3e 5a 69 67 3c 2f 61 3e 20 69 73 20 61 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 20 70 ">Zig</a>.is.a.general-purpose.p
ac00 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 61 6e 64 20 74 6f 6f 6c 63 68 61 69 rogramming.language.and.toolchai
ac20 6e 20 66 6f 72 20 6d 61 69 6e 74 61 69 6e 69 6e 67 0a 20 20 20 20 20 20 3c 73 74 72 6f 6e 67 3e n.for.maintaining.......<strong>
ac40 72 6f 62 75 73 74 3c 2f 73 74 72 6f 6e 67 3e 2c 20 3c 73 74 72 6f 6e 67 3e 6f 70 74 69 6d 61 6c robust</strong>,.<strong>optimal
ac60 3c 2f 73 74 72 6f 6e 67 3e 2c 20 61 6e 64 20 3c 73 74 72 6f 6e 67 3e 72 65 75 73 61 62 6c 65 3c </strong>,.and.<strong>reusable<
ac80 2f 73 74 72 6f 6e 67 3e 20 73 6f 66 74 77 61 72 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 /strong>.software........</p>...
aca0 20 20 20 20 3c 64 6c 3e 0a 20 20 20 20 20 20 20 20 3c 64 74 3e 52 6f 62 75 73 74 3c 2f 64 74 3e ....<dl>.........<dt>Robust</dt>
acc0 3c 64 64 3e 42 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 72 <dd>Behavior.is.correct.even.for
ace0 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 72 .edge.cases.such.as.out.of.memor
ad00 79 2e 3c 2f 64 64 3e 0a 20 20 20 20 20 20 20 20 3c 64 74 3e 4f 70 74 69 6d 61 6c 3c 2f 64 74 3e y.</dd>.........<dt>Optimal</dt>
ad20 3c 64 64 3e 57 72 69 74 65 20 70 72 6f 67 72 61 6d 73 20 74 68 65 20 62 65 73 74 20 77 61 79 20 <dd>Write.programs.the.best.way.
ad40 74 68 65 79 20 63 61 6e 20 62 65 68 61 76 65 20 61 6e 64 20 70 65 72 66 6f 72 6d 2e 3c 2f 64 64 they.can.behave.and.perform.</dd
ad60 3e 0a 20 20 20 20 20 20 20 20 3c 64 74 3e 52 65 75 73 61 62 6c 65 3c 2f 64 74 3e 3c 64 64 3e 54 >.........<dt>Reusable</dt><dd>T
ad80 68 65 20 73 61 6d 65 20 63 6f 64 65 20 77 6f 72 6b 73 20 69 6e 20 6d 61 6e 79 20 65 6e 76 69 72 he.same.code.works.in.many.envir
ada0 6f 6e 6d 65 6e 74 73 20 77 68 69 63 68 20 68 61 76 65 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 onments.which.have.different....
adc0 20 20 20 20 20 20 20 63 6f 6e 73 74 72 61 69 6e 74 73 2e 3c 2f 64 64 3e 0a 20 20 20 20 20 20 20 .......constraints.</dd>........
ade0 20 3c 64 74 3e 4d 61 69 6e 74 61 69 6e 61 62 6c 65 3c 2f 64 74 3e 3c 64 64 3e 50 72 65 63 69 73 .<dt>Maintainable</dt><dd>Precis
ae00 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
ae20 6d 70 69 6c 65 72 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 20 70 72 6f 67 72 mpiler.and...........other.progr
ae40 61 6d 6d 65 72 73 2e 20 54 68 65 20 6c 61 6e 67 75 61 67 65 20 69 6d 70 6f 73 65 73 20 61 20 6c ammers..The.language.imposes.a.l
ae60 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 64 20 ow.overhead.to.reading.code.and.
ae80 69 73 0a 20 20 20 20 20 20 20 20 20 20 72 65 73 69 6c 69 65 6e 74 20 74 6f 20 63 68 61 6e 67 69 is...........resilient.to.changi
aea0 6e 67 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 6e 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 ng.requirements.and.environments
aec0 2e 3c 2f 64 64 3e 0a 20 20 20 20 20 20 3c 2f 64 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 .</dd>.......</dl>.......<p>....
aee0 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 77 61 79 20 ...Often.the.most.efficient.way.
af00 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 20 73 65 65 to.learn.something.new.is.to.see
af20 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 75 6d 65 6e .examples,.so.......this.documen
af40 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 20 6f 66 20 tation.shows.how.to.use.each.of.
af60 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 61 6c 6c 20 Zig's.features..It.is.......all.
af80 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 68 20 77 69 on.one.page.so.you.can.search.wi
afa0 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 6c 2e 0a 20 th.your.browser's.search.tool...
afc0 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 63 6f .....</p>.......<p>.......The.co
afe0 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 61 72 65 20 de.samples.in.this.document.are.
b000 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 6f 66 20 74 compiled.and.tested.as.part.of.t
b020 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 20 20 20 20 he.main.test.suite.of.Zig.......
b040 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 48 54 4d 4c 20 .</p>.......<p>.......This.HTML.
b060 64 6f 63 75 6d 65 6e 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 6e 6f 20 65 78 74 65 72 6e 61 6c 20 document.depends.on.no.external.
b080 66 69 6c 65 73 2c 20 73 6f 20 79 6f 75 20 63 61 6e 20 75 73 65 20 69 74 20 6f 66 66 6c 69 6e 65 files,.so.you.can.use.it.offline
b0a0 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 68 32 20 69 ........</p>...............<h2.i
b0c0 64 3d 22 5a 69 67 2d 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 72 79 22 3e 3c 61 20 68 72 65 66 d="Zig-Standard-Library"><a.href
b0e0 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 5a 69 67 2d 53 74 61 6e 64 61 72 64 2d 4c 69 62 ="nav.xhtml#toc-Zig-Standard-Lib
b100 72 61 72 79 22 3e 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c 2f 61 3e 20 3c rary">Zig.Standard.Library</a>.<
b120 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 53 74 61 6e 64 61 72 a.class="hdr".href="#Zig-Standar
b140 64 2d 4c 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 d-Library">..</a></h2>........<p
b160 3e 0a 20 20 20 20 20 20 20 20 54 68 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 7a >.........The.<a.href="https://z
b180 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e 31 32 2e 31 2f iglang.org/documentation/0.12.1/
b1a0 73 74 64 2f 22 3e 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c 2f 61 3e 20 68 std/">Zig.Standard.Library</a>.h
b1c0 61 73 20 69 74 73 20 6f 77 6e 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 as.its.own.documentation........
b1e0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 5a 69 67 27 73 20 53 74 61 </p>.......<p>.........Zig's.Sta
b200 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 63 6f 6e 74 61 69 6e 73 20 63 6f 6d 6d 6f 6e 6c 79 20 ndard.Library.contains.commonly.
b220 75 73 65 64 20 61 6c 67 6f 72 69 74 68 6d 73 2c 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 used.algorithms,.data.structures
b240 2c 20 61 6e 64 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 74 6f 20 68 65 6c 70 20 79 6f 75 20 62 75 ,.and.definitions.to.help.you.bu
b260 69 6c 64 20 70 72 6f 67 72 61 6d 73 20 6f 72 20 6c 69 62 72 61 72 69 65 73 2e 0a 20 20 20 20 20 ild.programs.or.libraries.......
b280 20 20 20 59 6f 75 20 77 69 6c 6c 20 73 65 65 20 6d 61 6e 79 20 65 78 61 6d 70 6c 65 73 20 6f 66 ...You.will.see.many.examples.of
b2a0 20 5a 69 67 27 73 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 75 73 65 64 20 69 6e 20 .Zig's.Standard.Library.used.in.
b2c0 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 20 54 6f 20 6c 65 61 72 6e 20 6d 6f 72 this.documentation..To.learn.mor
b2e0 65 20 61 62 6f 75 74 20 74 68 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 e.about.the.Zig.Standard.Library
b300 2c 0a 20 20 20 20 20 20 20 20 76 69 73 69 74 20 74 68 65 20 6c 69 6e 6b 20 61 62 6f 76 65 2e 0a ,.........visit.the.link.above..
b320 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=
b340 22 48 65 6c 6c 6f 2d 57 6f 72 6c 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c "Hello-World"><a.href="nav.xhtml
b360 23 74 6f 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 #toc-Hello-World">Hello.World</a
b380 3e 20 3c 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 >.<a.class="hdr".href="#Hello-Wo
b3a0 72 6c 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 rld">..</a></h2>.........<figure
b3c0 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 ><figcaption.class="zig-cap"><ci
b3e0 74 65 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 63 69 74 65 3e te.class="file">hello.zig</cite>
b400 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
b420 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.=.
b440 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
b460 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">&
b480 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 20 63 quot;std&quot;</span>);..<span.c
b4a0 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
b4c0 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
b4e0 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 70 61 ass="tok-fn">main</span>().!<spa
b500 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>.{
b520 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<
b540 2f 73 70 61 6e 3e 20 73 74 64 6f 75 74 20 3d 20 73 74 64 2e 69 6f 2e 67 65 74 53 74 64 4f 75 74 /span>.stdout.=.std.io.getStdOut
b560 28 29 2e 77 72 69 74 65 72 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ().writer();.....<span.class="to
b580 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 6f 75 74 2e 70 72 69 6e 74 28 3c 73 k-kw">try</span>.stdout.print(<s
b5a0 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 6c 6c 6f 2c pan.class="tok-str">&quot;Hello,
b5c0 20 7b 73 7d 21 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 3c 73 70 61 6e 20 63 6c .{s}!\n&quot;</span>,..{<span.cl
b5e0 61 73 73 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 ass="tok-str">&quot;world&quot;<
b600 2f 73 70 61 6e 3e 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 /span>});.}</code></pre></figure
b620 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
b640 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
b660 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 68 65 6c 6c 6f 2e 7a amp>$.<kbd>zig.build-exe.hello.z
b680 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 68 65 6c 6c 6f 3c 2f 6b 62 64 3e 0a 48 65 ig</kbd>.$.<kbd>./hello</kbd>.He
b6a0 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 llo,.world!.</samp></pre></figur
b6c0 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4d 6f 73 74 20 6f 66 20 74 68 65 20 74 e>.......<p>.......Most.of.the.t
b6e0 69 6d 65 2c 20 69 74 20 69 73 20 6d 6f 72 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 74 6f 20 77 ime,.it.is.more.appropriate.to.w
b700 72 69 74 65 20 74 6f 20 73 74 64 65 72 72 20 72 61 74 68 65 72 20 74 68 61 6e 20 73 74 64 6f 75 rite.to.stderr.rather.than.stdou
b720 74 2c 20 61 6e 64 0a 20 20 20 20 20 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 74 68 65 20 t,.and.......whether.or.not.the.
b740 6d 65 73 73 61 67 65 20 69 73 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 77 72 69 74 74 65 6e 20 message.is.successfully.written.
b760 74 6f 20 74 68 65 20 73 74 72 65 61 6d 20 69 73 20 69 72 72 65 6c 65 76 61 6e 74 2e 0a 20 20 20 to.the.stream.is.irrelevant.....
b780 20 20 20 46 6f 72 20 74 68 69 73 20 63 6f 6d 6d 6f 6e 20 63 61 73 65 2c 20 74 68 65 72 65 20 69 ...For.this.common.case,.there.i
b7a0 73 20 61 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 s.a.simpler.API:.......</p>.....
b7c0 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
b7e0 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 68 65 6c 6c 6f 5f 61 -cap"><cite.class="file">hello_a
b800 67 61 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 gain.zig</cite></figcaption><pre
b820 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
b840 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 2d t</span>.std.=.<span.class="tok-
b860 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
b880 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
b8a0 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 62 pan>);..<span.class="tok-kw">pub
b8c0 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<
b8e0 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 6e /span>.<span.class="tok-fn">main
b900 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"
b920 3e 76 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 70 72 69 >void</span>.{.....std.debug.pri
b940 6e 74 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 nt(<span.class="tok-str">&quot;H
b960 65 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 2c 20 2e 7b 7d ello,.world!\n&quot;</span>,..{}
b980 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 );.}</code></pre></figure><figur
b9a0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
b9c0 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
b9e0 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 68 65 6c 6c 6f 5f 61 67 61 69 6e 2e 7a 69 kbd>zig.build-exe.hello_again.zi
ba00 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 68 65 6c 6c 6f 5f 61 67 61 69 6e 3c 2f 6b 62 g</kbd>.$.<kbd>./hello_again</kb
ba20 64 3e 0a 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f d>.Hello,.world!.</samp></pre></
ba40 66 69 67 75 72 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 figure>.......<p>.......In.this.
ba60 63 61 73 65 2c 20 74 68 65 20 3c 63 6f 64 65 3e 21 3c 2f 63 6f 64 65 3e 20 6d 61 79 20 62 65 20 case,.the.<code>!</code>.may.be.
ba80 6f 6d 69 74 74 65 64 20 66 72 6f 6d 20 74 68 65 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 74 79 omitted.from.the.return.......ty
baa0 70 65 20 62 65 63 61 75 73 65 20 6e 6f 20 65 72 72 6f 72 73 20 61 72 65 20 72 65 74 75 72 6e 65 pe.because.no.errors.are.returne
bac0 64 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a d.from.the.function........</p>.
bae0 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><
bb00 61 20 68 72 65 66 3d 22 23 56 61 6c 75 65 73 22 3e 56 61 6c 75 65 73 3c 2f 61 3e 3c 2f 6c 69 3e a.href="#Values">Values</a></li>
bb20 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 2f .<li><a.href="#import">@import</
bb40 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 73 22 3e 45 72 a></li>.<li><a.href="#Errors">Er
bb60 72 6f 72 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 52 6f 6f 74 rors</a></li>.<li><a.href="#Root
bb80 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 3c 2f -Source-File">Root.Source.File</
bba0 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 6f 75 72 63 65 2d 45 6e 63 a></li>.<li><a.href="#Source-Enc
bbc0 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 6c 69 3e 0a oding">Source.Encoding</a></li>.
bbe0 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 43 6f 6d 6d </ul>...............<h2.id="Comm
bc00 65 6e 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 6f 6d ents"><a.href="nav.xhtml#toc-Com
bc20 6d 65 6e 74 73 22 3e 43 6f 6d 6d 65 6e 74 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 ments">Comments</a>.<a.class="hd
bc40 72 22 20 68 72 65 66 3d 22 23 43 6f 6d 6d 65 6e 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a r".href="#Comments">..</a></h2>.
bc60 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 73 20 33 20 .......<p>.......Zig.supports.3.
bc80 74 79 70 65 73 20 6f 66 20 63 6f 6d 6d 65 6e 74 73 2e 20 4e 6f 72 6d 61 6c 20 63 6f 6d 6d 65 6e types.of.comments..Normal.commen
bca0 74 73 20 61 72 65 20 69 67 6e 6f 72 65 64 2c 20 62 75 74 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 73 ts.are.ignored,.but.doc.comments
bcc0 0a 20 20 20 20 20 20 61 6e 64 20 74 6f 70 2d 6c 65 76 65 6c 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 .......and.top-level.doc.comment
bce0 73 20 61 72 65 20 75 73 65 64 20 62 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 74 6f 20 67 65 s.are.used.by.the.compiler.to.ge
bd00 6e 65 72 61 74 65 20 74 68 65 20 70 61 63 6b 61 67 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e nerate.the.package.documentation
bd20 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
bd40 20 67 65 6e 65 72 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 73 74 69 6c .generated.documentation.is.stil
bd60 6c 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 2c 20 61 6e 64 20 63 61 6e 20 62 65 20 70 72 6f 64 75 l.experimental,.and.can.be.produ
bd80 63 65 64 20 77 69 74 68 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 ced.with:.......</p>.......<figu
bda0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 re><figcaption.class="shell-cap"
bdc0 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 7a 69 >Shell</figcaption><pre><samp>zi
bde0 67 20 74 65 73 74 20 2d 66 65 6d 69 74 2d 64 6f 63 73 20 6d 61 69 6e 2e 7a 69 67 0a 3c 2f 73 61 g.test.-femit-docs.main.zig.</sa
be00 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 mp></pre></figure>.......<figure
be20 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 ><figcaption.class="zig-cap"><ci
be40 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 6f 6d 6d 65 6e 74 73 2e 7a 69 67 3c 2f 63 69 te.class="file">comments.zig</ci
be60 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
be80 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 72 69 .class="tok-kw">const</span>.pri
bea0 6e 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 nt.=.<span.class="tok-builtin">@
bec0 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
bee0 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 75 tr">&quot;std&quot;</span>).debu
bf00 67 2e 70 72 69 6e 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 70 g.print;..<span.class="tok-kw">p
bf20 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
bf40 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
bf60 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
bf80 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
bfa0 3d 22 74 6f 6b 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 ="tok-comment">//.Comments.in.Zi
bfc0 67 20 73 74 61 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 g.start.with.&quot;//&quot;.and.
bfe0 65 6e 64 20 61 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 end.at.the.next.LF.byte.(end.of.
c000 6c 69 6e 65 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 22 74 line).</span>.....<span.class="t
c020 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 6c 69 6e 65 20 62 65 6c 6f 77 20 69 73 ok-comment">//.The.line.below.is
c040 20 61 20 63 6f 6d 6d 65 6e 74 20 61 6e 64 20 77 6f 6e 27 74 20 62 65 20 65 78 65 63 75 74 65 64 .a.comment.and.won't.be.executed
c060 2e 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 63 .</span>......<span.class="tok-c
c080 6f 6d 6d 65 6e 74 22 3e 2f 2f 70 72 69 6e 74 28 26 71 75 6f 74 3b 48 65 6c 6c 6f 3f 26 71 75 6f omment">//print(&quot;Hello?&quo
c0a0 74 3b 2c 20 2e 7b 7d 29 3b 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 t;,..{});</span>......print(<spa
c0c0 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 6c 6c 6f 2c 20 77 n.class="tok-str">&quot;Hello,.w
c0e0 6f 72 6c 64 21 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 7d 29 3b 20 3c 73 70 61 orld!\n&quot;</span>,..{});.<spa
c100 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 6e 6f 74 68 65 72 n.class="tok-comment">//.another
c120 20 63 6f 6d 6d 65 6e 74 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f .comment</span>.}</code></pre></
c140 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 figure><figure><figcaption.class
c160 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ="shell-cap">Shell</figcaption><
c180 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 63 pre><samp>$.<kbd>zig.build-exe.c
c1a0 6f 6d 6d 65 6e 74 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 63 6f 6d 6d 65 omments.zig</kbd>.$.<kbd>./comme
c1c0 6e 74 73 3c 2f 6b 62 64 3e 0a 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a 3c 2f 73 61 6d 70 3e 3c nts</kbd>.Hello,.world!.</samp><
c1e0 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 /pre></figure>.......<p>.......T
c200 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 73 20 69 here.are.no.multiline.comments.i
c220 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 22 63 22 n.Zig.(e.g..like.<code.class="c"
c240 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 69 6e 20 >/*.*/</code>.......comments.in.
c260 43 29 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 5a 69 67 20 74 6f 20 68 61 76 65 20 74 68 65 C)...This.allows.Zig.to.have.the
c280 20 70 72 6f 70 65 72 74 79 20 74 68 61 74 20 65 61 63 68 20 6c 69 6e 65 0a 20 20 20 20 20 20 6f .property.that.each.line.......o
c2a0 66 20 63 6f 64 65 20 63 61 6e 20 62 65 20 74 6f 6b 65 6e 69 7a 65 64 20 6f 75 74 20 6f 66 20 63 f.code.can.be.tokenized.out.of.c
c2c0 6f 6e 74 65 78 74 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 ontext........</p>.......<h3.id=
c2e0 22 44 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d "Doc-Comments"><a.href="nav.xhtm
c300 6c 23 74 6f 63 2d 44 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 3e 44 6f 63 20 43 6f 6d 6d 65 6e 74 73 l#toc-Doc-Comments">Doc.Comments
c320 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 44 6f 63 2d 43 </a>.<a.class="hdr".href="#Doc-C
c340 6f 6d 6d 65 6e 74 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 omments">..</a></h3>........<p>.
c360 20 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 ......A.doc.comment.is.one.that.
c380 62 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 begins.with.exactly.three.slashe
c3a0 73 20 28 69 2e 65 2e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d s.(i.e........<code><span.class=
c3c0 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 "tok-comment">///</span></code>.
c3e0 62 75 74 20 6e 6f 74 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 but.not.<code><span.class="tok-c
c400 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 2f 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 3b 0a 20 20 20 omment">////</span></code>);....
c420 20 20 20 6d 75 6c 74 69 70 6c 65 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 61 20 72 6f ...multiple.doc.comments.in.a.ro
c440 77 20 61 72 65 20 6d 65 72 67 65 64 20 74 6f 67 65 74 68 65 72 20 74 6f 20 66 6f 72 6d 20 61 20 w.are.merged.together.to.form.a.
c460 6d 75 6c 74 69 6c 69 6e 65 0a 20 20 20 20 20 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 2e 20 20 54 68 multiline.......doc.comment...Th
c480 65 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 20 64 6f 63 75 6d 65 6e 74 73 20 77 68 61 74 65 76 65 72 e.doc.comment.documents.whatever
c4a0 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 66 6f 6c 6c 6f 77 73 20 69 74 2e 0a 20 20 20 20 20 20 3c .immediately.follows.it........<
c4c0 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c /p>.......<figure><figcaption.cl
c4e0 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
c500 3e 64 6f 63 5f 63 6f 6d 6d 65 6e 74 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 >doc_comments.zig</cite></figcap
c520 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
c540 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 41 20 73 74 72 75 63 74 75 72 65 20 66 6f 72 20 73 74 -comment">///.A.structure.for.st
c560 6f 72 69 6e 67 20 61 20 74 69 6d 65 73 74 61 6d 70 2c 20 77 69 74 68 20 6e 61 6e 6f 73 65 63 6f oring.a.timestamp,.with.nanoseco
c580 6e 64 20 70 72 65 63 69 73 69 6f 6e 20 28 74 68 69 73 20 69 73 20 61 3c 2f 73 70 61 6e 3e 0a 3c nd.precision.(this.is.a</span>.<
c5a0 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 20 6d 75 6c span.class="tok-comment">///.mul
c5c0 74 69 6c 69 6e 65 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 29 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 tiline.doc.comment).</span>.<spa
c5e0 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 54 69 n.class="tok-kw">const</span>.Ti
c600 6d 65 73 74 61 6d 70 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 mestamp.=.<span.class="tok-kw">s
c620 74 72 75 63 74 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 truct</span>.{.....<span.class="
c640 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 20 73 tok-comment">///.The.number.of.s
c660 65 63 6f 6e 64 73 20 73 69 6e 63 65 20 74 68 65 20 65 70 6f 63 68 20 28 74 68 69 73 20 69 73 20 econds.since.the.epoch.(this.is.
c680 61 6c 73 6f 20 61 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 29 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 also.a.doc.comment).</span>.....
c6a0 73 65 63 6f 6e 64 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 seconds:.<span.class="tok-type">
c6c0 69 36 34 3c 2f 73 70 61 6e 3e 2c 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f i64</span>,..<span.class="tok-co
c6e0 6d 6d 65 6e 74 22 3e 2f 2f 20 73 69 67 6e 65 64 20 73 6f 20 77 65 20 63 61 6e 20 72 65 70 72 65 mment">//.signed.so.we.can.repre
c700 73 65 6e 74 20 70 72 65 2d 31 39 37 30 20 28 6e 6f 74 20 61 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 sent.pre-1970.(not.a.doc.comment
c720 29 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
c740 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6e 61 6e 6f 73 65 63 mment">///.The.number.of.nanosec
c760 6f 6e 64 73 20 70 61 73 74 20 74 68 65 20 73 65 63 6f 6e 64 20 28 64 6f 63 20 63 6f 6d 6d 65 6e onds.past.the.second.(doc.commen
c780 74 20 61 67 61 69 6e 29 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 6e 61 6e 6f 73 3a 20 3c 73 70 61 t.again).</span>.....nanos:.<spa
c7a0 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 0a 0a n.class="tok-type">u32</span>,..
c7c0 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">//
c7e0 2f 20 52 65 74 75 72 6e 73 20 61 20 60 54 69 6d 65 73 74 61 6d 70 60 20 73 74 72 75 63 74 20 72 /.Returns.a.`Timestamp`.struct.r
c800 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 55 6e 69 78 20 65 70 6f 63 68 3b 20 74 68 61 74 epresenting.the.Unix.epoch;.that
c820 20 69 73 2c 20 74 68 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .is,.the</span>.....<span.class=
c840 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 6d 6f 6d 65 6e 74 20 6f 66 20 31 39 37 30 "tok-comment">///.moment.of.1970
c860 20 4a 61 6e 20 31 20 30 30 3a 30 30 3a 30 30 20 55 54 43 20 28 74 68 69 73 20 69 73 20 61 20 64 .Jan.1.00:00:00.UTC.(this.is.a.d
c880 6f 63 20 63 6f 6d 6d 65 6e 74 20 74 6f 6f 29 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 oc.comment.too).</span>.....<spa
c8a0 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
c8c0 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
c8e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 75 6e 69 78 45 70 6f 63 68 3c 2f 73 70 61 6e 3e .class="tok-fn">unixEpoch</span>
c900 28 29 20 54 69 6d 65 73 74 61 6d 70 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ().Timestamp.{.........<span.cla
c920 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 54 69 6d 65 73 74 ss="tok-kw">return</span>.Timest
c940 61 6d 70 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 73 65 63 6f 6e 64 73 20 3d 20 3c 73 70 61 amp{..............seconds.=.<spa
c960 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>,..
c980 20 20 20 20 20 20 20 20 20 20 20 2e 6e 61 6e 6f 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ............nanos.=.<span.class=
c9a0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 7d "tok-number">0</span>,.........}
c9c0 3b 0a 20 20 20 20 7d 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e ;.....}.};</code></pre></figure>
c9e0 0a 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 .......<p>.......Doc.comments.ar
ca00 65 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 e.only.allowed.in.certain.places
ca20 3b 20 69 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 74 6f 0a 20 20 20 20 20 ;.it.is.a.compile.error.to......
ca40 20 68 61 76 65 20 61 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 20 69 6e 20 61 6e 20 75 6e 65 78 70 65 .have.a.doc.comment.in.an.unexpe
ca60 63 74 65 64 20 70 6c 61 63 65 2c 20 73 75 63 68 20 61 73 20 69 6e 20 74 68 65 20 6d 69 64 64 6c cted.place,.such.as.in.the.middl
ca80 65 20 6f 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c 0a 20 20 20 20 20 20 6f 72 20 6a 75 73 e.of.an.expression,.......or.jus
caa0 74 20 62 65 66 6f 72 65 20 61 20 6e 6f 6e 2d 64 6f 63 20 63 6f 6d 6d 65 6e 74 2e 0a 20 20 20 20 t.before.a.non-doc.comment......
cac0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
cae0 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
cb00 6c 65 22 3e 69 6e 76 61 6c 69 64 5f 64 6f 63 2d 63 6f 6d 6d 65 6e 74 2e 7a 69 67 3c 2f 63 69 74 le">invalid_doc-comment.zig</cit
cb20 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
cb40 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 64 6f 63 2d 63 6f 6d 6d class="tok-comment">///.doc-comm
cb60 65 6e 74 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 ent</span>.<span.class="tok-comm
cb80 65 6e 74 22 3e 2f 2f 21 20 74 6f 70 2d 6c 65 76 65 6c 20 64 6f 63 2d 63 6f 6d 6d 65 6e 74 3c 2f ent">//!.top-level.doc-comment</
cba0 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
cbc0 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
cbe0 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
cc00 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
cc20 61 6e 3e 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 an>);</code></pre></figure><figu
cc40 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 re><figcaption.class="shell-cap"
cc60 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 >Shell</figcaption><pre><samp>$.
cc80 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 69 6e 76 61 6c 69 64 5f 64 6f 63 2d 63 <kbd>zig.build-obj.invalid_doc-c
cca0 6f 6d 6d 65 6e 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 omment.zig</kbd>.<span.class="sg
ccc0 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 69 6e 76 61 6c 69 64 5f 64 6f 63 2d 63 6f 6d r-1m">docgen_tmp/invalid_doc-com
cce0 6d 65 6e 74 2e 7a 69 67 3a 31 3a 31 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 ment.zig:1:16:.</span><span.clas
cd00 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 s="sgr-31m">error:.</span><span.
cd20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 65 78 70 65 63 74 65 64 20 74 79 70 65 20 65 78 70 class="sgr-1m">expected.type.exp
cd40 72 65 73 73 69 6f 6e 2c 20 66 6f 75 6e 64 20 27 61 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6d 6d 65 ression,.found.'a.document.comme
cd60 6e 74 27 0a 3c 2f 73 70 61 6e 3e 2f 2f 2f 20 64 6f 63 2d 63 6f 6d 6d 65 6e 74 0a 20 20 20 20 20 nt'.</span>///.doc-comment......
cd80 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e ..........<span.class="sgr-32m">
cda0 5e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e ^.</span>.</samp></pre></figure>
cdc0 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 .......<figure><figcaption.class
cde0 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 75 6e ="zig-cap"><cite.class="file">un
ce00 61 74 74 61 63 68 65 64 5f 64 6f 63 2d 63 6f 6d 6d 65 6e 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c attached_doc-comment.zig</cite><
ce20 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /figcaption><pre><code><span.cla
ce40 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
ce60 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
ce80 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
cea0 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 0a lass="tok-type">void</span>.{}..
cec0 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 20 45 6e <span.class="tok-comment">///.En
cee0 64 20 6f 66 20 66 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 d.of.file</span></code></pre></f
cf00 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d igure><figure><figcaption.class=
cf20 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 "shell-cap">Shell</figcaption><p
cf40 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 75 6e re><samp>$.<kbd>zig.build-obj.un
cf60 61 74 74 61 63 68 65 64 5f 64 6f 63 2d 63 6f 6d 6d 65 6e 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c attached_doc-comment.zig</kbd>.<
cf80 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 75 span.class="sgr-1m">docgen_tmp/u
cfa0 6e 61 74 74 61 63 68 65 64 5f 64 6f 63 2d 63 6f 6d 6d 65 6e 74 2e 7a 69 67 3a 33 3a 31 3a 20 3c nattached_doc-comment.zig:3:1:.<
cfc0 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f /span><span.class="sgr-31m">erro
cfe0 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 75 r:.</span><span.class="sgr-1m">u
d000 6e 61 74 74 61 63 68 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 63 6f 6d 6d 65 6e 74 0a nattached.documentation.comment.
d020 3c 2f 73 70 61 6e 3e 2f 2f 2f 20 45 6e 64 20 6f 66 20 66 69 6c 65 0a 3c 73 70 61 6e 20 63 6c 61 </span>///.End.of.file.<span.cla
d040 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 ss="sgr-32m">^~~~~~~~~~~~~~~.</s
d060 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 pan>.</samp></pre></figure>.....
d080 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 63 61 6e 20 62 65 20 ..<p>.......Doc.comments.can.be.
d0a0 69 6e 74 65 72 6c 65 61 76 65 64 20 77 69 74 68 20 6e 6f 72 6d 61 6c 20 63 6f 6d 6d 65 6e 74 73 interleaved.with.normal.comments
d0c0 2e 20 43 75 72 72 65 6e 74 6c 79 2c 20 77 68 65 6e 20 70 72 6f 64 75 63 69 6e 67 0a 20 20 20 20 ..Currently,.when.producing.....
d0e0 20 20 74 68 65 20 70 61 63 6b 61 67 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2c 20 6e 6f 72 ..the.package.documentation,.nor
d100 6d 61 6c 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 6d 65 72 67 65 64 20 77 69 74 68 20 64 6f 63 mal.comments.are.merged.with.doc
d120 20 63 6f 6d 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 .comments........</p>...........
d140 20 20 20 3c 68 33 20 69 64 3d 22 54 6f 70 2d 4c 65 76 65 6c 2d 44 6f 63 2d 43 6f 6d 6d 65 6e 74 ...<h3.id="Top-Level-Doc-Comment
d160 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 6f 70 2d 4c 65 s"><a.href="nav.xhtml#toc-Top-Le
d180 76 65 6c 2d 44 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 3e 54 6f 70 2d 4c 65 76 65 6c 20 44 6f 63 20 vel-Doc-Comments">Top-Level.Doc.
d1a0 43 6f 6d 6d 65 6e 74 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 Comments</a>.<a.class="hdr".href
d1c0 3d 22 23 54 6f 70 2d 4c 65 76 65 6c 2d 44 6f 63 2d 43 6f 6d 6d 65 6e 74 73 22 3e c2 a7 3c 2f 61 ="#Top-Level-Doc-Comments">..</a
d1e0 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 74 6f 70 2d 6c 65 ></h3>........<p>.......A.top-le
d200 76 65 6c 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 65 67 69 vel.doc.comment.is.one.that.begi
d220 6e 73 20 77 69 74 68 20 74 77 6f 20 73 6c 61 73 68 65 73 20 61 6e 64 20 61 6e 20 65 78 63 6c 61 ns.with.two.slashes.and.an.excla
d240 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 70 6f 69 6e 74 3a 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 mation.......point:.<code><span.
d260 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 21 3c 2f 73 70 61 6e 3e 3c 2f class="tok-comment">//!</span></
d280 63 6f 64 65 3e 3b 20 69 74 20 64 6f 63 75 6d 65 6e 74 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 code>;.it.documents.the.current.
d2a0 6d 6f 64 75 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 module........</p>.......<p>....
d2c0 20 20 20 49 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 61 20 74 6f ...It.is.a.compile.error.if.a.to
d2e0 70 2d 6c 65 76 65 6c 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 20 69 73 20 6e 6f 74 20 70 6c 61 63 65 p-level.doc.comment.is.not.place
d300 64 20 61 74 20 74 68 65 20 73 74 61 72 74 0a 20 20 20 20 20 20 6f 66 20 61 20 3c 61 20 68 72 65 d.at.the.start.......of.a.<a.hre
d320 66 3d 22 23 43 6f 6e 74 61 69 6e 65 72 73 22 3e 63 6f 6e 74 61 69 6e 65 72 3c 2f 61 3e 2c 20 62 f="#Containers">container</a>,.b
d340 65 66 6f 72 65 20 61 6e 79 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 efore.any.expressions........</p
d360 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 >.......<figure><figcaption.clas
d380 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 s="zig-cap"><cite.class="file">t
d3a0 6c 64 6f 63 5f 63 6f 6d 6d 65 6e 74 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 ldoc_comments.zig</cite></figcap
d3c0 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
d3e0 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 21 20 54 68 69 73 20 6d 6f 64 75 6c 65 20 70 72 6f 76 69 64 -comment">//!.This.module.provid
d400 65 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 72 65 74 72 69 65 76 69 6e 67 20 74 68 65 20 es.functions.for.retrieving.the.
d420 63 75 72 72 65 6e 74 20 64 61 74 65 20 61 6e 64 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c current.date.and</span>.<span.cl
d440 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 21 20 74 69 6d 65 20 77 69 74 68 20 ass="tok-comment">//!.time.with.
d460 76 61 72 79 69 6e 67 20 64 65 67 72 65 65 73 20 6f 66 20 70 72 65 63 69 73 69 6f 6e 20 61 6e 64 varying.degrees.of.precision.and
d480 20 61 63 63 75 72 61 63 79 2e 20 49 74 20 64 6f 65 73 20 6e 6f 74 3c 2f 73 70 61 6e 3e 0a 3c 73 .accuracy..It.does.not</span>.<s
d4a0 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 21 20 64 65 70 65 pan.class="tok-comment">//!.depe
d4c0 6e 64 20 6f 6e 20 6c 69 62 63 2c 20 62 75 74 20 77 69 6c 6c 20 75 73 65 20 66 75 6e 63 74 69 6f nd.on.libc,.but.will.use.functio
d4e0 6e 73 20 66 72 6f 6d 20 69 74 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 3c 2f 73 70 61 6e 3e 0a ns.from.it.if.available.</span>.
d500 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
d520 6e 3e 20 53 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 n>.S.=.<span.class="tok-kw">stru
d540 63 74 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 ct</span>.{.....<span.class="tok
d560 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 21 20 54 6f 70 20 6c 65 76 65 6c 20 63 6f 6d 6d 65 6e 74 73 -comment">//!.Top.level.comments
d580 20 61 72 65 20 61 6c 6c 6f 77 65 64 20 69 6e 73 69 64 65 20 61 20 63 6f 6e 74 61 69 6e 65 72 20 .are.allowed.inside.a.container.
d5a0 6f 74 68 65 72 20 74 68 61 6e 20 61 20 6d 6f 64 75 6c 65 2c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 other.than.a.module,</span>.....
d5c0 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 21 20 62 75 <span.class="tok-comment">//!.bu
d5e0 74 20 69 74 20 69 73 20 6e 6f 74 20 76 65 72 79 20 75 73 65 66 75 6c 2e 20 20 43 75 72 72 65 6e t.it.is.not.very.useful...Curren
d600 74 6c 79 2c 20 77 68 65 6e 20 70 72 6f 64 75 63 69 6e 67 20 74 68 65 20 70 61 63 6b 61 67 65 3c tly,.when.producing.the.package<
d620 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
d640 65 6e 74 22 3e 2f 2f 21 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2c 20 74 68 65 73 65 20 63 6f ent">//!.documentation,.these.co
d660 6d 6d 65 6e 74 73 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 3c 2f 73 70 61 6e 3e 0a 7d 3b 3c 2f 63 mments.are.ignored.</span>.};</c
d680 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 ode></pre></figure>.............
d6a0 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 56 61 6c 75 65 73 22 3e 3c 61 20 68 72 65 66 3d ........<h2.id="Values"><a.href=
d6c0 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 56 61 6c 75 65 73 22 3e 56 61 6c 75 65 73 3c 2f 61 "nav.xhtml#toc-Values">Values</a
d6e0 3e 20 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 >.<a.class="hdr".href="#Values">
d700 c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ..</a></h2>........<figure><figc
d720 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 aption.class="zig-cap"><cite.cla
d740 73 73 3d 22 66 69 6c 65 22 3e 76 61 6c 75 65 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 ss="file">values.zig</cite></fig
d760 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
d780 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 6f 70 2d 6c 65 76 65 6c 20 64 65 63 6c 61 72 tok-comment">//.Top-level.declar
d7a0 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 65 6e 74 3a 3c 2f 73 ations.are.order-independent:</s
d7c0 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<
d7e0 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a /span>.print.=.std.debug.print;.
d800 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
d820 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 6e >.std.=.<span.class="tok-builtin
d840 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
d860 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 0a k-str">&quot;std&quot;</span>);.
d880 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
d8a0 3e 20 6f 73 20 3d 20 73 74 64 2e 6f 73 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >.os.=.std.os;.<span.class="tok-
d8c0 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 65 kw">const</span>.assert.=.std.de
d8e0 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
d900 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
d920 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"
d940 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-
d960 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
d980 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 6e 74 65 67 65 72 73 3c 2f 73 ass="tok-comment">//.integers</s
d9a0 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 6f pan>.....<span.class="tok-kw">co
d9c0 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 6e 65 5f 70 6c 75 73 5f 6f 6e 65 3a 20 3c 73 70 61 6e 20 63 nst</span>.one_plus_one:.<span.c
d9e0 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 70 lass="tok-type">i32</span>.=.<sp
da00 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 2b an.class="tok-number">1</span>.+
da20 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
da40 6e 3e 3b 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 n>;.....print(<span.class="tok-s
da60 74 72 22 3e 26 71 75 6f 74 3b 31 20 2b 20 31 20 3d 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 tr">&quot;1.+.1.=.{}\n&quot;</sp
da80 61 6e 3e 2c 20 2e 7b 6f 6e 65 5f 70 6c 75 73 5f 6f 6e 65 7d 29 3b 0a 0a 20 20 20 20 3c 73 70 61 an>,..{one_plus_one});......<spa
daa0 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 6c 6f 61 74 73 3c n.class="tok-comment">//.floats<
dac0 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">
dae0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 65 76 65 6e 5f 64 69 76 5f 74 68 72 65 65 3a 20 3c 73 const</span>.seven_div_three:.<s
db00 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>.
db20 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 37 2e 30 3c 2f =.<span.class="tok-number">7.0</
db40 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 75 6d 62 65 72 22 span>./.<span.class="tok-number"
db60 3e 33 2e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 >3.0</span>;.....print(<span.cla
db80 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 37 2e 30 20 2f 20 33 2e 30 20 3d 20 7b ss="tok-str">&quot;7.0./.3.0.=.{
dba0 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 73 65 76 65 6e 5f 64 69 76 5f 74 68 }\n&quot;</span>,..{seven_div_th
dbc0 72 65 65 7d 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 ree});......<span.class="tok-com
dbe0 6d 65 6e 74 22 3e 2f 2f 20 62 6f 6f 6c 65 61 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e ment">//.boolean</span>.....prin
dc00 74 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 t(<span.class="tok-str">&quot;{}
dc20 5c 6e 7b 7d 5c 6e 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 0a 20 20 20 20 \n{}\n{}\n&quot;</span>,..{.....
dc40 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 74 72 75 65 3c ....<span.class="tok-null">true<
dc60 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 6e 64 3c /span>.<span.class="tok-kw">and<
dc80 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 3e 66 61 /span>.<span.class="tok-null">fa
dca0 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 6c 61 73 73 3d lse</span>,.........<span.class=
dcc0 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 6e 20 63 6c 61 "tok-null">true</span>.<span.cla
dce0 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 20 63 6c 61 73 ss="tok-kw">or</span>.<span.clas
dd00 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 20 20 20 20 s="tok-null">false</span>,......
dd20 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 74 72 75 65 3c ...!<span.class="tok-null">true<
dd40 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 /span>,.....});......<span.class
dd60 3d 22 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 ="tok-comment">//.optional</span
dd80 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</
dda0 73 70 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 span>.optional_value:.?[]<span.c
ddc0 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
dde0 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 3c 73 .class="tok-type">u8</span>.=.<s
de00 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>
de20 3b 0a 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 ;.....assert(optional_value.==.<
de40 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
de60 3e 29 3b 0a 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >);......print(<span.class="tok-
de80 73 74 72 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 str">&quot;\noptional.1\ntype:.{
dea0 7d 5c 6e 76 61 6c 75 65 3a 20 7b 3f 73 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e }\nvalue:.{?s}\n&quot;</span>,..
dec0 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 62 75 69 6c 74 {.........<span.class="tok-built
dee0 69 6e 22 3e 40 54 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 in">@TypeOf</span>(optional_valu
df00 65 29 2c 20 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 2c 0a 20 20 20 20 7d 29 3b 0a 0a 20 20 20 e),.optional_value,.....});.....
df20 20 6f 70 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 .optional_value.=.<span.class="t
df40 6f 6b 2d 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 ok-str">&quot;hi&quot;</span>;..
df60 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 21 3d 20 3c 73 70 61 ...assert(optional_value.!=.<spa
df80 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 3b n.class="tok-null">null</span>);
dfa0 0a 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 ......print(<span.class="tok-str
dfc0 22 3e 26 71 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 ">&quot;\noptional.2\ntype:.{}\n
dfe0 76 61 6c 75 65 3a 20 7b 3f 73 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 0a 20 value:.{?s}\n&quot;</span>,..{..
e000 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"
e020 3e 40 54 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 29 2c >@TypeOf</span>(optional_value),
e040 20 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 2c 0a 20 20 20 20 7d 29 3b 0a 0a 20 20 20 20 3c 73 .optional_value,.....});......<s
e060 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 72 72 6f 72 pan.class="tok-comment">//.error
e080 20 75 6e 69 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 .union</span>.....<span.class="t
e0a0 6f 6b 2d 6b 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 ok-kw">var</span>.number_or_erro
e0c0 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 65 72 72 r:.<span.class="tok-type">anyerr
e0e0 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 22 or</span>!<span.class="tok-type"
e100 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 6b >i32</span>.=.<span.class="tok-k
e120 77 22 3e 65 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 w">error</span>.ArgNotFound;....
e140 20 20 70 72 69 6e 74 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 ..print(<span.class="tok-str">&q
e160 75 6f 74 3b 5c 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 uot;\nerror.union.1\ntype:.{}\nv
e180 61 6c 75 65 3a 20 7b 21 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 0a 20 20 20 alue:.{!}\n&quot;</span>,..{....
e1a0 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">@
e1c0 54 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 2c 20 TypeOf</span>(number_or_error),.
e1e0 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 2c 20 7d 29 3b 0a 0a 20 20 20 20 6e 75 6d 62 65 72 number_or_error,.});......number
e200 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
e220 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 ber">1234</span>;......print(<sp
e240 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 65 72 72 6f 72 an.class="tok-str">&quot;\nerror
e260 20 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 21 7d 5c 6e .union.2\ntype:.{}\nvalue:.{!}\n
e280 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 &quot;</span>,..{.........<span.
e2a0 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 4f 66 3c 2f 73 70 61 class="tok-builtin">@TypeOf</spa
e2c0 6e 3e 28 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 29 2c 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 n>(number_or_error),.number_or_e
e2e0 72 72 6f 72 2c 0a 20 20 20 20 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 rror,.....});.}</code></pre></fi
e300 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
e320 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
e340 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 76 61 6c e><samp>$.<kbd>zig.build-exe.val
e360 75 65 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 76 61 6c 75 65 73 3c 2f 6b ues.zig</kbd>.$.<kbd>./values</k
e380 62 64 3e 0a 31 20 2b 20 31 20 3d 20 32 0a 37 2e 30 20 2f 20 33 2e 30 20 3d 20 32 2e 33 33 33 33 bd>.1.+.1.=.2.7.0./.3.0.=.2.3333
e3a0 33 33 33 65 30 0a 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 333e0.false.true.false..optional
e3c0 20 31 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 6e 75 6c 6c .1.type:.?[]const.u8.value:.null
e3e0 0a 0a 6f 70 74 69 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 ..optional.2.type:.?[]const.u8.v
e400 61 6c 75 65 3a 20 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 alue:.hi..error.union.1.type:.an
e420 79 65 72 72 6f 72 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 yerror!i32.value:.error.ArgNotFo
e440 75 6e 64 0a 0a 65 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 und..error.union.2.type:.anyerro
e460 72 21 69 33 32 0a 76 61 6c 75 65 3a 20 31 32 33 34 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c r!i32.value:.1234.</samp></pre><
e480 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 50 72 69 6d 69 74 69 76 65 /figure>.......<h3.id="Primitive
e4a0 2d 54 79 70 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 50 -Types"><a.href="nav.xhtml#toc-P
e4c0 72 69 6d 69 74 69 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 rimitive-Types">Primitive.Types<
e4e0 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 72 69 6d 69 74 /a>.<a.class="hdr".href="#Primit
e500 69 76 65 2d 54 79 70 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 64 ive-Types">..</a></h3>........<d
e520 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 20 20 20 20 20 iv.class="table-wrapper">.......
e540 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 63 61 70 74 69 6f 6e 3e 50 72 69 6d 69 74 69 <table>.........<caption>Primiti
e560 76 65 20 54 79 70 65 73 3c 2f 63 61 70 74 69 6f 6e 3e 0a 20 20 20 20 20 20 20 20 3c 74 68 65 61 ve.Types</caption>.........<thea
e580 64 3e 0a 20 20 20 20 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 d>.............<tr>.............
e5a0 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 54 79 70 65 3c 2f 74 68 3e 0a 20 20 20 20 20 20 <th.scope="col">Type</th>.......
e5c0 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 43 20 45 71 75 69 76 61 6c 65 ......<th.scope="col">C.Equivale
e5e0 6e 74 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 nt</th>.............<th.scope="c
e600 6f 6c 22 3e 44 65 73 63 72 69 70 74 69 6f 6e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 ol">Description</th>.........</t
e620 72 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 68 65 61 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 62 6f r>.........</thead>.........<tbo
e640 64 79 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 68 dy>.........<tr>.............<th
e660 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .scope="row"><code><span.class="
e680 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 3e 3c 2f 74 68 3e 0a tok-type">i8</span></code></th>.
e6a0 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
e6c0 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 20 20 3c 74 64 3e 73 t8_t</code></td>...........<td>s
e6e0 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 20 20 20 20 20 20 20 igned.8-bit.integer</td>........
e700 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 20 .</tr>.........<tr>.............
e720 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 <th.scope="row"><code><span.clas
e740 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 65 3e 3c 2f 74 s="tok-type">u8</span></code></t
e760 68 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 h>...........<td><code.class="c"
e780 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 20 20 20 20 20 20 3c >uint8_t</code></td>...........<
e7a0 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 3c 2f 74 64 3e 0a 20 td>unsigned.8-bit.integer</td>..
e7c0 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 20 .......</tr>.........<tr>.......
e7e0 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 ......<th.scope="row"><code><spa
e800 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 70 61 6e 3e 3c 2f 63 n.class="tok-type">i16</span></c
e820 6f 64 65 3e 3c 2f 74 68 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></th>...........<td><code.cl
e840 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 64 3e 0a 20 20 20 20 ass="c">int16_t</code></td>.....
e860 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 6e 74 65 67 65 72 3c ......<td>signed.16-bit.integer<
e880 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>.
e8a0 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 ............<th.scope="row"><cod
e8c0 65 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 31 36 3c 2f 73 70 e><span.class="tok-type">u16</sp
e8e0 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 an></code></th>...........<td><c
e900 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 6f 64 65 3e 3c 2f 74 ode.class="c">uint16_t</code></t
e920 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 36 2d 62 69 74 d>...........<td>unsigned.16-bit
e940 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 20 20 .integer</td>.........</tr>.....
e960 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 ....<tr>.............<th.scope="
e980 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 row"><code><span.class="tok-type
e9a0 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 ">i32</span></code></th>........
e9c0 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 33 32 5f 74 3c 2f ...<td><code.class="c">int32_t</
e9e0 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 67 6e 65 64 20 code></td>...........<td>signed.
ea00 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 20 20 20 3c 2f 74 72 32-bit.integer</td>.........</tr
ea20 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 68 20 73 >.........<tr>.............<th.s
ea40 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f cope="row"><code><span.class="to
ea60 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 3c 2f 74 68 3e 0a 20 k-type">u32</span></code></th>..
ea80 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 75 69 6e .........<td><code.class="c">uin
eaa0 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>
eac0 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 74 64 3e 0a 20 20 20 unsigned.32-bit.integer</td>....
eae0 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>.........
eb00 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 ....<th.scope="row"><code><span.
eb20 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 3c 2f 63 6f 64 class="tok-type">i64</span></cod
eb40 65 3e 3c 2f 74 68 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></th>...........<td><code.clas
eb60 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 0a 20 20 20 20 20 20 s="c">int64_t</code></td>.......
eb80 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 65 67 65 72 3c 2f 74 ....<td>signed.64-bit.integer</t
eba0 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>...
ebc0 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e ..........<th.scope="row"><code>
ebe0 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 61 6e <span.class="tok-type">u64</span
ec00 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 ></code></th>...........<td><cod
ec20 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 65 3e 3c 2f 74 64 3e e.class="c">uint64_t</code></td>
ec40 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 34 2d 62 69 74 20 69 ...........<td>unsigned.64-bit.i
ec60 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>.......
ec80 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f ..<tr>.............<th.scope="ro
eca0 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e w"><code><span.class="tok-type">
ecc0 69 31 32 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 i128</span></code></th>.........
ece0 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 6e 74 31 32 38 3c 2f ..<td><code.class="c">__int128</
ed00 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 67 6e 65 64 20 code></td>...........<td>signed.
ed20 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 20 20 20 20 3c 2f 74 128-bit.integer</td>.........</t
ed40 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 68 20 r>.........<tr>.............<th.
ed60 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 scope="row"><code><span.class="t
ed80 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 65 3e 3c 2f 74 68 3e ok-type">u128</span></code></th>
eda0 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 3e 75 ...........<td><code.class="c">u
edc0 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 74 64 3e 0a 20 20 20 nsigned.__int128</code></td>....
ede0 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 69 74 20 69 6e 74 65 .......<td>unsigned.128-bit.inte
ee00 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 3c ger</td>.........</tr>.........<
ee20 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e tr>.............<th.scope="row">
ee40 3c 63 6f 64 65 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 73 69 <code><span.class="tok-type">isi
ee60 7a 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 ze</span></code></th>...........
ee80 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 72 5f 74 3c 2f 63 6f <td><code.class="c">intptr_t</co
eea0 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 67 6e 65 64 20 70 6f de></td>...........<td>signed.po
eec0 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 20 20 20 20 20 20 20 inter.sized.integer</td>........
eee0 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 20 .</tr>.........<tr>.............
ef00 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 <th.scope="row"><code><span.clas
ef20 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>
ef40 3c 2f 74 68 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 </th>...........<td><code.class=
ef60 22 63 22 3e 75 69 6e 74 70 74 72 5f 74 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 20 63 6c 61 73 "c">uintptr_t</code>,.<code.clas
ef80 73 3d 22 63 22 3e 73 69 7a 65 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 s="c">size_t</code></td>........
efa0 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 73 69 7a 65 64 20 69 6e ...<td>unsigned.pointer.sized.in
efc0 74 65 67 65 72 2e 20 41 6c 73 6f 20 73 65 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f teger..Also.see.<a.href="https:/
efe0 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 35 /github.com/ziglang/zig/issues/5
f000 31 38 35 22 3e 23 35 31 38 35 3c 2f 61 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 185">#5185</a></td>.........</tr
f020 3e 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 68 20 >..........<tr>.............<th.
f040 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 scope="row"><code><span.class="t
f060 6f 6b 2d 74 79 70 65 22 3e 63 5f 63 68 61 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 ok-type">c_char</span></code></t
f080 68 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 h>...........<td><code.class="c"
f0a0 3e 63 68 61 72 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 >char</code></td>...........<td>
f0c0 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 64 for.ABI.compatibility.with.C</td
f0e0 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>....
f100 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c .........<th.scope="row"><code><
f120 73 70 61 6e 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 span.class="tok-type">c_short</s
f140 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c pan></code></th>...........<td><
f160 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e code.class="c">short</code></td>
f180 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 61 74 69 62 69 ...........<td>for.ABI.compatibi
f1a0 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 74 72 3e 0a 20 lity.with.C</td>.........</tr>..
f1c0 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 68 20 73 63 6f 70 .......<tr>.............<th.scop
f1e0 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 e="row"><code><span.class="tok-t
f200 79 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 74 68 3e ype">c_ushort</span></code></th>
f220 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 3e 75 ...........<td><code.class="c">u
f240 6e 73 69 67 6e 65 64 20 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 nsigned.short</code></td>.......
f260 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 69 74 79 20 77 69 ....<td>for.ABI.compatibility.wi
f280 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 20 20 20 20 20 20 th.C</td>.........</tr>.........
f2a0 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 <tr>.............<th.scope="row"
f2c0 3e 3c 63 6f 64 65 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 ><code><span.class="tok-type">c_
f2e0 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 int</span></code></th>..........
f300 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 69 6e 74 3c 2f 63 6f 64 65 3e 3c .<td><code.class="c">int</code><
f320 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 61 /td>...........<td>for.ABI.compa
f340 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 74 tibility.with.C</td>.........</t
f360 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 68 20 r>.........<tr>.............<th.
f380 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 scope="row"><code><span.class="t
f3a0 6f 6b 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 74 ok-type">c_uint</span></code></t
f3c0 68 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 h>...........<td><code.class="c"
f3e0 3e 75 6e 73 69 67 6e 65 64 20 69 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 >unsigned.int</code></td>.......
f400 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 69 74 79 20 77 69 ....<td>for.ABI.compatibility.wi
f420 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 20 20 20 20 20 20 th.C</td>.........</tr>.........
f440 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 <tr>.............<th.scope="row"
f460 3e 3c 63 6f 64 65 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 ><code><span.class="tok-type">c_
f480 6c 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 long</span></code></th>.........
f4a0 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 6c 6f 6e 67 3c 2f 63 6f 64 65 ..<td><code.class="c">long</code
f4c0 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 49 20 63 6f 6d ></td>...........<td>for.ABI.com
f4e0 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 20 20 20 20 3c patibility.with.C</td>.........<
f500 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
f520 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d h.scope="row"><code><span.class=
f540 22 74 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 "tok-type">c_ulong</span></code>
f560 3c 2f 74 68 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 </th>...........<td><code.class=
f580 22 63 22 3e 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 "c">unsigned.long</code></td>...
f5a0 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 69 74 ........<td>for.ABI.compatibilit
f5c0 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 20 20 y.with.C</td>.........</tr>.....
f5e0 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 ....<tr>.............<th.scope="
f600 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 row"><code><span.class="tok-type
f620 22 3e 63 5f 6c 6f 6e 67 6c 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a ">c_longlong</span></code></th>.
f640 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 6c 6f ..........<td><code.class="c">lo
f660 6e 67 20 6c 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 ng.long</code></td>...........<t
f680 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 43 3c 2f d>for.ABI.compatibility.with.C</
f6a0 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>..
f6c0 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 ...........<th.scope="row"><code
f6e0 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 6c 6f 6e 67 6c ><span.class="tok-type">c_ulongl
f700 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 ong</span></code></th>..........
f720 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 6f .<td><code.class="c">unsigned.lo
f740 6e 67 20 6c 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 ng.long</code></td>...........<t
f760 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 43 3c 2f d>for.ABI.compatibility.with.C</
f780 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>..
f7a0 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 ...........<th.scope="row"><code
f7c0 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 64 6f ><span.class="tok-type">c_longdo
f7e0 75 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 uble</span></code></th>.........
f800 20 20 3c 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 6c 6f 6e 67 20 64 6f 75 62 6c ..<td><code.class="c">long.doubl
f820 65 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 e</code></td>...........<td>for.
f840 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 20 20 ABI.compatibility.with.C</td>...
f860 20 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 ......</tr>..........<tr>.......
f880 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 ......<th.scope="row"><code><spa
f8a0 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 3e 3c 2f 63 n.class="tok-type">f16</span></c
f8c0 6f 64 65 3e 3c 2f 74 68 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></th>...........<td><code.cl
f8e0 61 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 ass="c">_Float16</code></td>....
f900 20 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 .......<td>16-bit.floating.point
f920 20 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 .(10-bit.mantissa).IEEE-754-2008
f940 20 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 .binary16</td>.........</tr>....
f960 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d .....<tr>.............<th.scope=
f980 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 "row"><code><span.class="tok-typ
f9a0 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 e">f32</span></code></th>.......
f9c0 20 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 ....<td><code.class="c">float</c
f9e0 6f 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 ode></td>...........<td>32-bit.f
fa00 6c 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 loating.point.(23-bit.mantissa).
fa20 49 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 IEEE-754-2008.binary32</td>.....
fa40 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>..........
fa60 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ...<th.scope="row"><code><span.c
fa80 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 2f 63 6f 64 65 lass="tok-type">f64</span></code
faa0 3e 3c 2f 74 68 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 ></th>...........<td><code.class
fac0 3d 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 ="c">double</code></td>.........
fae0 20 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 ..<td>64-bit.floating.point.(52-
fb00 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 62 69 6e 61 bit.mantissa).IEEE-754-2008.bina
fb20 72 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 ry64</td>.........</tr>.........
fb40 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 <tr>.............<th.scope="row"
fb60 3e 3c 63 6f 64 65 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 38 ><code><span.class="tok-type">f8
fb80 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 0</span></code></th>...........<
fba0 74 64 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e td><code.class="c">double</code>
fbc0 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 38 30 2d 62 69 74 20 66 6c 6f 61 74 </td>...........<td>80-bit.float
fbe0 69 6e 67 20 70 6f 69 6e 74 20 28 36 34 2d 62 69 74 20 6d 61 6e 74 69 73 73 61 29 20 49 45 45 45 ing.point.(64-bit.mantissa).IEEE
fc00 2d 37 35 34 2d 32 30 30 38 20 38 30 2d 62 69 74 20 65 78 74 65 6e 64 65 64 20 70 72 65 63 69 73 -754-2008.80-bit.extended.precis
fc20 69 6f 6e 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 ion</td>.........</tr>.........<
fc40 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e tr>.............<th.scope="row">
fc60 3c 63 6f 64 65 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 <code><span.class="tok-type">f12
fc80 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 8</span></code></th>............
fca0 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</
fcc0 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
fce0 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
fd00 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>.
fd20 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>......
fd40 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 .......<th.scope="row"><code><sp
fd60 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><
fd80 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 20 /code></th>...........<td><code.
fda0 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>......
fdc0 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .....<td><code><span.class="tok-
fde0 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 6f 72 20 3c 63 6f 64 null">true</span></code>.or.<cod
fe00 65 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 e><span.class="tok-null">false</
fe20 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 3c 2f 74 72 3e 0a span></code></td>.........</tr>.
fe40 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 68 20 73 63 6f ........<tr>.............<th.sco
fe60 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pe="row"><code><span.class="tok-
fe80 74 79 70 65 22 3e 61 6e 79 6f 70 61 71 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 type">anyopaque</span></code></t
fea0 68 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 h>...........<td><code.class="c"
fec0 3e 76 6f 69 64 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 >void</code></td>...........<td>
fee0 55 73 65 64 20 66 6f 72 20 74 79 70 65 2d 65 72 61 73 65 64 20 70 6f 69 6e 74 65 72 73 2e 3c 2f Used.for.type-erased.pointers.</
ff00 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>..
ff20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 ...........<th.scope="row"><code
ff40 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 64 3c 2f 73 70 ><span.class="tok-type">void</sp
ff60 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e an></code></th>...........<td>(n
ff80 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 41 6c 77 61 79 73 20 74 one)</td>...........<td>Always.t
ffa0 68 65 20 76 61 6c 75 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d he.value.<code><span.class="tok-
ffc0 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a type">void</span>{}</code></td>.
ffe0 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>......
10000 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 .......<th.scope="row"><code><sp
10020 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
10040 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e an></code></th>...........<td>(n
10060 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 74 68 65 20 74 79 70 65 one)</td>...........<td>the.type
10080 20 6f 66 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 .of.<code><span.class="tok-kw">b
100a0 72 65 61 6b 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 reak</span></code>,.<code><span.
100c0 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></
100e0 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 code>,.<code><span.class="tok-kw
10100 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3c 73 ">return</span></code>,.<code><s
10120 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 2f pan.class="tok-kw">unreachable</
10140 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c span></code>,.and.<code><span.cl
10160 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 6e ass="tok-kw">while</span>.(<span
10180 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 7b .class="tok-null">true</span>).{
101a0 7d 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 20 20 }</code></td>.........</tr>.....
101c0 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 ....<tr>.............<th.scope="
101e0 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 row"><code><span.class="tok-type
10200 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 ">type</span></code></th>.......
10220 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 20 20 3c 74 ....<td>(none)</td>...........<t
10240 64 3e 74 68 65 20 74 79 70 65 20 6f 66 20 74 79 70 65 73 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 d>the.type.of.types</td>........
10260 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 20 .</tr>.........<tr>.............
10280 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 <th.scope="row"><code><span.clas
102a0 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 2f 63 6f s="tok-type">anyerror</span></co
102c0 64 65 3e 3c 2f 74 68 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 de></th>...........<td>(none)</t
102e0 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 3c 2f d>...........<td>an.error.code</
10300 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>..
10320 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 ...........<th.scope="row"><code
10340 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
10360 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 _int</span></code></th>.........
10380 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 20 20 3c 74 64 3e ..<td>(none)</td>...........<td>
103a0 4f 6e 6c 79 20 61 6c 6c 6f 77 65 64 20 66 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 Only.allowed.for.<a.href="#compt
103c0 69 6d 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 73 2e 20 ime">comptime</a>-known.values..
103e0 54 68 65 20 74 79 70 65 20 6f 66 20 69 6e 74 65 67 65 72 20 6c 69 74 65 72 61 6c 73 2e 3c 2f 74 The.type.of.integer.literals.</t
10400 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>...
10420 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e ..........<th.scope="row"><code>
10440 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_
10460 66 6c 6f 61 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 float</span></code></th>........
10480 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 20 20 3c 74 64 ...<td>(none)</td>...........<td
104a0 3e 4f 6e 6c 79 20 61 6c 6c 6f 77 65 64 20 66 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 >Only.allowed.for.<a.href="#comp
104c0 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 76 61 6c 75 65 73 2e time">comptime</a>-known.values.
104e0 20 54 68 65 20 74 79 70 65 20 6f 66 20 66 6c 6f 61 74 20 6c 69 74 65 72 61 6c 73 2e 3c 2f 74 64 .The.type.of.float.literals.</td
10500 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 2f 74 62 6f 64 79 3e >.........</tr>.........</tbody>
10520 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 20 20 20 .......</table>.......</div>....
10540 20 20 20 3c 70 3e 0a 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 ...<p>.......In.addition.to.the.
10560 69 6e 74 65 67 65 72 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 integer.types.above,.arbitrary.b
10580 69 74 2d 77 69 64 74 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 it-width.integers.can.be.referen
105a0 63 65 64 20 62 79 20 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 ced.by.using.......an.identifier
105c0 20 6f 66 20 3c 63 6f 64 65 3e 69 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 75 3c 2f 63 .of.<code>i</code>.or.<code>u</c
105e0 6f 64 65 3e 20 66 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 ode>.followed.by.digits..For.exa
10600 6d 70 6c 65 2c 20 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 mple,.the.identifier.......<code
10620 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 3c 2f 73 70 61 6e ><span.class="tok-type">i7</span
10640 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 64 20 37 2d 62 69 ></code>.refers.to.a.signed.7-bi
10660 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 6f 77 65 64 20 62 t.integer..The.maximum.allowed.b
10680 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 65 72 20 74 79 70 it-width.of.an.......integer.typ
106a0 65 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 e.is.<code><span.class="tok-numb
106c0 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 3c er">65535</span></code>........<
106e0 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>.<
10700 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<
10720 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 /a></li>.<li><a.href="#Floats">F
10740 6c 6f 61 74 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 76 6f 69 loats</a></li>.<li><a.href="#voi
10760 64 22 3e 76 6f 69 64 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 d">void</a></li>.<li><a.href="#E
10780 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
107a0 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 3c 2f 75 6c 3e 0a ef="#Type">@Type</a></li>.</ul>.
107c0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 50 72 69 6d 69 74 69 76 65 2d ..............<h3.id="Primitive-
107e0 56 61 6c 75 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 50 Values"><a.href="nav.xhtml#toc-P
10800 72 69 6d 69 74 69 76 65 2d 56 61 6c 75 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 56 61 6c 75 65 rimitive-Values">Primitive.Value
10820 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 50 72 69 6d s</a>.<a.class="hdr".href="#Prim
10840 69 74 69 76 65 2d 56 61 6c 75 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 itive-Values">..</a></h3>.......
10860 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 20 20 .<div.class="table-wrapper">....
10880 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 63 61 70 74 69 6f 6e 3e 50 72 69 6d ...<table>.........<caption>Prim
108a0 69 74 69 76 65 20 56 61 6c 75 65 73 3c 2f 63 61 70 74 69 6f 6e 3e 0a 20 20 20 20 20 20 20 20 3c itive.Values</caption>.........<
108c0 74 68 65 61 64 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 thead>.........<tr>...........<t
108e0 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 4e 61 6d 65 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 h.scope="col">Name</th>.........
10900 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 44 65 73 63 72 69 70 74 69 6f 6e 3c 2f 74 ..<th.scope="col">Description</t
10920 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 2f 74 68 65 61 64 h>.........</tr>.........</thead
10940 3e 0a 20 20 20 20 20 20 20 20 3c 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 >.........<tbody>.........<tr>..
10960 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 ...........<th.scope="row"><code
10980 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 65 3c 2f 73 70 ><span.class="tok-null">true</sp
109a0 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 an></code>.and.<code><span.class
109c0 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><
109e0 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e /th>.............<td><code><span
10a00 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 2f 63 .class="tok-type">bool</span></c
10a20 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 0a 20 ode>.values</td>.........</tr>..
10a40 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 68 20 73 63 6f 70 .......<tr>.............<th.scop
10a60 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e e="row"><code><span.class="tok-n
10a80 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 68 3e 0a 20 20 20 ull">null</span></code></th>....
10aa0 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 74 69 .........<td>used.to.set.an.opti
10ac0 6f 6e 61 6c 20 74 79 70 65 20 74 6f 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 onal.type.to.<code><span.class="
10ae0 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 3c 2f 74 64 tok-null">null</span></code></td
10b00 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>....
10b20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c .........<th.scope="row"><code><
10b40 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<
10b60 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 /span></code></th>...........<td
10b80 3e 75 73 65 64 20 74 6f 20 6c 65 61 76 65 20 61 20 76 61 6c 75 65 20 75 6e 73 70 65 63 69 66 69 >used.to.leave.a.value.unspecifi
10ba0 65 64 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 2f ed</td>.........</tr>.........</
10bc0 74 62 6f 64 79 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 tbody>.......</table>.......</di
10be0 76 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 v>.......<p>See.also:</p><ul>.<l
10c00 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 6c 73 i><a.href="#Optionals">Optionals
10c20 3c 2f 61 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 </a></li>.<li><a.href="#undefine
10c40 64 22 3e 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 d">undefined</a></li>.</ul>.....
10c60 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c ..........<h3.id="String-Literal
10c80 73 2d 61 6e 64 2d 55 6e 69 63 6f 64 65 2d 43 6f 64 65 2d 50 6f 69 6e 74 2d 4c 69 74 65 72 61 6c s-and-Unicode-Code-Point-Literal
10ca0 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 74 72 69 6e 67 s"><a.href="nav.xhtml#toc-String
10cc0 2d 4c 69 74 65 72 61 6c 73 2d 61 6e 64 2d 55 6e 69 63 6f 64 65 2d 43 6f 64 65 2d 50 6f 69 6e 74 -Literals-and-Unicode-Code-Point
10ce0 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 20 55 -Literals">String.Literals.and.U
10d00 6e 69 63 6f 64 65 20 43 6f 64 65 20 50 6f 69 6e 74 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c nicode.Code.Point.Literals</a>.<
10d20 61 20 63 6c 61 73 73 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 a.class="hdr".href="#String-Lite
10d40 72 61 6c 73 2d 61 6e 64 2d 55 6e 69 63 6f 64 65 2d 43 6f 64 65 2d 50 6f 69 6e 74 2d 4c 69 74 65 rals-and-Unicode-Code-Point-Lite
10d60 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>....
10d80 20 20 20 53 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 61 72 65 20 63 6f 6e 73 74 61 6e 74 20 ...String.literals.are.constant.
10da0 73 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 single-item.<a.href="#Pointers">
10dc0 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 74 6f 20 6e 75 6c 6c 2d 74 65 72 6d 69 6e 61 74 65 64 20 Pointers</a>.to.null-terminated.
10de0 62 79 74 65 20 61 72 72 61 79 73 2e 0a 20 20 20 20 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 73 byte.arrays........The.type.of.s
10e00 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 65 6e 63 6f 64 65 73 20 62 6f 74 68 20 74 68 65 20 tring.literals.encodes.both.the.
10e20 6c 65 6e 67 74 68 2c 20 61 6e 64 20 74 68 65 20 66 61 63 74 20 74 68 61 74 20 74 68 65 79 20 61 length,.and.the.fact.that.they.a
10e40 72 65 20 6e 75 6c 6c 2d 74 65 72 6d 69 6e 61 74 65 64 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 68 re.null-terminated,.......and.th
10e60 75 73 20 74 68 65 79 20 63 61 6e 20 62 65 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f us.they.can.be.<a.href="#Type-Co
10e80 65 72 63 69 6f 6e 22 3e 63 6f 65 72 63 65 64 3c 2f 61 3e 20 74 6f 20 62 6f 74 68 20 3c 61 20 68 ercion">coerced</a>.to.both.<a.h
10ea0 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 20 61 6e 64 0a 20 20 20 ref="#Slices">Slices</a>.and....
10ec0 20 20 20 3c 61 20 68 72 65 66 3d 22 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 ...<a.href="#Sentinel-Terminated
10ee0 2d 50 6f 69 6e 74 65 72 73 22 3e 4e 75 6c 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 50 6f 69 6e 74 -Pointers">Null-Terminated.Point
10f00 65 72 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 44 65 72 65 66 65 72 65 6e 63 69 6e 67 20 73 74 72 ers</a>........Dereferencing.str
10f20 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 63 6f 6e 76 65 72 74 73 20 74 68 65 6d 20 74 6f 20 3c 61 ing.literals.converts.them.to.<a
10f40 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 2e 0a 20 20 20 20 .href="#Arrays">Arrays</a>......
10f60 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 63 61 75 73 65 20 5a ..</p>.......<p>.......Because.Z
10f80 69 67 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 3c 61 20 68 72 65 66 3d 22 23 53 6f 75 72 ig.source.code.is.<a.href="#Sour
10fa0 63 65 2d 45 6e 63 6f 64 69 6e 67 22 3e 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 3c 2f 61 3e 2c 20 ce-Encoding">UTF-8.encoded</a>,.
10fc0 61 6e 79 0a 20 20 20 20 20 20 6e 6f 6e 2d 41 53 43 49 49 20 62 79 74 65 73 20 61 70 70 65 61 72 any.......non-ASCII.bytes.appear
10fe0 69 6e 67 20 77 69 74 68 69 6e 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 69 6e 20 73 ing.within.a.string.literal.in.s
11000 6f 75 72 63 65 20 63 6f 64 65 20 63 61 72 72 79 0a 20 20 20 20 20 20 74 68 65 69 72 20 55 54 46 ource.code.carry.......their.UTF
11020 2d 38 20 6d 65 61 6e 69 6e 67 20 69 6e 74 6f 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 -8.meaning.into.the.content.of.t
11040 68 65 20 73 74 72 69 6e 67 20 69 6e 20 74 68 65 20 5a 69 67 20 70 72 6f 67 72 61 6d 3b 0a 20 20 he.string.in.the.Zig.program;...
11060 20 20 20 20 74 68 65 20 62 79 74 65 73 20 61 72 65 20 6e 6f 74 20 6d 6f 64 69 66 69 65 64 20 62 ....the.bytes.are.not.modified.b
11080 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 2e 20 49 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 y.the.compiler..It.is.possible.t
110a0 6f 20 65 6d 62 65 64 0a 20 20 20 20 20 20 6e 6f 6e 2d 55 54 46 2d 38 20 62 79 74 65 73 20 69 6e o.embed.......non-UTF-8.bytes.in
110c0 74 6f 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 75 73 69 6e 67 20 3c 63 6f 64 65 3e to.a.string.literal.using.<code>
110e0 5c 78 4e 4e 3c 2f 63 6f 64 65 3e 20 6e 6f 74 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e \xNN</code>.notation........</p>
11100 0a 20 20 20 20 20 20 3c 70 3e 49 6e 64 65 78 69 6e 67 20 69 6e 74 6f 20 61 20 73 74 72 69 6e 67 .......<p>Indexing.into.a.string
11120 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6e 6f 6e 2d 41 53 43 49 49 20 62 79 74 65 73 20 72 65 74 75 .containing.non-ASCII.bytes.retu
11140 72 6e 73 20 69 6e 64 69 76 69 64 75 61 6c 0a 20 20 20 20 20 20 62 79 74 65 73 2c 20 77 68 65 74 rns.individual.......bytes,.whet
11160 68 65 72 20 76 61 6c 69 64 20 55 54 46 2d 38 20 6f 72 20 6e 6f 74 2e 3c 2f 70 3e 0a 20 20 20 20 her.valid.UTF-8.or.not.</p>.....
11180 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 6e 69 63 6f 64 65 20 63 6f 64 65 20 70 6f 69 6e 74 20 6c ..<p>.......Unicode.code.point.l
111a0 69 74 65 72 61 6c 73 20 68 61 76 65 20 74 79 70 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c iterals.have.type.<code><span.cl
111c0 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
111e0 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 20 20 20 3c 61 20 n></code>,.the.same.as.......<a.
11200 68 72 65 66 3d 22 23 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 href="#Integer-Literals">Integer
11220 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 2e 20 41 6c 6c 20 3c 61 20 68 72 65 66 3d 22 23 45 73 63 .Literals</a>..All.<a.href="#Esc
11240 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 63 65 73 3c ape-Sequences">Escape.Sequences<
11260 2f 61 3e 20 61 72 65 20 76 61 6c 69 64 20 69 6e 20 62 6f 74 68 20 73 74 72 69 6e 67 20 6c 69 74 /a>.are.valid.in.both.string.lit
11280 65 72 61 6c 73 0a 20 20 20 20 20 20 61 6e 64 20 55 6e 69 63 6f 64 65 20 63 6f 64 65 20 70 6f 69 erals.......and.Unicode.code.poi
112a0 6e 74 20 6c 69 74 65 72 61 6c 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 nt.literals........</p>.......<f
112c0 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
112e0 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 74 72 69 6e 67 5f 6c 69 74 65 "><cite.class="file">string_lite
11300 72 61 6c 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 rals.zig</cite></figcaption><pre
11320 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
11340 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f t</span>.print.=.<span.class="to
11360 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.
11380 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;<
113a0 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 /span>).debug.print;.<span.class
113c0 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 3d 20 3c 73 70 ="tok-kw">const</span>.mem.=.<sp
113e0 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</
11400 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
11420 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 65 6d 3b 20 3c 73 70 61 6e 20 63 t;std&quot;</span>).mem;.<span.c
11440 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 20 62 65 20 75 73 lass="tok-comment">//.will.be.us
11460 65 64 20 74 6f 20 63 6f 6d 70 61 72 65 20 62 79 74 65 73 3c 2f 73 70 61 6e 3e 0a 0a 3c 73 70 61 ed.to.compare.bytes</span>..<spa
11480 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
114a0 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
114c0 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
114e0 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>
11500 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
11520 74 3c 2f 73 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 t</span>.bytes.=.<span.class="to
11540 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 6e 3e 3b k-str">&quot;hello&quot;</span>;
11560 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 .....print(<span.class="tok-str"
11580 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 2e 7b 3c 73 70 61 >&quot;{}\n&quot;</span>,..{<spa
115a0 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 4f 66 3c 2f 73 n.class="tok-builtin">@TypeOf</s
115c0 70 61 6e 3e 28 62 79 74 65 73 29 7d 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pan>(bytes)});..................
115e0 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 2a 63 .<span.class="tok-comment">//.*c
11600 6f 6e 73 74 20 5b 35 3a 30 5d 75 38 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 onst.[5:0]u8</span>.....print(<s
11620 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 64 7d 5c 6e 26 pan.class="tok-str">&quot;{d}\n&
11640 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 62 79 74 65 73 2e 6c 65 6e 7d 29 3b 20 20 20 20 quot;</span>,..{bytes.len});....
11660 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="
11680 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 35 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 tok-comment">//.5</span>.....pri
116a0 6e 74 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 nt(<span.class="tok-str">&quot;{
116c0 63 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 62 79 74 65 73 5b 3c 73 70 61 6e c}\n&quot;</span>,..{bytes[<span
116e0 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 5d 7d 29 3b .class="tok-number">1</span>]});
11700 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 20 63 6c ........................<span.cl
11720 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 27 65 27 3c 2f 73 70 61 6e 3e 0a ass="tok-comment">//.'e'</span>.
11740 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e ....print(<span.class="tok-str">
11760 26 71 75 6f 74 3b 7b 64 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 62 79 74 65 &quot;{d}\n&quot;</span>,..{byte
11780 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 35 3c 2f 73 70 s[<span.class="tok-number">5</sp
117a0 61 6e 3e 5d 7d 29 3b 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 an>]});........................<
117c0 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 30 3c 2f 73 span.class="tok-comment">//.0</s
117e0 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pan>.....print(<span.class="tok-
11800 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 2e 7b str">&quot;{}\n&quot;</span>,..{
11820 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 61 6e 3e <span.class="tok-str">'e'</span>
11840 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 5c 78 36 35 27 .==.<span.class="tok-str">'\x65'
11860 3c 2f 73 70 61 6e 3e 7d 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 </span>});....................<s
11880 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 72 75 65 3c pan.class="tok-comment">//.true<
118a0 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>.....print(<span.class="to
118c0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 64 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c k-str">&quot;{d}\n&quot;</span>,
118e0 20 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 5c 75 7b 31 66 34 ..{<span.class="tok-str">'\u{1f4
11900 61 39 7d 27 3c 2f 73 70 61 6e 3e 7d 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a9}'</span>});..................
11920 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">//.
11940 31 32 38 31 36 39 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 128169</span>.....print(<span.cl
11960 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 64 7d 5c 6e 26 71 75 6f 74 3b 3c ass="tok-str">&quot;{d}\n&quot;<
11980 2f 73 70 61 6e 3e 2c 20 2e 7b 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">
119a0 27 f0 9f 92 af 27 3c 2f 73 70 61 6e 3e 7d 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 '....'</span>});................
119c0 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 6d ............<span.class="tok-com
119e0 6d 65 6e 74 22 3e 2f 2f 20 31 32 38 31 37 35 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e 74 ment">//.128175</span>.....print
11a00 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 75 7d (<span.class="tok-str">&quot;{u}
11a20 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 \n&quot;</span>,..{<span.class="
11a40 74 6f 6b 2d 73 74 72 22 3e 27 e2 9a a1 27 3c 2f 73 70 61 6e 3e 7d 29 3b 0a 20 20 20 20 70 72 69 tok-str">'...'</span>});.....pri
11a60 6e 74 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 nt(<span.class="tok-str">&quot;{
11a80 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 }\n&quot;</span>,..{mem.eql(<spa
11aa0 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 3c 73 n.class="tok-type">u8</span>,.<s
11ac0 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 6c 6c 6f 26 pan.class="tok-str">&quot;hello&
11ae0 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 2d 73 quot;</span>,.<span.class="tok-s
11b00 74 72 22 3e 26 71 75 6f 74 3b 68 5c 78 36 35 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 tr">&quot;h\x65llo&quot;</span>)
11b20 7d 29 3b 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 });......<span.class="tok-commen
11b40 74 22 3e 2f 2f 20 74 72 75 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 t">//.true</span>.....print(<spa
11b60 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 5c 6e 26 71 75 6f n.class="tok-str">&quot;{}\n&quo
11b80 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 t;</span>,..{mem.eql(<span.class
11ba0 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 63 6c 61 ="tok-type">u8</span>,.<span.cla
11bc0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b f0 9f 92 af 26 71 75 6f 74 3b 3c 2f 73 ss="tok-str">&quot;....&quot;</s
11be0 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 6f pan>,.<span.class="tok-str">&quo
11c00 74 3b 5c 78 66 30 5c 78 39 66 5c 78 39 32 5c 78 61 66 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 t;\xf0\x9f\x92\xaf&quot;</span>)
11c20 7d 29 3b 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">//
11c40 20 61 6c 73 6f 20 74 72 75 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 .also.true</span>.....<span.clas
11c60 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 69 64 5f s="tok-kw">const</span>.invalid_
11c80 75 74 66 38 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 utf8.=.<span.class="tok-str">&qu
11ca0 6f 74 3b 5c 78 66 66 5c 78 66 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 20 20 20 20 20 20 3c ot;\xff\xfe&quot;</span>;......<
11cc0 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 6e 6f 6e 2d span.class="tok-comment">//.non-
11ce0 55 54 46 2d 38 20 73 74 72 69 6e 67 73 20 61 72 65 20 70 6f 73 73 69 62 6c 65 20 77 69 74 68 20 UTF-8.strings.are.possible.with.
11d00 5c 78 4e 4e 20 6e 6f 74 61 74 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e 74 28 \xNN.notation.</span>.....print(
11d20 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 30 78 7b 78 <span.class="tok-str">&quot;0x{x
11d40 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 69 6e 76 61 6c 69 64 5f 75 74 66 38 }\n&quot;</span>,..{invalid_utf8
11d60 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
11d80 6e 3e 5d 7d 29 3b 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"
11da0 3e 2f 2f 20 69 6e 64 65 78 69 6e 67 20 74 68 65 6d 20 72 65 74 75 72 6e 73 20 69 6e 64 69 76 69 >//.indexing.them.returns.indivi
11dc0 64 75 61 6c 20 62 79 74 65 73 2e 2e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 70 72 69 6e 74 28 3c dual.bytes...</span>.....print(<
11de0 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 30 78 7b 78 7d span.class="tok-str">&quot;0x{x}
11e00 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 \n&quot;</span>,..{<span.class="
11e20 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b f0 9f 92 af 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e tok-str">&quot;....&quot;</span>
11e40 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
11e60 6e 3e 5d 7d 29 3b 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 n>]});....<span.class="tok-comme
11e80 6e 74 22 3e 2f 2f 20 2e 2e 2e 61 73 20 64 6f 65 73 20 69 6e 64 65 78 69 6e 67 20 70 61 72 74 2d nt">//....as.does.indexing.part-
11ea0 77 61 79 20 74 68 72 6f 75 67 68 20 6e 6f 6e 2d 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72 73 way.through.non-ASCII.characters
11ec0 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c </span>.}</code></pre></figure><
11ee0 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d figure><figcaption.class="shell-
11f00 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d cap">Shell</figcaption><pre><sam
11f20 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 73 74 72 69 6e 67 5f 6c 69 p>$.<kbd>zig.build-exe.string_li
11f40 74 65 72 61 6c 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 73 74 72 69 6e 67 terals.zig</kbd>.$.<kbd>./string
11f60 5f 6c 69 74 65 72 61 6c 73 3c 2f 6b 62 64 3e 0a 2a 63 6f 6e 73 74 20 5b 35 3a 30 5d 75 38 0a 35 _literals</kbd>.*const.[5:0]u8.5
11f80 0a 65 0a 30 0a 74 72 75 65 0a 31 32 38 31 36 39 0a 31 32 38 31 37 35 0a e2 9a a1 0a 74 72 75 65 .e.0.true.128169.128175.....true
11fa0 0a 74 72 75 65 0a 30 78 66 65 0a 30 78 39 66 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 .true.0xfe.0x9f.</samp></pre></f
11fc0 69 67 75 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 igure>.......<p>See.also:</p><ul
11fe0 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 3c 2f >.<li><a.href="#Arrays">Arrays</
12000 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 6f 75 72 63 65 2d 45 6e 63 a></li>.<li><a.href="#Source-Enc
12020 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 6c 69 3e 0a oding">Source.Encoding</a></li>.
12040 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 45 73 63 61 70 65 2d 53 65 71 75 </ul>........<h4.id="Escape-Sequ
12060 65 6e 63 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 45 73 ences"><a.href="nav.xhtml#toc-Es
12080 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 63 65 73 cape-Sequences">Escape.Sequences
120a0 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 63 61 70 </a>.<a.class="hdr".href="#Escap
120c0 65 2d 53 65 71 75 65 6e 63 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 e-Sequences">..</a></h4>........
120e0 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 20 20 20 <div.class="table-wrapper">.....
12100 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 63 61 70 74 69 6f 6e 3e 45 73 63 61 70 ..<table>.........<caption>Escap
12120 65 20 53 65 71 75 65 6e 63 65 73 3c 2f 63 61 70 74 69 6f 6e 3e 0a 20 20 20 20 20 20 20 20 3c 74 e.Sequences</caption>.........<t
12140 68 65 61 64 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 68 head>.........<tr>...........<th
12160 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 45 73 63 61 70 65 20 53 65 71 75 65 6e 63 65 3c 2f 74 68 .scope="col">Escape.Sequence</th
12180 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 4e 61 6d 65 >...........<th.scope="col">Name
121a0 3c 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 2f 74 68 </th>.........</tr>.........</th
121c0 65 61 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 ead>.........<tbody>.........<tr
121e0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 >.............<th.scope="row"><c
12200 6f 64 65 3e 5c 6e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 ode>\n</code></th>...........<td
12220 3e 4e 65 77 6c 69 6e 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 >Newline</td>.........</tr>.....
12240 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 ....<tr>.............<th.scope="
12260 72 6f 77 22 3e 3c 63 6f 64 65 3e 5c 72 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 row"><code>\r</code></th>.......
12280 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 64 3e 0a 20 20 20 ....<td>Carriage.Return</td>....
122a0 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>.........
122c0 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 5c 74 3c 2f 63 6f ....<th.scope="row"><code>\t</co
122e0 64 65 3e 3c 2f 74 68 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 de></th>...........<td>Tab</td>.
12300 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>......
12320 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 5c 5c 3c .......<th.scope="row"><code>\\<
12340 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 61 63 6b 73 6c /code></th>...........<td>Backsl
12360 61 73 68 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 ash</td>.........</tr>.........<
12380 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e tr>.............<th.scope="row">
123a0 3c 63 6f 64 65 3e 5c 27 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c <code>\'</code></th>...........<
123c0 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 2f 74 td>Single.Quote</td>.........</t
123e0 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 68 20 r>.........<tr>.............<th.
12400 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 5c 22 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e scope="row"><code>\"</code></th>
12420 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 44 6f 75 62 6c 65 20 51 75 6f 74 65 3c 2f 74 64 3e ...........<td>Double.Quote</td>
12440 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 20 .........</tr>.........<tr>.....
12460 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 5c 78 ........<th.scope="row"><code>\x
12480 4e 4e 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 68 65 78 NN</code></th>...........<td>hex
124a0 61 64 65 63 69 6d 61 6c 20 38 2d 62 69 74 20 62 79 74 65 20 76 61 6c 75 65 20 28 32 20 64 69 67 adecimal.8-bit.byte.value.(2.dig
124c0 69 74 73 29 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 its)</td>.........</tr>.........
124e0 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 <tr>.............<th.scope="row"
12500 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 68 3e 0a 20 20 ><code>\u{NNNNNN}</code></th>...
12520 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 65 20 ........<td>hexadecimal.Unicode.
12540 63 6f 64 65 20 70 6f 69 6e 74 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 20 28 31 20 6f 72 20 6d code.point.UTF-8.encoded.(1.or.m
12560 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 2f 74 72 3e 0a 20 ore.digits)</td>.........</tr>..
12580 20 20 20 20 20 20 20 3c 2f 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 .......</tbody>.......</table>..
125a0 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20 74 .....</div>.......<p>Note.that.t
125c0 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 69 64 20 55 6e 69 63 6f 64 65 20 70 6f 69 6e 74 20 69 he.maximum.valid.Unicode.point.i
125e0 73 20 3c 63 6f 64 65 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.<code><span.class="tok-number"
12600 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 20 >0x10ffff</span></code>.</p>....
12620 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 72 69 ..........<h4.id="Multiline-Stri
12640 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 ng-Literals"><a.href="nav.xhtml#
12660 74 6f 63 2d 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 4d toc-Multiline-String-Literals">M
12680 75 6c 74 69 6c 69 6e 65 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 ultiline.String.Literals</a>.<a.
126a0 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 72 class="hdr".href="#Multiline-Str
126c0 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 ing-Literals">..</a></h4>.......
126e0 20 3c 70 3e 0a 20 20 20 20 20 20 4d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 6c 69 74 65 .<p>.......Multiline.string.lite
12700 72 61 6c 73 20 68 61 76 65 20 6e 6f 20 65 73 63 61 70 65 73 20 61 6e 64 20 63 61 6e 20 73 70 61 rals.have.no.escapes.and.can.spa
12720 6e 20 61 63 72 6f 73 73 20 6d 75 6c 74 69 70 6c 65 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 54 n.across.multiple.lines........T
12740 6f 20 73 74 61 72 74 20 61 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 o.start.a.multiline.string.liter
12760 61 6c 2c 20 75 73 65 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 al,.use.the.<code><span.class="t
12780 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 65 6e 2e 20 ok-str">\\</span></code>.token..
127a0 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 68 65 20 73 Just.like.a.comment,.......the.s
127c0 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 20 65 6e 64 tring.literal.goes.until.the.end
127e0 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 20 6c 69 6e .of.the.line..The.end.of.the.lin
12800 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 68 65 20 73 e.is.......not.included.in.the.s
12820 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 2c 20 69 66 tring.literal........However,.if
12840 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 63 6f 64 65 .the.next.line.begins.with.<code
12860 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 3c 2f 73 70 61 6e 3e ><span.class="tok-str">\\</span>
12880 3c 2f 63 6f 64 65 3e 20 74 68 65 6e 20 61 20 6e 65 77 6c 69 6e 65 20 69 73 20 61 70 70 65 6e 64 </code>.then.a.newline.is.append
128a0 65 64 20 61 6e 64 0a 20 20 20 20 20 20 74 68 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 ed.and.......the.string.literal.
128c0 63 6f 6e 74 69 6e 75 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 continues........</p>.......<fig
128e0 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
12900 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6d 75 6c 74 69 6c 69 6e 65 5f 73 74 72 <cite.class="file">multiline_str
12920 69 6e 67 5f 6c 69 74 65 72 61 6c 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 ing_literals.zig</cite></figcapt
12940 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ion><pre><code><span.class="tok-
12960 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 5f 69 6e 5f kw">const</span>.hello_world_in_
12980 63 20 3d 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 5c 5c c.=.....<span.class="tok-str">\\
129a0 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 3c 2f 73 70 61 6e 3e #include.&lt;stdio.h&gt;.</span>
129c0 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 5c 5c 0a 3c 2f 73 ....<span.class="tok-str">\\.</s
129e0 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 5c 5c pan>....<span.class="tok-str">\\
12a00 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 int.main(int.argc,.char.**argv).
12a20 7b 0a 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 {.</span>....<span.class="tok-st
12a40 72 22 3e 5c 5c 20 20 20 20 70 72 69 6e 74 66 28 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 77 6f 72 6c r">\\....printf(&quot;hello.worl
12a60 64 5c 6e 26 71 75 6f 74 3b 29 3b 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 d\n&quot;);.</span>....<span.cla
12a80 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 3c 2f 73 ss="tok-str">\\....return.0;.</s
12aa0 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 5c 5c pan>....<span.class="tok-str">\\
12ac0 7d 0a 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e }.</span>;</code></pre></figure>
12ae0 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 3e .......<p>See.also:</p><ul>.<li>
12b00 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 64 46 69 6c 65 3c <a.href="#embedFile">@embedFile<
12b20 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 20 20 /a></li>.</ul>..................
12b40 20 20 20 20 3c 68 33 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 ....<h3.id="Assignment"><a.href=
12b60 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 41 73 73 69 67 6e 6d 65 6e 74 22 3e 41 73 73 69 67 "nav.xhtml#toc-Assignment">Assig
12b80 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 66 3d 22 23 nment</a>.<a.class="hdr".href="#
12ba0 41 73 73 69 67 6e 6d 65 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c Assignment">..</a></h3>........<
12bc0 70 3e 55 73 65 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b p>Use.the.<code><span.class="tok
12be0 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 64 -kw">const</span></code>.keyword
12c00 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 66 .to.assign.a.value.to.an.identif
12c20 69 65 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ier:</p>.......<figure><figcapti
12c40 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
12c60 66 69 6c 65 22 3e 63 6f 6e 73 74 61 6e 74 5f 69 64 65 6e 74 69 66 69 65 72 5f 63 61 6e 6e 6f 74 file">constant_identifier_cannot
12c80 5f 63 68 61 6e 67 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c _change.zig</cite></figcaption><
12ca0 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pre><code><span.class="tok-kw">c
12cc0 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 22 74 6f 6b onst</span>.x.=.<span.class="tok
12ce0 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 70 61 6e 20 63 6c 61 -number">1234</span>;..<span.cla
12d00 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
12d20 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 6c s="tok-fn">foo</span>().<span.cl
12d40 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>.{....
12d60 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 49 74 .<span.class="tok-comment">//.It
12d80 20 77 6f 72 6b 73 20 61 74 20 66 69 6c 65 20 73 63 6f 70 65 20 61 73 20 77 65 6c 6c 20 61 73 20 .works.at.file.scope.as.well.as.
12da0 69 6e 73 69 64 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 inside.functions.</span>.....<sp
12dc0 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 79 an.class="tok-kw">const</span>.y
12de0 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 37 38 .=.<span.class="tok-number">5678
12e00 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 63 </span>;......<span.class="tok-c
12e20 6f 6d 6d 65 6e 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 omment">//.Once.assigned,.an.ide
12e40 6e 74 69 66 69 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 ntifier.cannot.be.changed.</span
12e60 3e 0a 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
12e80 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
12ea0 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
12ec0 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
12ee0 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 22 -fn">main</span>().<span.class="
12f00 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 6f 6f 28 tok-type">void</span>.{.....foo(
12f20 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 );.}</code></pre></figure><figur
12f40 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
12f60 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
12f80 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 63 6f 6e 73 74 61 6e 74 5f 69 64 65 6e 74 kbd>zig.build-exe.constant_ident
12fa0 69 66 69 65 72 5f 63 61 6e 6e 6f 74 5f 63 68 61 6e 67 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 ifier_cannot_change.zig</kbd>.<s
12fc0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 63 6f 6e 73 74 61 6e 74 5f 69 64 65 6e pan.class="sgr-1m">constant_iden
12fe0 74 69 66 69 65 72 5f 63 61 6e 6e 6f 74 5f 63 68 61 6e 67 65 2e 7a 69 67 3a 38 3a 37 3a 20 3c 2f tifier_cannot_change.zig:8:7:.</
13000 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 span><span.class="sgr-31m">error
13020 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 63 61 :.</span><span.class="sgr-1m">ca
13040 6e 6e 6f 74 20 61 73 73 69 67 6e 20 74 6f 20 63 6f 6e 73 74 61 6e 74 0a 3c 2f 73 70 61 6e 3e 20 nnot.assign.to.constant.</span>.
13060 20 20 20 79 20 2b 3d 20 31 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d ...y.+=.1;.....<span.class="sgr-
13080 33 32 6d 22 3e 7e 7e 5e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 32m">~~^~~~.</span><span.class="
130a0 73 67 72 2d 32 6d 22 3e 72 65 66 65 72 65 6e 63 65 64 20 62 79 3a 0a 20 20 20 20 6d 61 69 6e 3a sgr-2m">referenced.by:.....main:
130c0 20 63 6f 6e 73 74 61 6e 74 5f 69 64 65 6e 74 69 66 69 65 72 5f 63 61 6e 6e 6f 74 5f 63 68 61 6e .constant_identifier_cannot_chan
130e0 67 65 2e 7a 69 67 3a 31 32 3a 35 0a 20 20 20 20 63 61 6c 6c 4d 61 69 6e 3a 20 2f 68 6f 6d 65 2f ge.zig:12:5.....callMain:./home/
13100 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 andy/src/zig-0.12.x/lib/std/star
13120 74 2e 7a 69 67 3a 35 30 31 3a 31 37 0a 20 20 20 20 72 65 6d 61 69 6e 69 6e 67 20 72 65 66 65 72 t.zig:501:17.....remaining.refer
13140 65 6e 63 65 20 74 72 61 63 65 73 20 68 69 64 64 65 6e 3b 20 75 73 65 20 27 2d 66 72 65 66 65 72 ence.traces.hidden;.use.'-frefer
13160 65 6e 63 65 2d 74 72 61 63 65 27 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 65 66 65 72 65 6e 63 65 ence-trace'.to.see.all.reference
13180 20 74 72 61 63 65 73 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 .traces.</span>.</samp></pre></f
131a0 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 igure>.......<p><code><span.clas
131c0 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 20 61 s="tok-kw">const</span></code>.a
131e0 70 70 6c 69 65 73 20 74 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 62 79 74 65 73 20 74 68 61 74 20 pplies.to.all.of.the.bytes.that.
13200 74 68 65 20 69 64 65 6e 74 69 66 69 65 72 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 61 64 64 72 65 the.identifier.immediately.addre
13220 73 73 65 73 2e 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 sses..<a.href="#Pointers">Pointe
13240 72 73 3c 2f 61 3e 20 68 61 76 65 20 74 68 65 69 72 20 6f 77 6e 20 63 6f 6e 73 74 2d 6e 65 73 73 rs</a>.have.their.own.const-ness
13260 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 49 66 20 79 6f 75 20 6e 65 65 64 20 61 20 76 61 72 .</p>.......<p>If.you.need.a.var
13280 69 61 62 6c 65 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 6d 6f 64 69 66 79 2c 20 75 73 65 20 74 iable.that.you.can.modify,.use.t
132a0 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 he.<code><span.class="tok-kw">va
132c0 72 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 20 20 r</span></code>.keyword:</p>....
132e0 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
13300 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6d 75 74 61 62 6c g-cap"><cite.class="file">mutabl
13320 65 5f 76 61 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 e_var.zig</cite></figcaption><pr
13340 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
13360 73 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 st</span>.print.=.<span.class="t
13380 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
133a0 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;
133c0 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 </span>).debug.print;..<span.cla
133e0 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
13400 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
13420 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
13440 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>.{...
13460 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
13480 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 69 33 32 3c >.y:.<span.class="tok-type">i32<
134a0 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 72 /span>.=.<span.class="tok-number
134c0 22 3e 35 36 37 38 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 79 20 2b 3d 20 3c 73 70 61 6e 20 63 ">5678</span>;......y.+=.<span.c
134e0 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 20 20 20 lass="tok-number">1</span>;.....
13500 20 70 72 69 6e 74 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 .print(<span.class="tok-str">&qu
13520 6f 74 3b 7b 64 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 79 7d 29 3b 0a 7d 3c 2f 63 ot;{d}&quot;</span>,..{y});.}</c
13540 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ode></pre></figure><figure><figc
13560 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
13580 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
135a0 20 62 75 69 6c 64 2d 65 78 65 20 6d 75 74 61 62 6c 65 5f 76 61 72 2e 7a 69 67 3c 2f 6b 62 64 3e .build-exe.mutable_var.zig</kbd>
135c0 0a 24 20 3c 6b 62 64 3e 2e 2f 6d 75 74 61 62 6c 65 5f 76 61 72 3c 2f 6b 62 64 3e 0a 35 36 37 39 .$.<kbd>./mutable_var</kbd>.5679
135e0 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 .</samp></pre></figure>.......<p
13600 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 64 3a 3c >Variables.must.be.initialized:<
13620 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c /p>.......<figure><figcaption.cl
13640 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
13660 3e 76 61 72 5f 6d 75 73 74 5f 62 65 5f 69 6e 69 74 69 61 6c 69 7a 65 64 2e 7a 69 67 3c 2f 63 69 >var_must_be_initialized.zig</ci
13680 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
136a0 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
136c0 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.
136e0 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
13700 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>.
13720 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</
13740 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">
13760 69 33 32 3c 2f 73 70 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 i32</span>;......x.=.<span.class
13780 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>
137a0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 </pre></figure><figure><figcapti
137c0 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 on.class="shell-cap">Shell</figc
137e0 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 aption><pre><samp>$.<kbd>zig.bui
13800 6c 64 2d 65 78 65 20 76 61 72 5f 6d 75 73 74 5f 62 65 5f 69 6e 69 74 69 61 6c 69 7a 65 64 2e 7a ld-exe.var_must_be_initialized.z
13820 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 76 61 ig</kbd>.<span.class="sgr-1m">va
13840 72 5f 6d 75 73 74 5f 62 65 5f 69 6e 69 74 69 61 6c 69 7a 65 64 2e 7a 69 67 3a 32 3a 31 35 3a 20 r_must_be_initialized.zig:2:15:.
13860 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 </span><span.class="sgr-31m">err
13880 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e or:.</span><span.class="sgr-1m">
138a0 65 78 70 65 63 74 65 64 20 27 3d 27 2c 20 66 6f 75 6e 64 20 27 3b 27 0a 3c 2f 73 70 61 6e 3e 20 expected.'=',.found.';'.</span>.
138c0 20 20 20 76 61 72 20 78 3a 20 69 33 32 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 ...var.x:.i32;...............<sp
138e0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 an.class="sgr-32m">^.</span>.</s
13900 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 amp></pre></figure>.......<h4.id
13920 3d 22 75 6e 64 65 66 69 6e 65 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 ="undefined"><a.href="nav.xhtml#
13940 74 6f 63 2d 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 3c 61 20 toc-undefined">undefined</a>.<a.
13960 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 6e 65 64 22 3e c2 a7 class="hdr".href="#undefined">..
13980 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 55 73 65 20 3c 63 6f 64 65 3e 3c 73 </a></h4>........<p>Use.<code><s
139a0 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 2f pan.class="tok-null">undefined</
139c0 73 70 61 6e 3e 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 span></code>.to.leave.variables.
139e0 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 uninitialized:</p>.......<figure
13a00 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 ><figcaption.class="zig-cap"><ci
13a20 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 61 73 73 69 67 6e 5f 75 6e 64 65 66 69 6e 65 64 te.class="file">assign_undefined
13a40 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
13a60 64 65 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 de><span.class="tok-kw">const</s
13a80 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 pan>.print.=.<span.class="tok-bu
13aa0 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
13ac0 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
13ae0 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n>).debug.print;..<span.class="t
13b00 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
13b20 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
13b40 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=
13b60 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
13b80 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:.
13ba0 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
13bc0 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
13be0 69 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 ined</span>;.....x.=.<span.class
13c00 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 70 72 69 6e ="tok-number">1</span>;.....prin
13c20 74 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 64 t(<span.class="tok-str">&quot;{d
13c40 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 78 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c }&quot;</span>,..{x});.}</code><
13c60 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f /pre></figure><figure><figcaptio
13c80 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 n.class="shell-cap">Shell</figca
13ca0 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c ption><pre><samp>$.<kbd>zig.buil
13cc0 64 2d 65 78 65 20 61 73 73 69 67 6e 5f 75 6e 64 65 66 69 6e 65 64 2e 7a 69 67 3c 2f 6b 62 64 3e d-exe.assign_undefined.zig</kbd>
13ce0 0a 24 20 3c 6b 62 64 3e 2e 2f 61 73 73 69 67 6e 5f 75 6e 64 65 66 69 6e 65 64 3c 2f 6b 62 64 3e .$.<kbd>./assign_undefined</kbd>
13d00 0a 31 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 .1.</samp></pre></figure>.......
13d20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b <p>.......<code><span.class="tok
13d40 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 63 6f 64 65 3e 20 63 -null">undefined</span></code>.c
13d60 61 6e 20 62 65 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 63 an.be.<a.href="#Type-Coercion">c
13d80 6f 65 72 63 65 64 3c 2f 61 3e 20 74 6f 20 61 6e 79 20 74 79 70 65 2e 0a 20 20 20 20 20 20 20 20 oerced</a>.to.any.type..........
13da0 20 20 4f 6e 63 65 20 74 68 69 73 20 68 61 70 70 65 6e 73 2c 20 69 74 20 69 73 20 6e 6f 20 6c 6f ..Once.this.happens,.it.is.no.lo
13dc0 6e 67 65 72 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 64 65 74 65 63 74 20 74 68 61 74 20 74 68 65 nger.possible.to.detect.that.the
13de0 20 76 61 6c 75 65 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .value.is.<code><span.class="tok
13e00 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 63 6f 64 65 3e 2e 0a -null">undefined</span></code>..
13e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..............<code><span.class=
13e40 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 63 6f 64 "tok-null">undefined</span></cod
13e60 65 3e 20 6d 65 61 6e 73 20 74 68 65 20 76 61 6c 75 65 20 63 6f 75 6c 64 20 62 65 20 61 6e 79 74 e>.means.the.value.could.be.anyt
13e80 68 69 6e 67 2c 20 65 76 65 6e 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 69 73 20 6e 6f 6e hing,.even.something.that.is.non
13ea0 73 65 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 63 63 6f 72 64 69 6e sense...................accordin
13ec0 67 20 74 6f 20 74 68 65 20 74 79 70 65 2e 20 54 72 61 6e 73 6c 61 74 65 64 20 69 6e 74 6f 20 45 g.to.the.type..Translated.into.E
13ee0 6e 67 6c 69 73 68 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e nglish,.<code><span.class="tok-n
13f00 75 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 20 6d 65 61 ull">undefined</span></code>.mea
13f20 6e 73 20 22 4e 6f 74 20 61 20 6d 65 61 6e 69 6e 67 66 75 6c 0a 20 20 20 20 20 20 76 61 6c 75 65 ns."Not.a.meaningful.......value
13f40 2e 20 55 73 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 77 6f 75 6c 64 20 62 65 20 61 20 62 75 ..Using.this.value.would.be.a.bu
13f60 67 2e 20 54 68 65 20 76 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 75 6e 75 73 65 64 2c 20 6f 72 20 g..The.value.will.be.unused,.or.
13f80 6f 76 65 72 77 72 69 74 74 65 6e 20 62 65 66 6f 72 65 20 62 65 69 6e 67 20 75 73 65 64 2e 22 0a overwritten.before.being.used.".
13fa0 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 6e 20 3c 61 ......</p>.......<p>.......In.<a
13fc0 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 2c 20 5a .href="#Debug">Debug</a>.mode,.Z
13fe0 69 67 20 77 72 69 74 65 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ig.writes.<code><span.class="tok
14000 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
14020 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
14040 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
14060 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
14080 6d 6f 72 79 20 69 6e 20 61 20 64 65 62 75 67 67 65 72 2e 20 48 6f 77 65 76 65 72 2c 20 74 68 69 mory.in.a.debugger..However,.thi
140a0 73 20 62 65 68 61 76 69 6f 72 20 69 73 20 6f 6e 6c 79 20 61 6e 0a 20 20 20 20 20 20 69 6d 70 6c s.behavior.is.only.an.......impl
140c0 65 6d 65 6e 74 61 74 69 6f 6e 20 66 65 61 74 75 72 65 2c 20 6e 6f 74 20 61 20 6c 61 6e 67 75 61 ementation.feature,.not.a.langua
140e0 67 65 20 73 65 6d 61 6e 74 69 63 2c 20 73 6f 20 69 74 20 69 73 20 6e 6f 74 20 67 75 61 72 61 6e ge.semantic,.so.it.is.not.guaran
14100 74 65 65 64 20 74 6f 20 62 65 20 6f 62 73 65 72 76 61 62 6c 65 20 74 6f 20 63 6f 64 65 2e 0a 20 teed.to.be.observable.to.code...
14120 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 20 0a 20 .....</p>.......................
14140 20 20 20 20 20 3c 68 32 20 69 64 3d 22 5a 69 67 2d 54 65 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 .....<h2.id="Zig-Test"><a.href="
14160 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 nav.xhtml#toc-Zig-Test">Zig.Test
14180 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 67 2d 54 </a>.<a.class="hdr".href="#Zig-T
141a0 65 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 3e 0a 20 20 20 20 est">..</a></h2>........<p>.....
141c0 20 20 20 20 43 6f 64 65 20 77 72 69 74 74 65 6e 20 77 69 74 68 69 6e 20 6f 6e 65 20 6f 72 20 6d ....Code.written.within.one.or.m
141e0 6f 72 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 ore.<code><span.class="tok-kw">t
14200 65 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 63 est</span></code>.declarations.c
14220 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 65 6e 73 75 72 65 20 62 65 68 61 76 69 6f 72 20 6d 65 an.be.used.to.ensure.behavior.me
14240 65 74 73 20 65 78 70 65 63 74 61 74 69 6f 6e 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 ets.expectations:.......</p>....
14260 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
14280 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 69 6e g-cap"><cite.class="file">testin
142a0 67 5f 69 6e 74 72 6f 64 75 63 74 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 g_introduction.zig</cite></figca
142c0 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
142e0 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
14300 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
14320 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
14340 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
14360 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="
14380 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 78 70 65 63 74 20 61 64 64 4f 6e 65 20 61 64 64 tok-str">&quot;expect.addOne.add
143a0 73 20 6f 6e 65 20 74 6f 20 34 31 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 0a 20 20 20 20 s.one.to.41&quot;</span>.{......
143c0 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 65 <span.class="tok-comment">//.The
143e0 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 63 6f 6e 74 61 69 6e 73 20 75 73 65 66 75 .Standard.Library.contains.usefu
14400 6c 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 68 65 6c 70 20 63 72 65 61 74 65 20 74 65 73 74 73 l.functions.to.help.create.tests
14420 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
14440 6d 6d 65 6e 74 22 3e 2f 2f 20 60 65 78 70 65 63 74 60 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e mment">//.`expect`.is.a.function
14460 20 74 68 61 74 20 76 65 72 69 66 69 65 73 20 69 74 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 .that.verifies.its.argument.is.t
14480 72 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 rue.</span>.....<span.class="tok
144a0 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 74 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 61 6e 20 65 -comment">//.It.will.return.an.e
144c0 72 72 6f 72 20 69 66 20 69 74 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 66 61 6c 73 65 20 74 6f rror.if.its.argument.is.false.to
144e0 20 69 6e 64 69 63 61 74 65 20 61 20 66 61 69 6c 75 72 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 .indicate.a.failure.</span>.....
14500 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 74 72 <span.class="tok-comment">//.`tr
14520 79 60 20 69 73 20 75 73 65 64 20 74 6f 20 72 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 20 74 6f y`.is.used.to.return.an.error.to
14540 20 74 68 65 20 74 65 73 74 20 72 75 6e 6e 65 72 20 74 6f 20 6e 6f 74 69 66 79 20 69 74 20 74 68 .the.test.runner.to.notify.it.th
14560 61 74 20 74 68 65 20 74 65 73 74 20 66 61 69 6c 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c at.the.test.failed.</span>.....<
14580 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 73 span.class="tok-kw">try</span>.s
145a0 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 61 64 64 4f 6e 65 28 3c 73 70 61 6e 20 63 td.testing.expect(addOne(<span.c
145c0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 31 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 lass="tok-number">41</span>).==.
145e0 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
14600 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
14620 74 3c 2f 73 70 61 6e 3e 20 61 64 64 4f 6e 65 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 t</span>.addOne.{.....<span.clas
14640 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 20 74 65 73 74 20 6e 61 6d 65 20 63 s="tok-comment">//.A.test.name.c
14660 61 6e 20 61 6c 73 6f 20 62 65 20 77 72 69 74 74 65 6e 20 75 73 69 6e 67 20 61 6e 20 69 64 65 6e an.also.be.written.using.an.iden
14680 74 69 66 69 65 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 tifier.</span>.....<span.class="
146a0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 69 73 20 61 20 64 6f 63 74 65 73 tok-comment">//.This.is.a.doctes
146c0 74 2c 20 61 6e 64 20 73 65 72 76 65 73 20 61 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 t,.and.serves.as.documentation.f
146e0 6f 72 20 60 61 64 64 4f 6e 65 60 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c or.`addOne`.</span>.....<span.cl
14700 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 74 65 73 74 ass="tok-kw">try</span>.std.test
14720 69 6e 67 2e 65 78 70 65 63 74 28 61 64 64 4f 6e 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ing.expect(addOne(<span.class="t
14740 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 31 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 ok-number">41</span>).==.<span.c
14760 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 29 3b 0a 7d 0a lass="tok-number">42</span>);.}.
14780 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 2f 20 54 .<span.class="tok-comment">///.T
147a0 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 61 64 64 4f 6e 65 60 20 61 64 64 73 20 6f 6e 65 20 74 6f he.function.`addOne`.adds.one.to
147c0 20 74 68 65 20 6e 75 6d 62 65 72 20 67 69 76 65 6e 20 61 73 20 69 74 73 20 61 72 67 75 6d 65 6e .the.number.given.as.its.argumen
147e0 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 77 22 3e 66 t.</span>.<span.class="tok-kw">f
14800 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 64 n</span>.<span.class="tok-fn">ad
14820 64 4f 6e 65 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 dOne</span>(number:.<span.class=
14840 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
14860 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 20 3c ss="tok-type">i32</span>.{.....<
14880 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
148a0 3e 20 6e 75 6d 62 65 72 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 >.number.+.<span.class="tok-numb
148c0 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 2f 66 69 er">1</span>;.}</code></pre></fi
148e0 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
14900 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
14920 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 69 6e 67 5f e><samp>$.<kbd>zig.test.testing_
14940 69 6e 74 72 6f 64 75 63 74 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 69 introduction.zig</kbd>.1/2.testi
14960 6e 67 5f 69 6e 74 72 6f 64 75 63 74 69 6f 6e 2e 74 65 73 74 2e 65 78 70 65 63 74 20 61 64 64 4f ng_introduction.test.expect.addO
14980 6e 65 20 61 64 64 73 20 6f 6e 65 20 74 6f 20 34 31 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 ne.adds.one.to.41....OK.2/2.test
149a0 69 6e 67 5f 69 6e 74 72 6f 64 75 63 74 69 6f 6e 2e 64 65 63 6c 74 65 73 74 2e 61 64 64 4f 6e 65 ing_introduction.decltest.addOne
149c0 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d ....OK.All.2.tests.passed..</sam
149e0 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 p></pre></figure>.......<p>.....
14a00 20 20 20 20 54 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 69 ....The.<code.class="file">testi
14a20 6e 67 5f 69 6e 74 72 6f 64 75 63 74 69 6f 6e 2e 7a 69 67 3c 2f 63 6f 64 65 3e 20 63 6f 64 65 20 ng_introduction.zig</code>.code.
14a40 73 61 6d 70 6c 65 20 74 65 73 74 73 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 sample.tests.the.<a.href="#Funct
14a60 69 6f 6e 73 22 3e 66 75 6e 63 74 69 6f 6e 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 63 6f 64 65 ions">function</a>.........<code
14a80 3e 61 64 64 4f 6e 65 3c 2f 63 6f 64 65 3e 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 >addOne</code>.to.ensure.that.it
14aa0 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .returns.<code><span.class="tok-
14ac0 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 67 69 76 65 6e 20 74 number">42</span></code>.given.t
14ae0 68 65 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 he.input.........<code><span.cla
14b00 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 31 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e ss="tok-number">41</span></code>
14b20 2e 20 46 72 6f 6d 20 74 68 69 73 20 74 65 73 74 27 73 20 70 65 72 73 70 65 63 74 69 76 65 2c 20 ..From.this.test's.perspective,.
14b40 74 68 65 20 3c 63 6f 64 65 3e 61 64 64 4f 6e 65 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e the.<code>addOne</code>.function
14b60 20 69 73 0a 20 20 20 20 20 20 20 20 73 61 69 64 20 74 6f 20 62 65 20 3c 65 6d 3e 63 6f 64 65 20 .is.........said.to.be.<em>code.
14b80 75 6e 64 65 72 20 74 65 73 74 3c 2f 65 6d 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 under.test</em>........</p>.....
14ba0 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 3c 2f 6b 62 64 ..<p>.........<kbd>zig.test</kbd
14bc0 3e 20 69 73 20 61 20 74 6f 6f 6c 20 74 68 61 74 20 63 72 65 61 74 65 73 20 61 6e 64 20 72 75 6e >.is.a.tool.that.creates.and.run
14be0 73 20 61 20 74 65 73 74 20 62 75 69 6c 64 2e 20 42 79 20 64 65 66 61 75 6c 74 2c 20 69 74 20 62 s.a.test.build..By.default,.it.b
14c00 75 69 6c 64 73 20 61 6e 64 20 72 75 6e 73 20 61 6e 0a 20 20 20 20 20 20 20 20 65 78 65 63 75 74 uilds.and.runs.an.........execut
14c20 61 62 6c 65 20 70 72 6f 67 72 61 6d 20 75 73 69 6e 67 20 74 68 65 20 3c 65 6d 3e 64 65 66 61 75 able.program.using.the.<em>defau
14c40 6c 74 20 74 65 73 74 20 72 75 6e 6e 65 72 3c 2f 65 6d 3e 20 70 72 6f 76 69 64 65 64 20 62 79 20 lt.test.runner</em>.provided.by.
14c60 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 5a 69 67 2d 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 the.<a.href="#Zig-Standard-Libra
14c80 72 79 22 3e 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c 2f 61 3e 0a 20 20 20 ry">Zig.Standard.Library</a>....
14ca0 20 20 20 20 20 61 73 20 69 74 73 20 6d 61 69 6e 20 65 6e 74 72 79 20 70 6f 69 6e 74 2e 20 44 75 .....as.its.main.entry.point..Du
14cc0 72 69 6e 67 20 74 68 65 20 62 75 69 6c 64 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 ring.the.build,.<code><span.clas
14ce0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 s="tok-kw">test</span></code>.de
14d00 63 6c 61 72 61 74 69 6f 6e 73 20 66 6f 75 6e 64 20 77 68 69 6c 65 0a 20 20 20 20 20 20 20 20 3c clarations.found.while.........<
14d20 61 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 72 65 73 6f 6c a.href="#Root-Source-File">resol
14d40 76 69 6e 67 3c 2f 61 3e 20 74 68 65 20 67 69 76 65 6e 20 5a 69 67 20 73 6f 75 72 63 65 20 66 69 ving</a>.the.given.Zig.source.fi
14d60 6c 65 20 61 72 65 20 69 6e 63 6c 75 64 65 64 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 le.are.included.for.the.default.
14d80 74 65 73 74 20 72 75 6e 6e 65 72 0a 20 20 20 20 20 20 20 20 74 6f 20 72 75 6e 20 61 6e 64 20 72 test.runner.........to.run.and.r
14da0 65 70 6f 72 74 20 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 61 73 69 64 eport.on........</p>.......<asid
14dc0 65 3e 0a 20 20 20 20 20 20 20 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 64 69 e>.........This.documentation.di
14de0 73 63 75 73 73 65 73 20 74 68 65 20 66 65 61 74 75 72 65 73 20 6f 66 20 74 68 65 20 64 65 66 61 scusses.the.features.of.the.defa
14e00 75 6c 74 20 74 65 73 74 20 72 75 6e 6e 65 72 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 ult.test.runner.as.provided.by.t
14e20 68 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 2e 0a 20 20 20 20 20 20 20 he.Zig.Standard.Library.........
14e40 20 49 74 73 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 6c 6f 63 61 74 65 64 20 69 6e 20 3c .Its.source.code.is.located.in.<
14e60 63 6f 64 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6c 69 62 2f 74 65 73 74 5f 72 75 6e 6e 65 code.class="file">lib/test_runne
14e80 72 2e 7a 69 67 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 61 73 69 64 65 3e 0a 20 20 20 r.zig</code>........</aside>....
14ea0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 68 65 20 73 68 65 6c 6c 20 6f 75 74 70 75 74 20 ...<p>.........The.shell.output.
14ec0 73 68 6f 77 6e 20 61 62 6f 76 65 20 64 69 73 70 6c 61 79 73 20 74 77 6f 20 6c 69 6e 65 73 20 61 shown.above.displays.two.lines.a
14ee0 66 74 65 72 20 74 68 65 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 3c 2f 6b 62 64 3e 20 63 6f 6d fter.the.<kbd>zig.test</kbd>.com
14f00 6d 61 6e 64 2e 20 54 68 65 73 65 20 6c 69 6e 65 73 20 61 72 65 0a 20 20 20 20 20 20 20 20 70 72 mand..These.lines.are.........pr
14f20 69 6e 74 65 64 20 74 6f 20 73 74 61 6e 64 61 72 64 20 65 72 72 6f 72 20 62 79 20 74 68 65 20 64 inted.to.standard.error.by.the.d
14f40 65 66 61 75 6c 74 20 74 65 73 74 20 72 75 6e 6e 65 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 efault.test.runner:.......</p>..
14f60 20 20 20 20 20 3c 64 6c 3e 0a 20 20 20 20 20 20 20 20 3c 64 74 3e 3c 73 61 6d 70 3e 31 2f 32 20 .....<dl>.........<dt><samp>1/2.
14f80 74 65 73 74 69 6e 67 5f 69 6e 74 72 6f 64 75 63 74 69 6f 6e 2e 74 65 73 74 2e 65 78 70 65 63 74 testing_introduction.test.expect
14fa0 20 61 64 64 4f 6e 65 20 61 64 64 73 20 6f 6e 65 20 74 6f 20 34 31 2e 2e 2e 3c 2f 73 61 6d 70 3e .addOne.adds.one.to.41...</samp>
14fc0 3c 2f 64 74 3e 0a 20 20 20 20 20 20 20 20 3c 64 64 3e 4c 69 6e 65 73 20 6c 69 6b 65 20 74 68 69 </dt>.........<dd>Lines.like.thi
14fe0 73 20 69 6e 64 69 63 61 74 65 20 77 68 69 63 68 20 74 65 73 74 2c 20 6f 75 74 20 6f 66 20 74 68 s.indicate.which.test,.out.of.th
15000 65 20 74 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 74 65 73 74 73 2c 20 69 73 20 62 65 69 6e e.total.number.of.tests,.is.bein
15020 67 20 72 75 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 3c g.run............In.this.case,.<
15040 73 61 6d 70 3e 31 2f 32 3c 2f 73 61 6d 70 3e 20 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 samp>1/2</samp>.indicates.that.t
15060 68 65 20 66 69 72 73 74 20 74 65 73 74 2c 20 6f 75 74 20 6f 66 20 61 20 74 6f 74 61 6c 20 6f 66 he.first.test,.out.of.a.total.of
15080 20 74 77 6f 20 74 65 73 74 73 2c 0a 20 20 20 20 20 20 20 20 20 20 69 73 20 62 65 69 6e 67 20 72 .two.tests,...........is.being.r
150a0 75 6e 2e 20 4e 6f 74 65 20 74 68 61 74 2c 20 77 68 65 6e 20 74 68 65 20 74 65 73 74 20 72 75 6e un..Note.that,.when.the.test.run
150c0 6e 65 72 20 70 72 6f 67 72 61 6d 27 73 20 73 74 61 6e 64 61 72 64 20 65 72 72 6f 72 20 69 73 20 ner.program's.standard.error.is.
150e0 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 74 6f 20 74 68 65 20 74 65 72 6d 69 6e 61 6c output...........to.the.terminal
15100 2c 20 74 68 65 73 65 20 6c 69 6e 65 73 20 61 72 65 20 63 6c 65 61 72 65 64 20 77 68 65 6e 20 61 ,.these.lines.are.cleared.when.a
15120 20 74 65 73 74 20 73 75 63 63 65 65 64 73 2e 0a 20 20 20 20 20 20 20 20 3c 2f 64 64 3e 0a 20 20 .test.succeeds..........</dd>...
15140 20 20 20 20 20 20 3c 64 74 3e 3c 73 61 6d 70 3e 32 2f 32 20 74 65 73 74 69 6e 67 5f 69 6e 74 72 ......<dt><samp>2/2.testing_intr
15160 6f 64 75 63 74 69 6f 6e 2e 64 65 63 6c 74 65 73 74 2e 61 64 64 4f 6e 65 2e 2e 2e 3c 2f 73 61 6d oduction.decltest.addOne...</sam
15180 70 3e 3c 2f 64 74 3e 0a 20 20 20 20 20 20 20 20 3c 64 64 3e 57 68 65 6e 20 74 68 65 20 74 65 73 p></dt>.........<dd>When.the.tes
151a0 74 20 6e 61 6d 65 20 69 73 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2c 20 74 68 65 20 64 65 66 t.name.is.an.identifier,.the.def
151c0 61 75 6c 74 20 74 65 73 74 20 72 75 6e 6e 65 72 20 75 73 65 73 20 74 68 65 20 74 65 78 74 0a 20 ault.test.runner.uses.the.text..
151e0 20 20 20 20 20 20 20 20 20 64 65 63 6c 74 65 73 74 20 69 6e 73 74 65 61 64 20 6f 66 20 74 65 73 .........decltest.instead.of.tes
15200 74 2e 0a 20 20 20 20 20 20 20 20 3c 2f 64 64 3e 0a 20 20 20 20 20 20 20 20 3c 64 74 3e 3c 73 61 t..........</dd>.........<dt><sa
15220 6d 70 3e 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 3c 2f 73 61 6d 70 3e 3c 2f 64 mp>All.2.tests.passed.</samp></d
15240 74 3e 0a 20 20 20 20 20 20 20 20 3c 64 64 3e 54 68 69 73 20 6c 69 6e 65 20 69 6e 64 69 63 61 74 t>.........<dd>This.line.indicat
15260 65 73 20 74 68 65 20 74 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 74 65 73 74 73 20 74 68 61 es.the.total.number.of.tests.tha
15280 74 20 68 61 76 65 20 70 61 73 73 65 64 2e 3c 2f 64 64 3e 0a 20 20 20 20 20 20 3c 2f 64 6c 3e 0a t.have.passed.</dd>.......</dl>.
152a0 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 54 65 73 74 2d 44 65 63 6c 61 72 61 74 69 6f 6e 73 22 ......<h3.id="Test-Declarations"
152c0 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 65 73 74 2d 44 65 63 ><a.href="nav.xhtml#toc-Test-Dec
152e0 6c 61 72 61 74 69 6f 6e 73 22 3e 54 65 73 74 20 44 65 63 6c 61 72 61 74 69 6f 6e 73 3c 2f 61 3e larations">Test.Declarations</a>
15300 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 65 73 74 2d 44 65 63 6c .<a.class="hdr".href="#Test-Decl
15320 61 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 70 3e arations">..</a></h3>........<p>
15340 0a 20 20 20 20 20 20 20 20 54 65 73 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 63 6f 6e 74 61 .........Test.declarations.conta
15360 69 6e 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 4b 65 79 77 6f 72 64 2d 52 65 66 65 72 65 6e in.the.<a.href="#Keyword-Referen
15380 63 65 22 3e 6b 65 79 77 6f 72 64 3c 2f 61 3e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 ce">keyword</a>.<code><span.clas
153a0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 66 s="tok-kw">test</span></code>,.f
153c0 6f 6c 6c 6f 77 65 64 20 62 79 20 61 6e 0a 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 61 6c 20 6e ollowed.by.an.........optional.n
153e0 61 6d 65 20 77 72 69 74 74 65 6e 20 61 73 20 61 20 3c 61 20 68 72 65 66 3d 22 23 53 74 72 69 6e ame.written.as.a.<a.href="#Strin
15400 67 2d 4c 69 74 65 72 61 6c 73 2d 61 6e 64 2d 55 6e 69 63 6f 64 65 2d 43 6f 64 65 2d 50 6f 69 6e g-Literals-and-Unicode-Code-Poin
15420 74 2d 4c 69 74 65 72 61 6c 73 22 3e 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 3c 2f 61 3e 20 6f t-Literals">string.literal</a>.o
15440 72 20 61 6e 0a 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 49 64 65 6e 74 69 66 69 65 r.an.........<a.href="#Identifie
15460 72 73 22 3e 69 64 65 6e 74 69 66 69 65 72 3c 2f 61 3e 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 rs">identifier</a>,.followed.by.
15480 61 20 3c 61 20 68 72 65 66 3d 22 23 42 6c 6f 63 6b 73 22 3e 62 6c 6f 63 6b 3c 2f 61 3e 20 63 6f a.<a.href="#Blocks">block</a>.co
154a0 6e 74 61 69 6e 69 6e 67 20 61 6e 79 20 76 61 6c 69 64 20 5a 69 67 20 63 6f 64 65 20 74 68 61 74 ntaining.any.valid.Zig.code.that
154c0 0a 20 20 20 20 20 20 20 20 69 73 20 61 6c 6c 6f 77 65 64 20 69 6e 20 61 20 3c 61 20 68 72 65 66 .........is.allowed.in.a.<a.href
154e0 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e 66 75 6e 63 74 69 6f 6e 3c 2f 61 3e 2e 0a 20 20 20 20 ="#Functions">function</a>......
15500 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 6e 2d 6e 61 6d 65 64 20 74 65 73 74 20 62 ..</p>.......<p>Non-named.test.b
15520 6c 6f 63 6b 73 20 61 6c 77 61 79 73 20 72 75 6e 20 64 75 72 69 6e 67 20 74 65 73 74 20 62 75 69 locks.always.run.during.test.bui
15540 6c 64 73 20 61 6e 64 20 61 72 65 20 65 78 65 6d 70 74 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 lds.and.are.exempt.from.........
15560 3c 61 20 68 72 65 66 3d 22 23 53 6b 69 70 2d 54 65 73 74 73 22 3e 53 6b 69 70 20 54 65 73 74 73 <a.href="#Skip-Tests">Skip.Tests
15580 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 20 20 54 65 73 74 </a>.</p>.......<p>.........Test
155a0 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 72 65 20 73 69 6d 69 6c 61 72 20 74 6f 20 3c 61 20 .declarations.are.similar.to.<a.
155c0 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 3c 2f 61 3e 3a href="#Functions">Functions</a>:
155e0 20 74 68 65 79 20 68 61 76 65 20 61 20 72 65 74 75 72 6e 20 74 79 70 65 20 61 6e 64 20 61 20 62 .they.have.a.return.type.and.a.b
15600 6c 6f 63 6b 20 6f 66 20 63 6f 64 65 2e 20 54 68 65 20 69 6d 70 6c 69 63 69 74 0a 20 20 20 20 20 lock.of.code..The.implicit......
15620 20 20 20 72 65 74 75 72 6e 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c ...return.type.of.<code><span.cl
15640 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 ass="tok-kw">test</span></code>.
15660 69 73 20 74 68 65 20 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 is.the.<a.href="#Error-Union-Typ
15680 65 22 3e 45 72 72 6f 72 20 55 6e 69 6f 6e 20 54 79 70 65 3c 2f 61 3e 20 3c 63 6f 64 65 3e 3c 73 e">Error.Union.Type</a>.<code><s
156a0 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 73 pan.class="tok-type">anyerror</s
156c0 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 76 6f 69 64 pan>!<span.class="tok-type">void
156e0 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 61 6e 64 20 69 74 20 63 </span></code>,.........and.it.c
15700 61 6e 6e 6f 74 20 62 65 20 63 68 61 6e 67 65 64 2e 20 57 68 65 6e 20 61 20 5a 69 67 20 73 6f 75 annot.be.changed..When.a.Zig.sou
15720 72 63 65 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 62 75 69 6c 74 20 75 73 69 6e 67 20 74 68 65 20 rce.file.is.not.built.using.the.
15740 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 3c 2f 6b 62 64 3e 20 74 6f 6f 6c 2c 20 74 68 65 20 74 65 <kbd>zig.test</kbd>.tool,.the.te
15760 73 74 0a 20 20 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 72 65 20 6f 6d 69 74 st.........declarations.are.omit
15780 74 65 64 20 66 72 6f 6d 20 74 68 65 20 62 75 69 6c 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 ted.from.the.build........</p>..
157a0 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 65 73 74 20 64 65 63 6c 61 72 61 74 69 6f .....<p>.........Test.declaratio
157c0 6e 73 20 63 61 6e 20 62 65 20 77 72 69 74 74 65 6e 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 69 ns.can.be.written.in.the.same.fi
157e0 6c 65 2c 20 77 68 65 72 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 65 73 74 20 69 73 20 77 72 69 le,.where.code.under.test.is.wri
15800 74 74 65 6e 2c 20 6f 72 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 20 5a 69 67 20 73 6f 75 72 63 tten,.or.in.a.separate.Zig.sourc
15820 65 20 66 69 6c 65 2e 0a 20 20 20 20 20 20 20 20 53 69 6e 63 65 20 74 65 73 74 20 64 65 63 6c 61 e.file..........Since.test.decla
15840 72 61 74 69 6f 6e 73 20 61 72 65 20 74 6f 70 2d 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f rations.are.top-level.declaratio
15860 6e 73 2c 20 74 68 65 79 20 61 72 65 20 6f 72 64 65 72 2d 69 6e 64 65 70 65 6e 64 65 6e 74 20 61 ns,.they.are.order-independent.a
15880 6e 64 20 63 61 6e 0a 20 20 20 20 20 20 20 20 62 65 20 77 72 69 74 74 65 6e 20 62 65 66 6f 72 65 nd.can.........be.written.before
158a0 20 6f 72 20 61 66 74 65 72 20 74 68 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 65 73 74 2e 0a 20 .or.after.the.code.under.test...
158c0 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>
158e0 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 <ul>.<li><a.href="#The-Global-Er
15900 72 6f 72 2d 53 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 ror-Set">The.Global.Error.Set</a
15920 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 47 72 61 6d 6d 61 72 22 3e 47 72 ></li>.<li><a.href="#Grammar">Gr
15940 61 6d 6d 61 72 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 34 20 ammar</a></li>.</ul>........<h4.
15960 69 64 3d 22 44 6f 63 74 65 73 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c id="Doctests"><a.href="nav.xhtml
15980 23 74 6f 63 2d 44 6f 63 74 65 73 74 73 22 3e 44 6f 63 74 65 73 74 73 3c 2f 61 3e 20 3c 61 20 63 #toc-Doctests">Doctests</a>.<a.c
159a0 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 44 6f 63 74 65 73 74 73 22 3e c2 a7 3c 2f lass="hdr".href="#Doctests">..</
159c0 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 65 73 74 20 a></h4>........<p>.........Test.
159e0 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6e 61 6d 65 64 20 75 73 69 6e 67 20 61 6e 20 69 64 65 6e declarations.named.using.an.iden
15a00 74 69 66 69 65 72 20 61 72 65 20 3c 65 6d 3e 64 6f 63 74 65 73 74 73 3c 2f 65 6d 3e 2e 20 54 68 tifier.are.<em>doctests</em>..Th
15a20 65 20 69 64 65 6e 74 69 66 69 65 72 20 6d 75 73 74 20 72 65 66 65 72 20 74 6f 20 61 6e 6f 74 68 e.identifier.must.refer.to.anoth
15a40 65 72 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 6e 0a 20 20 20 20 20 20 20 20 73 63 6f 70 65 2e er.declaration.in.........scope.
15a60 20 41 20 64 6f 63 74 65 73 74 2c 20 6c 69 6b 65 20 61 20 3c 61 20 68 72 65 66 3d 22 23 44 6f 63 .A.doctest,.like.a.<a.href="#Doc
15a80 2d 43 6f 6d 6d 65 6e 74 73 22 3e 64 6f 63 20 63 6f 6d 6d 65 6e 74 3c 2f 61 3e 2c 20 73 65 72 76 -Comments">doc.comment</a>,.serv
15aa0 65 73 20 61 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 61 73 73 6f es.as.documentation.for.the.asso
15ac0 63 69 61 74 65 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 61 6e 64 0a 20 20 20 20 20 20 20 20 ciated.declaration,.and.........
15ae0 77 69 6c 6c 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 64 6f 63 will.appear.in.the.generated.doc
15b00 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e 0a umentation.for.the.declaration..
15b20 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 41 6e 20 ......</p>.......<p>.........An.
15b40 65 66 66 65 63 74 69 76 65 20 64 6f 63 74 65 73 74 20 73 68 6f 75 6c 64 20 62 65 20 73 65 6c 66 effective.doctest.should.be.self
15b60 2d 63 6f 6e 74 61 69 6e 65 64 20 61 6e 64 20 66 6f 63 75 73 65 64 20 6f 6e 20 74 68 65 20 64 65 -contained.and.focused.on.the.de
15b80 63 6c 61 72 61 74 69 6f 6e 20 62 65 69 6e 67 20 74 65 73 74 65 64 2c 20 61 6e 73 77 65 72 69 6e claration.being.tested,.answerin
15ba0 67 20 71 75 65 73 74 69 6f 6e 73 20 61 20 6e 65 77 0a 20 20 20 20 20 20 20 20 75 73 65 72 20 6d g.questions.a.new.........user.m
15bc0 69 67 68 74 20 68 61 76 65 20 61 62 6f 75 74 20 69 74 73 20 69 6e 74 65 72 66 61 63 65 20 6f 72 ight.have.about.its.interface.or
15be0 20 69 6e 74 65 6e 64 65 64 20 75 73 61 67 65 2c 20 77 68 69 6c 65 20 61 76 6f 69 64 69 6e 67 20 .intended.usage,.while.avoiding.
15c00 75 6e 6e 65 63 65 73 73 61 72 79 20 6f 72 20 63 6f 6e 66 75 73 69 6e 67 20 64 65 74 61 69 6c 73 unnecessary.or.confusing.details
15c20 2e 20 41 20 64 6f 63 74 65 73 74 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 20 20 61 20 73 75 62 ..A.doctest.is.not.........a.sub
15c40 73 74 69 74 75 74 65 20 66 6f 72 20 61 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 2c 20 62 75 74 20 72 stitute.for.a.doc.comment,.but.r
15c60 61 74 68 65 72 20 61 20 73 75 70 70 6c 65 6d 65 6e 74 20 61 6e 64 20 63 6f 6d 70 61 6e 69 6f 6e ather.a.supplement.and.companion
15c80 20 70 72 6f 76 69 64 69 6e 67 20 61 20 74 65 73 74 61 62 6c 65 2c 20 63 6f 64 65 2d 64 72 69 76 .providing.a.testable,.code-driv
15ca0 65 6e 20 65 78 61 6d 70 6c 65 2c 20 76 65 72 69 66 69 65 64 0a 20 20 20 20 20 20 20 20 62 79 20 en.example,.verified.........by.
15cc0 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 3c 2f 6b 62 64 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a <kbd>zig.test</kbd>........</p>.
15ce0 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 54 65 73 74 ....................<h3.id="Test
15d00 2d 46 61 69 6c 75 72 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 -Failure"><a.href="nav.xhtml#toc
15d20 2d 54 65 73 74 2d 46 61 69 6c 75 72 65 22 3e 54 65 73 74 20 46 61 69 6c 75 72 65 3c 2f 61 3e 20 -Test-Failure">Test.Failure</a>.
15d40 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 65 73 74 2d 46 61 69 6c 75 <a.class="hdr".href="#Test-Failu
15d60 72 65 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 20 re">..</a></h3>........<p>......
15d80 20 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 74 65 73 74 20 72 75 6e 6e 65 72 20 63 68 65 63 6b ...The.default.test.runner.check
15da0 73 20 66 6f 72 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 3e 65 72 72 6f 72 s.for.an.<a.href="#Errors">error
15dc0 3c 2f 61 3e 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 61 20 74 65 73 74 2e 0a 20 20 20 20 20 </a>.returned.from.a.test.......
15de0 20 20 20 57 68 65 6e 20 61 20 74 65 73 74 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 2c ...When.a.test.returns.an.error,
15e00 20 74 68 65 20 74 65 73 74 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 61 20 66 61 69 6c 75 72 .the.test.is.considered.a.failur
15e20 65 20 61 6e 64 20 69 74 73 20 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 52 65 74 75 72 6e e.and.its.<a.href="#Error-Return
15e40 2d 54 72 61 63 65 73 22 3e 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 72 61 63 65 3c 2f 61 3e 0a -Traces">error.return.trace</a>.
15e60 20 20 20 20 20 20 20 20 69 73 20 6f 75 74 70 75 74 20 74 6f 20 73 74 61 6e 64 61 72 64 20 65 72 ........is.output.to.standard.er
15e80 72 6f 72 2e 20 54 68 65 20 74 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 66 61 69 6c 75 72 65 ror..The.total.number.of.failure
15ea0 73 20 77 69 6c 6c 20 62 65 20 72 65 70 6f 72 74 65 64 20 61 66 74 65 72 20 61 6c 6c 20 74 65 73 s.will.be.reported.after.all.tes
15ec0 74 73 20 68 61 76 65 20 72 75 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 ts.have.run........</p>.......<f
15ee0 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
15f00 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 69 6e 67 5f 66 61 69 "><cite.class="file">testing_fai
15f20 6c 75 72 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 lure.zig</cite></figcaption><pre
15f40 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
15f60 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 2d t</span>.std.=.<span.class="tok-
15f80 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
15fa0 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
15fc0 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
15fe0 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">&
16000 71 75 6f 74 3b 65 78 70 65 63 74 20 74 68 69 73 20 74 6f 20 66 61 69 6c 26 71 75 6f 74 3b 3c 2f quot;expect.this.to.fail&quot;</
16020 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"
16040 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 3c >try</span>.std.testing.expect(<
16060 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 61 span.class="tok-null">false</spa
16080 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
160a0 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">&
160c0 71 75 6f 74 3b 65 78 70 65 63 74 20 74 68 69 73 20 74 6f 20 73 75 63 63 65 65 64 26 71 75 6f 74 quot;expect.this.to.succeed&quot
160e0 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-
16100 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 kw">try</span>.std.testing.expec
16120 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
16140 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 pan>);.}</code></pre></figure><f
16160 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 igure><figcaption.class="shell-c
16180 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 ap">Shell</figcaption><pre><samp
161a0 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 69 6e 67 5f 66 61 69 6c 75 72 65 >$.<kbd>zig.test.testing_failure
161c0 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 69 6e 67 5f 66 61 69 6c 75 72 65 2e 74 .zig</kbd>.1/2.testing_failure.t
161e0 65 73 74 2e 65 78 70 65 63 74 20 74 68 69 73 20 74 6f 20 66 61 69 6c 2e 2e 2e 20 46 41 49 4c 20 est.expect.this.to.fail....FAIL.
16200 28 54 65 73 74 55 6e 65 78 70 65 63 74 65 64 52 65 73 75 6c 74 29 0a 3c 73 70 61 6e 20 63 6c 61 (TestUnexpectedResult).<span.cla
16220 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 ss="sgr-1m">/home/andy/src/zig-0
16240 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 74 65 73 74 69 6e 67 2e 7a 69 67 3a 35 34 30 3a 31 34 .12.x/lib/std/testing.zig:540:14
16260 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 </span>:.<span.class="sgr-2m">0x
16280 31 30 33 38 66 63 66 20 69 6e 20 65 78 70 65 63 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 1038fcf.in.expect.(test)</span>.
162a0 20 20 20 20 69 66 20 28 21 6f 6b 29 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 54 65 73 74 55 6e ....if.(!ok).return.error.TestUn
162c0 65 78 70 65 63 74 65 64 52 65 73 75 6c 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 expectedResult;..............<sp
162e0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 an.class="sgr-32m">^</span>.<spa
16300 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f n.class="sgr-1m">/home/andy/src/
16320 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 69 6e 67 5f 66 61 zig-0.12.x/docgen_tmp/testing_fa
16340 69 6c 75 72 65 2e 7a 69 67 3a 34 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 ilure.zig:4:5</span>:.<span.clas
16360 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 30 65 35 20 69 6e 20 74 65 73 74 2e 65 78 70 s="sgr-2m">0x10390e5.in.test.exp
16380 65 63 74 20 74 68 69 73 20 74 6f 20 66 61 69 6c 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 ect.this.to.fail.(test)</span>..
163a0 20 20 20 74 72 79 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 66 61 6c 73 65 29 ...try.std.testing.expect(false)
163c0 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 ;.....<span.class="sgr-32m">^</s
163e0 70 61 6e 3e 0a 32 2f 32 20 74 65 73 74 69 6e 67 5f 66 61 69 6c 75 72 65 2e 74 65 73 74 2e 65 78 pan>.2/2.testing_failure.test.ex
16400 70 65 63 74 20 74 68 69 73 20 74 6f 20 73 75 63 63 65 65 64 2e 2e 2e 20 4f 4b 0a 31 20 70 61 73 pect.this.to.succeed....OK.1.pas
16420 73 65 64 3b 20 30 20 73 6b 69 70 70 65 64 3b 20 31 20 66 61 69 6c 65 64 2e 0a 65 72 72 6f 72 3a sed;.0.skipped;.1.failed..error:
16440 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 61 69 6c .the.following.test.command.fail
16460 65 64 20 77 69 74 68 20 65 78 69 74 20 63 6f 64 65 20 31 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f ed.with.exit.code.1:./home/andy/
16480 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 61 38 64 35 61 src/zig-0.12.x/zig-cache/o/a8d5a
164a0 63 62 64 65 31 61 33 30 35 33 64 37 39 33 33 61 35 39 30 39 65 62 61 61 34 66 36 2f 74 65 73 74 cbde1a3053d7933a5909ebaa4f6/test
164c0 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 .</samp></pre></figure>.........
164e0 20 20 20 20 20 3c 68 33 20 69 64 3d 22 53 6b 69 70 2d 54 65 73 74 73 22 3e 3c 61 20 68 72 65 66 .....<h3.id="Skip-Tests"><a.href
16500 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 6b 69 70 2d 54 65 73 74 73 22 3e 53 6b 69 70 ="nav.xhtml#toc-Skip-Tests">Skip
16520 20 54 65 73 74 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 .Tests</a>.<a.class="hdr".href="
16540 23 53 6b 69 70 2d 54 65 73 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 #Skip-Tests">..</a></h3>........
16560 3c 70 3e 0a 20 20 20 20 20 20 20 20 4f 6e 65 20 77 61 79 20 74 6f 20 73 6b 69 70 20 74 65 73 74 <p>.........One.way.to.skip.test
16580 73 20 69 73 20 74 6f 20 66 69 6c 74 65 72 20 74 68 65 6d 20 6f 75 74 20 62 79 20 75 73 69 6e 67 s.is.to.filter.them.out.by.using
165a0 20 74 68 65 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 3c 2f 6b 62 64 3e 20 63 6f 6d 6d 61 6e 64 .the.<kbd>zig.test</kbd>.command
165c0 20 6c 69 6e 65 20 70 61 72 61 6d 65 74 65 72 0a 20 20 20 20 20 20 20 20 3c 6b 62 64 3e 2d 2d 74 .line.parameter.........<kbd>--t
165e0 65 73 74 2d 66 69 6c 74 65 72 20 5b 74 65 78 74 5d 3c 2f 6b 62 64 3e 2e 20 54 68 69 73 20 6d 61 est-filter.[text]</kbd>..This.ma
16600 6b 65 73 20 74 68 65 20 74 65 73 74 20 62 75 69 6c 64 20 6f 6e 6c 79 20 69 6e 63 6c 75 64 65 20 kes.the.test.build.only.include.
16620 74 65 73 74 73 20 77 68 6f 73 65 20 6e 61 6d 65 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 20 20 tests.whose.name.contains.the...
16640 20 20 20 20 20 20 73 75 70 70 6c 69 65 64 20 66 69 6c 74 65 72 20 74 65 78 74 2e 20 4e 6f 74 65 ......supplied.filter.text..Note
16660 20 74 68 61 74 20 6e 6f 6e 2d 6e 61 6d 65 64 20 74 65 73 74 73 20 61 72 65 20 72 75 6e 20 65 76 .that.non-named.tests.are.run.ev
16680 65 6e 20 77 68 65 6e 20 75 73 69 6e 67 20 74 68 65 20 3c 6b 62 64 3e 2d 2d 74 65 73 74 2d 66 69 en.when.using.the.<kbd>--test-fi
166a0 6c 74 65 72 20 5b 74 65 78 74 5d 3c 2f 6b 62 64 3e 0a 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 6e lter.[text]</kbd>.........comman
166c0 64 20 6c 69 6e 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 d.line.parameter........</p>....
166e0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 6f 20 70 72 6f 67 72 61 6d 6d 61 74 69 63 61 6c ...<p>.........To.programmatical
16700 6c 79 20 73 6b 69 70 20 61 20 74 65 73 74 2c 20 6d 61 6b 65 20 61 20 3c 63 6f 64 65 3e 3c 73 70 ly.skip.a.test,.make.a.<code><sp
16720 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 3c 2f 63 an.class="tok-kw">test</span></c
16740 6f 64 65 3e 20 72 65 74 75 72 6e 20 74 68 65 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 3c 63 ode>.return.the.error.........<c
16760 6f 64 65 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 ode><span.class="tok-kw">error</
16780 73 70 61 6e 3e 2e 53 6b 69 70 5a 69 67 54 65 73 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 74 68 65 span>.SkipZigTest</code>.and.the
167a0 20 64 65 66 61 75 6c 74 20 74 65 73 74 20 72 75 6e 6e 65 72 20 77 69 6c 6c 20 63 6f 6e 73 69 64 .default.test.runner.will.consid
167c0 65 72 20 74 68 65 20 74 65 73 74 20 61 73 20 62 65 69 6e 67 20 73 6b 69 70 70 65 64 2e 0a 20 20 er.the.test.as.being.skipped....
167e0 20 20 20 20 20 20 54 68 65 20 74 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 73 6b 69 70 70 65 ......The.total.number.of.skippe
16800 64 20 74 65 73 74 73 20 77 69 6c 6c 20 62 65 20 72 65 70 6f 72 74 65 64 20 61 66 74 65 72 20 61 d.tests.will.be.reported.after.a
16820 6c 6c 20 74 65 73 74 73 20 68 61 76 65 20 72 75 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 ll.tests.have.run........</p>...
16840 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
16860 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 69 ig-cap"><cite.class="file">testi
16880 6e 67 5f 73 6b 69 70 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ng_skip.zig</cite></figcaption><
168a0 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 pre><code><span.class="tok-kw">t
168c0 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"
168e0 3e 26 71 75 6f 74 3b 74 68 69 73 20 77 69 6c 6c 20 62 65 20 73 6b 69 70 70 65 64 26 71 75 6f 74 >&quot;this.will.be.skipped&quot
16900 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-
16920 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
16940 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 53 6b 69 70 5a 69 67 54 65 73 74 3b ok-kw">error</span>.SkipZigTest;
16960 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e .}</code></pre></figure><figure>
16980 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 <figcaption.class="shell-cap">Sh
169a0 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 ell</figcaption><pre><samp>$.<kb
169c0 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 69 6e 67 5f 73 6b 69 70 2e 7a 69 67 3c 2f 6b 62 64 d>zig.test.testing_skip.zig</kbd
169e0 3e 0a 31 2f 31 20 74 65 73 74 69 6e 67 5f 73 6b 69 70 2e 74 65 73 74 2e 74 68 69 73 20 77 69 6c >.1/1.testing_skip.test.this.wil
16a00 6c 20 62 65 20 73 6b 69 70 70 65 64 2e 2e 2e 20 53 4b 49 50 0a 30 20 70 61 73 73 65 64 3b 20 31 l.be.skipped....SKIP.0.passed;.1
16a20 20 73 6b 69 70 70 65 64 3b 20 30 20 66 61 69 6c 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 .skipped;.0.failed..</samp></pre
16a40 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d ></figure>...............<h3.id=
16a60 22 52 65 70 6f 72 74 2d 4d 65 6d 6f 72 79 2d 4c 65 61 6b 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e "Report-Memory-Leaks"><a.href="n
16a80 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 65 70 6f 72 74 2d 4d 65 6d 6f 72 79 2d 4c 65 61 6b 73 av.xhtml#toc-Report-Memory-Leaks
16aa0 22 3e 52 65 70 6f 72 74 20 4d 65 6d 6f 72 79 20 4c 65 61 6b 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 ">Report.Memory.Leaks</a>.<a.cla
16ac0 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 52 65 70 6f 72 74 2d 4d 65 6d 6f 72 79 2d 4c 65 ss="hdr".href="#Report-Memory-Le
16ae0 61 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 20 20 20 20 aks">..</a></h3>........<p>.....
16b00 20 20 20 20 57 68 65 6e 20 63 6f 64 65 20 61 6c 6c 6f 63 61 74 65 73 20 3c 61 20 68 72 65 66 3d ....When.code.allocates.<a.href=
16b20 22 23 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 79 3c 2f 61 3e 20 75 73 69 6e 67 20 74 68 65 20 3c "#Memory">Memory</a>.using.the.<
16b40 61 20 68 72 65 66 3d 22 23 5a 69 67 2d 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 72 79 22 3e 5a a.href="#Zig-Standard-Library">Z
16b60 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c 2f 61 3e 27 73 20 74 65 73 74 69 6e ig.Standard.Library</a>'s.testin
16b80 67 20 61 6c 6c 6f 63 61 74 6f 72 2c 0a 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 74 64 2e 74 g.allocator,.........<code>std.t
16ba0 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 20 64 65 66 esting.allocator</code>,.the.def
16bc0 61 75 6c 74 20 74 65 73 74 20 72 75 6e 6e 65 72 20 77 69 6c 6c 20 72 65 70 6f 72 74 20 61 6e 79 ault.test.runner.will.report.any
16be0 20 6c 65 61 6b 73 20 74 68 61 74 20 61 72 65 0a 20 20 20 20 20 20 20 20 66 6f 75 6e 64 20 66 72 .leaks.that.are.........found.fr
16c00 6f 6d 20 75 73 69 6e 67 20 74 68 65 20 74 65 73 74 69 6e 67 20 61 6c 6c 6f 63 61 74 6f 72 3a 0a om.using.the.testing.allocator:.
16c20 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 ......</p>.......<figure><figcap
16c40 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 tion.class="zig-cap"><cite.class
16c60 3d 22 66 69 6c 65 22 3e 74 65 73 74 69 6e 67 5f 64 65 74 65 63 74 5f 6c 65 61 6b 2e 7a 69 67 3c ="file">testing_detect_leak.zig<
16c80 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
16ca0 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>.
16cc0 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">
16ce0 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-
16d00 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 3c str">&quot;std&quot;</span>);..<
16d20 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>.
16d40 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 64 65 74 65 <span.class="tok-str">&quot;dete
16d60 63 74 20 6c 65 61 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 ct.leak&quot;</span>.{.....<span
16d80 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 6c 69 73 74 20 .class="tok-kw">var</span>.list.
16da0 3d 20 73 74 64 2e 41 72 72 61 79 4c 69 73 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b =.std.ArrayList(<span.class="tok
16dc0 2d 74 79 70 65 22 3e 75 32 31 3c 2f 73 70 61 6e 3e 29 2e 69 6e 69 74 28 73 74 64 2e 74 65 73 74 -type">u21</span>).init(std.test
16de0 69 6e 67 2e 61 6c 6c 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 ing.allocator);.....<span.class=
16e00 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6d 69 73 73 69 6e 67 20 60 64 65 66 65 72 20 "tok-comment">//.missing.`defer.
16e20 6c 69 73 74 2e 64 65 69 6e 69 74 28 29 3b 60 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e list.deinit();`</span>.....<span
16e40 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 6c 69 73 74 2e .class="tok-kw">try</span>.list.
16e60 61 70 70 65 6e 64 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 e2 98 append(<span.class="tok-str">'..
16e80 94 27 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 .'</span>);......<span.class="to
16ea0 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 k-kw">try</span>.std.testing.exp
16ec0 65 63 74 28 6c 69 73 74 2e 69 74 65 6d 73 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ect(list.items.len.==.<span.clas
16ee0 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 3c 2f 63 6f 64 s="tok-number">1</span>);.}</cod
16f00 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
16f20 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
16f40 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 gcaption><pre><samp>$.<kbd>zig.t
16f60 65 73 74 20 74 65 73 74 69 6e 67 5f 64 65 74 65 63 74 5f 6c 65 61 6b 2e 7a 69 67 3c 2f 6b 62 64 est.testing_detect_leak.zig</kbd
16f80 3e 0a 31 2f 31 20 74 65 73 74 69 6e 67 5f 64 65 74 65 63 74 5f 6c 65 61 6b 2e 74 65 73 74 2e 64 >.1/1.testing_detect_leak.test.d
16fa0 65 74 65 63 74 20 6c 65 61 6b 2e 2e 2e 20 4f 4b 0a 5b 67 70 61 5d 20 28 65 72 72 29 3a 20 6d 65 etect.leak....OK.[gpa].(err):.me
16fc0 6d 6f 72 79 20 61 64 64 72 65 73 73 20 30 78 37 66 33 64 36 34 36 39 61 30 30 30 20 6c 65 61 6b mory.address.0x7f3d6469a000.leak
16fe0 65 64 3a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 ed:.<span.class="sgr-1m">/home/a
17000 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 61 72 72 61 79 ndy/src/zig-0.12.x/lib/std/array
17020 5f 6c 69 73 74 2e 7a 69 67 3a 34 35 37 3a 36 37 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 _list.zig:457:67</span>:.<span.c
17040 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 62 38 65 65 20 69 6e 20 65 6e 73 75 72 lass="sgr-2m">0x104b8ee.in.ensur
17060 65 54 6f 74 61 6c 43 61 70 61 63 69 74 79 50 72 65 63 69 73 65 20 28 74 65 73 74 29 3c 2f 73 70 eTotalCapacityPrecise.(test)</sp
17080 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 6e 65 77 5f 6d 65 an>.................const.new_me
170a0 6d 6f 72 79 20 3d 20 74 72 79 20 73 65 6c 66 2e 61 6c 6c 6f 63 61 74 6f 72 2e 61 6c 69 67 6e 65 mory.=.try.self.allocator.aligne
170c0 64 41 6c 6c 6f 63 28 54 2c 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 6e 65 77 5f 63 61 70 61 63 69 74 dAlloc(T,.alignment,.new_capacit
170e0 79 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 20 y);.............................
17100 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 ................................
17120 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 ......<span.class="sgr-32m">^</s
17140 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f pan>.<span.class="sgr-1m">/home/
17160 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 61 72 72 61 andy/src/zig-0.12.x/lib/std/arra
17180 79 5f 6c 69 73 74 2e 7a 69 67 3a 34 33 34 3a 35 31 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 y_list.zig:434:51</span>:.<span.
171a0 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 31 38 32 30 20 69 6e 20 65 6e 73 75 class="sgr-2m">0x1041820.in.ensu
171c0 72 65 54 6f 74 61 6c 43 61 70 61 63 69 74 79 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 reTotalCapacity.(test)</span>...
171e0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 65 6e 73 75 72 65 54 6f 74 61 ..........return.self.ensureTota
17200 6c 43 61 70 61 63 69 74 79 50 72 65 63 69 73 65 28 62 65 74 74 65 72 5f 63 61 70 61 63 69 74 79 lCapacityPrecise(better_capacity
17220 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 20 20 );..............................
17240 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
17260 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="sgr-32m">^</span>.<span.class=
17280 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 "sgr-1m">/home/andy/src/zig-0.12
172a0 2e 78 2f 6c 69 62 2f 73 74 64 2f 61 72 72 61 79 5f 6c 69 73 74 2e 7a 69 67 3a 34 38 33 3a 34 31 .x/lib/std/array_list.zig:483:41
172c0 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 </span>:.<span.class="sgr-2m">0x
172e0 31 30 33 65 32 31 30 20 69 6e 20 61 64 64 4f 6e 65 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 103e210.in.addOne.(test)</span>.
17300 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 20 73 65 6c 66 2e 65 6e 73 75 72 65 54 6f 74 61 6c ............try.self.ensureTotal
17320 43 61 70 61 63 69 74 79 28 6e 65 77 6c 65 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Capacity(newlen);...............
17340 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 20 ..........................<span.
17360 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 class="sgr-32m">^</span>.<span.c
17380 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 lass="sgr-1m">/home/andy/src/zig
173a0 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 61 72 72 61 79 5f 6c 69 73 74 2e 7a 69 67 3a 32 -0.12.x/lib/std/array_list.zig:2
173c0 36 32 3a 34 39 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 62:49</span>:.<span.class="sgr-2
173e0 6d 22 3e 30 78 31 30 33 62 31 34 64 20 69 6e 20 61 70 70 65 6e 64 20 28 74 65 73 74 29 3c 2f 73 m">0x103b14d.in.append.(test)</s
17400 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 6e 65 77 5f 69 74 65 6d 5f pan>.............const.new_item_
17420 70 74 72 20 3d 20 74 72 79 20 73 65 6c 66 2e 61 64 64 4f 6e 65 28 29 3b 0a 20 20 20 20 20 20 20 ptr.=.try.self.addOne();........
17440 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 ................................
17460 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e .........<span.class="sgr-32m">^
17480 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f </span>.<span.class="sgr-1m">/ho
174a0 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d me/andy/src/zig-0.12.x/docgen_tm
174c0 70 2f 74 65 73 74 69 6e 67 5f 64 65 74 65 63 74 5f 6c 65 61 6b 2e 7a 69 67 3a 36 3a 32 30 3c 2f p/testing_detect_leak.zig:6:20</
174e0 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 span>:.<span.class="sgr-2m">0x10
17500 33 39 33 35 32 20 69 6e 20 74 65 73 74 2e 64 65 74 65 63 74 20 6c 65 61 6b 20 28 74 65 73 74 29 39352.in.test.detect.leak.(test)
17520 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 74 72 79 20 6c 69 73 74 2e 61 70 70 65 6e 64 28 27 e2 98 94 </span>.....try.list.append('...
17540 27 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 6e 20 63 6c 61 ');....................<span.cla
17560 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 ss="sgr-32m">^</span>.<span.clas
17580 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e s="sgr-1m">/home/andy/src/zig-0.
175a0 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 12.x/lib/compiler/test_runner.zi
175c0 67 3a 31 35 38 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 g:158:25</span>:.<span.class="sg
175e0 72 2d 32 6d 22 3e 30 78 31 30 34 38 39 36 64 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 r-2m">0x104896d.in.mainTerminal.
17600 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 74 65 73 74 5f 66 (test)</span>.........if.(test_f
17620 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 20 20 20 20 20 20 n.func()).|_|.{.................
17640 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c ........<span.class="sgr-32m">^<
17660 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d /span>.<span.class="sgr-1m">/hom
17680 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c e/andy/src/zig-0.12.x/lib/compil
176a0 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a er/test_runner.zig:35:28</span>:
176c0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 65 61 65 62 20 .<span.class="sgr-2m">0x103eaeb.
176e0 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 20 20 20 20 72 65 in.main.(test)</span>.........re
17700 74 75 72 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 turn.mainTerminal();............
17720 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 73 67 72 ................<span.class="sgr
17740 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d -32m">^</span>.<span.class="sgr-
17760 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 1m">/home/andy/src/zig-0.12.x/li
17780 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c b/std/start.zig:501:22</span>:.<
177a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 62 36 34 39 20 69 6e span.class="sgr-2m">0x103b649.in
177c0 20 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 70 .posixCallMainAndExit.(test)</sp
177e0 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 20 an>.............root.main();....
17800 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 73 ..................<span.class="s
17820 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 gr-32m">^</span>.<span.class="sg
17840 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f r-1m">/home/andy/src/zig-0.12.x/
17860 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 lib/std/start.zig:253:5</span>:.
17880 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 62 31 62 31 20 69 <span.class="sgr-2m">0x103b1b1.i
178a0 6e 20 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 61 73 6d 20 76 n._start.(test)</span>.....asm.v
178c0 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a olatile.(switch.(native_arch).{.
178e0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 ....<span.class="sgr-32m">^</spa
17900 6e 3e 0a 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 31 20 65 72 72 6f 72 73 n>..All.1.tests.passed..1.errors
17920 20 77 65 72 65 20 6c 6f 67 67 65 64 2e 0a 31 20 74 65 73 74 73 20 6c 65 61 6b 65 64 20 6d 65 6d .were.logged..1.tests.leaked.mem
17940 6f 72 79 2e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 ory..error:.the.following.test.c
17960 6f 6d 6d 61 6e 64 20 66 61 69 6c 65 64 20 77 69 74 68 20 65 78 69 74 20 63 6f 64 65 20 31 3a 0a ommand.failed.with.exit.code.1:.
17980 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 /home/andy/src/zig-0.12.x/zig-ca
179a0 63 68 65 2f 6f 2f 38 62 34 35 63 66 63 64 37 30 65 38 66 32 38 33 30 64 39 61 37 34 61 33 34 34 che/o/8b45cfcd70e8f2830d9a74a344
179c0 63 33 63 36 37 30 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 c3c670/test.</samp></pre></figur
179e0 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 3c 6c e>.......<p>See.also:</p><ul>.<l
17a00 69 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 i><a.href="#defer">defer</a></li
17a20 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 79 3c 2f >.<li><a.href="#Memory">Memory</
17a40 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 33 20 a></li>.</ul>...............<h3.
17a60 69 64 3d 22 44 65 74 65 63 74 69 6e 67 2d 54 65 73 74 2d 42 75 69 6c 64 22 3e 3c 61 20 68 72 65 id="Detecting-Test-Build"><a.hre
17a80 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 44 65 74 65 63 74 69 6e 67 2d 54 65 73 74 2d f="nav.xhtml#toc-Detecting-Test-
17aa0 42 75 69 6c 64 22 3e 44 65 74 65 63 74 69 6e 67 20 54 65 73 74 20 42 75 69 6c 64 3c 2f 61 3e 20 Build">Detecting.Test.Build</a>.
17ac0 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 44 65 74 65 63 74 69 6e 67 2d <a.class="hdr".href="#Detecting-
17ae0 54 65 73 74 2d 42 75 69 6c 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c Test-Build">..</a></h3>........<
17b00 70 3e 0a 20 20 20 20 20 20 20 20 55 73 65 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d p>.........Use.the.<a.href="#Com
17b20 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 63 6f 6d 70 69 6c 65 20 76 61 72 69 61 62 6c 65 pile-Variables">compile.variable
17b40 3c 2f 61 3e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c </a>.<code><span.class="tok-buil
17b60 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=
17b80 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
17ba0 70 61 6e 3e 29 2e 69 73 5f 74 65 73 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 74 6f 20 pan>).is_test</code>.........to.
17bc0 64 65 74 65 63 74 20 61 20 74 65 73 74 20 62 75 69 6c 64 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a detect.a.test.build:.......</p>.
17be0 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d ......<figure><figcaption.class=
17c00 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 "zig-cap"><cite.class="file">tes
17c20 74 69 6e 67 5f 64 65 74 65 63 74 5f 74 65 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 ting_detect_test.zig</cite></fig
17c40 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
17c60 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 6e tok-kw">const</span>.std.=.<span
17c80 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
17ca0 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;
17cc0 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 22 std&quot;</span>);.<span.class="
17ce0 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.=.<
17d00 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
17d20 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
17d40 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 6e uot;builtin&quot;</span>);.<span
17d60 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 78 70 .class="tok-kw">const</span>.exp
17d80 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e ect.=.std.testing.expect;..<span
17da0 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
17dc0 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 2e n.class="tok-str">&quot;builtin.
17de0 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 3c 73 70 61 6e is_test&quot;</span>.{.....<span
17e00 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
17e20 74 28 69 73 41 54 65 73 74 28 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f t(isATest());.}..<span.class="to
17e40 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
17e60 2d 66 6e 22 3e 69 73 41 54 65 73 74 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 -fn">isATest</span>().<span.clas
17e80 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 7b 0a 20 20 20 20 3c s="tok-type">bool</span>.{.....<
17ea0 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
17ec0 3e 20 62 75 69 6c 74 69 6e 2e 69 73 5f 74 65 73 74 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 >.builtin.is_test;.}</code></pre
17ee0 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c ></figure><figure><figcaption.cl
17f00 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f ass="shell-cap">Shell</figcaptio
17f20 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 n><pre><samp>$.<kbd>zig.test.tes
17f40 74 69 6e 67 5f 64 65 74 65 63 74 5f 74 65 73 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 ting_detect_test.zig</kbd>.1/1.t
17f60 65 73 74 69 6e 67 5f 64 65 74 65 63 74 5f 74 65 73 74 2e 74 65 73 74 2e 62 75 69 6c 74 69 6e 2e esting_detect_test.test.builtin.
17f80 69 73 5f 74 65 73 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 is_test....OK.All.1.tests.passed
17fa0 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a ..</samp></pre></figure>........
17fc0 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 54 65 73 74 2d 4f 75 74 70 75 74 2d 61 6e 64 2d 4c 6f ......<h3.id="Test-Output-and-Lo
17fe0 67 67 69 6e 67 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 65 gging"><a.href="nav.xhtml#toc-Te
18000 73 74 2d 4f 75 74 70 75 74 2d 61 6e 64 2d 4c 6f 67 67 69 6e 67 22 3e 54 65 73 74 20 4f 75 74 70 st-Output-and-Logging">Test.Outp
18020 75 74 20 61 6e 64 20 4c 6f 67 67 69 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 ut.and.Logging</a>.<a.class="hdr
18040 22 20 68 72 65 66 3d 22 23 54 65 73 74 2d 4f 75 74 70 75 74 2d 61 6e 64 2d 4c 6f 67 67 69 6e 67 ".href="#Test-Output-and-Logging
18060 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 20 20 20 ">..</a></h3>........<p>........
18080 20 54 68 65 20 64 65 66 61 75 6c 74 20 74 65 73 74 20 72 75 6e 6e 65 72 20 61 6e 64 20 74 68 65 .The.default.test.runner.and.the
180a0 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 27 73 20 74 65 73 74 69 6e 67 20 .Zig.Standard.Library's.testing.
180c0 6e 61 6d 65 73 70 61 63 65 20 6f 75 74 70 75 74 20 6d 65 73 73 61 67 65 73 20 74 6f 20 73 74 61 namespace.output.messages.to.sta
180e0 6e 64 61 72 64 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 0a 20 ndard.error........</p>.........
18100 20 20 20 20 20 3c 68 33 20 69 64 3d 22 54 68 65 2d 54 65 73 74 69 6e 67 2d 4e 61 6d 65 73 70 61 .....<h3.id="The-Testing-Namespa
18120 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 68 65 2d 54 ce"><a.href="nav.xhtml#toc-The-T
18140 65 73 74 69 6e 67 2d 4e 61 6d 65 73 70 61 63 65 22 3e 54 68 65 20 54 65 73 74 69 6e 67 20 4e 61 esting-Namespace">The.Testing.Na
18160 6d 65 73 70 61 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 mespace</a>.<a.class="hdr".href=
18180 22 23 54 68 65 2d 54 65 73 74 69 6e 67 2d 4e 61 6d 65 73 70 61 63 65 22 3e c2 a7 3c 2f 61 3e 3c "#The-Testing-Namespace">..</a><
181a0 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 68 65 20 5a 69 67 20 /h3>........<p>.........The.Zig.
181c0 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 27 73 20 3c 63 6f 64 65 3e 74 65 73 74 69 6e 67 Standard.Library's.<code>testing
181e0 3c 2f 63 6f 64 65 3e 20 6e 61 6d 65 73 70 61 63 65 20 63 6f 6e 74 61 69 6e 73 20 75 73 65 66 75 </code>.namespace.contains.usefu
18200 6c 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 68 65 6c 70 0a 20 20 20 20 20 20 20 20 79 6f 75 20 l.functions.to.help.........you.
18220 63 72 65 61 74 65 20 74 65 73 74 73 2e 20 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 create.tests..In.addition.to.the
18240 20 3c 63 6f 64 65 3e 65 78 70 65 63 74 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 2c 20 74 .<code>expect</code>.function,.t
18260 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 75 73 65 73 20 61 20 63 6f 75 70 6c 65 20 6f 66 20 6d 6f his.document.uses.a.couple.of.mo
18280 72 65 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 61 73 20 65 78 65 6d 70 6c 69 66 re.functions.........as.exemplif
182a0 69 65 64 20 68 65 72 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 ied.here:.......</p>.......<figu
182c0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
182e0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 69 6e 67 5f 6e 61 6d 65 73 70 cite.class="file">testing_namesp
18300 61 63 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ace.zig</cite></figcaption><pre>
18320 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
18340 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
18360 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
18380 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
183a0 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 74 an>);..<span.class="tok-kw">test
183c0 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
183e0 75 6f 74 3b 65 78 70 65 63 74 45 71 75 61 6c 20 64 65 6d 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e uot;expectEqual.demo&quot;</span
18400 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
18420 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 65 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d st</span>.expected:.<span.class=
18440 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
18460 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 20 20 20 20 ass="tok-number">42</span>;.....
18480 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
184a0 3e 20 61 63 74 75 61 6c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 >.actual.=.<span.class="tok-numb
184c0 65 72 22 3e 34 32 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 er">42</span>;......<span.class=
184e0 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 66 69 72 73 74 20 61 72 67 75 6d "tok-comment">//.The.first.argum
18500 65 6e 74 20 74 6f 20 60 65 78 70 65 63 74 45 71 75 61 6c 60 20 69 73 20 74 68 65 20 6b 6e 6f 77 ent.to.`expectEqual`.is.the.know
18520 6e 2c 20 65 78 70 65 63 74 65 64 2c 20 72 65 73 75 6c 74 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 n,.expected,.result.</span>.....
18540 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 65 <span.class="tok-comment">//.The
18560 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 69 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f .second.argument.is.the.result.o
18580 66 20 73 6f 6d 65 20 65 78 70 72 65 73 73 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 f.some.expression.</span>.....<s
185a0 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 61 pan.class="tok-comment">//.The.a
185c0 63 74 75 61 6c 27 73 20 74 79 70 65 20 69 73 20 63 61 73 74 65 64 20 74 6f 20 74 68 65 20 74 79 ctual's.type.is.casted.to.the.ty
185e0 70 65 20 6f 66 20 65 78 70 65 63 74 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e pe.of.expected.</span>.....<span
18600 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 74 .class="tok-kw">try</span>.std.t
18620 65 73 74 69 6e 67 2e 65 78 70 65 63 74 45 71 75 61 6c 28 65 78 70 65 63 74 65 64 2c 20 61 63 74 esting.expectEqual(expected,.act
18640 75 61 6c 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 ual);.}..<span.class="tok-kw">te
18660 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">
18680 26 71 75 6f 74 3b 65 78 70 65 63 74 45 72 72 6f 72 20 64 65 6d 6f 26 71 75 6f 74 3b 3c 2f 73 70 &quot;expectError.demo&quot;</sp
186a0 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
186c0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 65 64 5f 65 72 72 6f 72 20 3d 20 3c 73 70 onst</span>.expected_error.=.<sp
186e0 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 44 an.class="tok-kw">error</span>.D
18700 65 6d 6f 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 6f 6b 2d 6b emoError;.....<span.class="tok-k
18720 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 63 74 75 61 6c 5f 65 72 72 6f 72 5f 75 6e 69 w">const</span>.actual_error_uni
18740 6f 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 61 6e 79 65 72 on:.<span.class="tok-type">anyer
18760 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
18780 22 3e 76 6f 69 64 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 ">void</span>.=.<span.class="tok
187a0 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 44 65 6d 6f 45 72 72 6f 72 3b 0a 0a 20 20 -kw">error</span>.DemoError;....
187c0 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 60 ..<span.class="tok-comment">//.`
187e0 65 78 70 65 63 74 45 72 72 6f 72 60 20 77 69 6c 6c 20 66 61 69 6c 20 77 68 65 6e 20 74 68 65 20 expectError`.will.fail.when.the.
18800 61 63 74 75 61 6c 20 65 72 72 6f 72 20 69 73 20 64 69 66 66 65 72 65 6e 74 20 74 68 61 6e 3c 2f actual.error.is.different.than</
18820 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 65 span>.....<span.class="tok-comme
18840 6e 74 22 3e 2f 2f 20 74 68 65 20 65 78 70 65 63 74 65 64 20 65 72 72 6f 72 2e 3c 2f 73 70 61 6e nt">//.the.expected.error.</span
18860 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 74 72 79 3c 2f >.....<span.class="tok-kw">try</
18880 73 70 61 6e 3e 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 45 72 72 6f 72 28 65 78 span>.std.testing.expectError(ex
188a0 70 65 63 74 65 64 5f 65 72 72 6f 72 2c 20 61 63 74 75 61 6c 5f 65 72 72 6f 72 5f 75 6e 69 6f 6e pected_error,.actual_error_union
188c0 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 );.}</code></pre></figure><figur
188e0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
18900 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
18920 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 69 6e 67 5f 6e 61 6d 65 73 70 61 63 65 2e 7a kbd>zig.test.testing_namespace.z
18940 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 69 6e 67 5f 6e 61 6d 65 73 70 61 63 65 2e 74 ig</kbd>.1/2.testing_namespace.t
18960 65 73 74 2e 65 78 70 65 63 74 45 71 75 61 6c 20 64 65 6d 6f 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 est.expectEqual.demo....OK.2/2.t
18980 65 73 74 69 6e 67 5f 6e 61 6d 65 73 70 61 63 65 2e 74 65 73 74 2e 65 78 70 65 63 74 45 72 72 6f esting_namespace.test.expectErro
189a0 72 20 64 65 6d 6f 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e r.demo....OK.All.2.tests.passed.
189c0 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 .</samp></pre></figure>.......<p
189e0 3e 54 68 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 61 6c 73 6f 20 63 >The.Zig.Standard.Library.also.c
18a00 6f 6e 74 61 69 6e 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 6f 6d 70 61 72 65 20 3c 61 20 ontains.functions.to.compare.<a.
18a20 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 2c 20 73 74 72 69 6e href="#Slices">Slices</a>,.strin
18a40 67 73 2c 20 61 6e 64 20 6d 6f 72 65 2e 20 53 65 65 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 gs,.and.more..See.the.rest.of.th
18a60 65 0a 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 74 64 2e 74 65 73 74 69 6e 67 3c 2f 63 6f 64 e.........<code>std.testing</cod
18a80 65 3e 20 6e 61 6d 65 73 70 61 63 65 20 69 6e 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 5a 69 e>.namespace.in.the.<a.href="#Zi
18aa0 67 2d 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 72 79 22 3e 5a 69 67 20 53 74 61 6e 64 61 72 64 g-Standard-Library">Zig.Standard
18ac0 20 4c 69 62 72 61 72 79 3c 2f 61 3e 20 66 6f 72 20 6d 6f 72 65 20 61 76 61 69 6c 61 62 6c 65 20 .Library</a>.for.more.available.
18ae0 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 functions.</p>..............<h3.
18b00 69 64 3d 22 54 65 73 74 2d 54 6f 6f 6c 2d 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 22 3e 3c 61 20 id="Test-Tool-Documentation"><a.
18b20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 65 73 74 2d 54 6f 6f 6c 2d 44 6f href="nav.xhtml#toc-Test-Tool-Do
18b40 63 75 6d 65 6e 74 61 74 69 6f 6e 22 3e 54 65 73 74 20 54 6f 6f 6c 20 44 6f 63 75 6d 65 6e 74 61 cumentation">Test.Tool.Documenta
18b60 74 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 54 tion</a>.<a.class="hdr".href="#T
18b80 65 73 74 2d 54 6f 6f 6c 2d 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f est-Tool-Documentation">..</a></
18ba0 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 3c 6b 62 64 3e 7a 69 67 20 h3>........<p>.........<kbd>zig.
18bc0 74 65 73 74 3c 2f 6b 62 64 3e 20 68 61 73 20 61 20 66 65 77 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e test</kbd>.has.a.few.command.lin
18be0 65 20 70 61 72 61 6d 65 74 65 72 73 20 77 68 69 63 68 20 61 66 66 65 63 74 20 74 68 65 20 63 6f e.parameters.which.affect.the.co
18c00 6d 70 69 6c 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 53 65 65 20 3c 6b 62 64 3e 7a 69 67 20 mpilation..........See.<kbd>zig.
18c20 74 65 73 74 20 2d 2d 68 65 6c 70 3c 2f 6b 62 64 3e 20 66 6f 72 20 61 20 66 75 6c 6c 20 6c 69 73 test.--help</kbd>.for.a.full.lis
18c40 74 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 0a 20 20 20 t........</p>...................
18c60 20 20 20 3c 68 32 20 69 64 3d 22 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e ...<h2.id="Variables"><a.href="n
18c80 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 56 61 72 69 61 62 6c 65 73 22 3e 56 61 72 69 61 62 6c 65 av.xhtml#toc-Variables">Variable
18ca0 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 56 61 72 69 s</a>.<a.class="hdr".href="#Vari
18cc0 61 62 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 3e 0a 20 20 ables">..</a></h2>........<p>...
18ce0 20 20 20 20 41 20 76 61 72 69 61 62 6c 65 20 69 73 20 61 20 75 6e 69 74 20 6f 66 20 3c 61 20 68 ....A.variable.is.a.unit.of.<a.h
18d00 72 65 66 3d 22 23 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 79 3c 2f 61 3e 20 73 74 6f 72 61 67 65 ref="#Memory">Memory</a>.storage
18d20 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.
18d40 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 70 72 65 66 65 72 61 62 6c 65 20 74 6f 20 75 73 65 20 3c is.generally.preferable.to.use.<
18d60 63 6f 64 65 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 code><span.class="tok-kw">const<
18d80 2f 73 70 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 /span></code>.rather.than.......
18da0 3c 63 6f 64 65 3e 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 <code><span.class="tok-kw">var</
18dc0 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 68 65 6e 20 64 65 63 6c 61 72 69 6e 67 20 61 20 76 61 span></code>.when.declaring.a.va
18de0 72 69 61 62 6c 65 2e 20 54 68 69 73 20 63 61 75 73 65 73 20 6c 65 73 73 20 77 6f 72 6b 20 66 6f riable..This.causes.less.work.fo
18e00 72 20 62 6f 74 68 0a 20 20 20 20 20 20 68 75 6d 61 6e 73 20 61 6e 64 20 63 6f 6d 70 75 74 65 72 r.both.......humans.and.computer
18e20 73 20 74 6f 20 64 6f 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 63 6f 64 65 2c 20 61 6e 64 20 63 s.to.do.when.reading.code,.and.c
18e40 72 65 61 74 65 73 20 6d 6f 72 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 70 70 6f 72 74 75 reates.more.optimization.opportu
18e60 6e 69 74 69 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 20 20 nities........</p>.......<p>....
18e80 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ...The.<code><span.class="tok-kw
18ea0 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 6f ">extern</span></code>.keyword.o
18ec0 72 20 3c 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 22 3e 40 65 78 74 65 72 6e 3c 2f 61 3e 20 r.<a.href="#extern">@extern</a>.
18ee0 62 75 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 20 74 6f 20 builtin.function.can.be.used.to.
18f00 6c 69 6e 6b 20 61 67 61 69 6e 73 74 20 61 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20 69 73 20 link.against.a.variable.that.is.
18f20 65 78 70 6f 72 74 65 64 0a 20 20 20 20 20 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 6f 62 6a 65 exported.......from.another.obje
18f40 63 74 2e 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ct..The.<code><span.class="tok-k
18f60 77 22 3e 65 78 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 w">export</span></code>.keyword.
18f80 6f 72 20 3c 61 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 or.<a.href="#export">@export</a>
18fa0 20 62 75 69 6c 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 .builtin.function.......can.be.u
18fc0 73 65 64 20 74 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 sed.to.make.a.variable.available
18fe0 20 74 6f 20 6f 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 .to.other.objects.at.link.time..
19000 49 6e 20 62 6f 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 In.both.cases,.......the.type.of
19020 20 74 68 65 20 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 .the.variable.must.be.C.ABI.comp
19040 61 74 69 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 53 65 65 20 atible........</p>.......<p>See.
19060 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 45 78 70 6f also:</p><ul>.<li><a.href="#Expo
19080 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 69 6e 67 20 61 20 43 rting-a-C-Library">Exporting.a.C
190a0 20 4c 69 62 72 61 72 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 .Library</a></li>.</ul>.........
190c0 3c 68 33 20 69 64 3d 22 49 64 65 6e 74 69 66 69 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 <h3.id="Identifiers"><a.href="na
190e0 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 64 65 6e 74 69 66 69 65 72 73 22 3e 49 64 65 6e 74 69 66 v.xhtml#toc-Identifiers">Identif
19100 69 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 iers</a>.<a.class="hdr".href="#I
19120 64 65 6e 74 69 66 69 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c dentifiers">..</a></h3>........<
19140 70 3e 0a 20 20 20 20 20 20 56 61 72 69 61 62 6c 65 20 69 64 65 6e 74 69 66 69 65 72 73 20 61 72 p>.......Variable.identifiers.ar
19160 65 20 6e 65 76 65 72 20 61 6c 6c 6f 77 65 64 20 74 6f 20 73 68 61 64 6f 77 20 69 64 65 6e 74 69 e.never.allowed.to.shadow.identi
19180 66 69 65 72 73 20 66 72 6f 6d 20 61 6e 20 6f 75 74 65 72 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 fiers.from.an.outer.scope.......
191a0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 64 65 6e 74 69 66 69 65 72 .</p>.......<p>.......Identifier
191c0 73 20 6d 75 73 74 20 73 74 61 72 74 20 77 69 74 68 20 61 6e 20 61 6c 70 68 61 62 65 74 69 63 20 s.must.start.with.an.alphabetic.
191e0 63 68 61 72 61 63 74 65 72 20 6f 72 20 75 6e 64 65 72 73 63 6f 72 65 20 61 6e 64 20 6d 61 79 20 character.or.underscore.and.may.
19200 62 65 20 66 6f 6c 6c 6f 77 65 64 0a 20 20 20 20 20 20 62 79 20 61 6e 79 20 6e 75 6d 62 65 72 20 be.followed.......by.any.number.
19220 6f 66 20 61 6c 70 68 61 6e 75 6d 65 72 69 63 20 63 68 61 72 61 63 74 65 72 73 20 6f 72 20 75 6e of.alphanumeric.characters.or.un
19240 64 65 72 73 63 6f 72 65 73 2e 0a 20 20 20 20 20 20 54 68 65 79 20 6d 75 73 74 20 6e 6f 74 20 6f derscores........They.must.not.o
19260 76 65 72 6c 61 70 20 77 69 74 68 20 61 6e 79 20 6b 65 79 77 6f 72 64 73 2e 20 53 65 65 20 3c 61 verlap.with.any.keywords..See.<a
19280 20 68 72 65 66 3d 22 23 4b 65 79 77 6f 72 64 2d 52 65 66 65 72 65 6e 63 65 22 3e 4b 65 79 77 6f .href="#Keyword-Reference">Keywo
192a0 72 64 20 52 65 66 65 72 65 6e 63 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 rd.Reference</a>........</p>....
192c0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 61 20 6e 61 6d 65 20 74 68 61 74 20 64 6f 65 73 ...<p>.......If.a.name.that.does
192e0 20 6e 6f 74 20 66 69 74 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 69 73 20 6e .not.fit.these.requirements.is.n
19300 65 65 64 65 64 2c 20 73 75 63 68 20 61 73 20 66 6f 72 20 6c 69 6e 6b 69 6e 67 20 77 69 74 68 20 eeded,.such.as.for.linking.with.
19320 65 78 74 65 72 6e 61 6c 20 6c 69 62 72 61 72 69 65 73 2c 20 74 68 65 20 3c 63 6f 64 65 3e 40 26 external.libraries,.the.<code>@&
19340 71 75 6f 74 3b 26 71 75 6f 74 3b 3c 2f 63 6f 64 65 3e 20 73 79 6e 74 61 78 20 6d 61 79 20 62 65 quot;&quot;</code>.syntax.may.be
19360 20 75 73 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e .used........</p>.......<figure>
19380 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 <figcaption.class="zig-cap"><cit
193a0 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 69 64 65 6e 74 69 66 69 65 72 73 2e 7a 69 67 3c 2f e.class="file">identifiers.zig</
193c0 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
193e0 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 40 an.class="tok-kw">const</span>.@
19400 26 71 75 6f 74 3b 69 64 65 6e 74 69 66 69 65 72 20 77 69 74 68 20 73 70 61 63 65 73 20 69 6e 20 &quot;identifier.with.spaces.in.
19420 69 74 26 71 75 6f 74 3b 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 it&quot;.=.<span.class="tok-numb
19440 65 72 22 3e 30 78 66 66 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f er">0xff</span>;.<span.class="to
19460 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 40 26 71 75 6f 74 3b 31 53 6d 61 6c 6c k-kw">const</span>.@&quot;1Small
19480 53 74 65 70 34 4d 61 6e 26 71 75 6f 74 3b 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f Step4Man&quot;.=.<span.class="to
194a0 6b 2d 6e 75 6d 62 65 72 22 3e 31 31 32 33 35 38 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 k-number">112358</span>;..<span.
194c0 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 20 3d 20 class="tok-kw">const</span>.c.=.
194e0 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
19500 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">&
19520 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 63 3b 0a 3c 73 70 61 6e 20 quot;std&quot;</span>).c;.<span.
19540 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.
19560 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 20 3c 73 70 class="tok-kw">extern</span>.<sp
19580 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 3b an.class="tok-str">&quot;c&quot;
195a0 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<
195c0 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 40 26 71 75 /span>.<span.class="tok-fn">@&qu
195e0 6f 74 3b 65 72 72 6f 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c ot;error&quot;</span>().<span.cl
19600 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 3b 0a 3c 73 70 61 ass="tok-type">void</span>;.<spa
19620 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
19640 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 20 3c n.class="tok-kw">extern</span>.<
19660 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 6f span.class="tok-str">&quot;c&quo
19680 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 3e 66 t;</span>.<span.class="tok-kw">f
196a0 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 40 26 n</span>.<span.class="tok-fn">@&
196c0 71 75 6f 74 3b 66 73 74 61 74 24 49 4e 4f 44 45 36 34 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 28 quot;fstat$INODE64&quot;</span>(
196e0 66 64 3a 20 63 2e 66 64 5f 74 2c 20 62 75 66 3a 20 2a 63 2e 53 74 61 74 29 20 3c 73 70 61 6e 20 fd:.c.fd_t,.buf:.*c.Stat).<span.
19700 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 61 6e 3e 3b 0a 0a class="tok-type">c_int</span>;..
19720 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
19740 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
19760 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 72 65 64 2c 0a 20 20 40 26 71 75 6f 74 3b 72 65 61 num</span>.{...red,...@&quot;rea
19780 6c 6c 79 20 72 65 64 26 71 75 6f 74 3b 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 lly.red&quot;,.};.<span.class="t
197a0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 6f 6c 6f 72 3a 20 43 6f 6c 6f 72 ok-kw">const</span>.color:.Color
197c0 20 3d 20 2e 40 26 71 75 6f 74 3b 72 65 61 6c 6c 79 20 72 65 64 26 71 75 6f 74 3b 3b 3c 2f 63 6f .=..@&quot;really.red&quot;;</co
197e0 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 de></pre></figure>..............
19800 20 3c 68 33 20 69 64 3d 22 43 6f 6e 74 61 69 6e 65 72 2d 4c 65 76 65 6c 2d 56 61 72 69 61 62 6c .<h3.id="Container-Level-Variabl
19820 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 6f 6e 74 61 es"><a.href="nav.xhtml#toc-Conta
19840 69 6e 65 72 2d 4c 65 76 65 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6e 74 61 69 6e 65 72 20 iner-Level-Variables">Container.
19860 4c 65 76 65 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 Level.Variables</a>.<a.class="hd
19880 72 22 20 68 72 65 66 3d 22 23 43 6f 6e 74 61 69 6e 65 72 2d 4c 65 76 65 6c 2d 56 61 72 69 61 62 r".href="#Container-Level-Variab
198a0 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>.....
198c0 20 20 3c 61 20 68 72 65 66 3d 22 23 43 6f 6e 74 61 69 6e 65 72 73 22 3e 43 6f 6e 74 61 69 6e 65 ..<a.href="#Containers">Containe
198e0 72 3c 2f 61 3e 20 6c 65 76 65 6c 20 76 61 72 69 61 62 6c 65 73 20 68 61 76 65 20 73 74 61 74 69 r</a>.level.variables.have.stati
19900 63 20 6c 69 66 65 74 69 6d 65 20 61 6e 64 20 61 72 65 20 6f 72 64 65 72 2d 69 6e 64 65 70 65 6e c.lifetime.and.are.order-indepen
19920 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 0a 20 20 20 20 20 20 dent.and.lazily.analyzed........
19940 54 68 65 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 76 61 6c 75 65 20 6f 66 20 63 6f 6e 74 The.initialization.value.of.cont
19960 61 69 6e 65 72 20 6c 65 76 65 6c 20 76 61 72 69 61 62 6c 65 73 20 69 73 20 69 6d 70 6c 69 63 69 ainer.level.variables.is.implici
19980 74 6c 79 0a 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 tly.......<a.href="#comptime">co
199a0 6d 70 74 69 6d 65 3c 2f 61 3e 2e 20 49 66 20 61 20 63 6f 6e 74 61 69 6e 65 72 20 6c 65 76 65 6c mptime</a>..If.a.container.level
199c0 20 76 61 72 69 61 62 6c 65 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .variable.is.<code><span.class="
199e0 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 20 74 68 65 6e tok-kw">const</span></code>.then
19a00 20 69 74 73 20 76 61 6c 75 65 20 69 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 .its.value.is.......<code><span.
19a20 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></
19a40 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 75 6e code>-known,.otherwise.it.is.run
19a60 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 66 69 time-known........</p>.......<fi
19a80 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 gure><figcaption.class="zig-cap"
19aa0 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6e 74 61 69 6e ><cite.class="file">test_contain
19ac0 65 72 5f 6c 65 76 65 6c 5f 76 61 72 69 61 62 6c 65 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 er_level_variables.zig</cite></f
19ae0 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
19b00 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 20 63 6c ="tok-kw">var</span>.y:.<span.cl
19b20 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 61 64 64 28 ass="tok-type">i32</span>.=.add(
19b40 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
19b60 6e 3e 2c 20 78 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 n>,.x);.<span.class="tok-kw">con
19b80 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 74 6f 6b 2d 74 79 st</span>.x:.<span.class="tok-ty
19ba0 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 61 64 64 28 3c 73 70 61 6e 20 63 6c 61 73 73 pe">i32</span>.=.add(<span.class
19bc0 3d 22 74 6f 6b 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 ="tok-number">12</span>,.<span.c
19be0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 3c lass="tok-number">34</span>);..<
19c00 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>.
19c20 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 6f 6e 74 <span.class="tok-str">&quot;cont
19c40 61 69 6e 65 72 20 6c 65 76 65 6c 20 76 61 72 69 61 62 6c 65 73 26 71 75 6f 74 3b 3c 2f 73 70 61 ainer.level.variables&quot;</spa
19c60 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 72 n>.{.....<span.class="tok-kw">tr
19c80 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 y</span>.expect(x.==.<span.class
19ca0 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 3c 73 ="tok-number">46</span>);.....<s
19cc0 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 65 78 pan.class="tok-kw">try</span>.ex
19ce0 70 65 63 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 pect(y.==.<span.class="tok-numbe
19d00 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
19d20 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
19d40 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=
19d60 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.
19d80 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
19da0 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>.{
19dc0 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
19de0 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
19e00 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.
19e20 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
19e40 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
19e60 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
19e80 6f 6b 2d 6b 77 22 3e 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 ok-kw">const</span>.expect.=.std
19ea0 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 .testing.expect;</code></pre></f
19ec0 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d igure><figure><figcaption.class=
19ee0 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 "shell-cap">Shell</figcaption><p
19f00 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f re><samp>$.<kbd>zig.test.test_co
19f20 6e 74 61 69 6e 65 72 5f 6c 65 76 65 6c 5f 76 61 72 69 61 62 6c 65 73 2e 7a 69 67 3c 2f 6b 62 64 ntainer_level_variables.zig</kbd
19f40 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 6e 74 61 69 6e 65 72 5f 6c 65 76 65 6c 5f 76 61 72 69 61 >.1/1.test_container_level_varia
19f60 62 6c 65 73 2e 74 65 73 74 2e 63 6f 6e 74 61 69 6e 65 72 20 6c 65 76 65 6c 20 76 61 72 69 61 62 bles.test.container.level.variab
19f80 6c 65 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f les....OK.All.1.tests.passed..</
19fa0 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 samp></pre></figure>.......<p>..
19fc0 20 20 20 20 20 43 6f 6e 74 61 69 6e 65 72 20 6c 65 76 65 6c 20 76 61 72 69 61 62 6c 65 73 20 6d .....Container.level.variables.m
19fe0 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 66 3d ay.be.declared.inside.a.<a.href=
1a000 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 22 23 "#struct">struct</a>,.<a.href="#
1a020 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d union">union</a>,.<a.href="#enum
1a040 22 3e 65 6e 75 6d 3c 2f 61 3e 2c 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 6f 70 61 71 75 65 22 ">enum</a>,.or.<a.href="#opaque"
1a060 3e 6f 70 61 71 75 65 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 >opaque</a>:.......</p>.......<f
1a080 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
1a0a0 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6e 61 6d 65 73 70 "><cite.class="file">test_namesp
1a0c0 61 63 65 64 5f 63 6f 6e 74 61 69 6e 65 72 5f 6c 65 76 65 6c 5f 76 61 72 69 61 62 6c 65 2e 7a 69 aced_container_level_variable.zi
1a0e0 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
1a100 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
1a120 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 6e >.std.=.<span.class="tok-builtin
1a140 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
1a160 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 0a k-str">&quot;std&quot;</span>);.
1a180 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
1a1a0 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a >.expect.=.std.testing.expect;..
1a1c0 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>
1a1e0 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
1a200 65 73 70 61 63 65 64 20 63 6f 6e 74 61 69 6e 65 72 20 6c 65 76 65 6c 20 76 61 72 69 61 62 6c 65 espaced.container.level.variable
1a220 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=
1a240 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 66 6f 6f 28 29 "tok-kw">try</span>.expect(foo()
1a260 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
1a280 35 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 5</span>);.....<span.class="tok-
1a2a0 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 66 6f 6f 28 29 20 3d 3d 20 3c kw">try</span>.expect(foo().==.<
1a2c0 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 36 3c 2f 73 70 span.class="tok-number">1236</sp
1a2e0 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 63 6f an>);.}..<span.class="tok-kw">co
1a300 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-
1a320 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 20 63 6c kw">struct</span>.{.....<span.cl
1a340 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 6e ass="tok-kw">var</span>.x:.<span
1a360 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>.=.<
1a380 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
1a3a0 61 6e 3e 3b 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 66 6e an>;.};..<span.class="tok-kw">fn
1a3c0 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 6f </span>.<span.class="tok-fn">foo
1a3e0 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"
1a400 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 53 2e 78 20 2b 3d 20 3c 73 70 61 6e 20 63 >i32</span>.{.....S.x.+=.<span.c
1a420 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>;.....
1a440 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
1a460 6e 3e 20 53 2e 78 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c n>.S.x;.}</code></pre></figure><
1a480 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d figure><figcaption.class="shell-
1a4a0 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d cap">Shell</figcaption><pre><sam
1a4c0 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 6e 61 6d 65 73 70 61 63 65 p>$.<kbd>zig.test.test_namespace
1a4e0 64 5f 63 6f 6e 74 61 69 6e 65 72 5f 6c 65 76 65 6c 5f 76 61 72 69 61 62 6c 65 2e 7a 69 67 3c 2f d_container_level_variable.zig</
1a500 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6e 61 6d 65 73 70 61 63 65 64 5f 63 6f 6e 74 61 69 6e kbd>.1/1.test_namespaced_contain
1a520 65 72 5f 6c 65 76 65 6c 5f 76 61 72 69 61 62 6c 65 2e 74 65 73 74 2e 6e 61 6d 65 73 70 61 63 65 er_level_variable.test.namespace
1a540 64 20 63 6f 6e 74 61 69 6e 65 72 20 6c 65 76 65 6c 20 76 61 72 69 61 62 6c 65 2e 2e 2e 20 4f 4b d.container.level.variable....OK
1a560 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 .All.1.tests.passed..</samp></pr
1a580 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 e></figure>...............<h3.id
1a5a0 3d 22 53 74 61 74 69 63 2d 4c 6f 63 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 ="Static-Local-Variables"><a.hre
1a5c0 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 74 61 74 69 63 2d 4c 6f 63 61 6c 2d 56 61 f="nav.xhtml#toc-Static-Local-Va
1a5e0 72 69 61 62 6c 65 73 22 3e 53 74 61 74 69 63 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3c riables">Static.Local.Variables<
1a600 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 74 61 74 69 63 /a>.<a.class="hdr".href="#Static
1a620 2d 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 33 3e 0a 0a 20 -Local-Variables">..</a></h3>...
1a640 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 49 74 20 69 73 20 61 6c 73 6f 20 70 6f 73 73 .....<p>.........It.is.also.poss
1a660 69 62 6c 65 20 74 6f 20 68 61 76 65 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 77 69 74 ible.to.have.local.variables.wit
1a680 68 20 73 74 61 74 69 63 20 6c 69 66 65 74 69 6d 65 20 62 79 20 75 73 69 6e 67 20 63 6f 6e 74 61 h.static.lifetime.by.using.conta
1a6a0 69 6e 65 72 73 20 69 6e 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f iners.inside.functions........</
1a6c0 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
1a6e0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
1a700 74 65 73 74 5f 73 74 61 74 69 63 5f 6c 6f 63 61 6c 5f 76 61 72 69 61 62 6c 65 2e 7a 69 67 3c 2f test_static_local_variable.zig</
1a720 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
1a740 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
1a760 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">@
1a780 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
1a7a0 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
1a7c0 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
1a7e0 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 xpect.=.std.testing.expect;..<sp
1a800 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
1a820 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 61 74 69 63 pan.class="tok-str">&quot;static
1a840 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 .local.variable&quot;</span>.{..
1a860 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 61 ...<span.class="tok-kw">try</spa
1a880 6e 3e 20 65 78 70 65 63 74 28 66 6f 6f 28 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n>.expect(foo().==.<span.class="
1a8a0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 35 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 tok-number">1235</span>);.....<s
1a8c0 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 65 78 pan.class="tok-kw">try</span>.ex
1a8e0 70 65 63 74 28 66 6f 6f 28 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e pect(foo().==.<span.class="tok-n
1a900 75 6d 62 65 72 22 3e 31 32 33 36 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c umber">1236</span>);.}..<span.cl
1a920 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
1a940 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
1a960 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>.{....
1a980 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
1a9a0 6e 3e 20 53 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 n>.S.=.<span.class="tok-kw">stru
1a9c0 63 74 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 ct</span>.{.........<span.class=
1a9e0 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
1aa00 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
1aa20 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>;
1aa40 0a 20 20 20 20 7d 3b 0a 20 20 20 20 53 2e 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .....};.....S.x.+=.<span.class="
1aa60 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 3c 73 70 61 6e 20 tok-number">1</span>;.....<span.
1aa80 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 53 2e 78 class="tok-kw">return</span>.S.x
1aaa0 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 ;.}</code></pre></figure><figure
1aac0 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 ><figcaption.class="shell-cap">S
1aae0 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b hell</figcaption><pre><samp>$.<k
1ab00 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 74 61 74 69 63 5f 6c 6f 63 61 6c 5f 76 61 bd>zig.test.test_static_local_va
1ab20 72 69 61 62 6c 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 74 61 74 69 63 riable.zig</kbd>.1/1.test_static
1ab40 5f 6c 6f 63 61 6c 5f 76 61 72 69 61 62 6c 65 2e 74 65 73 74 2e 73 74 61 74 69 63 20 6c 6f 63 61 _local_variable.test.static.loca
1ab60 6c 20 76 61 72 69 61 62 6c 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 l.variable....OK.All.1.tests.pas
1ab80 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 sed..</samp></pre></figure>.....
1aba0 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 54 68 72 65 61 64 2d 4c 6f 63 61 6c 2d 56 ..........<h3.id="Thread-Local-V
1abc0 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 ariables"><a.href="nav.xhtml#toc
1abe0 2d 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 68 72 65 61 64 20 -Thread-Local-Variables">Thread.
1ac00 4c 6f 63 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 Local.Variables</a>.<a.class="hd
1ac20 72 22 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 r".href="#Thread-Local-Variables
1ac40 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 20 76 61 72 69 61 62 ">..</a></h3>........<p>A.variab
1ac60 6c 65 20 6d 61 79 20 62 65 20 73 70 65 63 69 66 69 65 64 20 74 6f 20 62 65 20 61 20 74 68 72 65 le.may.be.specified.to.be.a.thre
1ac80 61 64 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 75 73 69 6e 67 20 74 68 65 0a 20 20 20 20 ad-local.variable.using.the.....
1aca0 20 20 3c 63 6f 64 65 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 ..<code><span.class="tok-kw">thr
1acc0 65 61 64 6c 6f 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 2c 0a eadlocal</span></code>.keyword,.
1ace0 20 20 20 20 20 20 77 68 69 63 68 20 6d 61 6b 65 73 20 65 61 63 68 20 74 68 72 65 61 64 20 77 6f ......which.makes.each.thread.wo
1ad00 72 6b 20 77 69 74 68 20 61 20 73 65 70 61 72 61 74 65 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 rk.with.a.separate.instance.of.t
1ad20 68 65 20 76 61 72 69 61 62 6c 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c he.variable:</p>.......<figure><
1ad40 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
1ad60 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 74 68 72 65 61 64 5f 6c 6f 63 61 6c 5f .class="file">test_thread_local_
1ad80 76 61 72 69 61 62 6c 65 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e variables.zig</cite></figcaption
1ada0 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
1adc0 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=
1ade0 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
1ae00 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
1ae20 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"
1ae40 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
1ae60 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
1ae80 68 72 65 61 64 6c 6f 63 61 6c 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 hreadlocal</span>.<span.class="t
1aea0 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
1aec0 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 63 ="tok-type">i32</span>.=.<span.c
1aee0 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>;..
1af00 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>
1af20 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 68 72 .<span.class="tok-str">&quot;thr
1af40 65 61 64 20 6c 6f 63 61 6c 20 73 74 6f 72 61 67 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b ead.local.storage&quot;</span>.{
1af60 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<
1af80 2f 73 70 61 6e 3e 20 74 68 72 65 61 64 31 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>.thread1.=.<span.class="to
1afa0 6b 2d 6b 77 22 3e 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 k-kw">try</span>.std.Thread.spaw
1afc0 6e 28 2e 7b 7d 2c 20 74 65 73 74 54 6c 73 2c 20 2e 7b 7d 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 n(.{},.testTls,..{});.....<span.
1afe0 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 74 68 72 65 class="tok-kw">const</span>.thre
1b000 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 74 72 79 3c 2f ad2.=.<span.class="tok-kw">try</
1b020 73 70 61 6e 3e 20 73 74 64 2e 54 68 72 65 61 64 2e 73 70 61 77 6e 28 2e 7b 7d 2c 20 74 65 73 74 span>.std.Thread.spawn(.{},.test
1b040 54 6c 73 2c 20 2e 7b 7d 29 3b 0a 20 20 20 20 74 65 73 74 54 6c 73 28 29 3b 0a 20 20 20 20 74 68 Tls,..{});.....testTls();.....th
1b060 72 65 61 64 31 2e 6a 6f 69 6e 28 29 3b 0a 20 20 20 20 74 68 72 65 61 64 32 2e 6a 6f 69 6e 28 29 read1.join();.....thread2.join()
1b080 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
1b0a0 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 73 an>.<span.class="tok-fn">testTls
1b0c0 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"
1b0e0 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 78 20 3d 3d 20 3c >void</span>.{.....assert(x.==.<
1b100 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
1b120 61 6e 3e 29 3b 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 an>);.....x.+=.<span.class="tok-
1b140 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 74 28 78 20 3d number">1</span>;.....assert(x.=
1b160 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 35 3c =.<span.class="tok-number">1235<
1b180 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e /span>);.}</code></pre></figure>
1b1a0 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c <figure><figcaption.class="shell
1b1c0 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 -cap">Shell</figcaption><pre><sa
1b1e0 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 74 68 72 65 61 64 5f 6c mp>$.<kbd>zig.test.test_thread_l
1b200 6f 63 61 6c 5f 76 61 72 69 61 62 6c 65 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 ocal_variables.zig</kbd>.1/1.tes
1b220 74 5f 74 68 72 65 61 64 5f 6c 6f 63 61 6c 5f 76 61 72 69 61 62 6c 65 73 2e 74 65 73 74 2e 74 68 t_thread_local_variables.test.th
1b240 72 65 61 64 20 6c 6f 63 61 6c 20 73 74 6f 72 61 67 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 read.local.storage....OK.All.1.t
1b260 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 ests.passed..</samp></pre></figu
1b280 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 68 72 65 66 3d re>.......<p>.......For.<a.href=
1b2a0 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 6e 67 6c 65 "#Single-Threaded-Builds">Single
1b2c0 20 54 68 72 65 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 .Threaded.Builds</a>,.all.thread
1b2e0 20 6c 6f 63 61 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 .local.variables.are.treated.as.
1b300 72 65 67 75 6c 61 72 20 3c 61 20 68 72 65 66 3d 22 23 43 6f 6e 74 61 69 6e 65 72 2d 4c 65 76 65 regular.<a.href="#Container-Leve
1b320 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6e 74 61 69 6e 65 72 20 4c 65 76 65 6c 20 56 61 72 l-Variables">Container.Level.Var
1b340 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 3e iables</a>........</p>.......<p>
1b360 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 61 .......Thread.local.variables.ma
1b380 79 20 6e 6f 74 20 62 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d y.not.be.<code><span.class="tok-
1b3a0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c kw">const</span></code>........<
1b3c0 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4c 6f 63 61 6c 2d /p>...............<h3.id="Local-
1b3e0 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f Variables"><a.href="nav.xhtml#to
1b400 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 69 61 62 6c c-Local-Variables">Local.Variabl
1b420 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 4c 6f 63 es</a>.<a.class="hdr".href="#Loc
1b440 61 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 al-Variables">..</a></h3>.......
1b460 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 63 63 75 72 .<p>.......Local.variables.occur
1b480 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 3e 46 75 6e .inside.<a.href="#Functions">Fun
1b4a0 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 6d 65 22 3e ctions</a>,.<a.href="#comptime">
1b4c0 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 68 72 65 66 comptime</a>.blocks,.and.<a.href
1b4e0 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 63 6b 73 2e ="#cImport">@cImport</a>.blocks.
1b500 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 6e .......</p>.......<p>.......When
1b520 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 3e 3c 73 70 61 6e .a.local.variable.is.<code><span
1b540 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 6f .class="tok-kw">const</span></co
1b560 64 65 3e 2c 20 69 74 20 6d 65 61 6e 73 20 74 68 61 74 20 61 66 74 65 72 20 69 6e 69 74 69 61 6c de>,.it.means.that.after.initial
1b580 69 7a 61 74 69 6f 6e 2c 20 74 68 65 20 76 61 72 69 61 62 6c 65 27 73 0a 20 20 20 20 20 20 76 61 ization,.the.variable's.......va
1b5a0 6c 75 65 20 77 69 6c 6c 20 6e 6f 74 20 63 68 61 6e 67 65 2e 20 49 66 20 74 68 65 20 69 6e 69 74 lue.will.not.change..If.the.init
1b5c0 69 61 6c 69 7a 61 74 69 6f 6e 20 76 61 6c 75 65 20 6f 66 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 ialization.value.of.a.<code><spa
1b5e0 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
1b600 6f 64 65 3e 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 ode>.variable.is.......<a.href="
1b620 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 6e 2c 20 74 #comptime">comptime</a>-known,.t
1b640 68 65 6e 20 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 3e 3c hen.the.variable.is.also.<code><
1b660 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
1b680 61 6e 3e 3c 2f 63 6f 64 65 3e 2d 6b 6e 6f 77 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 an></code>-known........</p>....
1b6a0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 6d 61 ...<p>.......A.local.variable.ma
1b6c0 79 20 62 65 20 71 75 61 6c 69 66 69 65 64 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 y.be.qualified.with.the.<code><s
1b6e0 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
1b700 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 2e 20 54 68 69 73 20 63 61 75 73 65 73 0a 20 n></code>.keyword..This.causes..
1b720 20 20 20 20 20 74 68 65 20 76 61 72 69 61 62 6c 65 27 73 20 76 61 6c 75 65 20 74 6f 20 62 65 20 .....the.variable's.value.to.be.
1b740 3c 63 6f 64 65 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 <code><span.class="tok-kw">compt
1b760 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
1b780 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
1b7a0 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
1b7c0 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
1b7e0 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
1b800 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 3e 3c 73 70 61 6e iables.declared.in.a.<code><span
1b820 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 3c .class="tok-kw">comptime</span><
1b840 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 20 61 72 65 20 69 6d 70 6c 69 63 69 74 6c 79 /code>.expression.are.implicitly
1b860 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .......<code><span.class="tok-kw
1b880 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 76 61 72 69 61 62 6c ">comptime</span></code>.variabl
1b8a0 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 es........</p>.......<figure><fi
1b8c0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
1b8e0 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 76 61 72 69 61 62 lass="file">test_comptime_variab
1b900 6c 65 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e les.zig</cite></figcaption><pre>
1b920 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
1b940 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
1b960 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
1b980 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
1b9a0 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
1b9c0 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 67 2e 65 78 70 </span>.expect.=.std.testing.exp
1b9e0 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 74 65 73 74 3c ect;..<span.class="tok-kw">test<
1ba00 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
1ba20 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 0a ot;comptime.vars&quot;</span>.{.
1ba40 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
1ba60 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
1ba80 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
1baa0 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 74 er">1</span>;.....<span.class="t
1bac0 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 61 ok-kw">comptime</span>.<span.cla
1bae0 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 20 ss="tok-kw">var</span>.y:.<span.
1bb00 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
1bb20 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>;
1bb40 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 62 ......x.+=.<span.class="tok-numb
1bb60 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 61 er">1</span>;.....y.+=.<span.cla
1bb80 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 3c ss="tok-number">1</span>;......<
1bba0 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 65 span.class="tok-kw">try</span>.e
1bbc0 78 70 65 63 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 xpect(x.==.<span.class="tok-numb
1bbe0 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 63 6c 61 73 73 3d 22 er">2</span>);.....<span.class="
1bc00 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 79 20 3d 3d 20 3c tok-kw">try</span>.expect(y.==.<
1bc20 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>
1bc40 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 3c );......<span.class="tok-kw">if<
1bc60 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 75 /span>.(y.!=.<span.class="tok-nu
1bc80 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 20 mber">2</span>).{.........<span.
1bca0 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 70 class="tok-comment">//.This.comp
1bcc0 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 65 ile.error.never.triggers.because
1bce0 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 6e .y.is.a.comptime.variable,</span
1bd00 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
1bd20 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 70 nt">//.and.so.`y.!=.2`.is.a.comp
1bd40 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 69 time.value,.and.this.if.is.stati
1bd60 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 20 cally.evaluated.</span>.........
1bd80 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 69 <span.class="tok-builtin">@compi
1bda0 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 2d leError</span>(<span.class="tok-
1bdc0 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 2f str">&quot;wrong.y.value&quot;</
1bde0 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 2f 66 69 span>);.....}.}</code></pre></fi
1be00 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
1be20 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
1be40 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d e><samp>$.<kbd>zig.test.test_com
1be60 70 74 69 6d 65 5f 76 61 72 69 61 62 6c 65 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 ptime_variables.zig</kbd>.1/1.te
1be80 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 76 61 72 69 61 62 6c 65 73 2e 74 65 73 74 2e 63 6f 6d 70 74 st_comptime_variables.test.compt
1bea0 69 6d 65 20 76 61 72 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 ime.vars....OK.All.1.tests.passe
1bec0 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 d..</samp></pre></figure>.......
1bee0 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 65 67 65 72 73 22 ...............<h2.id="Integers"
1bf00 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6e 74 65 67 65 72 73 ><a.href="nav.xhtml#toc-Integers
1bf20 22 3e 49 6e 74 65 67 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 ">Integers</a>.<a.class="hdr".hr
1bf40 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 ef="#Integers">..</a></h2>......
1bf60 20 20 3c 68 33 20 69 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 ..<h3.id="Integer-Literals"><a.h
1bf80 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 ref="nav.xhtml#toc-Integer-Liter
1bfa0 61 6c 73 22 3e 49 6e 74 65 67 65 72 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 als">Integer.Literals</a>.<a.cla
1bfc0 73 73 3d 22 68 64 72 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 ss="hdr".href="#Integer-Literals
1bfe0 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 ">..</a></h3>........<figure><fi
1c000 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
1c020 6c 61 73 73 3d 22 66 69 6c 65 22 3e 69 6e 74 65 67 65 72 5f 6c 69 74 65 72 61 6c 73 2e 7a 69 67 lass="file">integer_literals.zig
1c040 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c </cite></figcaption><pre><code><
1c060 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>
1c080 20 64 65 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 .decimal_int.=.<span.class="tok-
1c0a0 6e 75 6d 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 number">98222</span>;.<span.clas
1c0c0 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 69 6e 74 20 s="tok-kw">const</span>.hex_int.
1c0e0 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 66 66 3c =.<span.class="tok-number">0xff<
1c100 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 6f 6e /span>;.<span.class="tok-kw">con
1c120 73 74 3c 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 st</span>.another_hex_int.=.<spa
1c140 6e 20 63 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 n.class="tok-number">0xFF</span>
1c160 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
1c180 61 6e 3e 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 an>.octal_int.=.<span.class="tok
1c1a0 2d 6e 75 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 -number">0o755</span>;.<span.cla
1c1c0 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 6e 61 72 79 5f ss="tok-kw">const</span>.binary_
1c1e0 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 30 int.=.<span.class="tok-number">0
1c200 62 31 31 31 31 30 30 30 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 b11110000</span>;..<span.class="
1c220 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 75 6e 64 65 72 73 63 6f 72 65 73 20 6d 61 79 20 tok-comment">//.underscores.may.
1c240 62 65 20 70 6c 61 63 65 64 20 62 65 74 77 65 65 6e 20 74 77 6f 20 64 69 67 69 74 73 20 61 73 20 be.placed.between.two.digits.as.
1c260 61 20 76 69 73 75 61 6c 20 73 65 70 61 72 61 74 6f 72 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 a.visual.separator</span>.<span.
1c280 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_
1c2a0 62 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 6d 62 65 billion.=.<span.class="tok-numbe
1c2c0 72 22 3e 31 5f 30 30 30 5f 30 30 30 5f 30 30 30 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 r">1_000_000_000</span>;.<span.c
1c2e0 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 6e 61 72 lass="tok-kw">const</span>.binar
1c300 79 5f 6d 61 73 6b 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 y_mask.=.<span.class="tok-number
1c320 22 3e 30 62 31 5f 31 31 31 31 5f 31 31 31 31 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c ">0b1_1111_1111</span>;.<span.cl
1c340 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 65 72 6d 69 73 ass="tok-kw">const</span>.permis
1c360 73 69 6f 6e 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 sions.=.<span.class="tok-number"
1c380 3e 30 6f 37 5f 35 5f 35 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f >0o7_5_5</span>;.<span.class="to
1c3a0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 69 67 5f 61 64 64 72 65 73 73 20 3d k-kw">const</span>.big_address.=
1c3c0 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 46 46 38 30 .<span.class="tok-number">0xFF80
1c3e0 5f 30 30 30 30 5f 30 30 30 30 5f 30 30 30 30 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f _0000_0000_0000</span>;</code></
1c400 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 pre></figure>..............<h3.i
1c420 64 3d 22 52 75 6e 74 69 6d 65 2d 49 6e 74 65 67 65 72 2d 56 61 6c 75 65 73 22 3e 3c 61 20 68 72 d="Runtime-Integer-Values"><a.hr
1c440 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 75 6e 74 69 6d 65 2d 49 6e 74 65 67 65 ef="nav.xhtml#toc-Runtime-Intege
1c460 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 75 65 73 r-Values">Runtime.Integer.Values
1c480 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 75 6e 74 69 </a>.<a.class="hdr".href="#Runti
1c4a0 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 68 33 3e 0a 0a me-Integer-Values">..</a></h3>..
1c4c0 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 65 72 61 6c 73 ......<p>.......Integer.literals
1c4e0 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 6e 64 20 69 66 .have.no.size.limitation,.and.if
1c500 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 75 72 73 2c 0a .any.undefined.behavior.occurs,.
1c520 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 69 74 2e 0a 20 ......the.compiler.catches.it...
1c540 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 6f 77 65 76 65 .....</p>.......<p>.......Howeve
1c560 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 20 6e 6f 20 6c r,.once.an.integer.value.is.no.l
1c580 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 2c 20 69 74 20 onger.known.at.compile-time,.it.
1c5a0 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 65 2c 20 61 6e must.have.a.......known.size,.an
1c5c0 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 64 20 62 65 68 d.is.vulnerable.to.undefined.beh
1c5e0 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 66 69 67 75 72 65 3e avior........</p>.......<figure>
1c600 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 <figcaption.class="zig-cap"><cit
1c620 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 76 73 5f 63 6f 6d 70 74 69 e.class="file">runtime_vs_compti
1c640 6d 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c me.zig</cite></figcaption><pre><
1c660 63 6f 64 65 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 code><span.class="tok-kw">fn</sp
1c680 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 69 76 69 64 65 3c an>.<span.class="tok-fn">divide<
1c6a0 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"
1c6c0 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 73 3d 22 74 6f 6b >i32</span>,.b:.<span.class="tok
1c6e0 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="
1c700 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
1c720 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.
1c740 2f 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 /.b;.}</code></pre></figure>....
1c760 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 69 6f 6e 2c 20 76 ...<p>.......In.this.function,.v
1c780 61 6c 75 65 73 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 alues.<code>a</code>.and.<code>b
1c7a0 3c 2f 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 </code>.are.known.only.at.runtim
1c7c0 65 2c 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 e,.......and.thus.this.division.
1c7e0 6f 70 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 operation.is.vulnerable.to.both.
1c800 3c 61 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 <a.href="#Integer-Overflow">Inte
1c820 67 65 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 ger.Overflow</a>.and.......<a.hr
1c840 65 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 ef="#Division-by-Zero">Division.
1c860 62 79 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 by.Zero</a>........</p>.......<p
1c880 3e 0a 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 3e >.......Operators.such.as.<code>
1c8a0 2b 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 2d 3c 2f 63 6f 64 65 3e 20 63 61 75 73 +</code>.and.<code>-</code>.caus
1c8c0 65 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 6f 6e 0a 20 20 20 20 20 20 69 6e e.undefined.behavior.on.......in
1c8e0 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 2e 20 41 6c 74 65 72 6e 61 74 69 76 65 20 6f 70 65 72 teger.overflow..Alternative.oper
1c900 61 74 6f 72 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 77 72 61 70 70 69 6e 67 20 ators.are.provided.for.wrapping.
1c920 61 6e 64 20 73 61 74 75 72 61 74 69 6e 67 20 61 72 69 74 68 6d 65 74 69 63 20 6f 6e 20 61 6c 6c and.saturating.arithmetic.on.all
1c940 20 74 61 72 67 65 74 73 2e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 2b 25 3c 2f 63 6f 64 65 3e 20 .targets........<code>+%</code>.
1c960 61 6e 64 20 3c 63 6f 64 65 3e 2d 25 3c 2f 63 6f 64 65 3e 20 70 65 72 66 6f 72 6d 20 77 72 61 70 and.<code>-%</code>.perform.wrap
1c980 70 69 6e 67 20 61 72 69 74 68 6d 65 74 69 63 0a 20 20 20 20 20 20 77 68 69 6c 65 20 3c 63 6f 64 ping.arithmetic.......while.<cod
1c9a0 65 3e 2b 7c 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 2d 7c 3c 2f 63 6f 64 65 3e 20 e>+|</code>.and.<code>-|</code>.
1c9c0 70 65 72 66 6f 72 6d 20 73 61 74 75 72 61 74 69 6e 67 20 61 72 69 74 68 6d 65 74 69 63 2e 0a 20 perform.saturating.arithmetic...
1c9e0 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 75 .....</p>.......<p>.......Zig.su
1ca00 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 67 pports.arbitrary.bit-width.integ
1ca20 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 61 ers,.referenced.by.using.......a
1ca40 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 6f n.identifier.of.<code>i</code>.o
1ca60 72 20 3c 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 69 67 r.<code>u</code>.followed.by.dig
1ca80 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 65 72 its..For.example,.the.identifier
1caa0 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 .......<code><span.class="tok-ty
1cac0 70 65 22 3e 69 37 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 pe">i7</span></code>.refers.to.a
1cae0 20 73 69 67 6e 65 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 .signed.7-bit.integer..The.maxim
1cb00 75 6d 20 61 6c 6c 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 um.allowed.bit-width.of.an......
1cb20 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 .integer.type.is.<code><span.cla
1cb40 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 6e 3e 3c 2f 63 6f ss="tok-number">65535</span></co
1cb60 64 65 3e 2e 20 46 6f 72 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 74 79 70 65 73 2c 20 5a de>..For.signed.integer.types,.Z
1cb80 69 67 20 75 73 65 73 20 61 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f ig.uses.a.......<a.href="https:/
1cba0 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 54 77 6f 27 73 5f 63 6f 6d /en.wikipedia.org/wiki/Two's_com
1cbc0 70 6c 65 6d 65 6e 74 22 3e 74 77 6f 27 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 3c 2f 61 3e 20 72 65 plement">two's.complement</a>.re
1cbe0 70 72 65 73 65 6e 74 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 presentation........</p>.......<
1cc00 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=
1cc20 22 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 "#Wrapping-Operations">Wrapping.
1cc40 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 Operations</a></li>.</ul>.......
1cc60 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 46 6c 6f 61 74 73 22 3e 3c ...............<h2.id="Floats"><
1cc80 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 46 6c 6f 61 74 73 22 3e 46 6c a.href="nav.xhtml#toc-Floats">Fl
1cca0 6f 61 74 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 oats</a>.<a.class="hdr".href="#F
1ccc0 6c 6f 61 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 5a 69 67 loats">..</a></h2>........<p>Zig
1cce0 20 68 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e .has.the.following.floating.poin
1cd00 74 20 74 79 70 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 t.types:</p>.......<ul>.........
1cd20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 ..<li><code><span.class="tok-typ
1cd40 65 22 3e 66 31 36 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 e">f16</span></code>.-.IEEE-754-
1cd60 32 30 30 38 20 62 69 6e 61 72 79 31 36 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 2008.binary16</li>...........<li
1cd80 3e 3c 63 6f 64 65 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 ><code><span.class="tok-type">f3
1cda0 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.
1cdc0 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
1cde0 65 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 e><span.class="tok-type">f64</sp
1ce00 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 62 69 6e 61 72 an></code>.-.IEEE-754-2008.binar
1ce20 79 36 34 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 3e 3c 73 70 y64</li>...........<li><code><sp
1ce40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 38 30 3c 2f 73 70 61 6e 3e 3c 2f an.class="tok-type">f80</span></
1ce60 63 6f 64 65 3e 20 2d 20 49 45 45 45 2d 37 35 34 2d 32 30 30 38 20 38 30 2d 62 69 74 20 65 78 74 code>.-.IEEE-754-2008.80-bit.ext
1ce80 65 6e 64 65 64 20 70 72 65 63 69 73 69 6f 6e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c ended.precision</li>...........<
1cea0 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e li><code><span.class="tok-type">
1cec0 66 31 32 38 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 f128</span></code>.-.IEEE-754-20
1cee0 30 38 20 62 69 6e 61 72 79 31 32 38 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 08.binary128</li>...........<li>
1cf00 3c 63 6f 64 65 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 <code><span.class="tok-type">c_l
1cf20 6f 6e 67 64 6f 75 62 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 2d 20 6d 61 74 63 68 65 ongdouble</span></code>.-.matche
1cf40 73 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 6c 6f 6e 67 20 64 6f 75 62 6c 65 3c 2f 63 s.<code.class="c">long.double</c
1cf60 6f 64 65 3e 20 66 6f 72 20 74 68 65 20 74 61 72 67 65 74 20 43 20 41 42 49 3c 2f 6c 69 3e 0a 20 ode>.for.the.target.C.ABI</li>..
1cf80 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 46 6c 6f 61 74 2d 4c .....</ul>.......<h3.id="Float-L
1cfa0 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d iterals"><a.href="nav.xhtml#toc-
1cfc0 46 6c 6f 61 74 2d 4c 69 74 65 72 61 6c 73 22 3e 46 6c 6f 61 74 20 4c 69 74 65 72 61 6c 73 3c 2f Float-Literals">Float.Literals</
1cfe0 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 2d 4c a>.<a.class="hdr".href="#Float-L
1d000 69 74 65 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 iterals">..</a></h3>........<p>.
1d020 20 20 20 20 20 20 46 6c 6f 61 74 20 6c 69 74 65 72 61 6c 73 20 68 61 76 65 20 74 79 70 65 20 3c ......Float.literals.have.type.<
1d040 63 6f 64 65 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 code><span.class="tok-type">comp
1d060 74 69 6d 65 5f 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 time_float</span></code>.which.i
1d080 73 20 67 75 61 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 s.guaranteed.to.have.......the.s
1d0a0 61 6d 65 20 70 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 ame.precision.and.operations.of.
1d0c0 74 68 65 20 6c 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 the.largest.other.floating.point
1d0e0 20 74 79 70 65 2c 20 77 68 69 63 68 20 69 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 .type,.which.is.......<code><spa
1d100 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 73 70 61 6e 3e 3c 2f n.class="tok-type">f128</span></
1d120 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>.....
1d140 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 22 23 54 79 70 65 2d ..Float.literals.<a.href="#Type-
1d160 43 6f 65 72 63 69 6f 6e 22 3e 63 6f 65 72 63 65 3c 2f 61 3e 20 74 6f 20 61 6e 79 20 66 6c 6f 61 Coercion">coerce</a>.to.any.floa
1d180 74 69 6e 67 20 70 6f 69 6e 74 20 74 79 70 65 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 6f 20 61 6e ting.point.type,.......and.to.an
1d1a0 79 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 y.<a.href="#Integers">integer</a
1d1c0 3e 20 74 79 70 65 20 77 68 65 6e 20 74 68 65 72 65 20 69 73 20 6e 6f 20 66 72 61 63 74 69 6f 6e >.type.when.there.is.no.fraction
1d1e0 61 6c 20 63 6f 6d 70 6f 6e 65 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c al.component........</p>.......<
1d200 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 figure><figcaption.class="zig-ca
1d220 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 6c 6f 61 74 5f 6c 69 74 65 p"><cite.class="file">float_lite
1d240 72 61 6c 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 rals.zig</cite></figcaption><pre
1d260 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
1d280 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.
1d2a0 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
1d2c0 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<
1d2e0 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
1d300 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
1d320 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>.
1d340 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
1d360 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.
1d380 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_
1d3a0 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
1d3c0 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
1d3e0 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>.
1d400 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=
1d420 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
1d440 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>.
1d460 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
1d480 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
1d4a0 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 3e an>;..<span.class="tok-comment">
1d4c0 2f 2f 20 75 6e 64 65 72 73 63 6f 72 65 73 20 6d 61 79 20 62 65 20 70 6c 61 63 65 64 20 62 65 74 //.underscores.may.be.placed.bet
1d4e0 77 65 65 6e 20 74 77 6f 20 64 69 67 69 74 73 20 61 73 20 61 20 76 69 73 75 61 6c 20 73 65 70 61 ween.two.digits.as.a.visual.sepa
1d500 72 61 74 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 rator</span>.<span.class="tok-kw
1d520 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6c 69 67 68 74 73 70 65 65 64 20 3d 20 3c 73 70 61 ">const</span>.lightspeed.=.<spa
1d540 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 39 39 5f 37 39 32 5f 34 35 38 n.class="tok-number">299_792_458
1d560 2e 30 30 30 5f 30 30 30 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .000_000</span>;.<span.class="to
1d580 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 61 6e 6f 73 65 63 6f 6e 64 20 3d 20 k-kw">const</span>.nanosecond.=.
1d5a0 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 2e 30 30 30 5f 30 <span.class="tok-number">0.000_0
1d5c0 30 30 5f 30 30 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 6b 2d 00_001</span>;.<span.class="tok-
1d5e0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 6f 72 65 5f 68 65 78 20 3d 20 3c 73 70 61 kw">const</span>.more_hex.=.<spa
1d600 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 5f 35 36 37 38 n.class="tok-number">0x1234_5678
1d620 2e 39 41 42 43 5f 43 44 45 46 70 2d 31 30 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 .9ABC_CDEFp-10</span>;</code></p
1d640 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 re></figure>.......<p>.......The
1d660 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 66 69 6e 69 74 re.is.no.syntax.for.NaN,.infinit
1d680 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 72 20 74 68 65 y,.or.negative.infinity..For.the
1d6a0 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 65 20 6d 75 73 se.special.values,.......one.mus
1d6c0 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 0a 20 20 20 20 t.use.the.standard.library:.....
1d6e0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
1d700 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
1d720 6c 65 22 3e 66 6c 6f 61 74 5f 73 70 65 63 69 61 6c 5f 76 61 6c 75 65 73 2e 7a 69 67 3c 2f 63 69 le">float_special_values.zig</ci
1d740 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
1d760 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
1d780 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
1d7a0 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
1d7c0 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
1d7e0 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 69 6e n.class="tok-kw">const</span>.in
1d800 66 20 3d 20 73 74 64 2e 6d 61 74 68 2e 69 6e 66 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f f.=.std.math.inf(<span.class="to
1d820 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 k-type">f32</span>);.<span.class
1d840 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 65 67 61 74 69 76 65 5f ="tok-kw">const</span>.negative_
1d860 69 6e 66 20 3d 20 2d 73 74 64 2e 6d 61 74 68 2e 69 6e 66 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d inf.=.-std.math.inf(<span.class=
1d880 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 29 3b 0a 3c 73 70 61 6e 20 63 6c "tok-type">f64</span>);.<span.cl
1d8a0 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 61 6e 20 3d 20 ass="tok-kw">const</span>.nan.=.
1d8c0 73 74 64 2e 6d 61 74 68 2e 6e 61 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 std.math.nan(<span.class="tok-ty
1d8e0 70 65 22 3e 66 31 32 38 3c 2f 73 70 61 6e 3e 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f pe">f128</span>);</code></pre></
1d900 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 46 6c 6f figure>..............<h3.id="Flo
1d920 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 68 72 65 66 3d ating-Point-Operations"><a.href=
1d940 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 46 6c 6f 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 "nav.xhtml#toc-Floating-Point-Op
1d960 65 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 erations">Floating.Point.Operati
1d980 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 23 46 6c ons</a>.<a.class="hdr".href="#Fl
1d9a0 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 c2 a7 3c 2f 61 3e 3c oating-Point-Operations">..</a><
1d9c0 2f 68 33 3e 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 /h3>........<p>By.default.floati
1d9e0 6e 67 20 70 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 3e 53 74 ng.point.operations.use.<code>St
1da00 72 69 63 74 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 20 62 75 74 20 rict</code>.mode,...........but.
1da20 79 6f 75 20 63 61 6e 20 73 77 69 74 63 68 20 74 6f 20 3c 63 6f 64 65 3e 4f 70 74 69 6d 69 7a 65 you.can.switch.to.<code>Optimize
1da40 64 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 20 6f 6e 20 61 20 70 65 72 2d 62 6c 6f 63 6b 20 62 61 73 d</code>.mode.on.a.per-block.bas
1da60 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f is:</p>.......<figure><figcaptio
1da80 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 n.class="zig-cap"><cite.class="f
1daa0 69 6c 65 22 3e 66 6c 6f 61 74 5f 6d 6f 64 65 5f 6f 62 6a 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f ile">float_mode_obj.zig</cite></
1dac0 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 figcaption><pre><code><span.clas
1dae0 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
1db00 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<
1db20 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
1db40 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
1db60 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 67 20 3d 20 3c 73 s="tok-kw">const</span>.big.=.<s
1db80 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 73 3c 2f 73 70 61 pan.class="tok-builtin">@as</spa
1dba0 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 66 36 34 3c 2f 73 n>(<span.class="tok-type">f64</s
1dbc0 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 31 pan>,.<span.class="tok-number">1
1dbe0 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
1dc00 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
1dc20 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.
1dc40 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
1dc60 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>(
1dc80 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
1dca0 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
1dcc0 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
1dce0 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;.
1dd00 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</
1dd20 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
1dd40 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
1dd60 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
1dd80 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
1dda0 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
1ddc0 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
1dde0 4d 6f 64 65 3c 2f 73 70 61 6e 3e 28 2e 6f 70 74 69 6d 69 7a 65 64 29 3b 0a 20 20 20 20 3c 73 70 Mode</span>(.optimized);.....<sp
1de00 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>.
1de20 78 20 2b 20 62 69 67 20 2d 20 62 69 67 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 x.+.big.-.big;.}</code></pre></f
1de40 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d igure><figure><figcaption.class=
1de60 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 "shell-cap">Shell</figcaption><p
1de80 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 66 6c re><samp>$.<kbd>zig.build-obj.fl
1dea0 6f 61 74 5f 6d 6f 64 65 5f 6f 62 6a 2e 7a 69 67 20 2d 4f 20 52 65 6c 65 61 73 65 46 61 73 74 3c oat_mode_obj.zig.-O.ReleaseFast<
1dec0 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 /kbd>.</samp></pre></figure>....
1dee0 20 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 ...<p>For.this.test.we.have.to.s
1df00 65 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 eparate.code.into.two.object.fil
1df20 65 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 es.-.......otherwise.the.optimiz
1df40 65 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 er.figures.out.all.the.values.at
1df60 20 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 .compile-time,.......which.opera
1df80 74 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 66 tes.in.strict.mode.</p>.......<f
1dfa0 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
1dfc0 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 6c 6f 61 74 5f 6d 6f 64 65 5f "><cite.class="file">float_mode_
1dfe0 65 78 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e exe.zig</cite></figcaption><pre>
1e000 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
1e020 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>.print.=.<span.class="tok
1e040 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
1e060 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;</
1e080 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 span>).debug.print;..<span.class
1e0a0 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
1e0c0 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
1e0e0 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 78 3a ss="tok-fn">foo_strict</span>(x:
1e100 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 70 61 .<span.class="tok-type">f64</spa
1e120 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 3c 2f n>).<span.class="tok-type">f64</
1e140 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 65 span>;.<span.class="tok-kw">exte
1e160 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 66 rn</span>.<span.class="tok-kw">f
1e180 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
1e1a0 6f 5f 6f 70 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 o_optimized</span>(x:.<span.clas
1e1c0 73 3d 22 74 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 s="tok-type">f64</span>).<span.c
1e1e0 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 3b 0a 0a 3c 73 70 lass="tok-type">f64</span>;..<sp
1e200 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
1e220 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
1e240 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>().<
1e260 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
1e280 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
1e2a0 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 6e st</span>.x.=.<span.class="tok-n
1e2c0 75 6d 62 65 72 22 3e 30 2e 30 30 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 70 72 69 6e 74 28 3c umber">0.001</span>;.....print(<
1e2e0 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 70 74 69 6d span.class="tok-str">&quot;optim
1e300 69 7a 65 64 20 3d 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 66 6f 6f 5f ized.=.{}\n&quot;</span>,..{foo_
1e320 6f 70 74 69 6d 69 7a 65 64 28 78 29 7d 29 3b 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 optimized(x)});.....print(<span.
1e340 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 69 63 74 20 3d 20 7b class="tok-str">&quot;strict.=.{
1e360 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 66 6f 6f 5f 73 74 72 69 63 74 28 78 }\n&quot;</span>,..{foo_strict(x
1e380 29 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 )});.}</code></pre></figure><fig
1e3a0 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 ure><figcaption.class="shell-cap
1e3c0 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 ">Shell</figcaption><pre><samp>$
1e3e0 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 66 6c 6f 61 74 5f 6d 6f 64 65 5f 65 .<kbd>zig.build-exe.float_mode_e
1e400 78 65 2e 7a 69 67 20 66 6c 6f 61 74 5f 6d 6f 64 65 5f 6f 62 6a 2e 6f 3c 2f 6b 62 64 3e 0a 24 20 xe.zig.float_mode_obj.o</kbd>.$.
1e420 3c 6b 62 64 3e 2e 2f 66 6c 6f 61 74 5f 6d 6f 64 65 5f 65 78 65 3c 2f 6b 62 64 3e 0a 6f 70 74 69 <kbd>./float_mode_exe</kbd>.opti
1e440 6d 69 7a 65 64 20 3d 20 31 65 2d 33 0a 73 74 72 69 63 74 20 3d 20 39 2e 37 36 35 36 32 35 65 2d mized.=.1e-3.strict.=.9.765625e-
1e460 34 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 4.</samp></pre></figure>.......<
1e480 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=
1e4a0 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 3c 2f 61 "#setFloatMode">@setFloatMode</a
1e4c0 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 ></li>.<li><a.href="#Division-by
1e4e0 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 69 3e -Zero">Division.by.Zero</a></li>
1e500 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 3c 68 32 20 .</ul>......................<h2.
1e520 69 64 3d 22 4f 70 65 72 61 74 6f 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d id="Operators"><a.href="nav.xhtm
1e540 6c 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 3c 2f 61 3e 20 3c l#toc-Operators">Operators</a>.<
1e560 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 74 6f 72 73 22 3e a.class="hdr".href="#Operators">
1e580 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 54 68 65 ..</a></h2>........<p>.......The
1e5a0 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 69 6e 67 2e 20 57 re.is.no.operator.overloading..W
1e5c0 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 20 5a 69 67 2c 20 hen.you.see.an.operator.in.Zig,.
1e5e0 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 64 6f 69 6e 67 20 you.know.that.......it.is.doing.
1e600 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 20 61 6e 64 20 6e something.from.this.table,.and.n
1e620 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 20 20 20 20 3c 68 othing.else........</p>.......<h
1e640 33 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 3c 61 20 68 72 65 3.id="Table-of-Operators"><a.hre
1e660 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 61 62 6c 65 2d 6f 66 2d 4f 70 65 72 61 74 f="nav.xhtml#toc-Table-of-Operat
1e680 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 20 3c 61 20 63 ors">Table.of.Operators</a>.<a.c
1e6a0 6c 61 73 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 lass="hdr".href="#Table-of-Opera
1e6c0 74 6f 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 64 69 76 20 63 6c tors">..</a></h3>........<div.cl
1e6e0 61 73 73 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 ass="table-wrapper">.......<tabl
1e700 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 68 65 61 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a e>.........<thead>.........<tr>.
1e720 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 4e 61 6d 65 3c 2f ..........<th.scope="col">Name</
1e740 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 53 79 th>...........<th.scope="col">Sy
1e760 6e 74 61 78 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 ntax</th>...........<th.scope="c
1e780 6f 6c 22 3e 54 79 70 65 73 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f ol">Types</th>...........<th.sco
1e7a0 70 65 3d 22 63 6f 6c 22 3e 52 65 6d 61 72 6b 73 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 pe="col">Remarks</th>...........
1e7c0 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 45 78 61 6d 70 6c 65 3c 2f 74 68 3e 0a 20 20 20 <th.scope="col">Example</th>....
1e7e0 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 68 65 61 64 3e 0a 20 20 20 20 .....</tr>.........</thead>.....
1e800 20 20 20 20 3c 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 ....<tbody>.........<tr>........
1e820 20 20 20 3c 74 64 3e 41 64 64 69 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c ...<td>Addition</td>...........<
1e840 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 2b 20 62 0a 61 20 2b 3d 20 62 3c 2f 63 6f 64 65 td><pre><code>a.+.b.a.+=.b</code
1e860 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>.....
1e880 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><
1e8a0 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 3c a.href="#Integers">Integers</a><
1e8c0 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 22 /li>...............<li><a.href="
1e8e0 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 20 #Floats">Floats</a></li>........
1e900 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 20 .....</ul>...........</td>......
1e920 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>......
1e940 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 3d 22 .........<li>Can.cause.<a.href="
1e960 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 2f 61 #Default-Operations">overflow</a
1e980 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 20 20 >.for.integers.</li>............
1e9a0 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 2d 54 79 ...<li>Invokes.<a.href="#Peer-Ty
1e9c0 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 6c 75 74 pe-Resolution">Peer.Type.Resolut
1e9e0 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 3e 0a 20 ion</a>.for.the.operands.</li>..
1ea00 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 68 72 65 .............<li>See.also.<a.hre
1ea20 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 57 69 74 68 4f 76 65 f="#addWithOverflow">@addWithOve
1ea40 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 2f 75 6c rflow</a>.</li>.............</ul
1ea60 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>
1ea80 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c .............<pre><code><span.cl
1eaa0 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 2b 20 3c 73 70 61 ass="tok-number">2</span>.+.<spa
1eac0 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 3d 3d n.class="tok-number">5</span>.==
1eae0 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 37 3c 2f 73 70 61 .<span.class="tok-number">7</spa
1eb00 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 3e 0a n></code></pre>...........</td>.
1eb20 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>......
1eb40 20 20 20 20 20 3c 74 64 3e 57 72 61 70 70 69 6e 67 20 41 64 64 69 74 69 6f 6e 3c 2f 74 64 3e 0a .....<td>Wrapping.Addition</td>.
1eb60 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 2b 25 20 62 0a ..........<td><pre><code>a.+%.b.
1eb80 61 20 2b 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 20 20 a.+%=.b</code></pre></td>.......
1eba0 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>.......
1ebc0 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">
1ebe0 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 3c 2f Integers</a></li>.............</
1ec00 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 74 ul>...........</td>...........<t
1ec20 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>.............
1ec40 20 20 3c 6c 69 3e 54 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 ..<li>Twos-complement.wrapping.b
1ec60 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 20 20 3c 6c 69 3e ehavior.</li>...............<li>
1ec80 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 6f Invokes.<a.href="#Peer-Type-Reso
1eca0 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 3e lution">Peer.Type.Resolution</a>
1ecc0 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 20 20 .for.the.operands.</li>.........
1ece0 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 22 23 61 64 64 ......<li>See.also.<a.href="#add
1ed00 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 77 3c 2f WithOverflow">@addWithOverflow</
1ed20 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 20 20 20 20 20 a>.</li>.............</ul>......
1ed40 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>.......
1ed60 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
1ed80 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 k-builtin">@as</span>(<span.clas
1eda0 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 3c 73 70 61 6e 20 63 s="tok-type">u32</span>,.<span.c
1edc0 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 66 66 66 66 66 66 66 66 3c 2f 73 70 lass="tok-number">0xffffffff</sp
1ede0 61 6e 3e 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 62 65 72 22 an>).+%.<span.class="tok-number"
1ee00 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 6b 2d 6e 75 >1</span>.==.<span.class="tok-nu
1ee20 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 20 20 20 20 mber">0</span></code></pre>.....
1ee40 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 20 20 20 ......</td>.........</tr>.......
1ee60 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 53 61 74 75 72 61 74 69 6e 67 20 ..<tr>...........<td>Saturating.
1ee80 41 64 64 69 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 Addition</td>...........<td><pre
1eea0 3e 3c 63 6f 64 65 3e 61 20 2b 7c 20 62 0a 61 20 2b 7c 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ><code>a.+|.b.a.+|=.b</code></pr
1eec0 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 20 20 e></td>...........<td>..........
1eee0 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 72 65 ...<ul>...............<li><a.hre
1ef00 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 3e 0a f="#Integers">Integers</a></li>.
1ef20 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
1ef40 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
1ef60 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 68 >...............<li>Invokes.<a.h
1ef80 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
1efa0 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
1efc0 72 61 6e 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 rands.</li>.............</ul>...
1efe0 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>....
1f000 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d .........<pre><code><span.class=
1f020 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 "tok-builtin">@as</span>(<span.c
1f040 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 3c 73 70 61 6e lass="tok-type">u8</span>,.<span
1f060 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 29 20 .class="tok-number">255</span>).
1f080 2b 7c 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
1f0a0 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 62 75 69 6c 74 69 6e pan>.==.<span.class="tok-builtin
1f0c0 22 3e 40 61 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 74 79 ">@as</span>(<span.class="tok-ty
1f0e0 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 2d pe">u8</span>,.<span.class="tok-
1f100 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e number">255</span>)</code></pre>
1f120 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>..
1f140 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 53 75 62 74 72 61 .......<tr>...........<td>Subtra
1f160 63 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 ction</td>...........<td><pre><c
1f180 6f 64 65 3e 61 20 2d 20 62 0a 61 20 2d 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 ode>a.-.b.a.-=.b</code></pre></t
1f1a0 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
1f1c0 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
1f1e0 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>......
1f200 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
1f220 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 3c 2f 75 6c 3e loats</a></li>.............</ul>
1f240 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>.
1f260 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>...............<
1f280 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
1f2a0 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
1f2c0 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 49 6e 76 gers.</li>...............<li>Inv
1f2e0 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
1f300 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
1f320 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>............
1f340 20 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 75 62 57 69 74 ...<li>See.also.<a.href="#subWit
1f360 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 2f 61 3e 2e hOverflow">@subWithOverflow</a>.
1f380 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>.........
1f3a0 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 20 ..</td>...........<td>..........
1f3c0 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ...<pre><code><span.class="tok-n
1f3e0 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 73 3d 22 74 umber">2</span>.-.<span.class="t
1f400 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 6e 20 63 6c ok-number">5</span>.==.-<span.cl
1f420 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 6f 64 65 3e ass="tok-number">3</span></code>
1f440 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>.........<
1f460 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>
1f480 57 72 61 70 70 69 6e 67 20 53 75 62 74 72 61 63 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 Wrapping.Subtraction</td>.......
1f4a0 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 2d 25 20 62 0a 61 20 2d 25 3d 20 ....<td><pre><code>a.-%.b.a.-%=.
1f4c0 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
1f4e0 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>.............
1f500 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
1f520 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>...
1f540 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>....
1f560 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>
1f580 54 77 6f 73 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 Twos-complement.wrapping.behavio
1f5a0 72 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 49 6e 76 6f 6b 65 r.</li>...............<li>Invoke
1f5c0 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
1f5e0 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
1f600 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 20 20 he.operands.</li>...............
1f620 3c 6c 69 3e 53 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 <li>See.also.<a.href="#subWithOv
1f640 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 2f 61 3e 2e 3c 2f 6c erflow">@subWithOverflow</a>.</l
1f660 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>...........<
1f680 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>.............
1f6a0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c <pre><code><span.class="tok-buil
1f6c0 74 69 6e 22 3e 40 61 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 tin">@as</span>(<span.class="tok
1f6e0 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
1f700 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 20 2d 25 20 3c 73 70 61 6e 20 63 6c ok-number">0</span>).-%.<span.cl
1f720 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 3d 3d 20 3c 73 70 ass="tok-number">1</span>.==.<sp
1f740 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>
1f760 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>...
1f780 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>........
1f7a0 20 20 20 3c 74 64 3e 53 61 74 75 72 61 74 69 6e 67 20 53 75 62 74 72 61 63 74 69 6f 6e 3c 2f 74 ...<td>Saturating.Subtraction</t
1f7c0 64 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 3e 61 20 2d 7c d>...........<td><pre><code>a.-|
1f7e0 20 62 0a 61 20 2d 7c 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 .b.a.-|=.b</code></pre></td>....
1f800 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>....
1f820 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
1f840 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>............
1f860 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>..........
1f880 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>..........
1f8a0 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 2d .....<li>Invokes.<a.href="#Peer-
1f8c0 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 6c Type-Resolution">Peer.Type.Resol
1f8e0 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 3e ution</a>.for.the.operands.</li>
1f900 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 74 .............</ul>...........</t
1f920 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 70 d>...........<td>.............<p
1f940 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 re><code><span.class="tok-builti
1f960 6e 22 3e 40 61 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 74 n">@as</span>(<span.class="tok-t
1f980 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 74 6f ype">u32</span>,.<span.class="to
1f9a0 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 20 2d 7c 20 3c 73 70 61 6e 20 63 6c 61 k-number">0</span>).-|.<span.cla
1f9c0 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 3d 3d 20 3c 73 70 61 ss="tok-number">1</span>.==.<spa
1f9e0 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 3c 2f 63 n.class="tok-number">0</span></c
1fa00 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>......
1fa20 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>...........
1fa40 3c 74 64 3e 4e 65 67 61 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e <td>Negation</td>...........<td>
1fa60 3c 70 72 65 3e 3c 63 6f 64 65 3e 2d 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a <pre><code>-a</code></pre></td>.
1fa80 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 0a ..........<td>.............<ul>.
1faa0 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 65 ..............<li><a.href="#Inte
1fac0 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 20 gers">Integers</a></li>.........
1fae0 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 61 ......<li><a.href="#Floats">Floa
1fb00 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 20 ts</a></li>.............</ul>...
1fb20 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>....
1fb40 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>
1fb60 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 70 65 72 Can.cause.<a.href="#Default-Oper
1fb80 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 67 65 72 ations">overflow</a>.for.integer
1fba0 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 20 s.</li>.............</ul>.......
1fbc0 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>........
1fbe0 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .....<pre><code>-<span.class="to
1fc00 6b 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 k-number">1</span>.==.<span.clas
1fc20 73 3d 22 74 6f 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 s="tok-number">0</span>.-.<span.
1fc40 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 3c 2f 63 6f 64 class="tok-number">1</span></cod
1fc60 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 20 20 e></pre>...........</td>........
1fc80 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 3c 74 .</tr>.........<tr>...........<t
1fca0 64 3e 57 72 61 70 70 69 6e 67 20 4e 65 67 61 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 d>Wrapping.Negation</td>........
1fcc0 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 2d 25 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ...<td><pre><code>-%a</code></pr
1fce0 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 20 20 e></td>...........<td>..........
1fd00 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 72 65 ...<ul>...............<li><a.hre
1fd20 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 3e 0a f="#Integers">Integers</a></li>.
1fd40 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
1fd60 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
1fd80 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 77 6f 73 2d 63 6f 6d 70 6c 65 6d >...............<li>Twos-complem
1fda0 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 20 ent.wrapping.behavior.</li>.....
1fdc0 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 20 ........</ul>...........</td>...
1fde0 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 63 ........<td>.............<pre><c
1fe00 6f 64 65 3e 2d 25 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 ode>-%<span.class="tok-builtin">
1fe20 40 61 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 74 79 70 65 @as</span>(<span.class="tok-type
1fe40 22 3e 69 38 3c 2f 73 70 61 6e 3e 2c 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ">i8</span>,.-<span.class="tok-n
1fe60 75 6d 62 65 72 22 3e 31 32 38 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 2d 3c 73 70 61 6e 20 63 6c 61 umber">128</span>).==.-<span.cla
1fe80 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ss="tok-number">128</span></code
1fea0 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>.........
1fec0 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
1fee0 3e 4d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c >Multiplication</td>...........<
1ff00 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 2a 20 62 0a 61 20 2a 3d 20 62 3c 2f 63 6f 64 65 td><pre><code>a.*.b.a.*=.b</code
1ff20 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>.....
1ff40 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><
1ff60 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 3c a.href="#Integers">Integers</a><
1ff80 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 22 /li>...............<li><a.href="
1ffa0 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 20 #Floats">Floats</a></li>........
1ffc0 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 20 .....</ul>...........</td>......
1ffe0 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>......
20000 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 3d 22 .........<li>Can.cause.<a.href="
20020 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 2f 61 #Default-Operations">overflow</a
20040 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 20 20 >.for.integers.</li>............
20060 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 2d 54 79 ...<li>Invokes.<a.href="#Peer-Ty
20080 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 6c 75 74 pe-Resolution">Peer.Type.Resolut
200a0 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 3e 0a 20 ion</a>.for.the.operands.</li>..
200c0 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 68 72 65 .............<li>See.also.<a.hre
200e0 66 3d 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 f="#mulWithOverflow">@mulWithOve
20100 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 2f 75 6c rflow</a>.</li>.............</ul
20120 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>
20140 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c .............<pre><code><span.cl
20160 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 2a 20 3c 73 70 61 ass="tok-number">2</span>.*.<spa
20180 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 3d 3d n.class="tok-number">5</span>.==
201a0 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 70 .<span.class="tok-number">10</sp
201c0 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 3e an></code></pre>...........</td>
201e0 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 20 .........</tr>.........<tr>.....
20200 20 20 20 20 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 ......<td>Wrapping.Multiplicatio
20220 6e 3c 2f 74 64 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 3e n</td>...........<td><pre><code>
20240 61 20 2a 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 a.*%.b.a.*%=.b</code></pre></td>
20260 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>
20280 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
202a0 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>........
202c0 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 20 .....</ul>...........</td>......
202e0 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>......
20300 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 .........<li>Twos-complement.wra
20320 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 20 20 20 pping.behavior.</li>............
20340 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 2d 54 79 ...<li>Invokes.<a.href="#Peer-Ty
20360 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 6c 75 74 pe-Resolution">Peer.Type.Resolut
20380 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 3e 0a 20 ion</a>.for.the.operands.</li>..
203a0 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 68 72 65 .............<li>See.also.<a.hre
203c0 66 3d 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 f="#mulWithOverflow">@mulWithOve
203e0 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 2f 75 6c rflow</a>.</li>.............</ul
20400 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>
20420 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c .............<pre><code><span.cl
20440 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 ass="tok-builtin">@as</span>(<sp
20460 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 3c an.class="tok-type">u8</span>,.<
20480 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 30 30 3c 2f 73 70 61 span.class="tok-number">200</spa
204a0 6e 3e 29 20 2a 25 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">
204c0 32 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 2</span>.==.<span.class="tok-num
204e0 62 65 72 22 3e 31 34 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 ber">144</span></code></pre>....
20500 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 20 20 .......</td>.........</tr>......
20520 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 53 61 74 75 72 61 74 69 6e 67 ...<tr>...........<td>Saturating
20540 20 4d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c .Multiplication</td>...........<
20560 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 2a 7c 20 62 0a 61 20 2a 7c 3d 20 62 3c 2f 63 6f td><pre><code>a.*|.b.a.*|=.b</co
20580 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>...
205a0 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
205c0 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
205e0 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>........
20600 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>.........
20620 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 49 6e 76 6f 6b ....<ul>...............<li>Invok
20640 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 6f es.<a.href="#Peer-Type-Resolutio
20660 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 20 n">Peer.Type.Resolution</a>.for.
20680 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 3c the.operands.</li>.............<
206a0 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>...........<
206c0 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 3e 3c 73 70 61 6e td>.............<pre><code><span
206e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 .class="tok-builtin">@as</span>(
20700 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>
20720 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 30 30 3c 2f ,.<span.class="tok-number">200</
20740 73 70 61 6e 3e 29 20 2a 7c 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
20760 72 22 3e 32 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 r">2</span>.==.<span.class="tok-
20780 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a number">255</span></code></pre>.
207a0 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>...
207c0 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 44 69 76 69 73 69 6f ......<tr>...........<td>Divisio
207e0 6e 3c 2f 74 64 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 3e n</td>...........<td><pre><code>
20800 61 20 2f 20 62 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 a./.b.a./=.b</code></pre></td>..
20820 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 0a 20 .........<td>.............<ul>..
20840 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 65 67 .............<li><a.href="#Integ
20860 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 20 20 ers">Integers</a></li>..........
20880 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 61 74 .....<li><a.href="#Floats">Float
208a0 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 20 s</a></li>.............</ul>....
208c0 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 20 .......</td>...........<td>.....
208e0 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 43 ........<ul>...............<li>C
20900 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 70 65 72 61 an.cause.<a.href="#Default-Opera
20920 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 67 65 72 73 tions">overflow</a>.for.integers
20940 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 20 63 61 75 .</li>...............<li>Can.cau
20960 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 6f 22 3e 44 se.<a.href="#Division-by-Zero">D
20980 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 67 65 72 73 ivision.by.Zero</a>.for.integers
209a0 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 20 63 61 75 .</li>...............<li>Can.cau
209c0 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 6f 22 3e 44 se.<a.href="#Division-by-Zero">D
209e0 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 74 73 20 69 ivision.by.Zero</a>.for.floats.i
20a00 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 70 65 72 61 n.<a.href="#Floating-Point-Opera
20a20 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 6f 64 65 3c tions">FloatMode.Optimized.Mode<
20a40 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 53 69 67 6e /a>.</li>...............<li>Sign
20a60 65 64 20 69 6e 74 65 67 65 72 20 6f 70 65 72 61 6e 64 73 20 6d 75 73 74 20 62 65 20 63 6f 6d 70 ed.integer.operands.must.be.comp
20a80 74 69 6d 65 2d 6b 6e 6f 77 6e 20 61 6e 64 20 70 6f 73 69 74 69 76 65 2e 20 49 6e 20 6f 74 68 65 time-known.and.positive..In.othe
20aa0 72 20 63 61 73 65 73 2c 20 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 r.cases,.use.................<a.
20ac0 68 72 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 2c 0a href="#divTrunc">@divTrunc</a>,.
20ae0 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 23 64 69 76 46 6c 6f ................<a.href="#divFlo
20b00 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 or">@divFloor</a>,.or...........
20b20 20 20 20 20 20 20 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 ......<a.href="#divExact">@divEx
20b40 61 63 74 3c 2f 61 3e 20 69 6e 73 74 65 61 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c act</a>.instead................<
20b60 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.<
20b80 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
20ba0 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.
20bc0 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 3c 2f 75 6c 3e operands.</li>.............</ul>
20be0 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>.
20c00 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 ............<pre><code><span.cla
20c20 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 2f 20 3c 73 70 61 ss="tok-number">10</span>./.<spa
20c40 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 3d 3d n.class="tok-number">5</span>.==
20c60 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
20c80 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 3e 0a n></code></pre>...........</td>.
20ca0 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>......
20cc0 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 3c 2f 74 64 3e .....<td>Remainder.Division</td>
20ce0 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 3e 61 20 25 20 62 0a ...........<td><pre><code>a.%.b.
20d00 61 20 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 20 20 20 a.%=.b</code></pre></td>........
20d20 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>........
20d40 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
20d60 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>...............<
20d80 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><
20da0 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>..........
20dc0 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>...........
20de0 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 61 75 ..<ul>...............<li>Can.cau
20e00 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 6f 22 3e 44 se.<a.href="#Division-by-Zero">D
20e20 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 67 65 72 73 ivision.by.Zero</a>.for.integers
20e40 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 20 63 61 75 .</li>...............<li>Can.cau
20e60 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 6f 22 3e 44 se.<a.href="#Division-by-Zero">D
20e80 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 74 73 20 69 ivision.by.Zero</a>.for.floats.i
20ea0 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 70 65 72 61 n.<a.href="#Floating-Point-Opera
20ec0 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 6f 64 65 3c tions">FloatMode.Optimized.Mode<
20ee0 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 53 69 67 6e /a>.</li>...............<li>Sign
20f00 65 64 20 6f 72 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 6f 70 65 72 61 6e 64 73 20 6d 75 ed.or.floating-point.operands.mu
20f20 73 74 20 62 65 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 61 6e 64 20 70 6f 73 69 74 69 76 st.be.comptime-known.and.positiv
20f40 65 2e 20 49 6e 20 6f 74 68 65 72 20 63 61 73 65 73 2c 20 75 73 65 0a 20 20 20 20 20 20 20 20 20 e..In.other.cases,.use..........
20f60 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 2f 61 3e 20 6f .......<a.href="#rem">@rem</a>.o
20f80 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 23 6d 6f 64 22 r.................<a.href="#mod"
20fa0 3e 40 6d 6f 64 3c 2f 61 3e 20 69 6e 73 74 65 61 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 >@mod</a>.instead...............
20fc0 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 6b 65 73 .</li>...............<li>Invokes
20fe0 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 22 .<a.href="#Peer-Type-Resolution"
21000 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 68 >Peer.Type.Resolution</a>.for.th
21020 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 3c 2f 75 e.operands.</li>.............</u
21040 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
21060 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 >.............<pre><code><span.c
21080 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 25 20 3c 73 lass="tok-number">10</span>.%.<s
210a0 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 20 pan.class="tok-number">3</span>.
210c0 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
210e0 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
21100 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>....
21120 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 20 53 68 69 66 74 20 4c 65 66 74 3c 2f 74 64 3e 0a 20 .......<td>Bit.Shift.Left</td>..
21140 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 26 6c 74 3b 26 6c .........<td><pre><code>a.&lt;&l
21160 74 3b 20 62 0a 61 20 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 t;.b.a.&lt;&lt;=.b</code></pre><
21180 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>.............
211a0 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 3d 22 <ul>...............<li><a.href="
211c0 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 3e 0a 20 20 20 #Integers">Integers</a></li>....
211e0 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>..
21200 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 0a 20 .........<td>.............<ul>..
21220 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 4d 6f 76 65 73 20 61 6c 6c 20 62 69 74 73 20 .............<li>Moves.all.bits.
21240 74 6f 20 74 68 65 20 6c 65 66 74 2c 20 69 6e 73 65 72 74 69 6e 67 20 6e 65 77 20 7a 65 72 6f 65 to.the.left,.inserting.new.zeroe
21260 73 20 61 74 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 61 73 74 2d 73 69 67 s.at.the...............least-sig
21280 6e 69 66 69 63 61 6e 74 20 62 69 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nificant.bit.</li>..............
212a0 20 3c 6c 69 3e 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 0a 20 20 20 20 .<li><code>b</code>.must.be.....
212c0 20 20 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 ..........<a.href="#comptime">co
212e0 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 61 3e 20 6f 72 20 68 61 76 65 20 61 20 74 79 70 65 20 mptime-known</a>.or.have.a.type.
21300 77 69 74 68 20 6c 6f 67 32 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f with.log2.number...............o
21320 66 20 62 69 74 73 20 61 73 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 2e 3c 2f 6c 69 3e 0a 20 f.bits.as.<code>a</code>.</li>..
21340 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 68 72 65 .............<li>See.also.<a.hre
21360 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 2e 3c 2f 6c 69 f="#shlExact">@shlExact</a>.</li
21380 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.
213a0 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
213c0 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>.............<
213e0 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>...........<
21400 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 3e 3c 73 70 61 6e td>.............<pre><code><span
21420 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 3c 2f 73 70 61 6e 3e 20 26 .class="tok-number">0b1</span>.&
21440 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"
21460 3e 38 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 >8</span>.==.<span.class="tok-nu
21480 6d 62 65 72 22 3e 30 62 31 30 30 30 30 30 30 30 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c mber">0b100000000</span></code><
214a0 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>.........</
214c0 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 53 tr>.........<tr>...........<td>S
214e0 61 74 75 72 61 74 69 6e 67 20 42 69 74 20 53 68 69 66 74 20 4c 65 66 74 3c 2f 74 64 3e 0a 20 20 aturating.Bit.Shift.Left</td>...
21500 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 26 6c 74 3b 26 6c 74 ........<td><pre><code>a.&lt;&lt
21520 3b 7c 20 62 0a 61 20 26 6c 74 3b 26 6c 74 3b 7c 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e ;|.b.a.&lt;&lt;|=.b</code></pre>
21540 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>............
21560 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 3d .<ul>...............<li><a.href=
21580 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 3e 0a 20 20 "#Integers">Integers</a></li>...
215a0 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>.
215c0 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 0a ..........<td>.............<ul>.
215e0 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 68 72 ..............<li>See.also.<a.hr
21600 65 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 2e 3c 2f 6c ef="#shlExact">@shlExact</a>.</l
21620 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 6f 20 3c 61 i>...............<li>See.also.<a
21640 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 40 73 68 6c 57 69 74 .href="#shlWithOverflow">@shlWit
21660 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 20 20 20 20 hOverflow</a>.</li>.............
21680 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>...........
216a0 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 3e 3c 73 70 61 <td>.............<pre><code><spa
216c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e n.class="tok-builtin">@as</span>
216e0 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
21700 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 3c 2f 73 >,.<span.class="tok-number">1</s
21720 70 61 6e 3e 29 20 26 6c 74 3b 26 6c 74 3b 7c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b pan>).&lt;&lt;|.<span.class="tok
21740 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 -number">8</span>.==.<span.class
21760 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c ="tok-number">255</span></code><
21780 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>.........</
217a0 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 42 tr>.........<tr>...........<td>B
217c0 69 74 20 53 68 69 66 74 20 52 69 67 68 74 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 it.Shift.Right</td>...........<t
217e0 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 26 67 74 3b 26 67 74 3b 20 62 0a 61 20 26 67 74 3b d><pre><code>a.&gt;&gt;.b.a.&gt;
21800 26 67 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 20 20 20 20 &gt;=.b</code></pre></td>.......
21820 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>.......
21840 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">
21860 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 3c 2f Integers</a></li>.............</
21880 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 74 ul>...........</td>...........<t
218a0 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>.............
218c0 20 20 3c 6c 69 3e 4d 6f 76 65 73 20 61 6c 6c 20 62 69 74 73 20 74 6f 20 74 68 65 20 72 69 67 68 ..<li>Moves.all.bits.to.the.righ
218e0 74 2c 20 69 6e 73 65 72 74 69 6e 67 20 7a 65 72 6f 65 73 20 61 74 20 74 68 65 20 6d 6f 73 74 2d t,.inserting.zeroes.at.the.most-
21900 73 69 67 6e 69 66 69 63 61 6e 74 20 62 69 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 significant.bit.</li>...........
21920 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 0a 20 ....<li><code>b</code>.must.be..
21940 20 20 20 20 20 20 20 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 ...............<a.href="#comptim
21960 65 22 3e 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 61 3e 20 6f 72 20 68 61 76 65 20 61 20 e">comptime-known</a>.or.have.a.
21980 74 79 70 65 20 77 69 74 68 20 6c 6f 67 32 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 type.with.log2.number...........
219a0 20 20 20 20 20 20 6f 66 20 62 69 74 73 20 61 73 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 2e ......of.bits.as.<code>a</code>.
219c0 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 6f </li>...............<li>See.also
219e0 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 61 63 74 3c 2f .<a.href="#shrExact">@shrExact</
21a00 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 20 20 20 20 20 a>.</li>.............</ul>......
21a20 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>.......
21a40 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
21a60 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 30 31 30 3c 2f 73 70 61 6e 3e 20 26 67 74 3b 26 67 74 3b k-number">0b1010</span>.&gt;&gt;
21a80 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
21aa0 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 3e 30 n>.==.<span.class="tok-number">0
21ac0 62 31 30 31 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 b101</span></code></pre>........
21ae0 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 3c ...</td>.........</tr>.........<
21b00 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 69 73 65 20 41 6e 64 3c 2f 74 tr>...........<td>Bitwise.And</t
21b20 64 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 3e 61 20 26 61 d>...........<td><pre><code>a.&a
21b40 6d 70 3b 20 62 0a 61 20 26 61 6d 70 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 mp;.b.a.&amp;=.b</code></pre></t
21b60 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
21b80 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
21ba0 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>......
21bc0 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>....
21be0 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>....
21c00 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="
21c20 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
21c40 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
21c60 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 20 20 .</li>.............</ul>........
21c80 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>.........
21ca0 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....<pre><code><span.class="tok-
21cc0 6e 75 6d 62 65 72 22 3e 30 62 30 31 31 3c 2f 73 70 61 6e 3e 20 26 61 6d 70 3b 20 3c 73 70 61 6e number">0b011</span>.&amp;.<span
21ce0 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 3c 2f 73 70 61 6e 3e .class="tok-number">0b101</span>
21d00 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 62 30 .==.<span.class="tok-number">0b0
21d20 30 31 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 01</span></code></pre>..........
21d40 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 3c 74 72 .</td>.........</tr>.........<tr
21d60 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 69 73 65 20 4f 72 3c 2f 74 64 3e 0a >...........<td>Bitwise.Or</td>.
21d80 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 7c 20 62 0a 61 ..........<td><pre><code>a.|.b.a
21da0 20 7c 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 .|=.b</code></pre></td>.........
21dc0 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 20 ..<td>.............<ul>.........
21de0 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 6e ......<li><a.href="#Integers">In
21e00 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 6c tegers</a></li>.............</ul
21e20 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>
21e40 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>...............
21e60 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 2d <li>Invokes.<a.href="#Peer-Type-
21e80 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 6e Resolution">Peer.Type.Resolution
21ea0 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 20 </a>.for.the.operands.</li>.....
21ec0 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 20 ........</ul>...........</td>...
21ee0 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 63 ........<td>.............<pre><c
21f00 6f 64 65 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 30 62 30 ode><span.class="tok-number">0b0
21f20 31 30 3c 2f 73 70 61 6e 3e 20 7c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 10</span>.|.<span.class="tok-num
21f40 62 65 72 22 3e 30 62 31 30 30 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ber">0b100</span>.==.<span.class
21f60 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 62 31 31 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ="tok-number">0b110</span></code
21f80 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>.........
21fa0 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
21fc0 3e 42 69 74 77 69 73 65 20 58 6f 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e >Bitwise.Xor</td>...........<td>
21fe0 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 5e 20 62 0a 61 20 5e 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f <pre><code>a.^.b.a.^=.b</code></
22000 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>........
22020 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
22040 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
22060 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>...........</
22080 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>.............<
220a0 75 6c 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 ul>...............<li>Invokes.<a
220c0 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
220e0 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
22100 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 3c 2f 75 6c 3e 0a perands.</li>.............</ul>.
22120 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>..
22140 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 ...........<pre><code><span.clas
22160 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 6e 3e 20 5e 20 3c 73 s="tok-number">0b011</span>.^.<s
22180 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 3c 2f 73 70 pan.class="tok-number">0b101</sp
221a0 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 3e an>.==.<span.class="tok-number">
221c0 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 20 0b110</span></code></pre>.......
221e0 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>.........
22200 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 69 73 65 20 4e 6f 74 3c 2f <tr>...........<td>Bitwise.Not</
22220 74 64 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 3e 7e 61 3c td>...........<td><pre><code>~a<
22240 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>
22260 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>...............
22280 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 73 <li><a.href="#Integers">Integers
222a0 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 20 20 </a></li>.............</ul>.....
222c0 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 3c 2f 74 64 3e 0a ......</td>...........<td></td>.
222e0 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>
22300 3c 63 6f 64 65 3e 7e 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 <code>~<span.class="tok-builtin"
22320 3e 40 61 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 74 79 70 >@as</span>(<span.class="tok-typ
22340 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 2d 6e e">u8</span>,.<span.class="tok-n
22360 75 6d 62 65 72 22 3e 30 62 31 30 31 30 31 31 31 31 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 umber">0b10101111</span>).==.<sp
22380 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 30 31 30 30 30 30 an.class="tok-number">0b01010000
223a0 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>...........<
223c0 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>.
223e0 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 44 65 66 61 75 6c 74 69 6e 67 20 4f 70 74 69 6f 6e 61 ..........<td>Defaulting.Optiona
22400 6c 20 55 6e 77 72 61 70 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 l.Unwrap</td>...........<td><pre
22420 3e 3c 63 6f 64 65 3e 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 ><code>a.<span.class="tok-kw">or
22440 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a else</span>.b</code></pre></td>.
22460 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 0a ..........<td>.............<ul>.
22480 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 4f 70 74 69 ..............<li><a.href="#Opti
224a0 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 onals">Optionals</a></li>.......
224c0 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>.....
224e0 20 20 20 20 20 20 3c 74 64 3e 49 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c ......<td>If.<code>a</code>.is.<
22500 63 6f 64 65 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 code><span.class="tok-null">null
22520 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 72 65 74 75 72 6e </span></code>,...........return
22540 73 20 3c 63 6f 64 65 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 s.<code>b</code>.("default.value
22560 22 29 2c 0a 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 "),...........otherwise.returns.
22580 74 68 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 3e 61 3c 2f the.unwrapped.value.of.<code>a</
225a0 63 6f 64 65 3e 2e 0a 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 code>............Note.that.<code
225c0 3e 62 3c 2f 63 6f 64 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 >b</code>.may.be.a.value.of.type
225e0 20 3c 61 20 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 .<a.href="#noreturn">noreturn</a
22600 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
22620 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 >.............<pre><code><span.c
22640 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 76 61 6c 75 65 lass="tok-kw">const</span>.value
22660 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 33 32 3c 2f 73 :.?<span.class="tok-type">u32</s
22680 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 6e 75 pan>.=.<span.class="tok-null">nu
226a0 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 2d 6b 77 22 3e ll</span>;.<span.class="tok-kw">
226c0 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 3c const</span>.unwrapped.=.value.<
226e0 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 73 70 61 6e span.class="tok-kw">orelse</span
22700 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<
22720 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
22740 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>
22760 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>.........<
22780 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>
227a0 4f 70 74 69 6f 6e 61 6c 20 55 6e 77 72 61 70 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c Optional.Unwrap</td>...........<
227c0 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 2e 3f 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f td><pre><code>a.?</code></pre></
227e0 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>.............<
22800 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 3d 22 23 ul>...............<li><a.href="#
22820 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 69 3e 0a 20 20 Optionals">Optionals</a></li>...
22840 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>.
22860 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 45 71 75 69 76 ..........<td>.............Equiv
22880 61 6c 65 6e 74 20 74 6f 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 alent.to:.............<pre><code
228a0 3e 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 65 6c 73 65 3c 2f >a.<span.class="tok-kw">orelse</
228c0 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 65 61 span>.<span.class="tok-kw">unrea
228e0 63 68 61 62 6c 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 chable</span></code></pre>......
22900 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>.......
22920 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
22940 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 3f 3c 73 70 61 6e k-kw">const</span>.value:.?<span
22960 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 3c .class="tok-type">u32</span>.=.<
22980 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 37 38 3c 2f 73 70 span.class="tok-number">5678</sp
229a0 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 73 3d 22 74 6f 6b an>;.value.?.==.<span.class="tok
229c0 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 3e 3c 2f 70 72 65 -number">5678</span></code></pre
229e0 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>.
22a00 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 44 65 66 61 75 ........<tr>...........<td>Defau
22a20 6c 74 69 6e 67 20 45 72 72 6f 72 20 55 6e 77 72 61 70 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 lting.Error.Unwrap</td>.........
22a40 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ..<td><pre><code>a.<span.class="
22a60 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 3c 73 70 61 6e 20 63 tok-kw">catch</span>.b.a.<span.c
22a80 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 72 72 7c lass="tok-kw">catch</span>.|err|
22aa0 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 20 3c .b</code></pre></td>...........<
22ac0 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>............
22ae0 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 45 72 72 6f 72 20 55 ...<li><a.href="#Errors">Error.U
22b00 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 20 3c 2f 75 6c 3e nions</a></li>.............</ul>
22b20 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 49 ...........</td>...........<td>I
22b40 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 3c 63 6f 64 65 3e 3c 73 70 f.<code>a</code>.is.an.<code><sp
22b60 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 3c 2f an.class="tok-kw">error</span></
22b80 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 62 code>,...........returns.<code>b
22ba0 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 0a 20 20 20 20 20 </code>.("default.value"),......
22bc0 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 65 20 75 6e 77 72 61 .....otherwise.returns.the.unwra
22be0 70 70 65 64 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 2e 0a 20 20 pped.value.of.<code>a</code>....
22c00 20 20 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e ........Note.that.<code>b</code>
22c20 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 66 3d .may.be.a.value.of.type.<a.href=
22c40 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 3c 63 6f 64 65 3e "#noreturn">noreturn</a>..<code>
22c60 65 72 72 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c err</code>.is.the.<code><span.cl
22c80 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 6f 64 65 3e ass="tok-kw">error</span></code>
22ca0 20 61 6e 64 20 69 73 20 69 6e 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 .and.is.in.scope.of.the.expressi
22cc0 6f 6e 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 on.<code>b</code>............</t
22ce0 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 70 d>...........<td>.............<p
22d00 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f re><code><span.class="tok-kw">co
22d20 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 73 73 3d 22 74 nst</span>.value:.<span.class="t
22d40 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 63 ok-type">anyerror</span>!<span.c
22d60 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
22d80 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 42 an.class="tok-kw">error</span>.B
22da0 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 3e 63 6f 6e 73 roken;.<span.class="tok-kw">cons
22dc0 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 3c 73 70 61 6e t</span>.unwrapped.=.value.<span
22de0 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 73 70 .class="tok-kw">catch</span>.<sp
22e00 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
22e20 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 3d 22 74 6f 6b >;.unwrapped.==.<span.class="tok
22e40 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 3c 2f 70 72 65 -number">1234</span></code></pre
22e60 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>.
22e80 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 4c 6f 67 69 63 ........<tr>...........<td>Logic
22ea0 61 6c 20 41 6e 64 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c al.And</td>...........<td><pre><
22ec0 63 6f 64 65 3e 61 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 code>a.<span.class="tok-kw">and<
22ee0 2f 73 70 61 6e 3e 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 /span>.b</code></pre></td>......
22f00 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>......
22f20 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
22f40 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>...........
22f60 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>.........
22f80 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 ..<td>...........If.<code>a</cod
22fa0 65 3e 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c e>.is.<code><span.class="tok-nul
22fc0 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 72 65 74 75 72 6e 73 20 l">false</span></code>,.returns.
22fe0 3c 63 6f 64 65 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 <code><span.class="tok-null">fal
23000 73 65 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 77 69 74 68 6f se</span></code>...........witho
23020 75 74 20 65 76 61 6c 75 61 74 69 6e 67 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 20 4f 74 ut.evaluating.<code>b</code>..Ot
23040 68 65 72 77 69 73 65 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e herwise,.returns.<code>b</code>.
23060 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>.
23080 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 28 3c 73 70 61 6e 20 63 6c ............<pre><code>(<span.cl
230a0 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 20 3c 73 70 61 ass="tok-null">false</span>.<spa
230c0 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 3c 73 70 61 n.class="tok-kw">and</span>.<spa
230e0 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>).
23100 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 66 61 6c 73 65 3c ==.<span.class="tok-null">false<
23120 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>...........</
23140 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>..
23160 20 20 20 20 20 20 20 20 20 3c 74 64 3e 4c 6f 67 69 63 61 6c 20 4f 72 3c 2f 74 64 3e 0a 20 20 20 .........<td>Logical.Or</td>....
23180 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 3c 73 70 61 6e 20 63 6c .......<td><pre><code>a.<span.cl
231a0 61 73 73 3d 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 ass="tok-kw">or</span>.b</code><
231c0 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>.......
231e0 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.
23200 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 61 3e href="#Primitive-Types">bool</a>
23220 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>.........
23240 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 20 ..</td>...........<td>..........
23260 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e .....If.<code>a</code>.is.<code>
23280 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
232a0 6e 3e 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 73 n></code>,...............returns
232c0 20 3c 63 6f 64 65 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 .<code><span.class="tok-null">tr
232e0 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 69 74 68 6f 75 74 20 65 76 61 6c 75 61 74 ue</span></code>.without.evaluat
23300 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e ing...............<code>b</code>
23320 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 ..Otherwise,.returns............
23340 20 20 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 ...<code>b</code>............</t
23360 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 70 d>...........<td>.............<p
23380 72 65 3e 3c 63 6f 64 65 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 re><code>(<span.class="tok-null"
233a0 3e 66 61 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 >false</span>.<span.class="tok-k
233c0 77 22 3e 6f 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 6e 75 w">or</span>.<span.class="tok-nu
233e0 6c 6c 22 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 ll">true</span>).==.<span.class=
23400 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 3c 2f 70 "tok-null">true</span></code></p
23420 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
23440 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 42 6f 6f >.........<tr>...........<td>Boo
23460 6c 65 61 6e 20 4e 6f 74 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 lean.Not</td>...........<td><pre
23480 3e 3c 63 6f 64 65 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 ><code>!a</code></pre></td>.....
234a0 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>.....
234c0 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 72 69 6d 69 74 69 76 ..........<li><a.href="#Primitiv
234e0 65 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 e-Types">bool</a></li>..........
23500 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>........
23520 20 20 20 3c 74 64 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 ...<td></td>...........<td>.....
23540 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d ........<pre><code>!<span.class=
23560 22 74 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 3d 20 3c 73 70 61 6e "tok-null">false</span>.==.<span
23580 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
235a0 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>......
235c0 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>...........
235e0 3c 74 64 3e 45 71 75 61 6c 69 74 79 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e <td>Equality</td>...........<td>
23600 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 3d 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f <pre><code>a.==.b</code></pre></
23620 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>.............<
23640 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 3d 22 23 ul>...............<li><a.href="#
23660 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 3e 0a 20 20 20 20 Integers">Integers</a></li>.....
23680 20 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 ..........<li><a.href="#Floats">
236a0 46 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 Floats</a></li>...............<l
236c0 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 62 6f 6f i><a.href="#Primitive-Types">boo
236e0 6c 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 l</a></li>...............<li><a.
23700 68 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 href="#Primitive-Types">type</a>
23720 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>.........
23740 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 20 ..</td>...........<td>..........
23760 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .....Returns.<code><span.class="
23780 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 69 66 20 tok-null">true</span></code>.if.
237a0 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 73 65 20 72 65 74 a.and.b.are.equal,.otherwise.ret
237c0 75 72 6e 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c urns.<code><span.class="tok-null
237e0 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 20 20 20 ">false</span></code>...........
23800 20 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 ...Invokes.<a.href="#Peer-Type-R
23820 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 6e 3c esolution">Peer.Type.Resolution<
23840 2f 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 /a>.for.the.operands............
23860 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>............
23880 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .<pre><code>(<span.class="tok-nu
238a0 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 74 mber">1</span>.==.<span.class="t
238c0 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
238e0 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
23900 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>.........
23920 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
23940 3e 4e 75 6c 6c 20 43 68 65 63 6b 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c >Null.Check</td>...........<td><
23960 70 72 65 3e 3c 63 6f 64 65 3e 61 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pre><code>a.==.<span.class="tok-
23980 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 70 72 65 3e 3c 2f null">null</span></code></pre></
239a0 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>.............<
239c0 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 3d 22 23 ul>...............<li><a.href="#
239e0 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 69 3e 0a 20 20 Optionals">Optionals</a></li>...
23a00 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>.
23a20 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 74 ..........<td>...............Ret
23a40 75 72 6e 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c urns.<code><span.class="tok-null
23a60 22 3e 74 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 ">true</span></code>.if.a.is.<co
23a80 64 65 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 de><span.class="tok-null">null</
23aa0 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 span></code>,.otherwise.returns.
23ac0 3c 63 6f 64 65 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 <code><span.class="tok-null">fal
23ae0 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 3c 2f 74 64 se</span></code>............</td
23b00 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
23b20 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
23b40 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 74 st</span>.value:.?<span.class="t
23b60 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
23b80 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 28 76 61 6c 75 65 s="tok-null">null</span>;.(value
23ba0 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<
23bc0 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 6c 6c /span>).==.<span.class="tok-null
23be0 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 0a 20 20 20 20 20 ">true</span></code></pre>......
23c00 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>........
23c20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 49 6e 65 71 75 61 6c 69 74 79 3c 2f .<tr>...........<td>Inequality</
23c40 74 64 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 3e 61 20 21 td>...........<td><pre><code>a.!
23c60 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 20 =.b</code></pre></td>...........
23c80 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 20 <td>.............<ul>...........
23ca0 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 65 ....<li><a.href="#Integers">Inte
23cc0 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 6c 69 3e gers</a></li>...............<li>
23ce0 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 2f 6c 69 <a.href="#Floats">Floats</a></li
23d00 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 50 72 >...............<li><a.href="#Pr
23d20 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 3e 0a 20 20 20 imitive-Types">bool</a></li>....
23d40 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 50 72 69 6d 69 74 69 ...........<li><a.href="#Primiti
23d60 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 20 20 20 20 20 20 20 ve-Types">type</a></li>.........
23d80 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>.......
23da0 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 72 6e 73 20 3c ....<td>...............Returns.<
23dc0 63 6f 64 65 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 code><span.class="tok-null">fals
23de0 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 61 6e 64 20 62 20 61 72 65 20 65 e</span></code>.if.a.and.b.are.e
23e00 71 75 61 6c 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 3e 3c 73 qual,.otherwise.returns.<code><s
23e20 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>
23e40 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 73 20 3c 61 20 </code>..............Invokes.<a.
23e60 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
23e80 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
23ea0 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 20 20 20 20 20 erands............</td>.........
23ec0 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 3e 28 3c ..<td>.............<pre><code>(<
23ee0 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>
23f00 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 3c 2f .!=.<span.class="tok-number">1</
23f20 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 6c 6c 22 span>).==.<span.class="tok-null"
23f40 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 3e 0a 20 20 20 20 20 >false</span></code></pre>......
23f60 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>........
23f80 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 4e 6f 6e 2d 4e 75 6c 6c 20 43 68 65 .<tr>...........<td>Non-Null.Che
23fa0 63 6b 3c 2f 74 64 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 ck</td>...........<td><pre><code
23fc0 3e 61 20 21 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 >a.!=.<span.class="tok-null">nul
23fe0 6c 3c 2f 73 70 61 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 l</span></code></pre></td>......
24000 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>......
24020 20 20 20 20 20 20 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 .........<li><a.href="#Optionals
24040 22 3e 4f 70 74 69 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 ">Optionals</a></li>............
24060 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>..........
24080 20 3c 74 64 3e 0a 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 .<td>...............Returns.<cod
240a0 65 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 e><span.class="tok-null">false</
240c0 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 3e 3c 73 70 61 6e span></code>.if.a.is.<code><span
240e0 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 3c 2f 63 .class="tok-null">null</span></c
24100 6f 64 65 3e 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 3e 3c 73 ode>,.otherwise.returns.<code><s
24120 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>
24140 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 20 20 20 </code>............</td>........
24160 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 3e 3c ...<td>.............<pre><code><
24180 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>
241a0 20 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">
241c0 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 6e 75 u32</span>.=.<span.class="tok-nu
241e0 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 28 76 61 6c 75 65 20 21 3d 20 3c 73 70 61 6e ll">null</span>;.(value.!=.<span
24200 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 20 3d .class="tok-null">null</span>).=
24220 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 65 3c 2f =.<span.class="tok-null">false</
24240 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 74 span></code></pre>...........</t
24260 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>...
24280 20 20 20 20 20 20 20 20 3c 74 64 3e 47 72 65 61 74 65 72 20 54 68 61 6e 3c 2f 74 64 3e 0a 20 20 ........<td>Greater.Than</td>...
242a0 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 26 67 74 3b 20 62 3c ........<td><pre><code>a.&gt;.b<
242c0 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>
242e0 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>...............
24300 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 73 <li><a.href="#Integers">Integers
24320 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
24340 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 20 ref="#Floats">Floats</a></li>...
24360 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>.
24380 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 74 ..........<td>...............Ret
243a0 75 72 6e 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c urns.<code><span.class="tok-null
243c0 22 3e 74 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 67 72 65 ">true</span></code>.if.a.is.gre
243e0 61 74 65 72 20 74 68 61 6e 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c ater.than.b,.otherwise.returns.<
24400 63 6f 64 65 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 code><span.class="tok-null">fals
24420 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 20 49 6e 76 e</span></code>..............Inv
24440 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
24460 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
24480 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 74 64 3e 0a r.the.operands............</td>.
244a0 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>
244c0 3c 63 6f 64 65 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 <code>(<span.class="tok-number">
244e0 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 6b 2d 6e 2</span>.&gt;.<span.class="tok-n
24500 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 3d umber">1</span>).==.<span.class=
24520 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 3c 2f 70 "tok-null">true</span></code></p
24540 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
24560 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 47 72 65 >.........<tr>...........<td>Gre
24580 61 74 65 72 20 6f 72 20 45 71 75 61 6c 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 ater.or.Equal</td>...........<td
245a0 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 26 67 74 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ><pre><code>a.&gt;=.b</code></pr
245c0 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 20 20 e></td>...........<td>..........
245e0 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 72 65 ...<ul>...............<li><a.hre
24600 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 3e 0a f="#Integers">Integers</a></li>.
24620 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 46 6c 6f 61 ..............<li><a.href="#Floa
24640 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 20 20 20 20 20 20 ts">Floats</a></li>.............
24660 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>...........
24680 3c 74 64 3e 0a 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 <td>...............Returns.<code
246a0 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 65 3c 2f 73 70 ><span.class="tok-null">true</sp
246c0 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 an></code>.if.a.is.greater.than.
246e0 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 6e 73 or.equal.to.b,.otherwise.returns
24700 20 3c 63 6f 64 65 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 .<code><span.class="tok-null">fa
24720 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 20 49 lse</span></code>..............I
24740 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 6f 6c nvokes.<a.href="#Peer-Type-Resol
24760 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 3e 20 ution">Peer.Type.Resolution</a>.
24780 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 74 64 for.the.operands............</td
247a0 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
247c0 65 3e 3c 63 6f 64 65 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 e><code>(<span.class="tok-number
247e0 22 3e 32 3c 2f 73 70 61 6e 3e 20 26 67 74 3b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ">2</span>.&gt;=.<span.class="to
24800 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
24820 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>
24840 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>.........<
24860 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>
24880 4c 65 73 73 20 54 68 61 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 Less.Than</td>...........<td><pr
248a0 65 3e 3c 63 6f 64 65 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 e><code>a.&lt;.b</code></pre></t
248c0 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
248e0 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
24900 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>......
24920 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
24940 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 3c 2f 75 6c 3e loats</a></li>.............</ul>
24960 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>.
24980 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 3e 3c 73 70 61 ..............Returns.<code><spa
249a0 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 2f n.class="tok-null">true</span></
249c0 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 62 2c 20 6f 74 68 65 72 code>.if.a.is.less.than.b,.other
249e0 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 wise.returns.<code><span.class="
24a00 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 0a 20 tok-null">false</span></code>...
24a20 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 65 65 ...........Invokes.<a.href="#Pee
24a40 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
24a60 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 20 20 olution</a>.for.the.operands....
24a80 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>....
24aa0 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 .........<pre><code>(<span.class
24ac0 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 70 61 ="tok-number">1</span>.&lt;.<spa
24ae0 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 20 3d n.class="tok-number">2</span>).=
24b00 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
24b20 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
24b40 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>....
24b60 20 20 20 20 20 20 20 3c 74 64 3e 4c 65 73 73 65 72 20 6f 72 20 45 71 75 61 6c 3c 2f 74 64 3e 0a .......<td>Lesser.or.Equal</td>.
24b80 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 61 20 26 6c 74 3b 3d ..........<td><pre><code>a.&lt;=
24ba0 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 20 3c .b</code></pre></td>...........<
24bc0 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>............
24be0 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 65 67 ...<li><a.href="#Integers">Integ
24c00 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 6c 69 3e 3c ers</a></li>...............<li><
24c20 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>
24c40 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 74 .............</ul>...........</t
24c60 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 20 d>...........<td>...............
24c80 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e Returns.<code><span.class="tok-n
24ca0 75 6c 6c 22 3e 74 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 ull">true</span></code>.if.a.is.
24cc0 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 62 2c 20 6f 74 68 65 72 77 69 less.than.or.equal.to.b,.otherwi
24ce0 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f se.returns.<code><span.class="to
24d00 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 0a 20 20 20 k-null">false</span></code>.....
24d20 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 65 65 72 2d .........Invokes.<a.href="#Peer-
24d40 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 6c Type-Resolution">Peer.Type.Resol
24d60 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 20 20 20 20 ution</a>.for.the.operands......
24d80 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>......
24da0 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .......<pre><code>(<span.class="
24dc0 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 3d 20 3c 73 70 61 6e tok-number">1</span>.&lt;=.<span
24de0 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 20 3d 3d .class="tok-number">2</span>).==
24e00 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
24e20 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 3e an></code></pre>...........</td>
24e40 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 20 .........</tr>.........<tr>.....
24e60 20 20 20 20 20 20 3c 74 64 3e 41 72 72 61 79 20 43 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 3c 2f 74 ......<td>Array.Concatenation</t
24e80 64 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 3e 61 20 2b 2b d>...........<td><pre><code>a.++
24ea0 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 20 3c .b</code></pre></td>...........<
24ec0 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>............
24ee0 20 20 20 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 3c ...<li><a.href="#Arrays">Arrays<
24f00 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 20 20 20 /a></li>.............</ul>......
24f20 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>.......
24f40 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 4f 6e 6c ......<ul>...............<li>Onl
24f60 79 20 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20 74 68 65 20 6c 65 6e 67 74 68 73 20 6f 66 20 y.available.when.the.lengths.of.
24f80 62 6f 74 68 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 3c both.<code>a</code>.and.<code>b<
24fa0 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 22 3e 63 /code>.are.<a.href="#comptime">c
24fc0 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 ompile-time.known</a>.</li>.....
24fe0 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 20 ........</ul>...........</td>...
25000 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 63 ........<td>.............<pre><c
25020 6f 64 65 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 ode><span.class="tok-kw">const</
25040 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 62 75 69 span>.mem.=.<span.class="tok-bui
25060 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
25080 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
250a0 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 63 6f 6e >).mem;.<span.class="tok-kw">con
250c0 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 6c 61 73 st</span>.array1.=.[_]<span.clas
250e0 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 20 63 6c s="tok-type">u32</span>{<span.cl
25100 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 61 6e 20 ass="tok-number">1</span>,<span.
25120 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 0a 3c 73 class="tok-number">2</span>};.<s
25140 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>.
25160 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 74 79 70 array2.=.[_]<span.class="tok-typ
25180 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 2d 6e e">u32</span>{<span.class="tok-n
251a0 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 74 6f 6b umber">3</span>,<span.class="tok
251c0 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 73 73 3d -number">4</span>};.<span.class=
251e0 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 72 20 3d "tok-kw">const</span>.together.=
25200 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 70 61 6e .array1.++.array2;.mem.eql(<span
25220 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 26 61 .class="tok-type">u32</span>,.&a
25240 6d 70 3b 74 6f 67 65 74 68 65 72 2c 20 26 61 6d 70 3b 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 mp;together,.&amp;[_]<span.class
25260 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 20 63 6c 61 ="tok-type">u32</span>{<span.cla
25280 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 61 6e 20 63 ss="tok-number">1</span>,<span.c
252a0 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 3c 73 70 61 6e lass="tok-number">2</span>,<span
252c0 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 3c 73 70 .class="tok-number">3</span>,<sp
252e0 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 7d 29 an.class="tok-number">4</span>})
25300 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>...
25320 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>........
25340 20 20 20 3c 74 64 3e 41 72 72 61 79 20 4d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 3c 2f 74 64 3e ...<td>Array.Multiplication</td>
25360 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 3e 61 20 2a 2a 20 62 ...........<td><pre><code>a.**.b
25380 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
253a0 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>..............
253c0 20 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 3c 2f 61 .<li><a.href="#Arrays">Arrays</a
253e0 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>........
25400 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>.........
25420 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 4f 6e 6c 79 20 ....<ul>...............<li>Only.
25440 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 3c 63 6f available.when.the.length.of.<co
25460 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 61 de>a</code>.and.<code>b</code>.a
25480 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 6c 65 2d 74 re.<a.href="#comptime">compile-t
254a0 69 6d 65 20 6b 6e 6f 77 6e 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ime.known</a>.</li>.............
254c0 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>...........
254e0 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 3e 3c 73 70 61 <td>.............<pre><code><spa
25500 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
25520 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
25540 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
25560 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;.
25580 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
255a0 3e 20 70 61 74 74 65 72 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 >.pattern.=.<span.class="tok-str
255c0 22 3e 26 71 75 6f 74 3b 61 62 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 2a 2a 20 3c 73 70 61 6e ">&quot;ab&quot;</span>.**.<span
255e0 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 0a 6d 65 .class="tok-number">3</span>;.me
25600 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<
25620 2f 73 70 61 6e 3e 2c 20 70 61 74 74 65 72 6e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>,.pattern,.<span.class="to
25640 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 62 61 62 61 62 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e k-str">&quot;ababab&quot;</span>
25660 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 74 64 3e 0a 20 )</code></pre>...........</td>..
25680 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 20 .......</tr>.........<tr>.......
256a0 20 20 20 20 3c 74 64 3e 50 6f 69 6e 74 65 72 20 44 65 72 65 66 65 72 65 6e 63 65 3c 2f 74 64 3e ....<td>Pointer.Dereference</td>
256c0 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 3e 61 2e 2a 3c 2f 63 ...........<td><pre><code>a.*</c
256e0 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>..
25700 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
25720 69 3e 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 i><a.href="#Pointers">Pointers</
25740 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>.......
25760 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>........
25780 20 20 20 20 20 50 6f 69 6e 74 65 72 20 64 65 72 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 20 20 20 .....Pointer.dereference........
257a0 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>........
257c0 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
257e0 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 73 -kw">const</span>.x:.<span.class
25800 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 20 63 ="tok-type">u32</span>.=.<span.c
25820 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 3c lass="tok-number">1234</span>;.<
25840 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>
25860 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 20 63 6c .ptr.=.&amp;x;.ptr.*.==.<span.cl
25880 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 63 6f ass="tok-number">1234</span></co
258a0 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 20 de></pre>...........</td>.......
258c0 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 3c ..</tr>.........<tr>...........<
258e0 74 64 3e 41 64 64 72 65 73 73 20 4f 66 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 td>Address.Of</td>...........<td
25900 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 26 61 6d 70 3b 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c ><pre><code>&amp;a</code></pre><
25920 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>.............
25940 41 6c 6c 20 74 79 70 65 73 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 All.types...........</td>.......
25960 20 20 20 20 3c 74 64 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 ....<td>...........</td>........
25980 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 3e 3c ...<td>.............<pre><code><
259a0 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>
259c0 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 33 32 3c 2f .x:.<span.class="tok-type">u32</
259e0 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"
25a00 3e 31 32 33 34 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 >1234</span>;.<span.class="tok-k
25a20 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 70 74 w">const</span>.ptr.=.&amp;x;.pt
25a40 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 6d 62 65 72 22 3e r.*.==.<span.class="tok-number">
25a60 31 32 33 34 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 1234</span></code></pre>........
25a80 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 3c ...</td>.........</tr>.........<
25aa0 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 45 72 72 6f 72 20 53 65 74 20 4d 65 72 67 tr>...........<td>Error.Set.Merg
25ac0 65 3c 2f 74 64 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 3e e</td>...........<td><pre><code>
25ae0 61 20 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 a.||.b</code></pre></td>........
25b00 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>........
25b20 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 2d 53 65 74 2d 54 .......<li><a.href="#Error-Set-T
25b40 79 70 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 ype">Error.Set.Type</a></li>....
25b60 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>..
25b80 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 3c 61 20 68 .........<td>...............<a.h
25ba0 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 65 72 67 69 6e ref="#Merging-Error-Sets">Mergin
25bc0 67 20 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 g.Error.Sets</a>...........</td>
25be0 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
25c00 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
25c20 74 3c 2f 73 70 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 t</span>.A.=.<span.class="tok-kw
25c40 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 4f 6e 65 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 ">error</span>{One};.<span.class
25c60 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 42 20 3d 20 3c 73 70 61 6e ="tok-kw">const</span>.B.=.<span
25c80 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 54 77 6f .class="tok-kw">error</span>{Two
25ca0 7d 3b 0a 28 41 20 7c 7c 20 42 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d };.(A.||.B).==.<span.class="tok-
25cc0 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 7b 4f 6e 65 2c 20 54 77 6f 7d 3c 2f 63 6f 64 65 kw">error</span>{One,.Two}</code
25ce0 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>.........
25d00 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 3c 2f 74 </tr>.........</tbody>.......</t
25d20 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 0a 20 20 20 20 20 20 able>.......</div>..............
25d40 3c 68 33 20 69 64 3d 22 50 72 65 63 65 64 65 6e 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 <h3.id="Precedence"><a.href="nav
25d60 2e 78 68 74 6d 6c 23 74 6f 63 2d 50 72 65 63 65 64 65 6e 63 65 22 3e 50 72 65 63 65 64 65 6e 63 .xhtml#toc-Precedence">Precedenc
25d80 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 50 72 65 63 e</a>.<a.class="hdr".href="#Prec
25da0 65 64 65 6e 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e edence">..</a></h3>........<pre>
25dc0 3c 63 6f 64 65 3e 78 28 29 20 78 5b 5d 20 78 2e 79 20 78 2e 2a 20 78 2e 3f 0a 61 21 62 0a 78 7b <code>x().x[].x.y.x.*.x.?.a!b.x{
25de0 7d 0a 21 78 20 2d 78 20 2d 25 78 20 7e 78 20 26 61 6d 70 3b 78 20 3f 78 0a 2a 20 2f 20 25 20 2a }.!x.-x.-%x.~x.&amp;x.?x.*./.%.*
25e00 2a 20 2a 25 20 2a 7c 20 7c 7c 0a 2b 20 2d 20 2b 2b 20 2b 25 20 2d 25 20 2b 7c 20 2d 7c 0a 26 6c *.*%.*|.||.+.-.++.+%.-%.+|.-|.&l
25e20 74 3b 26 6c 74 3b 20 26 67 74 3b 26 67 74 3b 20 26 6c 74 3b 26 6c 74 3b 7c 0a 26 61 6d 70 3b 20 t;&lt;.&gt;&gt;.&lt;&lt;|.&amp;.
25e40 5e 20 7c 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 ^.|.<span.class="tok-kw">orelse<
25e60 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 61 74 63 /span>.<span.class="tok-kw">catc
25e80 68 3c 2f 73 70 61 6e 3e 0a 3d 3d 20 21 3d 20 26 6c 74 3b 20 26 67 74 3b 20 26 6c 74 3b 3d 20 26 h</span>.==.!=.&lt;.&gt;.&lt;=.&
25ea0 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 61 6e 64 3c 2f 73 gt;=.<span.class="tok-kw">and</s
25ec0 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 72 3c 2f 73 70 pan>.<span.class="tok-kw">or</sp
25ee0 61 6e 3e 0a 3d 20 2a 3d 20 2a 25 3d 20 2a 7c 3d 20 2f 3d 20 25 3d 20 2b 3d 20 2b 25 3d 20 2b 7c an>.=.*=.*%=.*|=./=.%=.+=.+%=.+|
25f00 3d 20 2d 3d 20 2d 25 3d 20 2d 7c 3d 20 26 6c 74 3b 26 6c 74 3b 3d 20 26 6c 74 3b 26 6c 74 3b 7c =.-=.-%=.-|=.&lt;&lt;=.&lt;&lt;|
25f20 3d 20 26 67 74 3b 26 67 74 3b 3d 20 26 61 6d 70 3b 3d 20 5e 3d 20 7c 3d 3c 2f 63 6f 64 65 3e 3c =.&gt;&gt;=.&amp;=.^=.|=</code><
25f40 2f 70 72 65 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 /pre>.....................<h2.id
25f60 3d 22 41 72 72 61 79 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 ="Arrays"><a.href="nav.xhtml#toc
25f80 2d 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 -Arrays">Arrays</a>.<a.class="hd
25fa0 72 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 32 3e 0a 0a 20 r".href="#Arrays">..</a></h2>...
25fc0 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
25fe0 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
26000 5f 61 72 72 61 79 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c _arrays.zig</cite></figcaption><
26020 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pre><code><span.class="tok-kw">c
26040 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 onst</span>.expect.=.<span.class
26060 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
26080 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
260a0 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 ot;</span>).testing.expect;.<spa
260c0 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
260e0 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"
26100 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
26120 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
26140 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 74 6f 6b 2d 6b 77 22 bug.assert;.<span.class="tok-kw"
26160 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 73 3d >const</span>.mem.=.<span.class=
26180 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
261a0 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
261c0 74 3b 3c 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 t;</span>).mem;..<span.class="to
261e0 6b 2d 63 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 k-comment">//.array.literal</spa
26200 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 73 n>.<span.class="tok-kw">const</s
26220 70 61 6e 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 pan>.message.=.[_]<span.class="t
26240 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 73 3d ok-type">u8</span>{.<span.class=
26260 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 63 6c 61 73 "tok-str">'h'</span>,.<span.clas
26280 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 6e 20 63 6c s="tok-str">'e'</span>,.<span.cl
262a0 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 70 61 6e 20 ass="tok-str">'l'</span>,.<span.
262c0 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 70 61 class="tok-str">'l'</span>,.<spa
262e0 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 20 7d 3b 0a n.class="tok-str">'o'</span>.};.
26300 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 67 65 .<span.class="tok-comment">//.ge
26320 74 20 74 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 t.the.size.of.an.array</span>.<s
26340 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
26360 6e 3e 20 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 n>.{.....assert(message.len.==.<
26380 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>
263a0 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">
263c0 2f 2f 20 41 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 69 73 20 61 20 73 69 6e 67 6c 65 2d //.A.string.literal.is.a.single-
263e0 69 74 65 6d 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e 20 61 72 72 61 79 2e 3c 2f 73 70 61 6e 3e item.pointer.to.an.array.</span>
26400 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
26420 6e 3e 20 73 61 6d 65 5f 6d 65 73 73 61 67 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n>.same_message.=.<span.class="t
26440 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 6e 3e ok-str">&quot;hello&quot;</span>
26460 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 6d 70 74 69 6d 65 ;..<span.class="tok-kw">comptime
26480 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 </span>.{.....assert(mem.eql(<sp
264a0 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 26 an.class="tok-type">u8</span>,.&
264c0 61 6d 70 3b 6d 65 73 73 61 67 65 2c 20 73 61 6d 65 5f 6d 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a amp;message,.same_message));.}..
264e0 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>
26500 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 74 65 .<span.class="tok-str">&quot;ite
26520 72 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 rate.over.an.array&quot;</span>.
26540 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</
26560 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 79 70 65 span>.sum:.<span.class="tok-type
26580 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
265a0 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 6c k-number">0</span>;.....<span.cl
265c0 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 6d 65 73 73 61 67 65 ass="tok-kw">for</span>.(message
265e0 29 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 ).|byte|.{.........sum.+=.byte;.
26600 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 74 ....}.....<span.class="tok-kw">t
26620 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 75 6d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c ry</span>.expect(sum.==.<span.cl
26640 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 68 27 3c 2f 73 70 61 6e 3e 20 2b 20 3c 73 70 61 6e ass="tok-str">'h'</span>.+.<span
26660 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 20 2b 20 3c 73 .class="tok-str">'e'</span>.+.<s
26680 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 20 2a pan.class="tok-str">'l'</span>.*
266a0 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
266c0 6e 3e 20 2b 20 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 n>.+.<span.class="tok-str">'o'</
266e0 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 6d span>);.}..<span.class="tok-comm
26700 65 6e 74 22 3e 2f 2f 20 6d 6f 64 69 66 69 61 62 6c 65 20 61 72 72 61 79 3c 2f 73 70 61 6e 3e 0a ent">//.modifiable.array</span>.
26720 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>.
26740 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 3a 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b some_integers:.[<span.class="tok
26760 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 73 73 3d -number">100</span>]<span.class=
26780 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
267a0 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 3b ass="tok-null">undefined</span>;
267c0 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
267e0 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 6d n>.<span.class="tok-str">&quot;m
26800 6f 64 69 66 79 20 61 6e 20 61 72 72 61 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 odify.an.array&quot;</span>.{...
26820 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 6e ..<span.class="tok-kw">for</span
26840 3e 20 28 26 61 6d 70 3b 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 2c 20 3c 73 70 61 6e 20 63 6c 61 >.(&amp;some_integers,.<span.cla
26860 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 29 20 7c 2a 69 74 ss="tok-number">0</span>..).|*it
26880 65 6d 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 69 74 65 6d 2e 2a 20 3d 20 3c 73 70 61 6e 20 em,.i|.{.........item.*.=.<span.
268a0 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 73 74 3c 2f 73 70 class="tok-builtin">@intCast</sp
268c0 61 6e 3e 28 69 29 3b 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 an>(i);.....}.....<span.class="t
268e0 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 6f 6d 65 5f 69 6e ok-kw">try</span>.expect(some_in
26900 74 65 67 65 72 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 tegers[<span.class="tok-number">
26920 31 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 10</span>].==.<span.class="tok-n
26940 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 umber">10</span>);.....<span.cla
26960 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 6f ss="tok-kw">try</span>.expect(so
26980 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 74 6f 6b 2d 6e 75 6d me_integers[<span.class="tok-num
269a0 62 65 72 22 3e 39 39 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 ber">99</span>].==.<span.class="
269c0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 39 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e tok-number">99</span>);.}..<span
269e0 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 72 72 61 79 20 63 6f .class="tok-comment">//.array.co
26a00 6e 63 61 74 65 6e 61 74 69 6f 6e 20 77 6f 72 6b 73 20 69 66 20 74 68 65 20 76 61 6c 75 65 73 20 ncatenation.works.if.the.values.
26a20 61 72 65 20 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f are.known</span>.<span.class="to
26a40 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 3c 2f 73 k-comment">//.at.compile.time</s
26a60 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<
26a80 2f 73 70 61 6e 3e 20 70 61 72 74 5f 6f 6e 65 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 /span>.part_one.=.[_]<span.class
26aa0 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 6e 20 63 6c ="tok-type">i32</span>{.<span.cl
26ac0 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 6e ass="tok-number">1</span>,.<span
26ae0 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 73 .class="tok-number">2</span>,.<s
26b00 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 2c pan.class="tok-number">3</span>,
26b20 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 61 .<span.class="tok-number">4</spa
26b40 6e 3e 20 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 n>.};.<span.class="tok-kw">const
26b60 3c 2f 73 70 61 6e 3e 20 70 61 72 74 5f 74 77 6f 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 </span>.part_two.=.[_]<span.clas
26b80 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 6e 20 63 s="tok-type">i32</span>{.<span.c
26ba0 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
26bc0 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 3c n.class="tok-number">6</span>,.<
26be0 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>
26c00 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 70 ,.<span.class="tok-number">8</sp
26c20 61 6e 3e 20 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 an>.};.<span.class="tok-kw">cons
26c40 74 3c 2f 73 70 61 6e 3e 20 61 6c 6c 5f 6f 66 5f 69 74 20 3d 20 70 61 72 74 5f 6f 6e 65 20 2b 2b t</span>.all_of_it.=.part_one.++
26c60 20 70 61 72 74 5f 74 77 6f 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e .part_two;.<span.class="tok-kw">
26c80 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 6d 65 6d comptime</span>.{.....assert(mem
26ca0 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 69 33 32 3c .eql(<span.class="tok-type">i32<
26cc0 2f 73 70 61 6e 3e 2c 20 26 61 6d 70 3b 61 6c 6c 5f 6f 66 5f 69 74 2c 20 26 61 6d 70 3b 5b 5f 5d /span>,.&amp;all_of_it,.&amp;[_]
26ce0 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
26d00 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 73 >{.<span.class="tok-number">1</s
26d20 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 32 pan>,.<span.class="tok-number">2
26d40 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
26d60 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 6d ">3</span>,.<span.class="tok-num
26d80 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 6b 2d ber">4</span>,.<span.class="tok-
26da0 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 22 74 number">5</span>,.<span.class="t
26dc0 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 73 73 ok-number">6</span>,.<span.class
26de0 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 63 6c ="tok-number">7</span>,.<span.cl
26e00 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 0a 7d ass="tok-number">8</span>.}));.}
26e20 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 72 ..<span.class="tok-comment">//.r
26e40 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 72 65 emember.that.string.literals.are
26e60 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 6b 2d .arrays</span>.<span.class="tok-
26e80 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 20 63 kw">const</span>.hello.=.<span.c
26ea0 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;
26ec0 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 6f </span>;.<span.class="tok-kw">co
26ee0 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 3d 22 nst</span>.world.=.<span.class="
26f00 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 61 6e tok-str">&quot;world&quot;</span
26f20 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
26f40 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 70 61 pan>.hello_world.=.hello.++.<spa
26f60 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 3b 3c n.class="tok-str">&quot;.&quot;<
26f80 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 74 6f /span>.++.world;.<span.class="to
26fa0 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 73 65 k-kw">comptime</span>.{.....asse
26fc0 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
26fe0 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 6e 20 ">u8</span>,.hello_world,.<span.
27000 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 72 6c class="tok-str">&quot;hello.worl
27020 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 73 73 d&quot;</span>));.}..<span.class
27040 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 61 74 ="tok-comment">//.**.does.repeat
27060 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 73 3d ing.patterns</span>.<span.class=
27080 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 3d 20 "tok-kw">const</span>.pattern.=.
270a0 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 26 71 <span.class="tok-str">&quot;ab&q
270c0 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 6b 2d uot;</span>.**.<span.class="tok-
270e0 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 22 74 number">3</span>;.<span.class="t
27100 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 73 ok-kw">comptime</span>.{.....ass
27120 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 70 ert(mem.eql(<span.class="tok-typ
27140 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 6c 61 e">u8</span>,.pattern,.<span.cla
27160 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 3b 3c ss="tok-str">&quot;ababab&quot;<
27180 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 63 6f /span>));.}..<span.class="tok-co
271a0 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 74 6f mment">//.initialize.an.array.to
271c0 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 6b 77 .zero</span>.<span.class="tok-kw
271e0 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 73 70 ">const</span>.all_zero.=.[_]<sp
27200 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 7b 3c an.class="tok-type">u16</span>{<
27220 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>
27240 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 31 30 }.**.<span.class="tok-number">10
27260 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 63 </span>;..<span.class="tok-kw">c
27280 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 6c 5f omptime</span>.{.....assert(all_
272a0 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 75 6d zero.len.==.<span.class="tok-num
272c0 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 6c 5f ber">10</span>);.....assert(all_
272e0 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 35 3c zero[<span.class="tok-number">5<
27300 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 6d 62 /span>].==.<span.class="tok-numb
27320 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 22 74 er">0</span>);.}..<span.class="t
27340 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 65 20 ok-comment">//.use.compile-time.
27360 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 70 61 code.to.initialize.an.array</spa
27380 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 70 61 n>.<span.class="tok-kw">var</spa
273a0 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 73 70 n>.fancy_array.=.init:.{.....<sp
273c0 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 6e 69 an.class="tok-kw">var</span>.ini
273e0 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 6e 75 tial_value:.[<span.class="tok-nu
27400 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 63 6c mber">10</span>]Point.=.<span.cl
27420 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 3b ass="tok-null">undefined</span>;
27440 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 2f 73 .....<span.class="tok-kw">for</s
27460 70 61 6e 3e 20 28 26 61 6d 70 3b 69 6e 69 74 69 61 6c 5f 76 61 6c 75 65 2c 20 3c 73 70 61 6e 20 pan>.(&amp;initial_value,.<span.
27480 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 29 20 7c class="tok-number">0</span>..).|
274a0 2a 70 74 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 70 74 2e 2a 20 3d 20 50 6f 69 6e 74 7b 0a *pt,.i|.{.........pt.*.=.Point{.
274c0 20 20 20 20 20 20 20 20 20 20 20 20 2e 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .............x.=.<span.class="to
274e0 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 3e 28 69 29 2c 0a 20 k-builtin">@intCast</span>(i),..
27500 20 20 20 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 6b ............y.=.<span.class="tok
27520 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 69 20 2a 20 3c 73 -builtin">@intCast</span>(i.*.<s
27540 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>)
27560 2c 0a 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 ,.........};.....}.....<span.cla
27580 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 69 6e 69 74 20 69 ss="tok-kw">break</span>.:init.i
275a0 6e 69 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 nitial_value;.};.<span.class="to
275c0 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 3c 73 70 61 6e k-kw">const</span>.Point.=.<span
275e0 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>.{.
27600 20 20 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 ....x:.<span.class="tok-type">i3
27620 32 3c 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 2</span>,.....y:.<span.class="to
27640 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 70 61 6e 20 63 6c k-type">i32</span>,.};..<span.cl
27660 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
27680 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 69 6c 65 2d 74 69 6d lass="tok-str">&quot;compile-tim
276a0 65 20 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 e.array.initialization&quot;</sp
276c0 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
276e0 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 66 61 6e 63 79 5f 61 72 72 61 79 5b 3c 73 70 ry</span>.expect(fancy_array[<sp
27700 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>].
27720 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 34 3c x.==.<span.class="tok-number">4<
27740 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 6b 77 /span>);.....<span.class="tok-kw
27760 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 66 61 6e 63 79 5f 61 72 72 61 79 5b ">try</span>.expect(fancy_array[
27780 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
277a0 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"
277c0 3e 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 2d >8</span>);.}..<span.class="tok-
277e0 63 6f 6d 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 comment">//.call.a.function.to.i
27800 6e 69 74 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 nitialize.an.array</span>.<span.
27820 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 6d 6f 72 65 5f 70 class="tok-kw">var</span>.more_p
27840 6f 69 6e 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 oints.=.[_]Point{makePoint(<span
27860 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 7d 20 2a .class="tok-number">3</span>)}.*
27880 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 31 30 3c 2f 73 *.<span.class="tok-number">10</s
278a0 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 66 6e 3c 2f 73 pan>;.<span.class="tok-kw">fn</s
278c0 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 6b 65 50 6f pan>.<span.class="tok-fn">makePo
278e0 69 6e 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 74 int</span>(x:.<span.class="tok-t
27900 79 70 65 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 ype">i32</span>).Point.{.....<sp
27920 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>.
27940 50 6f 69 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 Point{..........x.=.x,..........
27960 79 20 3d 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 y.=.x.*.<span.class="tok-number"
27980 3e 32 3c 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 >2</span>,.....};.}.<span.class=
279a0 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
279c0 3d 22 74 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 ="tok-str">&quot;array.initializ
279e0 61 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 3c ation.with.function.calls&quot;<
27a00 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
27a20 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 6f 72 65 5f 70 6f 69 6e 74 73 5b ">try</span>.expect(more_points[
27a40 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
27a60 3e 5d 2e 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 >].x.==.<span.class="tok-number"
27a80 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 73 3d 22 74 6f 6b >3</span>);.....<span.class="tok
27aa0 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 6f 72 65 5f 70 6f 69 6e -kw">try</span>.expect(more_poin
27ac0 74 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 34 3c 2f 73 ts[<span.class="tok-number">4</s
27ae0 70 61 6e 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 pan>].y.==.<span.class="tok-numb
27b00 65 72 22 3e 36 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 er">6</span>);.....<span.class="
27b20 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 6f 72 65 5f 70 tok-kw">try</span>.expect(more_p
27b40 6f 69 6e 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 oints.len.==.<span.class="tok-nu
27b60 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 70 72 65 3e mber">10</span>);.}</code></pre>
27b80 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
27ba0 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
27bc0 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 ><pre><samp>$.<kbd>zig.test.test
27be0 5f 61 72 72 61 79 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 34 20 74 65 73 74 5f 61 72 72 61 79 _arrays.zig</kbd>.1/4.test_array
27c00 73 2e 74 65 73 74 2e 69 74 65 72 61 74 65 20 6f 76 65 72 20 61 6e 20 61 72 72 61 79 2e 2e 2e 20 s.test.iterate.over.an.array....
27c20 4f 4b 0a 32 2f 34 20 74 65 73 74 5f 61 72 72 61 79 73 2e 74 65 73 74 2e 6d 6f 64 69 66 79 20 61 OK.2/4.test_arrays.test.modify.a
27c40 6e 20 61 72 72 61 79 2e 2e 2e 20 4f 4b 0a 33 2f 34 20 74 65 73 74 5f 61 72 72 61 79 73 2e 74 65 n.array....OK.3/4.test_arrays.te
27c60 73 74 2e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 61 st.compile-time.array.initializa
27c80 74 69 6f 6e 2e 2e 2e 20 4f 4b 0a 34 2f 34 20 74 65 73 74 5f 61 72 72 61 79 73 2e 74 65 73 74 2e tion....OK.4/4.test_arrays.test.
27ca0 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 77 69 74 68 20 66 75 6e 63 74 69 array.initialization.with.functi
27cc0 6f 6e 20 63 61 6c 6c 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 34 20 74 65 73 74 73 20 70 61 73 73 65 on.calls....OK.All.4.tests.passe
27ce0 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 d..</samp></pre></figure>.......
27d00 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
27d20 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 68 72 65 66 ="#for">for</a></li>.<li><a.href
27d40 3d 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e ="#Slices">Slices</a></li>.</ul>
27d60 0a 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 .........<h3.id="Multidimensiona
27d80 6c 2d 41 72 72 61 79 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 l-Arrays"><a.href="nav.xhtml#toc
27da0 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 69 64 -Multidimensional-Arrays">Multid
27dc0 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 3d 22 imensional.Arrays</a>.<a.class="
27de0 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 72 72 hdr".href="#Multidimensional-Arr
27e00 61 79 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 ays">..</a></h3>........<p>.....
27e20 20 20 4d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 61 72 72 61 79 73 20 63 61 6e 20 62 65 ..Multidimensional.arrays.can.be
27e40 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 20 20 .created.by.nesting.arrays:.....
27e60 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
27e80 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
27ea0 6c 65 22 3e 74 65 73 74 5f 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 5f 61 72 72 61 79 73 le">test_multidimensional_arrays
27ec0 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
27ee0 64 65 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 de><span.class="tok-kw">const</s
27f00 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
27f20 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=
27f40 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>
27f60 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
27f80 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 pan>.expect.=.std.testing.expect
27fa0 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
27fc0 70 61 6e 3e 20 6d 61 74 34 78 34 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pan>.mat4x4.=.[<span.class="tok-
27fe0 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 number">4</span>][<span.class="t
28000 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-number">4</span>]<span.class=
28020 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 7b 0a 20 20 20 20 5b 5f 5d 3c 73 "tok-type">f32</span>{.....[_]<s
28040 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>{
28060 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 30 3c 2f 73 .<span.class="tok-number">1.0</s
28080 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 30 pan>,.<span.class="tok-number">0
280a0 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 6d 62 .0</span>,.<span.class="tok-numb
280c0 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 22 74 6f 6b er">0.0</span>,.<span.class="tok
280e0 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 20 7d 2c 0a 20 20 20 20 5b 5f 5d 3c 73 -number">0.0</span>.},.....[_]<s
28100 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>{
28120 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 2e 30 3c 2f 73 .<span.class="tok-number">0.0</s
28140 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 31 pan>,.<span.class="tok-number">1
28160 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 6d 62 .0</span>,.<span.class="tok-numb
28180 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 22 74 6f 6b er">0.0</span>,.<span.class="tok
281a0 2d 6e 75 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 20 7d 2c 0a 20 20 20 20 5b 5f 5d 3c 73 -number">1.0</span>.},.....[_]<s
281c0 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>{
281e0 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 2e 30 3c 2f 73 .<span.class="tok-number">0.0</s
28200 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 30 pan>,.<span.class="tok-number">0
28220 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 6d 62 .0</span>,.<span.class="tok-numb
28240 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 6f 6b er">1.0</span>,.<span.class="tok
28260 2d 6e 75 6d 62 65 72 22 3e 30 2e 30 3c 2f 73 70 61 6e 3e 20 7d 2c 0a 20 20 20 20 5b 5f 5d 3c 73 -number">0.0</span>.},.....[_]<s
28280 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>{
282a0 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 2e 30 3c 2f 73 .<span.class="tok-number">0.0</s
282c0 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 30 pan>,.<span.class="tok-number">0
282e0 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 6d 62 .0</span>,.<span.class="tok-numb
28300 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 22 74 6f 6b er">0.0</span>,.<span.class="tok
28320 2d 6e 75 6d 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 20 7d 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 -number">1.0</span>.},.};.<span.
28340 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
28360 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6d 75 6c 74 69 64 69 6d 65 .class="tok-str">&quot;multidime
28380 6e 73 69 6f 6e 61 6c 20 61 72 72 61 79 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 nsional.arrays&quot;</span>.{...
283a0 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 41 ..<span.class="tok-comment">//.A
283c0 63 63 65 73 73 20 74 68 65 20 32 44 20 61 72 72 61 79 20 62 79 20 69 6e 64 65 78 69 6e 67 20 74 ccess.the.2D.array.by.indexing.t
283e0 68 65 20 6f 75 74 65 72 20 61 72 72 61 79 2c 20 61 6e 64 20 74 68 65 6e 20 74 68 65 20 69 6e 6e he.outer.array,.and.then.the.inn
28400 65 72 20 61 72 72 61 79 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 er.array.</span>.....<span.class
28420 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 61 74 34 ="tok-kw">try</span>.expect(mat4
28440 78 34 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 x4[<span.class="tok-number">1</s
28460 70 61 6e 3e 5d 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 pan>][<span.class="tok-number">1
28480 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 6d </span>].==.<span.class="tok-num
284a0 62 65 72 22 3e 31 2e 30 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ber">1.0</span>);......<span.cla
284c0 73 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 69 74 65 72 ss="tok-comment">//.Here.we.iter
284e0 61 74 65 20 77 69 74 68 20 66 6f 72 20 6c 6f 6f 70 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c ate.with.for.loops.</span>.....<
28500 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>.(
28520 6d 61 74 34 78 34 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 mat4x4,.<span.class="tok-number"
28540 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 29 20 7c 72 6f 77 2c 20 72 6f 77 5f 69 6e 64 65 78 7c 20 7b 0a >0</span>..).|row,.row_index|.{.
28560 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 66 6f 72 ........<span.class="tok-kw">for
28580 3c 2f 73 70 61 6e 3e 20 28 72 6f 77 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e </span>.(row,.<span.class="tok-n
285a0 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 29 20 7c 63 65 6c 6c 2c 20 63 6f 6c 75 6d 6e umber">0</span>..).|cell,.column
285c0 5f 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 _index|.{.............<span.clas
285e0 73 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 s="tok-kw">if</span>.(row_index.
28600 3d 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 ==.column_index).{..............
28620 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 61 ...<span.class="tok-kw">try</spa
28640 6e 3e 20 65 78 70 65 63 74 28 63 65 6c 6c 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n>.expect(cell.==.<span.class="t
28660 6f 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 ok-number">1.0</span>);.........
28680 20 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 ....}.........}.....}.}</code></
286a0 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e pre></figure><figure><figcaption
286c0 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 .class="shell-cap">Shell</figcap
286e0 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 tion><pre><samp>$.<kbd>zig.test.
28700 74 65 73 74 5f 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 5f 61 72 72 61 79 73 2e 7a 69 67 test_multidimensional_arrays.zig
28720 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c </kbd>.1/1.test_multidimensional
28740 5f 61 72 72 61 79 73 2e 74 65 73 74 2e 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 61 72 _arrays.test.multidimensional.ar
28760 72 61 79 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c rays....OK.All.1.tests.passed..<
28780 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 /samp></pre></figure>...........
287a0 20 20 20 20 3c 68 33 20 69 64 3d 22 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d ....<h3.id="Sentinel-Terminated-
287c0 41 72 72 61 79 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 Arrays"><a.href="nav.xhtml#toc-S
287e0 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 41 72 72 61 79 73 22 3e 53 65 6e 74 69 entinel-Terminated-Arrays">Senti
28800 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 41 72 72 61 79 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 nel-Terminated.Arrays</a>.<a.cla
28820 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 ss="hdr".href="#Sentinel-Termina
28840 74 65 64 2d 41 72 72 61 79 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c ted-Arrays">..</a></h3>........<
28860 70 3e 0a 20 20 20 20 20 20 54 68 65 20 73 79 6e 74 61 78 20 3c 63 6f 64 65 3e 5b 4e 3a 78 5d 54 p>.......The.syntax.<code>[N:x]T
28880 3c 2f 63 6f 64 65 3e 20 64 65 73 63 72 69 62 65 73 20 61 6e 20 61 72 72 61 79 20 77 68 69 63 68 </code>.describes.an.array.which
288a0 20 68 61 73 20 61 20 73 65 6e 74 69 6e 65 6c 20 65 6c 65 6d 65 6e 74 20 6f 66 20 76 61 6c 75 65 .has.a.sentinel.element.of.value
288c0 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 61 74 20 74 68 65 0a 20 20 20 20 20 20 69 6e 64 .<code>x</code>.at.the.......ind
288e0 65 78 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 6c 65 6e 67 74 68 20 3c ex.corresponding.to.the.length.<
28900 63 6f 64 65 3e 4e 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 code>N</code>........</p>.......
28920 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
28940 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6e 75 6c 6c ap"><cite.class="file">test_null
28960 5f 74 65 72 6d 69 6e 61 74 65 64 5f 61 72 72 61 79 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 _terminated_array.zig</cite></fi
28980 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
289a0 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
289c0 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
289e0 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
28a00 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=
28a20 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 "tok-kw">const</span>.expect.=.s
28a40 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d td.testing.expect;..<span.class=
28a60 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
28a80 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 30 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 65 ="tok-str">&quot;0-terminated.se
28aa0 6e 74 69 6e 65 6c 20 61 72 72 61 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 ntinel.array&quot;</span>.{.....
28ac0 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
28ae0 3e 20 61 72 72 61 79 20 3d 20 5b 5f 3a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 >.array.=.[_:<span.class="tok-nu
28b00 6d 62 65 72 22 3e 30 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 mber">0</span>]<span.class="tok-
28b20 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f type">u8</span>.{<span.class="to
28b40 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 6c 61 73 73 3d k-number">1</span>,.<span.class=
28b60 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 6e 20 63 6c 61 "tok-number">2</span>,.<span.cla
28b80 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 73 70 61 6e 20 ss="tok-number">3</span>,.<span.
28ba0 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 7d 3b 0a 0a 20 class="tok-number">4</span>};...
28bc0 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 61 ...<span.class="tok-kw">try</spa
28be0 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 n>.expect(<span.class="tok-built
28c00 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 61 72 72 61 79 29 20 3d 3d 20 5b 3c 73 in">@TypeOf</span>(array).==.[<s
28c20 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 3a pan.class="tok-number">4</span>:
28c40 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
28c60 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
28c80 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 74 72 n>);.....<span.class="tok-kw">tr
28ca0 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 72 61 79 2e 6c 65 6e 20 3d 3d 20 3c 73 70 y</span>.expect(array.len.==.<sp
28cc0 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>);
28ce0 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
28d00 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>.expect(array[<span.class="t
28d20 6f 6b 2d 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 ok-number">4</span>].==.<span.cl
28d40 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 7d 0a 0a 3c ass="tok-number">0</span>);.}..<
28d60 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>.
28d80 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 74 72 <span.class="tok-str">&quot;extr
28da0 61 20 30 73 20 69 6e 20 30 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 65 6e 74 69 6e 65 6c 20 61 72 a.0s.in.0-terminated.sentinel.ar
28dc0 72 61 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 ray&quot;</span>.{.....<span.cla
28de0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 73 65 6e 74 69 6e 65 6c ss="tok-comment">//.The.sentinel
28e00 20 76 61 6c 75 65 20 6d 61 79 20 61 70 70 65 61 72 20 65 61 72 6c 69 65 72 2c 20 62 75 74 20 64 .value.may.appear.earlier,.but.d
28e20 6f 65 73 20 6e 6f 74 20 69 6e 66 6c 75 65 6e 63 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 2d 74 69 oes.not.influence.the.compile-ti
28e40 6d 65 20 27 6c 65 6e 27 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 me.'len'.</span>.....<span.class
28e60 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 20 3d 20 5b ="tok-kw">const</span>.array.=.[
28e80 5f 3a 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
28ea0 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 73 an>]<span.class="tok-type">u8</s
28ec0 70 61 6e 3e 20 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 31 pan>.{<span.class="tok-number">1
28ee0 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
28f00 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 6e 75 6d ">0</span>,.<span.class="tok-num
28f20 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-
28f40 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c number">4</span>};......<span.cl
28f60 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c ass="tok-kw">try</span>.expect(<
28f80 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 4f 66 span.class="tok-builtin">@TypeOf
28fa0 3c 2f 73 70 61 6e 3e 28 61 72 72 61 79 29 20 3d 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>(array).==.[<span.class="
28fc0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 3a 3c 73 70 61 6e 20 63 6c 61 73 73 tok-number">4</span>:<span.class
28fe0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 ="tok-number">0</span>]<span.cla
29000 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 20 20 20 20 3c 73 ss="tok-type">u8</span>);.....<s
29020 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 65 78 pan.class="tok-kw">try</span>.ex
29040 70 65 63 74 28 61 72 72 61 79 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pect(array.len.==.<span.class="t
29060 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 3c 73 70 61 6e 20 ok-number">4</span>);.....<span.
29080 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
290a0 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 65 72 22 3e (array[<span.class="tok-number">
290c0 34 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 4</span>].==.<span.class="tok-nu
290e0 6d 62 65 72 22 3e 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 mber">0</span>);.}</code></pre><
29100 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 /figure><figure><figcaption.clas
29120 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e s="shell-cap">Shell</figcaption>
29140 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f <pre><samp>$.<kbd>zig.test.test_
29160 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 61 72 72 61 79 2e 7a 69 67 3c 2f 6b 62 64 3e 0a null_terminated_array.zig</kbd>.
29180 31 2f 32 20 74 65 73 74 5f 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 61 72 72 61 79 2e 74 1/2.test_null_terminated_array.t
291a0 65 73 74 2e 30 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 65 6e 74 69 6e 65 6c 20 61 72 72 61 79 2e est.0-terminated.sentinel.array.
291c0 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 61 ...OK.2/2.test_null_terminated_a
291e0 72 72 61 79 2e 74 65 73 74 2e 65 78 74 72 61 20 30 73 20 69 6e 20 30 2d 74 65 72 6d 69 6e 61 74 rray.test.extra.0s.in.0-terminat
29200 65 64 20 73 65 6e 74 69 6e 65 6c 20 61 72 72 61 79 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 ed.sentinel.array....OK.All.2.te
29220 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 sts.passed..</samp></pre></figur
29240 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 3c 6c e>.......<p>See.also:</p><ul>.<l
29260 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d i><a.href="#Sentinel-Terminated-
29280 50 6f 69 6e 74 65 72 73 22 3e 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 50 6f Pointers">Sentinel-Terminated.Po
292a0 69 6e 74 65 72 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 53 65 inters</a></li>.<li><a.href="#Se
292c0 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 53 6c 69 63 65 73 22 3e 53 65 6e 74 69 6e ntinel-Terminated-Slices">Sentin
292e0 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f el-Terminated.Slices</a></li>.</
29300 75 6c 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 32 20 69 64 ul>.......................<h2.id
29320 3d 22 56 65 63 74 6f 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f ="Vectors"><a.href="nav.xhtml#to
29340 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 3d c-Vectors">Vectors</a>.<a.class=
29360 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 32 "hdr".href="#Vectors">..</a></h2
29380 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 61 >........<p>.......A.vector.is.a
293a0 20 67 72 6f 75 70 20 6f 66 20 62 6f 6f 6c 65 61 6e 73 2c 20 3c 61 20 68 72 65 66 3d 22 23 49 6e .group.of.booleans,.<a.href="#In
293c0 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 tegers">Integers</a>,.<a.href="#
293e0 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 2c 20 6f 72 0a 20 20 20 20 20 20 3c 61 20 Floats">Floats</a>,.or.......<a.
29400 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 3e 20 77 68 href="#Pointers">Pointers</a>.wh
29420 69 63 68 20 61 72 65 20 6f 70 65 72 61 74 65 64 20 6f 6e 20 69 6e 20 70 61 72 61 6c 6c 65 6c 2c ich.are.operated.on.in.parallel,
29440 20 75 73 69 6e 67 20 53 49 4d 44 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 69 66 20 70 6f 73 73 .using.SIMD.instructions.if.poss
29460 69 62 6c 65 2e 0a 20 20 20 20 20 20 56 65 63 74 6f 72 20 74 79 70 65 73 20 61 72 65 20 63 72 65 ible........Vector.types.are.cre
29480 61 74 65 64 20 77 69 74 68 20 74 68 65 20 62 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 20 3c ated.with.the.builtin.function.<
294a0 61 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 2e 0a 20 20 a.href="#Vector">@Vector</a>....
294c0 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 56 65 63 74 6f 72 73 ....</p>.......<p>.......Vectors
294e0 20 73 75 70 70 6f 72 74 20 74 68 65 20 73 61 6d 65 20 62 75 69 6c 74 69 6e 20 6f 70 65 72 61 74 .support.the.same.builtin.operat
29500 6f 72 73 20 61 73 20 74 68 65 69 72 20 75 6e 64 65 72 6c 79 69 6e 67 20 62 61 73 65 20 74 79 70 ors.as.their.underlying.base.typ
29520 65 73 2e 0a 20 20 20 20 20 20 54 68 65 73 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 61 72 65 20 70 es........These.operations.are.p
29540 65 72 66 6f 72 6d 65 64 20 65 6c 65 6d 65 6e 74 2d 77 69 73 65 2c 20 61 6e 64 20 72 65 74 75 72 erformed.element-wise,.and.retur
29560 6e 20 61 20 76 65 63 74 6f 72 20 6f 66 20 74 68 65 20 73 61 6d 65 20 6c 65 6e 67 74 68 0a 20 20 n.a.vector.of.the.same.length...
29580 20 20 20 20 61 73 20 74 68 65 20 69 6e 70 75 74 20 76 65 63 74 6f 72 73 2e 20 54 68 69 73 20 69 ....as.the.input.vectors..This.i
295a0 6e 63 6c 75 64 65 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 ncludes:.......</p>.......<ul>..
295c0 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 72 69 74 68 6d 65 74 69 63 20 28 3c 63 6f 64 65 3e 2b .........<li>Arithmetic.(<code>+
295e0 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 2d 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 2f </code>,.<code>-</code>,.<code>/
29600 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 2a 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 </code>,.<code>*</code>,........
29620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c ..................<code><span.cl
29640 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 6f 72 3c 2f 73 70 61 ass="tok-builtin">@divFloor</spa
29660 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f n></code>,.<code><span.class="to
29680 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 71 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 k-builtin">@sqrt</span></code>,.
296a0 3c 63 6f 64 65 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 <code><span.class="tok-builtin">
296c0 40 63 65 69 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 @ceil</span></code>,............
296e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..............<code><span.class=
29700 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6c 6f 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e "tok-builtin">@log</span></code>
29720 2c 20 65 74 63 2e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 42 69 74 77 69 ,.etc.)</li>...........<li>Bitwi
29740 73 65 20 6f 70 65 72 61 74 6f 72 73 20 28 3c 63 6f 64 65 3e 26 67 74 3b 26 67 74 3b 3c 2f 63 6f se.operators.(<code>&gt;&gt;</co
29760 64 65 3e 2c 20 3c 63 6f 64 65 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 de>,.<code>&lt;&lt;</code>,.<cod
29780 65 3e 26 61 6d 70 3b 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 e>&amp;</code>,.................
297a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 7c 3c 2f 63 6f 64 65 3e 2c .................<code>|</code>,
297c0 20 3c 63 6f 64 65 3e 7e 3c 2f 63 6f 64 65 3e 2c 20 65 74 63 2e 29 3c 2f 6c 69 3e 0a 20 20 20 20 .<code>~</code>,.etc.)</li>.....
297e0 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 73 20 28 ......<li>Comparison.operators.(
29800 3c 63 6f 64 65 3e 26 6c 74 3b 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 26 67 74 3b 3c 2f 63 <code>&lt;</code>,.<code>&gt;</c
29820 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3d 3d 3c 2f 63 6f 64 65 3e 2c 20 65 74 63 2e 29 3c 2f 6c 69 ode>,.<code>==</code>,.etc.)</li
29840 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 49 74 >.......</ul>.......<p>.......It
29860 20 69 73 20 70 72 6f 68 69 62 69 74 65 64 20 74 6f 20 75 73 65 20 61 20 6d 61 74 68 20 6f 70 65 .is.prohibited.to.use.a.math.ope
29880 72 61 74 6f 72 20 6f 6e 20 61 20 6d 69 78 74 75 72 65 20 6f 66 20 73 63 61 6c 61 72 73 20 28 69 rator.on.a.mixture.of.scalars.(i
298a0 6e 64 69 76 69 64 75 61 6c 20 6e 75 6d 62 65 72 73 29 0a 20 20 20 20 20 20 61 6e 64 20 76 65 63 ndividual.numbers).......and.vec
298c0 74 6f 72 73 2e 20 5a 69 67 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 tors..Zig.provides.the.<a.href="
298e0 23 73 70 6c 61 74 22 3e 40 73 70 6c 61 74 3c 2f 61 3e 20 62 75 69 6c 74 69 6e 20 74 6f 20 65 61 #splat">@splat</a>.builtin.to.ea
29900 73 69 6c 79 20 63 6f 6e 76 65 72 74 20 66 72 6f 6d 20 73 63 61 6c 61 72 73 0a 20 20 20 20 20 20 sily.convert.from.scalars.......
29920 74 6f 20 76 65 63 74 6f 72 73 2c 20 61 6e 64 20 69 74 20 73 75 70 70 6f 72 74 73 20 3c 61 20 68 to.vectors,.and.it.supports.<a.h
29940 72 65 66 3d 22 23 72 65 64 75 63 65 22 3e 40 72 65 64 75 63 65 3c 2f 61 3e 20 61 6e 64 20 61 72 ref="#reduce">@reduce</a>.and.ar
29960 72 61 79 20 69 6e 64 65 78 69 6e 67 20 73 79 6e 74 61 78 20 74 6f 20 63 6f 6e 76 65 72 74 0a 20 ray.indexing.syntax.to.convert..
29980 20 20 20 20 20 66 72 6f 6d 20 76 65 63 74 6f 72 73 20 74 6f 20 73 63 61 6c 61 72 73 2e 20 56 65 .....from.vectors.to.scalars..Ve
299a0 63 74 6f 72 73 20 61 6c 73 6f 20 73 75 70 70 6f 72 74 20 61 73 73 69 67 6e 6d 65 6e 74 20 74 6f ctors.also.support.assignment.to
299c0 20 61 6e 64 20 66 72 6f 6d 20 66 69 78 65 64 2d 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 61 72 72 .and.from.fixed-length.......arr
299e0 61 79 73 20 77 69 74 68 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 6c 65 6e 67 74 68 2e 0a ays.with.comptime-known.length..
29a00 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 20 72 ......</p>.......<p>.......For.r
29a20 65 61 72 72 61 6e 67 69 6e 67 20 65 6c 65 6d 65 6e 74 73 20 77 69 74 68 69 6e 20 61 6e 64 20 62 earranging.elements.within.and.b
29a40 65 74 77 65 65 6e 20 76 65 63 74 6f 72 73 2c 20 5a 69 67 20 70 72 6f 76 69 64 65 73 20 74 68 65 etween.vectors,.Zig.provides.the
29a60 20 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>
29a80 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 73 65 6c 65 63 74 22 3e 40 73 65 6c 65 63 74 3c 2f .and.<a.href="#select">@select</
29aa0 61 3e 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c a>.functions........</p>.......<
29ac0 70 3e 0a 20 20 20 20 20 20 4f 70 65 72 61 74 69 6f 6e 73 20 6f 6e 20 76 65 63 74 6f 72 73 20 73 p>.......Operations.on.vectors.s
29ae0 68 6f 72 74 65 72 20 74 68 61 6e 20 74 68 65 20 74 61 72 67 65 74 20 6d 61 63 68 69 6e 65 27 73 horter.than.the.target.machine's
29b00 20 6e 61 74 69 76 65 20 53 49 4d 44 20 73 69 7a 65 20 77 69 6c 6c 20 74 79 70 69 63 61 6c 6c 79 .native.SIMD.size.will.typically
29b20 20 63 6f 6d 70 69 6c 65 20 74 6f 20 73 69 6e 67 6c 65 20 53 49 4d 44 0a 20 20 20 20 20 20 69 6e .compile.to.single.SIMD.......in
29b40 73 74 72 75 63 74 69 6f 6e 73 2c 20 77 68 69 6c 65 20 76 65 63 74 6f 72 73 20 6c 6f 6e 67 65 72 structions,.while.vectors.longer
29b60 20 74 68 61 6e 20 74 68 65 20 74 61 72 67 65 74 20 6d 61 63 68 69 6e 65 27 73 20 6e 61 74 69 76 .than.the.target.machine's.nativ
29b80 65 20 53 49 4d 44 20 73 69 7a 65 20 77 69 6c 6c 20 63 6f 6d 70 69 6c 65 20 74 6f 20 6d 75 6c 74 e.SIMD.size.will.compile.to.mult
29ba0 69 70 6c 65 20 53 49 4d 44 0a 20 20 20 20 20 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 2e 20 49 66 iple.SIMD.......instructions..If
29bc0 20 61 20 67 69 76 65 6e 20 6f 70 65 72 61 74 69 6f 6e 20 64 6f 65 73 6e 27 74 20 68 61 76 65 20 .a.given.operation.doesn't.have.
29be0 53 49 4d 44 20 73 75 70 70 6f 72 74 20 6f 6e 20 74 68 65 20 74 61 72 67 65 74 20 61 72 63 68 69 SIMD.support.on.the.target.archi
29c00 74 65 63 74 75 72 65 2c 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 77 69 6c 6c 20 64 65 66 61 75 tecture,.the.compiler.will.defau
29c20 6c 74 0a 20 20 20 20 20 20 74 6f 20 6f 70 65 72 61 74 69 6e 67 20 6f 6e 20 65 61 63 68 20 76 65 lt.......to.operating.on.each.ve
29c40 63 74 6f 72 20 65 6c 65 6d 65 6e 74 20 6f 6e 65 20 61 74 20 61 20 74 69 6d 65 2e 20 5a 69 67 20 ctor.element.one.at.a.time..Zig.
29c60 73 75 70 70 6f 72 74 73 20 61 6e 79 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 76 65 63 74 supports.any.comptime-known.vect
29c80 6f 72 20 6c 65 6e 67 74 68 20 75 70 20 74 6f 20 32 5e 33 32 2d 31 2c 0a 20 20 20 20 20 20 61 6c or.length.up.to.2^32-1,.......al
29ca0 74 68 6f 75 67 68 20 73 6d 61 6c 6c 20 70 6f 77 65 72 73 20 6f 66 20 74 77 6f 20 28 32 2d 36 34 though.small.powers.of.two.(2-64
29cc0 29 20 61 72 65 20 6d 6f 73 74 20 74 79 70 69 63 61 6c 2e 20 4e 6f 74 65 20 74 68 61 74 20 65 78 ).are.most.typical..Note.that.ex
29ce0 63 65 73 73 69 76 65 6c 79 20 6c 6f 6e 67 20 76 65 63 74 6f 72 20 6c 65 6e 67 74 68 73 20 28 65 cessively.long.vector.lengths.(e
29d00 2e 67 2e 20 32 5e 32 30 29 20 6d 61 79 0a 20 20 20 20 20 20 72 65 73 75 6c 74 20 69 6e 20 63 6f .g..2^20).may.......result.in.co
29d20 6d 70 69 6c 65 72 20 63 72 61 73 68 65 73 20 6f 6e 20 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f mpiler.crashes.on.current.versio
29d40 6e 73 20 6f 66 20 5a 69 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 ns.of.Zig........</p>.......<fig
29d60 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
29d80 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 76 65 63 74 6f 72 2e 7a <cite.class="file">test_vector.z
29da0 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 ig</cite></figcaption><pre><code
29dc0 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
29de0 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
29e00 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
29e20 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>);
29e40 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
29e60 6e 3e 20 65 78 70 65 63 74 45 71 75 61 6c 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 n>.expectEqual.=.std.testing.exp
29e80 65 63 74 45 71 75 61 6c 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ectEqual;..<span.class="tok-kw">
29ea0 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
29ec0 22 3e 26 71 75 6f 74 3b 42 61 73 69 63 20 76 65 63 74 6f 72 20 75 73 61 67 65 26 71 75 6f 74 3b ">&quot;Basic.vector.usage&quot;
29ee0 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
29f00 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 56 65 63 74 6f 72 73 20 68 61 76 65 20 61 20 63 6f 6d 70 69 6c omment">//.Vectors.have.a.compil
29f20 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 20 6c 65 6e 67 74 68 20 61 6e 64 20 62 61 73 65 20 74 79 70 e-time.known.length.and.base.typ
29f40 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 6b e.</span>.....<span.class="tok-k
29f60 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=
29f80 22 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 3c 73 70 "tok-builtin">@Vector</span>(<sp
29fa0 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 20 an.class="tok-number">4</span>,.
29fc0 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
29fe0 3e 29 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 >){.<span.class="tok-number">1</
2a000 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">
2a020 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
2a040 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
2a060 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
2a080 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 3c 73 70 61 s="tok-kw">const</span>.b.=.<spa
2a0a0 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
2a0c0 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 34 3c pan>(<span.class="tok-number">4<
2a0e0 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 74 79 70 65 22 3e 69 /span>,.<span.class="tok-type">i
2a100 33 32 3c 2f 73 70 61 6e 3e 29 7b 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
2a120 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-
2a140 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 74 number">6</span>,.<span.class="t
2a160 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 73 ok-number">7</span>,.<span.class
2a180 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 0a 20 20 20 20 3c ="tok-number">8</span>.};......<
2a1a0 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 4d 61 74 68 span.class="tok-comment">//.Math
2a1c0 20 6f 70 65 72 61 74 69 6f 6e 73 20 74 61 6b 65 20 70 6c 61 63 65 20 65 6c 65 6d 65 6e 74 2d 77 .operations.take.place.element-w
2a1e0 69 73 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 ise.</span>.....<span.class="tok
2a200 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 61 20 2b 20 62 3b 0a 0a 20 20 -kw">const</span>.c.=.a.+.b;....
2a220 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 49 ..<span.class="tok-comment">//.I
2a240 6e 64 69 76 69 64 75 61 6c 20 76 65 63 74 6f 72 20 65 6c 65 6d 65 6e 74 73 20 63 61 6e 20 62 65 ndividual.vector.elements.can.be
2a260 20 61 63 63 65 73 73 65 64 20 75 73 69 6e 67 20 61 72 72 61 79 20 69 6e 64 65 78 69 6e 67 20 73 .accessed.using.array.indexing.s
2a280 79 6e 74 61 78 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 yntax.</span>.....<span.class="t
2a2a0 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 45 71 75 61 6c 28 3c 73 ok-kw">try</span>.expectEqual(<s
2a2c0 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 61 6e 3e 2c pan.class="tok-number">6</span>,
2a2e0 20 63 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 .c[<span.class="tok-number">0</s
2a300 70 61 6e 3e 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 22 pan>]);.....<span.class="tok-kw"
2a320 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 45 71 75 61 6c 28 3c 73 70 61 6e 20 63 6c >try</span>.expectEqual(<span.cl
2a340 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 63 5b 3c 73 70 ass="tok-number">8</span>,.c[<sp
2a360 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 5d 29 an.class="tok-number">1</span>])
2a380 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
2a3a0 73 70 61 6e 3e 20 65 78 70 65 63 74 45 71 75 61 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>.expectEqual(<span.class="t
2a3c0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 2c 20 63 5b 3c 73 70 61 6e 20 63 6c ok-number">10</span>,.c[<span.cl
2a3e0 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 29 3b 0a 20 20 20 ass="tok-number">2</span>]);....
2a400 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>
2a420 20 65 78 70 65 63 74 45 71 75 61 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .expectEqual(<span.class="tok-nu
2a440 6d 62 65 72 22 3e 31 32 3c 2f 73 70 61 6e 3e 2c 20 63 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 mber">12</span>,.c[<span.class="
2a460 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 5d 29 3b 0a 7d 0a 0a 3c 73 70 61 6e tok-number">3</span>]);.}..<span
2a480 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
2a4a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 43 6f 6e 76 65 72 73 69 n.class="tok-str">&quot;Conversi
2a4c0 6f 6e 20 62 65 74 77 65 65 6e 20 76 65 63 74 6f 72 73 2c 20 61 72 72 61 79 73 2c 20 61 6e 64 20 on.between.vectors,.arrays,.and.
2a4e0 73 6c 69 63 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 slices&quot;</span>.{.....<span.
2a500 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 56 65 63 74 6f 72 73 20 61 class="tok-comment">//.Vectors.a
2a520 6e 64 20 66 69 78 65 64 2d 6c 65 6e 67 74 68 20 61 72 72 61 79 73 20 63 61 6e 20 62 65 20 61 75 nd.fixed-length.arrays.can.be.au
2a540 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 73 73 69 67 6e 65 64 20 62 61 63 6b 20 61 6e 64 20 66 6f tomatically.assigned.back.and.fo
2a560 72 74 68 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 rth</span>.....<span.class="tok-
2a580 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 72 31 3a 20 5b 3c 73 70 61 6e 20 63 6c kw">const</span>.arr1:.[<span.cl
2a5a0 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 61 6e 20 ass="tok-number">4</span>]<span.
2a5c0 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 5b 5f class="tok-type">f32</span>.=.[_
2a5e0 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 2f 73 70 61 ]<span.class="tok-type">f32</spa
2a600 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 2e 31 n>{.<span.class="tok-number">1.1
2a620 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
2a640 22 3e 33 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 ">3.2</span>,.<span.class="tok-n
2a660 75 6d 62 65 72 22 3e 34 2e 35 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 umber">4.5</span>,.<span.class="
2a680 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 2e 36 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 tok-number">5.6</span>.};.....<s
2a6a0 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>.
2a6c0 76 65 63 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 40 vec:.<span.class="tok-builtin">@
2a6e0 56 65 63 74 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 6e Vector</span>(<span.class="tok-n
2a700 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
2a720 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 29 20 3d 20 61 72 72 31 3b 0a 20 20 20 20 k-type">f32</span>).=.arr1;.....
2a740 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
2a760 3e 20 61 72 72 32 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 >.arr2:.[<span.class="tok-number
2a780 22 3e 34 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 ">4</span>]<span.class="tok-type
2a7a0 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 76 65 63 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ">f32</span>.=.vec;.....<span.cl
2a7c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 45 71 ass="tok-kw">try</span>.expectEq
2a7e0 75 61 6c 28 61 72 72 31 2c 20 61 72 72 32 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ual(arr1,.arr2);......<span.clas
2a800 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 20 61 6c 73 6f 20 s="tok-comment">//.You.can.also.
2a820 61 73 73 69 67 6e 20 66 72 6f 6d 20 61 20 73 6c 69 63 65 20 77 69 74 68 20 63 6f 6d 70 74 69 6d assign.from.a.slice.with.comptim
2a840 65 2d 6b 6e 6f 77 6e 20 6c 65 6e 67 74 68 20 74 6f 20 61 20 76 65 63 74 6f 72 20 75 73 69 6e 67 e-known.length.to.a.vector.using
2a860 20 2e 2a 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 ..*</span>.....<span.class="tok-
2a880 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 65 63 32 3a 20 3c 73 70 61 6e 20 63 6c 61 kw">const</span>.vec2:.<span.cla
2a8a0 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 70 61 6e 3e 28 ss="tok-builtin">@Vector</span>(
2a8c0 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
2a8e0 3e 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 66 33 32 3c 2f 73 >,.<span.class="tok-type">f32</s
2a900 70 61 6e 3e 29 20 3d 20 61 72 72 31 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 pan>).=.arr1[<span.class="tok-nu
2a920 6d 62 65 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 mber">1</span>..<span.class="tok
2a940 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 5d 2e 2a 3b 0a 0a 20 20 20 20 3c 73 70 61 6e -number">3</span>].*;......<span
2a960 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 6c 69 .class="tok-kw">const</span>.sli
2a980 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 22 3e 63 6f 6e 73 74 ce:.[]<span.class="tok-kw">const
2a9a0 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 66 </span>.<span.class="tok-type">f
2a9c0 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 61 72 72 31 3b 0a 20 20 20 20 3c 73 70 61 6e 32</span>.=.&amp;arr1;.....<span
2a9e0 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 6f 66 66 73 65 .class="tok-kw">var</span>.offse
2aa00 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
2aa20 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">
2aa40 31 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 2d 63 6f 6d 6d 65 1</span>;.<span.class="tok-comme
2aa60 6e 74 22 3e 2f 2f 20 76 61 72 20 74 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e 74 69 6d 65 2d 6b 6e nt">//.var.to.make.it.runtime-kn
2aa80 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 6f 66 66 73 65 74 3b 20 own</span>....._.=.&amp;offset;.
2aaa0 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 75 70 <span.class="tok-comment">//.sup
2aac0 70 72 65 73 73 20 27 76 61 72 20 69 73 20 6e 65 76 65 72 20 6d 75 74 61 74 65 64 27 20 65 72 72 press.'var.is.never.mutated'.err
2aae0 6f 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 or</span>.....<span.class="tok-c
2ab00 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 6f 20 65 78 74 72 61 63 74 20 61 20 63 6f 6d 70 74 69 6d 65 omment">//.To.extract.a.comptime
2ab20 2d 6b 6e 6f 77 6e 20 6c 65 6e 67 74 68 20 66 72 6f 6d 20 61 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f -known.length.from.a.runtime-kno
2ab40 77 6e 20 6f 66 66 73 65 74 2c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 wn.offset,</span>.....<span.clas
2ab60 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 66 69 72 73 74 20 65 78 74 72 61 63 74 s="tok-comment">//.first.extract
2ab80 20 61 20 6e 65 77 20 73 6c 69 63 65 20 66 72 6f 6d 20 74 68 65 20 73 74 61 72 74 69 6e 67 20 6f .a.new.slice.from.the.starting.o
2aba0 66 66 73 65 74 2c 20 74 68 65 6e 20 61 6e 20 61 72 72 61 79 20 6f 66 3c 2f 73 70 61 6e 3e 0a 20 ffset,.then.an.array.of</span>..
2abc0 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">//.
2abe0 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 6c 65 6e 67 74 68 3c 2f 73 70 61 6e 3e 0a 20 20 20 comptime-known.length</span>....
2ac00 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
2ac20 6e 3e 20 76 65 63 33 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 n>.vec3:.<span.class="tok-builti
2ac40 6e 22 3e 40 56 65 63 74 6f 72 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n">@Vector</span>(<span.class="t
2ac60 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 6e 20 63 6c 61 73 73 ok-number">2</span>,.<span.class
2ac80 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 29 20 3d 20 73 6c 69 63 65 5b ="tok-type">f32</span>).=.slice[
2aca0 6f 66 66 73 65 74 2e 2e 5d 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 offset..][<span.class="tok-numbe
2acc0 72 22 3e 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 r">0</span>..<span.class="tok-nu
2ace0 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 5d 2e 2a 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 mber">2</span>].*;.....<span.cla
2ad00 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 45 71 75 ss="tok-kw">try</span>.expectEqu
2ad20 61 6c 28 73 6c 69 63 65 5b 6f 66 66 73 65 74 5d 2c 20 76 65 63 32 5b 3c 73 70 61 6e 20 63 6c 61 al(slice[offset],.vec2[<span.cla
2ad40 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 3b 0a 20 20 20 20 ss="tok-number">0</span>]);.....
2ad60 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>.
2ad80 65 78 70 65 63 74 45 71 75 61 6c 28 73 6c 69 63 65 5b 6f 66 66 73 65 74 20 2b 20 3c 73 70 61 6e expectEqual(slice[offset.+.<span
2ada0 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 5d 2c 20 76 .class="tok-number">1</span>],.v
2adc0 65 63 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 31 3c 2f ec2[<span.class="tok-number">1</
2ade0 73 70 61 6e 3e 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 span>]);.....<span.class="tok-kw
2ae00 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 45 71 75 61 6c 28 76 65 63 32 2c 20 76 ">try</span>.expectEqual(vec2,.v
2ae20 65 63 33 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 ec3);.}</code></pre></figure><fi
2ae40 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
2ae60 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
2ae80 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 76 65 63 74 6f 72 2e 7a 69 67 3c $.<kbd>zig.test.test_vector.zig<
2aea0 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 5f 76 65 63 74 6f 72 2e 74 65 73 74 2e 42 61 73 69 63 /kbd>.1/2.test_vector.test.Basic
2aec0 20 76 65 63 74 6f 72 20 75 73 61 67 65 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 76 65 63 .vector.usage....OK.2/2.test_vec
2aee0 74 6f 72 2e 74 65 73 74 2e 43 6f 6e 76 65 72 73 69 6f 6e 20 62 65 74 77 65 65 6e 20 76 65 63 74 tor.test.Conversion.between.vect
2af00 6f 72 73 2c 20 61 72 72 61 79 73 2c 20 61 6e 64 20 73 6c 69 63 65 73 2e 2e 2e 20 4f 4b 0a 41 6c ors,.arrays,.and.slices....OK.Al
2af20 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c l.2.tests.passed..</samp></pre><
2af40 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 4f 44 4f 20 74 61 /figure>.......<p>.......TODO.ta
2af60 6c 6b 20 61 62 6f 75 74 20 43 20 41 42 49 20 69 6e 74 65 72 6f 70 3c 62 72 2f 3e 0a 20 20 20 20 lk.about.C.ABI.interop<br/>.....
2af80 20 20 54 4f 44 4f 20 63 6f 6e 73 69 64 65 72 20 73 75 67 67 65 73 74 69 6e 67 20 73 74 64 2e 4d ..TODO.consider.suggesting.std.M
2afa0 75 6c 74 69 41 72 72 61 79 4c 69 73 74 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c ultiArrayList.......</p>.......<
2afc0 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=
2afe0 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 3c 6c 69 3e 3c 61 20 "#splat">@splat</a></li>.<li><a.
2b000 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 3c 2f 6c 69 href="#shuffle">@shuffle</a></li
2b020 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 6c 65 63 74 22 3e 40 73 65 6c 65 63 74 3c >.<li><a.href="#select">@select<
2b040 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 65 64 75 63 65 22 3e 40 /a></li>.<li><a.href="#reduce">@
2b060 72 65 64 75 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 0a 0a reduce</a></li>.</ul>...........
2b080 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 50 6f 69 6e 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d ......<h2.id="Pointers"><a.href=
2b0a0 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 "nav.xhtml#toc-Pointers">Pointer
2b0c0 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 50 6f 69 6e s</a>.<a.class="hdr".href="#Poin
2b0e0 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 0a 20 20 20 ters">..</a></h2>........<p>....
2b100 20 20 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 ...Zig.has.two.kinds.of.pointers
2b120 3a 20 73 69 6e 67 6c 65 2d 69 74 65 6d 20 61 6e 64 20 6d 61 6e 79 2d 69 74 65 6d 2e 0a 20 20 20 :.single-item.and.many-item.....
2b140 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
2b160 3e 3c 63 6f 64 65 3e 2a 54 3c 2f 63 6f 64 65 3e 20 2d 20 73 69 6e 67 6c 65 2d 69 74 65 6d 20 70 ><code>*T</code>.-.single-item.p
2b180 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 20 20 20 ointer.to.exactly.one.item......
2b1a0 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 53 ........<ul>...............<li>S
2b1c0 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 3e 70 74 72 2e upports.deref.syntax:.<code>ptr.
2b1e0 2a 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 3c 2f 75 6c 3e 0a *</code></li>.............</ul>.
2b200 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 3c 6c 69 3e 3c 63 ..........</li>...........<li><c
2b220 6f 64 65 3e 5b 2a 5d 54 3c 2f 63 6f 64 65 3e 20 2d 20 6d 61 6e 79 2d 69 74 65 6d 20 70 6f 69 6e ode>[*]T</code>.-.many-item.poin
2b240 74 65 72 20 74 6f 20 75 6e 6b 6e 6f 77 6e 20 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 6d 73 2e 0a ter.to.unknown.number.of.items..
2b260 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>...............<
2b280 6c 69 3e 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 3e li>Supports.index.syntax:.<code>
2b2a0 70 74 72 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 ptr[i]</code></li>..............
2b2c0 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 6f 64 .<li>Supports.slice.syntax:.<cod
2b2e0 65 3e 70 74 72 5b 73 74 61 72 74 2e 2e 65 6e 64 5d 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f e>ptr[start..end]</code>.and.<co
2b300 64 65 3e 70 74 72 5b 73 74 61 72 74 2e 2e 5d 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 de>ptr[start..]</code></li>.....
2b320 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 73 20 70 6f 69 6e 74 65 72 20 61 ..........<li>Supports.pointer.a
2b340 72 69 74 68 6d 65 74 69 63 3a 20 3c 63 6f 64 65 3e 70 74 72 20 2b 20 78 3c 2f 63 6f 64 65 3e 2c rithmetic:.<code>ptr.+.x</code>,
2b360 20 3c 63 6f 64 65 3e 70 74 72 20 2d 20 78 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 .<code>ptr.-.x</code></li>......
2b380 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 .........<li><code>T</code>.must
2b3a0 20 68 61 76 65 20 61 20 6b 6e 6f 77 6e 20 73 69 7a 65 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 20 .have.a.known.size,.which.means.
2b3c0 74 68 61 74 20 69 74 20 63 61 6e 6e 6f 74 20 62 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 that.it.cannot.be...............
2b3e0 3c 63 6f 64 65 3e 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 <code><span.class="tok-type">any
2b400 6f 70 61 71 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 72 20 61 6e 79 20 6f 74 68 65 opaque</span></code>.or.any.othe
2b420 72 20 3c 61 20 68 72 65 66 3d 22 23 6f 70 61 71 75 65 22 3e 6f 70 61 71 75 65 20 74 79 70 65 3c r.<a.href="#opaque">opaque.type<
2b440 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 20 20 20 20 /a>.</li>.............</ul>.....
2b460 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 20 20 20 3c 70 ......</li>.......</ul>.......<p
2b480 3e 54 68 65 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 >These.types.are.closely.related
2b4a0 20 74 6f 20 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 .to.<a.href="#Arrays">Arrays</a>
2b4c0 20 61 6e 64 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 .and.<a.href="#Slices">Slices</a
2b4e0 3e 3a 3c 2f 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 >:</p>.........<ul>.............
2b500 3c 6c 69 3e 3c 63 6f 64 65 3e 2a 5b 4e 5d 54 3c 2f 63 6f 64 65 3e 20 2d 20 70 6f 69 6e 74 65 72 <li><code>*[N]T</code>.-.pointer
2b520 20 74 6f 20 4e 20 69 74 65 6d 73 2c 20 73 61 6d 65 20 61 73 20 73 69 6e 67 6c 65 2d 69 74 65 6d .to.N.items,.same.as.single-item
2b540 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e 20 61 72 72 61 79 2e 0a 20 20 20 20 20 20 20 20 20 20 .pointer.to.an.array............
2b560 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 53 75 70 70 6f ..<ul>.................<li>Suppo
2b580 72 74 73 20 69 6e 64 65 78 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 3e 61 72 72 61 79 5f 70 74 rts.index.syntax:.<code>array_pt
2b5a0 72 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 20 r[i]</code></li>................
2b5c0 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 6f 64 .<li>Supports.slice.syntax:.<cod
2b5e0 65 3e 61 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 e>array_ptr[start..end]</code></
2b600 6c 69 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 li>.................<li>Supports
2b620 20 6c 65 6e 20 70 72 6f 70 65 72 74 79 3a 20 3c 63 6f 64 65 3e 61 72 72 61 79 5f 70 74 72 2e 6c .len.property:.<code>array_ptr.l
2b640 65 6e 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 3c 2f 75 6c 3e en</code></li>.............</ul>
2b660 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e .............</li>.........</ul>
2b680 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 63 .........<ul>.............<li><c
2b6a0 6f 64 65 3e 5b 5d 54 3c 2f 63 6f 64 65 3e 20 2d 20 69 73 20 61 20 73 6c 69 63 65 20 28 61 20 66 ode>[]T</code>.-.is.a.slice.(a.f
2b6c0 61 74 20 70 6f 69 6e 74 65 72 2c 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 61 20 70 6f 69 at.pointer,.which.contains.a.poi
2b6e0 6e 74 65 72 20 6f 66 20 74 79 70 65 20 3c 63 6f 64 65 3e 5b 2a 5d 54 3c 2f 63 6f 64 65 3e 20 61 nter.of.type.<code>[*]T</code>.a
2b700 6e 64 20 61 20 6c 65 6e 67 74 68 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 nd.a.length)..............<ul>..
2b720 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 64 65 ...............<li>Supports.inde
2b740 78 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 3e 73 6c 69 63 65 5b 69 5d 3c 2f 63 6f 64 65 3e 3c x.syntax:.<code>slice[i]</code><
2b760 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 53 75 70 70 6f 72 74 /li>.................<li>Support
2b780 73 20 73 6c 69 63 65 20 73 79 6e 74 61 78 3a 20 3c 63 6f 64 65 3e 73 6c 69 63 65 5b 73 74 61 72 s.slice.syntax:.<code>slice[star
2b7a0 74 2e 2e 65 6e 64 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 t..end]</code></li>.............
2b7c0 20 20 20 20 3c 6c 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 ....<li>Supports.len.property:.<
2b7e0 63 6f 64 65 3e 73 6c 69 63 65 2e 6c 65 6e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 code>slice.len</code></li>......
2b800 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 2f 6c 69 3e 0a 20 .......</ul>.............</li>..
2b820 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 65 20 3c 63 6f 64 .......</ul>.........<p>Use.<cod
2b840 65 3e 26 61 6d 70 3b 78 3c 2f 63 6f 64 65 3e 20 74 6f 20 6f 62 74 61 69 6e 20 61 20 73 69 6e 67 e>&amp;x</code>.to.obtain.a.sing
2b860 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 le-item.pointer:</p>.......<figu
2b880 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
2b8a0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 69 6e 67 6c 65 5f 69 74 cite.class="file">test_single_it
2b8c0 65 6d 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f em_pointer.zig</cite></figcaptio
2b8e0 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
2b900 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c ">const</span>.expect.=.<span.cl
2b920 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>
2b940 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
2b960 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a &quot;</span>).testing.expect;..
2b980 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>
2b9a0 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 64 64 .<span.class="tok-str">&quot;add
2b9c0 72 65 73 73 20 6f 66 20 73 79 6e 74 61 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 ress.of.syntax&quot;</span>.{...
2b9e0 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 47 ..<span.class="tok-comment">//.G
2ba00 65 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 3a 3c 2f 73 et.the.address.of.a.variable:</s
2ba20 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 6f pan>.....<span.class="tok-kw">co
2ba40 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 74 6f 6b 2d 74 nst</span>.x:.<span.class="tok-t
2ba60 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
2ba80 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 73 70 61 ok-number">1234</span>;.....<spa
2baa0 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 5f n.class="tok-kw">const</span>.x_
2bac0 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ptr.=.&amp;x;......<span.class="
2bae0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 44 65 72 65 66 65 72 65 6e 63 65 20 61 20 70 6f tok-comment">//.Dereference.a.po
2bb00 69 6e 74 65 72 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 inter:</span>.....<span.class="t
2bb20 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 78 5f 70 74 72 2e 2a ok-kw">try</span>.expect(x_ptr.*
2bb40 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
2bb60 34 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 4</span>);......<span.class="tok
2bb80 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 57 68 65 6e 20 79 6f 75 20 67 65 74 20 74 68 65 20 61 64 -comment">//.When.you.get.the.ad
2bba0 64 72 65 73 73 20 6f 66 20 61 20 63 6f 6e 73 74 20 76 61 72 69 61 62 6c 65 2c 20 79 6f 75 20 67 dress.of.a.const.variable,.you.g
2bbc0 65 74 20 61 20 63 6f 6e 73 74 20 73 69 6e 67 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 2e 3c et.a.const.single-item.pointer.<
2bbe0 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">
2bc00 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 try</span>.expect(<span.class="t
2bc20 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 78 5f 70 74 72 ok-builtin">@TypeOf</span>(x_ptr
2bc40 29 20 3d 3d 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 ).==.*<span.class="tok-kw">const
2bc60 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 69 </span>.<span.class="tok-type">i
2bc80 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 6f 32</span>);......<span.class="to
2bca0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6d 75 74 k-comment">//.If.you.want.to.mut
2bcc0 61 74 65 20 74 68 65 20 76 61 6c 75 65 2c 20 79 6f 75 27 64 20 6e 65 65 64 20 61 6e 20 61 64 64 ate.the.value,.you'd.need.an.add
2bce0 72 65 73 73 20 6f 66 20 61 20 6d 75 74 61 62 6c 65 20 76 61 72 69 61 62 6c 65 3a 3c 2f 73 70 61 ress.of.a.mutable.variable:</spa
2bd00 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 3c n>.....<span.class="tok-kw">var<
2bd20 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 79 70 65 22 /span>.y:.<span.class="tok-type"
2bd40 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
2bd60 75 6d 62 65 72 22 3e 35 36 37 38 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c umber">5678</span>;.....<span.cl
2bd80 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 5f 70 74 72 20 ass="tok-kw">const</span>.y_ptr.
2bda0 3d 20 26 61 6d 70 3b 79 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;y;.....<span.class="tok-k
2bdc0 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 w">try</span>.expect(<span.class
2bde0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 79 5f ="tok-builtin">@TypeOf</span>(y_
2be00 70 74 72 29 20 3d 3d 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 ptr).==.*<span.class="tok-type">
2be20 69 33 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 79 5f 70 74 72 2e 2a 20 2b 3d 20 3c 73 70 61 i32</span>);.....y_ptr.*.+=.<spa
2be40 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>;..
2be60 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 61 ...<span.class="tok-kw">try</spa
2be80 6e 3e 20 65 78 70 65 63 74 28 79 5f 70 74 72 2e 2a 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 n>.expect(y_ptr.*.==.<span.class
2bea0 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 0a 7d 0a 0a 3c ="tok-number">5679</span>);.}..<
2bec0 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>.
2bee0 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
2bf00 74 65 72 20 61 72 72 61 79 20 61 63 63 65 73 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a ter.array.access&quot;</span>.{.
2bf20 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">//
2bf40 20 54 61 6b 69 6e 67 20 61 6e 20 61 64 64 72 65 73 73 20 6f 66 20 61 6e 20 69 6e 64 69 76 69 64 .Taking.an.address.of.an.individ
2bf60 75 61 6c 20 65 6c 65 6d 65 6e 74 20 67 69 76 65 73 20 61 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c ual.element.gives.a</span>.....<
2bf80 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 69 6e 67 span.class="tok-comment">//.sing
2bfa0 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 2e 20 54 68 69 73 20 6b 69 6e 64 20 6f 66 20 70 6f le-item.pointer..This.kind.of.po
2bfc0 69 6e 74 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 inter</span>.....<span.class="to
2bfe0 6b 2d 63 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 k-comment">//.does.not.support.p
2c000 6f 69 6e 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 ointer.arithmetic.</span>.....<s
2c020 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 72 pan.class="tok-kw">var</span>.ar
2c040 72 61 79 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 ray.=.[_]<span.class="tok-type">
2c060 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 6e 75 6d 62 u8</span>{.<span.class="tok-numb
2c080 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 6b 2d 6e er">1</span>,.<span.class="tok-n
2c0a0 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 22 74 6f umber">2</span>,.<span.class="to
2c0c0 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 73 73 3d k-number">3</span>,.<span.class=
2c0e0 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 63 6c 61 "tok-number">4</span>,.<span.cla
2c100 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 6e 20 ss="tok-number">5</span>,.<span.
2c120 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 3c 73 70 class="tok-number">6</span>,.<sp
2c140 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 2c 20 an.class="tok-number">7</span>,.
2c160 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
2c180 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 39 3c 2f 73 >,.<span.class="tok-number">9</s
2c1a0 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 31 pan>,.<span.class="tok-number">1
2c1c0 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 6b 0</span>.};.....<span.class="tok
2c1e0 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 72 -kw">const</span>.ptr.=.&amp;arr
2c200 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 32 3c 2f 73 ay[<span.class="tok-number">2</s
2c220 70 61 6e 3e 5d 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">
2c240 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 try</span>.expect(<span.class="t
2c260 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 70 74 72 29 20 ok-builtin">@TypeOf</span>(ptr).
2c280 3d 3d 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 75 38 3c 2f 73 ==.*<span.class="tok-type">u8</s
2c2a0 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"
2c2c0 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 >try</span>.expect(array[<span.c
2c2e0 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 20 3d 3d 20 3c lass="tok-number">2</span>].==.<
2c300 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>
2c320 29 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 6f 6b );.....ptr.*.+=.<span.class="tok
2c340 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 61 -number">1</span>;.....<span.cla
2c360 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 ss="tok-kw">try</span>.expect(ar
2c380 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 32 3c 2f ray[<span.class="tok-number">2</
2c3a0 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 6d 62 65 span>].==.<span.class="tok-numbe
2c3c0 72 22 3e 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 2f 66 69 r">4</span>);.}</code></pre></fi
2c3e0 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
2c400 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
2c420 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 69 6e e><samp>$.<kbd>zig.test.test_sin
2c440 67 6c 65 5f 69 74 65 6d 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 gle_item_pointer.zig</kbd>.1/2.t
2c460 65 73 74 5f 73 69 6e 67 6c 65 5f 69 74 65 6d 5f 70 6f 69 6e 74 65 72 2e 74 65 73 74 2e 61 64 64 est_single_item_pointer.test.add
2c480 72 65 73 73 20 6f 66 20 73 79 6e 74 61 78 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 73 69 ress.of.syntax....OK.2/2.test_si
2c4a0 6e 67 6c 65 5f 69 74 65 6d 5f 70 6f 69 6e 74 65 72 2e 74 65 73 74 2e 70 6f 69 6e 74 65 72 20 61 ngle_item_pointer.test.pointer.a
2c4c0 72 72 61 79 20 61 63 63 65 73 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 rray.access....OK.All.2.tests.pa
2c4e0 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 ssed..</samp></pre></figure>....
2c500 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 5a 69 67 20 73 75 70 70 6f 72 74 73 20 70 6f 69 6e 74 ...<p>........Zig.supports.point
2c520 65 72 20 61 72 69 74 68 6d 65 74 69 63 2e 20 49 74 27 73 20 62 65 74 74 65 72 20 74 6f 20 61 73 er.arithmetic..It's.better.to.as
2c540 73 69 67 6e 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 3c 63 6f 64 65 3e 5b 2a 5d 54 3c 2f sign.the.pointer.to.<code>[*]T</
2c560 63 6f 64 65 3e 20 61 6e 64 20 69 6e 63 72 65 6d 65 6e 74 20 74 68 61 74 20 76 61 72 69 61 62 6c code>.and.increment.that.variabl
2c580 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 64 69 72 65 63 74 6c 79 20 69 6e 63 72 65 6d 65 e..For.example,.directly.increme
2c5a0 6e 74 69 6e 67 20 74 68 65 20 70 6f 69 6e 74 65 72 20 66 72 6f 6d 20 61 20 73 6c 69 63 65 20 77 nting.the.pointer.from.a.slice.w
2c5c0 69 6c 6c 20 63 6f 72 72 75 70 74 20 69 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 ill.corrupt.it........</p>......
2c5e0 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d .<figure><figcaption.class="zig-
2c600 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 70 6f 69 cap"><cite.class="file">test_poi
2c620 6e 74 65 72 5f 61 72 69 74 68 6d 65 74 69 63 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 nter_arithmetic.zig</cite></figc
2c640 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 aption><pre><code><span.class="t
2c660 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 ok-kw">const</span>.expect.=.<sp
2c680 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</
2c6a0 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
2c6c0 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 t;std&quot;</span>).testing.expe
2c6e0 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 74 65 73 74 3c 2f ct;..<span.class="tok-kw">test</
2c700 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
2c720 74 3b 70 6f 69 6e 74 65 72 20 61 72 69 74 68 6d 65 74 69 63 20 77 69 74 68 20 6d 61 6e 79 2d 69 t;pointer.arithmetic.with.many-i
2c740 74 65 6d 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 tem.pointer&quot;</span>.{.....<
2c760 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>
2c780 20 61 72 72 61 79 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 .array.=.[_]<span.class="tok-typ
2c7a0 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 73 3d 22 74 6f 6b 2d e">i32</span>{.<span.class="tok-
2c7c0 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 6c 61 73 73 3d 22 74 number">1</span>,.<span.class="t
2c7e0 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 6e 20 63 6c 61 73 73 ok-number">2</span>,.<span.class
2c800 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 73 70 61 6e 20 63 6c ="tok-number">3</span>,.<span.cl
2c820 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 20 7d 3b 0a 20 20 20 ass="tok-number">4</span>.};....
2c840 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>
2c860 20 70 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 .ptr:.[*]<span.class="tok-kw">co
2c880 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
2c8a0 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 61 72 72 61 79 3b 0a 0a 20 20 20 20 ">i32</span>.=.&amp;array;......
2c8c0 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>.
2c8e0 65 78 70 65 63 74 28 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 expect(ptr[<span.class="tok-numb
2c900 65 72 22 3e 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 er">0</span>].==.<span.class="to
2c920 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 70 74 72 20 2b 3d 20 k-number">1</span>);.....ptr.+=.
2c940 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
2c960 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 74 72 79 3c >;.....<span.class="tok-kw">try<
2c980 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 74 72 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 /span>.expect(ptr[<span.class="t
2c9a0 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 61 6e 20 63 6c ok-number">0</span>].==.<span.cl
2c9c0 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 0a 20 20 20 ass="tok-number">2</span>);.....
2c9e0 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 73 6c .<span.class="tok-comment">//.sl
2ca00 69 63 69 6e 67 20 61 20 6d 61 6e 79 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 20 77 69 74 68 6f 75 icing.a.many-item.pointer.withou
2ca20 74 20 61 6e 20 65 6e 64 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 3c 2f 73 70 61 6e 3e t.an.end.is.equivalent.to</span>
2ca40 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">/
2ca60 2f 20 70 6f 69 6e 74 65 72 20 61 72 69 74 68 6d 65 74 69 63 3a 20 60 70 74 72 5b 73 74 61 72 74 /.pointer.arithmetic:.`ptr[start
2ca80 2e 2e 5d 20 3d 3d 20 70 74 72 20 2b 20 73 74 61 72 74 60 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c ..].==.ptr.+.start`</span>.....<
2caa0 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 65 span.class="tok-kw">try</span>.e
2cac0 78 70 65 63 74 28 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 xpect(ptr[<span.class="tok-numbe
2cae0 72 22 3e 31 3c 2f 73 70 61 6e 3e 2e 2e 5d 20 3d 3d 20 70 74 72 20 2b 20 3c 73 70 61 6e 20 63 6c r">1</span>..].==.ptr.+.<span.cl
2cb00 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 3c ass="tok-number">1</span>);.}..<
2cb20 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>.
2cb40 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
2cb60 74 65 72 20 61 72 69 74 68 6d 65 74 69 63 20 77 69 74 68 20 73 6c 69 63 65 73 26 71 75 6f 74 3b ter.arithmetic.with.slices&quot;
2cb80 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
2cba0 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 73 70 61 6e 20 63 w">var</span>.array.=.[_]<span.c
2cbc0 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
2cbe0 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>,.<
2cc00 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>
2cc20 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
2cc40 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<
2cc60 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
2cc80 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6c 65 6e 67 74 68 3a 20 3c 73 70 61 6e 20 63 6c 61 73 w">var</span>.length:.<span.clas
2cca0 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
2ccc0 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 20 3c n.class="tok-number">0</span>;.<
2cce0 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 72 20 span.class="tok-comment">//.var.
2cd00 74 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a to.make.it.runtime-known</span>.
2cd20 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 6c 65 6e 67 74 68 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 ...._.=.&amp;length;.<span.class
2cd40 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 73 75 70 70 72 65 73 73 20 27 76 61 72 20 ="tok-comment">//.suppress.'var.
2cd60 69 73 20 6e 65 76 65 72 20 6d 75 74 61 74 65 64 27 20 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 0a 20 is.never.mutated'.error</span>..
2cd80 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
2cda0 6e 3e 20 73 6c 69 63 65 20 3d 20 61 72 72 61 79 5b 6c 65 6e 67 74 68 2e 2e 61 72 72 61 79 2e 6c n>.slice.=.array[length..array.l
2cdc0 65 6e 5d 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 74 en];......<span.class="tok-kw">t
2cde0 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 6c 69 63 65 5b 3c 73 70 61 6e 20 63 6c 61 ry</span>.expect(slice[<span.cla
2ce00 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
2ce20 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 3b an.class="tok-number">1</span>);
2ce40 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
2ce60 70 61 6e 3e 20 65 78 70 65 63 74 28 73 6c 69 63 65 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 pan>.expect(slice.len.==.<span.c
2ce80 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 0a 20 20 lass="tok-number">4</span>);....
2cea0 20 20 73 6c 69 63 65 2e 70 74 72 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ..slice.ptr.+=.<span.class="tok-
2cec0 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
2cee0 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6e 6f 77 20 74 68 65 20 73 6c 69 63 65 s="tok-comment">//.now.the.slice
2cf00 20 69 73 20 69 6e 20 61 6e 20 62 61 64 20 73 74 61 74 65 20 73 69 6e 63 65 20 6c 65 6e 20 68 61 .is.in.an.bad.state.since.len.ha
2cf20 73 20 6e 6f 74 20 62 65 65 6e 20 75 70 64 61 74 65 64 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 3c s.not.been.updated</span>......<
2cf40 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 65 span.class="tok-kw">try</span>.e
2cf60 78 70 65 63 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 xpect(slice[<span.class="tok-num
2cf80 62 65 72 22 3e 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 ber">0</span>].==.<span.class="t
2cfa0 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.
2cfc0 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
2cfe0 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 3d 22 74 6f 6b 2d 6e (slice.len.==.<span.class="tok-n
2d000 75 6d 62 65 72 22 3e 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 umber">4</span>);.}</code></pre>
2d020 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
2d040 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
2d060 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 ><pre><samp>$.<kbd>zig.test.test
2d080 5f 70 6f 69 6e 74 65 72 5f 61 72 69 74 68 6d 65 74 69 63 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f _pointer_arithmetic.zig</kbd>.1/
2d0a0 32 20 74 65 73 74 5f 70 6f 69 6e 74 65 72 5f 61 72 69 74 68 6d 65 74 69 63 2e 74 65 73 74 2e 70 2.test_pointer_arithmetic.test.p
2d0c0 6f 69 6e 74 65 72 20 61 72 69 74 68 6d 65 74 69 63 20 77 69 74 68 20 6d 61 6e 79 2d 69 74 65 6d ointer.arithmetic.with.many-item
2d0e0 20 70 6f 69 6e 74 65 72 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 70 6f 69 6e 74 65 72 5f .pointer....OK.2/2.test_pointer_
2d100 61 72 69 74 68 6d 65 74 69 63 2e 74 65 73 74 2e 70 6f 69 6e 74 65 72 20 61 72 69 74 68 6d 65 74 arithmetic.test.pointer.arithmet
2d120 69 63 20 77 69 74 68 20 73 6c 69 63 65 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 ic.with.slices....OK.All.2.tests
2d140 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a .passed..</samp></pre></figure>.
2d160 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 67 65 6e ......<p>.........In.Zig,.we.gen
2d180 65 72 61 6c 6c 79 20 70 72 65 66 65 72 20 3c 61 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e erally.prefer.<a.href="#Slices">
2d1a0 53 6c 69 63 65 73 3c 2f 61 3e 20 72 61 74 68 65 72 20 74 68 61 6e 20 3c 61 20 68 72 65 66 3d 22 Slices</a>.rather.than.<a.href="
2d1c0 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 50 6f 69 6e 74 65 72 73 22 3e 53 #Sentinel-Terminated-Pointers">S
2d1e0 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 2e entinel-Terminated.Pointers</a>.
2d200 0a 20 20 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 74 75 72 6e 20 61 6e 20 61 72 72 61 79 20 6f .........You.can.turn.an.array.o
2d220 72 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 73 6c 69 63 65 20 75 73 69 6e 67 20 73 6c 69 r.pointer.into.a.slice.using.sli
2d240 63 65 20 73 79 6e 74 61 78 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a ce.syntax........</p>.......<p>.
2d260 20 20 20 20 20 20 20 20 53 6c 69 63 65 73 20 68 61 76 65 20 62 6f 75 6e 64 73 20 63 68 65 63 6b ........Slices.have.bounds.check
2d280 69 6e 67 20 61 6e 64 20 61 72 65 20 74 68 65 72 65 66 6f 72 65 20 70 72 6f 74 65 63 74 65 64 0a ing.and.are.therefore.protected.
2d2a0 20 20 20 20 20 20 20 20 61 67 61 69 6e 73 74 20 74 68 69 73 20 6b 69 6e 64 20 6f 66 20 75 6e 64 ........against.this.kind.of.und
2d2c0 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 20 54 68 69 73 20 69 73 20 6f 6e 65 20 72 65 61 efined.behavior..This.is.one.rea
2d2e0 73 6f 6e 0a 20 20 20 20 20 20 20 20 77 65 20 70 72 65 66 65 72 20 73 6c 69 63 65 73 20 74 6f 20 son.........we.prefer.slices.to.
2d300 70 6f 69 6e 74 65 72 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 pointers........</p>.......<figu
2d320 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
2d340 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 6c 69 63 65 5f 62 6f 75 cite.class="file">test_slice_bou
2d360 6e 64 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e nds.zig</cite></figcaption><pre>
2d380 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
2d3a0 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f </span>.expect.=.<span.class="to
2d3c0 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.
2d3e0 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;<
2d400 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 /span>).testing.expect;..<span.c
2d420 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.
2d440 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 74 65 72 20 73 6c class="tok-str">&quot;pointer.sl
2d460 69 63 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 icing&quot;</span>.{.....<span.c
2d480 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 20 3d lass="tok-kw">var</span>.array.=
2d4a0 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 73 .[_]<span.class="tok-type">u8</s
2d4c0 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
2d4e0 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
2d500 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
2d520 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-
2d540 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 22 74 number">4</span>,.<span.class="t
2d560 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 73 ok-number">5</span>,.<span.class
2d580 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 63 6c ="tok-number">6</span>,.<span.cl
2d5a0 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 61 6e ass="tok-number">7</span>,.<span
2d5c0 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 3c 73 .class="tok-number">8</span>,.<s
2d5e0 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>,
2d600 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 70 .<span.class="tok-number">10</sp
2d620 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 22 3e an>.};.....<span.class="tok-kw">
2d640 76 61 72 3c 2f 73 70 61 6e 3e 20 73 74 61 72 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 var</span>.start:.<span.class="t
2d660 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 6c ok-type">usize</span>.=.<span.cl
2d680 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 3c 73 70 61 6e ass="tok-number">2</span>;.<span
2d6a0 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 72 20 74 6f 20 6d .class="tok-comment">//.var.to.m
2d6c0 61 6b 65 20 69 74 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 ake.it.runtime-known</span>.....
2d6e0 5f 20 3d 20 26 61 6d 70 3b 73 74 61 72 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b _.=.&amp;start;.<span.class="tok
2d700 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 73 75 70 70 72 65 73 73 20 27 76 61 72 20 69 73 20 6e 65 -comment">//.suppress.'var.is.ne
2d720 76 65 72 20 6d 75 74 61 74 65 64 27 20 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 ver.mutated'.error</span>.....<s
2d740 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>.
2d760 73 6c 69 63 65 20 3d 20 61 72 72 61 79 5b 73 74 61 72 74 2e 2e 3c 73 70 61 6e 20 63 6c 61 73 73 slice.=.array[start..<span.class
2d780 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 20 3c 73 70 ="tok-number">4</span>];.....<sp
2d7a0 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 65 78 70 an.class="tok-kw">try</span>.exp
2d7c0 65 63 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 3d 22 74 6f ect(slice.len.==.<span.class="to
2d7e0 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 3c 73 70 61 6e 20 k-number">2</span>);......<span.
2d800 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
2d820 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 65 72 22 3e (array[<span.class="tok-number">
2d840 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 6b 2d 6e 75 3</span>].==.<span.class="tok-nu
2d860 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 73 70 61 6e mber">4</span>);.....slice[<span
2d880 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 5d 20 2b 3d .class="tok-number">1</span>].+=
2d8a0 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
2d8c0 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 74 72 79 n>;.....<span.class="tok-kw">try
2d8e0 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 73 73 </span>.expect(array[<span.class
2d900 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 73 70 61 6e ="tok-number">3</span>].==.<span
2d920 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 7d .class="tok-number">5</span>);.}
2d940 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 </code></pre></figure><figure><f
2d960 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c igcaption.class="shell-cap">Shel
2d980 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e l</figcaption><pre><samp>$.<kbd>
2d9a0 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 6c 69 63 65 5f 62 6f 75 6e 64 73 2e 7a 69 67 3c 2f zig.test.test_slice_bounds.zig</
2d9c0 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 6c 69 63 65 5f 62 6f 75 6e 64 73 2e 74 65 73 74 2e kbd>.1/1.test_slice_bounds.test.
2d9e0 70 6f 69 6e 74 65 72 20 73 6c 69 63 69 6e 67 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 pointer.slicing....OK.All.1.test
2da00 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e s.passed..</samp></pre></figure>
2da20 0a 20 20 20 20 20 20 3c 70 3e 50 6f 69 6e 74 65 72 73 20 77 6f 72 6b 20 61 74 20 63 6f 6d 70 69 .......<p>Pointers.work.at.compi
2da40 6c 65 2d 74 69 6d 65 20 74 6f 6f 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 20 63 6f 64 65 le-time.too,.as.long.as.the.code
2da60 20 64 6f 65 73 20 6e 6f 74 20 64 65 70 65 6e 64 20 6f 6e 0a 20 20 20 20 20 20 61 6e 20 75 6e 64 .does.not.depend.on.......an.und
2da80 65 66 69 6e 65 64 20 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 efined.memory.layout:</p>.......
2daa0 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
2dac0 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 ap"><cite.class="file">test_comp
2dae0 74 69 6d 65 5f 70 6f 69 6e 74 65 72 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 time_pointers.zig</cite></figcap
2db00 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
2db20 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e -kw">const</span>.expect.=.<span
2db40 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
2db60 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;
2db80 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 std&quot;</span>).testing.expect
2dba0 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
2dbc0 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;
2dbe0 63 6f 6d 70 74 69 6d 65 20 70 6f 69 6e 74 65 72 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b comptime.pointers&quot;</span>.{
2dc00 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
2dc20 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=
2dc40 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
2dc60 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
2dc80 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>;...
2dca0 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 74 ......<span.class="tok-kw">const
2dcc0 3c 2f 73 70 61 6e 3e 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 20 20 20 20 20 20 20 20 70 74 </span>.ptr.=.&amp;x;.........pt
2dce0 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 6d 62 65 72 22 3e r.*.+=.<span.class="tok-number">
2dd00 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 1</span>;.........x.+=.<span.cla
2dd20 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 20 20 ss="tok-number">1</span>;.......
2dd40 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
2dd60 3e 20 65 78 70 65 63 74 28 70 74 72 2e 2a 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >.expect(ptr.*.==.<span.class="t
2dd80 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 ok-number">3</span>);.....}.}</c
2dda0 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ode></pre></figure><figure><figc
2ddc0 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
2dde0 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
2de00 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 70 6f 69 6e 74 65 72 73 2e 7a 69 67 .test.test_comptime_pointers.zig
2de20 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 70 6f 69 6e 74 65 72 </kbd>.1/1.test_comptime_pointer
2de40 73 2e 74 65 73 74 2e 63 6f 6d 70 74 69 6d 65 20 70 6f 69 6e 74 65 72 73 2e 2e 2e 20 4f 4b 0a 41 s.test.comptime.pointers....OK.A
2de60 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e ll.1.tests.passed..</samp></pre>
2de80 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 6f 20 63 6f 6e 76 65 72 74 20 61 6e </figure>.......<p>To.convert.an
2dea0 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 65 72 2c .integer.address.into.a.pointer,
2dec0 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c .use.<code><span.class="tok-buil
2dee0 74 69 6e 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a tin">@ptrFromInt</span></code>..
2df00 20 20 20 20 20 20 54 6f 20 63 6f 6e 76 65 72 74 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e ......To.convert.a.pointer.to.an
2df20 20 69 6e 74 65 67 65 72 2c 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d .integer,.use.<code><span.class=
2df40 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 61 6e 3e "tok-builtin">@intFromPtr</span>
2df60 3c 2f 63 6f 64 65 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 </code>:</p>.......<figure><figc
2df80 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 aption.class="zig-cap"><cite.cla
2dfa0 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 6e 74 65 67 65 72 5f 70 6f 69 6e 74 65 72 5f 63 ss="file">test_integer_pointer_c
2dfc0 6f 6e 76 65 72 73 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e onversion.zig</cite></figcaption
2dfe0 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
2e000 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 >const</span>.expect.=.<span.cla
2e020 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>(
2e040 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&
2e060 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c quot;</span>).testing.expect;..<
2e080 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>.
2e0a0 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 69 6e 74 <span.class="tok-str">&quot;@int
2e0c0 46 72 6f 6d 50 74 72 20 61 6e 64 20 40 70 74 72 46 72 6f 6d 49 6e 74 26 71 75 6f 74 3b 3c 2f 73 FromPtr.and.@ptrFromInt&quot;</s
2e0e0 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">
2e100 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 73 73 3d 22 const</span>.ptr:.*<span.class="
2e120 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
2e140 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 ss="tok-builtin">@ptrFromInt</sp
2e160 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 30 78 64 an>(<span.class="tok-number">0xd
2e180 65 61 64 62 65 65 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 eadbee0</span>);.....<span.class
2e1a0 3d 22 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 ="tok-kw">const</span>.addr.=.<s
2e1c0 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 46 72 6f 6d pan.class="tok-builtin">@intFrom
2e1e0 50 74 72 3c 2f 73 70 61 6e 3e 28 70 74 72 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 Ptr</span>(ptr);.....<span.class
2e200 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 ="tok-kw">try</span>.expect(<spa
2e220 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 4f 66 3c 2f 73 n.class="tok-builtin">@TypeOf</s
2e240 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
2e260 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ype">usize</span>);.....<span.cl
2e280 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 ass="tok-kw">try</span>.expect(a
2e2a0 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 65 72 22 3e ddr.==.<span.class="tok-number">
2e2c0 30 78 64 65 61 64 62 65 65 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 0xdeadbee0</span>);.}</code></pr
2e2e0 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
2e300 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
2e320 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
2e340 73 74 5f 69 6e 74 65 67 65 72 5f 70 6f 69 6e 74 65 72 5f 63 6f 6e 76 65 72 73 69 6f 6e 2e 7a 69 st_integer_pointer_conversion.zi
2e360 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 69 6e 74 65 67 65 72 5f 70 6f 69 6e 74 65 72 g</kbd>.1/1.test_integer_pointer
2e380 5f 63 6f 6e 76 65 72 73 69 6f 6e 2e 74 65 73 74 2e 40 69 6e 74 46 72 6f 6d 50 74 72 20 61 6e 64 _conversion.test.@intFromPtr.and
2e3a0 20 40 70 74 72 46 72 6f 6d 49 6e 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 .@ptrFromInt....OK.All.1.tests.p
2e3c0 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 assed..</samp></pre></figure>...
2e3e0 20 20 20 20 3c 70 3e 5a 69 67 20 69 73 20 61 62 6c 65 20 74 6f 20 70 72 65 73 65 72 76 65 20 6d ....<p>Zig.is.able.to.preserve.m
2e400 65 6d 6f 72 79 20 61 64 64 72 65 73 73 65 73 20 69 6e 20 63 6f 6d 70 74 69 6d 65 20 63 6f 64 65 emory.addresses.in.comptime.code
2e420 2c 20 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 20 20 74 68 65 20 70 6f 69 6e 74 65 72 20 69 ,.as.long.as.......the.pointer.i
2e440 73 20 6e 65 76 65 72 20 64 65 72 65 66 65 72 65 6e 63 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 s.never.dereferenced:</p>.......
2e460 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
2e480 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 ap"><cite.class="file">test_comp
2e4a0 74 69 6d 65 5f 70 6f 69 6e 74 65 72 5f 63 6f 6e 76 65 72 73 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 time_pointer_conversion.zig</cit
2e4c0 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
2e4e0 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 78 70 65 class="tok-kw">const</span>.expe
2e500 63 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 ct.=.<span.class="tok-builtin">@
2e520 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
2e540 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 74 65 73 74 tr">&quot;std&quot;</span>).test
2e560 69 6e 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 ing.expect;..<span.class="tok-kw
2e580 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
2e5a0 74 72 22 3e 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 40 70 74 72 46 72 6f 6d 49 6e 74 26 71 tr">&quot;comptime.@ptrFromInt&q
2e5c0 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
2e5e0 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>.{........
2e600 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
2e620 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-
2e640 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>.........
2e660 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
2e680 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>..
2e6a0 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
2e6c0 74 3c 2f 73 70 61 6e 3e 20 70 74 72 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d t</span>.ptr:.*<span.class="tok-
2e6e0 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="
2e700 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 tok-builtin">@ptrFromInt</span>(
2e720 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 64 65 61 64 62 <span.class="tok-number">0xdeadb
2e740 65 65 30 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 ee0</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 64 64 72 20 3d 20 3c 73 ="tok-kw">const</span>.addr.=.<s
2e780 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 46 72 6f 6d pan.class="tok-builtin">@intFrom
2e7a0 50 74 72 3c 2f 73 70 61 6e 3e 28 70 74 72 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 Ptr</span>(ptr);.........<span.c
2e7c0 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 65 78 70 65 63 74 28 lass="tok-kw">try</span>.expect(
2e7e0 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 4f <span.class="tok-builtin">@TypeO
2e800 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 3d 22 74 f</span>(addr).==.<span.class="t
2e820 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 20 20 20 20 ok-type">usize</span>);.........
2e840 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>.
2e860 65 78 70 65 63 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 expect(addr.==.<span.class="tok-
2e880 6e 75 6d 62 65 72 22 3e 30 78 64 65 61 64 62 65 65 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 number">0xdeadbee0</span>);.....
2e8a0 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 }.}</code></pre></figure><figure
2e8c0 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 ><figcaption.class="shell-cap">S
2e8e0 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b hell</figcaption><pre><samp>$.<k
2e900 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 70 6f 69 6e 74 65 bd>zig.test.test_comptime_pointe
2e920 72 5f 63 6f 6e 76 65 72 73 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f r_conversion.zig</kbd>.1/1.test_
2e940 63 6f 6d 70 74 69 6d 65 5f 70 6f 69 6e 74 65 72 5f 63 6f 6e 76 65 72 73 69 6f 6e 2e 74 65 73 74 comptime_pointer_conversion.test
2e960 2e 63 6f 6d 70 74 69 6d 65 20 40 70 74 72 46 72 6f 6d 49 6e 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 .comptime.@ptrFromInt....OK.All.
2e980 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 1.tests.passed..</samp></pre></f
2e9a0 69 67 75 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 igure>.......<p>See.also:</p><ul
2e9c0 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
2e9e0 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
2ea00 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 74 72 46 72 6f 6d 49 6e 74 22 3e 40 70 74 72 46 72 6f 6d i><a.href="#ptrFromInt">@ptrFrom
2ea20 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 22 23 69 6e 74 46 72 Int</a></li>.<li><a.href="#intFr
2ea40 6f 6d 50 74 72 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e omPtr">@intFromPtr</a></li>.<li>
2ea60 3c 61 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 <a.href="#C-Pointers">C.Pointers
2ea80 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 22 76 </a></li>.</ul>........<h3.id="v
2eaa0 6f 6c 61 74 69 6c 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d olatile"><a.href="nav.xhtml#toc-
2eac0 76 6f 6c 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 volatile">volatile</a>.<a.class=
2eae0 22 68 64 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 "hdr".href="#volatile">..</a></h
2eb00 33 3e 0a 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 3>........<p>Loads.and.stores.ar
2eb20 65 20 61 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 e.assumed.to.not.have.side.effec
2eb40 74 73 2e 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 ts..If.a.given.load.or.store....
2eb60 20 20 20 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 ...should.have.side.effects,.suc
2eb80 68 20 61 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 h.as.Memory.Mapped.Input/Output.
2eba0 28 4d 4d 49 4f 29 2c 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 (MMIO),.use.<code><span.class="t
2ebc0 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 2e 0a 20 ok-kw">volatile</span></code>...
2ebe0 20 20 20 20 20 49 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 2c 20 6c 6f 61 64 .....In.the.following.code,.load
2ec00 73 20 61 6e 64 20 73 74 6f 72 65 73 20 77 69 74 68 20 3c 63 6f 64 65 3e 6d 6d 69 6f 5f 70 74 72 s.and.stores.with.<code>mmio_ptr
2ec20 3c 2f 63 6f 64 65 3e 20 61 72 65 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 61 6c 6c 20 68 61 </code>.are.guaranteed.to.all.ha
2ec40 70 70 65 6e 0a 20 20 20 20 20 20 61 6e 64 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6f 72 64 65 72 ppen.......and.in.the.same.order
2ec60 20 61 73 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 .as.in.source.code:</p>.......<f
2ec80 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
2eca0 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 76 6f 6c 61 74 69 "><cite.class="file">test_volati
2ecc0 6c 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c le.zig</cite></figcaption><pre><
2ece0 63 6f 64 65 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 code><span.class="tok-kw">const<
2ed00 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /span>.expect.=.<span.class="tok
2ed20 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
2ed40 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;</
2ed60 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c span>).testing.expect;..<span.cl
2ed80 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
2eda0 6c 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 lass="tok-str">&quot;volatile&qu
2edc0 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
2ede0 6b 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 3a 20 2a 3c 73 k-kw">const</span>.mmio_ptr:.*<s
2ee00 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 61 pan.class="tok-kw">volatile</spa
2ee20 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 70 n>.<span.class="tok-type">u8</sp
2ee40 61 6e 3e 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 an>.=.<span.class="tok-builtin">
2ee60 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 @ptrFromInt</span>(<span.class="
2ee80 74 6f 6b 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 tok-number">0x12345678</span>);.
2eea0 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
2eec0 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c an>.expect(<span.class="tok-buil
2eee0 74 69 6e 22 3e 40 54 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 tin">@TypeOf</span>(mmio_ptr).==
2ef00 20 2a 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<
2ef20 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
2ef40 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 2f 66 69 67 75 72 65 </span>);.}</code></pre></figure
2ef60 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
2ef80 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
2efa0 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 76 6f 6c 61 74 69 6c amp>$.<kbd>zig.test.test_volatil
2efc0 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 76 6f 6c 61 74 69 6c 65 2e 74 65 e.zig</kbd>.1/1.test_volatile.te
2efe0 73 74 2e 76 6f 6c 61 74 69 6c 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 st.volatile....OK.All.1.tests.pa
2f000 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 ssed..</samp></pre></figure>....
2f020 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 3e 3c 73 70 ...<p>.......Note.that.<code><sp
2f040 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 61 6e an.class="tok-kw">volatile</span
2f060 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 72 65 6c 61 74 65 64 20 74 6f 20 63 6f 6e 63 75 72 72 ></code>.is.unrelated.to.concurr
2f080 65 6e 63 79 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 41 74 6f 6d 69 63 73 22 3e 41 74 6f 6d ency.and.<a.href="#Atomics">Atom
2f0a0 69 63 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 73 65 65 20 63 6f 64 65 20 74 ics</a>........If.you.see.code.t
2f0c0 68 61 74 20 69 73 20 75 73 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 hat.is.using.<code><span.class="
2f0e0 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 66 tok-kw">volatile</span></code>.f
2f100 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 4d or.something.other.than.Memory.M
2f120 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 20 apped.......Input/Output,.it.is.
2f140 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 20 probably.a.bug........</p>......
2f160 20 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 70 74 72 43 ........<p>.......<a.href="#ptrC
2f180 61 73 74 22 3e 40 70 74 72 43 61 73 74 3c 2f 61 3e 20 63 6f 6e 76 65 72 74 73 20 61 20 70 6f 69 ast">@ptrCast</a>.converts.a.poi
2f1a0 6e 74 65 72 27 73 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 20 74 6f 20 61 6e 6f 74 68 65 72 2e 20 nter's.element.type.to.another..
2f1c0 54 68 69 73 0a 20 20 20 20 20 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 70 6f 69 6e 74 65 72 This.......creates.a.new.pointer
2f1e0 20 74 68 61 74 20 63 61 6e 20 63 61 75 73 65 20 75 6e 64 65 74 65 63 74 61 62 6c 65 20 69 6c 6c .that.can.cause.undetectable.ill
2f200 65 67 61 6c 20 62 65 68 61 76 69 6f 72 0a 20 20 20 20 20 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e egal.behavior.......depending.on
2f220 20 74 68 65 20 6c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 65 73 20 74 68 61 74 20 70 61 73 73 20 .the.loads.and.stores.that.pass.
2f240 74 68 72 6f 75 67 68 20 69 74 2e 20 47 65 6e 65 72 61 6c 6c 79 2c 20 6f 74 68 65 72 0a 20 20 20 through.it..Generally,.other....
2f260 20 20 20 6b 69 6e 64 73 20 6f 66 20 74 79 70 65 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 61 72 65 ...kinds.of.type.conversions.are
2f280 20 70 72 65 66 65 72 61 62 6c 65 20 74 6f 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e .preferable.to.......<code><span
2f2a0 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 2f 73 .class="tok-builtin">@ptrCast</s
2f2c0 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 0a 20 20 20 20 20 20 3c pan></code>.if.possible........<
2f2e0 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c /p>.......<figure><figcaption.cl
2f300 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
2f320 3e 74 65 73 74 5f 70 6f 69 6e 74 65 72 5f 63 61 73 74 69 6e 67 2e 7a 69 67 3c 2f 63 69 74 65 3e >test_pointer_casting.zig</cite>
2f340 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
2f360 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.=.
2f380 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
2f3a0 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">&
2f3c0 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
2f3e0 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 70 65 63 74 ass="tok-kw">const</span>.expect
2f400 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c .=.std.testing.expect;..<span.cl
2f420 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
2f440 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 74 65 72 20 63 61 73 lass="tok-str">&quot;pointer.cas
2f460 74 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 ting&quot;</span>.{.....<span.cl
2f480 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 20 ass="tok-kw">const</span>.bytes.
2f4a0 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 70 61 6e <span.class="tok-kw">align</span
2f4c0 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 61 6c 69 >(<span.class="tok-builtin">@ali
2f4e0 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 74 79 70 gnOf</span>(<span.class="tok-typ
2f500 65 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 e">u32</span>)).=.[_]<span.class
2f520 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 61 ="tok-type">u8</span>{.<span.cla
2f540 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 20 3c 73 70 ss="tok-number">0x12</span>,.<sp
2f560 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 73 70 61 6e an.class="tok-number">0x12</span
2f580 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 30 78 31 32 >,.<span.class="tok-number">0x12
2f5a0 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
2f5c0 22 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 ">0x12</span>.};.....<span.class
2f5e0 3d 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 3a 20 ="tok-kw">const</span>.u32_ptr:.
2f600 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 2f 73 70 61 *<span.class="tok-kw">const</spa
2f620 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 33 32 3c 2f 73 n>.<span.class="tok-type">u32</s
2f640 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 75 69 6c 74 69 6e 22 pan>.=.<span.class="tok-builtin"
2f660 3e 40 70 74 72 43 61 73 74 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 62 79 74 65 73 29 3b 0a 20 20 >@ptrCast</span>(&amp;bytes);...
2f680 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
2f6a0 3e 20 65 78 70 65 63 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 >.expect(u32_ptr.*.==.<span.clas
2f6c0 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 2f 73 70 61 6e 3e s="tok-number">0x12121212</span>
2f6e0 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 74 );......<span.class="tok-comment
2f700 22 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 ">//.Even.this.example.is.contri
2f720 76 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 ved.-.there.are.better.ways.to.d
2f740 6f 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 o.the.above.than</span>.....<spa
2f760 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 6f 69 6e 74 65 72 n.class="tok-comment">//.pointer
2f780 20 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 .casting..For.example,.using.a.s
2f7a0 6c 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 lice.narrowing.cast:</span>.....
2f7c0 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
2f7e0 3e 20 75 33 32 5f 76 61 6c 75 65 20 3d 20 73 74 64 2e 6d 65 6d 2e 62 79 74 65 73 41 73 53 6c 69 >.u32_value.=.std.mem.bytesAsSli
2f800 63 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 75 33 32 3c 2f 73 ce(<span.class="tok-type">u32</s
2f820 70 61 6e 3e 2c 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 pan>,.bytes[<span.class="tok-num
2f840 62 65 72 22 3e 30 3c 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 ber">0</span>..])[<span.class="t
2f860 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 ok-number">0</span>];.....<span.
2f880 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
2f8a0 28 75 33 32 5f 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 (u32_value.==.<span.class="tok-n
2f8c0 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 3b 0a 0a 20 20 20 20 umber">0x12121212</span>);......
2f8e0 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 41 6e 64 <span.class="tok-comment">//.And
2f900 20 65 76 65 6e 20 61 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 .even.another.way,.the.most.stra
2f920 69 67 68 74 66 6f 72 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 ightforward.way.to.do.it:</span>
2f940 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
2f960 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 pan>.expect(<span.class="tok-bui
2f980 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ltin">@as</span>(<span.class="to
2f9a0 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 3d k-type">u32</span>,.<span.class=
2f9c0 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 70 61 6e 3e 28 62 79 "tok-builtin">@bitCast</span>(by
2f9e0 74 65 73 29 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 tes)).==.<span.class="tok-number
2fa00 22 3e 30 78 31 32 31 32 31 32 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 ">0x12121212</span>);.}..<span.c
2fa20 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.
2fa40 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 74 65 72 20 63 68 class="tok-str">&quot;pointer.ch
2fa60 69 6c 64 20 74 79 70 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 ild.type&quot;</span>.{.....<spa
2fa80 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 6f 69 6e 74 65 72 n.class="tok-comment">//.pointer
2faa0 20 74 79 70 65 73 20 68 61 76 65 20 61 20 60 63 68 69 6c 64 60 20 66 69 65 6c 64 20 77 68 69 63 .types.have.a.`child`.field.whic
2fac0 68 20 74 65 6c 6c 73 20 79 6f 75 20 74 68 65 20 74 79 70 65 20 74 68 65 79 20 70 6f 69 6e 74 20 h.tells.you.the.type.they.point.
2fae0 74 6f 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 to.</span>.....<span.class="tok-
2fb00 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 kw">try</span>.expect(<span.clas
2fb20 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e s="tok-builtin">@typeInfo</span>
2fb40 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 75 33 32 3c 2f 73 70 (*<span.class="tok-type">u32</sp
2fb60 61 6e 3e 29 2e 50 6f 69 6e 74 65 72 2e 63 68 69 6c 64 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 an>).Pointer.child.==.<span.clas
2fb80 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 64 s="tok-type">u32</span>);.}</cod
2fba0 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
2fbc0 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
2fbe0 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 gcaption><pre><samp>$.<kbd>zig.t
2fc00 65 73 74 20 74 65 73 74 5f 70 6f 69 6e 74 65 72 5f 63 61 73 74 69 6e 67 2e 7a 69 67 3c 2f 6b 62 est.test_pointer_casting.zig</kb
2fc20 64 3e 0a 31 2f 32 20 74 65 73 74 5f 70 6f 69 6e 74 65 72 5f 63 61 73 74 69 6e 67 2e 74 65 73 74 d>.1/2.test_pointer_casting.test
2fc40 2e 70 6f 69 6e 74 65 72 20 63 61 73 74 69 6e 67 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f .pointer.casting....OK.2/2.test_
2fc60 70 6f 69 6e 74 65 72 5f 63 61 73 74 69 6e 67 2e 74 65 73 74 2e 70 6f 69 6e 74 65 72 20 63 68 69 pointer_casting.test.pointer.chi
2fc80 6c 64 20 74 79 70 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 ld.type....OK.All.2.tests.passed
2fca0 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c ..</samp></pre></figure>.......<
2fcc0 68 33 20 69 64 3d 22 41 6c 69 67 6e 6d 65 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 h3.id="Alignment"><a.href="nav.x
2fce0 68 74 6d 6c 23 74 6f 63 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 html#toc-Alignment">Alignment</a
2fd00 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 6c 69 67 6e 6d 65 6e >.<a.class="hdr".href="#Alignmen
2fd20 74 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 20 20 t">..</a></h3>........<p>.......
2fd40 45 61 63 68 20 74 79 70 65 20 68 61 73 20 61 6e 20 3c 73 74 72 6f 6e 67 3e 61 6c 69 67 6e 6d 65 Each.type.has.an.<strong>alignme
2fd60 6e 74 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 nt</strong>.-.a.number.of.bytes.
2fd80 73 75 63 68 20 74 68 61 74 2c 0a 20 20 20 20 20 20 77 68 65 6e 20 61 20 76 61 6c 75 65 20 6f 66 such.that,.......when.a.value.of
2fda0 20 74 68 65 20 74 79 70 65 20 69 73 20 6c 6f 61 64 65 64 20 66 72 6f 6d 20 6f 72 20 73 74 6f 72 .the.type.is.loaded.from.or.stor
2fdc0 65 64 20 74 6f 20 6d 65 6d 6f 72 79 2c 0a 20 20 20 20 20 20 74 68 65 20 6d 65 6d 6f 72 79 20 61 ed.to.memory,.......the.memory.a
2fde0 64 64 72 65 73 73 20 6d 75 73 74 20 62 65 20 65 76 65 6e 6c 79 20 64 69 76 69 73 69 62 6c 65 20 ddress.must.be.evenly.divisible.
2fe00 62 79 20 74 68 69 73 20 6e 75 6d 62 65 72 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 0a 20 20 20 20 by.this.number..You.can.use.....
2fe20 20 20 3c 61 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 61 ..<a.href="#alignOf">@alignOf</a
2fe40 3e 20 74 6f 20 66 69 6e 64 20 6f 75 74 20 74 68 69 73 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 79 >.to.find.out.this.value.for.any
2fe60 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 20 .type........</p>.......<p>.....
2fe80 20 20 41 6c 69 67 6e 6d 65 6e 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 43 50 55 20 61 ..Alignment.depends.on.the.CPU.a
2fea0 72 63 68 69 74 65 63 74 75 72 65 2c 20 62 75 74 20 69 73 20 61 6c 77 61 79 73 20 61 20 70 6f 77 rchitecture,.but.is.always.a.pow
2fec0 65 72 20 6f 66 20 74 77 6f 2c 20 61 6e 64 0a 20 20 20 20 20 20 6c 65 73 73 20 74 68 61 6e 20 3c er.of.two,.and.......less.than.<
2fee0 63 6f 64 65 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 3c code><span.class="tok-number">1<
2ff00 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 6b /span>.&lt;&lt;.<span.class="tok
2ff20 2d 6e 75 6d 62 65 72 22 3e 32 39 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 -number">29</span></code>.......
2ff40 20 3c 2f 70 3e 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 61 20 .</p>.......<p>.......In.Zig,.a.
2ff60 70 6f 69 6e 74 65 72 20 74 79 70 65 20 68 61 73 20 61 6e 20 61 6c 69 67 6e 6d 65 6e 74 20 76 61 pointer.type.has.an.alignment.va
2ff80 6c 75 65 2e 20 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 lue..If.the.value.is.equal.to.th
2ffa0 65 0a 20 20 20 20 20 20 61 6c 69 67 6e 6d 65 6e 74 20 6f 66 20 74 68 65 20 75 6e 64 65 72 6c 79 e.......alignment.of.the.underly
2ffc0 69 6e 67 20 74 79 70 65 2c 20 69 74 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 20 66 72 6f 6d ing.type,.it.can.be.omitted.from
2ffe0 20 74 68 65 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 66 69 67 .the.type:.......</p>.......<fig
30000 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
30020 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 76 61 72 69 61 62 6c 65 <cite.class="file">test_variable
30040 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f _alignment.zig</cite></figcaptio
30060 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
30080 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
300a0 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
300c0 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
300e0 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 77 ot;</span>);.<span.class="tok-kw
30100 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 73 70 61 6e 20 63 ">const</span>.builtin.=.<span.c
30120 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
30140 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 62 75 >(<span.class="tok-str">&quot;bu
30160 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 6e 20 63 6c 61 73 73 iltin&quot;</span>);.<span.class
30180 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 70 65 63 74 20 3d 20 ="tok-kw">const</span>.expect.=.
301a0 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 std.testing.expect;..<span.class
301c0 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
301e0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 72 69 61 62 6c 65 20 61 6c 69 67 6e s="tok-str">&quot;variable.align
30200 6d 65 6e 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 ment&quot;</span>.{.....<span.cl
30220 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 6e ass="tok-kw">var</span>.x:.<span
30240 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>.=.<
30260 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
30280 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
302a0 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6c 69 67 6e 5f 6f 66 5f 69 33 32 20 3d 20 3c 73 70 61 6e 20 nst</span>.align_of_i32.=.<span.
302c0 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
302e0 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 54 an>(<span.class="tok-builtin">@T
30300 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 78 29 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ypeOf</span>(x));.....<span.clas
30320 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 s="tok-kw">try</span>.expect(<sp
30340 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 4f 66 3c 2f an.class="tok-builtin">@TypeOf</
30360 73 70 61 6e 3e 28 26 61 6d 70 3b 78 29 20 3d 3d 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>(&amp;x).==.*<span.class="t
30380 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.
303a0 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
303c0 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 70 (*<span.class="tok-type">i32</sp
303e0 61 6e 3e 20 3d 3d 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 69 an>.==.*<span.class="tok-kw">ali
30400 67 6e 3c 2f 73 70 61 6e 3e 28 61 6c 69 67 6e 5f 6f 66 5f 69 33 32 29 20 3c 73 70 61 6e 20 63 6c gn</span>(align_of_i32).<span.cl
30420 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>);.....
30440 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>.(
30460 62 75 69 6c 74 69 6e 2e 74 61 72 67 65 74 2e 63 70 75 2e 61 72 63 68 20 3d 3d 20 2e 78 38 36 5f builtin.target.cpu.arch.==..x86_
30480 36 34 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 64).{.........<span.class="tok-k
304a0 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 w">try</span>.expect(<span.class
304c0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 ="tok-builtin">@typeInfo</span>(
304e0 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
30500 6e 3e 29 2e 50 6f 69 6e 74 65 72 2e 61 6c 69 67 6e 6d 65 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 n>).Pointer.alignment.==.<span.c
30520 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 20 20 20 lass="tok-number">4</span>);....
30540 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 .}.}</code></pre></figure><figur
30560 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
30580 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
305a0 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 76 61 72 69 61 62 6c 65 5f 61 6c 69 67 6e kbd>zig.test.test_variable_align
305c0 6d 65 6e 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 76 61 72 69 61 62 6c 65 ment.zig</kbd>.1/1.test_variable
305e0 5f 61 6c 69 67 6e 6d 65 6e 74 2e 74 65 73 74 2e 76 61 72 69 61 62 6c 65 20 61 6c 69 67 6e 6d 65 _alignment.test.variable.alignme
30600 6e 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 nt....OK.All.1.tests.passed..</s
30620 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 49 6e 20 amp></pre></figure>.......<p>In.
30640 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 61 20 3c 63 6f 64 65 3e 2a 3c 73 70 61 6e the.same.way.that.a.<code>*<span
30660 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
30680 64 65 3e 20 63 61 6e 20 62 65 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 de>.can.be.<a.href="#Type-Coerci
306a0 6f 6e 22 3e 63 6f 65 72 63 65 64 3c 2f 61 3e 20 74 6f 20 61 0a 20 20 20 20 20 20 20 20 20 20 3c on">coerced</a>.to.a...........<
306c0 63 6f 64 65 3e 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 code>*<span.class="tok-kw">const
306e0 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 69 </span>.<span.class="tok-type">i
30700 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 20 70 6f 69 6e 74 65 72 20 77 69 74 68 32</span></code>,.a.pointer.with
30720 20 61 20 6c 61 72 67 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 63 61 6e 20 62 65 20 69 6d 70 6c 69 .a.larger.alignment.can.be.impli
30740 63 69 74 6c 79 0a 20 20 20 20 20 20 63 61 73 74 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 20 77 69 citly.......cast.to.a.pointer.wi
30760 74 68 20 61 20 73 6d 61 6c 6c 65 72 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 62 75 74 20 6e 6f 74 20 th.a.smaller.alignment,.but.not.
30780 76 69 63 65 20 76 65 72 73 61 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e vice.versa........</p>.......<p>
307a0 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 61 6c 69 67 6e 6d 65 6e 74 .......You.can.specify.alignment
307c0 20 6f 6e 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 2e 20 49 66 20 .on.variables.and.functions..If.
307e0 79 6f 75 20 64 6f 20 74 68 69 73 2c 20 74 68 65 6e 0a 20 20 20 20 20 20 70 6f 69 6e 74 65 72 73 you.do.this,.then.......pointers
30800 20 74 6f 20 74 68 65 6d 20 67 65 74 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 61 6c 69 67 6e .to.them.get.the.specified.align
30820 6d 65 6e 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c ment:.......</p>.......<figure><
30840 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
30860 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 76 61 72 69 61 62 6c 65 5f 66 75 6e 63 .class="file">test_variable_func
30880 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f _alignment.zig</cite></figcaptio
308a0 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
308c0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c ">const</span>.expect.=.<span.cl
308e0 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>
30900 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
30920 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a &quot;</span>).testing.expect;..
30940 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>.
30960 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 3e 75 38 3c 2f foo:.<span.class="tok-type">u8</
30980 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
309a0 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"
309c0 3e 34 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 75 >4</span>).=.<span.class="tok-nu
309e0 6d 62 65 72 22 3e 31 30 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 mber">100</span>;..<span.class="
30a00 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=
30a20 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 "tok-str">&quot;global.variable.
30a40 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 20 20 20 3c 73 70 alignment&quot;</span>.{.....<sp
30a60 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 65 78 70 an.class="tok-kw">try</span>.exp
30a80 65 63 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 ect(<span.class="tok-builtin">@t
30aa0 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 74 6f 6b 2d ypeInfo</span>(<span.class="tok-
30ac0 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 66 6f 6f builtin">@TypeOf</span>(&amp;foo
30ae0 29 29 2e 50 6f 69 6e 74 65 72 2e 61 6c 69 67 6e 6d 65 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c )).Pointer.alignment.==.<span.cl
30b00 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 20 20 20 20 ass="tok-number">4</span>);.....
30b20 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>.
30b40 65 78 70 65 63 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 expect(<span.class="tok-builtin"
30b60 3e 40 54 79 70 65 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 >@TypeOf</span>(&amp;foo).==.*<s
30b80 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 28 pan.class="tok-kw">align</span>(
30ba0 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
30bc0 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 38 3c 2f 73 70 >).<span.class="tok-type">u8</sp
30be0 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 63 an>);.....<span.class="tok-kw">c
30c00 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 5f 70 6f 69 6e 74 65 72 5f 74 6f 5f 61 72 72 61 79 3a onst</span>.as_pointer_to_array:
30c20 20 2a 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 70 .*<span.class="tok-kw">align</sp
30c40 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 34 3c 2f an>(<span.class="tok-number">4</
30c60 73 70 61 6e 3e 29 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 span>).[<span.class="tok-number"
30c80 3e 31 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 >1</span>]<span.class="tok-type"
30ca0 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 66 6f 6f 3b 0a 20 20 20 20 3c 73 70 61 6e >u8</span>.=.&amp;foo;.....<span
30cc0 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 5f .class="tok-kw">const</span>.as_
30ce0 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 22 3e 61 6c slice:.[]<span.class="tok-kw">al
30d00 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 6e 75 6d 62 ign</span>(<span.class="tok-numb
30d20 65 72 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 er">4</span>).<span.class="tok-t
30d40 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 20 3d 20 61 73 5f 70 6f 69 6e 74 65 72 5f 74 6f 5f 61 ype">u8</span>.=.as_pointer_to_a
30d60 72 72 61 79 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 rray;.....<span.class="tok-kw">c
30d80 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 73 5f 75 6e 61 6c 69 67 6e 65 64 5f 73 6c 69 63 65 3a 20 onst</span>.as_unaligned_slice:.
30da0 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
30dc0 6e 3e 20 3d 20 61 73 5f 73 6c 69 63 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n>.=.as_slice;.....<span.class="
30de0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 73 5f 75 6e 61 tok-kw">try</span>.expect(as_una
30e00 6c 69 67 6e 65 64 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 ligned_slice[<span.class="tok-nu
30e20 6d 62 65 72 22 3e 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 mber">0</span>].==.<span.class="
30e40 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 tok-number">100</span>);.}..<spa
30e60 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
30e80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 65 72 70 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 .class="tok-fn">derp</span>().<s
30ea0 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 28 pan.class="tok-kw">align</span>(
30ec0 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
30ee0 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 22 3e f</span>(<span.class="tok-type">
30f00 75 73 69 7a 65 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 usize</span>).*.<span.class="tok
30f20 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 61 73 73 3d 22 -number">2</span>).<span.class="
30f40 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
30f60 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
30f80 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
30fa0 6e 3e 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 n>;.}.<span.class="tok-kw">fn</s
30fc0 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 6e 6f 6f 70 31 3c pan>.<span.class="tok-fn">noop1<
30fe0 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 22 3e 61 6c /span>().<span.class="tok-kw">al
31000 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 6e 75 6d 62 ign</span>(<span.class="tok-numb
31020 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 6f 6b 2d 74 er">1</span>).<span.class="tok-t
31040 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ype">void</span>.{}.<span.class=
31060 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="
31080 74 6f 6b 2d 66 6e 22 3e 6e 6f 6f 70 34 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 tok-fn">noop4</span>().<span.cla
310a0 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
310c0 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 61 lass="tok-number">4</span>).<spa
310e0 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>.{
31100 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
31120 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;
31140 66 75 6e 63 74 69 6f 6e 20 61 6c 69 67 6e 6d 65 6e 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 function.alignment&quot;</span>.
31160 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 72 79 3c 2f {.....<span.class="tok-kw">try</
31180 73 70 61 6e 3e 20 65 78 70 65 63 74 28 64 65 72 70 28 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 span>.expect(derp().==.<span.cla
311a0 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 20 20 ss="tok-number">1234</span>);...
311c0 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
311e0 3e 20 65 78 70 65 63 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 >.expect(<span.class="tok-builti
31200 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 64 65 72 70 29 20 3d 3d 20 3c 73 70 61 6e n">@TypeOf</span>(derp).==.<span
31220 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 28 29 20 3c 73 70 .class="tok-kw">fn</span>.().<sp
31240 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>);
31260 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
31280 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 pan>.expect(<span.class="tok-bui
312a0 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 64 65 72 70 29 20 ltin">@TypeOf</span>(&amp;derp).
312c0 3d 3d 20 2a 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 ==.*<span.class="tok-kw">align</
312e0 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 3e span>(<span.class="tok-builtin">
31300 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 6b 2d @sizeOf</span>(<span.class="tok-
31320 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 2a 20 3c 73 70 61 6e 20 63 6c 61 73 type">usize</span>).*.<span.clas
31340 73 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 s="tok-number">2</span>).<span.c
31360 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
31380 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 28 29 20 3c 73 70 .class="tok-kw">fn</span>.().<sp
313a0 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>);
313c0 0a 0a 20 20 20 20 6e 6f 6f 70 31 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ......noop1();.....<span.class="
313e0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 tok-kw">try</span>.expect(<span.
31400 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 4f 66 3c 2f 73 70 61 class="tok-builtin">@TypeOf</spa
31420 6e 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 n>(noop1).==.<span.class="tok-kw
31440 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ">fn</span>.().<span.class="tok-
31460 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c type">void</span>);.....<span.cl
31480 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c ass="tok-kw">try</span>.expect(<
314a0 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 4f 66 span.class="tok-builtin">@TypeOf
314c0 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 6e 6f 6f 70 31 29 20 3d 3d 20 2a 3c 73 70 61 6e 20 63 6c </span>(&amp;noop1).==.*<span.cl
314e0 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.
31500 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 70 class="tok-number">1</span>).<sp
31520 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>.<
31540 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 28 29 span.class="tok-kw">fn</span>.()
31560 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 70 .<span.class="tok-type">void</sp
31580 61 6e 3e 29 3b 0a 0a 20 20 20 20 6e 6f 6f 70 34 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c an>);......noop4();.....<span.cl
315a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c ass="tok-kw">try</span>.expect(<
315c0 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 4f 66 span.class="tok-builtin">@TypeOf
315e0 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 3d 22 74 </span>(noop4).==.<span.class="t
31600 6f 6b 2d 6b 77 22 3e 66 6e 3c 2f 73 70 61 6e 3e 20 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-kw">fn</span>.().<span.class=
31620 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 20 20 20 20 3c 73 70 "tok-type">void</span>);.....<sp
31640 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 65 78 70 an.class="tok-kw">try</span>.exp
31660 65 63 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 54 ect(<span.class="tok-builtin">@T
31680 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 6e 6f 6f 70 34 29 20 3d 3d 20 2a 3c 73 70 ypeOf</span>(&amp;noop4).==.*<sp
316a0 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 28 3c an.class="tok-kw">align</span>(<
316c0 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>
316e0 29 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
31700 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
31720 6e 3e 20 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 n>.().<span.class="tok-type">voi
31740 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 2f 66 69 67 75 72 d</span>);.}</code></pre></figur
31760 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
31780 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
317a0 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 76 61 72 69 61 62 samp>$.<kbd>zig.test.test_variab
317c0 6c 65 5f 66 75 6e 63 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 le_func_alignment.zig</kbd>.1/2.
317e0 74 65 73 74 5f 76 61 72 69 61 62 6c 65 5f 66 75 6e 63 5f 61 6c 69 67 6e 6d 65 6e 74 2e 74 65 73 test_variable_func_alignment.tes
31800 74 2e 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 2e 2e 2e 20 4f t.global.variable.alignment....O
31820 4b 0a 32 2f 32 20 74 65 73 74 5f 76 61 72 69 61 62 6c 65 5f 66 75 6e 63 5f 61 6c 69 67 6e 6d 65 K.2/2.test_variable_func_alignme
31840 6e 74 2e 74 65 73 74 2e 66 75 6e 63 74 69 6f 6e 20 61 6c 69 67 6e 6d 65 6e 74 2e 2e 2e 20 4f 4b nt.test.function.alignment....OK
31860 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 .All.2.tests.passed..</samp></pr
31880 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 79 e></figure>.......<p>.......If.y
318a0 6f 75 20 68 61 76 65 20 61 20 70 6f 69 6e 74 65 72 20 6f 72 20 61 20 73 6c 69 63 65 20 74 68 61 ou.have.a.pointer.or.a.slice.tha
318c0 74 20 68 61 73 20 61 20 73 6d 61 6c 6c 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 62 75 74 20 79 6f 75 t.has.a.small.alignment,.but.you
318e0 20 6b 6e 6f 77 20 74 68 61 74 20 69 74 20 61 63 74 75 61 6c 6c 79 0a 20 20 20 20 20 20 68 61 73 .know.that.it.actually.......has
31900 20 61 20 62 69 67 67 65 72 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 75 73 65 20 3c 61 20 68 72 65 66 .a.bigger.alignment,.use.<a.href
31920 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 20 74 6f 20 ="#alignCast">@alignCast</a>.to.
31940 63 68 61 6e 67 65 20 74 68 65 0a 20 20 20 20 20 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 change.the.......pointer.into.a.
31960 6d 6f 72 65 20 61 6c 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 2e 20 54 68 69 73 20 69 73 20 61 20 more.aligned.pointer..This.is.a.
31980 6e 6f 2d 6f 70 20 61 74 20 72 75 6e 74 69 6d 65 2c 20 62 75 74 20 69 6e 73 65 72 74 73 20 61 0a no-op.at.runtime,.but.inserts.a.
319a0 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e 74 65 ......<a.href="#Incorrect-Pointe
319c0 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e 73 61 66 65 74 79 20 63 68 65 63 6b 3c 2f 61 3e 3a 0a 20 r-Alignment">safety.check</a>:..
319e0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 .....</p>.......<figure><figcapt
31a00 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d ion.class="zig-cap"><cite.class=
31a20 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c "file">test_incorrect_pointer_al
31a40 69 67 6e 6d 65 6e 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ignment.zig</cite></figcaption><
31a60 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pre><code><span.class="tok-kw">c
31a80 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
31aa0 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
31ac0 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;
31ae0 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">
31b00 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
31b20 22 3e 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 61 66 65 74 79 ">&quot;pointer.alignment.safety
31b40 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=
31b60 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 3c 73 70 61 6e 20 "tok-kw">var</span>.array.<span.
31b80 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 61 class="tok-kw">align</span>(<spa
31ba0 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 3d n.class="tok-number">4</span>).=
31bc0 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 33 32 3c 2f .[_]<span.class="tok-type">u32</
31be0 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 3e span>{.<span.class="tok-number">
31c00 30 78 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 0x11111111</span>,.<span.class="
31c20 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 6e 3e 20 7d 3b tok-number">0x11111111</span>.};
31c40 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<
31c60 2f 73 70 61 6e 3e 20 62 79 74 65 73 20 3d 20 73 74 64 2e 6d 65 6d 2e 73 6c 69 63 65 41 73 42 79 /span>.bytes.=.std.mem.sliceAsBy
31c80 74 65 73 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 65 tes(array[<span.class="tok-numbe
31ca0 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 r">0</span>..]);.....<span.class
31cc0 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 74 65 73 74 69 6e 67 ="tok-kw">try</span>.std.testing
31ce0 2e 65 78 70 65 63 74 28 66 6f 6f 28 62 79 74 65 73 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 .expect(foo(bytes).==.<span.clas
31d00 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 6e 3e s="tok-number">0x11111111</span>
31d20 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
31d40 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 73 70 an>.<span.class="tok-fn">foo</sp
31d60 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 74 79 an>(bytes:.[]<span.class="tok-ty
31d80 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-
31da0 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 6c 61 type">u32</span>.{.....<span.cla
31dc0 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 34 20 ss="tok-kw">const</span>.slice4.
31de0 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 72 22 =.bytes[<span.class="tok-number"
31e00 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 6d 62 >1</span>..<span.class="tok-numb
31e20 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 3d 22 er">5</span>];.....<span.class="
31e40 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 20 3d tok-kw">const</span>.int_slice.=
31e60 20 73 74 64 2e 6d 65 6d 2e 62 79 74 65 73 41 73 53 6c 69 63 65 28 3c 73 70 61 6e 20 63 6c 61 73 .std.mem.bytesAsSlice(<span.clas
31e80 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 3c 73 70 61 6e 20 63 s="tok-type">u32</span>,.<span.c
31ea0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 5b 5d lass="tok-builtin">@as</span>([]
31ec0 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 70 61 6e <span.class="tok-kw">align</span
31ee0 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
31f00 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 75 38 3c 2f an>).<span.class="tok-type">u8</
31f20 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 74 69 6e 22 span>,.<span.class="tok-builtin"
31f40 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 73 70 61 6e 3e 28 73 6c 69 63 65 34 29 29 29 3b 0a 20 20 >@alignCast</span>(slice4)));...
31f60 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
31f80 70 61 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 pan>.int_slice[<span.class="tok-
31fa0 6e 75 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 number">0</span>];.}</code></pre
31fc0 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c ></figure><figure><figcaption.cl
31fe0 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f ass="shell-cap">Shell</figcaptio
32000 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 n><pre><samp>$.<kbd>zig.test.tes
32020 74 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 t_incorrect_pointer_alignment.zi
32040 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 g</kbd>.1/1.test_incorrect_point
32060 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 74 65 73 74 2e 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e 6d er_alignment.test.pointer.alignm
32080 65 6e 74 20 73 61 66 65 74 79 2e 2e 2e 20 74 68 72 65 61 64 20 31 33 35 37 32 31 20 70 61 6e 69 ent.safety....thread.135721.pani
320a0 63 3a 20 69 6e 63 6f 72 72 65 63 74 20 61 6c 69 67 6e 6d 65 6e 74 0a 3c 73 70 61 6e 20 63 6c 61 c:.incorrect.alignment.<span.cla
320c0 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 ss="sgr-1m">/home/andy/src/zig-0
320e0 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 69 6e 63 6f 72 72 65 63 74 5f .12.x/docgen_tmp/test_incorrect_
32100 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 3a 31 30 3a 36 38 3c 2f 73 70 61 pointer_alignment.zig:10:68</spa
32120 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 33 n>:.<span.class="sgr-2m">0x10393
32140 31 61 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 63 6f 6e 73 1a.in.foo.(test)</span>.....cons
32160 74 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 73 74 64 2e 6d 65 6d 2e 62 79 74 65 73 41 73 53 6c 69 t.int_slice.=.std.mem.bytesAsSli
32180 63 65 28 75 33 32 2c 20 40 61 73 28 5b 5d 61 6c 69 67 6e 28 34 29 20 75 38 2c 20 40 61 6c 69 67 ce(u32,.@as([]align(4).u8,.@alig
321a0 6e 43 61 73 74 28 73 6c 69 63 65 34 29 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nCast(slice4)));................
321c0 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 ................................
321e0 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=
32200 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "sgr-32m">^</span>.<span.class="
32220 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e sgr-1m">/home/andy/src/zig-0.12.
32240 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e x/docgen_tmp/test_incorrect_poin
32260 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 3a 36 3a 33 31 3c 2f 73 70 61 6e 3e 3a 20 3c ter_alignment.zig:6:31</span>:.<
32280 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 31 62 37 20 69 6e span.class="sgr-2m">0x10391b7.in
322a0 20 74 65 73 74 2e 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 73 61 66 65 74 79 20 28 .test.pointer.alignment.safety.(
322c0 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 74 72 79 20 73 74 64 2e 74 65 73 74 69 6e 67 test)</span>.....try.std.testing
322e0 2e 65 78 70 65 63 74 28 66 6f 6f 28 62 79 74 65 73 29 20 3d 3d 20 30 78 31 31 31 31 31 31 31 31 .expect(foo(bytes).==.0x11111111
32300 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 20 20 );..............................
32320 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a .<span.class="sgr-32m">^</span>.
32340 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f <span.class="sgr-1m">/home/andy/
32360 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 src/zig-0.12.x/lib/compiler/test
32380 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 35 38 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e _runner.zig:158:25</span>:.<span
323a0 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 34 31 63 64 20 69 6e 20 6d 61 69 .class="sgr-2m">0x10441cd.in.mai
323c0 6e 54 65 72 6d 69 6e 61 6c 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 nTerminal.(test)</span>.........
323e0 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 20 if.(test_fn.func()).|_|.{.......
32400 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 73 ..................<span.class="s
32420 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 gr-32m">^</span>.<span.class="sg
32440 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f r-1m">/home/andy/src/zig-0.12.x/
32460 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a lib/compiler/test_runner.zig:35:
32480 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 28</span>:.<span.class="sgr-2m">
324a0 30 78 31 30 33 61 34 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 0x103a45b.in.main.(test)</span>.
324c0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 ........return.mainTerminal();..
324e0 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 20 ..........................<span.
32500 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 class="sgr-32m">^</span>.<span.c
32520 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 lass="sgr-1m">/home/andy/src/zig
32540 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 -0.12.x/lib/std/start.zig:501:22
32560 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 </span>:.<span.class="sgr-2m">0x
32580 31 30 33 39 37 65 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 10397e9.in.posixCallMainAndExit.
325a0 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
325c0 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
325e0 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e n.class="sgr-32m">^</span>.<span
32600 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a .class="sgr-1m">/home/andy/src/z
32620 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a ig-0.12.x/lib/std/start.zig:253:
32640 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 5</span>:.<span.class="sgr-2m">0
32660 78 31 30 33 39 33 35 31 20 69 6e 20 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e x1039351.in._start.(test)</span>
32680 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 .....asm.volatile.(switch.(nativ
326a0 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 e_arch).{.....<span.class="sgr-3
326c0 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
326e0 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 ">???:?:?</span>:.<span.class="s
32700 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 65 gr-2m">0x0.in.???.(???)</span>.e
32720 72 72 6f 72 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 rror:.the.following.test.command
32740 20 63 72 61 73 68 65 64 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 .crashed:./home/andy/src/zig-0.1
32760 32 2e 78 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 39 66 61 38 30 38 34 37 62 35 32 34 30 33 39 65 2.x/zig-cache/o/9fa80847b524039e
32780 65 32 65 64 36 64 32 35 61 38 31 30 61 37 39 63 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 e2ed6d25a810a79c/test.</samp></p
327a0 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 re></figure>...............<h3.i
327c0 64 3d 22 61 6c 6c 6f 77 7a 65 72 6f 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c d="allowzero"><a.href="nav.xhtml
327e0 23 74 6f 63 2d 61 6c 6c 6f 77 7a 65 72 6f 22 3e 61 6c 6c 6f 77 7a 65 72 6f 3c 2f 61 3e 20 3c 61 #toc-allowzero">allowzero</a>.<a
32800 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 61 6c 6c 6f 77 7a 65 72 6f 22 3e c2 .class="hdr".href="#allowzero">.
32820 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 69 73 .</a></h3>........<p>.......This
32840 20 70 6f 69 6e 74 65 72 20 61 74 74 72 69 62 75 74 65 20 61 6c 6c 6f 77 73 20 61 20 70 6f 69 6e .pointer.attribute.allows.a.poin
32860 74 65 72 20 74 6f 20 68 61 76 65 20 61 64 64 72 65 73 73 20 7a 65 72 6f 2e 20 54 68 69 73 20 69 ter.to.have.address.zero..This.i
32880 73 20 6f 6e 6c 79 20 65 76 65 72 20 6e 65 65 64 65 64 20 6f 6e 20 74 68 65 0a 20 20 20 20 20 20 s.only.ever.needed.on.the.......
328a0 66 72 65 65 73 74 61 6e 64 69 6e 67 20 4f 53 20 74 61 72 67 65 74 2c 20 77 68 65 72 65 20 74 68 freestanding.OS.target,.where.th
328c0 65 20 61 64 64 72 65 73 73 20 7a 65 72 6f 20 69 73 20 6d 61 70 70 61 62 6c 65 2e 20 49 66 20 79 e.address.zero.is.mappable..If.y
328e0 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 70 72 65 73 65 6e 74 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 ou.want.to.represent.null.pointe
32900 72 73 2c 20 75 73 65 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c rs,.use.......<a.href="#Optional
32920 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 3c 2f 61 3e -Pointers">Optional.Pointers</a>
32940 20 69 6e 73 74 65 61 64 2e 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 .instead..<a.href="#Optional-Poi
32960 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 77 69 74 nters">Optional.Pointers</a>.wit
32980 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c 6c h.<code><span.class="tok-kw">all
329a0 6f 77 7a 65 72 6f 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 61 72 65 20 6e owzero</span></code>.......are.n
329c0 6f 74 20 74 68 65 20 73 61 6d 65 20 73 69 7a 65 20 61 73 20 70 6f 69 6e 74 65 72 73 2e 20 49 6e ot.the.same.size.as.pointers..In
329e0 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 69 6e 74 .this.code.example,.if.the.point
32a00 65 72 0a 20 20 20 20 20 20 64 69 64 20 6e 6f 74 20 68 61 76 65 20 74 68 65 20 3c 63 6f 64 65 3e er.......did.not.have.the.<code>
32a20 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 77 7a 65 72 6f 3c 2f <span.class="tok-kw">allowzero</
32a40 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 74 74 72 69 62 75 74 65 2c 20 74 68 69 73 20 77 6f 75 span></code>.attribute,.this.wou
32a60 6c 64 20 62 65 20 61 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 2d ld.be.a.......<a.href="#Pointer-
32a80 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 20 Cast-Invalid-Null">Pointer.Cast.
32aa0 49 6e 76 61 6c 69 64 20 4e 75 6c 6c 3c 2f 61 3e 20 70 61 6e 69 63 3a 0a 20 20 20 20 20 20 3c 2f Invalid.Null</a>.panic:.......</
32ac0 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
32ae0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
32b00 74 65 73 74 5f 61 6c 6c 6f 77 7a 65 72 6f 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 test_allowzero.zig</cite></figca
32b20 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
32b40 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
32b60 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
32b80 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
32ba0 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
32bc0 6b 2d 6b 77 22 3e 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 k-kw">const</span>.expect.=.std.
32be0 74 65 73 74 69 6e 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 testing.expect;..<span.class="to
32c00 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
32c20 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 6c 6c 6f 77 7a 65 72 6f 26 71 75 6f 74 3b 3c 2f 73 ok-str">&quot;allowzero&quot;</s
32c40 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">
32c60 76 61 72 3c 2f 73 70 61 6e 3e 20 7a 65 72 6f 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f var</span>.zero:.<span.class="to
32c80 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 6c 61 k-type">usize</span>.=.<span.cla
32ca0 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 20 3c 73 70 61 6e 20 ss="tok-number">0</span>;.<span.
32cc0 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 72 20 74 6f 20 6d 61 class="tok-comment">//.var.to.ma
32ce0 6b 65 20 74 6f 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f ke.to.runtime-known</span>....._
32d00 20 3d 20 26 61 6d 70 3b 7a 65 72 6f 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 .=.&amp;zero;.<span.class="tok-c
32d20 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 73 75 70 70 72 65 73 73 20 27 76 61 72 20 69 73 20 6e 65 76 65 omment">//.suppress.'var.is.neve
32d40 72 20 6d 75 74 61 74 65 64 27 20 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 r.mutated'.error</span>.....<spa
32d60 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 74 n.class="tok-kw">const</span>.pt
32d80 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 61 6c 6c 6f 77 7a 65 r:.*<span.class="tok-kw">allowze
32da0 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 70 65 22 ro</span>.<span.class="tok-type"
32dc0 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 62 >i32</span>.=.<span.class="tok-b
32de0 75 69 6c 74 69 6e 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 7a 65 72 6f 29 uiltin">@ptrFromInt</span>(zero)
32e00 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
32e20 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 span>.expect(<span.class="tok-bu
32e40 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 61 6e 3e 28 70 74 72 29 20 3d iltin">@intFromPtr</span>(ptr).=
32e60 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
32e80 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 an>);.}</code></pre></figure><fi
32ea0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
32ec0 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
32ee0 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 61 6c 6c 6f 77 7a 65 72 6f 2e 7a $.<kbd>zig.test.test_allowzero.z
32f00 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 61 6c 6c 6f 77 7a 65 72 6f 2e 74 65 73 74 ig</kbd>.1/1.test_allowzero.test
32f20 2e 61 6c 6c 6f 77 7a 65 72 6f 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 .allowzero....OK.All.1.tests.pas
32f40 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 sed..</samp></pre></figure>.....
32f60 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 ..........<h3.id="Sentinel-Termi
32f80 6e 61 74 65 64 2d 50 6f 69 6e 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 nated-Pointers"><a.href="nav.xht
32fa0 6d 6c 23 74 6f 63 2d 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 50 6f 69 6e 74 ml#toc-Sentinel-Terminated-Point
32fc0 65 72 73 22 3e 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 50 6f 69 6e 74 65 72 ers">Sentinel-Terminated.Pointer
32fe0 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 65 6e 74 s</a>.<a.class="hdr".href="#Sent
33000 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 50 6f 69 6e 74 65 72 73 22 3e c2 a7 3c 2f 61 3e inel-Terminated-Pointers">..</a>
33020 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 73 79 6e 74 61 </h3>........<p>.......The.synta
33040 78 20 3c 63 6f 64 65 3e 5b 2a 3a 78 5d 54 3c 2f 63 6f 64 65 3e 20 64 65 73 63 72 69 62 65 73 20 x.<code>[*:x]T</code>.describes.
33060 61 20 70 6f 69 6e 74 65 72 20 74 68 61 74 0a 20 20 20 20 20 20 68 61 73 20 61 20 6c 65 6e 67 74 a.pointer.that.......has.a.lengt
33080 68 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 61 20 73 65 6e 74 69 6e 65 6c 20 76 61 6c 75 65 h.determined.by.a.sentinel.value
330a0 2e 20 54 68 69 73 20 70 72 6f 76 69 64 65 73 20 70 72 6f 74 65 63 74 69 6f 6e 0a 20 20 20 20 20 ..This.provides.protection......
330c0 20 61 67 61 69 6e 73 74 20 62 75 66 66 65 72 20 6f 76 65 72 66 6c 6f 77 20 61 6e 64 20 6f 76 65 .against.buffer.overflow.and.ove
330e0 72 72 65 61 64 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 rreads........</p>.......<figure
33100 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 ><figcaption.class="zig-cap"><ci
33120 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 65 6e 74 69 6e 65 6c 2d 74 65 72 6d 69 6e 61 te.class="file">sentinel-termina
33140 74 65 64 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 ted_pointer.zig</cite></figcapti
33160 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b on><pre><code><span.class="tok-k
33180 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
331a0 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>(<
331c0 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
331e0 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-
33200 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 69 73 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 comment">//.This.is.also.availab
33220 6c 65 20 61 73 20 60 73 74 64 2e 63 2e 70 72 69 6e 74 66 60 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 le.as.`std.c.printf`.</span>.<sp
33240 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
33260 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 20 an.class="tok-kw">extern</span>.
33280 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
332a0 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 3e ot;</span>.<span.class="tok-kw">
332c0 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 70 fn</span>.<span.class="tok-fn">p
332e0 72 69 6e 74 66 3c 2f 73 70 61 6e 3e 28 66 6f 72 6d 61 74 3a 20 5b 2a 3a 3c 73 70 61 6e 20 63 6c rintf</span>(format:.[*:<span.cl
33300 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 3c 73 70 61 6e 20 ass="tok-number">0</span>]<span.
33320 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 61 class="tok-kw">const</span>.<spa
33340 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 2e 2e n.class="tok-type">u8</span>,...
33360 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 3e 63 5f 69 6e 74 3c .).<span.class="tok-type">c_int<
33380 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 70 75 /span>;..<span.class="tok-kw">pu
333a0 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
333c0 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
333e0 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
33400 22 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 ">anyerror</span>!<span.class="t
33420 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 3d 20 70 ok-type">void</span>.{....._.=.p
33440 72 69 6e 74 66 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 rintf(<span.class="tok-str">&quo
33460 74 3b 48 65 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 t;Hello,.world!\n&quot;</span>);
33480 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 4f 4b .<span.class="tok-comment">//.OK
334a0 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
334c0 22 3e 63 6f 6e 73 74 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 ">const</span>.msg.=.<span.class
334e0 3d 22 74 6f 6b 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 ="tok-str">&quot;Hello,.world!\n
33500 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 73 3d 22 &quot;</span>;.....<span.class="
33520 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 6f 6e 5f 6e 75 6c 6c 5f 74 65 tok-kw">const</span>.non_null_te
33540 72 6d 69 6e 61 74 65 64 5f 6d 73 67 3a 20 5b 6d 73 67 2e 6c 65 6e 5d 3c 73 70 61 6e 20 63 6c 61 rminated_msg:.[msg.len]<span.cla
33560 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 6d 73 67 2e 2a 3b ss="tok-type">u8</span>.=.msg.*;
33580 0a 20 20 20 20 5f 20 3d 20 70 72 69 6e 74 66 28 26 61 6d 70 3b 6e 6f 6e 5f 6e 75 6c 6c 5f 74 65 ....._.=.printf(&amp;non_null_te
335a0 72 6d 69 6e 61 74 65 64 5f 6d 73 67 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 rminated_msg);.}</code></pre></f
335c0 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d igure><figure><figcaption.class=
335e0 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 "shell-cap">Shell</figcaption><p
33600 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 73 65 re><samp>$.<kbd>zig.build-exe.se
33620 6e 74 69 6e 65 6c 2d 74 65 72 6d 69 6e 61 74 65 64 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 20 2d 6c ntinel-terminated_pointer.zig.-l
33640 63 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 73 65 6e c</kbd>.<span.class="sgr-1m">sen
33660 74 69 6e 65 6c 2d 74 65 72 6d 69 6e 61 74 65 64 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3a 31 31 3a tinel-terminated_pointer.zig:11:
33680 31 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 16:.</span><span.class="sgr-31m"
336a0 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d >error:.</span><span.class="sgr-
336c0 31 6d 22 3e 65 78 70 65 63 74 65 64 20 74 79 70 65 20 27 5b 2a 3a 30 5d 63 6f 6e 73 74 20 75 38 1m">expected.type.'[*:0]const.u8
336e0 27 2c 20 66 6f 75 6e 64 20 27 2a 63 6f 6e 73 74 20 5b 31 34 5d 75 38 27 0a 3c 2f 73 70 61 6e 3e ',.found.'*const.[14]u8'.</span>
33700 20 20 20 20 5f 20 3d 20 70 72 69 6e 74 66 28 26 61 6d 70 3b 6e 6f 6e 5f 6e 75 6c 6c 5f 74 65 72 ...._.=.printf(&amp;non_null_ter
33720 6d 69 6e 61 74 65 64 5f 6d 73 67 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 minated_msg);................<sp
33740 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e an.class="sgr-32m">^~~~~~~~~~~~~
33760 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ~~~~~~~~~~~.</span><span.class="
33780 73 67 72 2d 31 6d 22 3e 73 65 6e 74 69 6e 65 6c 2d 74 65 72 6d 69 6e 61 74 65 64 5f 70 6f 69 6e sgr-1m">sentinel-terminated_poin
337a0 74 65 72 2e 7a 69 67 3a 31 31 3a 31 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 ter.zig:11:16:.</span><span.clas
337c0 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 s="sgr-36m">note:.</span><span.c
337e0 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 65 73 74 69 6e 61 74 69 6f 6e 20 70 6f 69 6e 74 65 lass="sgr-1m">destination.pointe
33800 72 20 72 65 71 75 69 72 65 73 20 27 30 27 20 73 65 6e 74 69 6e 65 6c 0a 3c 2f 73 70 61 6e 3e 3c r.requires.'0'.sentinel.</span><
33820 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 73 65 6e 74 69 6e 65 6c 2d 74 65 72 span.class="sgr-1m">sentinel-ter
33840 6d 69 6e 61 74 65 64 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3a 34 3a 33 35 3a 20 3c 2f 73 70 61 6e minated_pointer.zig:4:35:.</span
33860 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 ><span.class="sgr-36m">note:.</s
33880 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 70 61 72 61 6d 65 74 pan><span.class="sgr-1m">paramet
338a0 65 72 20 74 79 70 65 20 64 65 63 6c 61 72 65 64 20 68 65 72 65 0a 3c 2f 73 70 61 6e 3e 70 75 62 er.type.declared.here.</span>pub
338c0 20 65 78 74 65 72 6e 20 26 71 75 6f 74 3b 63 26 71 75 6f 74 3b 20 66 6e 20 70 72 69 6e 74 66 28 .extern.&quot;c&quot;.fn.printf(
338e0 66 6f 72 6d 61 74 3a 20 5b 2a 3a 30 5d 63 6f 6e 73 74 20 75 38 2c 20 2e 2e 2e 29 20 63 5f 69 6e format:.[*:0]const.u8,....).c_in
33900 74 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 20 t;..............................
33920 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 5e 7e 7e 7e 7e ....<span.class="sgr-32m">~^~~~~
33940 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d ~~~~~~~.</span><span.class="sgr-
33960 32 6d 22 3e 72 65 66 65 72 65 6e 63 65 64 20 62 79 3a 0a 20 20 20 20 63 61 6c 6c 4d 61 69 6e 3a 2m">referenced.by:.....callMain:
33980 20 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 ./home/andy/src/zig-0.12.x/lib/s
339a0 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 31 31 3a 33 32 0a 20 20 20 20 63 61 6c 6c 4d 61 69 6e td/start.zig:511:32.....callMain
339c0 57 69 74 68 41 72 67 73 3a 20 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 WithArgs:./home/andy/src/zig-0.1
339e0 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 34 36 39 3a 31 32 0a 20 20 20 2.x/lib/std/start.zig:469:12....
33a00 20 72 65 6d 61 69 6e 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 74 72 61 63 65 73 20 68 69 64 64 .remaining.reference.traces.hidd
33a20 65 6e 3b 20 75 73 65 20 27 2d 66 72 65 66 65 72 65 6e 63 65 2d 74 72 61 63 65 27 20 74 6f 20 73 en;.use.'-freference-trace'.to.s
33a40 65 65 20 61 6c 6c 20 72 65 66 65 72 65 6e 63 65 20 74 72 61 63 65 73 0a 3c 2f 73 70 61 6e 3e 0a ee.all.reference.traces.</span>.
33a60 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e </samp></pre></figure>.......<p>
33a80 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="#
33aa0 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 53 6c 69 63 65 73 22 3e 53 65 6e 74 Sentinel-Terminated-Slices">Sent
33ac0 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a inel-Terminated.Slices</a></li>.
33ae0 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 <li><a.href="#Sentinel-Terminate
33b00 64 2d 41 72 72 61 79 73 22 3e 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 41 72 d-Arrays">Sentinel-Terminated.Ar
33b20 72 61 79 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 rays</a></li>.</ul>.............
33b40 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 53 6c 69 63 65 73 22 3e 3c 61 20 68 72 65 ..........<h2.id="Slices"><a.hre
33b60 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c f="nav.xhtml#toc-Slices">Slices<
33b80 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
33ba0 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 20 41 ">..</a></h2>........<p>.......A
33bc0 20 73 6c 69 63 65 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20 61 6e 64 20 61 20 6c 65 6e 67 74 68 .slice.is.a.pointer.and.a.length
33be0 2e 20 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 61 6e 20 61 72 72 61 ..The.difference.between.an.arra
33c00 79 20 61 6e 64 0a 20 20 20 20 20 20 61 20 73 6c 69 63 65 20 69 73 20 74 68 61 74 20 74 68 65 20 y.and.......a.slice.is.that.the.
33c20 61 72 72 61 79 27 73 20 6c 65 6e 67 74 68 20 69 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 79 array's.length.is.part.of.the.ty
33c40 70 65 20 61 6e 64 20 6b 6e 6f 77 6e 20 61 74 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74 69 pe.and.known.at.......compile-ti
33c60 6d 65 2c 20 77 68 65 72 65 61 73 20 74 68 65 20 73 6c 69 63 65 27 73 20 6c 65 6e 67 74 68 20 69 me,.whereas.the.slice's.length.i
33c80 73 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 74 69 6d 65 2e 0a 20 20 20 20 20 20 42 6f 74 68 20 63 s.known.at.runtime........Both.c
33ca0 61 6e 20 62 65 20 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 an.be.accessed.with.the.`len`.fi
33cc0 65 6c 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 eld........</p>.......<figure><f
33ce0 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 igcaption.class="zig-cap"><cite.
33d00 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 62 61 73 69 63 5f 73 6c 69 63 65 73 2e 7a class="file">test_basic_slices.z
33d20 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 ig</cite></figcaption><pre><code
33d40 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
33d60 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 n>.expect.=.<span.class="tok-bui
33d80 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
33da0 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
33dc0 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d >).testing.expect;..<span.class=
33de0 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
33e00 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 65 73 26 71 75 ="tok-str">&quot;basic.slices&qu
33e20 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
33e40 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 73 70 61 k-kw">var</span>.array.=.[_]<spa
33e60 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 7b 20 3c n.class="tok-type">i32</span>{.<
33e80 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>
33ea0 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 73 70 ,.<span.class="tok-number">2</sp
33ec0 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 3c an>,.<span.class="tok-number">3<
33ee0 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"
33f00 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 73 3d 22 74 6f >4</span>.};.....<span.class="to
33f20 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6b 6e 6f 77 6e 5f 61 74 5f 72 75 6e 74 69 6d k-kw">var</span>.known_at_runtim
33f40 65 5f 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 e_zero:.<span.class="tok-type">u
33f60 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
33f80 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 6b 6e umber">0</span>;....._.=.&amp;kn
33fa0 6f 77 6e 5f 61 74 5f 72 75 6e 74 69 6d 65 5f 7a 65 72 6f 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 own_at_runtime_zero;.....<span.c
33fc0 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
33fe0 20 3d 20 61 72 72 61 79 5b 6b 6e 6f 77 6e 5f 61 74 5f 72 75 6e 74 69 6d 65 5f 7a 65 72 6f 2e 2e .=.array[known_at_runtime_zero..
34000 61 72 72 61 79 2e 6c 65 6e 5d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b array.len];.....<span.class="tok
34020 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 -kw">try</span>.expect(<span.cla
34040 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 ss="tok-builtin">@TypeOf</span>(
34060 73 6c 69 63 65 29 20 3d 3d 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 slice).==.[]<span.class="tok-typ
34080 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 63 6c 61 73 73 3d e">i32</span>);.....<span.class=
340a0 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 26 61 6d 70 3b "tok-kw">try</span>.expect(&amp;
340c0 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 30 slice[<span.class="tok-number">0
340e0 3c 2f 73 70 61 6e 3e 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 </span>].==.&amp;array[<span.cla
34100 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 3b 0a 20 20 20 20 ss="tok-number">0</span>]);.....
34120 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>.
34140 65 78 70 65 63 74 28 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 expect(slice.len.==.array.len);.
34160 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">/
34180 2f 20 49 66 20 79 6f 75 20 73 6c 69 63 65 20 77 69 74 68 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f /.If.you.slice.with.comptime-kno
341a0 77 6e 20 73 74 61 72 74 20 61 6e 64 20 65 6e 64 20 70 6f 73 69 74 69 6f 6e 73 2c 20 74 68 65 20 wn.start.and.end.positions,.the.
341c0 72 65 73 75 6c 74 20 69 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 result.is</span>.....<span.class
341e0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 ="tok-comment">//.a.pointer.to.a
34200 6e 20 61 72 72 61 79 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 73 6c 69 63 65 2e 3c 2f 73 n.array,.rather.than.a.slice.</s
34220 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 6f pan>.....<span.class="tok-kw">co
34240 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 5f 70 74 72 20 3d 20 61 72 72 61 79 5b 3c 73 70 nst</span>.array_ptr.=.array[<sp
34260 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>..
34280 61 72 72 61 79 2e 6c 65 6e 5d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b array.len];.....<span.class="tok
342a0 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 -kw">try</span>.expect(<span.cla
342c0 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 ss="tok-builtin">@TypeOf</span>(
342e0 61 72 72 61 79 5f 70 74 72 29 20 3d 3d 20 2a 5b 61 72 72 61 79 2e 6c 65 6e 5d 3c 73 70 61 6e 20 array_ptr).==.*[array.len]<span.
34300 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 0a 0a 20 class="tok-type">i32</span>);...
34320 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">//.
34340 59 6f 75 20 63 61 6e 20 70 65 72 66 6f 72 6d 20 61 20 73 6c 69 63 65 2d 62 79 2d 6c 65 6e 67 74 You.can.perform.a.slice-by-lengt
34360 68 20 62 79 20 73 6c 69 63 69 6e 67 20 74 77 69 63 65 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 h.by.slicing.twice..This.allows.
34380 74 68 65 20 63 6f 6d 70 69 6c 65 72 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c the.compiler</span>.....<span.cl
343a0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 6f 20 70 65 72 66 6f 72 6d 20 ass="tok-comment">//.to.perform.
343c0 73 6f 6d 65 20 6f 70 74 69 6d 69 73 61 74 69 6f 6e 73 20 6c 69 6b 65 20 72 65 63 6f 67 6e 69 73 some.optimisations.like.recognis
343e0 69 6e 67 20 61 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 6c 65 6e 67 74 68 20 77 68 65 6e ing.a.comptime-known.length.when
34400 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 6d </span>.....<span.class="tok-com
34420 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 20 69 73 20 6f ment">//.the.start.position.is.o
34440 6e 6c 79 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 74 69 6d 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 nly.known.at.runtime.</span>....
34460 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>
34480 20 72 75 6e 74 69 6d 65 5f 73 74 61 72 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .runtime_start:.<span.class="tok
344a0 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 6c 61 73 -type">usize</span>.=.<span.clas
344c0 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 5f 20 3d s="tok-number">1</span>;....._.=
344e0 20 26 61 6d 70 3b 72 75 6e 74 69 6d 65 5f 73 74 61 72 74 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 .&amp;runtime_start;.....<span.c
34500 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 65 6e 67 74 lass="tok-kw">const</span>.lengt
34520 68 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 3c 2f h.=.<span.class="tok-number">2</
34540 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">
34560 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 5f 70 74 72 5f 6c 65 6e 20 3d 20 61 72 72 const</span>.array_ptr_len.=.arr
34580 61 79 5b 72 75 6e 74 69 6d 65 5f 73 74 61 72 74 2e 2e 5d 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d ay[runtime_start..][<span.class=
345a0 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 6c 65 6e 67 74 68 5d 3b 0a "tok-number">0</span>..length];.
345c0 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
345e0 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c an>.expect(<span.class="tok-buil
34600 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 61 72 72 61 79 5f 70 74 72 5f 6c 65 tin">@TypeOf</span>(array_ptr_le
34620 6e 29 20 3d 3d 20 2a 5b 6c 65 6e 67 74 68 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n).==.*[length]<span.class="tok-
34640 74 79 70 65 22 3e 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 type">i32</span>);......<span.cl
34660 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 20 74 68 65 20 61 ass="tok-comment">//.Using.the.a
34680 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 69 63 65 20 67 69 ddress-of.operator.on.a.slice.gi
346a0 76 65 73 20 61 20 73 69 6e 67 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 2e 3c 2f 73 70 61 6e ves.a.single-item.pointer.</span
346c0 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 74 72 79 3c 2f >.....<span.class="tok-kw">try</
346e0 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 span>.expect(<span.class="tok-bu
34700 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 73 6c 69 63 65 iltin">@TypeOf</span>(&amp;slice
34720 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
34740 6e 3e 5d 29 20 3d 3d 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 n>]).==.*<span.class="tok-type">
34760 69 33 32 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 i32</span>);.....<span.class="to
34780 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 55 73 69 6e 67 20 74 68 65 20 60 70 74 72 60 20 66 69 k-comment">//.Using.the.`ptr`.fi
347a0 65 6c 64 20 67 69 76 65 73 20 61 20 6d 61 6e 79 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 2e 3c 2f eld.gives.a.many-item.pointer.</
347c0 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 74 span>.....<span.class="tok-kw">t
347e0 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ry</span>.expect(<span.class="to
34800 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 73 6c 69 63 65 2e k-builtin">@TypeOf</span>(slice.
34820 70 74 72 29 20 3d 3d 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 ptr).==.[*]<span.class="tok-type
34840 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 63 6c 61 73 73 3d 22 ">i32</span>);.....<span.class="
34860 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 tok-kw">try</span>.expect(<span.
34880 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c class="tok-builtin">@intFromPtr<
348a0 2f 73 70 61 6e 3e 28 73 6c 69 63 65 2e 70 74 72 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 /span>(slice.ptr).==.<span.class
348c0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 61 6e ="tok-builtin">@intFromPtr</span
348e0 3e 28 26 61 6d 70 3b 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 >(&amp;slice[<span.class="tok-nu
34900 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c mber">0</span>]));......<span.cl
34920 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 6c 69 63 65 73 20 68 61 76 65 ass="tok-comment">//.Slices.have
34940 20 61 72 72 61 79 20 62 6f 75 6e 64 73 20 63 68 65 63 6b 69 6e 67 2e 20 49 66 20 79 6f 75 20 74 .array.bounds.checking..If.you.t
34960 72 79 20 74 6f 20 61 63 63 65 73 73 20 73 6f 6d 65 74 68 69 6e 67 20 6f 75 74 3c 2f 73 70 61 6e ry.to.access.something.out</span
34980 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 3e >.....<span.class="tok-comment">
349a0 2f 2f 20 6f 66 20 62 6f 75 6e 64 73 2c 20 79 6f 75 27 6c 6c 20 67 65 74 20 61 20 73 61 66 65 74 //.of.bounds,.you'll.get.a.safet
349c0 79 20 63 68 65 63 6b 20 66 61 69 6c 75 72 65 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 6c 69 63 y.check.failure:</span>.....slic
349e0 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 31 30 3c 2f 73 e[<span.class="tok-number">10</s
34a00 70 61 6e 3e 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 pan>].+=.<span.class="tok-number
34a20 22 3e 31 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 ">1</span>;......<span.class="to
34a40 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 60 73 6c 69 63 65 2e 70 k-comment">//.Note.that.`slice.p
34a60 74 72 60 20 64 6f 65 73 20 6e 6f 74 20 69 6e 76 6f 6b 65 20 73 61 66 65 74 79 20 63 68 65 63 6b tr`.does.not.invoke.safety.check
34a80 69 6e 67 2c 20 77 68 69 6c 65 20 60 26 61 6d 70 3b 73 6c 69 63 65 5b 30 5d 60 3c 2f 73 70 61 6e ing,.while.`&amp;slice[0]`</span
34aa0 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 3e >.....<span.class="tok-comment">
34ac0 2f 2f 20 61 73 73 65 72 74 73 20 74 68 61 74 20 74 68 65 20 73 6c 69 63 65 20 68 61 73 20 6c 65 //.asserts.that.the.slice.has.le
34ae0 6e 20 26 67 74 3b 20 30 2e 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c n.&gt;.0.</span>.}</code></pre><
34b00 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 /figure><figure><figcaption.clas
34b20 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e s="shell-cap">Shell</figcaption>
34b40 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f <pre><samp>$.<kbd>zig.test.test_
34b60 62 61 73 69 63 5f 73 6c 69 63 65 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f basic_slices.zig</kbd>.1/1.test_
34b80 62 61 73 69 63 5f 73 6c 69 63 65 73 2e 74 65 73 74 2e 62 61 73 69 63 20 73 6c 69 63 65 73 2e 2e basic_slices.test.basic.slices..
34ba0 2e 20 74 68 72 65 61 64 20 31 33 35 38 38 31 20 70 61 6e 69 63 3a 20 69 6e 64 65 78 20 6f 75 74 ..thread.135881.panic:.index.out
34bc0 20 6f 66 20 62 6f 75 6e 64 73 3a 20 69 6e 64 65 78 20 31 30 2c 20 6c 65 6e 20 34 0a 3c 73 70 61 .of.bounds:.index.10,.len.4.<spa
34be0 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f n.class="sgr-1m">/home/andy/src/
34c00 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 62 61 73 69 63 zig-0.12.x/docgen_tmp/test_basic
34c20 5f 73 6c 69 63 65 73 2e 7a 69 67 3a 33 34 3a 31 30 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 _slices.zig:34:10</span>:.<span.
34c40 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 35 33 39 20 69 6e 20 74 65 73 74 class="sgr-2m">0x1039539.in.test
34c60 2e 62 61 73 69 63 20 73 6c 69 63 65 73 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 .basic.slices.(test)</span>.....
34c80 73 6c 69 63 65 5b 31 30 5d 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 slice[10].+=.1;..........<span.c
34ca0 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c lass="sgr-32m">^</span>.<span.cl
34cc0 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d ass="sgr-1m">/home/andy/src/zig-
34ce0 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 0.12.x/lib/compiler/test_runner.
34d00 7a 69 67 3a 31 35 38 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 zig:158:25</span>:.<span.class="
34d20 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 34 63 65 64 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 sgr-2m">0x1044ced.in.mainTermina
34d40 6c 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 74 65 73 74 l.(test)</span>.........if.(test
34d60 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 20 20 20 20 _fn.func()).|_|.{...............
34d80 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e ..........<span.class="sgr-32m">
34da0 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 ^</span>.<span.class="sgr-1m">/h
34dc0 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 ome/andy/src/zig-0.12.x/lib/comp
34de0 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e iler/test_runner.zig:35:28</span
34e00 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 61 65 33 >:.<span.class="sgr-2m">0x103ae3
34e20 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 20 20 20 20 20 20 20 b.in.main.(test)</span>.........
34e40 72 65 74 75 72 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 return.mainTerminal();..........
34e60 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 73 ..................<span.class="s
34e80 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 gr-32m">^</span>.<span.class="sg
34ea0 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f r-1m">/home/andy/src/zig-0.12.x/
34ec0 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a lib/std/start.zig:501:22</span>:
34ee0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 62 31 39 20 .<span.class="sgr-2m">0x1039b19.
34f00 69 6e 20 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 in.posixCallMainAndExit.(test)</
34f20 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 0a 20 span>.............root.main();..
34f40 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=
34f60 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "sgr-32m">^</span>.<span.class="
34f80 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e sgr-1m">/home/andy/src/zig-0.12.
34fa0 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e x/lib/std/start.zig:253:5</span>
34fc0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 36 38 31 :.<span.class="sgr-2m">0x1039681
34fe0 20 69 6e 20 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 61 73 6d .in._start.(test)</span>.....asm
35000 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 .volatile.(switch.(native_arch).
35020 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 {.....<span.class="sgr-32m">^</s
35040 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a pan>.<span.class="sgr-1m">???:?:
35060 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 ?</span>:.<span.class="sgr-2m">0
35080 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 65 72 72 6f 72 3a 20 74 68 x0.in.???.(???)</span>.error:.th
350a0 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 63 72 61 73 68 65 64 e.following.test.command.crashed
350c0 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d :./home/andy/src/zig-0.12.x/zig-
350e0 63 61 63 68 65 2f 6f 2f 36 38 30 66 32 61 62 31 31 37 38 61 34 31 33 62 31 35 35 64 63 33 64 38 cache/o/680f2ab1178a413b155dc3d8
35100 61 30 33 30 35 30 36 64 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 a030506d/test.</samp></pre></fig
35120 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 20 6f 6e 65 20 72 65 61 73 6f 6e ure>.......<p>This.is.one.reason
35140 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 3c 2f .we.prefer.slices.to.pointers.</
35160 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
35180 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
351a0 74 65 73 74 5f 73 6c 69 63 65 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 test_slices.zig</cite></figcapti
351c0 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b on><pre><code><span.class="tok-k
351e0 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
35200 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>(<
35220 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
35240 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
35260 77 22 3e 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 w">const</span>.expect.=.std.tes
35280 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ting.expect;.<span.class="tok-kw
352a0 22 3e 63 6f 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 3c 73 ">const</span>.mem.=.std.mem;.<s
352c0 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>.
352e0 66 6d 74 20 3d 20 73 74 64 2e 66 6d 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b fmt.=.std.fmt;..<span.class="tok
35300 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
35320 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 73 69 6e 67 20 73 6c 69 63 65 73 20 66 6f 72 20 73 74 k-str">&quot;using.slices.for.st
35340 72 69 6e 67 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 rings&quot;</span>.{.....<span.c
35360 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 5a 69 67 20 68 61 73 20 6e 6f lass="tok-comment">//.Zig.has.no
35380 20 63 6f 6e 63 65 70 74 20 6f 66 20 73 74 72 69 6e 67 73 2e 20 53 74 72 69 6e 67 20 6c 69 74 65 .concept.of.strings..String.lite
353a0 72 61 6c 73 20 61 72 65 20 63 6f 6e 73 74 20 70 6f 69 6e 74 65 72 73 3c 2f 73 70 61 6e 3e 0a 20 rals.are.const.pointers</span>..
353c0 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">//.
353e0 74 6f 20 6e 75 6c 6c 2d 74 65 72 6d 69 6e 61 74 65 64 20 61 72 72 61 79 73 20 6f 66 20 75 38 2c to.null-terminated.arrays.of.u8,
35400 20 61 6e 64 20 62 79 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 3c 2f 73 .and.by.convention.parameters</s
35420 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
35440 74 22 3e 2f 2f 20 74 68 61 74 20 61 72 65 20 26 71 75 6f 74 3b 73 74 72 69 6e 67 73 26 71 75 6f t">//.that.are.&quot;strings&quo
35460 74 3b 20 61 72 65 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 55 54 46 2d 38 20 65 6e 63 6f t;.are.expected.to.be.UTF-8.enco
35480 64 65 64 20 73 6c 69 63 65 73 20 6f 66 20 75 38 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 ded.slices.of.u8.</span>.....<sp
354a0 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 65 20 77 an.class="tok-comment">//.Here.w
354c0 65 20 63 6f 65 72 63 65 20 2a 63 6f 6e 73 74 20 5b 35 3a 30 5d 75 38 20 61 6e 64 20 2a 63 6f 6e e.coerce.*const.[5:0]u8.and.*con
354e0 73 74 20 5b 36 3a 30 5d 75 38 20 74 6f 20 5b 5d 63 6f 6e 73 74 20 75 38 3c 2f 73 70 61 6e 3e 0a st.[6:0]u8.to.[]const.u8</span>.
35500 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</
35520 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 74 6f 6b 2d span>.hello:.[]<span.class="tok-
35540 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
35560 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=
35580 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
355a0 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
355c0 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 73 73 3d 22 st</span>.world:.[]<span.class="
355e0 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
35600 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
35620 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 75 6f 74 3b ass="tok-str">&quot;......&quot;
35640 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 6b </span>;......<span.class="tok-k
35660 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 5b 3c 73 70 w">var</span>.all_together:.[<sp
35680 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 70 61 6e 3e an.class="tok-number">100</span>
356a0 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
356c0 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
356e0 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
35700 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 69 63 65 20 k-comment">//.You.can.use.slice.
35720 73 79 6e 74 61 78 20 77 69 74 68 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 72 75 6e 74 69 6d 65 syntax.with.at.least.one.runtime
35740 2d 6b 6e 6f 77 6e 20 69 6e 64 65 78 20 6f 6e 20 61 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 -known.index.on.an</span>.....<s
35760 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 72 72 61 79 pan.class="tok-comment">//.array
35780 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 61 72 72 61 79 20 69 6e 74 6f 20 61 20 73 6c 69 63 .to.convert.an.array.into.a.slic
357a0 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 6b e.</span>.....<span.class="tok-k
357c0 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 74 61 72 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 w">var</span>.start:.<span.class
357e0 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
35800 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>;...
35820 20 20 5f 20 3d 20 26 61 6d 70 3b 73 74 61 72 74 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 .._.=.&amp;start;.....<span.clas
35840 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 5f 74 6f 67 65 s="tok-kw">const</span>.all_toge
35860 74 68 65 72 5f 73 6c 69 63 65 20 3d 20 61 6c 6c 5f 74 6f 67 65 74 68 65 72 5b 73 74 61 72 74 2e ther_slice.=.all_together[start.
35880 2e 5d 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 .];.....<span.class="tok-comment
358a0 22 3e 2f 2f 20 53 74 72 69 6e 67 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 65 78 61 6d 70 6c ">//.String.concatenation.exampl
358c0 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 6b e.</span>.....<span.class="tok-k
358e0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 20 3d 20 3c 73 w">const</span>.hello_world.=.<s
35900 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 66 6d pan.class="tok-kw">try</span>.fm
35920 74 2e 62 75 66 50 72 69 6e 74 28 61 6c 6c 5f 74 6f 67 65 74 68 65 72 5f 73 6c 69 63 65 2c 20 3c t.bufPrint(all_together_slice,.<
35940 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 73 7d 20 7b span.class="tok-str">&quot;{s}.{
35960 73 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 20 68 65 6c 6c 6f 2c 20 77 6f 72 6c 64 s}&quot;</span>,..{.hello,.world
35980 20 7d 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
359a0 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 20 55 54 nt">//.Generally,.you.can.use.UT
359c0 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 65 72 20 F-8.and.not.worry.about.whether.
359e0 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 61 6e 20 something.is.a</span>.....<span.
35a00 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 2e 20 49 class="tok-comment">//.string..I
35a20 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 20 69 6e f.you.don't.need.to.deal.with.in
35a40 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 2f 73 70 dividual.characters,.no.need</sp
35a60 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
35a80 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 3c 73 70 61 6e ">//.to.decode.</span>.....<span
35aa0 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
35ac0 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 22 t(mem.eql(<span.class="tok-type"
35ae0 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 6e 20 63 >u8</span>,.hello_world,.<span.c
35b00 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 96 e7 95 lass="tok-str">&quot;hello......
35b20 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 61 73 73 .&quot;</span>));.}..<span.class
35b40 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
35b60 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 65 72 26 s="tok-str">&quot;slice.pointer&
35b80 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="
35ba0 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 70 61 6e tok-kw">var</span>.array:.[<span
35bc0 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 5d 3c 73 .class="tok-number">10</span>]<s
35be0 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>.=
35c00 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
35c20 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
35c40 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 72 61 79 w">const</span>.ptr.=.&amp;array
35c60 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
35c80 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 span>.expect(<span.class="tok-bu
35ca0 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 70 74 72 29 20 3d 3d 20 2a 5b iltin">@TypeOf</span>(ptr).==.*[
35cc0 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
35ce0 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
35d00 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 63 6f 6d 6d an>);......<span.class="tok-comm
35d20 65 6e 74 22 3e 2f 2f 20 41 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e 20 61 72 72 61 79 20 63 61 ent">//.A.pointer.to.an.array.ca
35d40 6e 20 62 65 20 73 6c 69 63 65 64 20 6a 75 73 74 20 6c 69 6b 65 20 61 6e 20 61 72 72 61 79 3a 3c n.be.sliced.just.like.an.array:<
35d60 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">
35d80 76 61 72 3c 2f 73 70 61 6e 3e 20 73 74 61 72 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 var</span>.start:.<span.class="t
35da0 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 6c ok-type">usize</span>.=.<span.cl
35dc0 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 3c ass="tok-number">0</span>;.....<
35de0 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 65 span.class="tok-kw">var</span>.e
35e00 6e 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 75 73 69 7a 65 nd:.<span.class="tok-type">usize
35e20 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
35e40 72 22 3e 35 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 2e 7b 20 26 61 6d 70 3b 73 74 61 r">5</span>;....._.=..{.&amp;sta
35e60 72 74 2c 20 26 61 6d 70 3b 65 6e 64 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d rt,.&amp;end.};.....<span.class=
35e80 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 20 3d 20 70 74 "tok-kw">const</span>.slice.=.pt
35ea0 72 5b 73 74 61 72 74 2e 2e 65 6e 64 5d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 r[start..end];.....<span.class="
35ec0 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 6d 75 74 tok-comment">//.The.slice.is.mut
35ee0 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 62 6c 65 able.because.we.sliced.a.mutable
35f00 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 73 73 .pointer.</span>.....<span.class
35f20 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 ="tok-kw">try</span>.expect(<spa
35f40 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 4f 66 3c 2f 73 n.class="tok-builtin">@TypeOf</s
35f60 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 22 74 6f pan>(slice).==.[]<span.class="to
35f80 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 73 6c 69 63 65 5b 3c 73 k-type">u8</span>);.....slice[<s
35fa0 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 5d pan.class="tok-number">2</span>]
35fc0 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 2f 73 .=.<span.class="tok-number">3</s
35fe0 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 74 pan>;.....<span.class="tok-kw">t
36000 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 72 61 79 5b 3c 73 70 61 6e 20 63 6c 61 ry</span>.expect(array[<span.cla
36020 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 20 3d 3d 20 3c 73 70 ss="tok-number">2</span>].==.<sp
36040 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>);
36060 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">
36080 2f 2f 20 41 67 61 69 6e 2c 20 73 6c 69 63 69 6e 67 20 77 69 74 68 20 63 6f 6d 70 74 69 6d 65 2d //.Again,.slicing.with.comptime-
360a0 6b 6e 6f 77 6e 20 69 6e 64 65 78 65 73 20 77 69 6c 6c 20 70 72 6f 64 75 63 65 20 61 6e 6f 74 68 known.indexes.will.produce.anoth
360c0 65 72 20 70 6f 69 6e 74 65 72 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 er.pointer</span>.....<span.clas
360e0 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 6f 20 61 6e 20 61 72 72 61 79 3a 3c s="tok-comment">//.to.an.array:<
36100 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">
36120 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 74 72 32 20 3d 20 73 6c 69 63 65 5b 3c 73 70 61 6e 20 const</span>.ptr2.=.slice[<span.
36140 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 2e 2e 3c 73 70 class="tok-number">2</span>..<sp
36160 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 5d 3b an.class="tok-number">3</span>];
36180 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
361a0 70 61 6e 3e 20 65 78 70 65 63 74 28 70 74 72 32 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c pan>.expect(ptr2.len.==.<span.cl
361c0 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 20 ass="tok-number">1</span>);.....
361e0 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>.
36200 65 78 70 65 63 74 28 70 74 72 32 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d expect(ptr2[<span.class="tok-num
36220 62 65 72 22 3e 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 ber">0</span>].==.<span.class="t
36240 6f 6b 2d 6e 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 ok-number">3</span>);.....<span.
36260 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
36280 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 79 70 65 (<span.class="tok-builtin">@Type
362a0 4f 66 3c 2f 73 70 61 6e 3e 28 70 74 72 32 29 20 3d 3d 20 2a 5b 3c 73 70 61 6e 20 63 6c 61 73 73 Of</span>(ptr2).==.*[<span.class
362c0 3d 22 74 6f 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 ="tok-number">1</span>]<span.cla
362e0 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 7d 3c 2f 63 6f 64 ss="tok-type">u8</span>);.}</cod
36300 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
36320 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
36340 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 gcaption><pre><samp>$.<kbd>zig.t
36360 65 73 74 20 74 65 73 74 5f 73 6c 69 63 65 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 est.test_slices.zig</kbd>.1/2.te
36380 73 74 5f 73 6c 69 63 65 73 2e 74 65 73 74 2e 75 73 69 6e 67 20 73 6c 69 63 65 73 20 66 6f 72 20 st_slices.test.using.slices.for.
363a0 73 74 72 69 6e 67 73 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 73 6c 69 63 65 73 2e 74 65 strings....OK.2/2.test_slices.te
363c0 73 74 2e 73 6c 69 63 65 20 70 6f 69 6e 74 65 72 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 st.slice.pointer....OK.All.2.tes
363e0 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ts.passed..</samp></pre></figure
36400 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
36420 3e 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
36440 3e 3c 2f 6c 69 3e 0a 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 ></li>.<li><a.href="#for">for</a
36460 3e 3c 2f 6c 69 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 ></li>.<li><a.href="#Arrays">Arr
36480 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 ays</a></li>.</ul>.........<h3.i
364a0 64 3d 22 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 53 6c 69 63 65 73 22 3e 3c d="Sentinel-Terminated-Slices"><
364c0 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 65 6e 74 69 6e 65 6c 2d 54 a.href="nav.xhtml#toc-Sentinel-T
364e0 65 72 6d 69 6e 61 74 65 64 2d 53 6c 69 63 65 73 22 3e 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 erminated-Slices">Sentinel-Termi
36500 6e 61 74 65 64 20 53 6c 69 63 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 nated.Slices</a>.<a.class="hdr".
36520 68 72 65 66 3d 22 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 53 6c 69 63 65 href="#Sentinel-Terminated-Slice
36540 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 20 20 s">..</a></h3>........<p>.......
36560 54 68 65 20 73 79 6e 74 61 78 20 3c 63 6f 64 65 3e 5b 3a 78 5d 54 3c 2f 63 6f 64 65 3e 20 69 73 The.syntax.<code>[:x]T</code>.is
36580 20 61 20 73 6c 69 63 65 20 77 68 69 63 68 20 68 61 73 20 61 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f .a.slice.which.has.a.runtime-kno
365a0 77 6e 20 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 61 6e 64 20 61 6c 73 6f 20 67 75 61 72 61 6e 74 wn.length.......and.also.guarant
365c0 65 65 73 20 61 20 73 65 6e 74 69 6e 65 6c 20 76 61 6c 75 65 20 61 74 20 74 68 65 20 65 6c 65 6d ees.a.sentinel.value.at.the.elem
365e0 65 6e 74 20 69 6e 64 65 78 65 64 20 62 79 20 74 68 65 20 6c 65 6e 67 74 68 2e 20 54 68 65 20 74 ent.indexed.by.the.length..The.t
36600 79 70 65 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 20 20 67 75 61 72 61 6e 74 65 65 20 74 68 61 ype.does.not.......guarantee.tha
36620 74 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 73 65 6e 74 69 6e 65 6c 20 65 6c 65 6d 65 6e 74 73 t.there.are.no.sentinel.elements
36640 20 62 65 66 6f 72 65 20 74 68 61 74 2e 20 53 65 6e 74 69 6e 65 6c 2d 74 65 72 6d 69 6e 61 74 65 .before.that..Sentinel-terminate
36660 64 20 73 6c 69 63 65 73 20 61 6c 6c 6f 77 20 65 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 61 63 63 d.slices.allow.element.......acc
36680 65 73 73 20 74 6f 20 74 68 65 20 3c 63 6f 64 65 3e 6c 65 6e 3c 2f 63 6f 64 65 3e 20 69 6e 64 65 ess.to.the.<code>len</code>.inde
366a0 78 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 x........</p>.......<figure><fig
366c0 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c caption.class="zig-cap"><cite.cl
366e0 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f ass="file">test_null_terminated_
36700 73 6c 69 63 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 slice.zig</cite></figcaption><pr
36720 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
36740 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
36760 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
36780 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;</
367a0 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
367c0 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 67 2e 65 st</span>.expect.=.std.testing.e
367e0 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 74 65 73 xpect;..<span.class="tok-kw">tes
36800 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">&
36820 71 75 6f 74 3b 30 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 6c 69 63 65 26 71 75 6f 74 3b 3c 2f 73 quot;0-terminated.slice&quot;</s
36840 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">
36860 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 3a 20 5b 3a 3c 73 70 61 6e 20 63 6c 61 73 const</span>.slice:.[:<span.clas
36880 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c s="tok-number">0</span>]<span.cl
368a0 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.
368c0 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
368e0 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
36900 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
36920 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 6c 69 63 65 2e 6c ok-kw">try</span>.expect(slice.l
36940 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 35 en.==.<span.class="tok-number">5
36960 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 6b </span>);.....<span.class="tok-k
36980 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 6c 69 63 65 5b 3c 73 70 61 6e w">try</span>.expect(slice[<span
369a0 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 20 3d 3d .class="tok-number">5</span>].==
369c0 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
369e0 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 n>);.}</code></pre></figure><fig
36a00 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 ure><figcaption.class="shell-cap
36a20 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 ">Shell</figcaption><pre><samp>$
36a40 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 .<kbd>zig.test.test_null_termina
36a60 74 65 64 5f 73 6c 69 63 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6e 75 6c ted_slice.zig</kbd>.1/1.test_nul
36a80 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 73 6c 69 63 65 2e 74 65 73 74 2e 30 2d 74 65 72 6d 69 6e l_terminated_slice.test.0-termin
36aa0 61 74 65 64 20 73 6c 69 63 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 ated.slice....OK.All.1.tests.pas
36ac0 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 sed..</samp></pre></figure>.....
36ae0 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 65 6e 74 69 6e 65 6c 2d 74 65 72 6d 69 6e 61 74 65 64 20 ..<p>.......Sentinel-terminated.
36b00 73 6c 69 63 65 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 63 72 65 61 74 65 64 20 75 73 69 6e 67 slices.can.also.be.created.using
36b20 20 61 20 76 61 72 69 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 73 6c 69 63 65 20 73 79 6e 74 61 78 .a.variation.of.the.slice.syntax
36b40 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 64 61 74 61 5b 73 74 61 72 74 2e 2e 65 6e 64 20 3a 78 5d .......<code>data[start..end.:x]
36b60 3c 2f 63 6f 64 65 3e 2c 20 77 68 65 72 65 20 3c 63 6f 64 65 3e 64 61 74 61 3c 2f 63 6f 64 65 3e </code>,.where.<code>data</code>
36b80 20 69 73 20 61 20 6d 61 6e 79 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 2c 0a 20 20 20 20 20 20 61 .is.a.many-item.pointer,.......a
36ba0 72 72 61 79 20 6f 72 20 73 6c 69 63 65 20 61 6e 64 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e rray.or.slice.and.<code>x</code>
36bc0 20 69 73 20 74 68 65 20 73 65 6e 74 69 6e 65 6c 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f .is.the.sentinel.value........</
36be0 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
36c00 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
36c20 74 65 73 74 5f 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 73 6c 69 63 69 6e 67 2e 7a 69 67 test_null_terminated_slicing.zig
36c40 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c </cite></figcaption><pre><code><
36c60 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>
36c80 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"
36ca0 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
36cc0 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>);.<
36ce0 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>
36d00 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c .expect.=.std.testing.expect;..<
36d20 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>.
36d40 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 30 2d 74 65 <span.class="tok-str">&quot;0-te
36d60 72 6d 69 6e 61 74 65 64 20 73 6c 69 63 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a rminated.slicing&quot;</span>.{.
36d80 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
36da0 61 6e 3e 20 61 72 72 61 79 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d an>.array.=.[_]<span.class="tok-
36dc0 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
36de0 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 73 73 3d k-number">3</span>,.<span.class=
36e00 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 6e 20 63 6c 61 "tok-number">2</span>,.<span.cla
36e20 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 6e 20 ss="tok-number">1</span>,.<span.
36e40 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 20 3c 73 70 class="tok-number">0</span>,.<sp
36e60 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>,.
36e80 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
36ea0 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 3c 2f 73 >,.<span.class="tok-number">1</s
36ec0 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 30 pan>,.<span.class="tok-number">0
36ee0 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-
36f00 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 72 75 6e 74 69 6d 65 5f 6c 65 6e 67 74 68 3a 20 3c kw">var</span>.runtime_length:.<
36f20 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
36f40 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 33 3c n>.=.<span.class="tok-number">3<
36f60 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 72 75 6e 74 69 6d 65 5f 6c 65 6e /span>;....._.=.&amp;runtime_len
36f80 67 74 68 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 gth;.....<span.class="tok-kw">co
36fa0 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 63 nst</span>.slice.=.array[<span.c
36fc0 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 72 75 6e 74 lass="tok-number">0</span>..runt
36fe0 69 6d 65 5f 6c 65 6e 67 74 68 20 3a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ime_length.:<span.class="tok-num
37000 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ber">0</span>];......<span.class
37020 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 ="tok-kw">try</span>.expect(<spa
37040 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 4f 66 3c 2f 73 n.class="tok-builtin">@TypeOf</s
37060 70 61 6e 3e 28 73 6c 69 63 65 29 20 3d 3d 20 5b 3a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pan>(slice).==.[:<span.class="to
37080 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 k-number">0</span>]<span.class="
370a0 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 3c 73 70 61 6e 20 tok-type">u8</span>);.....<span.
370c0 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
370e0 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 3d 22 74 6f 6b 2d 6e (slice.len.==.<span.class="tok-n
37100 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>
37120 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
37140 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
37160 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 ><pre><samp>$.<kbd>zig.test.test
37180 5f 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 73 6c 69 63 69 6e 67 2e 7a 69 67 3c 2f 6b 62 _null_terminated_slicing.zig</kb
371a0 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 73 6c 69 63 d>.1/1.test_null_terminated_slic
371c0 69 6e 67 2e 74 65 73 74 2e 30 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 6c 69 63 69 6e 67 2e 2e 2e ing.test.0-terminated.slicing...
371e0 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c .OK.All.1.tests.passed..</samp><
37200 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 /pre></figure>.......<p>.......S
37220 65 6e 74 69 6e 65 6c 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 6c 69 63 69 6e 67 20 61 73 73 65 72 entinel-terminated.slicing.asser
37240 74 73 20 74 68 61 74 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 73 65 6e 74 69 ts.that.the.element.in.the.senti
37260 6e 65 6c 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 62 61 63 6b 69 6e 67 20 64 61 74 61 nel.position.of.the.backing.data
37280 20 69 73 0a 20 20 20 20 20 20 61 63 74 75 61 6c 6c 79 20 74 68 65 20 73 65 6e 74 69 6e 65 6c 20 .is.......actually.the.sentinel.
372a0 76 61 6c 75 65 2e 20 49 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 74 68 65 20 63 61 73 65 2c 20 value..If.this.is.not.the.case,.
372c0 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 55 6e 64 65 66 safety-protected.<a.href="#Undef
372e0 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
37300 72 3c 2f 61 3e 20 72 65 73 75 6c 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 r</a>.results........</p>.......
37320 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
37340 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 65 6e 74 ap"><cite.class="file">test_sent
37360 69 6e 65 6c 5f 6d 69 73 6d 61 74 63 68 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 inel_mismatch.zig</cite></figcap
37380 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
373a0 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
373c0 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>
373e0 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
37400 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
37420 2d 6b 77 22 3e 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 -kw">const</span>.expect.=.std.t
37440 65 73 74 69 6e 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 esting.expect;..<span.class="tok
37460 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
37480 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 65 6e 74 69 6e 65 6c 20 6d 69 73 6d 61 74 63 68 26 71 k-str">&quot;sentinel.mismatch&q
374a0 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
374c0 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 73 70 ok-kw">var</span>.array.=.[_]<sp
374e0 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 20 3c an.class="tok-type">u8</span>{.<
37500 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>
37520 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 73 70 ,.<span.class="tok-number">2</sp
37540 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 31 3c an>,.<span.class="tok-number">1<
37560 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"
37580 3e 30 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 73 3d 22 74 >0</span>.};......<span.class="t
375a0 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 43 72 65 61 74 69 6e 67 20 61 20 73 65 6e 74 69 6e ok-comment">//.Creating.a.sentin
375c0 65 6c 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 6c 69 63 65 20 66 72 6f 6d 20 74 68 65 20 61 72 72 el-terminated.slice.from.the.arr
375e0 61 79 20 77 69 74 68 20 61 20 6c 65 6e 67 74 68 20 6f 66 20 32 3c 2f 73 70 61 6e 3e 0a 20 20 20 ay.with.a.length.of.2</span>....
37600 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 77 69 .<span.class="tok-comment">//.wi
37620 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 74 68 65 20 76 61 6c 75 65 20 60 31 60 20 6f 63 63 75 70 ll.result.in.the.value.`1`.occup
37640 79 69 6e 67 20 74 68 65 20 73 65 6e 74 69 6e 65 6c 20 65 6c 65 6d 65 6e 74 20 70 6f 73 69 74 69 ying.the.sentinel.element.positi
37660 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 2d on.</span>.....<span.class="tok-
37680 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 comment">//.This.does.not.match.
376a0 74 68 65 20 69 6e 64 69 63 61 74 65 64 20 73 65 6e 74 69 6e 65 6c 20 76 61 6c 75 65 20 6f 66 20 the.indicated.sentinel.value.of.
376c0 60 30 60 20 61 6e 64 20 77 69 6c 6c 20 6c 65 61 64 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 `0`.and.will.lead</span>.....<sp
376e0 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 20 72 an.class="tok-comment">//.to.a.r
37700 75 6e 74 69 6d 65 20 70 61 6e 69 63 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 untime.panic.</span>.....<span.c
37720 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 75 6e 74 69 6d 65 lass="tok-kw">var</span>.runtime
37740 5f 6c 65 6e 67 74 68 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 _length:.<span.class="tok-type">
37760 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 2d usize</span>.=.<span.class="tok-
37780 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 72 number">2</span>;....._.=.&amp;r
377a0 75 6e 74 69 6d 65 5f 6c 65 6e 67 74 68 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 untime_length;.....<span.class="
377c0 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 20 3d 20 61 72 72 tok-kw">const</span>.slice.=.arr
377e0 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 30 3c 2f 73 ay[<span.class="tok-number">0</s
37800 70 61 6e 3e 2e 2e 72 75 6e 74 69 6d 65 5f 6c 65 6e 67 74 68 20 3a 3c 73 70 61 6e 20 63 6c 61 73 pan>..runtime_length.:<span.clas
37820 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3b 0a 0a 20 20 20 20 5f s="tok-number">0</span>];......_
37840 20 3d 20 73 6c 69 63 65 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 .=.slice;.}</code></pre></figure
37860 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
37880 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
378a0 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 65 6e 74 69 6e 65 amp>$.<kbd>zig.test.test_sentine
378c0 6c 5f 6d 69 73 6d 61 74 63 68 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 65 l_mismatch.zig</kbd>.1/1.test_se
378e0 6e 74 69 6e 65 6c 5f 6d 69 73 6d 61 74 63 68 2e 74 65 73 74 2e 73 65 6e 74 69 6e 65 6c 20 6d 69 ntinel_mismatch.test.sentinel.mi
37900 73 6d 61 74 63 68 2e 2e 2e 20 74 68 72 65 61 64 20 31 33 36 31 33 39 20 70 61 6e 69 63 3a 20 73 smatch....thread.136139.panic:.s
37920 65 6e 74 69 6e 65 6c 20 6d 69 73 6d 61 74 63 68 3a 20 65 78 70 65 63 74 65 64 20 30 2c 20 66 6f entinel.mismatch:.expected.0,.fo
37940 75 6e 64 20 31 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 und.1.<span.class="sgr-1m">/home
37960 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f /andy/src/zig-0.12.x/docgen_tmp/
37980 74 65 73 74 5f 73 65 6e 74 69 6e 65 6c 5f 6d 69 73 6d 61 74 63 68 2e 7a 69 67 3a 31 33 3a 32 34 test_sentinel_mismatch.zig:13:24
379a0 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 </span>:.<span.class="sgr-2m">0x
379c0 31 30 33 39 30 61 36 20 69 6e 20 74 65 73 74 2e 73 65 6e 74 69 6e 65 6c 20 6d 69 73 6d 61 74 63 10390a6.in.test.sentinel.mismatc
379e0 68 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 73 6c 69 63 65 20 h.(test)</span>.....const.slice.
37a00 3d 20 61 72 72 61 79 5b 30 2e 2e 72 75 6e 74 69 6d 65 5f 6c 65 6e 67 74 68 20 3a 30 5d 3b 0a 20 =.array[0..runtime_length.:0];..
37a20 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 6c 61 73 ......................<span.clas
37a40 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 s="sgr-32m">^</span>.<span.class
37a60 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 ="sgr-1m">/home/andy/src/zig-0.1
37a80 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 2.x/lib/compiler/test_runner.zig
37aa0 3a 31 35 38 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 :158:25</span>:.<span.class="sgr
37ac0 2d 32 6d 22 3e 30 78 31 30 34 34 64 30 64 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 28 -2m">0x1044d0d.in.mainTerminal.(
37ae0 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 74 65 73 74 5f 66 6e test)</span>.........if.(test_fn
37b00 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 20 20 20 20 20 20 20 .func()).|_|.{..................
37b20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f .......<span.class="sgr-32m">^</
37b40 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 span>.<span.class="sgr-1m">/home
37b60 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 /andy/src/zig-0.12.x/lib/compile
37b80 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 r/test_runner.zig:35:28</span>:.
37ba0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 61 63 31 62 20 69 <span.class="sgr-2m">0x103ac1b.i
37bc0 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 20 20 20 20 72 65 74 n.main.(test)</span>.........ret
37be0 75 72 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 urn.mainTerminal();.............
37c00 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 73 67 72 2d ...............<span.class="sgr-
37c20 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 32m">^</span>.<span.class="sgr-1
37c40 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 m">/home/andy/src/zig-0.12.x/lib
37c60 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 /std/start.zig:501:22</span>:.<s
37c80 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 36 38 39 20 69 6e 20 pan.class="sgr-2m">0x1039689.in.
37ca0 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 70 61 posixCallMainAndExit.(test)</spa
37cc0 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 20 20 n>.............root.main();.....
37ce0 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 73 67 .................<span.class="sg
37d00 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 r-32m">^</span>.<span.class="sgr
37d20 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c -1m">/home/andy/src/zig-0.12.x/l
37d40 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c ib/std/start.zig:253:5</span>:.<
37d60 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 31 66 31 20 69 6e span.class="sgr-2m">0x10391f1.in
37d80 20 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 61 73 6d 20 76 6f ._start.(test)</span>.....asm.vo
37da0 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 latile.(switch.(native_arch).{..
37dc0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e ...<span.class="sgr-32m">^</span
37de0 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f >.<span.class="sgr-1m">???:?:?</
37e00 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 span>:.<span.class="sgr-2m">0x0.
37e20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 in.???.(???)</span>.error:.the.f
37e40 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 63 72 61 73 68 65 64 3a 0a 2f ollowing.test.command.crashed:./
37e60 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 63 home/andy/src/zig-0.12.x/zig-cac
37e80 68 65 2f 6f 2f 30 31 32 63 63 35 34 62 64 61 62 64 36 39 30 64 30 36 65 37 33 36 34 61 30 63 36 he/o/012cc54bdabd690d06e7364a0c6
37ea0 30 62 37 63 30 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 0b7c0/test.</samp></pre></figure
37ec0 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
37ee0 3e 3c 61 20 68 72 65 66 3d 22 23 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 50 ><a.href="#Sentinel-Terminated-P
37f00 6f 69 6e 74 65 72 73 22 3e 53 65 6e 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 50 6f 69 ointers">Sentinel-Terminated.Poi
37f20 6e 74 65 72 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 53 65 6e nters</a></li>.<li><a.href="#Sen
37f40 74 69 6e 65 6c 2d 54 65 72 6d 69 6e 61 74 65 64 2d 41 72 72 61 79 73 22 3e 53 65 6e 74 69 6e 65 tinel-Terminated-Arrays">Sentine
37f60 6c 2d 54 65 72 6d 69 6e 61 74 65 64 20 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 l-Terminated.Arrays</a></li>.</u
37f80 6c 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 32 20 69 64 3d l>.......................<h2.id=
37fa0 22 73 74 72 75 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d "struct"><a.href="nav.xhtml#toc-
37fc0 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 struct">struct</a>.<a.class="hdr
37fe0 22 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 ".href="#struct">..</a></h2>....
38000 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
38020 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f ig-cap"><cite.class="file">test_
38040 73 74 72 75 63 74 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c structs.zig</cite></figcaption><
38060 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 pre><code><span.class="tok-comme
38080 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 0a nt">//.Declare.a.struct.</span>.
380a0 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 67 <span.class="tok-comment">//.Zig
380c0 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 6f .gives.no.guarantees.about.the.o
380e0 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 2f rder.of.fields.and.the.size.of</
38100 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">
38120 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 65 //.the.struct.but.the.fields.are
38140 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 2f .guaranteed.to.be.ABI-aligned.</
38160 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
38180 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 6b </span>.Point.=.<span.class="tok
381a0 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 61 -kw">struct</span>.{.....x:.<spa
381c0 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 20 n.class="tok-type">f32</span>,..
381e0 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 32 ...y:.<span.class="tok-type">f32
38200 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 6f </span>,.};..<span.class="tok-co
38220 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 20 mment">//.Maybe.we.want.to.pass.
38240 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 61 it.to.OpenGL.so.we.want.to.be.pa
38260 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 73 rticular.about</span>.<span.clas
38280 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 73 s="tok-comment">//.how.the.bytes
382a0 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 73 .are.arranged.</span>.<span.clas
382c0 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 3d s="tok-kw">const</span>.Point2.=
382e0 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 70 .<span.class="tok-kw">packed</sp
38300 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 3c an>.<span.class="tok-kw">struct<
38320 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 6b /span>.{.....x:.<span.class="tok
38340 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 20 -type">f32</span>,.....y:.<span.
38360 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 0a class="tok-type">f32</span>,.};.
38380 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 44 ..<span.class="tok-comment">//.D
383a0 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 3c eclare.an.instance.of.a.struct.<
383c0 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
383e0 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 73 t</span>.p.=.Point.{......x.=.<s
38400 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 61 pan.class="tok-number">0.12</spa
38420 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 75 n>,......y.=.<span.class="tok-nu
38440 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 61 mber">0.34</span>,.};..<span.cla
38460 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 20 ss="tok-comment">//.Maybe.we're.
38480 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 68 not.ready.to.fill.out.some.of.th
384a0 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 6f e.fields.</span>.<span.class="to
384c0 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 20 k-kw">var</span>.p2.=.Point.{...
384e0 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 3e ...x.=.<span.class="tok-number">
38500 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 73 0.12</span>,......y.=.<span.clas
38520 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 7d s="tok-null">undefined</span>,.}
38540 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">//.
38560 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 0a Structs.can.have.methods</span>.
38580 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 72 <span.class="tok-comment">//.Str
385a0 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 65 uct.methods.are.not.special,.the
385c0 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 70 y.are.only.namespaced</span>.<sp
385e0 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 69 an.class="tok-comment">//.functi
38600 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 73 ons.that.you.can.call.with.dot.s
38620 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 6b yntax.</span>.<span.class="tok-k
38640 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 61 w">const</span>.Vec3.=.<span.cla
38660 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 20 ss="tok-kw">struct</span>.{.....
38680 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
386a0 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 79 pan>,.....y:.<span.class="tok-ty
386c0 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 61 pe">f32</span>,.....z:.<span.cla
386e0 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 3c ss="tok-type">f32</span>,......<
38700 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>.<
38720 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
38740 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 78 pan.class="tok-fn">init</span>(x
38760 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 70 :.<span.class="tok-type">f32</sp
38780 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 66 an>,.y:.<span.class="tok-type">f
387a0 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 74 32</span>,.z:.<span.class="tok-t
387c0 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 20 ype">f32</span>).Vec3.{.........
387e0 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
38800 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 20 n>.Vec3.{..............x.=.x,...
38820 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 7a ...........y.=.y,..............z
38840 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 61 .=.z,.........};.....}......<spa
38860 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
38880 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
388a0 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 3a .class="tok-fn">dot</span>(self:
388c0 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 3d .Vec3,.other:.Vec3).<span.class=
388e0 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 20 "tok-type">f32</span>.{.........
38900 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
38920 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 6f n>.self.x.*.other.x.+.self.y.*.o
38940 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 7d ther.y.+.self.z.*.other.z;.....}
38960 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 3c .};..<span.class="tok-kw">const<
38980 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /span>.expect.=.<span.class="tok
389a0 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
389c0 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;</
389e0 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 span>).testing.expect;.<span.cla
38a00 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
38a20 61 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 ass="tok-str">&quot;dot.product&
38a40 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="
38a60 74 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 tok-kw">const</span>.v1.=.Vec3.i
38a80 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 3e 31 2e 30 nit(<span.class="tok-number">1.0
38aa0 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
38ac0 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 6e ">0.0</span>,.<span.class="tok-n
38ae0 75 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 umber">0.0</span>);.....<span.cl
38b00 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 76 32 20 3d 20 56 ass="tok-kw">const</span>.v2.=.V
38b20 65 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 ec3.init(<span.class="tok-number
38b40 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 6e ">0.0</span>,.<span.class="tok-n
38b60 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 22 umber">1.0</span>,.<span.class="
38b80 74 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 3c 73 70 tok-number">0.0</span>);.....<sp
38ba0 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 65 78 70 an.class="tok-kw">try</span>.exp
38bc0 65 63 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 ect(v1.dot(v2).==.<span.class="t
38be0 6f 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 ok-number">0.0</span>);......<sp
38c00 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 4f 74 68 65 72 20 an.class="tok-comment">//.Other.
38c20 74 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 than.being.available.to.call.wit
38c40 68 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 h.dot.syntax,.struct.methods.are
38c60 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 6d </span>.....<span.class="tok-com
38c80 6d 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 ment">//.not.special..You.can.re
38ca0 66 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 ference.them.as.any.other.declar
38cc0 61 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 ation.inside</span>.....<span.cl
38ce0 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 73 74 72 75 63 74 3a ass="tok-comment">//.the.struct:
38d00 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 22 </span>.....<span.class="tok-kw"
38d20 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 56 65 63 33 2e 64 6f 74 28 76 31 2c 20 >try</span>.expect(Vec3.dot(v1,.
38d40 76 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 v2).==.<span.class="tok-number">
38d60 30 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 0.0</span>);.}..<span.class="tok
38d80 2d 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 64 65 -comment">//.Structs.can.have.de
38da0 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 6c 61 73 73 3d 22 clarations.</span>.<span.class="
38dc0 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 6e 20 68 61 76 65 tok-comment">//.Structs.can.have
38de0 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 61 73 73 3d 22 74 .0.fields.</span>.<span.class="t
38e00 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 3d 20 3c 73 70 61 ok-kw">const</span>.Empty.=.<spa
38e20 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>.{
38e40 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
38e60 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<
38e80 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 6f 6b 2d 6e 75 6d /span>.PI.=.<span.class="tok-num
38ea0 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 20 63 6c 61 73 73 ber">3.14</span>;.};.<span.class
38ec0 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
38ee0 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 61 6d 65 73 70 61 s="tok-str">&quot;struct.namespa
38f00 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 7b 0a 20 20 20 20 ced.variable&quot;</span>.{.....
38f20 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>.
38f40 65 78 70 65 63 74 28 45 6d 70 74 79 2e 50 49 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 expect(Empty.PI.==.<span.class="
38f60 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 20 20 20 20 3c 73 tok-number">3.14</span>);.....<s
38f80 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 65 78 pan.class="tok-kw">try</span>.ex
38fa0 70 65 63 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 pect(<span.class="tok-builtin">@
38fc0 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 70 61 6e 20 63 6c sizeOf</span>(Empty).==.<span.cl
38fe0 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 0a 20 20 20 ass="tok-number">0</span>);.....
39000 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 79 6f .<span.class="tok-comment">//.yo
39020 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 20 65 6d 70 74 79 u.can.still.instantiate.an.empty
39040 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 6c 61 73 73 3d 22 .struct</span>.....<span.class="
39060 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 6e 6f 74 68 69 6e tok-kw">const</span>.does_nothin
39080 67 20 3d 20 45 6d 70 74 79 20 7b 7d 3b 0a 0a 20 20 20 20 5f 20 3d 20 64 6f 65 73 5f 6e 6f 74 68 g.=.Empty.{};......_.=.does_noth
390a0 69 6e 67 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 ing;.}..<span.class="tok-comment
390c0 22 3e 2f 2f 20 73 74 72 75 63 74 20 66 69 65 6c 64 20 6f 72 64 65 72 20 69 73 20 64 65 74 65 72 ">//.struct.field.order.is.deter
390e0 6d 69 6e 65 64 20 62 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 66 6f 72 20 6f 70 74 69 6d 61 mined.by.the.compiler.for.optima
39100 6c 20 70 65 72 66 6f 72 6d 61 6e 63 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 l.performance.</span>.<span.clas
39120 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 68 6f 77 65 76 65 72 2c 20 79 6f 75 20 s="tok-comment">//.however,.you.
39140 63 61 6e 20 73 74 69 6c 6c 20 63 61 6c 63 75 6c 61 74 65 20 61 20 73 74 72 75 63 74 20 62 61 73 can.still.calculate.a.struct.bas
39160 65 20 70 6f 69 6e 74 65 72 20 67 69 76 65 6e 20 61 20 66 69 65 6c 64 20 70 6f 69 6e 74 65 72 3a e.pointer.given.a.field.pointer:
39180 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<
391a0 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 65 74 59 /span>.<span.class="tok-fn">setY
391c0 42 61 73 65 64 4f 6e 58 3c 2f 73 70 61 6e 3e 28 78 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d BasedOnX</span>(x:.*<span.class=
391e0 22 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 20 79 3a 20 3c 73 70 61 6e 20 "tok-type">f32</span>,.y:.<span.
39200 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 29 20 3c 73 70 class="tok-type">f32</span>).<sp
39220 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>.
39240 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
39260 3c 2f 73 70 61 6e 3e 20 70 6f 69 6e 74 3a 20 2a 50 6f 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c </span>.point:.*Point.=.<span.cl
39280 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
392a0 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">&
392c0 71 75 6f 74 3b 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 78 29 3b 0a 20 20 20 20 70 6f 69 quot;x&quot;</span>,.x);.....poi
392e0 6e 74 2e 79 20 3d 20 79 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 nt.y.=.y;.}.<span.class="tok-kw"
39300 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
39320 72 22 3e 26 71 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 r">&quot;field.parent.pointer&qu
39340 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
39360 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 6f 69 6e 74 20 3d 20 50 6f 69 6e 74 20 7b k-kw">var</span>.point.=.Point.{
39380 0a 20 20 20 20 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 6e ..........x.=.<span.class="tok-n
393a0 75 6d 62 65 72 22 3e 30 2e 31 32 33 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 79 umber">0.1234</span>,..........y
393c0 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 2e 35 36 .=.<span.class="tok-number">0.56
393e0 37 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 73 65 74 59 42 61 73 65 64 4f 78</span>,.....};.....setYBasedO
39400 6e 58 28 26 61 6d 70 3b 70 6f 69 6e 74 2e 78 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f nX(&amp;point.x,.<span.class="to
39420 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 39 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e k-number">0.9</span>);.....<span
39440 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
39460 74 28 70 6f 69 6e 74 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 t(point.y.==.<span.class="tok-nu
39480 6d 62 65 72 22 3e 30 2e 39 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 mber">0.9</span>);.}..<span.clas
394a0 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 20 72 65 74 75 72 s="tok-comment">//.You.can.retur
394c0 6e 20 61 20 73 74 72 75 63 74 20 66 72 6f 6d 20 61 20 66 75 6e 63 74 69 6f 6e 2e 20 54 68 69 73 n.a.struct.from.a.function..This
394e0 20 69 73 20 68 6f 77 20 77 65 20 64 6f 20 67 65 6e 65 72 69 63 73 3c 2f 73 70 61 6e 3e 0a 3c 73 .is.how.we.do.generics</span>.<s
39500 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 6e 20 5a 69 pan.class="tok-comment">//.in.Zi
39520 67 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 6b 77 22 3e 66 g:</span>.<span.class="tok-kw">f
39540 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 4c 69 n</span>.<span.class="tok-fn">Li
39560 6e 6b 65 64 4c 69 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 nkedList</span>(<span.class="tok
39580 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 6c -kw">comptime</span>.T:.<span.cl
395a0 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 73 70 61 ass="tok-type">type</span>).<spa
395c0 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 20 7b n.class="tok-type">type</span>.{
395e0 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
39600 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
39620 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 6e 20 63 6c 61 73 73 uct</span>.{.........<span.class
39640 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
39660 3d 22 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 ="tok-kw">const</span>.Node.=.<s
39680 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>
396a0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 76 3a 20 3f 2a 4e 6f 64 65 2c 0a 20 20 20 .{.............prev:.?*Node,....
396c0 20 20 20 20 20 20 20 20 20 6e 65 78 74 3a 20 3f 2a 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 .........next:.?*Node,..........
396e0 20 20 20 64 61 74 61 3a 20 54 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 0a 20 20 20 20 20 20 20 20 ...data:.T,.........};..........
39700 66 69 72 73 74 3a 20 3f 2a 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 6c 61 73 74 3a 20 20 3f 2a first:.?*Node,.........last:..?*
39720 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 6c 65 6e 3a 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 Node,.........len:...<span.class
39740 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 20 20 20 20 7d 3b ="tok-type">usize</span>,.....};
39760 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
39780 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
397a0 3b 6c 69 6e 6b 65 64 20 6c 69 73 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 ;linked.list&quot;</span>.{.....
397c0 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 75 6e <span.class="tok-comment">//.Fun
397e0 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 72 ctions.called.at.compile-time.ar
39800 65 20 6d 65 6d 6f 69 7a 65 64 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 79 6f 75 20 63 61 6e 3c 2f e.memoized..This.means.you.can</
39820 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 65 span>.....<span.class="tok-comme
39840 6e 74 22 3e 2f 2f 20 64 6f 20 74 68 69 73 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e nt">//.do.this:</span>.....<span
39860 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
39880 74 28 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 t(LinkedList(<span.class="tok-ty
398a0 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 3c 73 pe">i32</span>).==.LinkedList(<s
398c0 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 29 pan.class="tok-type">i32</span>)
398e0 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 6f 6e );......<span.class="tok-kw">con
39900 73 74 3c 2f 73 70 61 6e 3e 20 6c 69 73 74 20 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 3c 73 70 61 st</span>.list.=.LinkedList(<spa
39920 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 7b 0a n.class="tok-type">i32</span>){.
39940 20 20 20 20 20 20 20 20 2e 66 69 72 73 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .........first.=.<span.class="to
39960 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 61 k-null">null</span>,..........la
39980 73 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 6c 6c st.=.<span.class="tok-null">null
399a0 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 6c 65 6e 20 3d 20 3c 73 70 61 6e 20 63 6c </span>,..........len.=.<span.cl
399c0 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 20 20 20 7d ass="tok-number">0</span>,.....}
399e0 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
39a00 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6c 69 73 74 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 span>.expect(list.len.==.<span.c
39a20 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 0a 20 20 lass="tok-number">0</span>);....
39a40 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 53 ..<span.class="tok-comment">//.S
39a60 69 6e 63 65 20 74 79 70 65 73 20 61 72 65 20 66 69 72 73 74 20 63 6c 61 73 73 20 76 61 6c 75 65 ince.types.are.first.class.value
39a80 73 20 79 6f 75 20 63 61 6e 20 69 6e 73 74 61 6e 74 69 61 74 65 20 74 68 65 20 74 79 70 65 3c 2f s.you.can.instantiate.the.type</
39aa0 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 65 span>.....<span.class="tok-comme
39ac0 6e 74 22 3e 2f 2f 20 62 79 20 61 73 73 69 67 6e 69 6e 67 20 69 74 20 74 6f 20 61 20 76 61 72 69 nt">//.by.assigning.it.to.a.vari
39ae0 61 62 6c 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 able:</span>.....<span.class="to
39b00 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 4c 69 73 74 4f 66 49 6e 74 73 20 3d 20 k-kw">const</span>.ListOfInts.=.
39b20 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 65 LinkedList(<span.class="tok-type
39b40 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 63 6c 61 73 73 3d 22 ">i32</span>);.....<span.class="
39b60 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 4c 69 73 74 4f 66 tok-kw">try</span>.expect(ListOf
39b80 49 6e 74 73 20 3d 3d 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 Ints.==.LinkedList(<span.class="
39ba0 74 6f 6b 2d 74 79 70 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 tok-type">i32</span>));......<sp
39bc0 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 6e 6f 64 an.class="tok-kw">var</span>.nod
39be0 65 20 3d 20 4c 69 73 74 4f 66 49 6e 74 73 2e 4e 6f 64 65 7b 0a 20 20 20 20 20 20 20 20 2e 70 72 e.=.ListOfInts.Node{..........pr
39c00 65 76 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 6c 6c ev.=.<span.class="tok-null">null
39c20 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 6e 65 78 74 20 3d 20 3c 73 70 61 6e 20 63 </span>,..........next.=.<span.c
39c40 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 2c 0a 20 20 20 lass="tok-null">null</span>,....
39c60 20 20 20 20 20 2e 64 61 74 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 ......data.=.<span.class="tok-nu
39c80 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 3c 73 mber">1234</span>,.....};.....<s
39ca0 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>.
39cc0 6c 69 73 74 32 20 3d 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 list2.=.LinkedList(<span.class="
39ce0 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 7b 0a 20 20 20 20 20 20 20 20 2e tok-type">i32</span>){..........
39d00 66 69 72 73 74 20 3d 20 26 61 6d 70 3b 6e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 2e 6c 61 73 74 first.=.&amp;node,..........last
39d20 20 3d 20 26 61 6d 70 3b 6e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 2e 6c 65 6e 20 3d 20 3c 73 70 .=.&amp;node,..........len.=.<sp
39d40 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 0a an.class="tok-number">1</span>,.
39d60 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 63 6f 6d ....};......<span.class="tok-com
39d80 6d 65 6e 74 22 3e 2f 2f 20 57 68 65 6e 20 75 73 69 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 74 6f ment">//.When.using.a.pointer.to
39da0 20 61 20 73 74 72 75 63 74 2c 20 66 69 65 6c 64 73 20 63 61 6e 20 62 65 20 61 63 63 65 73 73 65 .a.struct,.fields.can.be.accesse
39dc0 64 20 64 69 72 65 63 74 6c 79 2c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 d.directly,</span>.....<span.cla
39de0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 77 69 74 68 6f 75 74 20 65 78 70 6c ss="tok-comment">//.without.expl
39e00 69 63 69 74 6c 79 20 64 65 72 65 66 65 72 65 6e 63 69 6e 67 20 74 68 65 20 70 6f 69 6e 74 65 72 icitly.dereferencing.the.pointer
39e20 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
39e40 6d 6d 65 6e 74 22 3e 2f 2f 20 53 6f 20 79 6f 75 20 63 61 6e 20 64 6f 3c 2f 73 70 61 6e 3e 0a 20 mment">//.So.you.can.do</span>..
39e60 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 61 ...<span.class="tok-kw">try</spa
39e80 6e 3e 20 65 78 70 65 63 74 28 6c 69 73 74 32 2e 66 69 72 73 74 2e 3f 2e 64 61 74 61 20 3d 3d 20 n>.expect(list2.first.?.data.==.
39ea0 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
39ec0 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 63 6f 6d 6d pan>);.....<span.class="tok-comm
39ee0 65 6e 74 22 3e 2f 2f 20 69 6e 73 74 65 61 64 20 6f 66 20 74 72 79 20 65 78 70 65 63 74 28 6c 69 ent">//.instead.of.try.expect(li
39f00 73 74 32 2e 66 69 72 73 74 2e 3f 2e 2a 2e 64 61 74 61 20 3d 3d 20 31 32 33 34 29 3b 3c 2f 73 70 st2.first.?.*.data.==.1234);</sp
39f20 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 an>.}</code></pre></figure><figu
39f40 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 re><figcaption.class="shell-cap"
39f60 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 >Shell</figcaption><pre><samp>$.
39f80 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 74 72 75 63 74 73 2e 7a 69 67 3c 2f <kbd>zig.test.test_structs.zig</
39fa0 6b 62 64 3e 0a 31 2f 34 20 74 65 73 74 5f 73 74 72 75 63 74 73 2e 74 65 73 74 2e 64 6f 74 20 70 kbd>.1/4.test_structs.test.dot.p
39fc0 72 6f 64 75 63 74 2e 2e 2e 20 4f 4b 0a 32 2f 34 20 74 65 73 74 5f 73 74 72 75 63 74 73 2e 74 65 roduct....OK.2/4.test_structs.te
39fe0 73 74 2e 73 74 72 75 63 74 20 6e 61 6d 65 73 70 61 63 65 64 20 76 61 72 69 61 62 6c 65 2e 2e 2e st.struct.namespaced.variable...
3a000 20 4f 4b 0a 33 2f 34 20 74 65 73 74 5f 73 74 72 75 63 74 73 2e 74 65 73 74 2e 66 69 65 6c 64 20 .OK.3/4.test_structs.test.field.
3a020 70 61 72 65 6e 74 20 70 6f 69 6e 74 65 72 2e 2e 2e 20 4f 4b 0a 34 2f 34 20 74 65 73 74 5f 73 74 parent.pointer....OK.4/4.test_st
3a040 72 75 63 74 73 2e 74 65 73 74 2e 6c 69 6e 6b 65 64 20 6c 69 73 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c ructs.test.linked.list....OK.All
3a060 20 34 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .4.tests.passed..</samp></pre></
3a080 66 69 67 75 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 44 65 66 61 75 6c 74 2d 46 figure>........<h3.id="Default-F
3a0a0 69 65 6c 64 2d 56 61 6c 75 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 ield-Values"><a.href="nav.xhtml#
3a0c0 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 3e 44 65 66 61 75 6c toc-Default-Field-Values">Defaul
3a0e0 74 20 46 69 65 6c 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 t.Field.Values</a>.<a.class="hdr
3a100 22 20 68 72 65 66 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 ".href="#Default-Field-Values">.
3a120 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 45 61 63 68 .</a></h3>........<p>.......Each
3a140 20 73 74 72 75 63 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 .struct.field.may.have.an.expres
3a160 73 69 6f 6e 20 69 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 sion.indicating.the.default.fiel
3a180 64 0a 20 20 20 20 20 20 76 61 6c 75 65 2e 20 53 75 63 68 20 65 78 70 72 65 73 73 69 6f 6e 73 20 d.......value..Such.expressions.
3a1a0 61 72 65 20 65 78 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 are.executed.at.<a.href="#compti
3a1c0 6d 65 22 3e 63 6f 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 0a me">comptime</a>,.and.allow.the.
3a1e0 20 20 20 20 20 20 66 69 65 6c 64 20 74 6f 20 62 65 20 6f 6d 69 74 74 65 64 20 69 6e 20 61 20 73 ......field.to.be.omitted.in.a.s
3a200 74 72 75 63 74 20 6c 69 74 65 72 61 6c 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 20 truct.literal.expression:.......
3a220 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
3a240 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
3a260 22 3e 73 74 72 75 63 74 5f 64 65 66 61 75 6c 74 5f 66 69 65 6c 64 5f 76 61 6c 75 65 73 2e 7a 69 ">struct_default_field_values.zi
3a280 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
3a2a0 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
3a2c0 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 73 74 72 >.Foo.=.<span.class="tok-kw">str
3a2e0 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=
3a300 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
3a320 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>,...
3a340 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 69 33 32 3c ..b:.<span.class="tok-type">i32<
3a360 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"
3a380 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
3a3a0 72 22 3e 26 71 75 6f 74 3b 64 65 66 61 75 6c 74 20 73 74 72 75 63 74 20 69 6e 69 74 69 61 6c 69 r">&quot;default.struct.initiali
3a3c0 7a 61 74 69 6f 6e 20 66 69 65 6c 64 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 zation.fields&quot;</span>.{....
3a3e0 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
3a400 6e 3e 20 78 3a 20 46 6f 6f 20 3d 20 2e 7b 0a 20 20 20 20 20 20 20 20 2e 62 20 3d 20 3c 73 70 61 n>.x:.Foo.=..{..........b.=.<spa
3a420 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 2c 0a 20 n.class="tok-number">5</span>,..
3a440 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 69 ...};.....<span.class="tok-kw">i
3a460 66 3c 2f 73 70 61 6e 3e 20 28 78 2e 61 20 2b 20 78 2e 62 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 f</span>.(x.a.+.x.b.!=.<span.cla
3a480 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 33 39 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 ss="tok-number">1239</span>).{..
3a4a0 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 6d 70 .......<span.class="tok-kw">comp
3a4c0 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 22 time</span>.<span.class="tok-kw"
3a4e0 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 6f >unreachable</span>;.....}.}</co
3a500 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 de></pre></figure><figure><figca
3a520 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 ption.class="shell-cap">Shell</f
3a540 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 igcaption><pre><samp>$.<kbd>zig.
3a560 74 65 73 74 20 73 74 72 75 63 74 5f 64 65 66 61 75 6c 74 5f 66 69 65 6c 64 5f 76 61 6c 75 65 73 test.struct_default_field_values
3a580 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 73 74 72 75 63 74 5f 64 65 66 61 75 6c 74 5f 66 69 .zig</kbd>.1/1.struct_default_fi
3a5a0 65 6c 64 5f 76 61 6c 75 65 73 2e 74 65 73 74 2e 64 65 66 61 75 6c 74 20 73 74 72 75 63 74 20 69 eld_values.test.default.struct.i
3a5c0 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 65 6c 64 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 nitialization.fields....OK.All.1
3a5e0 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 .tests.passed..</samp></pre></fi
3a600 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 44 65 66 61 75 6c 74 20 66 69 gure>.......<p>.......Default.fi
3a620 65 6c 64 20 76 61 6c 75 65 73 20 61 72 65 20 6f 6e 6c 79 20 61 70 70 72 6f 70 72 69 61 74 65 20 eld.values.are.only.appropriate.
3a640 77 68 65 6e 20 74 68 65 20 64 61 74 61 20 69 6e 76 61 72 69 61 6e 74 73 20 6f 66 20 61 20 73 74 when.the.data.invariants.of.a.st
3a660 72 75 63 74 0a 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 65 20 76 69 6f 6c 61 74 65 64 20 62 79 ruct.......cannot.be.violated.by
3a680 20 6f 6d 69 74 74 69 6e 67 20 74 68 61 74 20 66 69 65 6c 64 20 66 72 6f 6d 20 61 6e 20 69 6e 69 .omitting.that.field.from.an.ini
3a6a0 74 69 61 6c 69 7a 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 tialization........</p>.......<p
3a6c0 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 68 65 72 65 20 69 73 20 61 6e 20 >.......For.example,.here.is.an.
3a6e0 69 6e 61 70 70 72 6f 70 72 69 61 74 65 20 75 73 65 20 6f 66 20 64 65 66 61 75 6c 74 20 73 74 72 inappropriate.use.of.default.str
3a700 75 63 74 20 66 69 65 6c 64 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 3a 0a 20 20 20 20 20 20 uct.field.initialization:.......
3a720 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
3a740 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
3a760 22 3e 62 61 64 5f 64 65 66 61 75 6c 74 5f 76 61 6c 75 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f ">bad_default_value.zig</cite></
3a780 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 figcaption><pre><code><span.clas
3a7a0 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 68 72 65 73 68 6f 6c s="tok-kw">const</span>.Threshol
3a7c0 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 73 74 72 75 63 74 3c d.=.<span.class="tok-kw">struct<
3a7e0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 6d 69 6e 69 6d 75 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 /span>.{.....minimum:.<span.clas
3a800 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 3c 73 70 61 6e 20 s="tok-type">f32</span>.=.<span.
3a820 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 32 35 3c 2f 73 70 61 6e 3e 2c 0a class="tok-number">0.25</span>,.
3a840 20 20 20 20 6d 61 78 69 6d 75 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ....maximum:.<span.class="tok-ty
3a860 70 65 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 pe">f32</span>.=.<span.class="to
3a880 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 37 35 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 3c 73 70 61 k-number">0.75</span>,......<spa
3a8a0 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 43 61 n.class="tok-kw">const</span>.Ca
3a8c0 74 65 67 6f 72 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 65 6e tegory.=.<span.class="tok-kw">en
3a8e0 75 6d 3c 2f 73 70 61 6e 3e 20 7b 20 6c 6f 77 2c 20 6d 65 64 69 75 6d 2c 20 68 69 67 68 20 7d 3b um</span>.{.low,.medium,.high.};
3a900 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 6e 3c 2f 73 ......<span.class="tok-kw">fn</s
3a920 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 61 74 65 67 6f pan>.<span.class="tok-fn">catego
3a940 72 69 7a 65 3c 2f 73 70 61 6e 3e 28 74 3a 20 54 68 72 65 73 68 6f 6c 64 2c 20 76 61 6c 75 65 3a rize</span>(t:.Threshold,.value:
3a960 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
3a980 6e 3e 29 20 43 61 74 65 67 6f 72 79 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 74 2e n>).Category.{.........assert(t.
3a9a0 6d 61 78 69 6d 75 6d 20 26 67 74 3b 3d 20 74 2e 6d 69 6e 69 6d 75 6d 29 3b 0a 20 20 20 20 20 20 maximum.&gt;=.t.minimum);.......
3a9c0 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>
3a9e0 20 28 76 61 6c 75 65 20 26 6c 74 3b 20 74 2e 6d 69 6e 69 6d 75 6d 29 20 3c 73 70 61 6e 20 63 6c .(value.&lt;.t.minimum).<span.cl
3aa00 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 2e 6c 6f 77 3b ass="tok-kw">return</span>..low;
3aa20 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 66 .........<span.class="tok-kw">if
3aa40 3c 2f 73 70 61 6e 3e 20 28 76 61 6c 75 65 20 26 67 74 3b 20 74 2e 6d 61 78 69 6d 75 6d 29 20 3c </span>.(value.&gt;.t.maximum).<
3aa60 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
3aa80 3e 20 2e 68 69 67 68 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 >..high;.........<span.class="to
3aaa0 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 2e 6d 65 64 69 75 6d 3b 0a 20 20 20 k-kw">return</span>..medium;....
3aac0 20 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 70 75 62 3c .}.};..<span.class="tok-kw">pub<
3aae0 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</
3ab00 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<
3ab20 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 22 /span>().!<span.class="tok-type"
3ab40 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="
3ab60 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 74 68 72 65 73 68 6f 6c 64 3a 20 54 68 tok-kw">var</span>.threshold:.Th
3ab80 72 65 73 68 6f 6c 64 20 3d 20 2e 7b 0a 20 20 20 20 20 20 20 20 2e 6d 61 78 69 6d 75 6d 20 3d 20 reshold.=..{..........maximum.=.
3aba0 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 2e 32 30 3c 2f 73 <span.class="tok-number">0.20</s
3abc0 70 61 6e 3e 2c 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 pan>,.....};.....<span.class="to
3abe0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 61 74 65 67 6f 72 79 20 3d 20 74 68 k-kw">const</span>.category.=.th
3ac00 72 65 73 68 6f 6c 64 2e 63 61 74 65 67 6f 72 69 7a 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 reshold.categorize(<span.class="
3ac20 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 2e 39 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 tok-number">0.90</span>);.....<s
3ac40 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 73 74 pan.class="tok-kw">try</span>.st
3ac60 64 2e 69 6f 2e 67 65 74 53 74 64 4f 75 74 28 29 2e 77 72 69 74 65 41 6c 6c 28 3c 73 70 61 6e 20 d.io.getStdOut().writeAll(<span.
3ac80 63 6c 61 73 73 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 class="tok-builtin">@tagName</sp
3aca0 61 6e 3e 28 63 61 74 65 67 6f 72 79 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 an>(category));.}..<span.class="
3acc0 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 6e tok-kw">const</span>.std.=.<span
3ace0 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
3ad00 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;
3ad20 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 22 std&quot;</span>);.<span.class="
3ad40 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 74 tok-kw">const</span>.assert.=.st
3ad60 64 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 2f 66 69 d.debug.assert;</code></pre></fi
3ad80 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
3ada0 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
3adc0 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 62 61 64 e><samp>$.<kbd>zig.build-exe.bad
3ade0 5f 64 65 66 61 75 6c 74 5f 76 61 6c 75 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e _default_value.zig</kbd>.$.<kbd>
3ae00 2e 2f 62 61 64 5f 64 65 66 61 75 6c 74 5f 76 61 6c 75 65 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 ./bad_default_value</kbd>.thread
3ae20 20 31 33 36 33 30 33 20 70 61 6e 69 63 3a 20 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 61 62 .136303.panic:.reached.unreachab
3ae40 6c 65 20 63 6f 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f le.code.<span.class="sgr-1m">/ho
3ae60 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 64 me/andy/src/zig-0.12.x/lib/std/d
3ae80 65 62 75 67 2e 7a 69 67 3a 34 30 33 3a 31 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c ebug.zig:403:14</span>:.<span.cl
3aea0 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 36 36 66 64 20 69 6e 20 61 73 73 65 72 74 ass="sgr-2m">0x10366fd.in.assert
3aec0 20 28 62 61 64 5f 64 65 66 61 75 6c 74 5f 76 61 6c 75 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 .(bad_default_value)</span>.....
3aee0 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 72 74 69 if.(!ok).unreachable;.//.asserti
3af00 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 20 63 6c on.failure..............<span.cl
3af20 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ass="sgr-32m">^</span>.<span.cla
3af40 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 ss="sgr-1m">/home/andy/src/zig-0
3af60 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 62 61 64 5f 64 65 66 61 75 6c 74 5f 76 61 6c .12.x/docgen_tmp/bad_default_val
3af80 75 65 2e 7a 69 67 3a 38 3a 31 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ue.zig:8:15</span>:.<span.class=
3afa0 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 63 30 39 20 69 6e 20 63 61 74 65 67 6f 72 69 7a 65 "sgr-2m">0x1033c09.in.categorize
3afc0 20 28 62 61 64 5f 64 65 66 61 75 6c 74 5f 76 61 6c 75 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 .(bad_default_value)</span>.....
3afe0 20 20 20 20 61 73 73 65 72 74 28 74 2e 6d 61 78 69 6d 75 6d 20 26 67 74 3b 3d 20 74 2e 6d 69 6e ....assert(t.maximum.&gt;=.t.min
3b000 69 6d 75 6d 29 3b 0a 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 imum);...............<span.class
3b020 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="sgr-32m">^</span>.<span.class=
3b040 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 "sgr-1m">/home/andy/src/zig-0.12
3b060 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 62 61 64 5f 64 65 66 61 75 6c 74 5f 76 61 6c 75 65 2e .x/docgen_tmp/bad_default_value.
3b080 7a 69 67 3a 31 39 3a 34 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 zig:19:42</span>:.<span.class="s
3b0a0 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 62 33 61 20 69 6e 20 6d 61 69 6e 20 28 62 61 64 5f 64 65 gr-2m">0x1033b3a.in.main.(bad_de
3b0c0 66 61 75 6c 74 5f 76 61 6c 75 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 63 61 fault_value)</span>.....const.ca
3b0e0 74 65 67 6f 72 79 20 3d 20 74 68 72 65 73 68 6f 6c 64 2e 63 61 74 65 67 6f 72 69 7a 65 28 30 2e tegory.=.threshold.categorize(0.
3b100 39 30 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 90);............................
3b120 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 73 67 72 2d 33 ..............<span.class="sgr-3
3b140 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
3b160 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f ">/home/andy/src/zig-0.12.x/lib/
3b180 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 31 31 3a 33 37 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 std/start.zig:511:37</span>:.<sp
3b1a0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 61 35 35 20 69 6e 20 70 an.class="sgr-2m">0x1033a55.in.p
3b1c0 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 62 61 64 5f 64 65 66 61 75 6c 74 osixCallMainAndExit.(bad_default
3b1e0 5f 76 61 6c 75 65 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 _value)</span>.............const
3b200 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
3b220 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 |.{.............................
3b240 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c ........<span.class="sgr-32m">^<
3b260 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d /span>.<span.class="sgr-1m">/hom
3b280 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 e/andy/src/zig-0.12.x/lib/std/st
3b2a0 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 art.zig:253:5</span>:.<span.clas
3b2c0 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 35 37 31 20 69 6e 20 5f 73 74 61 72 74 20 28 s="sgr-2m">0x1033571.in._start.(
3b2e0 62 61 64 5f 64 65 66 61 75 6c 74 5f 76 61 6c 75 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 bad_default_value)</span>.....as
3b300 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 m.volatile.(switch.(native_arch)
3b320 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f .{.....<span.class="sgr-32m">^</
3b340 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f span>.<span.class="sgr-1m">???:?
3b360 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e :?</span>:.<span.class="sgr-2m">
3b380 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 0x0.in.???.(???)</span>.(process
3b3a0 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f .terminated.by.signal).</samp></
3b3c0 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 62 pre></figure>.......<p>.......Ab
3b3e0 6f 76 65 20 79 6f 75 20 63 61 6e 20 73 65 65 20 74 68 65 20 64 61 6e 67 65 72 20 6f 66 20 69 67 ove.you.can.see.the.danger.of.ig
3b400 6e 6f 72 69 6e 67 20 74 68 69 73 20 70 72 69 6e 63 69 70 6c 65 2e 20 54 68 65 20 64 65 66 61 75 noring.this.principle..The.defau
3b420 6c 74 0a 20 20 20 20 20 20 66 69 65 6c 64 20 76 61 6c 75 65 73 20 63 61 75 73 65 64 20 74 68 65 lt.......field.values.caused.the
3b440 20 64 61 74 61 20 69 6e 76 61 72 69 61 6e 74 20 74 6f 20 62 65 20 76 69 6f 6c 61 74 65 64 2c 20 .data.invariant.to.be.violated,.
3b460 63 61 75 73 69 6e 67 20 69 6c 6c 65 67 61 6c 0a 20 20 20 20 20 20 62 65 68 61 76 69 6f 72 2e 0a causing.illegal.......behavior..
3b480 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 66 69 ......</p>.......<p>.......To.fi
3b4a0 78 20 74 68 69 73 2c 20 72 65 6d 6f 76 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 x.this,.remove.the.default.value
3b4c0 73 20 66 72 6f 6d 20 61 6c 6c 20 74 68 65 20 73 74 72 75 63 74 20 66 69 65 6c 64 73 2c 20 61 6e s.from.all.the.struct.fields,.an
3b4e0 64 20 70 72 6f 76 69 64 65 0a 20 20 20 20 20 20 61 20 6e 61 6d 65 64 20 64 65 66 61 75 6c 74 20 d.provide.......a.named.default.
3b500 76 61 6c 75 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e value:.......</p>.......<figure>
3b520 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 <figcaption.class="zig-cap"><cit
3b540 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 74 72 75 63 74 5f 64 65 66 61 75 6c 74 5f 76 61 e.class="file">struct_default_va
3b560 6c 75 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e lue.zig</cite></figcaption><pre>
3b580 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
3b5a0 3c 2f 73 70 61 6e 3e 20 54 68 72 65 73 68 6f 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d </span>.Threshold.=.<span.class=
3b5c0 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 6d 69 6e "tok-kw">struct</span>.{.....min
3b5e0 69 6d 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 3e 66 33 32 imum:.<span.class="tok-type">f32
3b600 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 6d 61 78 69 6d 75 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 </span>,.....maximum:.<span.clas
3b620 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 3c 73 s="tok-type">f32</span>,......<s
3b640 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>.
3b660 64 65 66 61 75 6c 74 3a 20 54 68 72 65 73 68 6f 6c 64 20 3d 20 2e 7b 0a 20 20 20 20 20 20 20 20 default:.Threshold.=..{.........
3b680 2e 6d 69 6e 69 6d 75 6d 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 .minimum.=.<span.class="tok-numb
3b6a0 65 72 22 3e 30 2e 32 35 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 6d 61 78 69 6d 75 er">0.25</span>,..........maximu
3b6c0 6d 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 2e 37 m.=.<span.class="tok-number">0.7
3b6e0 35 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 5</span>,.....};.};</code></pre>
3b700 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 49 66 20 61 20 73 74 72 75 63 74 20 76 </figure>.......<p>If.a.struct.v
3b720 61 6c 75 65 20 72 65 71 75 69 72 65 73 20 61 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 20 76 61 alue.requires.a.runtime-known.va
3b740 6c 75 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 64 0a 20 lue.in.order.to.be.initialized..
3b760 20 20 20 20 20 77 69 74 68 6f 75 74 20 76 69 6f 6c 61 74 69 6e 67 20 64 61 74 61 20 69 6e 76 61 .....without.violating.data.inva
3b780 72 69 61 6e 74 73 2c 20 74 68 65 6e 20 75 73 65 20 61 6e 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 riants,.then.use.an.initializati
3b7a0 6f 6e 20 6d 65 74 68 6f 64 20 74 68 61 74 20 61 63 63 65 70 74 73 0a 20 20 20 20 20 20 74 68 6f on.method.that.accepts.......tho
3b7c0 73 65 20 72 75 6e 74 69 6d 65 20 76 61 6c 75 65 73 2c 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 73 se.runtime.values,.and.populates
3b7e0 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 66 69 65 6c 64 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 .the.remaining.fields.</p>......
3b800 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 65 78 74 65 72 6e 2d 73 74 72 75 63 74 22 3e .........<h3.id="extern-struct">
3b820 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 78 74 65 72 6e 2d 73 74 <a.href="nav.xhtml#toc-extern-st
3b840 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 61 20 63 6c 61 73 73 ruct">extern.struct</a>.<a.class
3b860 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 63 74 22 3e c2 a7 3c ="hdr".href="#extern-struct">..<
3b880 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e 20 3c 63 6f 64 65 3e 3c 73 70 61 /a></h3>........<p>An.<code><spa
3b8a0 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 20 3c n.class="tok-kw">extern</span>.<
3b8c0 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 6e span.class="tok-kw">struct</span
3b8e0 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 69 6e 2d 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 20 6d 61 ></code>.has.in-memory.layout.ma
3b900 74 63 68 69 6e 67 0a 20 20 20 20 20 20 74 68 65 20 43 20 41 42 49 20 66 6f 72 20 74 68 65 20 74 tching.......the.C.ABI.for.the.t
3b920 61 72 67 65 74 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 49 66 20 77 65 6c 6c 2d 64 65 66 69 arget.</p>.......<p>If.well-defi
3b940 6e 65 64 20 69 6e 2d 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 20 69 73 20 6e 6f 74 20 72 65 71 75 ned.in-memory.layout.is.not.requ
3b960 69 72 65 64 2c 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 ired,.<a.href="#struct">struct</
3b980 61 3e 20 69 73 20 61 20 62 65 74 74 65 72 20 63 68 6f 69 63 65 0a 20 20 20 20 20 20 62 65 63 61 a>.is.a.better.choice.......beca
3b9a0 75 73 65 20 69 74 20 70 6c 61 63 65 73 20 66 65 77 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 73 use.it.places.fewer.restrictions
3b9c0 20 6f 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 .on.the.compiler.</p>.......<p>S
3b9e0 65 65 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 6b ee.<a.href="#packed-struct">pack
3ba00 65 64 20 73 74 72 75 63 74 3c 2f 61 3e 20 66 6f 72 20 61 20 73 74 72 75 63 74 20 74 68 61 74 20 ed.struct</a>.for.a.struct.that.
3ba20 68 61 73 20 74 68 65 20 41 42 49 20 6f 66 20 69 74 73 20 62 61 63 6b 69 6e 67 20 69 6e 74 65 67 has.the.ABI.of.its.backing.integ
3ba40 65 72 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 66 6f er,.......which.can.be.useful.fo
3ba60 72 20 6d 6f 64 65 6c 69 6e 67 20 66 6c 61 67 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 r.modeling.flags.</p>.......<p>S
3ba80 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 65 ee.also:</p><ul>.<li><a.href="#e
3baa0 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 3c 2f 6c xtern-union">extern.union</a></l
3bac0 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 65 6e 75 6d 22 3e 65 78 i>.<li><a.href="#extern-enum">ex
3bae0 74 65 72 6e 20 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 tern.enum</a></li>.</ul>........
3bb00 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 70 61 63 6b 65 64 2d 73 74 72 75 63 74 22 3e 3c ........<h3.id="packed-struct"><
3bb20 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 70 61 63 6b 65 64 2d 73 74 72 a.href="nav.xhtml#toc-packed-str
3bb40 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 6c 61 73 73 3d uct">packed.struct</a>.<a.class=
3bb60 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 3e c2 a7 3c 2f "hdr".href="#packed-struct">..</
3bb80 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 6e 6c 69 6b 65 20 a></h3>........<p>.......Unlike.
3bba0 6e 6f 72 6d 61 6c 20 73 74 72 75 63 74 73 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 normal.structs,.<code><span.clas
3bbc0 73 3d 22 74 6f 6b 2d 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 s="tok-kw">packed</span></code>.
3bbe0 73 74 72 75 63 74 73 20 68 61 76 65 20 67 75 61 72 61 6e 74 65 65 64 20 69 6e 2d 6d 65 6d 6f 72 structs.have.guaranteed.in-memor
3bc00 79 20 6c 61 79 6f 75 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a y.layout:.......</p>.......<ul>.
3bc20 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 69 65 6c 64 73 20 72 65 6d 61 69 6e 20 69 6e 20 74 68 65 ........<li>Fields.remain.in.the
3bc40 20 6f 72 64 65 72 20 64 65 63 6c 61 72 65 64 2c 20 6c 65 61 73 74 20 74 6f 20 6d 6f 73 74 20 73 .order.declared,.least.to.most.s
3bc60 69 67 6e 69 66 69 63 61 6e 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 65 ignificant.</li>.........<li>The
3bc80 72 65 20 69 73 20 6e 6f 20 70 61 64 64 69 6e 67 20 62 65 74 77 65 65 6e 20 66 69 65 6c 64 73 2e re.is.no.padding.between.fields.
3bca0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 5a 69 67 20 73 75 70 70 6f 72 74 73 20 61 </li>.........<li>Zig.supports.a
3bcc0 72 62 69 74 72 61 72 79 20 77 69 64 74 68 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 rbitrary.width.<a.href="#Integer
3bce0 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 20 61 6e 64 20 61 6c 74 68 6f 75 67 68 20 6e 6f 72 s">Integers</a>.and.although.nor
3bd00 6d 61 6c 6c 79 2c 20 69 6e 74 65 67 65 72 73 20 77 69 74 68 20 66 65 77 65 72 0a 20 20 20 20 20 mally,.integers.with.fewer......
3bd20 20 20 20 74 68 61 6e 20 38 20 62 69 74 73 20 77 69 6c 6c 20 73 74 69 6c 6c 20 75 73 65 20 31 20 ...than.8.bits.will.still.use.1.
3bd40 62 79 74 65 20 6f 66 20 6d 65 6d 6f 72 79 2c 20 69 6e 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 byte.of.memory,.in.packed.struct
3bd60 73 2c 20 74 68 65 79 20 75 73 65 0a 20 20 20 20 20 20 20 20 65 78 61 63 74 6c 79 20 74 68 65 69 s,.they.use.........exactly.thei
3bd80 72 20 62 69 74 20 77 69 64 74 68 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 r.bit.width..........</li>......
3bda0 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ...<li><code><span.class="tok-ty
3bdc0 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 75 73 pe">bool</span></code>.fields.us
3bde0 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 3c 6c e.exactly.1.bit.</li>.........<l
3be00 69 3e 41 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 66 69 i>An.<a.href="#enum">enum</a>.fi
3be20 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 64 74 68 20 6f eld.uses.exactly.the.bit.width.o
3be40 66 20 69 74 73 20 69 6e 74 65 67 65 72 20 74 61 67 20 74 79 70 65 2e 3c 2f 6c 69 3e 0a 20 20 20 f.its.integer.tag.type.</li>....
3be60 20 20 20 20 20 3c 6c 69 3e 41 20 3c 61 20 68 72 65 66 3d 22 23 70 61 63 6b 65 64 2d 75 6e 69 6f .....<li>A.<a.href="#packed-unio
3be80 6e 22 3e 70 61 63 6b 65 64 20 75 6e 69 6f 6e 3c 2f 61 3e 20 66 69 65 6c 64 20 75 73 65 73 20 65 n">packed.union</a>.field.uses.e
3bea0 78 61 63 74 6c 79 20 74 68 65 20 62 69 74 20 77 69 64 74 68 20 6f 66 20 74 68 65 20 75 6e 69 6f xactly.the.bit.width.of.the.unio
3bec0 6e 20 66 69 65 6c 64 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 74 68 65 20 6c 61 72 67 65 73 74 n.field.with.........the.largest
3bee0 20 62 69 74 20 77 69 64 74 68 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 .bit.width.</li>.......</ul>....
3bf00 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 3c ...<p>.......This.means.that.a.<
3bf20 63 6f 64 65 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 65 64 code><span.class="tok-kw">packed
3bf40 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
3bf60 75 63 74 3c 2f 73 70 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 uct</span></code>.can.participat
3bf80 65 0a 20 20 20 20 20 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 e.......in.a.<a.href="#bitCast">
3bfa0 40 62 69 74 43 61 73 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 @bitCast</a>.or.a.<a.href="#ptrC
3bfc0 61 73 74 22 3e 40 70 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 ast">@ptrCast</a>.to.reinterpret
3bfe0 20 6d 65 6d 6f 72 79 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 .memory........This.even.works.a
3c000 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 65 3c 2f t.<a.href="#comptime">comptime</
3c020 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 a>:.......</p>.......<figure><fi
3c040 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
3c060 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 70 61 63 6b 65 64 5f 73 74 72 75 63 74 73 2e lass="file">test_packed_structs.
3c080 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 zig</cite></figcaption><pre><cod
3c0a0 65 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 e><span.class="tok-kw">const</sp
3c0c0 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
3c0e0 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="
3c100 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>)
3c120 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
3c140 61 6e 3e 20 6e 61 74 69 76 65 5f 65 6e 64 69 61 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d an>.native_endian.=.<span.class=
3c160 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
3c180 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
3c1a0 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 61 72 67 65 74 2e 63 70 75 2e 61 72 63 68 2e 65 &quot;</span>).target.cpu.arch.e
3c1c0 6e 64 69 61 6e 28 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 ndian();.<span.class="tok-kw">co
3c1e0 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 67 2e nst</span>.expect.=.std.testing.
3c200 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 63 6f expect;..<span.class="tok-kw">co
3c220 6e 73 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 nst</span>.Full.=.<span.class="t
3c240 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 61 73 73 ok-kw">packed</span>.<span.class
3c260 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 75 ="tok-kw">struct</span>.{.....nu
3c280 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 75 31 36 mber:.<span.class="tok-type">u16
3c2a0 3c 2f 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 </span>,.};.<span.class="tok-kw"
3c2c0 3e 63 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 >const</span>.Divided.=.<span.cl
3c2e0 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 73 70 61 6e ass="tok-kw">packed</span>.<span
3c300 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>.{.
3c320 20 20 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 ....half1:.<span.class="tok-type
3c340 22 3e 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 ">u8</span>,.....quarter3:.<span
3c360 20 63 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 .class="tok-type">u4</span>,....
3c380 20 71 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 .quarter4:.<span.class="tok-type
3c3a0 22 3e 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 ">u4</span>,.};..<span.class="to
3c3c0 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
3c3e0 6f 6b 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 ok-str">&quot;@bitCast.between.p
3c400 61 63 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 acked.structs&quot;</span>.{....
3c420 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>
3c440 20 64 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 .doTheTest();.....<span.class="t
3c460 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 22 74 ok-kw">try</span>.<span.class="t
3c480 6f 6b 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 ok-kw">comptime</span>.doTheTest
3c4a0 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 2f ();.}..<span.class="tok-kw">fn</
3c4c0 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 54 68 65 span>.<span.class="tok-fn">doThe
3c4e0 54 65 73 74 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 Test</span>().!<span.class="tok-
3c500 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
3c520 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c ass="tok-kw">try</span>.expect(<
3c540 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
3c560 3c 2f 73 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 </span>(Full).==.<span.class="to
3c580 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 63 k-number">2</span>);.....<span.c
3c5a0 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 65 78 70 65 63 74 28 lass="tok-kw">try</span>.expect(
3c5c0 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
3c5e0 66 3c 2f 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 f</span>(Divided).==.<span.class
3c600 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 3c 73 70 ="tok-number">2</span>);.....<sp
3c620 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 66 an.class="tok-kw">const</span>.f
3c640 75 6c 6c 20 3d 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 ull.=.Full{..number.=.<span.clas
3c660 73 3d 22 74 6f 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 s="tok-number">0x1234</span>.};.
3c680 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</
3c6a0 73 70 61 6e 3e 20 64 69 76 69 64 65 64 3a 20 44 69 76 69 64 65 64 20 3d 20 3c 73 70 61 6e 20 63 span>.divided:.Divided.=.<span.c
3c6c0 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 70 61 lass="tok-builtin">@bitCast</spa
3c6e0 6e 3e 28 66 75 6c 6c 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 n>(full);.....<span.class="tok-k
3c700 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 64 69 76 69 64 65 64 2e 68 61 6c w">try</span>.expect(divided.hal
3c720 66 31 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 f1.==.<span.class="tok-number">0
3c740 78 33 34 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 x34</span>);.....<span.class="to
3c760 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 64 69 76 69 64 65 64 2e k-kw">try</span>.expect(divided.
3c780 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
3c7a0 62 65 72 22 3e 30 78 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ber">0x2</span>);.....<span.clas
3c7c0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 64 69 76 s="tok-kw">try</span>.expect(div
3c7e0 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
3c800 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 k-number">0x1</span>);......<spa
3c820 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 72 n.class="tok-kw">const</span>.or
3c840 64 65 72 65 64 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 dered:.[<span.class="tok-number"
3c860 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 22 >2</span>]<span.class="tok-type"
3c880 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 75 >u8</span>.=.<span.class="tok-bu
3c8a0 69 6c 74 69 6e 22 3e 40 62 69 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 66 75 6c 6c 29 3b 0a 20 20 iltin">@bitCast</span>(full);...
3c8c0 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 73 ..<span.class="tok-kw">switch</s
3c8e0 70 61 6e 3e 20 28 6e 61 74 69 76 65 5f 65 6e 64 69 61 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 2e pan>.(native_endian).{..........
3c900 62 69 67 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c big.=&gt;.{.............<span.cl
3c920 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6f ass="tok-kw">try</span>.expect(o
3c940 72 64 65 72 65 64 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 rdered[<span.class="tok-number">
3c960 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
3c980 6d 62 65 72 22 3e 30 78 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 mber">0x12</span>);.............
3c9a0 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>.
3c9c0 65 78 70 65 63 74 28 6f 72 64 65 72 65 64 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d expect(ordered[<span.class="tok-
3c9e0 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
3ca00 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 ="tok-number">0x34</span>);.....
3ca20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 2e 6c 69 74 74 6c 65 20 3d 26 67 74 3b 20 7b 0a 20 ....},..........little.=&gt;.{..
3ca40 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 22 3e ...........<span.class="tok-kw">
3ca60 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6f 72 64 65 72 65 64 5b 3c 73 70 61 6e 20 try</span>.expect(ordered[<span.
3ca80 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 20 class="tok-number">0</span>].==.
3caa0 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 34 3c 2f 73 <span.class="tok-number">0x34</s
3cac0 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 73 73 3d 22 pan>);.............<span.class="
3cae0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6f 72 64 65 72 65 tok-kw">try</span>.expect(ordere
3cb00 64 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 d[<span.class="tok-number">1</sp
3cb20 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 22 an>].==.<span.class="tok-number"
3cb40 3e 30 78 31 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 7d 0a >0x12</span>);.........},.....}.
3cb60 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
3cb80 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
3cba0 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
3cbc0 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 70 61 63 6b 65 64 5f 73 74 72 75 63 74 73 2e 7a 69 >zig.test.test_packed_structs.zi
3cbe0 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 70 61 63 6b 65 64 5f 73 74 72 75 63 74 73 2e g</kbd>.1/1.test_packed_structs.
3cc00 74 65 73 74 2e 40 62 69 74 43 61 73 74 20 62 65 74 77 65 65 6e 20 70 61 63 6b 65 64 20 73 74 72 test.@bitCast.between.packed.str
3cc20 75 63 74 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c ucts....OK.All.1.tests.passed..<
3cc40 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a /samp></pre></figure>.......<p>.
3cc60 20 20 20 20 20 20 54 68 65 20 62 61 63 6b 69 6e 67 20 69 6e 74 65 67 65 72 20 69 73 20 69 6e 66 ......The.backing.integer.is.inf
3cc80 65 72 72 65 64 20 66 72 6f 6d 20 74 68 65 20 66 69 65 6c 64 73 27 20 74 6f 74 61 6c 20 62 69 74 erred.from.the.fields'.total.bit
3cca0 20 77 69 64 74 68 2e 0a 20 20 20 20 20 20 4f 70 74 69 6f 6e 61 6c 6c 79 2c 20 69 74 20 63 61 6e .width........Optionally,.it.can
3ccc0 20 62 65 20 65 78 70 6c 69 63 69 74 6c 79 20 70 72 6f 76 69 64 65 64 20 61 6e 64 20 65 6e 66 6f .be.explicitly.provided.and.enfo
3cce0 72 63 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e rced.at.compile.time:.......</p>
3cd00 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 .......<figure><figcaption.class
3cd20 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ="zig-cap"><cite.class="file">te
3cd40 73 74 5f 6d 69 73 73 69 7a 65 64 5f 70 61 63 6b 65 64 5f 73 74 72 75 63 74 2e 7a 69 67 3c 2f 63 st_missized_packed_struct.zig</c
3cd60 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ite></figcaption><pre><code><spa
3cd80 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
3cda0 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 69 73 73 69 7a 65 an.class="tok-str">&quot;missize
3cdc0 64 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 d.packed.struct&quot;</span>.{..
3cde0 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
3ce00 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 6b 77 22 3e 70 61 pan>.S.=.<span.class="tok-kw">pa
3ce20 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 22 cked</span>.<span.class="tok-kw"
3ce40 3e 73 74 72 75 63 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 >struct</span>(<span.class="tok-
3ce60 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 20 7b 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 type">u32</span>).{.a:.<span.cla
3ce80 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 ss="tok-type">u16</span>,.b:.<sp
3cea0 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 7d 3b an.class="tok-type">u8</span>.};
3cec0 0a 20 20 20 20 5f 20 3d 20 53 7b 20 2e 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ....._.=.S{..a.=.<span.class="to
3cee0 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 20 2e 62 20 3d 20 3c 73 70 61 6e 20 63 k-number">4</span>,..b.=.<span.c
3cf00 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 20 7d 3b 0a 7d 3c lass="tok-number">2</span>.};.}<
3cf20 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
3cf40 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
3cf60 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
3cf80 69 67 20 74 65 73 74 20 74 65 73 74 5f 6d 69 73 73 69 7a 65 64 5f 70 61 63 6b 65 64 5f 73 74 72 ig.test.test_missized_packed_str
3cfa0 75 63 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 uct.zig</kbd>.<span.class="sgr-1
3cfc0 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 6d 69 73 73 69 7a 65 64 5f 70 61 63 6b m">docgen_tmp/test_missized_pack
3cfe0 65 64 5f 73 74 72 75 63 74 2e 7a 69 67 3a 32 3a 32 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e ed_struct.zig:2:29:.</span><span
3d000 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c .class="sgr-31m">error:.</span><
3d020 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 62 61 63 6b 69 6e 67 20 69 6e 74 65 span.class="sgr-1m">backing.inte
3d040 67 65 72 20 74 79 70 65 20 27 75 33 32 27 20 68 61 73 20 62 69 74 20 73 69 7a 65 20 33 32 20 62 ger.type.'u32'.has.bit.size.32.b
3d060 75 74 20 74 68 65 20 73 74 72 75 63 74 20 66 69 65 6c 64 73 20 68 61 76 65 20 61 20 74 6f 74 61 ut.the.struct.fields.have.a.tota
3d080 6c 20 62 69 74 20 73 69 7a 65 20 6f 66 20 32 34 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 l.bit.size.of.24.</span>....cons
3d0a0 74 20 53 20 3d 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 28 75 33 32 29 20 7b 20 61 3a 20 75 31 t.S.=.packed.struct(u32).{.a:.u1
3d0c0 36 2c 20 62 3a 20 75 38 20 7d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6,.b:.u8.};.....................
3d0e0 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e ........<span.class="sgr-32m">^~
3d100 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e ~.</span>.</samp></pre></figure>
3d120 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 20 74 68 65 20 .......<p>.......Zig.allows.the.
3d140 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 6e 2d 62 79 74 address.to.be.taken.of.a.non-byt
3d160 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 0a 20 20 20 20 e-aligned.field:.......</p>.....
3d180 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
3d1a0 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 70 6f -cap"><cite.class="file">test_po
3d1c0 69 6e 74 65 72 5f 74 6f 5f 6e 6f 6e 2d 62 79 74 65 5f 61 6c 69 67 6e 65 64 5f 66 69 65 6c 64 2e inter_to_non-byte_aligned_field.
3d1e0 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 zig</cite></figcaption><pre><cod
3d200 65 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 e><span.class="tok-kw">const</sp
3d220 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
3d240 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="
3d260 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>)
3d280 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
3d2a0 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b an>.expect.=.std.testing.expect;
3d2c0 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
3d2e0 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-
3d300 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
3d320 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
3d340 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>,.
3d360 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
3d380 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
3d3a0 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
3d3c0 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 42 69 74 46 s="tok-kw">var</span>.foo.=.BitF
3d3e0 69 65 6c 64 7b 0a 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 ield{......a.=.<span.class="tok-
3d400 6e 75 6d 62 65 72 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 number">1</span>,......b.=.<span
3d420 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 20 20 .class="tok-number">2</span>,...
3d440 20 20 2e 63 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 ...c.=.<span.class="tok-number">
3d460 33 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 3</span>,.};..<span.class="tok-k
3d480 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-
3d4a0 73 74 72 22 3e 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 61 str">&quot;pointer.to.non-byte-a
3d4c0 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 20 7b 0a 20 20 20 20 ligned.field&quot;</span>.{.....
3d4e0 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
3d500 3e 20 70 74 72 20 3d 20 26 61 6d 70 3b 66 6f 6f 2e 62 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c >.ptr.=.&amp;foo.b;.....<span.cl
3d520 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 ass="tok-kw">try</span>.expect(p
3d540 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 6d 62 65 72 22 tr.*.==.<span.class="tok-number"
3d560 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 2f 66 69 67 75 >2</span>);.}</code></pre></figu
3d580 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 re><figure><figcaption.class="sh
3d5a0 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ell-cap">Shell</figcaption><pre>
3d5c0 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 70 6f 69 6e 74 <samp>$.<kbd>zig.test.test_point
3d5e0 65 72 5f 74 6f 5f 6e 6f 6e 2d 62 79 74 65 5f 61 6c 69 67 6e 65 64 5f 66 69 65 6c 64 2e 7a 69 67 er_to_non-byte_aligned_field.zig
3d600 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 70 6f 69 6e 74 65 72 5f 74 6f 5f 6e 6f 6e 2d 62 </kbd>.1/1.test_pointer_to_non-b
3d620 79 74 65 5f 61 6c 69 67 6e 65 64 5f 66 69 65 6c 64 2e 74 65 73 74 2e 70 6f 69 6e 74 65 72 20 74 yte_aligned_field.test.pointer.t
3d640 6f 20 6e 6f 6e 2d 62 79 74 65 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 2e 2e 2e 20 4f 4b 0a 41 o.non-byte-aligned.field....OK.A
3d660 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e ll.1.tests.passed..</samp></pre>
3d680 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 </figure>.......<p>.......Howeve
3d6a0 72 2c 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 6e 6f 6e 2d 62 79 74 65 2d 61 6c 69 r,.the.pointer.to.a.non-byte-ali
3d6c0 67 6e 65 64 20 66 69 65 6c 64 20 68 61 73 20 73 70 65 63 69 61 6c 20 70 72 6f 70 65 72 74 69 65 gned.field.has.special.propertie
3d6e0 73 20 61 6e 64 20 63 61 6e 6e 6f 74 0a 20 20 20 20 20 20 62 65 20 70 61 73 73 65 64 20 77 68 65 s.and.cannot.......be.passed.whe
3d700 6e 20 61 20 6e 6f 72 6d 61 6c 20 70 6f 69 6e 74 65 72 20 69 73 20 65 78 70 65 63 74 65 64 3a 0a n.a.normal.pointer.is.expected:.
3d720 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 ......</p>.......<figure><figcap
3d740 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 tion.class="zig-cap"><cite.class
3d760 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6d 69 73 61 6c 69 67 6e 65 64 5f 70 6f 69 6e 74 65 72 2e ="file">test_misaligned_pointer.
3d780 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 zig</cite></figcaption><pre><cod
3d7a0 65 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 e><span.class="tok-kw">const</sp
3d7c0 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
3d7e0 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="
3d800 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>)
3d820 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
3d840 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b an>.expect.=.std.testing.expect;
3d860 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
3d880 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-
3d8a0 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
3d8c0 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
3d8e0 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>,.
3d900 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
3d920 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
3d940 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
3d960 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 69 74 5f 66 69 65 6c 64 20 s="tok-kw">var</span>.bit_field.
3d980 3d 20 42 69 74 46 69 65 6c 64 7b 0a 20 20 20 20 2e 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 =.BitField{......a.=.<span.class
3d9a0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 62 20 3d ="tok-number">1</span>,......b.=
3d9c0 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
3d9e0 6e 3e 2c 0a 20 20 20 20 2e 63 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 n>,......c.=.<span.class="tok-nu
3da00 6d 62 65 72 22 3e 33 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 mber">3</span>,.};..<span.class=
3da20 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
3da40 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 6e 2d ="tok-str">&quot;pointer.to.non-
3da60 62 79 74 65 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 20 byte-aligned.field&quot;</span>.
3da80 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 72 79 3c 2f {.....<span.class="tok-kw">try</
3daa0 73 70 61 6e 3e 20 65 78 70 65 63 74 28 62 61 72 28 26 61 6d 70 3b 62 69 74 5f 66 69 65 6c 64 2e span>.expect(bar(&amp;bit_field.
3dac0 62 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 32 b).==.<span.class="tok-number">2
3dae0 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
3db00 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"
3db20 3e 62 61 72 3c 2f 73 70 61 6e 3e 28 78 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >bar</span>(x:.*<span.class="tok
3db40 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
3db60 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-type">u3</span>).<span.class=
3db80 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e "tok-type">u3</span>.{.....<span
3dba0 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 2e .class="tok-kw">return</span>.x.
3dbc0 2a 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 *;.}</code></pre></figure><figur
3dbe0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
3dc00 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
3dc20 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 6d 69 73 61 6c 69 67 6e 65 64 5f 70 6f 69 kbd>zig.test.test_misaligned_poi
3dc40 6e 74 65 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d nter.zig</kbd>.<span.class="sgr-
3dc60 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 6d 69 73 61 6c 69 67 6e 65 64 5f 70 1m">docgen_tmp/test_misaligned_p
3dc80 6f 69 6e 74 65 72 2e 7a 69 67 3a 31 37 3a 32 30 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 ointer.zig:17:20:.</span><span.c
3dca0 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 lass="sgr-31m">error:.</span><sp
3dcc0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 65 78 70 65 63 74 65 64 20 74 79 70 65 20 an.class="sgr-1m">expected.type.
3dce0 27 2a 63 6f 6e 73 74 20 75 33 27 2c 20 66 6f 75 6e 64 20 27 2a 61 6c 69 67 6e 28 31 3a 33 3a 31 '*const.u3',.found.'*align(1:3:1
3dd00 29 20 75 33 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 74 72 79 20 65 78 70 65 63 74 28 62 61 72 28 ).u3'.</span>....try.expect(bar(
3dd20 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 20 20 20 20 &amp;bit_field.b).==.2);........
3dd40 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 73 67 72 2d 33 32 6d ............<span.class="sgr-32m
3dd60 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 ">^~~~~~~~~~~~.</span><span.clas
3dd80 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 6d 69 73 61 6c s="sgr-1m">docgen_tmp/test_misal
3dda0 69 67 6e 65 64 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3a 31 37 3a 32 30 3a 20 3c 2f 73 70 61 6e 3e igned_pointer.zig:17:20:.</span>
3ddc0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 <span.class="sgr-36m">note:.</sp
3dde0 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 70 6f 69 6e 74 65 72 20 an><span.class="sgr-1m">pointer.
3de00 68 6f 73 74 20 73 69 7a 65 20 27 31 27 20 63 61 6e 6e 6f 74 20 63 61 73 74 20 69 6e 74 6f 20 70 host.size.'1'.cannot.cast.into.p
3de20 6f 69 6e 74 65 72 20 68 6f 73 74 20 73 69 7a 65 20 27 30 27 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 ointer.host.size.'0'.</span><spa
3de40 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 n.class="sgr-1m">docgen_tmp/test
3de60 5f 6d 69 73 61 6c 69 67 6e 65 64 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3a 31 37 3a 32 30 3a 20 3c _misaligned_pointer.zig:17:20:.<
3de80 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 /span><span.class="sgr-36m">note
3dea0 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 70 6f :.</span><span.class="sgr-1m">po
3dec0 69 6e 74 65 72 20 62 69 74 20 6f 66 66 73 65 74 20 27 33 27 20 63 61 6e 6e 6f 74 20 63 61 73 74 inter.bit.offset.'3'.cannot.cast
3dee0 20 69 6e 74 6f 20 70 6f 69 6e 74 65 72 20 62 69 74 20 6f 66 66 73 65 74 20 27 30 27 0a 3c 2f 73 .into.pointer.bit.offset.'0'.</s
3df00 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f pan><span.class="sgr-1m">docgen_
3df20 74 6d 70 2f 74 65 73 74 5f 6d 69 73 61 6c 69 67 6e 65 64 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3a tmp/test_misaligned_pointer.zig:
3df40 32 30 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 73 67 72 2d 33 20:11:.</span><span.class="sgr-3
3df60 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 6m">note:.</span><span.class="sg
3df80 72 2d 31 6d 22 3e 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 64 65 63 6c 61 72 65 64 20 68 65 r-1m">parameter.type.declared.he
3dfa0 72 65 0a 3c 2f 73 70 61 6e 3e 66 6e 20 62 61 72 28 78 3a 20 2a 63 6f 6e 73 74 20 75 33 29 20 75 re.</span>fn.bar(x:.*const.u3).u
3dfc0 33 20 7b 0a 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 3.{...........<span.class="sgr-3
3dfe0 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 2m">^~~~~~~~~.</span>.</samp></p
3e000 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 re></figure>.......<p>.......In.
3e020 74 68 69 73 20 63 61 73 65 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 63 6f 64 65 3e 62 61 this.case,.the.function.<code>ba
3e040 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 6e 6f 74 20 62 65 20 63 61 6c 6c 65 64 20 62 65 63 61 75 73 r</code>.cannot.be.called.becaus
3e060 65 20 74 68 65 20 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 74 6f 20 74 68 65 20 6e 6f 6e 2d 41 e.the.pointer.......to.the.non-A
3e080 42 49 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 20 6d 65 6e 74 69 6f 6e 73 20 74 68 65 20 62 69 BI-aligned.field.mentions.the.bi
3e0a0 74 20 6f 66 66 73 65 74 2c 20 62 75 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 65 63 t.offset,.but.the.function.expec
3e0c0 74 73 20 61 6e 20 41 42 49 2d 61 6c 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 20 ts.an.ABI-aligned.pointer.......
3e0e0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 6f 69 6e 74 65 72 73 20 74 .</p>.......<p>.......Pointers.t
3e100 6f 20 6e 6f 6e 2d 41 42 49 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 73 20 73 68 61 72 65 20 74 o.non-ABI-aligned.fields.share.t
3e120 68 65 20 73 61 6d 65 20 61 64 64 72 65 73 73 20 61 73 20 74 68 65 20 6f 74 68 65 72 20 66 69 65 he.same.address.as.the.other.fie
3e140 6c 64 73 20 77 69 74 68 69 6e 20 74 68 65 69 72 20 68 6f 73 74 20 69 6e 74 65 67 65 72 3a 0a 20 lds.within.their.host.integer:..
3e160 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 .....</p>.......<figure><figcapt
3e180 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d ion.class="zig-cap"><cite.class=
3e1a0 22 66 69 6c 65 22 3e 74 65 73 74 5f 70 61 63 6b 65 64 5f 73 74 72 75 63 74 5f 66 69 65 6c 64 5f "file">test_packed_struct_field_
3e1c0 61 64 64 72 65 73 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c address.zig</cite></figcaption><
3e1e0 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pre><code><span.class="tok-kw">c
3e200 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
3e220 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
3e240 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;
3e260 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
3e280 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 67 onst</span>.expect.=.std.testing
3e2a0 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 63 .expect;..<span.class="tok-kw">c
3e2c0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 42 69 74 46 69 65 6c 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 onst</span>.BitField.=.<span.cla
3e2e0 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 73 70 61 6e 20 ss="tok-kw">packed</span>.<span.
3e300 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>.{..
3e320 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 75 33 3c ...a:.<span.class="tok-type">u3<
3e340 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d /span>,.....b:.<span.class="tok-
3e360 74 79 70 65 22 3e 75 33 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 63 3a 20 3c 73 70 61 6e 20 63 6c type">u3</span>,.....c:.<span.cl
3e380 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 ass="tok-type">u2</span>,.};..<s
3e3a0 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 69 pan.class="tok-kw">var</span>.bi
3e3c0 74 5f 66 69 65 6c 64 20 3d 20 42 69 74 46 69 65 6c 64 7b 0a 20 20 20 20 2e 61 20 3d 20 3c 73 70 t_field.=.BitField{......a.=.<sp
3e3e0 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 0a an.class="tok-number">1</span>,.
3e400 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 65 72 .....b.=.<span.class="tok-number
3e420 22 3e 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 2e 63 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">2</span>,......c.=.<span.class
3e440 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 ="tok-number">3</span>,.};..<spa
3e460 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
3e480 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 74 65 72 an.class="tok-str">&quot;pointer
3e4a0 73 20 6f 66 20 73 75 62 2d 62 79 74 65 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 73 20 73 68 61 s.of.sub-byte-aligned.fields.sha
3e4c0 72 65 20 61 64 64 72 65 73 73 65 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 re.addresses&quot;</span>.{.....
3e4e0 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>.
3e500 65 78 70 65 63 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 expect(<span.class="tok-builtin"
3e520 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 62 69 74 5f 66 69 65 >@intFromPtr</span>(&amp;bit_fie
3e540 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 69 ld.a).==.<span.class="tok-builti
3e560 6e 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 62 69 74 5f 66 n">@intFromPtr</span>(&amp;bit_f
3e580 69 65 6c 64 2e 62 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 ield.b));.....<span.class="tok-k
3e5a0 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 w">try</span>.expect(<span.class
3e5c0 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 61 6e ="tok-builtin">@intFromPtr</span
3e5e0 3e 28 26 61 6d 70 3b 62 69 74 5f 66 69 65 6c 64 2e 61 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 >(&amp;bit_field.a).==.<span.cla
3e600 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 ss="tok-builtin">@intFromPtr</sp
3e620 61 6e 3e 28 26 61 6d 70 3b 62 69 74 5f 66 69 65 6c 64 2e 63 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e an>(&amp;bit_field.c));.}</code>
3e640 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 </pre></figure><figure><figcapti
3e660 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 on.class="shell-cap">Shell</figc
3e680 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 aption><pre><samp>$.<kbd>zig.tes
3e6a0 74 20 74 65 73 74 5f 70 61 63 6b 65 64 5f 73 74 72 75 63 74 5f 66 69 65 6c 64 5f 61 64 64 72 65 t.test_packed_struct_field_addre
3e6c0 73 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 70 61 63 6b 65 64 5f 73 74 72 ss.zig</kbd>.1/1.test_packed_str
3e6e0 75 63 74 5f 66 69 65 6c 64 5f 61 64 64 72 65 73 73 2e 74 65 73 74 2e 70 6f 69 6e 74 65 72 73 20 uct_field_address.test.pointers.
3e700 6f 66 20 73 75 62 2d 62 79 74 65 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 73 20 73 68 61 72 65 of.sub-byte-aligned.fields.share
3e720 20 61 64 64 72 65 73 73 65 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 .addresses....OK.All.1.tests.pas
3e740 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 sed..</samp></pre></figure>.....
3e760 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 72 76 65 64 ..<p>.......This.can.be.observed
3e780 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 3e 40 62 69 .with.<a.href="#bitOffsetOf">@bi
3e7a0 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 6f 66 66 73 tOffsetOf</a>.and.<a.href="#offs
3e7c0 65 74 4f 66 22 3e 6f 66 66 73 65 74 4f 66 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 etOf">offsetOf</a>:.......</p>..
3e7e0 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
3e800 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
3e820 5f 62 69 74 4f 66 66 73 65 74 4f 66 5f 6f 66 66 73 65 74 4f 66 2e 7a 69 67 3c 2f 63 69 74 65 3e _bitOffsetOf_offsetOf.zig</cite>
3e840 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
3e860 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.=.
3e880 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
3e8a0 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">&
3e8c0 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
3e8e0 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 70 65 63 74 ass="tok-kw">const</span>.expect
3e900 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c .=.std.testing.expect;..<span.cl
3e920 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
3e940 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
3e960 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
3e980 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=
3e9a0 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
3e9c0 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>,..
3e9e0 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<
3ea00 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"
3ea20 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
3ea40 72 22 3e 26 71 75 6f 74 3b 6f 66 66 73 65 74 73 20 6f 66 20 6e 6f 6e 2d 62 79 74 65 2d 61 6c 69 r">&quot;offsets.of.non-byte-ali
3ea60 67 6e 65 64 20 66 69 65 6c 64 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c gned.fields&quot;</span>.{.....<
3ea80 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
3eaa0 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 22 74 6f 6b 2d 6b an>.{.........<span.class="tok-k
3eac0 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 w">try</span>.expect(<span.class
3eae0 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 70 61 ="tok-builtin">@bitOffsetOf</spa
3eb00 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 73 74 n>(BitField,.<span.class="tok-st
3eb20 72 22 3e 26 71 75 6f 74 3b 61 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 r">&quot;a&quot;</span>).==.<spa
3eb40 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>);.
3eb60 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 72 79 ........<span.class="tok-kw">try
3eb80 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d </span>.expect(<span.class="tok-
3eba0 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 69 74 builtin">@bitOffsetOf</span>(Bit
3ebc0 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 71 75 Field,.<span.class="tok-str">&qu
3ebe0 6f 74 3b 62 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 ot;b&quot;</span>).==.<span.clas
3ec00 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 20 20 20 20 20 s="tok-number">3</span>);.......
3ec20 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
3ec40 3e 20 65 78 70 65 63 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 >.expect(<span.class="tok-builti
3ec60 6e 22 3e 40 62 69 74 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 n">@bitOffsetOf</span>(BitField,
3ec80 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 63 26 71 .<span.class="tok-str">&quot;c&q
3eca0 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 22 74 6f 6b uot;</span>).==.<span.class="tok
3ecc0 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 -number">6</span>);..........<sp
3ece0 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 65 78 70 an.class="tok-kw">try</span>.exp
3ed00 65 63 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 6f ect(<span.class="tok-builtin">@o
3ed20 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 20 63 ffsetOf</span>(BitField,.<span.c
3ed40 6c 61 73 73 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 lass="tok-str">&quot;a&quot;</sp
3ed60 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"
3ed80 3e 30 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 >0</span>);.........<span.class=
3eda0 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e "tok-kw">try</span>.expect(<span
3edc0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6f 66 66 73 65 74 4f 66 3c 2f .class="tok-builtin">@offsetOf</
3ede0 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 3d 22 74 6f 6b span>(BitField,.<span.class="tok
3ee00 2d 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 -str">&quot;b&quot;</span>).==.<
3ee20 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>
3ee40 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 6f 6b 2d 6b 77 22 3e );.........<span.class="tok-kw">
3ee60 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 try</span>.expect(<span.class="t
3ee80 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6f 66 66 73 65 74 4f 66 3c 2f 73 70 61 6e 3e 28 42 69 74 ok-builtin">@offsetOf</span>(Bit
3eea0 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 71 75 Field,.<span.class="tok-str">&qu
3eec0 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 61 73 ot;c&quot;</span>).==.<span.clas
3eee0 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 20 7d 0a s="tok-number">0</span>);.....}.
3ef00 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
3ef20 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
3ef40 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
3ef60 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 62 69 74 4f 66 66 73 65 74 4f 66 5f 6f 66 66 73 65 >zig.test.test_bitOffsetOf_offse
3ef80 74 4f 66 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 62 69 74 4f 66 66 73 65 74 tOf.zig</kbd>.1/1.test_bitOffset
3efa0 4f 66 5f 6f 66 66 73 65 74 4f 66 2e 74 65 73 74 2e 6f 66 66 73 65 74 73 20 6f 66 20 6e 6f 6e 2d Of_offsetOf.test.offsets.of.non-
3efc0 62 79 74 65 2d 61 6c 69 67 6e 65 64 20 66 69 65 6c 64 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 byte-aligned.fields....OK.All.1.
3efe0 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 tests.passed..</samp></pre></fig
3f000 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 61 63 6b 65 64 20 73 74 72 75 ure>.......<p>.......Packed.stru
3f020 63 74 73 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 61 6c 69 67 6e 6d 65 6e 74 20 61 73 20 74 cts.have.the.same.alignment.as.t
3f040 68 65 69 72 20 62 61 63 6b 69 6e 67 20 69 6e 74 65 67 65 72 2c 20 68 6f 77 65 76 65 72 2c 20 6f heir.backing.integer,.however,.o
3f060 76 65 72 61 6c 69 67 6e 65 64 0a 20 20 20 20 20 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 70 61 63 veraligned.......pointers.to.pac
3f080 6b 65 64 20 73 74 72 75 63 74 73 20 63 61 6e 20 6f 76 65 72 72 69 64 65 20 74 68 69 73 3a 0a 20 ked.structs.can.override.this:..
3f0a0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 .....</p>.......<figure><figcapt
3f0c0 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d ion.class="zig-cap"><cite.class=
3f0e0 22 66 69 6c 65 22 3e 74 65 73 74 5f 6f 76 65 72 61 6c 69 67 6e 65 64 5f 70 61 63 6b 65 64 5f 73 "file">test_overaligned_packed_s
3f100 74 72 75 63 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 truct.zig</cite></figcaption><pr
3f120 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
3f140 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
3f160 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
3f180 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;</
3f1a0 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
3f1c0 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 67 2e 65 st</span>.expect.=.std.testing.e
3f1e0 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 63 6f 6e xpect;..<span.class="tok-kw">con
3f200 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 6b st</span>.S.=.<span.class="tok-k
3f220 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 6f w">packed</span>.<span.class="to
3f240 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 70 k-kw">struct</span>.{.....a:.<sp
3f260 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 0a an.class="tok-type">u32</span>,.
3f280 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
3f2a0 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 22 74 6f 6b 2d 6b 77 2</span>,.};.<span.class="tok-kw
3f2c0 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
3f2e0 74 72 22 3e 26 71 75 6f 74 3b 6f 76 65 72 61 6c 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 74 6f tr">&quot;overaligned.pointer.to
3f300 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 .packed.struct&quot;</span>.{...
3f320 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
3f340 3e 20 66 6f 6f 3a 20 53 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6c >.foo:.S.<span.class="tok-kw">al
3f360 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 6e 75 6d 62 ign</span>(<span.class="tok-numb
3f380 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 20 3d 20 2e 7b 20 2e 61 20 3d 20 3c 73 70 61 6e 20 63 6c er">4</span>).=..{..a.=.<span.cl
3f3a0 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 62 20 3d 20 ass="tok-number">1</span>,..b.=.
3f3c0 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
3f3e0 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 22 3e 63 6f >.};.....<span.class="tok-kw">co
3f400 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 73 73 3d 22 74 6f nst</span>.ptr:.*<span.class="to
3f420 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="
3f440 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 26 61 6d 70 3b 66 tok-number">4</span>).S.=.&amp;f
3f460 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 77 22 3e 63 6f 6e oo;.....<span.class="tok-kw">con
3f480 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 20 63 6c 61 73 73 st</span>.ptr_to_b:.*<span.class
3f4a0 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 61 6d 70 3b 70 74 ="tok-type">u32</span>.=.&amp;pt
3f4c0 72 2e 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 22 3e 74 72 r.b;.....<span.class="tok-kw">tr
3f4e0 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 74 72 5f 74 6f 5f 62 2e 2a 20 3d 3d 20 3c 73 y</span>.expect(ptr_to_b.*.==.<s
3f500 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>)
3f520 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 ;.}</code></pre></figure><figure
3f540 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 ><figcaption.class="shell-cap">S
3f560 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b hell</figcaption><pre><samp>$.<k
3f580 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 6f 76 65 72 61 6c 69 67 6e 65 64 5f 70 61 63 bd>zig.test.test_overaligned_pac
3f5a0 6b 65 64 5f 73 74 72 75 63 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6f 76 ked_struct.zig</kbd>.1/1.test_ov
3f5c0 65 72 61 6c 69 67 6e 65 64 5f 70 61 63 6b 65 64 5f 73 74 72 75 63 74 2e 74 65 73 74 2e 6f 76 65 eraligned_packed_struct.test.ove
3f5e0 72 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 raligned.pointer.to.packed.struc
3f600 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 t....OK.All.1.tests.passed..</sa
3f620 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 mp></pre></figure>.......<p>....
3f640 20 20 20 49 74 27 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 73 65 74 20 61 6c 69 ...It's.also.possible.to.set.ali
3f660 67 6e 6d 65 6e 74 20 6f 66 20 73 74 72 75 63 74 20 66 69 65 6c 64 73 3a 0a 20 20 20 20 20 20 3c gnment.of.struct.fields:.......<
3f680 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c /p>.......<figure><figcaption.cl
3f6a0 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
3f6c0 3e 74 65 73 74 5f 61 6c 69 67 6e 65 64 5f 73 74 72 75 63 74 5f 66 69 65 6c 64 73 2e 7a 69 67 3c >test_aligned_struct_fields.zig<
3f6e0 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
3f700 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>.
3f720 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">
3f740 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-
3f760 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
3f780 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>.
3f7a0 65 78 70 65 63 74 45 71 75 61 6c 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 expectEqual.=.std.testing.expect
3f7c0 45 71 75 61 6c 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 Equal;..<span.class="tok-kw">tes
3f7e0 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">&
3f800 71 75 6f 74 3b 61 6c 69 67 6e 65 64 20 73 74 72 75 63 74 20 66 69 65 6c 64 73 26 71 75 6f 74 3b quot;aligned.struct.fields&quot;
3f820 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
3f840 77 22 3e 63 6f 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 w">const</span>.S.=.<span.class=
3f860 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>.{........
3f880 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 33 32 3c 2f .a:.<span.class="tok-type">u32</
3f8a0 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
3f8c0 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"
3f8e0 3e 32 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 20 20 20 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 >2</span>),.........b:.<span.cla
3f900 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 3c 73 70 61 6e 20 63 ss="tok-type">u32</span>.<span.c
3f920 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
3f940 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 3e 29 2c 0a .class="tok-number">64</span>),.
3f960 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 3e ....};.....<span.class="tok-kw">
3f980 76 61 72 3c 2f 73 70 61 6e 3e 20 66 6f 6f 20 3d 20 53 7b 20 2e 61 20 3d 20 3c 73 70 61 6e 20 63 var</span>.foo.=.S{..a.=.<span.c
3f9a0 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 62 20 3d lass="tok-number">1</span>,..b.=
3f9c0 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
3f9e0 6e 3e 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 n>.};......<span.class="tok-kw">
3fa00 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 45 71 75 61 6c 28 3c 73 70 61 6e 20 63 6c 61 try</span>.expectEqual(<span.cla
3fa20 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 34 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e ss="tok-number">64</span>,.<span
3fa40 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 73 .class="tok-builtin">@alignOf</s
3fa60 70 61 6e 3e 28 53 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 pan>(S));.....<span.class="tok-k
3fa80 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 45 71 75 61 6c 28 2a 3c 73 70 61 6e w">try</span>.expectEqual(*<span
3faa0 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
3fac0 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 20 an.class="tok-number">2</span>).
3fae0 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
3fb00 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 54 79 >,.<span.class="tok-builtin">@Ty
3fb20 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b 66 6f 6f 2e 61 29 29 3b 0a 20 20 20 20 3c 73 peOf</span>(&amp;foo.a));.....<s
3fb40 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 65 78 pan.class="tok-kw">try</span>.ex
3fb60 70 65 63 74 45 71 75 61 6c 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e pectEqual(*<span.class="tok-kw">
3fb80 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 6e 75 align</span>(<span.class="tok-nu
3fba0 6d 62 65 72 22 3e 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 6f mber">64</span>).<span.class="to
3fbc0 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 3d k-type">u32</span>,.<span.class=
3fbe0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 26 61 6d "tok-builtin">@TypeOf</span>(&am
3fc00 70 3b 66 6f 6f 2e 62 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 p;foo.b));.}</code></pre></figur
3fc20 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
3fc40 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
3fc60 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 61 6c 69 67 6e 65 samp>$.<kbd>zig.test.test_aligne
3fc80 64 5f 73 74 72 75 63 74 5f 66 69 65 6c 64 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 d_struct_fields.zig</kbd>.1/1.te
3fca0 73 74 5f 61 6c 69 67 6e 65 64 5f 73 74 72 75 63 74 5f 66 69 65 6c 64 73 2e 74 65 73 74 2e 61 6c st_aligned_struct_fields.test.al
3fcc0 69 67 6e 65 64 20 73 74 72 75 63 74 20 66 69 65 6c 64 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 igned.struct.fields....OK.All.1.
3fce0 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 tests.passed..</samp></pre></fig
3fd00 75 72 65 3e 0a 20 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 ure>.......<p>.......Using.packe
3fd20 64 20 73 74 72 75 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 d.structs.with.<a.href="#volatil
3fd40 65 22 3e 76 6f 6c 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 e">volatile</a>.is.problematic,.
3fd60 61 6e 64 20 6d 61 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 and.may.be.a.compile.error.in.th
3fd80 65 20 66 75 74 75 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 e.future........For.details.on.t
3fda0 68 69 73 20 73 75 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 his.subscribe.to.......<a.href="
3fdc0 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
3fde0 73 73 75 65 73 2f 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 ssues/1761">this.issue</a>......
3fe00 20 20 54 4f 44 4f 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 ..TODO.update.these.docs.with.a.
3fe20 72 65 63 6f 6d 6d 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 recommendation.on.how.to.use.pac
3fe40 6b 65 64 20 73 74 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 ked.structs.with.MMIO.......(the
3fe60 20 75 73 65 20 63 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 .use.case.for.volatile.packed.st
3fe80 72 75 63 74 73 29 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 ructs).once.this.issue.is.resolv
3fea0 65 64 2e 0a 20 20 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 ed........Don't.worry,.there.wil
3fec0 6c 20 62 65 20 61 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 l.be.a.good.solution.for.this.us
3fee0 65 20 63 61 73 65 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 e.case.in.zig........</p>.......
3ff00 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 53 74 72 75 63 74 2d 4e 61 6d 69 6e 67 22 3e 3c ........<h3.id="Struct-Naming"><
3ff20 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 74 72 75 63 74 2d 4e 61 6d a.href="nav.xhtml#toc-Struct-Nam
3ff40 69 6e 67 22 3e 53 74 72 75 63 74 20 4e 61 6d 69 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d ing">Struct.Naming</a>.<a.class=
3ff60 22 68 64 72 22 20 68 72 65 66 3d 22 23 53 74 72 75 63 74 2d 4e 61 6d 69 6e 67 22 3e c2 a7 3c 2f "hdr".href="#Struct-Naming">..</
3ff80 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 69 6e 63 65 20 61 6c 6c 20 73 74 72 75 a></h3>........<p>Since.all.stru
3ffa0 63 74 73 20 61 72 65 20 61 6e 6f 6e 79 6d 6f 75 73 2c 20 5a 69 67 20 69 6e 66 65 72 73 20 74 68 cts.are.anonymous,.Zig.infers.th
3ffc0 65 20 74 79 70 65 20 6e 61 6d 65 20 62 61 73 65 64 20 6f 6e 20 61 20 66 65 77 20 72 75 6c 65 73 e.type.name.based.on.a.few.rules
3ffe0 2e 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 49 .</p>.......<ul>...........<li>I
40000 66 20 74 68 65 20 73 74 72 75 63 74 20 69 73 20 69 6e 20 74 68 65 20 69 6e 69 74 69 61 6c 69 7a f.the.struct.is.in.the.initializ
40020 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 2c 20 ation.expression.of.a.variable,.
40040 69 74 20 67 65 74 73 20 6e 61 6d 65 64 20 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 74 68 it.gets.named.after...........th
40060 61 74 20 76 61 72 69 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e at.variable.</li>...........<li>
40080 49 66 20 74 68 65 20 73 74 72 75 63 74 20 69 73 20 69 6e 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 If.the.struct.is.in.the.<code><s
400a0 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>
400c0 3c 2f 63 6f 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 </code>.expression,.it.gets.name
400e0 64 20 61 66 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 d.after...........the.function.i
40100 74 20 69 73 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 t.is.returning.from,.with.the.pa
40120 72 61 6d 65 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 rameter.values.serialized.</li>.
40140 20 20 20 20 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 ..........<li>Otherwise,.the.str
40160 75 63 74 20 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 66 uct.gets.a.name.such.as.<code>(f
40180 69 6c 65 6e 61 6d 65 2e 66 75 6e 63 6e 61 6d 65 2e 5f 5f 73 74 72 75 63 74 5f 49 44 29 3c 2f 63 ilename.funcname.__struct_ID)</c
401a0 6f 64 65 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 74 68 65 20 ode>.</li>...........<li>If.the.
401c0 73 74 72 75 63 74 20 69 73 20 64 65 63 6c 61 72 65 64 20 69 6e 73 69 64 65 20 61 6e 6f 74 68 65 struct.is.declared.inside.anothe
401e0 72 20 73 74 72 75 63 74 2c 20 69 74 20 67 65 74 73 20 6e 61 6d 65 64 20 61 66 74 65 72 20 62 6f r.struct,.it.gets.named.after.bo
40200 74 68 20 74 68 65 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 61 th.the.parent...........struct.a
40220 6e 64 20 74 68 65 20 6e 61 6d 65 20 69 6e 66 65 72 72 65 64 20 62 79 20 74 68 65 20 70 72 65 76 nd.the.name.inferred.by.the.prev
40240 69 6f 75 73 20 72 75 6c 65 73 2c 20 73 65 70 61 72 61 74 65 64 20 62 79 20 61 20 64 6f 74 2e 3c ious.rules,.separated.by.a.dot.<
40260 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c /li>.......</ul>.......<figure><
40280 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
402a0 20 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 63 .class="file">struct_name.zig</c
402c0 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ite></figcaption><pre><code><spa
402e0 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
40300 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
40320 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
40340 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 3c 73 70 r">&quot;std&quot;</span>);..<sp
40360 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
40380 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
403a0 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>().<
403c0 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
403e0 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
40400 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 6f 6b st</span>.Foo.=.<span.class="tok
40420 2d 6b 77 22 3e 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 -kw">struct</span>.{};.....std.d
40440 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 ebug.print(<span.class="tok-str"
40460 3e 26 71 75 6f 74 3b 76 61 72 69 61 62 6c 65 3a 20 7b 73 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 >&quot;variable:.{s}\n&quot;</sp
40480 61 6e 3e 2c 20 2e 7b 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 an>,..{<span.class="tok-builtin"
404a0 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 46 6f 6f 29 7d 29 3b 0a 20 20 20 20 73 74 >@typeName</span>(Foo)});.....st
404c0 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 d.debug.print(<span.class="tok-s
404e0 74 72 22 3e 26 71 75 6f 74 3b 61 6e 6f 6e 79 6d 6f 75 73 3a 20 7b 73 7d 5c 6e 26 71 75 6f 74 3b tr">&quot;anonymous:.{s}\n&quot;
40500 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c </span>,..{<span.class="tok-buil
40520 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 tin">@typeName</span>(<span.clas
40540 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 29 7d 29 3b 0a s="tok-kw">struct</span>.{})});.
40560 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d ....std.debug.print(<span.class=
40580 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 75 6e 63 74 69 6f 6e 3a 20 7b 73 7d 5c 6e 26 "tok-str">&quot;function:.{s}\n&
405a0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b quot;</span>,..{<span.class="tok
405c0 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 4c 69 73 74 28 -builtin">@typeName</span>(List(
405e0 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
40600 3e 29 29 7d 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 >))});.}..<span.class="tok-kw">f
40620 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 4c 69 n</span>.<span.class="tok-fn">Li
40640 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 6b 77 22 3e 63 st</span>(<span.class="tok-kw">c
40660 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
40680 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 20 63 6c 61 73 ok-type">type</span>).<span.clas
406a0 73 3d 22 74 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 s="tok-type">type</span>.{.....<
406c0 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
406e0 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
40700 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 78 3a 20 54 2c 0a 20 20 20 20 7d 3b 0a 7d 3c 2f 63 pan>.{.........x:.T,.....};.}</c
40720 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ode></pre></figure><figure><figc
40740 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
40760 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
40780 20 62 75 69 6c 64 2d 65 78 65 20 73 74 72 75 63 74 5f 6e 61 6d 65 2e 7a 69 67 3c 2f 6b 62 64 3e .build-exe.struct_name.zig</kbd>
407a0 0a 24 20 3c 6b 62 64 3e 2e 2f 73 74 72 75 63 74 5f 6e 61 6d 65 3c 2f 6b 62 64 3e 0a 76 61 72 69 .$.<kbd>./struct_name</kbd>.vari
407c0 61 62 6c 65 3a 20 73 74 72 75 63 74 5f 6e 61 6d 65 2e 6d 61 69 6e 2e 46 6f 6f 0a 61 6e 6f 6e 79 able:.struct_name.main.Foo.anony
407e0 6d 6f 75 73 3a 20 73 74 72 75 63 74 5f 6e 61 6d 65 2e 6d 61 69 6e 5f 5f 73 74 72 75 63 74 5f 33 mous:.struct_name.main__struct_3
40800 33 39 30 0a 66 75 6e 63 74 69 6f 6e 3a 20 73 74 72 75 63 74 5f 6e 61 6d 65 2e 4c 69 73 74 28 69 390.function:.struct_name.List(i
40820 33 32 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 32).</samp></pre></figure>......
40840 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 41 6e 6f 6e 79 6d 6f 75 73 2d 53 74 72 75 63 .........<h3.id="Anonymous-Struc
40860 74 2d 4c 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 t-Literals"><a.href="nav.xhtml#t
40880 6f 63 2d 41 6e 6f 6e 79 6d 6f 75 73 2d 53 74 72 75 63 74 2d 4c 69 74 65 72 61 6c 73 22 3e 41 6e oc-Anonymous-Struct-Literals">An
408a0 6f 6e 79 6d 6f 75 73 20 53 74 72 75 63 74 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 20 3c 61 20 63 onymous.Struct.Literals</a>.<a.c
408c0 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 6e 6f 6e 79 6d 6f 75 73 2d 53 74 72 75 lass="hdr".href="#Anonymous-Stru
408e0 63 74 2d 4c 69 74 65 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 ct-Literals">..</a></h3>........
40900 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 61 6c 6c 6f 77 73 20 6f 6d 69 74 74 69 6e 67 20 74 68 <p>.......Zig.allows.omitting.th
40920 65 20 73 74 72 75 63 74 20 74 79 70 65 20 6f 66 20 61 20 6c 69 74 65 72 61 6c 2e 20 57 68 65 6e e.struct.type.of.a.literal..When
40940 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f .the.result.is.<a.href="#Type-Co
40960 65 72 63 69 6f 6e 22 3e 63 6f 65 72 63 65 64 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 74 68 65 20 73 ercion">coerced</a>,.......the.s
40980 74 72 75 63 74 20 6c 69 74 65 72 61 6c 20 77 69 6c 6c 20 64 69 72 65 63 74 6c 79 20 69 6e 73 74 truct.literal.will.directly.inst
409a0 61 6e 74 69 61 74 65 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 52 65 73 75 6c 74 2d 4c 6f 63 antiate.the.<a.href="#Result-Loc
409c0 61 74 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 ation-Semantics">result.location
409e0 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 77 69 74 68 20 6e 6f 20 63 6f 70 79 3a 0a 20 20 20 20 20 20 </a>,.......with.no.copy:.......
40a00 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
40a20 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
40a40 22 3e 74 65 73 74 5f 73 74 72 75 63 74 5f 72 65 73 75 6c 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c ">test_struct_result.zig</cite><
40a60 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /figcaption><pre><code><span.cla
40a80 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.=.<
40aa0 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
40ac0 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
40ae0 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
40b00 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 70 65 63 74 20 ss="tok-kw">const</span>.expect.
40b20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 =.std.testing.expect;..<span.cla
40b40 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 20 3d ss="tok-kw">const</span>.Point.=
40b60 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
40b80 61 6e 3e 20 7b 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 an>.{x:.<span.class="tok-type">i
40ba0 33 32 3c 2f 73 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 32</span>,.y:.<span.class="tok-t
40bc0 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ype">i32</span>};..<span.class="
40be0 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=
40c00 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 72 75 63 74 "tok-str">&quot;anonymous.struct
40c20 20 6c 69 74 65 72 61 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 .literal&quot;</span>.{.....<spa
40c40 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 74 n.class="tok-kw">const</span>.pt
40c60 3a 20 50 6f 69 6e 74 20 3d 20 2e 7b 0a 20 20 20 20 20 20 20 20 2e 78 20 3d 20 3c 73 70 61 6e 20 :.Point.=..{..........x.=.<span.
40c80 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 2c 0a 20 20 class="tok-number">13</span>,...
40ca0 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 6e 75 6d 62 .......y.=.<span.class="tok-numb
40cc0 65 72 22 3e 36 37 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 er">67</span>,.....};.....<span.
40ce0 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
40d00 28 70 74 2e 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 (pt.x.==.<span.class="tok-number
40d20 22 3e 31 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 73 3d 22 74 ">13</span>);.....<span.class="t
40d40 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 74 2e 79 20 3d 3d ok-kw">try</span>.expect(pt.y.==
40d60 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 37 3c 2f 73 70 .<span.class="tok-number">67</sp
40d80 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 an>);.}</code></pre></figure><fi
40da0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
40dc0 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
40de0 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 74 72 75 63 74 5f 72 65 73 75 $.<kbd>zig.test.test_struct_resu
40e00 6c 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 74 72 75 63 74 5f 72 65 73 lt.zig</kbd>.1/1.test_struct_res
40e20 75 6c 74 2e 74 65 73 74 2e 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 72 75 63 74 20 6c 69 74 65 72 61 ult.test.anonymous.struct.litera
40e40 6c 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 l....OK.All.1.tests.passed..</sa
40e60 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 mp></pre></figure>.......<p>....
40e80 20 20 20 54 68 65 20 73 74 72 75 63 74 20 74 79 70 65 20 63 61 6e 20 62 65 20 69 6e 66 65 72 72 ...The.struct.type.can.be.inferr
40ea0 65 64 2e 20 48 65 72 65 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 52 65 73 75 6c 74 2d 4c 6f ed..Here.the.<a.href="#Result-Lo
40ec0 63 61 74 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 cation-Semantics">result.locatio
40ee0 6e 3c 2f 61 3e 0a 20 20 20 20 20 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 20 74 n</a>.......does.not.include.a.t
40f00 79 70 65 2c 20 61 6e 64 20 73 6f 20 5a 69 67 20 69 6e 66 65 72 73 20 74 68 65 20 74 79 70 65 3a ype,.and.so.Zig.infers.the.type:
40f20 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 .......</p>.......<figure><figca
40f40 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
40f60 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 61 6e 6f 6e 79 6d 6f 75 73 5f 73 74 72 75 63 74 2e 7a s="file">test_anonymous_struct.z
40f80 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 ig</cite></figcaption><pre><code
40fa0 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
40fc0 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
40fe0 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
41000 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>);
41020 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
41040 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a n>.expect.=.std.testing.expect;.
41060 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
41080 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
410a0 6c 6c 79 20 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 72 75 63 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e lly.anonymous.struct&quot;</span
410c0 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 72 79 >.{.....<span.class="tok-kw">try
410e0 3c 2f 73 70 61 6e 3e 20 63 68 65 63 6b 28 2e 7b 0a 20 20 20 20 20 20 20 20 2e 69 6e 74 20 3d 20 </span>.check(.{..........int.=.
41100 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 73 3c 2f 73 <span.class="tok-builtin">@as</s
41120 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<
41140 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"
41160 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 20 20 20 20 2e 66 6c 6f 61 74 20 3d 20 >1234</span>),..........float.=.
41180 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 73 3c 2f 73 <span.class="tok-builtin">@as</s
411a0 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 66 36 34 3c pan>(<span.class="tok-type">f64<
411c0 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"
411e0 3e 31 32 2e 33 34 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 20 20 20 20 2e 62 20 3d 20 3c 73 70 >12.34</span>),..........b.=.<sp
41200 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 2c an.class="tok-null">true</span>,
41220 0a 20 20 20 20 20 20 20 20 2e 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 ..........s.=.<span.class="tok-s
41240 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 2c 0a 20 20 20 20 7d tr">&quot;hi&quot;</span>,.....}
41260 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
41280 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 65 63 6b 3c pan>.<span.class="tok-fn">check<
412a0 2f 73 70 61 6e 3e 28 61 72 67 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 /span>(args:.<span.class="tok-kw
412c0 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">anytype</span>).!<span.class="
412e0 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 61 tok-type">void</span>.{.....<spa
41300 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 65 78 70 65 n.class="tok-kw">try</span>.expe
41320 63 74 28 61 72 67 73 2e 69 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ct(args.int.==.<span.class="tok-
41340 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 3c 73 70 61 6e 20 number">1234</span>);.....<span.
41360 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
41380 28 61 72 67 73 2e 66 6c 6f 61 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d (args.float.==.<span.class="tok-
413a0 6e 75 6d 62 65 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e number">12.34</span>);.....<span
413c0 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
413e0 74 28 61 72 67 73 2e 62 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d t(args.b);.....<span.class="tok-
41400 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 67 73 2e 73 5b 3c 73 70 kw">try</span>.expect(args.s[<sp
41420 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 20 an.class="tok-number">0</span>].
41440 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 68 27 3c 2f 73 70 ==.<span.class="tok-str">'h'</sp
41460 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 74 an>);.....<span.class="tok-kw">t
41480 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 67 73 2e 73 5b 3c 73 70 61 6e 20 63 6c ry</span>.expect(args.s[<span.cl
414a0 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 73 ass="tok-number">1</span>].==.<s
414c0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 69 27 3c 2f 73 70 61 6e 3e 29 3b pan.class="tok-str">'i'</span>);
414e0 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e .}</code></pre></figure><figure>
41500 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 <figcaption.class="shell-cap">Sh
41520 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 ell</figcaption><pre><samp>$.<kb
41540 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 61 6e 6f 6e 79 6d 6f 75 73 5f 73 74 72 75 63 74 d>zig.test.test_anonymous_struct
41560 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 61 6e 6f 6e 79 6d 6f 75 73 5f 73 74 .zig</kbd>.1/1.test_anonymous_st
41580 72 75 63 74 2e 74 65 73 74 2e 66 75 6c 6c 79 20 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 72 75 63 74 ruct.test.fully.anonymous.struct
415a0 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d ....OK.All.1.tests.passed..</sam
415c0 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 p></pre></figure>...............
415e0 3c 68 33 20 69 64 3d 22 54 75 70 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 <h3.id="Tuples"><a.href="nav.xht
41600 6d 6c 23 74 6f 63 2d 54 75 70 6c 65 73 22 3e 54 75 70 6c 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 ml#toc-Tuples">Tuples</a>.<a.cla
41620 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 75 70 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f ss="hdr".href="#Tuples">..</a></
41640 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6e 6f 6e 79 6d 6f 75 73 20 73 h3>........<p>.......Anonymous.s
41660 74 72 75 63 74 73 20 63 61 6e 20 62 65 20 63 72 65 61 74 65 64 20 77 69 74 68 6f 75 74 20 73 70 tructs.can.be.created.without.sp
41680 65 63 69 66 79 69 6e 67 20 66 69 65 6c 64 20 6e 61 6d 65 73 2c 20 61 6e 64 20 61 72 65 20 72 65 ecifying.field.names,.and.are.re
416a0 66 65 72 72 65 64 20 74 6f 20 61 73 20 22 74 75 70 6c 65 73 22 2e 0a 20 20 20 20 20 20 3c 2f 70 ferred.to.as."tuples"........</p
416c0 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 66 69 65 6c 64 73 20 61 72 65 >.......<p>.......The.fields.are
416e0 20 69 6d 70 6c 69 63 69 74 6c 79 20 6e 61 6d 65 64 20 75 73 69 6e 67 20 6e 75 6d 62 65 72 73 20 .implicitly.named.using.numbers.
41700 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 30 2e 20 42 65 63 61 75 73 65 20 74 68 65 69 72 20 6e starting.from.0..Because.their.n
41720 61 6d 65 73 20 61 72 65 20 69 6e 74 65 67 65 72 73 2c 0a 20 20 20 20 20 20 74 68 65 79 20 63 61 ames.are.integers,.......they.ca
41740 6e 6e 6f 74 20 62 65 20 61 63 63 65 73 73 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 2e 3c 2f 63 nnot.be.accessed.with.<code>.</c
41760 6f 64 65 3e 20 73 79 6e 74 61 78 20 77 69 74 68 6f 75 74 20 61 6c 73 6f 20 77 72 61 70 70 69 6e ode>.syntax.without.also.wrappin
41780 67 20 74 68 65 6d 20 69 6e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 40 26 71 75 6f 74 3b 26 71 75 g.them.in.......<code>@&quot;&qu
417a0 6f 74 3b 3c 2f 63 6f 64 65 3e 2e 20 4e 61 6d 65 73 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 3e 40 ot;</code>..Names.inside.<code>@
417c0 26 71 75 6f 74 3b 26 71 75 6f 74 3b 3c 2f 63 6f 64 65 3e 20 61 72 65 20 61 6c 77 61 79 73 20 72 &quot;&quot;</code>.are.always.r
417e0 65 63 6f 67 6e 69 73 65 64 20 61 73 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 49 64 65 ecognised.as.......<a.href="#Ide
41800 6e 74 69 66 69 65 72 73 22 3e 69 64 65 6e 74 69 66 69 65 72 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 ntifiers">identifiers</a>.......
41820 20 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 61 72 72 61 79 .</p>.......<p>.......Like.array
41840 73 2c 20 74 75 70 6c 65 73 20 68 61 76 65 20 61 20 2e 6c 65 6e 20 66 69 65 6c 64 2c 20 63 61 6e s,.tuples.have.a..len.field,.can
41860 20 62 65 20 69 6e 64 65 78 65 64 20 28 70 72 6f 76 69 64 65 64 20 74 68 65 20 69 6e 64 65 78 20 .be.indexed.(provided.the.index.
41880 69 73 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 29 0a 20 20 20 20 20 20 61 6e 64 20 77 6f 72 is.comptime-known).......and.wor
418a0 6b 20 77 69 74 68 20 74 68 65 20 2b 2b 20 61 6e 64 20 2a 2a 20 6f 70 65 72 61 74 6f 72 73 2e 20 k.with.the.++.and.**.operators..
418c0 54 68 65 79 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 69 74 65 72 61 74 65 64 20 6f 76 65 72 20 77 They.can.also.be.iterated.over.w
418e0 69 74 68 20 3c 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 66 6f 72 22 3e 69 6e 6c 69 6e 65 ith.<a.href="#inline-for">inline
41900 20 66 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 66 69 67 75 .for</a>........</p>.......<figu
41920 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
41940 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 74 75 70 6c 65 73 2e 7a 69 cite.class="file">test_tuples.zi
41960 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
41980 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
419a0 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 6e >.std.=.<span.class="tok-builtin
419c0 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
419e0 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 0a k-str">&quot;std&quot;</span>);.
41a00 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
41a20 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a >.expect.=.std.testing.expect;..
41a40 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>
41a60 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 75 70 .<span.class="tok-str">&quot;tup
41a80 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 63 6c 61 73 le&quot;</span>.{.....<span.clas
41aa0 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 73 20 3d s="tok-kw">const</span>.values.=
41ac0 20 2e 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 62 75 69 ..{.........<span.class="tok-bui
41ae0 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ltin">@as</span>(<span.class="to
41b00 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 3d k-type">u32</span>,.<span.class=
41b20 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 2c 0a 20 20 20 20 20 "tok-number">1234</span>),......
41b40 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 61 73 ...<span.class="tok-builtin">@as
41b60 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 66 </span>(<span.class="tok-type">f
41b80 36 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 62 64</span>,.<span.class="tok-numb
41ba0 65 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e er">12.34</span>),.........<span
41bc0 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 0a 20 .class="tok-null">true</span>,..
41be0 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 26 71 75 .......<span.class="tok-str">&qu
41c00 6f 74 3b 68 69 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 20 2b 2b 20 2e 7b 3c ot;hi&quot;</span>,.....}.++..{<
41c20 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 61 span.class="tok-null">false</spa
41c40 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">
41c60 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 22 74 6f 6b 2d 6b 2</span>;.....<span.class="tok-k
41c80 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 61 6c 75 65 73 5b 3c 73 70 61 w">try</span>.expect(values[<spa
41ca0 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 20 3d n.class="tok-number">0</span>].=
41cc0 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 3c =.<span.class="tok-number">1234<
41ce0 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 6b 77 /span>);.....<span.class="tok-kw
41d00 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 61 6c 75 65 73 5b 3c 73 70 61 6e ">try</span>.expect(values[<span
41d20 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 20 3d 3d .class="tok-number">4</span>].==
41d40 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
41d60 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">
41d80 69 6e 6c 69 6e 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 inline</span>.<span.class="tok-k
41da0 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 76 61 6c 75 65 73 2c 20 3c 73 70 61 6e 20 63 6c 61 w">for</span>.(values,.<span.cla
41dc0 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 29 20 7c 76 2c 20 ss="tok-number">0</span>..).|v,.
41de0 69 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 i|.{.........<span.class="tok-kw
41e00 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 69 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ">if</span>.(i.!=.<span.class="t
41e20 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 61 73 73 ok-number">2</span>).<span.class
41e40 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 20 ="tok-kw">continue</span>;......
41e60 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 61 ...<span.class="tok-kw">try</spa
41e80 6e 3e 20 65 78 70 65 63 74 28 76 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c n>.expect(v);.....}.....<span.cl
41ea0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 ass="tok-kw">try</span>.expect(v
41ec0 61 6c 75 65 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 alues.len.==.<span.class="tok-nu
41ee0 6d 62 65 72 22 3e 36 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 mber">6</span>);.....<span.class
41f00 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 61 6c 75 ="tok-kw">try</span>.expect(valu
41f20 65 73 2e 40 26 71 75 6f 74 3b 33 26 71 75 6f 74 3b 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 es.@&quot;3&quot;[<span.class="t
41f40 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 61 6e 20 63 6c ok-number">0</span>].==.<span.cl
41f60 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 0a 7d 3c 2f 63 6f ass="tok-str">'h'</span>);.}</co
41f80 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 de></pre></figure><figure><figca
41fa0 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 ption.class="shell-cap">Shell</f
41fc0 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 igcaption><pre><samp>$.<kbd>zig.
41fe0 74 65 73 74 20 74 65 73 74 5f 74 75 70 6c 65 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 test.test_tuples.zig</kbd>.1/1.t
42000 65 73 74 5f 74 75 70 6c 65 73 2e 74 65 73 74 2e 74 75 70 6c 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 est_tuples.test.tuple....OK.All.
42020 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 1.tests.passed..</samp></pre></f
42040 69 67 75 72 65 3e 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 igure>..............<p>See.also:
42060 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"
42080 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="
420a0 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
420c0 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
420e0 32 20 69 64 3d 22 65 6e 75 6d 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 2.id="enum"><a.href="nav.xhtml#t
42100 6f 63 2d 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 oc-enum">enum</a>.<a.class="hdr"
42120 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 .href="#enum">..</a></h2>.......
42140 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d .<figure><figcaption.class="zig-
42160 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 65 6e 75 cap"><cite.class="file">test_enu
42180 6d 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ms.zig</cite></figcaption><pre><
421a0 63 6f 64 65 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 code><span.class="tok-kw">const<
421c0 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /span>.expect.=.<span.class="tok
421e0 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
42200 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;</
42220 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 span>).testing.expect;.<span.cla
42240 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 3d 20 3c ss="tok-kw">const</span>.mem.=.<
42260 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
42280 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
422a0 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 0a 3c 73 70 61 uot;std&quot;</span>).mem;..<spa
422c0 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 63 6c 61 72 65 n.class="tok-comment">//.Declare
422e0 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 73 3d 22 74 6f .an.enum.</span>.<span.class="to
42300 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 73 70 61 6e 20 k-kw">const</span>.Type.=.<span.
42320 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 20 class="tok-kw">enum</span>.{....
42340 20 6f 6b 2c 0a 20 20 20 20 6e 6f 74 5f 6f 6b 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 .ok,.....not_ok,.};..<span.class
42360 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 73 70 65 63 ="tok-comment">//.Declare.a.spec
42380 69 66 69 63 20 65 6e 75 6d 20 66 69 65 6c 64 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c ific.enum.field.</span>.<span.cl
423a0 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 20 3d 20 54 79 ass="tok-kw">const</span>.c.=.Ty
423c0 70 65 2e 6f 6b 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 pe.ok;..<span.class="tok-comment
423e0 22 3e 2f 2f 20 49 66 20 79 6f 75 20 77 61 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 6f ">//.If.you.want.access.to.the.o
42400 72 64 69 6e 61 6c 20 76 61 6c 75 65 20 6f 66 20 61 6e 20 65 6e 75 6d 2c 20 79 6f 75 3c 2f 73 70 rdinal.value.of.an.enum,.you</sp
42420 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">//
42440 20 63 61 6e 20 73 70 65 63 69 66 79 20 74 68 65 20 74 61 67 20 74 79 70 65 2e 3c 2f 73 70 61 6e .can.specify.the.tag.type.</span
42460 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 73 70 >.<span.class="tok-kw">const</sp
42480 61 6e 3e 20 56 61 6c 75 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 an>.Value.=.<span.class="tok-kw"
424a0 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 6f 6b 2d 74 79 >enum</span>(<span.class="tok-ty
424c0 70 65 22 3e 75 32 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 7a 65 72 6f 2c 0a 20 20 20 20 6f pe">u2</span>).{.....zero,.....o
424e0 6e 65 2c 0a 20 20 20 20 74 77 6f 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ne,.....two,.};.<span.class="tok
42500 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 6f 77 20 79 6f 75 20 63 61 6e 20 63 61 73 74 20 62 65 -comment">//.Now.you.can.cast.be
42520 74 77 65 65 6e 20 75 32 20 61 6e 64 20 56 61 6c 75 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e tween.u2.and.Value.</span>.<span
42540 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 6f 72 64 69 .class="tok-comment">//.The.ordi
42560 6e 61 6c 20 76 61 6c 75 65 20 73 74 61 72 74 73 20 66 72 6f 6d 20 30 2c 20 63 6f 75 6e 74 69 6e nal.value.starts.from.0,.countin
42580 67 20 75 70 20 62 79 20 31 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6d 65 6d 62 g.up.by.1.from.the.previous.memb
425a0 65 72 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 er.</span>.<span.class="tok-kw">
425c0 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
425e0 22 3e 26 71 75 6f 74 3b 65 6e 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 26 71 75 6f 74 3b ">&quot;enum.ordinal.value&quot;
42600 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
42620 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 w">try</span>.expect(<span.class
42640 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 ="tok-builtin">@intFromEnum</spa
42660 6e 3e 28 56 61 6c 75 65 2e 7a 65 72 6f 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n>(Value.zero).==.<span.class="t
42680 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 3c 73 70 61 6e 20 ok-number">0</span>);.....<span.
426a0 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
426c0 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 6e 74 46 (<span.class="tok-builtin">@intF
426e0 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 2e 6f 6e 65 29 20 3d 3d 20 3c 73 70 romEnum</span>(Value.one).==.<sp
42700 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 3b an.class="tok-number">1</span>);
42720 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
42740 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 pan>.expect(<span.class="tok-bui
42760 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 2e ltin">@intFromEnum</span>(Value.
42780 74 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 65 72 22 two).==.<span.class="tok-number"
427a0 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 6f 6b 2d >2</span>);.}..<span.class="tok-
427c0 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 74 68 65 comment">//.You.can.override.the
427e0 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 73 70 61 .ordinal.value.for.an.enum.</spa
42800 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 73 n>.<span.class="tok-kw">const</s
42820 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 6b 2d 6b pan>.Value2.=.<span.class="tok-k
42840 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 6f 6b 2d w">enum</span>(<span.class="tok-
42860 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 68 75 6e 64 72 65 64 20 type">u32</span>).{.....hundred.
42880 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 30 3c 2f =.<span.class="tok-number">100</
428a0 73 70 61 6e 3e 2c 0a 20 20 20 20 74 68 6f 75 73 61 6e 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 span>,.....thousand.=.<span.clas
428c0 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 20 20 20 s="tok-number">1000</span>,.....
428e0 6d 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 6d 62 65 million.=.<span.class="tok-numbe
42900 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 6c 61 73 r">1000000</span>,.};.<span.clas
42920 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
42940 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 72 64 69 ss="tok-str">&quot;set.enum.ordi
42960 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 3c 73 70 nal.value&quot;</span>.{.....<sp
42980 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 65 78 70 an.class="tok-kw">try</span>.exp
429a0 65 63 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 69 ect(<span.class="tok-builtin">@i
429c0 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 32 2e 68 75 6e 64 72 65 64 ntFromEnum</span>(Value2.hundred
429e0 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 30 ).==.<span.class="tok-number">10
42a00 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 22 74 6f 6b 2d 0</span>);.....<span.class="tok-
42a20 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 kw">try</span>.expect(<span.clas
42a40 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 s="tok-builtin">@intFromEnum</sp
42a60 61 6e 3e 28 56 61 6c 75 65 32 2e 74 68 6f 75 73 61 6e 64 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c an>(Value2.thousand).==.<span.cl
42a80 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 29 3b 0a 20 ass="tok-number">1000</span>);..
42aa0 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 61 ...<span.class="tok-kw">try</spa
42ac0 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 n>.expect(<span.class="tok-built
42ae0 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 32 2e 6d in">@intFromEnum</span>(Value2.m
42b00 69 6c 6c 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 illion).==.<span.class="tok-numb
42b20 65 72 22 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 er">1000000</span>);.}..<span.cl
42b40 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 20 61 6c 73 ass="tok-comment">//.You.can.als
42b60 6f 20 6f 76 65 72 72 69 64 65 20 6f 6e 6c 79 20 73 6f 6d 65 20 76 61 6c 75 65 73 2e 3c 2f 73 70 o.override.only.some.values.</sp
42b80 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</
42ba0 73 70 61 6e 3e 20 56 61 6c 75 65 33 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d span>.Value3.=.<span.class="tok-
42bc0 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 6f 6b kw">enum</span>(<span.class="tok
42be0 2d 74 79 70 65 22 3e 75 34 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 61 2c 0a 20 20 20 20 62 -type">u4</span>).{.....a,.....b
42c00 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 38 3c 2f 73 .=.<span.class="tok-number">8</s
42c20 70 61 6e 3e 2c 0a 20 20 20 20 63 2c 0a 20 20 20 20 64 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 pan>,.....c,.....d.=.<span.class
42c40 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 65 2c 0a 7d ="tok-number">4</span>,.....e,.}
42c60 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 61 ;.<span.class="tok-kw">test</spa
42c80 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 65 n>.<span.class="tok-str">&quot;e
42ca0 6e 75 6d 20 69 6d 70 6c 69 63 69 74 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 73 20 61 6e 64 20 num.implicit.ordinal.values.and.
42cc0 6f 76 65 72 72 69 64 64 65 6e 20 76 61 6c 75 65 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b overridden.values&quot;</span>.{
42ce0 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
42d00 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 pan>.expect(<span.class="tok-bui
42d20 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 33 ltin">@intFromEnum</span>(Value3
42d40 2e 61 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 .a).==.<span.class="tok-number">
42d60 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 22 74 6f 6b 2d 0</span>);.....<span.class="tok-
42d80 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 kw">try</span>.expect(<span.clas
42da0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 s="tok-builtin">@intFromEnum</sp
42dc0 61 6e 3e 28 56 61 6c 75 65 33 2e 62 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f an>(Value3.b).==.<span.class="to
42de0 6b 2d 6e 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 k-number">8</span>);.....<span.c
42e00 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 65 78 70 65 63 74 28 lass="tok-kw">try</span>.expect(
42e20 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 46 72 <span.class="tok-builtin">@intFr
42e40 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 33 2e 63 29 20 3d 3d 20 3c 73 70 61 6e omEnum</span>(Value3.c).==.<span
42e60 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 29 3b 0a 20 .class="tok-number">9</span>);..
42e80 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 61 ...<span.class="tok-kw">try</spa
42ea0 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 n>.expect(<span.class="tok-built
42ec0 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e 3e 28 56 61 6c 75 65 33 2e 64 in">@intFromEnum</span>(Value3.d
42ee0 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 34 3c ).==.<span.class="tok-number">4<
42f00 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 6b 77 /span>);.....<span.class="tok-kw
42f20 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d ">try</span>.expect(<span.class=
42f40 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e "tok-builtin">@intFromEnum</span
42f60 3e 28 56 61 6c 75 65 33 2e 65 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >(Value3.e).==.<span.class="tok-
42f80 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 number">5</span>);.}..<span.clas
42fa0 73 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 s="tok-comment">//.Enums.can.hav
42fc0 65 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 e.methods,.the.same.as.structs.a
42fe0 6e 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 nd.unions.</span>.<span.class="t
43000 6f 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 ok-comment">//.Enum.methods.are.
43020 6e 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 not.special,.they.are.only.names
43040 70 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 paced</span>.<span.class="tok-co
43060 6d 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 mment">//.functions.that.you.can
43080 20 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 .call.with.dot.syntax.</span>.<s
430a0 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>.
430c0 53 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 Suit.=.<span.class="tok-kw">enum
430e0 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 63 6c 75 62 73 2c 0a 20 20 20 20 73 70 61 64 65 73 2c </span>.{.....clubs,.....spades,
43100 0a 20 20 20 20 64 69 61 6d 6f 6e 64 73 2c 0a 20 20 20 20 68 65 61 72 74 73 2c 0a 0a 20 20 20 20 .....diamonds,.....hearts,......
43120 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>.
43140 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>.<
43160 73 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 span.class="tok-fn">isClubs</spa
43180 6e 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 n>(self:.Suit).<span.class="tok-
431a0 74 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 type">bool</span>.{.........<spa
431c0 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 73 n.class="tok-kw">return</span>.s
431e0 65 6c 66 20 3d 3d 20 53 75 69 74 2e 63 6c 75 62 73 3b 0a 20 20 20 20 7d 0a 7d 3b 0a 3c 73 70 61 elf.==.Suit.clubs;.....}.};.<spa
43200 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
43220 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 75 6d 20 6d 65 an.class="tok-str">&quot;enum.me
43240 74 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 thod&quot;</span>.{.....<span.cl
43260 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 53 75 ass="tok-kw">const</span>.p.=.Su
43280 69 74 2e 73 70 61 64 65 73 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d it.spades;.....<span.class="tok-
432a0 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 21 70 2e 69 73 43 6c 75 62 73 kw">try</span>.expect(!p.isClubs
432c0 28 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 ());.}..<span.class="tok-comment
432e0 22 3e 2f 2f 20 41 6e 20 65 6e 75 6d 20 63 61 6e 20 62 65 20 73 77 69 74 63 68 65 64 20 75 70 6f ">//.An.enum.can.be.switched.upo
43300 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 3e 63 n.</span>.<span.class="tok-kw">c
43320 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
43340 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 73 74 72 69 6e 67 2c ok-kw">enum</span>.{.....string,
43360 0a 20 20 20 20 6e 75 6d 62 65 72 2c 0a 20 20 20 20 6e 6f 6e 65 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 .....number,.....none,.};.<span.
43380 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
433a0 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 73 77 69 74 .class="tok-str">&quot;enum.swit
433c0 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 61 73 ch&quot;</span>.{.....<span.clas
433e0 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 6f 2e s="tok-kw">const</span>.p.=.Foo.
43400 6e 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 77 22 number;.....<span.class="tok-kw"
43420 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 61 6e >const</span>.what_is_it.=.<span
43440 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 28 70 .class="tok-kw">switch</span>.(p
43460 29 20 7b 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 73 74 72 69 6e 67 20 3d 26 67 74 3b 20 3c 73 70 ).{.........Foo.string.=&gt;.<sp
43480 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 69 73 an.class="tok-str">&quot;this.is
434a0 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 20 20 .a.string&quot;</span>,.........
434c0 46 6f 6f 2e 6e 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 74 6f Foo.number.=&gt;.<span.class="to
434e0 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 71 75 k-str">&quot;this.is.a.number&qu
43500 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 6e 6f 6e 65 20 3d 26 67 ot;</span>,.........Foo.none.=&g
43520 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 3b 74 t;.<span.class="tok-str">&quot;t
43540 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 20 20 his.is.a.none&quot;</span>,.....
43560 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 74 72 79 3c };.....<span.class="tok-kw">try<
43580 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 73 /span>.expect(mem.eql(<span.clas
435a0 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 73 5f s="tok-type">u8</span>,.what_is_
435c0 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 74 3b it,.<span.class="tok-str">&quot;
435e0 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 29 3b this.is.a.number&quot;</span>));
43600 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">//
43620 20 40 74 79 70 65 49 6e 66 6f 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 61 63 63 65 73 73 .@typeInfo.can.be.used.to.access
43640 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 6d .the.integer.tag.type.of.an.enum
43660 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 6f .</span>.<span.class="tok-kw">co
43680 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 22 nst</span>.Small.=.<span.class="
436a0 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 6f 6e 65 2c 0a 20 tok-kw">enum</span>.{.....one,..
436c0 20 20 20 74 77 6f 2c 0a 20 20 20 20 74 68 72 65 65 2c 0a 20 20 20 20 66 6f 75 72 2c 0a 7d 3b 0a ...two,.....three,.....four,.};.
436e0 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>
43700 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 64 .<span.class="tok-str">&quot;std
43720 2e 6d 65 74 61 2e 54 61 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 .meta.Tag&quot;</span>.{.....<sp
43740 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 65 78 70 an.class="tok-kw">try</span>.exp
43760 65 63 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 ect(<span.class="tok-builtin">@t
43780 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 53 6d 61 6c 6c 29 2e 45 6e 75 6d 2e 74 61 67 5f 74 ypeInfo</span>(Small).Enum.tag_t
437a0 79 70 65 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 75 32 ype.==.<span.class="tok-type">u2
437c0 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
437e0 6d 6d 65 6e 74 22 3e 2f 2f 20 40 74 79 70 65 49 6e 66 6f 20 74 65 6c 6c 73 20 75 73 20 74 68 65 mment">//.@typeInfo.tells.us.the
43800 20 66 69 65 6c 64 20 63 6f 75 6e 74 20 61 6e 64 20 74 68 65 20 66 69 65 6c 64 73 20 6e 61 6d 65 .field.count.and.the.fields.name
43820 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 6b 77 22 3e 74 s:</span>.<span.class="tok-kw">t
43840 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"
43860 3e 26 71 75 6f 74 3b 40 74 79 70 65 49 6e 66 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a >&quot;@typeInfo&quot;</span>.{.
43880 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
438a0 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c an>.expect(<span.class="tok-buil
438c0 74 69 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 53 6d 61 6c 6c 29 2e 45 6e 75 tin">@typeInfo</span>(Small).Enu
438e0 6d 2e 66 69 65 6c 64 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 m.fields.len.==.<span.class="tok
43900 2d 6e 75 6d 62 65 72 22 3e 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c -number">4</span>);.....<span.cl
43920 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d ass="tok-kw">try</span>.expect(m
43940 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 38 em.eql(<span.class="tok-type">u8
43960 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 74 69 </span>,.<span.class="tok-builti
43980 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 53 6d 61 6c 6c 29 2e 45 6e 75 6d 2e n">@typeInfo</span>(Small).Enum.
439a0 66 69 65 6c 64 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 fields[<span.class="tok-number">
439c0 31 3c 2f 73 70 61 6e 3e 5d 2e 6e 61 6d 65 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 1</span>].name,.<span.class="tok
439e0 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 6e 3e 29 29 3b 0a -str">&quot;two&quot;</span>));.
43a00 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">//.
43a20 40 74 61 67 4e 61 6d 65 20 67 69 76 65 73 20 61 20 5b 3a 30 5d 63 6f 6e 73 74 20 75 38 20 72 65 @tagName.gives.a.[:0]const.u8.re
43a40 70 72 65 73 65 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 presentation.of.an.enum.value:</
43a60 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 3c span>.<span.class="tok-kw">test<
43a80 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
43aa0 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 3c ot;@tagName&quot;</span>.{.....<
43ac0 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 65 span.class="tok-kw">try</span>.e
43ae0 78 70 65 63 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 xpect(mem.eql(<span.class="tok-t
43b00 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
43b20 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 6d 61 6c 6c 2e -builtin">@tagName</span>(Small.
43b40 74 68 72 65 65 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 three),.<span.class="tok-str">&q
43b60 75 6f 74 3b 74 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 uot;three&quot;</span>));.}</cod
43b80 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
43ba0 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
43bc0 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 gcaption><pre><samp>$.<kbd>zig.t
43be0 65 73 74 20 74 65 73 74 5f 65 6e 75 6d 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 38 20 74 65 73 est.test_enums.zig</kbd>.1/8.tes
43c00 74 5f 65 6e 75 6d 73 2e 74 65 73 74 2e 65 6e 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 2e t_enums.test.enum.ordinal.value.
43c20 2e 2e 20 4f 4b 0a 32 2f 38 20 74 65 73 74 5f 65 6e 75 6d 73 2e 74 65 73 74 2e 73 65 74 20 65 6e ...OK.2/8.test_enums.test.set.en
43c40 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 2e 2e 2e 20 4f 4b 0a 33 2f 38 20 74 65 73 74 5f um.ordinal.value....OK.3/8.test_
43c60 65 6e 75 6d 73 2e 74 65 73 74 2e 65 6e 75 6d 20 69 6d 70 6c 69 63 69 74 20 6f 72 64 69 6e 61 6c enums.test.enum.implicit.ordinal
43c80 20 76 61 6c 75 65 73 20 61 6e 64 20 6f 76 65 72 72 69 64 64 65 6e 20 76 61 6c 75 65 73 2e 2e 2e .values.and.overridden.values...
43ca0 20 4f 4b 0a 34 2f 38 20 74 65 73 74 5f 65 6e 75 6d 73 2e 74 65 73 74 2e 65 6e 75 6d 20 6d 65 74 .OK.4/8.test_enums.test.enum.met
43cc0 68 6f 64 2e 2e 2e 20 4f 4b 0a 35 2f 38 20 74 65 73 74 5f 65 6e 75 6d 73 2e 74 65 73 74 2e 65 6e hod....OK.5/8.test_enums.test.en
43ce0 75 6d 20 73 77 69 74 63 68 2e 2e 2e 20 4f 4b 0a 36 2f 38 20 74 65 73 74 5f 65 6e 75 6d 73 2e 74 um.switch....OK.6/8.test_enums.t
43d00 65 73 74 2e 73 74 64 2e 6d 65 74 61 2e 54 61 67 2e 2e 2e 20 4f 4b 0a 37 2f 38 20 74 65 73 74 5f est.std.meta.Tag....OK.7/8.test_
43d20 65 6e 75 6d 73 2e 74 65 73 74 2e 40 74 79 70 65 49 6e 66 6f 2e 2e 2e 20 4f 4b 0a 38 2f 38 20 74 enums.test.@typeInfo....OK.8/8.t
43d40 65 73 74 5f 65 6e 75 6d 73 2e 74 65 73 74 2e 40 74 61 67 4e 61 6d 65 2e 2e 2e 20 4f 4b 0a 41 6c est_enums.test.@tagName....OK.Al
43d60 6c 20 38 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c l.8.tests.passed..</samp></pre><
43d80 2f 66 69 67 75 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 /figure>.......<p>See.also:</p><
43da0 75 6c 3e 0a 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 ul>.<li><a.href="#typeInfo">@typ
43dc0 65 49 6e 66 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 61 67 eInfo</a></li>.<li><a.href="#tag
43de0 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 61 20 68 Name">@tagName</a></li>.<li><a.h
43e00 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 3e 0a 3c ref="#sizeOf">@sizeOf</a></li>.<
43e20 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 65 78 74 65 72 6e 2d 65 6e 75 6d /ul>.........<h3.id="extern-enum
43e40 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 78 74 65 72 6e 2d "><a.href="nav.xhtml#toc-extern-
43e60 65 6e 75 6d 22 3e 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 enum">extern.enum</a>.<a.class="
43e80 68 64 72 22 20 68 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 hdr".href="#extern-enum">..</a><
43ea0 2f 68 33 3e 0a 0a 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 /h3>........<p>.......By.default
43ec0 2c 20 65 6e 75 6d 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 ,.enums.are.not.guaranteed.to.be
43ee0 20 63 6f 6d 70 61 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 .compatible.with.the.C.ABI:.....
43f00 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
43f20 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
43f40 6c 65 22 3e 65 6e 75 6d 5f 65 78 70 6f 72 74 5f 65 72 72 6f 72 2e 7a 69 67 3c 2f 63 69 74 65 3e le">enum_export_error.zig</cite>
43f60 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
43f80 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 20 ass="tok-kw">const</span>.Foo.=.
43fa0 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>
43fc0 20 7b 20 61 2c 20 62 2c 20 63 20 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b .{.a,.b,.c.};.<span.class="tok-k
43fe0 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 74 6f w">export</span>.<span.class="to
44000 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
44020 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 70 61 -fn">entry</span>(foo:.Foo).<spa
44040 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>.{
44060 20 5f 20 3d 20 66 6f 6f 3b 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ._.=.foo;.}</code></pre></figure
44080 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
440a0 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
440c0 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 65 6e 75 6d 5f 65 78 amp>$.<kbd>zig.build-obj.enum_ex
440e0 70 6f 72 74 5f 65 72 72 6f 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 port_error.zig</kbd>.<span.class
44100 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 65 6e 75 6d 5f 65 78 70 6f 72 74 ="sgr-1m">docgen_tmp/enum_export
44120 5f 65 72 72 6f 72 2e 7a 69 67 3a 32 3a 31 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c _error.zig:2:17:.</span><span.cl
44140 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 ass="sgr-31m">error:.</span><spa
44160 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 70 61 72 61 6d 65 74 65 72 20 6f 66 20 74 79 n.class="sgr-1m">parameter.of.ty
44180 70 65 20 27 65 6e 75 6d 5f 65 78 70 6f 72 74 5f 65 72 72 6f 72 2e 46 6f 6f 27 20 6e 6f 74 20 61 pe.'enum_export_error.Foo'.not.a
441a0 6c 6c 6f 77 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 llowed.in.function.with.calling.
441c0 63 6f 6e 76 65 6e 74 69 6f 6e 20 27 43 27 0a 3c 2f 73 70 61 6e 3e 65 78 70 6f 72 74 20 66 6e 20 convention.'C'.</span>export.fn.
441e0 65 6e 74 72 79 28 66 6f 6f 3a 20 46 6f 6f 29 20 76 6f 69 64 20 7b 20 5f 20 3d 20 66 6f 6f 3b 20 entry(foo:.Foo).void.{._.=.foo;.
44200 7d 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 73 }.................<span.class="s
44220 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c gr-32m">^~~~~~~~.</span><span.cl
44240 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 65 6e 75 6d 5f 65 78 70 ass="sgr-1m">docgen_tmp/enum_exp
44260 6f 72 74 5f 65 72 72 6f 72 2e 7a 69 67 3a 32 3a 31 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e ort_error.zig:2:17:.</span><span
44280 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 .class="sgr-36m">note:.</span><s
442a0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 65 6e 75 6d 20 74 61 67 20 74 79 70 65 pan.class="sgr-1m">enum.tag.type
442c0 20 27 75 32 27 20 69 73 20 6e 6f 74 20 65 78 74 65 72 6e 20 63 6f 6d 70 61 74 69 62 6c 65 0a 3c .'u2'.is.not.extern.compatible.<
442e0 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 /span><span.class="sgr-1m">docge
44300 6e 5f 74 6d 70 2f 65 6e 75 6d 5f 65 78 70 6f 72 74 5f 65 72 72 6f 72 2e 7a 69 67 3a 32 3a 31 37 n_tmp/enum_export_error.zig:2:17
44320 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e :.</span><span.class="sgr-36m">n
44340 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 ote:.</span><span.class="sgr-1m"
44360 3e 6f 6e 6c 79 20 69 6e 74 65 67 65 72 73 20 77 69 74 68 20 30 2c 20 38 2c 20 31 36 2c 20 33 32 >only.integers.with.0,.8,.16,.32
44380 2c 20 36 34 20 61 6e 64 20 31 32 38 20 62 69 74 73 20 61 72 65 20 65 78 74 65 72 6e 20 63 6f 6d ,.64.and.128.bits.are.extern.com
443a0 70 61 74 69 62 6c 65 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d patible.</span><span.class="sgr-
443c0 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 65 6e 75 6d 5f 65 78 70 6f 72 74 5f 65 72 72 6f 72 1m">docgen_tmp/enum_export_error
443e0 2e 7a 69 67 3a 31 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 .zig:1:13:.</span><span.class="s
44400 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 gr-36m">note:.</span><span.class
44420 3d 22 73 67 72 2d 31 6d 22 3e 65 6e 75 6d 20 64 65 63 6c 61 72 65 64 20 68 65 72 65 0a 3c 2f 73 ="sgr-1m">enum.declared.here.</s
44440 70 61 6e 3e 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 65 6e 75 6d 20 7b 20 61 2c 20 62 2c 20 63 20 7d pan>const.Foo.=.enum.{.a,.b,.c.}
44460 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 73 67 72 2d 33 ;.............<span.class="sgr-3
44480 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 2m">^~~~~~~~~~~~~~~~.</span>.</s
444a0 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 amp></pre></figure>.......<p>...
444c0 20 20 20 20 46 6f 72 20 61 20 43 2d 41 42 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 65 6e 75 6d 2c ....For.a.C-ABI-compatible.enum,
444e0 20 70 72 6f 76 69 64 65 20 61 6e 20 65 78 70 6c 69 63 69 74 20 74 61 67 20 74 79 70 65 20 74 6f .provide.an.explicit.tag.type.to
44500 0a 20 20 20 20 20 20 74 68 65 20 65 6e 75 6d 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 .......the.enum:.......</p>.....
44520 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
44540 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 65 6e 75 6d 5f 65 78 -cap"><cite.class="file">enum_ex
44560 70 6f 72 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 port.zig</cite></figcaption><pre
44580 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
445a0 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 6f 6b 2d t</span>.Foo.=.<span.class="tok-
445c0 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 6f 6b kw">enum</span>(<span.class="tok
445e0 2d 74 79 70 65 22 3e 63 5f 69 6e 74 3c 2f 73 70 61 6e 3e 29 20 7b 20 61 2c 20 62 2c 20 63 20 7d -type">c_int</span>).{.a,.b,.c.}
44600 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 72 74 3c 2f 73 ;.<span.class="tok-kw">export</s
44620 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
44640 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 65 6e 74 72 79 3c 2f an>.<span.class="tok-fn">entry</
44660 73 70 61 6e 3e 28 66 6f 6f 3a 20 46 6f 6f 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b span>(foo:.Foo).<span.class="tok
44680 2d 74 79 70 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 20 5f 20 3d 20 66 6f 6f 3b 20 7d 3c -type">void</span>.{._.=.foo;.}<
446a0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
446c0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
446e0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
44700 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 65 6e 75 6d 5f 65 78 70 6f 72 74 2e 7a 69 67 3c 2f 6b 62 ig.build-obj.enum_export.zig</kb
44720 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 d>.</samp></pre></figure>.......
44740 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 3e 3c ........<h3.id="Enum-Literals"><
44760 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 45 6e 75 6d 2d 4c 69 74 65 72 a.href="nav.xhtml#toc-Enum-Liter
44780 61 6c 73 22 3e 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 als">Enum.Literals</a>.<a.class=
447a0 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 3e c2 a7 3c 2f "hdr".href="#Enum-Literals">..</
447c0 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 45 6e 75 6d 20 6c 69 a></h3>........<p>.......Enum.li
447e0 74 65 72 61 6c 73 20 61 6c 6c 6f 77 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 65 20 6e 61 6d 65 terals.allow.specifying.the.name
44800 20 6f 66 20 61 6e 20 65 6e 75 6d 20 66 69 65 6c 64 20 77 69 74 68 6f 75 74 20 73 70 65 63 69 66 .of.an.enum.field.without.specif
44820 79 69 6e 67 20 74 68 65 20 65 6e 75 6d 20 74 79 70 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 ying.the.enum.type:.......</p>..
44840 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
44860 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
44880 5f 65 6e 75 6d 5f 6c 69 74 65 72 61 6c 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 _enum_literals.zig</cite></figca
448a0 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
448c0 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
448e0 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
44900 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
44920 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
44940 6b 2d 6b 77 22 3e 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 k-kw">const</span>.expect.=.std.
44960 74 65 73 74 69 6e 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 testing.expect;..<span.class="to
44980 6b 2d 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 k-kw">const</span>.Color.=.<span
449a0 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>.{...
449c0 20 20 61 75 74 6f 2c 0a 20 20 20 20 6f 66 66 2c 0a 20 20 20 20 6f 6e 2c 0a 7d 3b 0a 0a 3c 73 70 ..auto,.....off,.....on,.};..<sp
449e0 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
44a00 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 75 6d 20 6c pan.class="tok-str">&quot;enum.l
44a20 69 74 65 72 61 6c 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 iterals&quot;</span>.{.....<span
44a40 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
44a60 6f 72 31 3a 20 43 6f 6c 6f 72 20 3d 20 2e 61 75 74 6f 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c or1:.Color.=..auto;.....<span.cl
44a80 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 6f 72 32 ass="tok-kw">const</span>.color2
44aa0 20 3d 20 43 6f 6c 6f 72 2e 61 75 74 6f 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .=.Color.auto;.....<span.class="
44ac0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 63 6f 6c 6f 72 31 tok-kw">try</span>.expect(color1
44ae0 20 3d 3d 20 63 6f 6c 6f 72 32 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .==.color2);.}..<span.class="tok
44b00 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
44b20 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 77 69 74 63 68 20 75 73 69 6e 67 20 65 6e 75 6d 20 6c k-str">&quot;switch.using.enum.l
44b40 69 74 65 72 61 6c 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 iterals&quot;</span>.{.....<span
44b60 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
44b80 6f 72 20 3d 20 43 6f 6c 6f 72 2e 6f 6e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 or.=.Color.on;.....<span.class="
44ba0 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 3c 73 tok-kw">const</span>.result.=.<s
44bc0 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>
44be0 20 28 63 6f 6c 6f 72 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 61 75 74 6f 20 3d 26 67 74 3b 20 3c .(color).{..........auto.=&gt;.<
44c00 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 61 span.class="tok-null">false</spa
44c20 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 6f 6e 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 n>,..........on.=&gt;.<span.clas
44c40 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 20 20 20 s="tok-null">true</span>,.......
44c60 20 20 2e 6f 66 66 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 ...off.=&gt;.<span.class="tok-nu
44c80 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 3c 73 70 ll">false</span>,.....};.....<sp
44ca0 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 65 78 70 an.class="tok-kw">try</span>.exp
44cc0 65 63 74 28 72 65 73 75 6c 74 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 ect(result);.}</code></pre></fig
44ce0 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 ure><figure><figcaption.class="s
44d00 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 hell-cap">Shell</figcaption><pre
44d20 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 65 6e 75 6d ><samp>$.<kbd>zig.test.test_enum
44d40 5f 6c 69 74 65 72 61 6c 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 5f 65 6e 75 _literals.zig</kbd>.1/2.test_enu
44d60 6d 5f 6c 69 74 65 72 61 6c 73 2e 74 65 73 74 2e 65 6e 75 6d 20 6c 69 74 65 72 61 6c 73 2e 2e 2e m_literals.test.enum.literals...
44d80 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 65 6e 75 6d 5f 6c 69 74 65 72 61 6c 73 2e 74 65 73 74 2e .OK.2/2.test_enum_literals.test.
44da0 73 77 69 74 63 68 20 75 73 69 6e 67 20 65 6e 75 6d 20 6c 69 74 65 72 61 6c 73 2e 2e 2e 20 4f 4b switch.using.enum.literals....OK
44dc0 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 .All.2.tests.passed..</samp></pr
44de0 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 e></figure>...............<h3.id
44e00 3d 22 4e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 2d 65 6e 75 6d 22 3e 3c 61 20 68 72 65 66 3d 22 ="Non-exhaustive-enum"><a.href="
44e20 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 4e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 2d 65 6e 75 nav.xhtml#toc-Non-exhaustive-enu
44e40 6d 22 3e 4e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 20 65 6e 75 6d 3c 2f 61 3e 20 3c 61 20 63 6c m">Non-exhaustive.enum</a>.<a.cl
44e60 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 4e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 2d ass="hdr".href="#Non-exhaustive-
44e80 65 6e 75 6d 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 enum">..</a></h3>........<p>....
44ea0 20 20 20 41 20 6e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 20 65 6e 75 6d 20 63 61 6e 20 62 65 20 ...A.non-exhaustive.enum.can.be.
44ec0 63 72 65 61 74 65 64 20 62 79 20 61 64 64 69 6e 67 20 61 20 74 72 61 69 6c 69 6e 67 20 3c 63 6f created.by.adding.a.trailing.<co
44ee0 64 65 3e 5f 3c 2f 63 6f 64 65 3e 20 66 69 65 6c 64 2e 0a 20 20 20 20 20 20 54 68 65 20 65 6e 75 de>_</code>.field........The.enu
44f00 6d 20 6d 75 73 74 20 73 70 65 63 69 66 79 20 61 20 74 61 67 20 74 79 70 65 20 61 6e 64 20 63 61 m.must.specify.a.tag.type.and.ca
44f20 6e 6e 6f 74 20 63 6f 6e 73 75 6d 65 20 65 76 65 72 79 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 76 nnot.consume.every.enumeration.v
44f40 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 20 20 20 20 alue........</p>.......<p>......
44f60 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 46 72 6f 6d 49 6e 74 22 3e 40 65 6e 75 6d 46 72 6f .<a.href="#enumFromInt">@enumFro
44f80 6d 49 6e 74 3c 2f 61 3e 20 6f 6e 20 61 20 6e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 20 65 6e 75 mInt</a>.on.a.non-exhaustive.enu
44fa0 6d 20 69 6e 76 6f 6c 76 65 73 20 74 68 65 20 73 61 66 65 74 79 20 73 65 6d 61 6e 74 69 63 73 0a m.involves.the.safety.semantics.
44fc0 20 20 20 20 20 20 6f 66 20 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 43 61 73 74 22 3e 40 69 6e 74 ......of.<a.href="#intCast">@int
44fe0 43 61 73 74 3c 2f 61 3e 20 74 6f 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 61 67 20 74 79 70 65 Cast</a>.to.the.integer.tag.type
45000 2c 20 62 75 74 20 62 65 79 6f 6e 64 20 74 68 61 74 20 61 6c 77 61 79 73 20 72 65 73 75 6c 74 73 ,.but.beyond.that.always.results
45020 20 69 6e 0a 20 20 20 20 20 20 61 20 77 65 6c 6c 2d 64 65 66 69 6e 65 64 20 65 6e 75 6d 20 76 61 .in.......a.well-defined.enum.va
45040 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 20 20 20 20 20 lue........</p>.......<p>.......
45060 41 20 73 77 69 74 63 68 20 6f 6e 20 61 20 6e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 20 65 6e 75 A.switch.on.a.non-exhaustive.enu
45080 6d 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 61 20 3c 63 6f 64 65 3e 5f 3c 2f 63 6f 64 65 3e 20 70 m.can.include.a.<code>_</code>.p
450a0 72 6f 6e 67 20 61 73 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 61 6e 20 3c 63 6f rong.as.an.alternative.to.an.<co
450c0 64 65 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 3c 2f 73 70 de><span.class="tok-kw">else</sp
450e0 61 6e 3e 3c 2f 63 6f 64 65 3e 20 70 72 6f 6e 67 2e 0a 20 20 20 20 20 20 57 69 74 68 20 61 20 3c an></code>.prong........With.a.<
45100 63 6f 64 65 3e 5f 3c 2f 63 6f 64 65 3e 20 70 72 6f 6e 67 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 code>_</code>.prong.the.compiler
45120 20 65 72 72 6f 72 73 20 69 66 20 61 6c 6c 20 74 68 65 20 6b 6e 6f 77 6e 20 74 61 67 20 6e 61 6d .errors.if.all.the.known.tag.nam
45140 65 73 20 61 72 65 20 6e 6f 74 20 68 61 6e 64 6c 65 64 20 62 79 20 74 68 65 20 73 77 69 74 63 68 es.are.not.handled.by.the.switch
45160 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ........</p>.......<figure><figc
45180 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 aption.class="zig-cap"><cite.cla
451a0 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 77 69 74 63 68 5f 6e 6f 6e 2d 65 78 68 61 75 73 ss="file">test_switch_non-exhaus
451c0 74 69 76 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 tive.zig</cite></figcaption><pre
451e0 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
45200 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 2d t</span>.std.=.<span.class="tok-
45220 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
45240 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
45260 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 73 pan>);.<span.class="tok-kw">cons
45280 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 67 2e 65 78 t</span>.expect.=.std.testing.ex
452a0 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 63 6f 6e 73 pect;..<span.class="tok-kw">cons
452c0 74 3c 2f 73 70 61 6e 3e 20 4e 75 6d 62 65 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t</span>.Number.=.<span.class="t
452e0 6f 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 ok-kw">enum</span>(<span.class="
45300 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 6f 6e 65 2c 0a tok-type">u8</span>).{.....one,.
45320 20 20 20 20 74 77 6f 2c 0a 20 20 20 20 74 68 72 65 65 2c 0a 20 20 20 20 5f 2c 0a 7d 3b 0a 0a 3c ....two,.....three,....._,.};..<
45340 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>.
45360 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
45380 63 68 20 6f 6e 20 6e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 20 65 6e 75 6d 26 71 75 6f 74 3b 3c ch.on.non-exhaustive.enum&quot;<
453a0 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
453c0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 20 3d 20 4e 75 6d 62 65 72 2e 6f ">const</span>.number.=.Number.o
453e0 6e 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 63 6f 6e ne;.....<span.class="tok-kw">con
45400 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="
45420 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 29 20 7b tok-kw">switch</span>.(number).{
45440 0a 20 20 20 20 20 20 20 20 2e 6f 6e 65 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..........one.=&gt;.<span.class=
45460 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 20 20 20 20 20 "tok-null">true</span>,.........
45480 2e 74 77 6f 2c 0a 20 20 20 20 20 20 20 20 2e 74 68 72 65 65 20 3d 26 67 74 3b 20 3c 73 70 61 6e .two,..........three.=&gt;.<span
454a0 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>,.
454c0 20 20 20 20 20 20 20 20 5f 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ........_.=&gt;.<span.class="tok
454e0 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 -null">false</span>,.....};.....
45500 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>.
45520 65 78 70 65 63 74 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d expect(result);.....<span.class=
45540 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 6f 6e 65 20 3d 20 3c "tok-kw">const</span>.is_one.=.<
45560 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
45580 3e 20 28 6e 75 6d 62 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 6f 6e 65 20 3d 26 67 74 3b 20 >.(number).{..........one.=&gt;.
455a0 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
455c0 6e 3e 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 n>,.........<span.class="tok-kw"
455e0 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 63 6c 61 73 73 3d 22 >else</span>.=&gt;.<span.class="
45600 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 20 20 20 7d 3b 0a 20 tok-null">false</span>,.....};..
45620 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 61 ...<span.class="tok-kw">try</spa
45640 6e 3e 20 65 78 70 65 63 74 28 69 73 5f 6f 6e 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 n>.expect(is_one);.}</code></pre
45660 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c ></figure><figure><figcaption.cl
45680 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f ass="shell-cap">Shell</figcaptio
456a0 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 n><pre><samp>$.<kbd>zig.test.tes
456c0 74 5f 73 77 69 74 63 68 5f 6e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 2e 7a 69 67 3c 2f 6b 62 64 t_switch_non-exhaustive.zig</kbd
456e0 3e 0a 31 2f 31 20 74 65 73 74 5f 73 77 69 74 63 68 5f 6e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 >.1/1.test_switch_non-exhaustive
45700 2e 74 65 73 74 2e 73 77 69 74 63 68 20 6f 6e 20 6e 6f 6e 2d 65 78 68 61 75 73 74 69 76 65 20 65 .test.switch.on.non-exhaustive.e
45720 6e 75 6d 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f num....OK.All.1.tests.passed..</
45740 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 samp></pre></figure>............
45760 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 75 6e 69 6f 6e 22 3e 3c 61 20 68 72 65 66 ..........<h2.id="union"><a.href
45780 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e ="nav.xhtml#toc-union">union</a>
457a0 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e c2 a7 .<a.class="hdr".href="#union">..
457c0 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 20 62 61 72 </a></h2>........<p>.......A.bar
457e0 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 6e 69 e.<code><span.class="tok-kw">uni
45800 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 74 20 6f on</span></code>.defines.a.set.o
45820 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 0a 20 20 f.possible.types.that.a.value...
45840 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 73 2e 20 ....can.be.as.a.list.of.fields..
45860 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 61 74 20 Only.one.field.can.be.active.at.
45880 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 65 70 72 a.time........The.in-memory.repr
458a0 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 6e 6f 74 esentation.of.bare.unions.is.not
458c0 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 73 20 63 .guaranteed........Bare.unions.c
458e0 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 6d 65 6d annot.be.used.to.reinterpret.mem
45900 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 70 74 72 ory..For.that,.use.<a.href="#ptr
45920 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 75 73 65 Cast">@ptrCast</a>,.......or.use
45940 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 78 74 65 .an.<a.href="#extern-union">exte
45960 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 61 63 6b rn.union</a>.or.a.<a.href="#pack
45980 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 69 63 68 ed-union">packed.union</a>.which
459a0 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 6f 72 79 .have.......guaranteed.in-memory
459c0 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 67 2d 55 .layout........<a.href="#Wrong-U
459e0 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 74 68 65 nion-Field-Access">Accessing.the
45a00 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 20 20 73 .non-active.field</a>.is.......s
45a20 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 69 6e 65 afety-checked.<a.href="#Undefine
45a40 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 2f d-Behavior">Undefined.Behavior</
45a60 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 a>:.......</p>.......<figure><fi
45a80 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
45aa0 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 61 63 63 lass="file">test_wrong_union_acc
45ac0 65 73 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ess.zig</cite></figcaption><pre>
45ae0 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
45b00 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 73 73 3d 22 74 </span>.Payload.=.<span.class="t
45b20 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 69 6e 74 3a 20 3c ok-kw">union</span>.{.....int:.<
45b40 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 6e 3e span.class="tok-type">i64</span>
45b60 2c 0a 20 20 20 20 66 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 ,.....float:.<span.class="tok-ty
45b80 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 62 6f 6f 6c 65 61 6e 3a 20 3c 73 70 pe">f64</span>,.....boolean:.<sp
45ba0 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>,
45bc0 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 2f 73 .};.<span.class="tok-kw">test</s
45be0 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
45c00 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 20 20 ;simple.union&quot;</span>.{....
45c20 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>
45c40 20 70 61 79 6c 6f 61 64 20 3d 20 50 61 79 6c 6f 61 64 7b 20 2e 69 6e 74 20 3d 20 3c 73 70 61 6e .payload.=.Payload{..int.=.<span
45c60 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 20 .class="tok-number">1234</span>.
45c80 7d 3b 0a 20 20 20 20 70 61 79 6c 6f 61 64 2e 66 6c 6f 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 };.....payload.float.=.<span.cla
45ca0 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 7d 3c ss="tok-number">12.34</span>;.}<
45cc0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
45ce0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
45d00 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
45d20 69 67 20 74 65 73 74 20 74 65 73 74 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 61 63 63 65 73 73 2e ig.test.test_wrong_union_access.
45d40 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 61 zig</kbd>.1/1.test_wrong_union_a
45d60 63 63 65 73 73 2e 74 65 73 74 2e 73 69 6d 70 6c 65 20 75 6e 69 6f 6e 2e 2e 2e 20 74 68 72 65 61 ccess.test.simple.union....threa
45d80 64 20 31 33 37 32 32 38 20 70 61 6e 69 63 3a 20 61 63 63 65 73 73 20 6f 66 20 75 6e 69 6f 6e 20 d.137228.panic:.access.of.union.
45da0 66 69 65 6c 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 field.'float'.while.field.'int'.
45dc0 69 73 20 61 63 74 69 76 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f is.active.<span.class="sgr-1m">/
45de0 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f home/andy/src/zig-0.12.x/docgen_
45e00 74 6d 70 2f 74 65 73 74 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 61 63 63 65 73 73 2e 7a 69 67 3a tmp/test_wrong_union_access.zig:
45e20 38 3a 31 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 8:12</span>:.<span.class="sgr-2m
45e40 22 3e 30 78 31 30 33 39 30 35 37 20 69 6e 20 74 65 73 74 2e 73 69 6d 70 6c 65 20 75 6e 69 6f 6e ">0x1039057.in.test.simple.union
45e60 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 66 6c 6f 61 74 .(test)</span>.....payload.float
45e80 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 73 73 .=.12.34;............<span.class
45ea0 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="sgr-32m">^</span>.<span.class=
45ec0 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 "sgr-1m">/home/andy/src/zig-0.12
45ee0 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a .x/lib/compiler/test_runner.zig:
45f00 31 35 38 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 158:25</span>:.<span.class="sgr-
45f20 32 6d 22 3e 30 78 31 30 34 34 33 30 64 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 28 74 2m">0x104430d.in.mainTerminal.(t
45f40 65 73 74 29 3c 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 est)</span>.........if.(test_fn.
45f60 66 75 6e 63 28 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 func()).|_|.{...................
45f80 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 ......<span.class="sgr-32m">^</s
45fa0 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f pan>.<span.class="sgr-1m">/home/
45fc0 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 andy/src/zig-0.12.x/lib/compiler
45fe0 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c /test_runner.zig:35:28</span>:.<
46000 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 61 32 34 62 20 69 6e span.class="sgr-2m">0x103a24b.in
46020 20 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 .main.(test)</span>.........retu
46040 72 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 rn.mainTerminal();..............
46060 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 73 67 72 2d 33 ..............<span.class="sgr-3
46080 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
460a0 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f ">/home/andy/src/zig-0.12.x/lib/
460c0 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 std/start.zig:501:22</span>:.<sp
460e0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 35 65 39 20 69 6e 20 70 an.class="sgr-2m">0x10395e9.in.p
46100 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
46120 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();......
46140 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 73 67 72 ................<span.class="sgr
46160 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d -32m">^</span>.<span.class="sgr-
46180 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 1m">/home/andy/src/zig-0.12.x/li
461a0 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 b/std/start.zig:253:5</span>:.<s
461c0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 31 35 31 20 69 6e 20 pan.class="sgr-2m">0x1039151.in.
461e0 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 61 73 6d 20 76 6f 6c _start.(test)</span>.....asm.vol
46200 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 atile.(switch.(native_arch).{...
46220 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e ..<span.class="sgr-32m">^</span>
46240 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 .<span.class="sgr-1m">???:?:?</s
46260 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 pan>:.<span.class="sgr-2m">0x0.i
46280 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 6f n.???.(???)</span>.error:.the.fo
462a0 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 63 72 61 73 68 65 64 3a 0a 2f 68 llowing.test.command.crashed:./h
462c0 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 63 68 ome/andy/src/zig-0.12.x/zig-cach
462e0 65 2f 6f 2f 62 62 32 38 33 64 36 34 61 62 64 33 65 66 64 34 30 65 31 63 31 36 33 66 35 38 37 34 e/o/bb283d64abd3efd40e1c163f5874
46300 61 33 31 33 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e a313/test.</samp></pre></figure>
46320 0a 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 .......<p>You.can.activate.anoth
46340 65 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 er.field.by.assigning.the.entire
46360 20 75 6e 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 .union:</p>.......<figure><figca
46380 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
463a0 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 69 6d 70 6c 65 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f s="file">test_simple_union.zig</
463c0 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
463e0 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
46400 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">@
46420 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
46440 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
46460 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
46480 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 xpect.=.std.testing.expect;..<sp
464a0 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 50 an.class="tok-kw">const</span>.P
464c0 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 77 22 3e 75 6e ayload.=.<span.class="tok-kw">un
464e0 69 6f 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 ion</span>.{.....int:.<span.clas
46500 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 20 20 66 6c 6f s="tok-type">i64</span>,.....flo
46520 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 36 34 3c 2f at:.<span.class="tok-type">f64</
46540 73 70 61 6e 3e 2c 0a 20 20 20 20 62 6f 6f 6c 65 61 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d span>,.....boolean:.<span.class=
46560 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 61 6e "tok-type">bool</span>,.};.<span
46580 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
465a0 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 20 75 n.class="tok-str">&quot;simple.u
465c0 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 63 6c nion&quot;</span>.{.....<span.cl
465e0 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 64 20 ass="tok-kw">var</span>.payload.
46600 3d 20 50 61 79 6c 6f 61 64 7b 20 2e 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 =.Payload{..int.=.<span.class="t
46620 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 3c 73 ok-number">1234</span>.};.....<s
46640 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 65 78 pan.class="tok-kw">try</span>.ex
46660 70 65 63 74 28 70 61 79 6c 6f 61 64 2e 69 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d pect(payload.int.==.<span.class=
46680 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 20 70 "tok-number">1234</span>);.....p
466a0 61 79 6c 6f 61 64 20 3d 20 50 61 79 6c 6f 61 64 7b 20 2e 66 6c 6f 61 74 20 3d 20 3c 73 70 61 6e ayload.=.Payload{..float.=.<span
466c0 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 6e 3e .class="tok-number">12.34</span>
466e0 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 74 72 79 .};.....<span.class="tok-kw">try
46700 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 61 79 6c 6f 61 64 2e 66 6c 6f 61 74 20 3d 3d 20 </span>.expect(payload.float.==.
46720 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</
46740 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c span>);.}</code></pre></figure><
46760 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d figure><figcaption.class="shell-
46780 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d cap">Shell</figcaption><pre><sam
467a0 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 69 6d 70 6c 65 5f 75 6e p>$.<kbd>zig.test.test_simple_un
467c0 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 69 6d 70 6c 65 5f 75 6e ion.zig</kbd>.1/1.test_simple_un
467e0 69 6f 6e 2e 74 65 73 74 2e 73 69 6d 70 6c 65 20 75 6e 69 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 ion.test.simple.union....OK.All.
46800 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 1.tests.passed..</samp></pre></f
46820 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 6f 72 64 65 72 20 igure>.......<p>.......In.order.
46840 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 77 69 74 63 68 3c to.use.<a.href="#switch">switch<
46860 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 62 65 20 61 20 3c /a>.with.a.union,.it.must.be.a.<
46880 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 67 65 64 20 75 6e a.href="#Tagged-union">Tagged.un
468a0 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 3c 70 3e 0a 20 20 ion</a>........</p>.......<p>...
468c0 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 77 68 65 6e 20 74 ....To.initialize.a.union.when.t
468e0 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 74 69 6d 65 22 3e he.tag.is.a.<a.href="#comptime">
46900 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 65 65 20 3c 61 20 comptime</a>-known.name,.see.<a.
46920 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 69 74 3c 2f 61 3e href="#unionInit">@unionInit</a>
46940 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 54 61 67 67 ........</p>........<h3.id="Tagg
46960 65 64 2d 75 6e 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 ed-union"><a.href="nav.xhtml#toc
46980 2d 54 61 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 -Tagged-union">Tagged.union</a>.
469a0 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 67 65 64 2d 75 6e 69 <a.class="hdr".href="#Tagged-uni
469c0 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 55 6e 69 6f 6e 73 on">..</a></h3>........<p>Unions
469e0 20 63 61 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 .can.be.declared.with.an.enum.ta
46a00 67 20 74 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 g.type........This.turns.the.uni
46a20 6f 6e 20 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 on.into.a.<em>tagged</em>.union,
46a40 20 77 68 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 .which.makes.it.eligible.......t
46a60 6f 20 75 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 o.use.with.<a.href="#switch">swi
46a80 74 63 68 3c 2f 61 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 20 20 20 20 20 20 54 61 67 67 65 tch</a>.expressions........Tagge
46aa0 64 20 75 6e 69 6f 6e 73 20 63 6f 65 72 63 65 20 74 6f 20 74 68 65 69 72 20 74 61 67 20 74 79 70 d.unions.coerce.to.their.tag.typ
46ac0 65 3a 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 55 6e 69 6f 6e e:.<a.href="#Type-Coercion-Union
46ae0 73 2d 61 6e 64 2d 45 6e 75 6d 73 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 55 6e 69 6f s-and-Enums">Type.Coercion:.Unio
46b00 6e 73 20 61 6e 64 20 45 6e 75 6d 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 ns.and.Enums</a>........</p>....
46b20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
46b40 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 74 g-cap"><cite.class="file">test_t
46b60 61 67 67 65 64 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 agged_union.zig</cite></figcapti
46b80 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b on><pre><code><span.class="tok-k
46ba0 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
46bc0 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>(<
46be0 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
46c00 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
46c20 77 22 3e 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 w">const</span>.expect.=.std.tes
46c40 74 69 6e 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 ting.expect;..<span.class="tok-k
46c60 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 54 61 67 20 3d w">const</span>.ComplexTypeTag.=
46c80 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 6e .<span.class="tok-kw">enum</span
46ca0 3e 20 7b 0a 20 20 20 20 6f 6b 2c 0a 20 20 20 20 6e 6f 74 5f 6f 6b 2c 0a 7d 3b 0a 3c 73 70 61 6e >.{.....ok,.....not_ok,.};.<span
46cc0 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 43 6f 6d .class="tok-kw">const</span>.Com
46ce0 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 6b 77 22 3e plexType.=.<span.class="tok-kw">
46d00 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 20 7b 0a 20 union</span>(ComplexTypeTag).{..
46d20 20 20 20 6f 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 75 38 ...ok:.<span.class="tok-type">u8
46d40 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 6e 6f 74 5f 6f 6b 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 </span>,.....not_ok:.<span.class
46d60 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 3c 73 70 ="tok-type">void</span>,.};..<sp
46d80 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
46da0 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 63 68 pan.class="tok-str">&quot;switch
46dc0 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 20 7b 0a .on.tagged.union&quot;</span>.{.
46de0 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</
46e00 73 70 61 6e 3e 20 63 20 3d 20 43 6f 6d 70 6c 65 78 54 79 70 65 7b 20 2e 6f 6b 20 3d 20 3c 73 70 span>.c.=.ComplexType{..ok.=.<sp
46e20 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 6e 3e 20 an.class="tok-number">42</span>.
46e40 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 74 72 79 3c };.....<span.class="tok-kw">try<
46e60 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 /span>.expect(<span.class="tok-b
46e80 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 uiltin">@as</span>(ComplexTypeTa
46ea0 67 2c 20 63 29 20 3d 3d 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 2e 6f 6b 29 3b 0a 0a 20 20 g,.c).==.ComplexTypeTag.ok);....
46ec0 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 73 ..<span.class="tok-kw">switch</s
46ee0 70 61 6e 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 pan>.(c).{.........ComplexTypeTa
46f00 67 2e 6f 6b 20 3d 26 67 74 3b 20 7c 76 61 6c 75 65 7c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 g.ok.=&gt;.|value|.<span.class="
46f20 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 61 6c 75 65 20 tok-kw">try</span>.expect(value.
46f40 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 32 3c 2f ==.<span.class="tok-number">42</
46f60 73 70 61 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 6e span>),.........ComplexTypeTag.n
46f80 6f 74 5f 6f 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 ot_ok.=&gt;.<span.class="tok-kw"
46fa0 3e 75 6e 72 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 >unreachable</span>,.....}.}..<s
46fc0 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>.<
46fe0 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 65 74 20 74 span.class="tok-str">&quot;get.t
47000 61 67 20 74 79 70 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 ag.type&quot;</span>.{.....<span
47020 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
47040 74 28 73 74 64 2e 6d 65 74 61 2e 54 61 67 28 43 6f 6d 70 6c 65 78 54 79 70 65 29 20 3d 3d 20 43 t(std.meta.Tag(ComplexType).==.C
47060 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f omplexTypeTag);.}</code></pre></
47080 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 figure><figure><figcaption.class
470a0 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ="shell-cap">Shell</figcaption><
470c0 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 74 pre><samp>$.<kbd>zig.test.test_t
470e0 61 67 67 65 64 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 5f 74 agged_union.zig</kbd>.1/2.test_t
47100 61 67 67 65 64 5f 75 6e 69 6f 6e 2e 74 65 73 74 2e 73 77 69 74 63 68 20 6f 6e 20 74 61 67 67 65 agged_union.test.switch.on.tagge
47120 64 20 75 6e 69 6f 6e 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 74 61 67 67 65 64 5f 75 6e d.union....OK.2/2.test_tagged_un
47140 69 6f 6e 2e 74 65 73 74 2e 67 65 74 20 74 61 67 20 74 79 70 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 ion.test.get.tag.type....OK.All.
47160 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 2.tests.passed..</samp></pre></f
47180 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 49 6e 20 6f 72 64 65 72 20 74 6f 20 6d 6f 64 69 igure>.......<p>In.order.to.modi
471a0 66 79 20 74 68 65 20 70 61 79 6c 6f 61 64 20 6f 66 20 61 20 74 61 67 67 65 64 20 75 6e 69 6f 6e fy.the.payload.of.a.tagged.union
471c0 20 69 6e 20 61 20 73 77 69 74 63 68 20 65 78 70 72 65 73 73 69 6f 6e 2c 0a 20 20 20 20 20 20 70 .in.a.switch.expression,.......p
471e0 6c 61 63 65 20 61 20 3c 63 6f 64 65 3e 2a 3c 2f 63 6f 64 65 3e 20 62 65 66 6f 72 65 20 74 68 65 lace.a.<code>*</code>.before.the
47200 20 76 61 72 69 61 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 .variable.name.to.make.it.a.poin
47220 74 65 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 ter:.......</p>.......<figure><f
47240 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 igcaption.class="zig-cap"><cite.
47260 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 77 69 74 63 68 5f 6d 6f 64 69 66 79 5f class="file">test_switch_modify_
47280 74 61 67 67 65 64 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 tagged_union.zig</cite></figcapt
472a0 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ion><pre><code><span.class="tok-
472c0 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
472e0 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>(
47300 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&
47320 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 2d quot;</span>);.<span.class="tok-
47340 6b 77 22 3e 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 kw">const</span>.expect.=.std.te
47360 73 74 69 6e 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 sting.expect;..<span.class="tok-
47380 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 54 61 67 20 kw">const</span>.ComplexTypeTag.
473a0 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
473c0 6e 3e 20 7b 0a 20 20 20 20 6f 6b 2c 0a 20 20 20 20 6e 6f 74 5f 6f 6b 2c 0a 7d 3b 0a 3c 73 70 61 n>.{.....ok,.....not_ok,.};.<spa
473e0 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 43 6f n.class="tok-kw">const</span>.Co
47400 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 6b 77 22 mplexType.=.<span.class="tok-kw"
47420 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 20 7b 0a >union</span>(ComplexTypeTag).{.
47440 20 20 20 20 6f 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 75 ....ok:.<span.class="tok-type">u
47460 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 6e 6f 74 5f 6f 6b 3a 20 3c 73 70 61 6e 20 63 6c 61 73 8</span>,.....not_ok:.<span.clas
47480 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 3c 73 s="tok-type">void</span>,.};..<s
474a0 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>.<
474c0 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 6f 64 69 66 span.class="tok-str">&quot;modif
474e0 79 20 74 61 67 67 65 64 20 75 6e 69 6f 6e 20 69 6e 20 73 77 69 74 63 68 26 71 75 6f 74 3b 3c 2f y.tagged.union.in.switch&quot;</
47500 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"
47520 3e 76 61 72 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 6f 6b >var</span>.c.=.ComplexType{..ok
47540 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 32 3c 2f .=.<span.class="tok-number">42</
47560 73 70 61 6e 3e 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>.};......<span.class="tok-k
47580 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 20 20 20 43 w">switch</span>.(c).{.........C
475a0 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 2e 6f 6b 20 3d 26 67 74 3b 20 7c 2a 76 61 6c 75 65 7c 20 omplexTypeTag.ok.=&gt;.|*value|.
475c0 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 6e 75 6d 62 value.*.+=.<span.class="tok-numb
475e0 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 78 54 79 70 er">1</span>,.........ComplexTyp
47600 65 54 61 67 2e 6e 6f 74 5f 6f 6b 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 eTag.not_ok.=&gt;.<span.class="t
47620 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 20 20 7d ok-kw">unreachable</span>,.....}
47640 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 74 72 79 3c 2f ......<span.class="tok-kw">try</
47660 73 70 61 6e 3e 20 65 78 70 65 63 74 28 63 2e 6f 6b 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 span>.expect(c.ok.==.<span.class
47680 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 63 6f 64 ="tok-number">43</span>);.}</cod
476a0 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
476c0 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
476e0 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 gcaption><pre><samp>$.<kbd>zig.t
47700 65 73 74 20 74 65 73 74 5f 73 77 69 74 63 68 5f 6d 6f 64 69 66 79 5f 74 61 67 67 65 64 5f 75 6e est.test_switch_modify_tagged_un
47720 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 77 69 74 63 68 5f 6d 6f ion.zig</kbd>.1/1.test_switch_mo
47740 64 69 66 79 5f 74 61 67 67 65 64 5f 75 6e 69 6f 6e 2e 74 65 73 74 2e 6d 6f 64 69 66 79 20 74 61 dify_tagged_union.test.modify.ta
47760 67 67 65 64 20 75 6e 69 6f 6e 20 69 6e 20 73 77 69 74 63 68 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 gged.union.in.switch....OK.All.1
47780 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 .tests.passed..</samp></pre></fi
477a0 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 6e 69 6f 6e 73 20 63 61 6e gure>.......<p>.......Unions.can
477c0 20 62 65 20 6d 61 64 65 20 74 6f 20 69 6e 66 65 72 20 74 68 65 20 65 6e 75 6d 20 74 61 67 20 74 .be.made.to.infer.the.enum.tag.t
477e0 79 70 65 2e 0a 20 20 20 20 20 20 46 75 72 74 68 65 72 2c 20 75 6e 69 6f 6e 73 20 63 61 6e 20 68 ype........Further,.unions.can.h
47800 61 76 65 20 6d 65 74 68 6f 64 73 20 6a 75 73 74 20 6c 69 6b 65 20 73 74 72 75 63 74 73 20 61 6e ave.methods.just.like.structs.an
47820 64 20 65 6e 75 6d 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 d.enums........</p>.......<figur
47840 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
47860 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 75 6e 69 6f 6e 5f 6d 65 74 68 ite.class="file">test_union_meth
47880 6f 64 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c od.zig</cite></figcaption><pre><
478a0 63 6f 64 65 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 code><span.class="tok-kw">const<
478c0 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
478e0 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
47900 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
47920 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<
47940 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 67 2e 65 78 70 65 /span>.expect.=.std.testing.expe
47960 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 63 6f 6e 73 74 3c ct;..<span.class="tok-kw">const<
47980 2f 73 70 61 6e 3e 20 56 61 72 69 61 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>.Variant.=.<span.class="to
479a0 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="
479c0 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 69 6e 74 3a 20 tok-kw">enum</span>).{.....int:.
479e0 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
47a00 3e 2c 0a 20 20 20 20 62 6f 6f 6c 65 61 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >,.....boolean:.<span.class="tok
47a20 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 3c 73 70 61 6e 20 63 -type">bool</span>,......<span.c
47a40 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 76 6f 69 64 20 63 61 6e 20 62 lass="tok-comment">//.void.can.b
47a60 65 20 6f 6d 69 74 74 65 64 20 77 68 65 6e 20 69 6e 66 65 72 72 69 6e 67 20 65 6e 75 6d 20 74 61 e.omitted.when.inferring.enum.ta
47a80 67 20 74 79 70 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 6e 6f 6e 65 2c 0a 0a 20 20 20 20 3c 73 g.type.</span>.....none,......<s
47aa0 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
47ac0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 72 75 74 68 79 3c 2f 73 70 61 6e 3e 28 an.class="tok-fn">truthy</span>(
47ae0 73 65 6c 66 3a 20 56 61 72 69 61 6e 74 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d self:.Variant).<span.class="tok-
47b00 74 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 type">bool</span>.{.........<spa
47b20 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>.<
47b40 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
47b60 3e 20 28 73 65 6c 66 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 61 72 69 61 6e 74 2e 69 >.(self).{.............Variant.i
47b80 6e 74 20 3d 26 67 74 3b 20 7c 78 5f 69 6e 74 7c 20 78 5f 69 6e 74 20 21 3d 20 3c 73 70 61 6e 20 nt.=&gt;.|x_int|.x_int.!=.<span.
47ba0 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 20 20 class="tok-number">0</span>,....
47bc0 20 20 20 20 20 20 20 20 20 56 61 72 69 61 6e 74 2e 62 6f 6f 6c 65 61 6e 20 3d 26 67 74 3b 20 7c .........Variant.boolean.=&gt;.|
47be0 78 5f 62 6f 6f 6c 7c 20 78 5f 62 6f 6f 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 56 61 72 69 x_bool|.x_bool,.............Vari
47c00 61 6e 74 2e 6e 6f 6e 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 ant.none.=&gt;.<span.class="tok-
47c20 6e 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 7d 3b 0a 20 null">false</span>,.........};..
47c40 20 20 20 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 74 65 ...}.};..<span.class="tok-kw">te
47c60 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">
47c80 26 71 75 6f 74 3b 75 6e 69 6f 6e 20 6d 65 74 68 6f 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 &quot;union.method&quot;</span>.
47ca0 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</
47cc0 73 70 61 6e 3e 20 76 31 20 3d 20 56 61 72 69 61 6e 74 7b 20 2e 69 6e 74 20 3d 20 3c 73 70 61 6e span>.v1.=.Variant{..int.=.<span
47ce0 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 7d 3b 0a .class="tok-number">1</span>.};.
47d00 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
47d20 61 6e 3e 20 76 32 20 3d 20 56 61 72 69 61 6e 74 7b 20 2e 62 6f 6f 6c 65 61 6e 20 3d 20 3c 73 70 an>.v2.=.Variant{..boolean.=.<sp
47d40 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>
47d60 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 74 72 .};......<span.class="tok-kw">tr
47d80 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 31 2e 74 72 75 74 68 79 28 29 29 3b 0a 20 20 y</span>.expect(v1.truthy());...
47da0 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
47dc0 3e 20 65 78 70 65 63 74 28 21 76 32 2e 74 72 75 74 68 79 28 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e >.expect(!v2.truthy());.}</code>
47de0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 </pre></figure><figure><figcapti
47e00 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 on.class="shell-cap">Shell</figc
47e20 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 aption><pre><samp>$.<kbd>zig.tes
47e40 74 20 74 65 73 74 5f 75 6e 69 6f 6e 5f 6d 65 74 68 6f 64 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f t.test_union_method.zig</kbd>.1/
47e60 31 20 74 65 73 74 5f 75 6e 69 6f 6e 5f 6d 65 74 68 6f 64 2e 74 65 73 74 2e 75 6e 69 6f 6e 20 6d 1.test_union_method.test.union.m
47e80 65 74 68 6f 64 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a ethod....OK.All.1.tests.passed..
47ea0 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e </samp></pre></figure>.......<p>
47ec0 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 74 61 67 4e 61 6d 65 22 3e 40 74 61 67 4e 61 .......<a.href="#tagName">@tagNa
47ee0 6d 65 3c 2f 61 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 74 75 72 6e 20 61 20 3c me</a>.can.be.used.to.return.a.<
47f00 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 61 3e 0a a.href="#comptime">comptime</a>.
47f20 20 20 20 20 20 20 3c 63 6f 64 65 3e 5b 3a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ......<code>[:<span.class="tok-n
47f40 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b umber">0</span>]<span.class="tok
47f60 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
47f80 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 20 76 61 6c 75 65 20 ok-type">u8</span></code>.value.
47fa0 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 66 69 65 6c 64 20 6e 61 6d 65 3a 0a 20 20 20 representing.the.field.name:....
47fc0 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f ...</p>.......<figure><figcaptio
47fe0 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 n.class="zig-cap"><cite.class="f
48000 69 6c 65 22 3e 74 65 73 74 5f 74 61 67 4e 61 6d 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 ile">test_tagName.zig</cite></fi
48020 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
48040 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
48060 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
48080 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
480a0 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=
480c0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 "tok-kw">const</span>.expect.=.s
480e0 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d td.testing.expect;..<span.class=
48100 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 3c "tok-kw">const</span>.Small2.=.<
48120 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 3e span.class="tok-kw">union</span>
48140 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 6e (<span.class="tok-kw">enum</span
48160 3e 29 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 79 70 >).{.....a:.<span.class="tok-typ
48180 65 22 3e 69 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 6c 61 73 e">i32</span>,.....b:.<span.clas
481a0 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 63 3a s="tok-type">bool</span>,.....c:
481c0 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
481e0 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<
48200 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
48220 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 3c ot;@tagName&quot;</span>.{.....<
48240 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 65 span.class="tok-kw">try</span>.e
48260 78 70 65 63 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 74 xpect(std.mem.eql(<span.class="t
48280 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=
482a0 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 6d "tok-builtin">@tagName</span>(Sm
482c0 61 6c 6c 32 2e 61 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 all2.a),.<span.class="tok-str">&
482e0 71 75 6f 74 3b 61 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 quot;a&quot;</span>));.}</code><
48300 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f /pre></figure><figure><figcaptio
48320 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 n.class="shell-cap">Shell</figca
48340 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 ption><pre><samp>$.<kbd>zig.test
48360 20 74 65 73 74 5f 74 61 67 4e 61 6d 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 .test_tagName.zig</kbd>.1/1.test
48380 5f 74 61 67 4e 61 6d 65 2e 74 65 73 74 2e 40 74 61 67 4e 61 6d 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c _tagName.test.@tagName....OK.All
483a0 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .1.tests.passed..</samp></pre></
483c0 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 65 78 figure>...............<h3.id="ex
483e0 74 65 72 6e 2d 75 6e 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 tern-union"><a.href="nav.xhtml#t
48400 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 69 6f 6e 3c 2f 61 oc-extern-union">extern.union</a
48420 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 74 65 72 6e 2d 75 >.<a.class="hdr".href="#extern-u
48440 6e 69 6f 6e 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 nion">..</a></h3>........<p>....
48460 20 20 20 41 6e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ...An.<code><span.class="tok-kw"
48480 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 6f 6b 2d >extern</span>.<span.class="tok-
484a0 6b 77 22 3e 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 6d 65 6d 6f kw">union</span></code>.has.memo
484c0 72 79 20 6c 61 79 6f 75 74 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 63 6f 6d 70 61 ry.layout.guaranteed.to.be.compa
484e0 74 69 62 6c 65 20 77 69 74 68 0a 20 20 20 20 20 20 74 68 65 20 74 61 72 67 65 74 20 43 20 41 42 tible.with.......the.target.C.AB
48500 49 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 I........</p>.......<p>See.also:
48520 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 73 74 </p><ul>.<li><a.href="#extern-st
48540 72 75 63 74 22 3e 65 78 74 65 72 6e 20 73 74 72 75 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 ruct">extern.struct</a></li>.</u
48560 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 70 61 63 6b 65 64 l>................<h3.id="packed
48580 2d 75 6e 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 70 -union"><a.href="nav.xhtml#toc-p
485a0 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 3c 61 acked-union">packed.union</a>.<a
485c0 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 75 6e 69 6f 6e .class="hdr".href="#packed-union
485e0 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 20 3c 63 6f 64 65 3e ">..</a></h3>........<p>A.<code>
48600 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
48620 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 69 6f 6e 3c 2f 73 n>.<span.class="tok-kw">union</s
48640 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 77 65 6c 6c 2d 64 65 66 69 6e 65 64 20 69 6e 2d pan></code>.has.well-defined.in-
48660 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 20 61 6e 64 20 69 73 20 65 6c 69 67 69 62 6c 65 0a 20 20 memory.layout.and.is.eligible...
48680 20 20 20 20 20 20 20 20 74 6f 20 62 65 20 69 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 70 61 63 ........to.be.in.a.<a.href="#pac
486a0 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 2e 3c 2f ked-struct">packed.struct</a>.</
486c0 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 41 6e 6f 6e 79 6d 6f p>...............<h3.id="Anonymo
486e0 75 73 2d 55 6e 69 6f 6e 2d 4c 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e us-Union-Literals"><a.href="nav.
48700 78 68 74 6d 6c 23 74 6f 63 2d 41 6e 6f 6e 79 6d 6f 75 73 2d 55 6e 69 6f 6e 2d 4c 69 74 65 72 61 xhtml#toc-Anonymous-Union-Litera
48720 6c 73 22 3e 41 6e 6f 6e 79 6d 6f 75 73 20 55 6e 69 6f 6e 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e ls">Anonymous.Union.Literals</a>
48740 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 6e 6f 6e 79 6d 6f 75 73 .<a.class="hdr".href="#Anonymous
48760 2d 55 6e 69 6f 6e 2d 4c 69 74 65 72 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 -Union-Literals">..</a></h3>....
48780 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d 22 23 41 6e 6f 6e 79 6d 6f 75 73 2d 53 74 72 75 63 ....<p><a.href="#Anonymous-Struc
487a0 74 2d 4c 69 74 65 72 61 6c 73 22 3e 41 6e 6f 6e 79 6d 6f 75 73 20 53 74 72 75 63 74 20 4c 69 74 t-Literals">Anonymous.Struct.Lit
487c0 65 72 61 6c 73 3c 2f 61 3e 20 73 79 6e 74 61 78 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 erals</a>.syntax.can.be.used.to.
487e0 69 6e 69 74 69 61 6c 69 7a 65 20 75 6e 69 6f 6e 73 20 77 69 74 68 6f 75 74 20 73 70 65 63 69 66 initialize.unions.without.specif
48800 79 69 6e 67 0a 20 20 20 20 20 20 74 68 65 20 74 79 70 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c ying.......the.type:</p>.......<
48820 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 figure><figcaption.class="zig-ca
48840 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 61 6e 6f 6e 79 p"><cite.class="file">test_anony
48860 6d 6f 75 73 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f mous_union.zig</cite></figcaptio
48880 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
488a0 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
488c0 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
488e0 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
48900 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 77 ot;</span>);.<span.class="tok-kw
48920 22 3e 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 ">const</span>.expect.=.std.test
48940 69 6e 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 ing.expect;..<span.class="tok-kw
48960 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 6e 20 63 6c ">const</span>.Number.=.<span.cl
48980 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 20 7b 0a 20 20 20 20 ass="tok-kw">union</span>.{.....
489a0 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 69 33 32 3c int:.<span.class="tok-type">i32<
489c0 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 66 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 /span>,.....float:.<span.class="
489e0 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 tok-type">f64</span>,.};..<span.
48a00 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
48a20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 6e 6f 6e 79 6d 6f 75 73 .class="tok-str">&quot;anonymous
48a40 20 75 6e 69 6f 6e 20 6c 69 74 65 72 61 6c 20 73 79 6e 74 61 78 26 71 75 6f 74 3b 3c 2f 73 70 61 .union.literal.syntax&quot;</spa
48a60 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
48a80 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 3a 20 4e 75 6d 62 65 72 20 3d 20 2e 7b 20 2e 69 6e 74 20 3d nst</span>.i:.Number.=..{..int.=
48aa0 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 32 3c 2f 73 70 .<span.class="tok-number">42</sp
48ac0 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 22 3e an>.};.....<span.class="tok-kw">
48ae0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 20 3d 20 6d 61 6b 65 4e 75 6d 62 65 72 28 29 3b 0a 20 const</span>.f.=.makeNumber();..
48b00 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 61 ...<span.class="tok-kw">try</spa
48b20 6e 3e 20 65 78 70 65 63 74 28 69 2e 69 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n>.expect(i.int.==.<span.class="
48b40 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 34 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 tok-number">42</span>);.....<spa
48b60 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 65 78 70 65 n.class="tok-kw">try</span>.expe
48b80 63 74 28 66 2e 66 6c 6f 61 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ct(f.float.==.<span.class="tok-n
48ba0 75 6d 62 65 72 22 3e 31 32 2e 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 umber">12.34</span>);.}..<span.c
48bc0 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
48be0 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 6d 61 6b 65 4e 75 6d 62 65 72 3c 2f 73 70 61 6e 3e 28 29 ass="tok-fn">makeNumber</span>()
48c00 20 4e 75 6d 62 65 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 .Number.{.....<span.class="tok-k
48c20 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 2e 7b 20 2e 66 6c 6f 61 74 20 3d 20 3c 73 70 w">return</span>..{..float.=.<sp
48c40 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
48c60 6e 3e 20 7d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 n>.};.}</code></pre></figure><fi
48c80 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
48ca0 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
48cc0 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 61 6e 6f 6e 79 6d 6f 75 73 5f 75 $.<kbd>zig.test.test_anonymous_u
48ce0 6e 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 61 6e 6f 6e 79 6d 6f 75 nion.zig</kbd>.1/1.test_anonymou
48d00 73 5f 75 6e 69 6f 6e 2e 74 65 73 74 2e 61 6e 6f 6e 79 6d 6f 75 73 20 75 6e 69 6f 6e 20 6c 69 74 s_union.test.anonymous.union.lit
48d20 65 72 61 6c 20 73 79 6e 74 61 78 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 eral.syntax....OK.All.1.tests.pa
48d40 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 ssed..</samp></pre></figure>....
48d60 20 20 20 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6f 70 61 71 75 ...................<h2.id="opaqu
48d80 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6f 70 61 71 75 65 e"><a.href="nav.xhtml#toc-opaque
48da0 22 3e 6f 70 61 71 75 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 ">opaque</a>.<a.class="hdr".href
48dc0 3d 22 23 6f 70 61 71 75 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 ="#opaque">..</a></h2>........<p
48de0 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b >.......<code><span.class="tok-k
48e00 77 22 3e 6f 70 61 71 75 65 3c 2f 73 70 61 6e 3e 20 7b 7d 3c 2f 63 6f 64 65 3e 20 64 65 63 6c 61 w">opaque</span>.{}</code>.decla
48e20 72 65 73 20 61 20 6e 65 77 20 74 79 70 65 20 77 69 74 68 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20 28 res.a.new.type.with.an.unknown.(
48e40 62 75 74 20 6e 6f 6e 2d 7a 65 72 6f 29 20 73 69 7a 65 20 61 6e 64 20 61 6c 69 67 6e 6d 65 6e 74 but.non-zero).size.and.alignment
48e60 2e 0a 20 20 20 20 20 20 49 74 20 63 61 6e 20 63 6f 6e 74 61 69 6e 20 64 65 63 6c 61 72 61 74 69 ........It.can.contain.declarati
48e80 6f 6e 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 3c 61 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 ons.the.same.as.<a.href="#struct
48ea0 22 3e 73 74 72 75 63 74 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e ">structs</a>,.<a.href="#union">
48ec0 75 6e 69 6f 6e 73 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 unions</a>,.......and.<a.href="#
48ee0 65 6e 75 6d 22 3e 65 6e 75 6d 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 enum">enums</a>........</p>.....
48f00 20 20 3c 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 ..<p>.......This.is.typically.us
48f20 65 64 20 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 ed.for.type.safety.when.interact
48f40 69 6e 67 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 ing.with.C.code.that.does.not.ex
48f60 70 6f 73 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 pose.struct.details........Examp
48f80 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 le:.......</p>.......<figure><fi
48fa0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
48fc0 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6f 70 61 71 75 65 2e 7a 69 67 3c 2f 63 69 74 lass="file">test_opaque.zig</cit
48fe0 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
49000 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 65 72 70 class="tok-kw">const</span>.Derp
49020 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 70 61 71 75 65 3c 2f .=.<span.class="tok-kw">opaque</
49040 73 70 61 6e 3e 20 7b 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
49060 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 57 61 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 onst</span>.Wat.=.<span.class="t
49080 6f 6b 2d 6b 77 22 3e 6f 70 61 71 75 65 3c 2f 73 70 61 6e 3e 20 7b 7d 3b 0a 0a 3c 73 70 61 6e 20 ok-kw">opaque</span>.{};..<span.
490a0 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 20 3c 73 70 class="tok-kw">extern</span>.<sp
490c0 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
490e0 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 64 3a 20 2a n.class="tok-fn">bar</span>(d:.*
49100 44 65 72 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 Derp).<span.class="tok-type">voi
49120 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 66 d</span>;.<span.class="tok-kw">f
49140 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
49160 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
49180 6f 6b 2d 6b 77 22 3e 63 61 6c 6c 63 6f 6e 76 3c 2f 73 70 61 6e 3e 28 2e 43 29 20 3c 73 70 61 6e ok-kw">callconv</span>(.C).<span
491a0 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>.{.
491c0 20 20 20 20 62 61 72 28 77 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....bar(w);.}..<span.class="tok-
491e0 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
49200 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 61 6c 6c 20 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e -str">&quot;call.foo&quot;</span
49220 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 6c >.{.....foo(<span.class="tok-nul
49240 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f l">undefined</span>);.}</code></
49260 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e pre></figure><figure><figcaption
49280 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 .class="shell-cap">Shell</figcap
492a0 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 tion><pre><samp>$.<kbd>zig.test.
492c0 74 65 73 74 5f 6f 70 61 71 75 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 test_opaque.zig</kbd>.<span.clas
492e0 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 6f 70 61 71 75 s="sgr-1m">docgen_tmp/test_opaqu
49300 65 2e 7a 69 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 73 e.zig:6:9:.</span><span.class="s
49320 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 gr-31m">error:.</span><span.clas
49340 73 3d 22 73 67 72 2d 31 6d 22 3e 65 78 70 65 63 74 65 64 20 74 79 70 65 20 27 2a 74 65 73 74 5f s="sgr-1m">expected.type.'*test_
49360 6f 70 61 71 75 65 2e 44 65 72 70 27 2c 20 66 6f 75 6e 64 20 27 2a 74 65 73 74 5f 6f 70 61 71 75 opaque.Derp',.found.'*test_opaqu
49380 65 2e 57 61 74 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 62 61 72 28 77 29 3b 0a 20 20 20 20 20 20 e.Wat'.</span>....bar(w);.......
493a0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 0a 3c 2f 73 70 61 6e ..<span.class="sgr-32m">^.</span
493c0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 ><span.class="sgr-1m">docgen_tmp
493e0 2f 74 65 73 74 5f 6f 70 61 71 75 65 2e 7a 69 67 3a 36 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 /test_opaque.zig:6:9:.</span><sp
49400 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e an.class="sgr-36m">note:.</span>
49420 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 70 6f 69 6e 74 65 72 20 74 79 70 <span.class="sgr-1m">pointer.typ
49440 65 20 63 68 69 6c 64 20 27 74 65 73 74 5f 6f 70 61 71 75 65 2e 57 61 74 27 20 63 61 6e 6e 6f 74 e.child.'test_opaque.Wat'.cannot
49460 20 63 61 73 74 20 69 6e 74 6f 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 63 68 69 6c 64 20 27 74 .cast.into.pointer.type.child.'t
49480 65 73 74 5f 6f 70 61 71 75 65 2e 44 65 72 70 27 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c est_opaque.Derp'.</span><span.cl
494a0 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 6f 70 61 ass="sgr-1m">docgen_tmp/test_opa
494c0 71 75 65 2e 7a 69 67 3a 32 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 que.zig:2:13:.</span><span.class
494e0 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c ="sgr-36m">note:.</span><span.cl
49500 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 6f 70 61 71 75 65 20 64 65 63 6c 61 72 65 64 20 68 65 72 ass="sgr-1m">opaque.declared.her
49520 65 0a 3c 2f 73 70 61 6e 3e 63 6f 6e 73 74 20 57 61 74 20 3d 20 6f 70 61 71 75 65 20 7b 7d 3b 0a e.</span>const.Wat.=.opaque.{};.
49540 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 73 67 72 2d 33 32 6d ............<span.class="sgr-32m
49560 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ">^~~~~~~~~.</span><span.class="
49580 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 6f 70 61 71 75 65 2e 7a sgr-1m">docgen_tmp/test_opaque.z
495a0 69 67 3a 31 3a 31 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 ig:1:14:.</span><span.class="sgr
495c0 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -36m">note:.</span><span.class="
495e0 73 67 72 2d 31 6d 22 3e 6f 70 61 71 75 65 20 64 65 63 6c 61 72 65 64 20 68 65 72 65 0a 3c 2f 73 sgr-1m">opaque.declared.here.</s
49600 70 61 6e 3e 63 6f 6e 73 74 20 44 65 72 70 20 3d 20 6f 70 61 71 75 65 20 7b 7d 3b 0a 20 20 20 20 pan>const.Derp.=.opaque.{};.....
49620 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e .........<span.class="sgr-32m">^
49640 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 ~~~~~~~~.</span><span.class="sgr
49660 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 6f 70 61 71 75 65 2e 7a 69 67 3a -1m">docgen_tmp/test_opaque.zig:
49680 34 3a 31 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 4:18:.</span><span.class="sgr-36
496a0 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 m">note:.</span><span.class="sgr
496c0 2d 31 6d 22 3e 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 20 64 65 63 6c 61 72 65 64 20 68 65 72 -1m">parameter.type.declared.her
496e0 65 0a 3c 2f 73 70 61 6e 3e 65 78 74 65 72 6e 20 66 6e 20 62 61 72 28 64 3a 20 2a 44 65 72 70 29 e.</span>extern.fn.bar(d:.*Derp)
49700 20 76 6f 69 64 3b 0a 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 .void;..................<span.cl
49720 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e ass="sgr-32m">^~~~~.</span><span
49740 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 72 65 66 65 72 65 6e 63 65 64 20 62 79 3a 0a 20 .class="sgr-2m">referenced.by:..
49760 20 20 20 74 65 73 74 2e 63 61 6c 6c 20 66 6f 6f 3a 20 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 ...test.call.foo:.docgen_tmp/tes
49780 74 5f 6f 70 61 71 75 65 2e 7a 69 67 3a 31 30 3a 35 0a 20 20 20 20 72 65 6d 61 69 6e 69 6e 67 20 t_opaque.zig:10:5.....remaining.
497a0 72 65 66 65 72 65 6e 63 65 20 74 72 61 63 65 73 20 68 69 64 64 65 6e 3b 20 75 73 65 20 27 2d 66 reference.traces.hidden;.use.'-f
497c0 72 65 66 65 72 65 6e 63 65 2d 74 72 61 63 65 27 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 65 66 65 reference-trace'.to.see.all.refe
497e0 72 65 6e 63 65 20 74 72 61 63 65 73 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 rence.traces.</span>.</samp></pr
49800 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 e></figure>...............<h2.id
49820 3d 22 42 6c 6f 63 6b 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 ="Blocks"><a.href="nav.xhtml#toc
49840 2d 42 6c 6f 63 6b 73 22 3e 42 6c 6f 63 6b 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 -Blocks">Blocks</a>.<a.class="hd
49860 72 22 20 68 72 65 66 3d 22 23 42 6c 6f 63 6b 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 r".href="#Blocks">..</a></h2>...
49880 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 20 74 .....<p>.......Blocks.are.used.t
498a0 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 64 65 o.limit.the.scope.of.variable.de
498c0 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 66 69 clarations:.......</p>.......<fi
498e0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 gure><figcaption.class="zig-cap"
49900 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 62 6c 6f 63 6b 73 2e ><cite.class="file">test_blocks.
49920 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 zig</cite></figcaption><pre><cod
49940 65 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 70 61 e><span.class="tok-kw">test</spa
49960 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 61 n>.<span.class="tok-str">&quot;a
49980 63 63 65 73 73 20 76 61 72 69 61 62 6c 65 20 61 66 74 65 72 20 62 6c 6f 63 6b 20 73 63 6f 70 65 ccess.variable.after.block.scope
499a0 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 20 20 20 20 20 3c 73 &quot;</span>.{.....{.........<s
499c0 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 3a pan.class="tok-kw">var</span>.x:
499e0 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
49a00 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 3c n>.=.<span.class="tok-number">1<
49a20 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 78 3b 0a 20 20 20 20 /span>;........._.=.&amp;x;.....
49a40 7d 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 62 }.....x.+=.<span.class="tok-numb
49a60 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 2f 66 69 er">1</span>;.}</code></pre></fi
49a80 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
49aa0 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
49ac0 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 62 6c 6f e><samp>$.<kbd>zig.test.test_blo
49ae0 63 6b 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 cks.zig</kbd>.<span.class="sgr-1
49b00 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 62 6c 6f 63 6b 73 2e 7a 69 67 3a 36 3a m">docgen_tmp/test_blocks.zig:6:
49b20 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 5:.</span><span.class="sgr-31m">
49b40 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 error:.</span><span.class="sgr-1
49b60 6d 22 3e 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 m">use.of.undeclared.identifier.
49b80 27 78 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 78 20 2b 3d 20 31 3b 0a 20 20 20 20 3c 73 70 61 6e 'x'.</span>....x.+=.1;.....<span
49ba0 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d .class="sgr-32m">^.</span>.</sam
49bc0 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 42 6c 6f 63 6b p></pre></figure>.......<p>Block
49be0 73 20 61 72 65 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 57 68 65 6e 20 6c 61 62 65 6c 65 64 2c s.are.expressions..When.labeled,
49c00 20 3c 63 6f 64 65 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 .<code><span.class="tok-kw">brea
49c20 6b 3c 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 k</span></code>.can.be.used.....
49c40 20 20 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 ..to.return.a.value.from.the.blo
49c60 63 6b 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 ck:.......</p>.......<figure><fi
49c80 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
49ca0 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6c 61 62 65 6c 65 64 5f 62 72 65 61 6b 2e 7a lass="file">test_labeled_break.z
49cc0 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 ig</cite></figcaption><pre><code
49ce0 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
49d00 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
49d20 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
49d40 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>);
49d60 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
49d80 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a n>.expect.=.std.testing.expect;.
49da0 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
49dc0 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 6c 61 >.<span.class="tok-str">&quot;la
49de0 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 6b 20 65 beled.break.from.labeled.block.e
49e00 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 3c 73 70 xpression&quot;</span>.{.....<sp
49e20 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 20 an.class="tok-kw">var</span>.y:.
49e40 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
49e60 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
49e80 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 6b </span>;......<span.class="tok-k
49ea0 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 20 20 20 w">const</span>.x.=.blk:.{......
49ec0 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 65 72 22 ...y.+=.<span.class="tok-number"
49ee0 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="
49f00 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 20 20 20 tok-kw">break</span>.:blk.y;....
49f20 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 74 72 79 .};.....<span.class="tok-kw">try
49f40 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 78 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d </span>.expect(x.==.<span.class=
49f60 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 20 3c 73 "tok-number">124</span>);.....<s
49f80 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 65 78 pan.class="tok-kw">try</span>.ex
49fa0 70 65 63 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 pect(y.==.<span.class="tok-numbe
49fc0 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 3e 3c 2f r">124</span>);.}</code></pre></
49fe0 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 figure><figure><figcaption.class
4a000 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ="shell-cap">Shell</figcaption><
4a020 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 6c pre><samp>$.<kbd>zig.test.test_l
4a040 61 62 65 6c 65 64 5f 62 72 65 61 6b 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f abeled_break.zig</kbd>.1/1.test_
4a060 6c 61 62 65 6c 65 64 5f 62 72 65 61 6b 2e 74 65 73 74 2e 6c 61 62 65 6c 65 64 20 62 72 65 61 6b labeled_break.test.labeled.break
4a080 20 66 72 6f 6d 20 6c 61 62 65 6c 65 64 20 62 6c 6f 63 6b 20 65 78 70 72 65 73 73 69 6f 6e 2e 2e .from.labeled.block.expression..
4a0a0 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e ..OK.All.1.tests.passed..</samp>
4a0c0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 48 65 72 65 2c 20 3c </pre></figure>.......<p>Here,.<
4a0e0 63 6f 64 65 3e 62 6c 6b 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 61 6e 79 20 6e 61 6d 65 2e code>blk</code>.can.be.any.name.
4a100 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>.
4a120 3c 6c 69 3e 3c 61 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 <li><a.href="#Labeled-while">Lab
4a140 65 6c 65 64 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 eled.while</a></li>.<li><a.href=
4a160 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 3c 2f 61 3e 3c 2f "#Labeled-for">Labeled.for</a></
4a180 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 53 68 61 64 6f 77 li>.</ul>.........<h3.id="Shadow
4a1a0 69 6e 67 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 68 61 64 ing"><a.href="nav.xhtml#toc-Shad
4a1c0 6f 77 69 6e 67 22 3e 53 68 61 64 6f 77 69 6e 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 owing">Shadowing</a>.<a.class="h
4a1e0 64 72 22 20 68 72 65 66 3d 22 23 53 68 61 64 6f 77 69 6e 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 dr".href="#Shadowing">..</a></h3
4a200 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d 22 23 49 64 65 6e 74 69 66 69 65 72 >........<p><a.href="#Identifier
4a220 73 22 3e 49 64 65 6e 74 69 66 69 65 72 73 3c 2f 61 3e 20 61 72 65 20 6e 65 76 65 72 20 61 6c 6c s">Identifiers</a>.are.never.all
4a240 6f 77 65 64 20 74 6f 20 22 68 69 64 65 22 20 6f 74 68 65 72 20 69 64 65 6e 74 69 66 69 65 72 73 owed.to."hide".other.identifiers
4a260 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 3a 3c 2f 70 3e 0a 20 20 20 .by.using.the.same.name:</p>....
4a280 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
4a2a0 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 g-cap"><cite.class="file">test_s
4a2c0 68 61 64 6f 77 69 6e 67 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e hadowing.zig</cite></figcaption>
4a2e0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
4a300 63 6f 6e 73 74 3c 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 const</span>.pi.=.<span.class="t
4a320 6f 6b 2d 6e 75 6d 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 ok-number">3.14</span>;..<span.c
4a340 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.
4a360 63 6c 61 73 73 3d 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 class="tok-str">&quot;inside.tes
4a380 74 20 62 6c 6f 63 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 t.block&quot;</span>.{.....<span
4a3a0 20 63 6c 61 73 73 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 .class="tok-comment">//.Let's.ev
4a3c0 65 6e 20 67 6f 20 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 en.go.inside.another.block</span
4a3e0 3e 0a 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 >.....{.........<span.class="tok
4a400 2d 6b 77 22 3e 76 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 -kw">var</span>.pi:.<span.class=
4a420 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
4a440 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>;...
4a460 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 ..}.}</code></pre></figure><figu
4a480 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 re><figcaption.class="shell-cap"
4a4a0 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 >Shell</figcaption><pre><samp>$.
4a4c0 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 68 61 64 6f 77 69 6e 67 2e 7a 69 67 <kbd>zig.test.test_shadowing.zig
4a4e0 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 </kbd>.<span.class="sgr-1m">docg
4a500 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 73 68 61 64 6f 77 69 6e 67 2e 7a 69 67 3a 36 3a 31 33 3a 20 en_tmp/test_shadowing.zig:6:13:.
4a520 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 </span><span.class="sgr-31m">err
4a540 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e or:.</span><span.class="sgr-1m">
4a560 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 73 68 61 64 6f 77 73 20 64 65 63 6c 61 72 61 74 69 local.variable.shadows.declarati
4a580 6f 6e 20 6f 66 20 27 70 69 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 76 61 72 20 70 69 on.of.'pi'.</span>........var.pi
4a5a0 3a 20 69 33 32 20 3d 20 31 32 33 34 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 :.i32.=.1234;.............<span.
4a5c0 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 class="sgr-32m">^~.</span><span.
4a5e0 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 73 class="sgr-1m">docgen_tmp/test_s
4a600 68 61 64 6f 77 69 6e 67 2e 7a 69 67 3a 31 3a 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 hadowing.zig:1:1:.</span><span.c
4a620 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 lass="sgr-36m">note:.</span><spa
4a640 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 65 63 6c 61 72 65 64 20 68 65 72 65 0a 3c n.class="sgr-1m">declared.here.<
4a660 2f 73 70 61 6e 3e 63 6f 6e 73 74 20 70 69 20 3d 20 33 2e 31 34 3b 0a 3c 73 70 61 6e 20 63 6c 61 /span>const.pi.=.3.14;.<span.cla
4a680 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 ss="sgr-32m">^~~~~~~~~~~~~~~.</s
4a6a0 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 pan>.</samp></pre></figure>.....
4a6c0 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 65 63 61 75 73 65 20 6f 66 20 74 68 69 73 2c 20 77 68 65 ..<p>.......Because.of.this,.whe
4a6e0 6e 20 79 6f 75 20 72 65 61 64 20 5a 69 67 20 63 6f 64 65 20 79 6f 75 20 63 61 6e 20 61 6c 77 61 n.you.read.Zig.code.you.can.alwa
4a700 79 73 20 72 65 6c 79 20 6f 6e 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 20 74 6f 20 63 6f 6e 73 ys.rely.on.an.identifier.to.cons
4a720 69 73 74 65 6e 74 6c 79 20 6d 65 61 6e 0a 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 74 68 69 istently.mean.......the.same.thi
4a740 6e 67 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 69 6e 65 ng.within.the.scope.it.is.define
4a760 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 2c 20 75 d..Note.that.you.can,.however,.u
4a780 73 65 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 69 66 0a 20 20 20 20 20 20 74 68 65 20 73 63 se.the.same.name.if.......the.sc
4a7a0 6f 70 65 73 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 opes.are.separate:.......</p>...
4a7c0 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
4a7e0 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f ig-cap"><cite.class="file">test_
4a800 73 63 6f 70 65 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 scopes.zig</cite></figcaption><p
4a820 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 65 re><code><span.class="tok-kw">te
4a840 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">
4a860 26 71 75 6f 74 3b 73 65 70 61 72 61 74 65 20 73 63 6f 70 65 73 26 71 75 6f 74 3b 3c 2f 73 70 61 &quot;separate.scopes&quot;</spa
4a880 6e 3e 20 7b 0a 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 n>.{.....{.........<span.class="
4a8a0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 69 20 3d 20 3c 73 70 61 6e 20 tok-kw">const</span>.pi.=.<span.
4a8c0 63 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 3b 0a class="tok-number">3.14</span>;.
4a8e0 20 20 20 20 20 20 20 20 5f 20 3d 20 70 69 3b 0a 20 20 20 20 7d 0a 20 20 20 20 7b 0a 20 20 20 20 ........_.=.pi;.....}.....{.....
4a900 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
4a920 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 79 70 65 22 3e 62 an>.pi:.<span.class="tok-type">b
4a940 6f 6f 6c 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 ool</span>.=.<span.class="tok-nu
4a960 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 26 61 6d ll">true</span>;........._.=.&am
4a980 70 3b 70 69 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 p;pi;.....}.}</code></pre></figu
4a9a0 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 re><figure><figcaption.class="sh
4a9c0 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ell-cap">Shell</figcaption><pre>
4a9e0 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 63 6f 70 65 <samp>$.<kbd>zig.test.test_scope
4aa00 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 63 6f 70 65 73 2e 74 65 73 74 s.zig</kbd>.1/1.test_scopes.test
4aa20 2e 73 65 70 61 72 61 74 65 20 73 63 6f 70 65 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 .separate.scopes....OK.All.1.tes
4aa40 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ts.passed..</samp></pre></figure
4aa60 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 6d 70 74 79 2d 42 6c >...............<h3.id="Empty-Bl
4aa80 6f 63 6b 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 45 6d 70 ocks"><a.href="nav.xhtml#toc-Emp
4aaa0 74 79 2d 42 6c 6f 63 6b 73 22 3e 45 6d 70 74 79 20 42 6c 6f 63 6b 73 3c 2f 61 3e 20 3c 61 20 63 ty-Blocks">Empty.Blocks</a>.<a.c
4aac0 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 6d 70 74 79 2d 42 6c 6f 63 6b 73 22 3e lass="hdr".href="#Empty-Blocks">
4aae0 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e 20 65 6d 70 74 79 20 62 ..</a></h3>........<p>An.empty.b
4ab00 6c 6f 63 6b 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 63 6f 64 65 3e 3c 73 70 61 lock.is.equivalent.to.<code><spa
4ab20 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 7b 7d n.class="tok-type">void</span>{}
4ab40 3c 2f 63 6f 64 65 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 </code>:</p>.......<figure><figc
4ab60 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 aption.class="zig-cap"><cite.cla
4ab80 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 65 6d 70 74 79 5f 62 6c 6f 63 6b 2e 7a 69 67 3c 2f ss="file">test_empty_block.zig</
4aba0 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
4abc0 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
4abe0 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">@
4ac00 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
4ac20 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
4ac40 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
4ac60 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 xpect.=.std.testing.expect;..<sp
4ac80 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 7b 0a an.class="tok-kw">test</span>.{.
4aca0 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</
4acc0 73 70 61 6e 3e 20 61 20 3d 20 7b 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>.a.=.{};.....<span.class="t
4ace0 6f 6b 2d 6b 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 ok-kw">const</span>.b.=.<span.cl
4ad00 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 7b 7d 3b 0a 20 20 ass="tok-type">void</span>{};...
4ad20 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
4ad40 3e 20 65 78 70 65 63 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 >.expect(<span.class="tok-builti
4ad60 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 61 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c n">@TypeOf</span>(a).==.<span.cl
4ad80 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 20 20 20 ass="tok-type">void</span>);....
4ada0 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>
4adc0 20 65 78 70 65 63 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 .expect(<span.class="tok-builtin
4ade0 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 62 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 ">@TypeOf</span>(b).==.<span.cla
4ae00 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 20 20 20 20 ss="tok-type">void</span>);.....
4ae20 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>.
4ae40 65 78 70 65 63 74 28 61 20 3d 3d 20 62 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f expect(a.==.b);.}</code></pre></
4ae60 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 figure><figure><figcaption.class
4ae80 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ="shell-cap">Shell</figcaption><
4aea0 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 65 pre><samp>$.<kbd>zig.test.test_e
4aec0 6d 70 74 79 5f 62 6c 6f 63 6b 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 65 6d mpty_block.zig</kbd>.1/1.test_em
4aee0 70 74 79 5f 62 6c 6f 63 6b 2e 74 65 73 74 5f 30 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 pty_block.test_0....OK.All.1.tes
4af00 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ts.passed..</samp></pre></figure
4af20 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 32 20 69 64 3d 22 73 >......................<h2.id="s
4af40 77 69 74 63 68 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 73 77 witch"><a.href="nav.xhtml#toc-sw
4af60 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 itch">switch</a>.<a.class="hdr".
4af80 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 href="#switch">..</a></h2>......
4afa0 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
4afc0 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 77 -cap"><cite.class="file">test_sw
4afe0 69 74 63 68 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 itch.zig</cite></figcaption><pre
4b000 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
4b020 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 2d t</span>.std.=.<span.class="tok-
4b040 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
4b060 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
4b080 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 73 pan>);.<span.class="tok-kw">cons
4b0a0 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="
4b0c0 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
4b0e0 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&
4b100 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 2d quot;</span>);.<span.class="tok-
4b120 6b 77 22 3e 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 kw">const</span>.expect.=.std.te
4b140 73 74 69 6e 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 sting.expect;..<span.class="tok-
4b160 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
4b180 2d 73 74 72 22 3e 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 3c -str">&quot;switch.simple&quot;<
4b1a0 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
4b1c0 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
4b1e0 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
4b200 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
4b220 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>.
4b240 7a 7a 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 34 3c 2f zz:.<span.class="tok-type">u64</
4b260 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"
4b280 3e 31 30 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 >103</span>;......<span.class="t
4b2a0 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 6c 6c 20 62 72 61 6e 63 68 65 73 20 6f 66 20 61 ok-comment">//.All.branches.of.a
4b2c0 20 73 77 69 74 63 68 20 65 78 70 72 65 73 73 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 62 6c 65 20 .switch.expression.must.be.able.
4b2e0 74 6f 20 62 65 20 63 6f 65 72 63 65 64 20 74 6f 20 61 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 to.be.coerced.to.a</span>.....<s
4b300 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 6d 6d 6f pan.class="tok-comment">//.commo
4b320 6e 20 74 79 70 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 n.type.</span>.....<span.class="
4b340 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e tok-comment">//</span>.....<span
4b360 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 63 68 65 73 .class="tok-comment">//.Branches
4b380 20 63 61 6e 6e 6f 74 20 66 61 6c 6c 74 68 72 6f 75 67 68 2e 20 49 66 20 66 61 6c 6c 74 68 72 6f .cannot.fallthrough..If.fallthro
4b3a0 75 67 68 20 62 65 68 61 76 69 6f 72 20 69 73 20 64 65 73 69 72 65 64 2c 20 63 6f 6d 62 69 6e 65 ugh.behavior.is.desired,.combine
4b3c0 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 6d </span>.....<span.class="tok-com
4b3e0 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 63 61 73 65 73 20 61 6e 64 20 75 73 65 20 61 6e 20 69 66 ment">//.the.cases.and.use.an.if
4b400 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
4b420 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 22 ">const</span>.b.=.<span.class="
4b440 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 61 29 20 7b 0a 20 20 20 20 tok-kw">switch</span>.(a).{.....
4b460 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">//
4b480 20 4d 75 6c 74 69 70 6c 65 20 63 61 73 65 73 20 63 61 6e 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 .Multiple.cases.can.be.combined.
4b4a0 76 69 61 20 61 20 27 2c 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 via.a.','</span>.........<span.c
4b4c0 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
4b4e0 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>,.<
4b500 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>
4b520 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 6d 62 65 72 22 3e .=&gt;.<span.class="tok-number">
4b540 30 3c 2f 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 0</span>,..........<span.class="
4b560 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 52 61 6e 67 65 73 20 63 61 6e 20 62 65 20 73 70 tok-comment">//.Ranges.can.be.sp
4b580 65 63 69 66 69 65 64 20 75 73 69 6e 67 20 74 68 65 20 2e 2e 2e 20 73 79 6e 74 61 78 2e 20 54 68 ecified.using.the.....syntax..Th
4b5a0 65 73 65 20 61 72 65 20 69 6e 63 6c 75 73 69 76 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 ese.are.inclusive</span>........
4b5c0 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 6f 66 .<span.class="tok-comment">//.of
4b5e0 20 62 6f 74 68 20 65 6e 64 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e .both.ends.</span>.........<span
4b600 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 2e 2e 2e 3c .class="tok-number">5</span>...<
4b620 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 70 61 span.class="tok-number">100</spa
4b640 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 6e 75 6d 62 65 72 n>.=&gt;.<span.class="tok-number
4b660 22 3e 31 3c 2f 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 ">1</span>,..........<span.class
4b680 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 42 72 61 6e 63 68 65 73 20 63 61 6e 20 62 ="tok-comment">//.Branches.can.b
4b6a0 65 20 61 72 62 69 74 72 61 72 69 6c 79 20 63 6f 6d 70 6c 65 78 2e 3c 2f 73 70 61 6e 3e 0a 20 20 e.arbitrarily.complex.</span>...
4b6c0 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
4b6e0 30 31 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 01</span>.=&gt;.blk:.{..........
4b700 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
4b720 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 75 pan>.c:.<span.class="tok-type">u
4b740 36 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 64</span>.=.<span.class="tok-num
4b760 62 65 72 22 3e 35 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 ber">5</span>;.............<span
4b780 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 62 6c .class="tok-kw">break</span>.:bl
4b7a0 6b 20 63 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 k.c.*.<span.class="tok-number">2
4b7c0 3c 2f 73 70 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 </span>.+.<span.class="tok-numbe
4b7e0 72 22 3e 31 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 20 r">1</span>;.........},.........
4b800 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 53 77 .<span.class="tok-comment">//.Sw
4b820 69 74 63 68 69 6e 67 20 6f 6e 20 61 72 62 69 74 72 61 72 79 20 65 78 70 72 65 73 73 69 6f 6e 73 itching.on.arbitrary.expressions
4b840 20 69 73 20 61 6c 6c 6f 77 65 64 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 3c 2f 73 70 61 6e .is.allowed.as.long.as.the</span
4b860 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
4b880 6e 74 22 3e 2f 2f 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 nt">//.expression.is.known.at.co
4b8a0 6d 70 69 6c 65 2d 74 69 6d 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 7a 7a 20 3d 26 mpile-time.</span>.........zz.=&
4b8c0 67 74 3b 20 7a 7a 2c 0a 20 20 20 20 20 20 20 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 gt;.zz,.........blk:.{..........
4b8e0 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
4b900 70 61 6e 3e 20 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 75 pan>.d:.<span.class="tok-type">u
4b920 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
4b940 62 65 72 22 3e 35 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 ber">5</span>;.............<span
4b960 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 3a 20 .class="tok-kw">const</span>.e:.
4b980 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
4b9a0 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 30 30 >.=.<span.class="tok-number">100
4b9c0 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 73 73 </span>;.............<span.class
4b9e0 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 64 20 2b 20 ="tok-kw">break</span>.:blk.d.+.
4ba00 65 3b 0a 20 20 20 20 20 20 20 20 7d 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 e;.........}.=&gt;.<span.class="
4ba20 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 37 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 20 20 20 tok-number">107</span>,.........
4ba40 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
4ba60 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 63 61 74 63 68 65 73 20 65 76 65 72 79 74 68 69 6e 67 e.else.branch.catches.everything
4ba80 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 63 61 70 74 75 72 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 .not.already.captured.</span>...
4baa0 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 22 3e ......<span.class="tok-comment">
4bac0 2f 2f 20 45 6c 73 65 20 62 72 61 6e 63 68 65 73 20 61 72 65 20 6d 61 6e 64 61 74 6f 72 79 20 75 //.Else.branches.are.mandatory.u
4bae0 6e 6c 65 73 73 20 74 68 65 20 65 6e 74 69 72 65 20 72 61 6e 67 65 20 6f 66 20 76 61 6c 75 65 73 nless.the.entire.range.of.values
4bb00 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
4bb20 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 73 20 68 61 6e 64 6c 65 64 2e 3c 2f 73 70 61 6e 3e 0a -comment">//.is.handled.</span>.
4bb40 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
4bb60 65 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 2d e</span>.=&gt;.<span.class="tok-
4bb80 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 3c 73 number">9</span>,.....};......<s
4bba0 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 65 78 pan.class="tok-kw">try</span>.ex
4bbc0 70 65 63 74 28 62 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 pect(b.==.<span.class="tok-numbe
4bbe0 72 22 3e 31 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 r">1</span>);.}..<span.class="to
4bc00 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 77 69 74 63 68 20 65 78 70 72 65 73 73 69 6f 6e 73 k-comment">//.Switch.expressions
4bc20 20 63 61 6e 20 62 65 20 75 73 65 64 20 6f 75 74 73 69 64 65 20 61 20 66 75 6e 63 74 69 6f 6e 3a .can.be.used.outside.a.function:
4bc40 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
4bc60 73 74 3c 2f 73 70 61 6e 3e 20 6f 73 5f 6d 73 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 st</span>.os_msg.=.<span.class="
4bc80 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 62 75 69 6c 74 69 6e 2e 74 tok-kw">switch</span>.(builtin.t
4bca0 61 72 67 65 74 2e 6f 73 2e 74 61 67 29 20 7b 0a 20 20 20 20 2e 6c 69 6e 75 78 20 3d 26 67 74 3b arget.os.tag).{......linux.=&gt;
4bcc0 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 65 20 .<span.class="tok-str">&quot;we.
4bce0 66 6f 75 6e 64 20 61 20 6c 69 6e 75 78 20 75 73 65 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c found.a.linux.user&quot;</span>,
4bd00 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 6c 73 65 3c 2f .....<span.class="tok-kw">else</
4bd20 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 73 74 72 span>.=&gt;.<span.class="tok-str
4bd40 22 3e 26 71 75 6f 74 3b 6e 6f 74 20 61 20 6c 69 6e 75 78 20 75 73 65 72 26 71 75 6f 74 3b 3c 2f ">&quot;not.a.linux.user&quot;</
4bd60 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 6f 6d 6d span>,.};..<span.class="tok-comm
4bd80 65 6e 74 22 3e 2f 2f 20 49 6e 73 69 64 65 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 73 77 69 74 63 ent">//.Inside.a.function,.switc
4bda0 68 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 61 72 65 20 63 6f 6d 70 h.statements.implicitly.are.comp
4bdc0 69 6c 65 2d 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 6b ile-time</span>.<span.class="tok
4bde0 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 65 76 61 6c 75 61 74 65 64 20 69 66 20 74 68 65 20 74 61 -comment">//.evaluated.if.the.ta
4be00 72 67 65 74 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 rget.expression.is.compile-time.
4be20 6b 6e 6f 77 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 known.</span>.<span.class="tok-k
4be40 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-
4be60 73 74 72 22 3e 26 71 75 6f 74 3b 73 77 69 74 63 68 20 69 6e 73 69 64 65 20 66 75 6e 63 74 69 6f str">&quot;switch.inside.functio
4be80 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
4bea0 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 62 75 69 6c 74 69 6e ="tok-kw">switch</span>.(builtin
4bec0 2e 74 61 72 67 65 74 2e 6f 73 2e 74 61 67 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 66 75 63 68 73 .target.os.tag).{..........fuchs
4bee0 69 61 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ia.=&gt;.{.............<span.cla
4bf00 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4f 6e 20 61 6e 20 4f 53 20 6f 74 68 ss="tok-comment">//.On.an.OS.oth
4bf20 65 72 20 74 68 61 6e 20 66 75 63 68 73 69 61 2c 20 62 6c 6f 63 6b 20 69 73 20 6e 6f 74 20 65 76 er.than.fuchsia,.block.is.not.ev
4bf40 65 6e 20 61 6e 61 6c 79 7a 65 64 2c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 en.analyzed,</span>.............
4bf60 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 6f 20 <span.class="tok-comment">//.so.
4bf80 74 68 69 73 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 6e 6f 74 20 74 72 69 67 67 65 this.compile.error.is.not.trigge
4bfa0 72 65 64 2e 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 red.</span>.............<span.cl
4bfc0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4f 6e 20 66 75 63 68 73 69 61 20 ass="tok-comment">//.On.fuchsia.
4bfe0 74 68 69 73 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 77 6f 75 6c 64 20 62 65 20 74 72 69 67 this.compile.error.would.be.trig
4c000 67 65 72 65 64 2e 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 gered.</span>.............<span.
4c020 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
4c040 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">&
4c060 71 75 6f 74 3b 66 75 63 68 73 69 61 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 26 71 75 6f 74 3b quot;fuchsia.not.supported&quot;
4c080 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 </span>);.........},.........<sp
4c0a0 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 3d 26 an.class="tok-kw">else</span>.=&
4c0c0 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 72 65 3e 3c 2f 66 69 gt;.{},.....}.}</code></pre></fi
4c0e0 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
4c100 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
4c120 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 77 69 e><samp>$.<kbd>zig.test.test_swi
4c140 74 63 68 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 5f 73 77 69 74 63 68 2e 74 65 tch.zig</kbd>.1/2.test_switch.te
4c160 73 74 2e 73 77 69 74 63 68 20 73 69 6d 70 6c 65 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f st.switch.simple....OK.2/2.test_
4c180 73 77 69 74 63 68 2e 74 65 73 74 2e 73 77 69 74 63 68 20 69 6e 73 69 64 65 20 66 75 6e 63 74 69 switch.test.switch.inside.functi
4c1a0 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 on....OK.All.2.tests.passed..</s
4c1c0 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 amp></pre></figure>.......<p>...
4c1e0 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 ....<code><span.class="tok-kw">s
4c200 77 69 74 63 68 3c 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 20 witch</span></code>.can.be.used.
4c220 74 6f 20 63 61 70 74 75 72 65 20 74 68 65 20 66 69 65 6c 64 20 76 61 6c 75 65 73 0a 20 20 20 20 to.capture.the.field.values.....
4c240 20 20 6f 66 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 ..of.a.<a.href="#Tagged-union">T
4c260 61 67 67 65 64 20 75 6e 69 6f 6e 3c 2f 61 3e 2e 20 4d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 agged.union</a>..Modifications.t
4c280 6f 20 74 68 65 20 66 69 65 6c 64 20 76 61 6c 75 65 73 20 63 61 6e 20 62 65 0a 20 20 20 20 20 20 o.the.field.values.can.be.......
4c2a0 64 6f 6e 65 20 62 79 20 70 6c 61 63 69 6e 67 20 61 20 3c 63 6f 64 65 3e 2a 3c 2f 63 6f 64 65 3e done.by.placing.a.<code>*</code>
4c2c0 20 62 65 66 6f 72 65 20 74 68 65 20 63 61 70 74 75 72 65 20 76 61 72 69 61 62 6c 65 20 6e 61 6d .before.the.capture.variable.nam
4c2e0 65 2c 0a 20 20 20 20 20 20 74 75 72 6e 69 6e 67 20 69 74 20 69 6e 74 6f 20 61 20 70 6f 69 6e 74 e,.......turning.it.into.a.point
4c300 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 er........</p>.......<figure><fi
4c320 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
4c340 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 77 69 74 63 68 5f 74 61 67 67 65 64 5f 75 lass="file">test_switch_tagged_u
4c360 6e 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 nion.zig</cite></figcaption><pre
4c380 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
4c3a0 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t</span>.expect.=.<span.class="t
4c3c0 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
4c3e0 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;
4c400 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 </span>).testing.expect;..<span.
4c420 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
4c440 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 6f 6e .class="tok-str">&quot;switch.on
4c460 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 20 7b 0a 20 20 20 .tagged.union&quot;</span>.{....
4c480 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
4c4a0 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 6b 2d 6b 77 22 3e n>.Point.=.<span.class="tok-kw">
4c4c0 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 3c 73 70 61 6e struct</span>.{.........x:.<span
4c4e0 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 20 20 .class="tok-type">u8</span>,....
4c500 20 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 75 .....y:.<span.class="tok-type">u
4c520 38 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 6c 61 73 73 8</span>,.....};.....<span.class
4c540 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 49 74 65 6d 20 3d 20 3c 73 ="tok-kw">const</span>.Item.=.<s
4c560 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>(
4c580 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>
4c5a0 29 20 7b 0a 20 20 20 20 20 20 20 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ).{.........a:.<span.class="tok-
4c5c0 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 63 3a 20 50 6f 69 type">u32</span>,.........c:.Poi
4c5e0 6e 74 2c 0a 20 20 20 20 20 20 20 20 64 2c 0a 20 20 20 20 20 20 20 20 65 3a 20 3c 73 70 61 6e 20 nt,.........d,.........e:.<span.
4c600 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 0a 20 20 20 class="tok-type">u32</span>,....
4c620 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 76 61 .};......<span.class="tok-kw">va
4c640 72 3c 2f 73 70 61 6e 3e 20 61 20 3d 20 49 74 65 6d 7b 20 2e 63 20 3d 20 50 6f 69 6e 74 7b 20 2e r</span>.a.=.Item{..c.=.Point{..
4c660 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 3e 31 3c 2f x.=.<span.class="tok-number">1</
4c680 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 6b 2d 6e 75 6d span>,..y.=.<span.class="tok-num
4c6a0 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 7d 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ber">2</span>.}.};......<span.cl
4c6c0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 77 69 74 63 68 69 6e 67 20 6f ass="tok-comment">//.Switching.o
4c6e0 6e 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 65 6e 75 6d 73 20 69 73 20 61 6c 6c 6f 77 65 64 2e n.more.complex.enums.is.allowed.
4c700 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 22 </span>.....<span.class="tok-kw"
4c720 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 22 74 >const</span>.b.=.<span.class="t
4c740 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 61 29 20 7b 0a 20 20 20 20 20 ok-kw">switch</span>.(a).{......
4c760 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">//.
4c780 41 20 63 61 70 74 75 72 65 20 67 72 6f 75 70 20 69 73 20 61 6c 6c 6f 77 65 64 20 6f 6e 20 61 20 A.capture.group.is.allowed.on.a.
4c7a0 6d 61 74 63 68 2c 20 61 6e 64 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 65 6e 75 6d 3c match,.and.will.return.the.enum<
4c7c0 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-
4c7e0 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 76 61 6c 75 65 20 6d 61 74 63 68 65 64 2e 20 49 66 20 74 68 comment">//.value.matched..If.th
4c800 65 20 70 61 79 6c 6f 61 64 20 74 79 70 65 73 20 6f 66 20 62 6f 74 68 20 63 61 73 65 73 20 61 72 e.payload.types.of.both.cases.ar
4c820 65 20 74 68 65 20 73 61 6d 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 e.the.same</span>.........<span.
4c840 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 79 20 63 61 6e 20 class="tok-comment">//.they.can.
4c860 62 65 20 70 75 74 20 69 6e 74 6f 20 74 68 65 20 73 61 6d 65 20 73 77 69 74 63 68 20 70 72 6f 6e be.put.into.the.same.switch.pron
4c880 67 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 49 74 65 6d 2e 61 2c 20 49 74 65 6d 2e 65 g.</span>.........Item.a,.Item.e
4c8a0 20 3d 26 67 74 3b 20 7c 69 74 65 6d 7c 20 69 74 65 6d 2c 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 .=&gt;.|item|.item,..........<sp
4c8c0 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 72 65 66 65 an.class="tok-comment">//.A.refe
4c8e0 72 65 6e 63 65 20 74 6f 20 74 68 65 20 6d 61 74 63 68 65 64 20 76 61 6c 75 65 20 63 61 6e 20 62 rence.to.the.matched.value.can.b
4c900 65 20 6f 62 74 61 69 6e 65 64 20 75 73 69 6e 67 20 60 2a 60 20 73 79 6e 74 61 78 2e 3c 2f 73 70 e.obtained.using.`*`.syntax.</sp
4c920 61 6e 3e 0a 20 20 20 20 20 20 20 20 49 74 65 6d 2e 63 20 3d 26 67 74 3b 20 7c 2a 69 74 65 6d 7c an>.........Item.c.=&gt;.|*item|
4c940 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 74 65 6d 2e 2a 2e 78 20 2b 3d 20 .blk:.{.............item.*.x.+=.
4c960 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
4c980 3e 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 6f 6b 2d >;.............<span.class="tok-
4c9a0 6b 77 22 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 20 3a 62 6c 6b 20 3c 73 70 61 6e 20 63 6c 61 73 kw">break</span>.:blk.<span.clas
4c9c0 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 s="tok-number">6</span>;........
4c9e0 20 7d 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 .},..........<span.class="tok-co
4ca00 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 6f 20 65 6c 73 65 20 69 73 20 72 65 71 75 69 72 65 64 20 69 66 mment">//.No.else.is.required.if
4ca20 20 74 68 65 20 74 79 70 65 73 20 63 61 73 65 73 20 77 61 73 20 65 78 68 61 75 73 74 69 76 65 6c .the.types.cases.was.exhaustivel
4ca40 79 20 68 61 6e 64 6c 65 64 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 49 74 65 6d 2e 64 20 y.handled</span>.........Item.d.
4ca60 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 6d 62 65 72 22 3e 38 =&gt;.<span.class="tok-number">8
4ca80 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 73 </span>,.....};......<span.class
4caa0 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 62 20 3d 3d ="tok-kw">try</span>.expect(b.==
4cac0 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 61 .<span.class="tok-number">6</spa
4cae0 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 74 72 n>);.....<span.class="tok-kw">tr
4cb00 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 2e 63 2e 78 20 3d 3d 20 3c 73 70 61 6e 20 63 y</span>.expect(a.c.x.==.<span.c
4cb20 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 3c 2f lass="tok-number">2</span>);.}</
4cb40 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
4cb60 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
4cb80 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
4cba0 67 20 74 65 73 74 20 74 65 73 74 5f 73 77 69 74 63 68 5f 74 61 67 67 65 64 5f 75 6e 69 6f 6e 2e g.test.test_switch_tagged_union.
4cbc0 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 77 69 74 63 68 5f 74 61 67 67 65 64 zig</kbd>.1/1.test_switch_tagged
4cbe0 5f 75 6e 69 6f 6e 2e 74 65 73 74 2e 73 77 69 74 63 68 20 6f 6e 20 74 61 67 67 65 64 20 75 6e 69 _union.test.switch.on.tagged.uni
4cc00 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 on....OK.All.1.tests.passed..</s
4cc20 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 amp></pre></figure>.......<p>See
4cc40 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 63 6f 6d .also:</p><ul>.<li><a.href="#com
4cc60 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 6c 69 3e 3c 61 20 ptime">comptime</a></li>.<li><a.
4cc80 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c href="#enum">enum</a></li>.<li><
4cca0 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e 40 63 6f 6d 70 69 6c 65 45 a.href="#compileError">@compileE
4ccc0 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 rror</a></li>.<li><a.href="#Comp
4cce0 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
4cd00 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 </a></li>.</ul>.........<h3.id="
4cd20 45 78 68 61 75 73 74 69 76 65 2d 53 77 69 74 63 68 69 6e 67 22 3e 3c 61 20 68 72 65 66 3d 22 6e Exhaustive-Switching"><a.href="n
4cd40 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 45 78 68 61 75 73 74 69 76 65 2d 53 77 69 74 63 68 69 6e av.xhtml#toc-Exhaustive-Switchin
4cd60 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 20 63 g">Exhaustive.Switching</a>.<a.c
4cd80 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 77 69 lass="hdr".href="#Exhaustive-Swi
4cda0 74 63 68 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 20 tching">..</a></h3>........<p>..
4cdc0 20 20 20 20 20 57 68 65 6e 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .....When.a.<code><span.class="t
4cde0 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
4ce00 65 73 73 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 61 6e 20 3c 63 6f 64 65 3e 3c 73 ession.does.not.have.an.<code><s
4ce20 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></
4ce40 63 6f 64 65 3e 20 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 code>.clause,.......it.must.exha
4ce60 75 73 74 69 76 65 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 ustively.list.all.the.possible.v
4ce80 61 6c 75 65 73 2e 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 alues..Failure.to.do.so.is.a.com
4cea0 70 69 6c 65 20 65 72 72 6f 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 pile.error:.......</p>.......<fi
4cec0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 gure><figcaption.class="zig-cap"
4cee0 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 75 6e 68 61 6e 64 6c ><cite.class="file">test_unhandl
4cf00 65 64 5f 65 6e 75 6d 65 72 61 74 69 6f 6e 5f 76 61 6c 75 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c ed_enumeration_value.zig</cite><
4cf20 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /figcaption><pre><code><span.cla
4cf40 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 6c 6f 72 20 3d ss="tok-kw">const</span>.Color.=
4cf60 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 6e .<span.class="tok-kw">enum</span
4cf80 3e 20 7b 0a 20 20 20 20 61 75 74 6f 2c 0a 20 20 20 20 6f 66 66 2c 0a 20 20 20 20 6f 6e 2c 0a 7d >.{.....auto,.....off,.....on,.}
4cfa0 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
4cfc0 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;
4cfe0 65 78 68 61 75 73 74 69 76 65 20 73 77 69 74 63 68 69 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e exhaustive.switching&quot;</span
4d000 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
4d020 73 74 3c 2f 73 70 61 6e 3e 20 63 6f 6c 6f 72 20 3d 20 43 6f 6c 6f 72 2e 6f 66 66 3b 0a 20 20 20 st</span>.color.=.Color.off;....
4d040 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 70 .<span.class="tok-kw">switch</sp
4d060 61 6e 3e 20 28 63 6f 6c 6f 72 29 20 7b 0a 20 20 20 20 20 20 20 20 43 6f 6c 6f 72 2e 61 75 74 6f an>.(color).{.........Color.auto
4d080 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 20 20 20 20 20 20 43 6f 6c 6f 72 2e 6f 6e 20 3d 26 67 74 .=&gt;.{},.........Color.on.=&gt
4d0a0 3b 20 7b 7d 2c 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 ;.{},.....}.}</code></pre></figu
4d0c0 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 re><figure><figcaption.class="sh
4d0e0 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ell-cap">Shell</figcaption><pre>
4d100 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 75 6e 68 61 6e <samp>$.<kbd>zig.test.test_unhan
4d120 64 6c 65 64 5f 65 6e 75 6d 65 72 61 74 69 6f 6e 5f 76 61 6c 75 65 2e 7a 69 67 3c 2f 6b 62 64 3e dled_enumeration_value.zig</kbd>
4d140 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 .<span.class="sgr-1m">docgen_tmp
4d160 2f 74 65 73 74 5f 75 6e 68 61 6e 64 6c 65 64 5f 65 6e 75 6d 65 72 61 74 69 6f 6e 5f 76 61 6c 75 /test_unhandled_enumeration_valu
4d180 65 2e 7a 69 67 3a 39 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 e.zig:9:5:.</span><span.class="s
4d1a0 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 gr-31m">error:.</span><span.clas
4d1c0 73 3d 22 73 67 72 2d 31 6d 22 3e 73 77 69 74 63 68 20 6d 75 73 74 20 68 61 6e 64 6c 65 20 61 6c s="sgr-1m">switch.must.handle.al
4d1e0 6c 20 70 6f 73 73 69 62 69 6c 69 74 69 65 73 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 73 77 69 74 63 l.possibilities.</span>....switc
4d200 68 20 28 63 6f 6c 6f 72 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 h.(color).{.....<span.class="sgr
4d220 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d -32m">^~~~~~.</span><span.class=
4d240 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 75 6e 68 61 6e 64 6c "sgr-1m">docgen_tmp/test_unhandl
4d260 65 64 5f 65 6e 75 6d 65 72 61 74 69 6f 6e 5f 76 61 6c 75 65 2e 7a 69 67 3a 33 3a 35 3a 20 3c 2f ed_enumeration_value.zig:3:5:.</
4d280 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a span><span.class="sgr-36m">note:
4d2a0 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 75 6e 68 .</span><span.class="sgr-1m">unh
4d2c0 61 6e 64 6c 65 64 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 76 61 6c 75 65 3a 20 27 6f 66 66 27 0a andled.enumeration.value:.'off'.
4d2e0 3c 2f 73 70 61 6e 3e 20 20 20 20 6f 66 66 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d </span>....off,.....<span.class=
4d300 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 "sgr-32m">^~~.</span><span.class
4d320 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 75 6e 68 61 6e 64 ="sgr-1m">docgen_tmp/test_unhand
4d340 6c 65 64 5f 65 6e 75 6d 65 72 61 74 69 6f 6e 5f 76 61 6c 75 65 2e 7a 69 67 3a 31 3a 31 35 3a 20 led_enumeration_value.zig:1:15:.
4d360 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 </span><span.class="sgr-36m">not
4d380 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 65 e:.</span><span.class="sgr-1m">e
4d3a0 6e 75 6d 20 27 74 65 73 74 5f 75 6e 68 61 6e 64 6c 65 64 5f 65 6e 75 6d 65 72 61 74 69 6f 6e 5f num.'test_unhandled_enumeration_
4d3c0 76 61 6c 75 65 2e 43 6f 6c 6f 72 27 20 64 65 63 6c 61 72 65 64 20 68 65 72 65 0a 3c 2f 73 70 61 value.Color'.declared.here.</spa
4d3e0 6e 3e 63 6f 6e 73 74 20 43 6f 6c 6f 72 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 20 20 20 20 20 n>const.Color.=.enum.{..........
4d400 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 0a .....<span.class="sgr-32m">^~~~.
4d420 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 </span>.</samp></pre></figure>..
4d440 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 53 77 69 74 63 68 69 6e 67 2d 77 .............<h3.id="Switching-w
4d460 69 74 68 2d 45 6e 75 6d 2d 4c 69 74 65 72 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e ith-Enum-Literals"><a.href="nav.
4d480 78 68 74 6d 6c 23 74 6f 63 2d 53 77 69 74 63 68 69 6e 67 2d 77 69 74 68 2d 45 6e 75 6d 2d 4c 69 xhtml#toc-Switching-with-Enum-Li
4d4a0 74 65 72 61 6c 73 22 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 terals">Switching.with.Enum.Lite
4d4c0 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 53 rals</a>.<a.class="hdr".href="#S
4d4e0 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 3e c2 a7 3c witching-with-Enum-Literals">..<
4d500 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 3c 61 20 68 72 65 /a></h3>........<p>.......<a.hre
4d520 66 3d 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 f="#Enum-Literals">Enum.Literals
4d540 3c 2f 61 3e 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 75 73 65 20 77 69 74 68 20 3c </a>.can.be.useful.to.use.with.<
4d560 63 6f 64 65 3e 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 code><span.class="tok-kw">switch
4d580 3c 2f 73 70 61 6e 3e 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 </span></code>.to.avoid.......re
4d5a0 70 65 74 69 74 69 76 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 petitively.specifying.<a.href="#
4d5c0 65 6e 75 6d 22 3e 65 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 enum">enum</a>.or.<a.href="#unio
4d5e0 6e 22 3e 75 6e 69 6f 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 n">union</a>.types:.......</p>..
4d600 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
4d620 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
4d640 5f 65 78 68 61 75 73 74 69 76 65 5f 73 77 69 74 63 68 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 _exhaustive_switch.zig</cite></f
4d660 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
4d680 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
4d6a0 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</
4d6c0 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
4d6e0 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
4d700 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 70 65 63 74 20 3d 20 ="tok-kw">const</span>.expect.=.
4d720 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 std.testing.expect;..<span.class
4d740 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 6c 6f 72 20 3d 20 3c ="tok-kw">const</span>.Color.=.<
4d760 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>.
4d780 7b 0a 20 20 20 20 61 75 74 6f 2c 0a 20 20 20 20 6f 66 66 2c 0a 20 20 20 20 6f 6e 2c 0a 7d 3b 0a {.....auto,.....off,.....on,.};.
4d7a0 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
4d7c0 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 65 6e >.<span.class="tok-str">&quot;en
4d7e0 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 3b 3c 2f 73 um.literals.with.switch&quot;</s
4d800 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">
4d820 63 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 6f 66 66 3b 0a const</span>.color.=.Color.off;.
4d840 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</
4d860 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 6b 2d span>.result.=.<span.class="tok-
4d880 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 0a 20 20 20 20 kw">switch</span>.(color).{.....
4d8a0 20 20 20 20 2e 61 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 .....auto.=&gt;.<span.class="tok
4d8c0 2d 6e 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 6f 6e -null">false</span>,..........on
4d8e0 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 3e 66 61 .=&gt;.<span.class="tok-null">fa
4d900 6c 73 65 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 6f 66 66 20 3d 26 67 74 3b 20 3c lse</span>,..........off.=&gt;.<
4d920 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
4d940 3e 2c 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 >,.....};.....<span.class="tok-k
4d960 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 72 65 73 75 6c 74 29 3b 0a 7d 3c w">try</span>.expect(result);.}<
4d980 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
4d9a0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
4d9c0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
4d9e0 69 67 20 74 65 73 74 20 74 65 73 74 5f 65 78 68 61 75 73 74 69 76 65 5f 73 77 69 74 63 68 2e 7a ig.test.test_exhaustive_switch.z
4da00 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 65 78 68 61 75 73 74 69 76 65 5f 73 77 69 ig</kbd>.1/1.test_exhaustive_swi
4da20 74 63 68 2e 74 65 73 74 2e 65 6e 75 6d 20 6c 69 74 65 72 61 6c 73 20 77 69 74 68 20 73 77 69 74 tch.test.enum.literals.with.swit
4da40 63 68 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 ch....OK.All.1.tests.passed..</s
4da60 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 amp></pre></figure>.............
4da80 20 20 3c 68 33 20 69 64 3d 22 49 6e 6c 69 6e 65 2d 53 77 69 74 63 68 2d 50 72 6f 6e 67 73 22 3e ..<h3.id="Inline-Switch-Prongs">
4daa0 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6e 6c 69 6e 65 2d 53 77 <a.href="nav.xhtml#toc-Inline-Sw
4dac0 69 74 63 68 2d 50 72 6f 6e 67 73 22 3e 49 6e 6c 69 6e 65 20 53 77 69 74 63 68 20 50 72 6f 6e 67 itch-Prongs">Inline.Switch.Prong
4dae0 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 6c 69 s</a>.<a.class="hdr".href="#Inli
4db00 6e 65 2d 53 77 69 74 63 68 2d 50 72 6f 6e 67 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 ne-Switch-Prongs">..</a></h3>...
4db20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 77 69 74 63 68 20 70 72 6f 6e 67 73 20 63 61 6e .....<p>.......Switch.prongs.can
4db40 20 62 65 20 6d 61 72 6b 65 64 20 61 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d .be.marked.as.<code><span.class=
4db60 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 74 6f "tok-kw">inline</span></code>.to
4db80 20 67 65 6e 65 72 61 74 65 0a 20 20 20 20 20 20 74 68 65 20 70 72 6f 6e 67 27 73 20 62 6f 64 79 .generate.......the.prong's.body
4dba0 20 66 6f 72 20 65 61 63 68 20 70 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 20 69 74 20 63 6f 75 6c .for.each.possible.value.it.coul
4dbc0 64 20 68 61 76 65 2c 20 6d 61 6b 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 63 61 70 74 75 72 65 d.have,.making.the.......capture
4dbe0 64 20 76 61 6c 75 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 d.value.<a.href="#comptime">comp
4dc00 74 69 6d 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 66 69 67 75 time</a>........</p>.......<figu
4dc20 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
4dc40 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 73 77 cite.class="file">test_inline_sw
4dc60 69 74 63 68 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 itch.zig</cite></figcaption><pre
4dc80 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
4dca0 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 2d t</span>.std.=.<span.class="tok-
4dcc0 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
4dce0 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
4dd00 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 73 pan>);.<span.class="tok-kw">cons
4dd20 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 67 2e 65 78 t</span>.expect.=.std.testing.ex
4dd40 70 65 63 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 6e 73 74 pect;.<span.class="tok-kw">const
4dd60 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 45 72 72 6f 72 20 3d 20 73 74 64 2e 74 65 73 74 69 6e </span>.expectError.=.std.testin
4dd80 67 2e 65 78 70 65 63 74 45 72 72 6f 72 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b g.expectError;..<span.class="tok
4dda0 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-
4ddc0 66 6e 22 3e 69 73 46 69 65 6c 64 4f 70 74 69 6f 6e 61 6c 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e fn">isFieldOptional</span>(<span
4dde0 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>.
4de00 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 2f T:.<span.class="tok-type">type</
4de20 73 70 61 6e 3e 2c 20 66 69 65 6c 64 5f 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d span>,.field_index:.<span.class=
4de40 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 21 3c 73 70 61 6e 20 "tok-type">usize</span>).!<span.
4de60 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 7b 0a 20 class="tok-type">bool</span>.{..
4de80 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
4dea0 70 61 6e 3e 20 66 69 65 6c 64 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 pan>.fields.=.<span.class="tok-b
4dec0 75 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 53 74 72 75 uiltin">@typeInfo</span>(T).Stru
4dee0 63 74 2e 66 69 65 6c 64 73 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ct.fields;.....<span.class="tok-
4df00 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
4df20 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 66 69 65 6c 64 5f 69 6e 64 65 ok-kw">switch</span>.(field_inde
4df40 78 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 x).{.........<span.class="tok-co
4df60 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 70 72 6f 6e 67 20 69 73 20 61 6e 61 6c 79 7a 65 64 mment">//.This.prong.is.analyzed
4df80 20 74 77 69 63 65 20 77 69 74 68 20 60 69 64 78 60 20 62 65 69 6e 67 20 61 3c 2f 73 70 61 6e 3e .twice.with.`idx`.being.a</span>
4dfa0 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 6e .........<span.class="tok-commen
4dfc0 74 22 3e 2f 2f 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 76 61 6c 75 65 20 65 61 63 68 20 t">//.comptime-known.value.each.
4dfe0 74 69 6d 65 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 time.</span>.........<span.class
4e000 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 70 61 6e 20 63 6c ="tok-kw">inline</span>.<span.cl
4e020 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 20 3c 73 70 61 6e ass="tok-number">0</span>,.<span
4e040 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 3d 26 67 .class="tok-number">1</span>.=&g
4e060 74 3b 20 7c 69 64 78 7c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 t;.|idx|.<span.class="tok-builti
4e080 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 66 69 65 6c 64 73 5b 69 64 78 5d 2e n">@typeInfo</span>(fields[idx].
4e0a0 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
4e0c0 6e 3e 29 20 3d 3d 20 2e 4f 70 74 69 6f 6e 61 6c 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 n>).==..Optional,.........<span.
4e0e0 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;
4e100 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
4e120 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</
4e140 73 70 61 6e 3e 2e 49 6e 64 65 78 4f 75 74 4f 66 42 6f 75 6e 64 73 2c 0a 20 20 20 20 7d 3b 0a 7d span>.IndexOutOfBounds,.....};.}
4e160 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
4e180 61 6e 3e 20 53 74 72 75 63 74 31 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b an>.Struct1.=.<span.class="tok-k
4e1a0 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 20 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 w">struct</span>.{.a:.<span.clas
4e1c0 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 3a 20 3f 3c 73 70 s="tok-type">u32</span>,.b:.?<sp
4e1e0 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 7d an.class="tok-type">u32</span>.}
4e200 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
4e220 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;
4e240 75 73 69 6e 67 20 40 74 79 70 65 49 6e 66 6f 20 77 69 74 68 20 72 75 6e 74 69 6d 65 20 76 61 6c using.@typeInfo.with.runtime.val
4e260 75 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 ues&quot;</span>.{.....<span.cla
4e280 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 69 6e 64 65 78 3a 20 3c 73 ss="tok-kw">var</span>.index:.<s
4e2a0 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
4e2c0 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 30 3c 2f >.=.<span.class="tok-number">0</
4e2e0 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">
4e300 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 try</span>.expect(!<span.class="
4e320 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 69 73 46 69 65 6c 64 4f 70 74 69 6f 6e tok-kw">try</span>.isFieldOption
4e340 61 6c 28 53 74 72 75 63 74 31 2c 20 69 6e 64 65 78 29 29 3b 0a 20 20 20 20 69 6e 64 65 78 20 2b al(Struct1,.index));.....index.+
4e360 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
4e380 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 74 72 an>;.....<span.class="tok-kw">tr
4e3a0 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b y</span>.expect(<span.class="tok
4e3c0 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 69 73 46 69 65 6c 64 4f 70 74 69 6f 6e 61 6c 28 -kw">try</span>.isFieldOptional(
4e3e0 53 74 72 75 63 74 31 2c 20 69 6e 64 65 78 29 29 3b 0a 20 20 20 20 69 6e 64 65 78 20 2b 3d 20 3c Struct1,.index));.....index.+=.<
4e400 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>
4e420 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
4e440 73 70 61 6e 3e 20 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 span>.expectError(<span.class="t
4e460 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 49 6e 64 65 78 4f 75 74 4f 66 42 6f ok-kw">error</span>.IndexOutOfBo
4e480 75 6e 64 73 2c 20 69 73 46 69 65 6c 64 4f 70 74 69 6f 6e 61 6c 28 53 74 72 75 63 74 31 2c 20 69 unds,.isFieldOptional(Struct1,.i
4e4a0 6e 64 65 78 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 ndex));.}..<span.class="tok-comm
4e4c0 65 6e 74 22 3e 2f 2f 20 43 61 6c 6c 73 20 74 6f 20 60 69 73 46 69 65 6c 64 4f 70 74 69 6f 6e 61 ent">//.Calls.to.`isFieldOptiona
4e4e0 6c 60 20 6f 6e 20 60 53 74 72 75 63 74 31 60 20 67 65 74 20 75 6e 72 6f 6c 6c 65 64 20 74 6f 20 l`.on.`Struct1`.get.unrolled.to.
4e500 61 6e 20 65 71 75 69 76 61 6c 65 6e 74 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 an.equivalent</span>.<span.class
4e520 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6f 66 20 74 68 69 73 20 66 75 6e 63 74 69 ="tok-comment">//.of.this.functi
4e540 6f 6e 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 6b 77 22 3e on:</span>.<span.class="tok-kw">
4e560 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 69 fn</span>.<span.class="tok-fn">i
4e580 73 46 69 65 6c 64 4f 70 74 69 6f 6e 61 6c 55 6e 72 6f 6c 6c 65 64 3c 2f 73 70 61 6e 3e 28 66 69 sFieldOptionalUnrolled</span>(fi
4e5a0 65 6c 64 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 eld_index:.<span.class="tok-type
4e5c0 22 3e 75 73 69 7a 65 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 ">usize</span>).!<span.class="to
4e5e0 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 20 k-type">bool</span>.{.....<span.
4e600 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
4e620 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>.
4e640 28 66 69 65 6c 64 5f 69 6e 64 65 78 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c (field_index).{.........<span.cl
4e660 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 74 3b 20 ass="tok-number">0</span>.=&gt;.
4e680 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
4e6a0 61 6e 3e 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 6e 75 an>,.........<span.class="tok-nu
4e6c0 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 63 6c 61 73 73 mber">1</span>.=&gt;.<span.class
4e6e0 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 20 20 20 20 ="tok-null">true</span>,........
4e700 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
4e720 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 22 3e 72 65 74 >.=&gt;.<span.class="tok-kw">ret
4e740 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 22 3e urn</span>.<span.class="tok-kw">
4e760 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 49 6e 64 65 78 4f 75 74 4f 66 42 6f 75 6e 64 73 2c 0a 20 error</span>.IndexOutOfBounds,..
4e780 20 20 20 7d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 ...};.}</code></pre></figure><fi
4e7a0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
4e7c0 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
4e7e0 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 73 77 69 74 $.<kbd>zig.test.test_inline_swit
4e800 63 68 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 73 77 69 ch.zig</kbd>.1/1.test_inline_swi
4e820 74 63 68 2e 74 65 73 74 2e 75 73 69 6e 67 20 40 74 79 70 65 49 6e 66 6f 20 77 69 74 68 20 72 75 tch.test.using.@typeInfo.with.ru
4e840 6e 74 69 6d 65 20 76 61 6c 75 65 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 ntime.values....OK.All.1.tests.p
4e860 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 assed..</samp></pre></figure>...
4e880 20 20 20 20 3c 70 3e 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ....<p>The.<code><span.class="to
4e8a0 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 6b 65 79 77 6f k-kw">inline</span></code>.keywo
4e8c0 72 64 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 72 61 6e rd.may.also.be.combined.with.ran
4e8e0 67 65 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ges:</p>.......<figure><figcapti
4e900 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
4e920 66 69 6c 65 22 3e 69 6e 6c 69 6e 65 5f 70 72 6f 6e 67 5f 72 61 6e 67 65 2e 7a 69 67 3c 2f 63 69 file">inline_prong_range.zig</ci
4e940 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
4e960 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.
4e980 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 69 73 46 69 65 6c 64 4f 70 74 69 6f 6e 61 6c 3c 2f class="tok-fn">isFieldOptional</
4e9a0 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
4e9c0 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
4e9e0 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 66 69 65 6c 64 5f 69 6e 64 65 78 3a 20 3c ype">type</span>,.field_index:.<
4ea00 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
4ea20 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 65 22 3e 62 6f 6f 6c n>).!<span.class="tok-type">bool
4ea40 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
4ea60 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 69 65 6c 64 73 20 3d 20 3c 73 70 61 6e 20 63 w">const</span>.fields.=.<span.c
4ea80 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 6e 66 6f 3c 2f 73 70 lass="tok-builtin">@typeInfo</sp
4eaa0 61 6e 3e 28 54 29 2e 53 74 72 75 63 74 2e 66 69 65 6c 64 73 3b 0a 20 20 20 20 3c 73 70 61 6e 20 an>(T).Struct.fields;.....<span.
4eac0 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
4eae0 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>.
4eb00 28 66 69 65 6c 64 5f 69 6e 64 65 78 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c (field_index).{.........<span.cl
4eb20 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 70 61 6e ass="tok-kw">inline</span>.<span
4eb40 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 2e 66 .class="tok-number">0</span>...f
4eb60 69 65 6c 64 73 2e 6c 65 6e 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ields.len.-.<span.class="tok-num
4eb80 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 7c 69 64 78 7c 20 3c 73 70 61 6e 20 ber">1</span>.=&gt;.|idx|.<span.
4eba0 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 6e 66 6f 3c 2f 73 class="tok-builtin">@typeInfo</s
4ebc0 70 61 6e 3e 28 66 69 65 6c 64 73 5b 69 64 78 5d 2e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pan>(fields[idx].<span.class="to
4ebe0 6b 2d 74 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 2e 4f 70 74 69 6f 6e 61 k-type">type</span>).==..Optiona
4ec00 6c 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 l,.........<span.class="tok-kw">
4ec20 65 6c 73 65 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 else</span>.=&gt;.<span.class="t
4ec40 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 73 ok-kw">return</span>.<span.class
4ec60 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 49 6e 64 65 78 4f 75 74 4f ="tok-kw">error</span>.IndexOutO
4ec80 66 42 6f 75 6e 64 73 2c 0a 20 20 20 20 7d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f fBounds,.....};.}</code></pre></
4eca0 66 69 67 75 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 3e 3c 73 figure>.......<p>.......<code><s
4ecc0 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 6e 3e pan.class="tok-kw">inline</span>
4ece0 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
4ed00 3e 3c 2f 63 6f 64 65 3e 20 70 72 6f 6e 67 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 61 ></code>.prongs.can.be.used.as.a
4ed20 20 74 79 70 65 20 73 61 66 65 0a 20 20 20 20 20 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 .type.safe.......alternative.to.
4ed40 3c 63 6f 64 65 3e 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 <code><span.class="tok-kw">inlin
4ed60 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 66 6f e</span>.<span.class="tok-kw">fo
4ed80 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6c 6f 6f 70 73 3a 0a 20 20 20 20 20 20 3c 2f 70 r</span></code>.loops:.......</p
4eda0 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 >.......<figure><figcaption.clas
4edc0 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 s="zig-cap"><cite.class="file">t
4ede0 65 73 74 5f 69 6e 6c 69 6e 65 5f 65 6c 73 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 est_inline_else.zig</cite></figc
4ee00 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 aption><pre><code><span.class="t
4ee20 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.
4ee40 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
4ee60 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
4ee80 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
4eea0 6f 6b 2d 6b 77 22 3e 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 ok-kw">const</span>.expect.=.std
4eec0 2e 74 65 73 74 69 6e 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 .testing.expect;..<span.class="t
4eee0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 6c 69 63 65 54 79 70 65 41 20 3d ok-kw">const</span>.SliceTypeA.=
4ef00 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
4ef20 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 3c an>.<span.class="tok-kw">struct<
4ef40 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 6c 65 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 /span>.{.....len:.<span.class="t
4ef60 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 70 74 72 3a 20 ok-type">usize</span>,.....ptr:.
4ef80 5b 2a 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 [*]<span.class="tok-type">u32</s
4efa0 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 6f pan>,.};.<span.class="tok-kw">co
4efc0 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 6c 69 63 65 54 79 70 65 42 20 3d 20 3c 73 70 61 6e 20 63 6c nst</span>.SliceTypeB.=.<span.cl
4efe0 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 20 3c 73 70 61 6e ass="tok-kw">extern</span>.<span
4f000 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>.{.
4f020 20 20 20 20 70 74 72 3a 20 5b 2a 5d 53 6c 69 63 65 54 79 70 65 41 2c 0a 20 20 20 20 6c 65 6e 3a ....ptr:.[*]SliceTypeA,.....len:
4f040 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
4f060 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 6f pan>,.};.<span.class="tok-kw">co
4f080 6e 73 74 3c 2f 73 70 61 6e 3e 20 41 6e 79 53 6c 69 63 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 nst</span>.AnySlice.=.<span.clas
4f0a0 73 3d 22 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 s="tok-kw">union</span>(<span.cl
4f0c0 61 73 73 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 ass="tok-kw">enum</span>).{.....
4f0e0 61 3a 20 53 6c 69 63 65 54 79 70 65 41 2c 0a 20 20 20 20 62 3a 20 53 6c 69 63 65 54 79 70 65 42 a:.SliceTypeA,.....b:.SliceTypeB
4f100 2c 0a 20 20 20 20 63 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 ,.....c:.[]<span.class="tok-kw">
4f120 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
4f140 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 64 3a 20 5b 5d 41 6e 79 53 6c 69 63 65 pe">u8</span>,.....d:.[]AnySlice
4f160 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 66 6e 3c 2f 73 ,.};..<span.class="tok-kw">fn</s
4f180 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 77 69 74 68 46 6f pan>.<span.class="tok-fn">withFo
4f1a0 72 3c 2f 73 70 61 6e 3e 28 61 6e 79 3a 20 41 6e 79 53 6c 69 63 65 29 20 3c 73 70 61 6e 20 63 6c r</span>(any:.AnySlice).<span.cl
4f1c0 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 20 ass="tok-type">usize</span>.{...
4f1e0 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
4f200 61 6e 3e 20 54 61 67 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>.Tag.=.<span.class="tok-built
4f220 69 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 41 6e 79 53 6c 69 63 65 29 2e 55 in">@typeInfo</span>(AnySlice).U
4f240 6e 69 6f 6e 2e 74 61 67 5f 74 79 70 65 2e 3f 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 nion.tag_type.?;.....<span.class
4f260 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 70 61 6e 20 63 6c ="tok-kw">inline</span>.<span.cl
4f280 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 3c 73 70 61 6e 20 63 ass="tok-kw">for</span>.(<span.c
4f2a0 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 6e 66 6f 3c 2f 73 70 lass="tok-builtin">@typeInfo</sp
4f2c0 61 6e 3e 28 54 61 67 29 2e 45 6e 75 6d 2e 66 69 65 6c 64 73 29 20 7c 66 69 65 6c 64 7c 20 7b 0a an>(Tag).Enum.fields).|field|.{.
4f2e0 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
4f300 22 3e 2f 2f 20 57 69 74 68 20 60 69 6e 6c 69 6e 65 20 66 6f 72 60 20 74 68 65 20 66 75 6e 63 74 ">//.With.`inline.for`.the.funct
4f320 69 6f 6e 20 67 65 74 73 20 67 65 6e 65 72 61 74 65 64 20 61 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 ion.gets.generated.as</span>....
4f340 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">/
4f360 2f 20 61 20 73 65 72 69 65 73 20 6f 66 20 60 69 66 60 20 73 74 61 74 65 6d 65 6e 74 73 20 72 65 /.a.series.of.`if`.statements.re
4f380 6c 79 69 6e 67 20 6f 6e 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 3c 2f 73 70 61 6e 3e 0a 20 20 lying.on.the.optimizer</span>...
4f3a0 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 22 3e ......<span.class="tok-comment">
4f3c0 2f 2f 20 74 6f 20 63 6f 6e 76 65 72 74 20 69 74 20 74 6f 20 61 20 73 77 69 74 63 68 2e 3c 2f 73 //.to.convert.it.to.a.switch.</s
4f3e0 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 6b 77 pan>.........<span.class="tok-kw
4f400 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 66 69 65 6c 64 2e 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 ">if</span>.(field.value.==.<spa
4f420 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 46 72 6f 6d 45 6e n.class="tok-builtin">@intFromEn
4f440 75 6d 3c 2f 73 70 61 6e 3e 28 61 6e 79 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 um</span>(any)).{.............<s
4f460 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>
4f480 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 69 65 6c .<span.class="tok-builtin">@fiel
4f4a0 64 3c 2f 73 70 61 6e 3e 28 61 6e 79 2c 20 66 69 65 6c 64 2e 6e 61 6d 65 29 2e 6c 65 6e 3b 0a 20 d</span>(any,.field.name).len;..
4f4c0 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 73 3d 22 .......}.....}.....<span.class="
4f4e0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 57 68 65 6e 20 75 73 69 6e 67 20 60 69 6e 6c 69 tok-comment">//.When.using.`inli
4f500 6e 65 20 66 6f 72 60 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 64 6f 65 73 6e 27 74 20 6b 6e 6f ne.for`.the.compiler.doesn't.kno
4f520 77 20 74 68 61 74 20 65 76 65 72 79 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c w.that.every</span>.....<span.cl
4f540 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 70 6f 73 73 69 62 6c 65 20 63 61 ass="tok-comment">//.possible.ca
4f560 73 65 20 68 61 73 20 62 65 65 6e 20 68 61 6e 64 6c 65 64 20 72 65 71 75 69 72 69 6e 67 20 61 6e se.has.been.handled.requiring.an
4f580 20 65 78 70 6c 69 63 69 74 20 60 75 6e 72 65 61 63 68 61 62 6c 65 60 2e 3c 2f 73 70 61 6e 3e 0a .explicit.`unreachable`.</span>.
4f5a0 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 68 ....<span.class="tok-kw">unreach
4f5c0 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 22 74 6f 6b able</span>;.}..<span.class="tok
4f5e0 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-
4f600 66 6e 22 3e 77 69 74 68 53 77 69 74 63 68 3c 2f 73 70 61 6e 3e 28 61 6e 79 3a 20 41 6e 79 53 6c fn">withSwitch</span>(any:.AnySl
4f620 69 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 75 73 69 7a ice).<span.class="tok-type">usiz
4f640 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 6b 2d e</span>.{.....<span.class="tok-
4f660 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
4f680 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 61 6e 79 29 20 7b 0a 20 20 20 ok-kw">switch</span>.(any).{....
4f6a0 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">/
4f6c0 2f 20 57 69 74 68 20 60 69 6e 6c 69 6e 65 20 65 6c 73 65 60 20 74 68 65 20 66 75 6e 63 74 69 6f /.With.`inline.else`.the.functio
4f6e0 6e 20 69 73 20 65 78 70 6c 69 63 69 74 6c 79 20 67 65 6e 65 72 61 74 65 64 3c 2f 73 70 61 6e 3e n.is.explicitly.generated</span>
4f700 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 6e .........<span.class="tok-commen
4f720 74 22 3e 2f 2f 20 61 73 20 74 68 65 20 64 65 73 69 72 65 64 20 73 77 69 74 63 68 20 61 6e 64 20 t">//.as.the.desired.switch.and.
4f740 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 63 61 6e 20 63 68 65 63 6b 20 74 68 61 74 3c 2f 73 70 61 the.compiler.can.check.that</spa
4f760 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
4f780 65 6e 74 22 3e 2f 2f 20 65 76 65 72 79 20 70 6f 73 73 69 62 6c 65 20 63 61 73 65 20 69 73 20 68 ent">//.every.possible.case.is.h
4f7a0 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
4f7c0 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 70 61 6e 20 ss="tok-kw">inline</span>.<span.
4f7e0 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;
4f800 20 7c 73 6c 69 63 65 7c 20 73 6c 69 63 65 2e 6c 65 6e 2c 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 3c 73 .|slice|.slice.len,.....};.}..<s
4f820 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>.<
4f840 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 6c 69 6e span.class="tok-str">&quot;inlin
4f860 65 20 66 6f 72 20 61 6e 64 20 69 6e 6c 69 6e 65 20 65 6c 73 65 20 73 69 6d 69 6c 61 72 69 74 79 e.for.and.inline.else.similarity
4f880 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=
4f8a0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6e 79 20 3d 20 41 6e 79 53 "tok-kw">const</span>.any.=.AnyS
4f8c0 6c 69 63 65 7b 20 2e 63 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 lice{..c.=.<span.class="tok-str"
4f8e0 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 20 7d 3b 0a 20 20 20 >&quot;hello&quot;</span>.};....
4f900 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>
4f920 20 65 78 70 65 63 74 28 77 69 74 68 46 6f 72 28 61 6e 79 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c .expect(withFor(any).==.<span.cl
4f940 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 20 20 20 20 ass="tok-number">5</span>);.....
4f960 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>.
4f980 65 78 70 65 63 74 28 77 69 74 68 53 77 69 74 63 68 28 61 6e 79 29 20 3d 3d 20 3c 73 70 61 6e 20 expect(withSwitch(any).==.<span.
4f9a0 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 7d 3c class="tok-number">5</span>);.}<
4f9c0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
4f9e0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
4fa00 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
4fa20 69 67 20 74 65 73 74 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 65 6c 73 65 2e 7a 69 67 3c 2f 6b 62 ig.test.test_inline_else.zig</kb
4fa40 64 3e 0a 31 2f 31 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 65 6c 73 65 2e 74 65 73 74 2e 69 6e 6c d>.1/1.test_inline_else.test.inl
4fa60 69 6e 65 20 66 6f 72 20 61 6e 64 20 69 6e 6c 69 6e 65 20 65 6c 73 65 20 73 69 6d 69 6c 61 72 69 ine.for.and.inline.else.similari
4fa80 74 79 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 ty....OK.All.1.tests.passed..</s
4faa0 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 amp></pre></figure>.......<p>...
4fac0 20 20 20 20 57 68 65 6e 20 75 73 69 6e 67 20 61 6e 20 69 6e 6c 69 6e 65 20 70 72 6f 6e 67 20 73 ....When.using.an.inline.prong.s
4fae0 77 69 74 63 68 69 6e 67 20 6f 6e 20 61 6e 20 75 6e 69 6f 6e 20 61 6e 20 61 64 64 69 74 69 6f 6e witching.on.an.union.an.addition
4fb00 61 6c 0a 20 20 20 20 20 20 63 61 70 74 75 72 65 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 al.......capture.can.be.used.to.
4fb20 6f 62 74 61 69 6e 20 74 68 65 20 75 6e 69 6f 6e 27 73 20 65 6e 75 6d 20 74 61 67 20 76 61 6c 75 obtain.the.union's.enum.tag.valu
4fb40 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 e........</p>.......<figure><fig
4fb60 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c caption.class="zig-cap"><cite.cl
4fb80 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 73 77 69 74 63 68 5f 75 6e ass="file">test_inline_switch_un
4fba0 69 6f 6e 5f 74 61 67 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ion_tag.zig</cite></figcaption><
4fbc0 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pre><code><span.class="tok-kw">c
4fbe0 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
4fc00 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
4fc20 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;
4fc40 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
4fc60 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 67 onst</span>.expect.=.std.testing
4fc80 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 63 .expect;..<span.class="tok-kw">c
4fca0 6f 6e 73 74 3c 2f 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 onst</span>.U.=.<span.class="tok
4fcc0 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 74 -kw">union</span>(<span.class="t
4fce0 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 61 3a 20 3c 73 70 ok-kw">enum</span>).{.....a:.<sp
4fd00 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 0a an.class="tok-type">u32</span>,.
4fd20 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 66 33 ....b:.<span.class="tok-type">f3
4fd40 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 6b 2</span>,.};..<span.class="tok-k
4fd60 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
4fd80 22 3e 67 65 74 4e 75 6d 3c 2f 73 70 61 6e 3e 28 75 3a 20 55 29 20 3c 73 70 61 6e 20 63 6c 61 73 ">getNum</span>(u:.U).<span.clas
4fda0 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 20 3c 73 s="tok-type">u32</span>.{.....<s
4fdc0 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>
4fde0 20 28 75 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 .(u).{.........<span.class="tok-
4fe00 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 48 65 72 65 20 60 6e 75 6d 60 20 69 73 20 61 20 72 75 6e 74 comment">//.Here.`num`.is.a.runt
4fe20 69 6d 65 2d 6b 6e 6f 77 6e 20 76 61 6c 75 65 20 74 68 61 74 20 69 73 20 65 69 74 68 65 72 3c 2f ime-known.value.that.is.either</
4fe40 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
4fe60 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 60 75 2e 61 60 20 6f 72 20 60 75 2e 62 60 20 61 6e 64 20 60 74 omment">//.`u.a`.or.`u.b`.and.`t
4fe80 61 67 60 20 69 73 20 60 75 60 27 73 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 74 61 67 20 ag`.is.`u`'s.comptime-known.tag.
4fea0 76 61 6c 75 65 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 value.</span>.........<span.clas
4fec0 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 70 61 6e 20 63 s="tok-kw">inline</span>.<span.c
4fee0 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 20 lass="tok-kw">else</span>.=&gt;.
4ff00 7c 6e 75 6d 2c 20 74 61 67 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 |num,.tag|.{.............<span.c
4ff20 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 61 67 20 3d 3d 20 lass="tok-kw">if</span>.(tag.==.
4ff40 2e 62 29 20 7b 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 .b).{.................<span.clas
4ff60 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
4ff80 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 lass="tok-builtin">@intFromFloat
4ffa0 3c 2f 73 70 61 6e 3e 28 6e 75 6d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 </span>(num);.............}.....
4ffc0 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
4ffe0 75 72 6e 3c 2f 73 70 61 6e 3e 20 6e 75 6d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a urn</span>.num;.........}.....}.
50000 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
50020 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;
50040 74 65 73 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 test&quot;</span>.{.....<span.cl
50060 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 75 20 3d 20 55 7b ass="tok-kw">const</span>.u.=.U{
50080 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 65 72 22 3e 34 ..b.=.<span.class="tok-number">4
500a0 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 22 74 6f 6b 2</span>.};.....<span.class="tok
500c0 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 67 65 74 4e 75 6d 28 75 29 -kw">try</span>.expect(getNum(u)
500e0 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 32 3c .==.<span.class="tok-number">42<
50100 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e /span>);.}</code></pre></figure>
50120 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c <figure><figcaption.class="shell
50140 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 -cap">Shell</figcaption><pre><sa
50160 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 73 mp>$.<kbd>zig.test.test_inline_s
50180 77 69 74 63 68 5f 75 6e 69 6f 6e 5f 74 61 67 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 witch_union_tag.zig</kbd>.1/1.te
501a0 73 74 5f 69 6e 6c 69 6e 65 5f 73 77 69 74 63 68 5f 75 6e 69 6f 6e 5f 74 61 67 2e 74 65 73 74 2e st_inline_switch_union_tag.test.
501c0 74 65 73 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c test....OK.All.1.tests.passed..<
501e0 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 /samp></pre></figure>.......<p>S
50200 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 69 ee.also:</p><ul>.<li><a.href="#i
50220 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 3e 3c 2f 6c nline-while">inline.while</a></l
50240 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 66 6f 72 22 3e 69 6e 6c i>.<li><a.href="#inline-for">inl
50260 69 6e 65 20 66 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 20 ine.for</a></li>.</ul>..........
50280 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 77 68 69 6c 65 22 3e 3c 61 20 68 .............<h2.id="while"><a.h
502a0 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c ref="nav.xhtml#toc-while">while<
502c0 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 77 68 69 6c 65 22 /a>.<a.class="hdr".href="#while"
502e0 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 41 20 >..</a></h2>........<p>.......A.
50300 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 65 61 74 65 64 6c 79 while.loop.is.used.to.repeatedly
50320 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 74 69 6c 0a 20 20 20 .execute.an.expression.until....
50340 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 6f 6e 67 65 72 20 74 ...some.condition.is.no.longer.t
50360 72 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 rue........</p>.......<figure><f
50380 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 igcaption.class="zig-cap"><cite.
503a0 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 77 68 69 6c 65 2e 7a 69 67 3c 2f 63 69 74 class="file">test_while.zig</cit
503c0 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
503e0 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 78 70 65 class="tok-kw">const</span>.expe
50400 63 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 ct.=.<span.class="tok-builtin">@
50420 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
50440 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 74 65 73 74 tr">&quot;std&quot;</span>).test
50460 69 6e 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 ing.expect;..<span.class="tok-kw
50480 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
504a0 74 72 22 3e 26 71 75 6f 74 3b 77 68 69 6c 65 20 62 61 73 69 63 26 71 75 6f 74 3b 3c 2f 73 70 61 tr">&quot;while.basic&quot;</spa
504c0 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
504e0 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
50500 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
50520 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
50540 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 69 20 26 6c lass="tok-kw">while</span>.(i.&l
50560 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 31 30 3c 2f t;.<span.class="tok-number">10</
50580 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 69 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 span>).{.........i.+=.<span.clas
505a0 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 7d 0a 20 s="tok-number">1</span>;.....}..
505c0 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 61 ...<span.class="tok-kw">try</spa
505e0 6e 3e 20 65 78 70 65 63 74 28 69 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n>.expect(i.==.<span.class="tok-
50600 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 70 72 number">10</span>);.}</code></pr
50620 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
50640 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
50660 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
50680 73 74 5f 77 68 69 6c 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 77 68 69 6c st_while.zig</kbd>.1/1.test_whil
506a0 65 2e 74 65 73 74 2e 77 68 69 6c 65 20 62 61 73 69 63 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 e.test.while.basic....OK.All.1.t
506c0 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 ests.passed..</samp></pre></figu
506e0 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 65 20 3c 63 6f 64 65 3e 3c 73 re>.......<p>.......Use.<code><s
50700 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 3c pan.class="tok-kw">break</span><
50720 2f 63 6f 64 65 3e 20 74 6f 20 65 78 69 74 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 20 65 61 72 6c /code>.to.exit.a.while.loop.earl
50740 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 y........</p>.......<figure><fig
50760 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c caption.class="zig-cap"><cite.cl
50780 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 77 68 69 6c 65 5f 62 72 65 61 6b 2e 7a 69 67 3c ass="file">test_while_break.zig<
507a0 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
507c0 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>.
507e0 65 78 70 65 63 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 expect.=.<span.class="tok-builti
50800 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
50820 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>).
50840 74 65 73 74 69 6e 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 testing.expect;..<span.class="to
50860 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
50880 6f 6b 2d 73 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 ok-str">&quot;while.break&quot;<
508a0 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
508c0 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 73 3d 22 74 6f 6b ">var</span>.i:.<span.class="tok
508e0 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 6c 61 73 -type">usize</span>.=.<span.clas
50900 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 70 s="tok-number">0</span>;.....<sp
50920 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 28 an.class="tok-kw">while</span>.(
50940 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
50960 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 6b n>).{.........<span.class="tok-k
50980 77 22 3e 69 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 w">if</span>.(i.==.<span.class="
509a0 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 20 20 20 20 20 20 20 tok-number">10</span>)..........
509c0 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 73 ...<span.class="tok-kw">break</s
509e0 70 61 6e 3e 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 pan>;.........i.+=.<span.class="
50a00 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 20 20 tok-number">1</span>;.....}.....
50a20 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>.
50a40 65 78 70 65 63 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 expect(i.==.<span.class="tok-num
50a60 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 70 72 65 3e 3c ber">10</span>);.}</code></pre><
50a80 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 /figure><figure><figcaption.clas
50aa0 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e s="shell-cap">Shell</figcaption>
50ac0 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f <pre><samp>$.<kbd>zig.test.test_
50ae0 77 68 69 6c 65 5f 62 72 65 61 6b 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 77 while_break.zig</kbd>.1/1.test_w
50b00 68 69 6c 65 5f 62 72 65 61 6b 2e 74 65 73 74 2e 77 68 69 6c 65 20 62 72 65 61 6b 2e 2e 2e 20 4f hile_break.test.while.break....O
50b20 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 K.All.1.tests.passed..</samp></p
50b40 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 65 re></figure>.......<p>.......Use
50b60 20 3c 63 6f 64 65 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 74 .<code><span.class="tok-kw">cont
50b80 69 6e 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 6a 75 6d 70 20 62 61 63 6b 20 inue</span></code>.to.jump.back.
50ba0 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 6f 6f 70 2e 0a 20 20 to.the.beginning.of.the.loop....
50bc0 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ....</p>.......<figure><figcapti
50be0 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
50c00 66 69 6c 65 22 3e 74 65 73 74 5f 77 68 69 6c 65 5f 63 6f 6e 74 69 6e 75 65 2e 7a 69 67 3c 2f 63 file">test_while_continue.zig</c
50c20 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ite></figcaption><pre><code><spa
50c40 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 78 n.class="tok-kw">const</span>.ex
50c60 70 65 63 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 pect.=.<span.class="tok-builtin"
50c80 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
50ca0 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 74 65 -str">&quot;std&quot;</span>).te
50cc0 73 74 69 6e 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 sting.expect;..<span.class="tok-
50ce0 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
50d00 2d 73 74 72 22 3e 26 71 75 6f 74 3b 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 26 71 75 6f 74 3b -str">&quot;while.continue&quot;
50d20 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
50d40 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 73 3d 22 74 6f w">var</span>.i:.<span.class="to
50d60 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 6c 61 k-type">usize</span>.=.<span.cla
50d80 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
50da0 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>.
50dc0 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
50de0 61 6e 3e 29 20 7b 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 an>).{.........i.+=.<span.class=
50e00 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 3c "tok-number">1</span>;.........<
50e20 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 69 span.class="tok-kw">if</span>.(i
50e40 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 31 .&lt;.<span.class="tok-number">1
50e60 30 3c 2f 73 70 61 6e 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 0</span>).............<span.clas
50e80 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>;.....
50ea0 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</
50ec0 73 70 61 6e 3e 3b 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 span>;.....}.....<span.class="to
50ee0 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 69 20 3d 3d 20 3c 73 70 k-kw">try</span>.expect(i.==.<sp
50f00 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 29 an.class="tok-number">10</span>)
50f20 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 ;.}</code></pre></figure><figure
50f40 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 ><figcaption.class="shell-cap">S
50f60 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b hell</figcaption><pre><samp>$.<k
50f80 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 77 68 69 6c 65 5f 63 6f 6e 74 69 6e 75 65 2e bd>zig.test.test_while_continue.
50fa0 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 77 68 69 6c 65 5f 63 6f 6e 74 69 6e 75 zig</kbd>.1/1.test_while_continu
50fc0 65 2e 74 65 73 74 2e 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 e.test.while.continue....OK.All.
50fe0 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 1.tests.passed..</samp></pre></f
51000 69 67 75 72 65 3e 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 igure>.......<p>.......While.loo
51020 70 73 20 73 75 70 70 6f 72 74 20 61 20 63 6f 6e 74 69 6e 75 65 20 65 78 70 72 65 73 73 69 6f 6e ps.support.a.continue.expression
51040 20 77 68 69 63 68 20 69 73 20 65 78 65 63 75 74 65 64 20 77 68 65 6e 20 74 68 65 20 6c 6f 6f 70 .which.is.executed.when.the.loop
51060 0a 20 20 20 20 20 20 69 73 20 63 6f 6e 74 69 6e 75 65 64 2e 20 54 68 65 20 3c 63 6f 64 65 3e 3c .......is.continued..The.<code><
51080 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 70 span.class="tok-kw">continue</sp
510a0 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 73 an></code>.keyword.respects.this
510c0 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 66 .expression........</p>.......<f
510e0 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
51100 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 77 68 69 6c 65 5f "><cite.class="file">test_while_
51120 63 6f 6e 74 69 6e 75 65 5f 65 78 70 72 65 73 73 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f continue_expression.zig</cite></
51140 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 figcaption><pre><code><span.clas
51160 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 70 65 63 74 20 3d s="tok-kw">const</span>.expect.=
51180 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
511a0 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">
511c0 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e &quot;std&quot;</span>).testing.
511e0 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 74 65 expect;..<span.class="tok-kw">te
51200 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">
51220 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 70 72 65 73 &quot;while.loop.continue.expres
51240 73 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 63 6c sion&quot;</span>.{.....<span.cl
51260 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
51280 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>.=
512a0 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
512c0 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 77 68 69 n>;.....<span.class="tok-kw">whi
512e0 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 61 73 73 3d 22 74 le</span>.(i.&lt;.<span.class="t
51300 6f 6b 2d 6e 75 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 ok-number">10</span>).:.(i.+=.<s
51320 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>)
51340 20 7b 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 74 72 79 .{}.....<span.class="tok-kw">try
51360 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 69 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d </span>.expect(i.==.<span.class=
51380 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 7d 0a 0a 3c 73 70 61 "tok-number">10</span>);.}..<spa
513a0 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
513c0 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 68 69 6c 65 20 6c an.class="tok-str">&quot;while.l
513e0 6f 6f 70 20 63 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 oop.continue.expression,.more.co
51400 6d 70 6c 69 63 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 mplicated&quot;</span>.{.....<sp
51420 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 20 an.class="tok-kw">var</span>.i:.
51440 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
51460 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 31 an>.=.<span.class="tok-number">1
51480 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
514a0 22 3e 76 61 72 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 ">var</span>.j:.<span.class="tok
514c0 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 6c 61 73 -type">usize</span>.=.<span.clas
514e0 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 3c 73 70 s="tok-number">1</span>;.....<sp
51500 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 28 an.class="tok-kw">while</span>.(
51520 69 20 2a 20 6a 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 i.*.j.&lt;.<span.class="tok-numb
51540 65 72 22 3e 32 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 er">2000</span>).:.({.i.*=.<span
51560 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 6a 20 .class="tok-number">2</span>;.j.
51580 2a 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
515a0 70 61 6e 3e 3b 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 pan>;.}).{.........<span.class="
515c0 74 6f 6b 2d 6b 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 tok-kw">const</span>.my_ij.=.i.*
515e0 20 6a 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 .j;.........<span.class="tok-kw"
51600 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 79 5f 69 6a 20 26 6c 74 3b 20 3c 73 >try</span>.expect(my_ij.&lt;.<s
51620 70 61 6e 20 63 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 pan.class="tok-number">2000</spa
51640 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 2f 66 69 67 75 72 n>);.....}.}</code></pre></figur
51660 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
51680 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
516a0 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 77 68 69 6c 65 5f samp>$.<kbd>zig.test.test_while_
516c0 63 6f 6e 74 69 6e 75 65 5f 65 78 70 72 65 73 73 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f continue_expression.zig</kbd>.1/
516e0 32 20 74 65 73 74 5f 77 68 69 6c 65 5f 63 6f 6e 74 69 6e 75 65 5f 65 78 70 72 65 73 73 69 6f 6e 2.test_while_continue_expression
51700 2e 74 65 73 74 2e 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 .test.while.loop.continue.expres
51720 73 69 6f 6e 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 77 68 69 6c 65 5f 63 6f 6e 74 69 6e sion....OK.2/2.test_while_contin
51740 75 65 5f 65 78 70 72 65 73 73 69 6f 6e 2e 74 65 73 74 2e 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f ue_expression.test.while.loop.co
51760 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 61 ntinue.expression,.more.complica
51780 74 65 64 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f ted....OK.All.2.tests.passed..</
517a0 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 samp></pre></figure>.......<p>..
517c0 20 20 20 20 20 57 68 69 6c 65 20 6c 6f 6f 70 73 20 61 72 65 20 65 78 70 72 65 73 73 69 6f 6e 73 .....While.loops.are.expressions
517e0 2e 20 54 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 69 ..The.result.of.the.expression.i
51800 73 20 74 68 65 0a 20 20 20 20 20 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 3c 63 6f 64 65 3e s.the.......result.of.the.<code>
51820 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>
51840 3c 2f 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 </code>.clause.of.a.while.loop,.
51860 77 68 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 which.is.executed.when.......the
51880 20 63 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 .condition.of.the.while.loop.is.
518a0 74 65 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 tested.as.false........</p>.....
518c0 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ..<p>.......<code><span.class="t
518e0 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 2c 20 6c 69 6b 65 ok-kw">break</span></code>,.like
51900 20 3c 63 6f 64 65 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 .<code><span.class="tok-kw">retu
51920 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 63 63 65 70 74 73 20 61 20 76 61 6c 75 rn</span></code>,.accepts.a.valu
51940 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 65 74 65 72 2e 20 54 68 69 73 20 e...............parameter..This.
51960 69 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e is.the.result.of.the.<code><span
51980 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
519a0 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 20 20 de>.expression..................
519c0 20 20 57 68 65 6e 20 79 6f 75 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..When.you.<code><span.class="to
519e0 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 66 72 6f 6d 20 61 k-kw">break</span></code>.from.a
51a00 20 77 68 69 6c 65 20 6c 6f 6f 70 2c 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 .while.loop,.the.<code><span.cla
51a20 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 62 ss="tok-kw">else</span></code>.b
51a40 72 61 6e 63 68 20 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 ranch.is.not.......evaluated....
51a60 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ....</p>.......<figure><figcapti
51a80 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
51aa0 66 69 6c 65 22 3e 74 65 73 74 5f 77 68 69 6c 65 5f 65 6c 73 65 2e 7a 69 67 3c 2f 63 69 74 65 3e file">test_while_else.zig</cite>
51ac0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
51ae0 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 70 65 63 74 ass="tok-kw">const</span>.expect
51b00 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
51b20 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
51b40 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 74 65 73 74 69 6e ">&quot;std&quot;</span>).testin
51b60 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">
51b80 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
51ba0 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 6e 3e 20 ">&quot;while.else&quot;</span>.
51bc0 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 72 79 3c 2f {.....<span.class="tok-kw">try</
51be0 73 70 61 6e 3e 20 65 78 70 65 63 74 28 72 61 6e 67 65 48 61 73 4e 75 6d 62 65 72 28 3c 73 70 61 span>.expect(rangeHasNumber(<spa
51c00 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 20 3c n.class="tok-number">0</span>,.<
51c20 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
51c40 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 2f 73 >,.<span.class="tok-number">5</s
51c60 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 22 pan>));.....<span.class="tok-kw"
51c80 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 21 72 61 6e 67 65 48 61 73 4e 75 6d 62 >try</span>.expect(!rangeHasNumb
51ca0 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 3c 2f 73 er(<span.class="tok-number">0</s
51cc0 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 31 pan>,.<span.class="tok-number">1
51ce0 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 6d 62 65 0</span>,.<span.class="tok-numbe
51d00 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 73 3d 22 r">15</span>));.}..<span.class="
51d20 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
51d40 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 62 65 67 ok-fn">rangeHasNumber</span>(beg
51d60 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 69 7a 65 in:.<span.class="tok-type">usize
51d80 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 6b 2d 74 </span>,.end:.<span.class="tok-t
51da0 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 70 61 6e ype">usize</span>,.number:.<span
51dc0 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 20 .class="tok-type">usize</span>).
51de0 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
51e00 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
51e20 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 20 63 6c r</span>.i.=.begin;.....<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 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 69 20 .class="tok-kw">while</span>.(i.
51e80 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 3d 22 74 &lt;.end).:.(i.+=.<span.class="t
51ea0 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 3c ok-number">1</span>).{.........<
51ec0 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 69 span.class="tok-kw">if</span>.(i
51ee0 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 61 6e 20 .==.number).{.............<span.
51f00 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 73 70 61 class="tok-kw">break</span>.<spa
51f20 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 3b 0a n.class="tok-null">true</span>;.
51f40 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 74 6f 6b ........}.....}.<span.class="tok
51f60 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 22 74 6f -kw">else</span>.<span.class="to
51f80 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 3e 3c 2f k-null">false</span>;.}</code></
51fa0 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e pre></figure><figure><figcaption
51fc0 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 .class="shell-cap">Shell</figcap
51fe0 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 tion><pre><samp>$.<kbd>zig.test.
52000 74 65 73 74 5f 77 68 69 6c 65 5f 65 6c 73 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 test_while_else.zig</kbd>.1/1.te
52020 73 74 5f 77 68 69 6c 65 5f 65 6c 73 65 2e 74 65 73 74 2e 77 68 69 6c 65 20 65 6c 73 65 2e 2e 2e st_while_else.test.while.else...
52040 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c .OK.All.1.tests.passed..</samp><
52060 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4c 61 62 /pre></figure>.......<h3.id="Lab
52080 65 6c 65 64 2d 77 68 69 6c 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 eled-while"><a.href="nav.xhtml#t
520a0 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 6c 65 3c oc-Labeled-while">Labeled.while<
520c0 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 65 6c 65 /a>.<a.class="hdr".href="#Labele
520e0 64 2d 77 68 69 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 57 d-while">..</a></h3>........<p>W
52100 68 65 6e 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 hen.a.<code><span.class="tok-kw"
52120 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6c 6f 6f 70 20 69 73 20 6c 61 62 >while</span></code>.loop.is.lab
52140 65 6c 65 64 2c 20 69 74 20 63 61 6e 20 62 65 20 72 65 66 65 72 65 6e 63 65 64 20 66 72 6f 6d 20 eled,.it.can.be.referenced.from.
52160 61 20 3c 63 6f 64 65 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 a.<code><span.class="tok-kw">bre
52180 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 6f ak</span></code>...............o
521a0 72 20 3c 63 6f 64 65 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 r.<code><span.class="tok-kw">con
521c0 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 77 69 74 68 69 6e 20 tinue</span></code>.from.within.
521e0 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 3c 66 69 67 75 72 65 a.nested.loop:</p>.......<figure
52200 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 ><figcaption.class="zig-cap"><ci
52220 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 77 68 69 6c 65 5f 6e 65 73 74 65 te.class="file">test_while_neste
52240 64 5f 62 72 65 61 6b 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c d_break.zig</cite></figcaption><
52260 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 pre><code><span.class="tok-kw">t
52280 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"
522a0 3e 26 71 75 6f 74 3b 6e 65 73 74 65 64 20 62 72 65 61 6b 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e >&quot;nested.break&quot;</span>
522c0 20 7b 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 6b .{.....outer:.<span.class="tok-k
522e0 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
52300 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 20 20 20 3c k-null">true</span>).{.........<
52320 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 61 6e 3e span.class="tok-kw">while</span>
52340 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 3c 2f 73 .(<span.class="tok-null">true</s
52360 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 73 3d pan>).{.............<span.class=
52380 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 0a 20 20 "tok-kw">break</span>.:outer;...
523a0 20 20 20 20 20 20 7d 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.class="to
523c0 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
523e0 6f 6b 2d 73 74 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 ok-str">&quot;nested.continue&qu
52400 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
52420 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 73 3d k-kw">var</span>.i:.<span.class=
52440 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 20 "tok-type">usize</span>.=.<span.
52460 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 20 class="tok-number">0</span>;....
52480 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 6b 77 22 3e 77 68 69 .outer:.<span.class="tok-kw">whi
524a0 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 61 73 73 3d 22 74 le</span>.(i.&lt;.<span.class="t
524c0 6f 6b 2d 6e 75 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 ok-number">10</span>).:.(i.+=.<s
524e0 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>)
52500 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 3e .{.........<span.class="tok-kw">
52520 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 6b 2d 6e while</span>.(<span.class="tok-n
52540 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 20 20 20 20 20 20 20 ull">true</span>).{.............
52560 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
52580 70 61 6e 3e 20 3a 6f 75 74 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 3c 2f pan>.:outer;.........}.....}.}</
525a0 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
525c0 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
525e0 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
52600 67 20 74 65 73 74 20 74 65 73 74 5f 77 68 69 6c 65 5f 6e 65 73 74 65 64 5f 62 72 65 61 6b 2e 7a g.test.test_while_nested_break.z
52620 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 5f 77 68 69 6c 65 5f 6e 65 73 74 65 64 5f 62 ig</kbd>.1/2.test_while_nested_b
52640 72 65 61 6b 2e 74 65 73 74 2e 6e 65 73 74 65 64 20 62 72 65 61 6b 2e 2e 2e 20 4f 4b 0a 32 2f 32 reak.test.nested.break....OK.2/2
52660 20 74 65 73 74 5f 77 68 69 6c 65 5f 6e 65 73 74 65 64 5f 62 72 65 61 6b 2e 74 65 73 74 2e 6e 65 .test_while_nested_break.test.ne
52680 73 74 65 64 20 63 6f 6e 74 69 6e 75 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 sted.continue....OK.All.2.tests.
526a0 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 passed..</samp></pre></figure>..
526c0 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 77 68 69 6c 65 2d 77 69 74 68 2d 4f ............<h3.id="while-with-O
526e0 70 74 69 6f 6e 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 ptionals"><a.href="nav.xhtml#toc
52700 2d 77 68 69 6c 65 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 77 68 69 6c 65 20 77 69 74 -while-with-Optionals">while.wit
52720 68 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 h.Optionals</a>.<a.class="hdr".h
52740 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 22 3e c2 a7 3c 2f ref="#while-with-Optionals">..</
52760 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 4a 75 73 74 20 6c 69 a></h3>........<p>.......Just.li
52780 6b 65 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 ke.<a.href="#if">if</a>.expressi
527a0 6f 6e 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 6f 70 74 ons,.while.loops.can.take.an.opt
527c0 69 6f 6e 61 6c 20 61 73 20 74 68 65 0a 20 20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 ional.as.the.......condition.and
527e0 20 63 61 70 74 75 72 65 20 74 68 65 20 70 61 79 6c 6f 61 64 2e 20 57 68 65 6e 20 3c 61 20 68 72 .capture.the.payload..When.<a.hr
52800 65 66 3d 22 23 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 ef="#null">null</a>.is.encounter
52820 65 64 20 74 68 65 20 6c 6f 6f 70 0a 20 20 20 20 20 20 65 78 69 74 73 2e 0a 20 20 20 20 20 20 3c ed.the.loop.......exits........<
52840 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 65 20 3c 63 6f /p>.......<p>.......When.the.<co
52860 64 65 3e 7c 78 7c 3c 2f 63 6f 64 65 3e 20 73 79 6e 74 61 78 20 69 73 20 70 72 65 73 65 6e 74 20 de>|x|</code>.syntax.is.present.
52880 6f 6e 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e on.a.<code><span.class="tok-kw">
528a0 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 6e 2c 0a while</span></code>.expression,.
528c0 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 74 20 68 ......the.while.condition.must.h
528e0 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 65 22 3e ave.an.<a.href="#Optional-Type">
52900 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 0a 20 20 Optional.Type</a>........</p>...
52920 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c ....<p>.......The.<code><span.cl
52940 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>.
52960 62 72 61 6e 63 68 20 69 73 20 61 6c 6c 6f 77 65 64 20 6f 6e 20 6f 70 74 69 6f 6e 61 6c 20 69 74 branch.is.allowed.on.optional.it
52980 65 72 61 74 69 6f 6e 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 69 74 20 77 69 6c 6c 0a 20 eration..In.this.case,.it.will..
529a0 20 20 20 20 20 62 65 20 65 78 65 63 75 74 65 64 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 6e 75 .....be.executed.on.the.first.nu
529c0 6c 6c 20 76 61 6c 75 65 20 65 6e 63 6f 75 6e 74 65 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e ll.value.encountered........</p>
529e0 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 .......<figure><figcaption.class
52a00 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ="zig-cap"><cite.class="file">te
52a20 73 74 5f 77 68 69 6c 65 5f 6e 75 6c 6c 5f 63 61 70 74 75 72 65 2e 7a 69 67 3c 2f 63 69 74 65 3e st_while_null_capture.zig</cite>
52a40 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
52a60 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 70 65 63 74 ass="tok-kw">const</span>.expect
52a80 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
52aa0 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
52ac0 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 74 65 73 74 69 6e ">&quot;std&quot;</span>).testin
52ae0 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">
52b00 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
52b20 22 3e 26 71 75 6f 74 3b 77 68 69 6c 65 20 6e 75 6c 6c 20 63 61 70 74 75 72 65 26 71 75 6f 74 3b ">&quot;while.null.capture&quot;
52b40 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
52b60 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 73 73 3d w">var</span>.sum1:.<span.class=
52b80 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
52ba0 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 6e ass="tok-number">0</span>;.....n
52bc0 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 6b 2d 6e umbers_left.=.<span.class="tok-n
52be0 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 73 73 umber">3</span>;.....<span.class
52c00 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 75 61 6c ="tok-kw">while</span>.(eventual
52c20 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 65 28 29 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 lyNullSequence()).|value|.{.....
52c40 20 20 20 20 73 75 6d 31 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 ....sum1.+=.value;.....}.....<sp
52c60 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 65 78 70 an.class="tok-kw">try</span>.exp
52c80 65 63 74 28 73 75 6d 31 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d ect(sum1.==.<span.class="tok-num
52ca0 62 65 72 22 3e 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 73 73 ber">3</span>);......<span.class
52cc0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6e 75 6c 6c 20 63 61 70 74 75 72 65 20 77 ="tok-comment">//.null.capture.w
52ce0 69 74 68 20 61 6e 20 65 6c 73 65 20 62 6c 6f 63 6b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 ith.an.else.block</span>.....<sp
52d00 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 6d an.class="tok-kw">var</span>.sum
52d20 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 75 33 32 3c 2f 73 2:.<span.class="tok-type">u32</s
52d40 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">
52d60 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 70 0</span>;.....numbers_left.=.<sp
52d80 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 0a an.class="tok-number">3</span>;.
52da0 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 2f ....<span.class="tok-kw">while</
52dc0 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 29 span>.(eventuallyNullSequence())
52de0 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 32 20 2b 3d 20 76 61 6c 75 65 .|value|.{.........sum2.+=.value
52e00 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 6c 73 ;.....}.<span.class="tok-kw">els
52e20 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 22 e</span>.{.........<span.class="
52e40 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 75 6d 32 20 3d tok-kw">try</span>.expect(sum2.=
52e60 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 70 =.<span.class="tok-number">3</sp
52e80 61 6e 3e 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 an>);.....}......<span.class="to
52ea0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6e 75 6c 6c 20 63 61 70 74 75 72 65 20 77 69 74 68 20 k-comment">//.null.capture.with.
52ec0 61 20 63 6f 6e 74 69 6e 75 65 20 65 78 70 72 65 73 73 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 a.continue.expression</span>....
52ee0 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>
52f00 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 33 32 3c 2f .i:.<span.class="tok-type">u32</
52f20 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"
52f40 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 6f 6b 2d >0</span>;.....<span.class="tok-
52f60 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 75 6d 33 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 kw">var</span>.sum3:.<span.class
52f80 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 20 63 ="tok-type">u32</span>.=.<span.c
52fa0 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>;.....
52fc0 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 6b 2d numbers_left.=.<span.class="tok-
52fe0 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 73 number">3</span>;.....<span.clas
53000 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 75 61 s="tok-kw">while</span>.(eventua
53020 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 65 28 29 29 20 7c 76 61 6c 75 65 7c 20 3a 20 28 69 20 llyNullSequence()).|value|.:.(i.
53040 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
53060 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 33 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 pan>).{.........sum3.+=.value;..
53080 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 74 72 ...}.....<span.class="tok-kw">tr
530a0 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 69 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 y</span>.expect(i.==.<span.class
530c0 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 0a 3c 73 70 61 ="tok-number">3</span>);.}..<spa
530e0 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 6e 75 6d 62 n.class="tok-kw">var</span>.numb
53100 65 72 73 5f 6c 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 ers_left:.<span.class="tok-type"
53120 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 6e >u32</span>.=.<span.class="tok-n
53140 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 61 ull">undefined</span>;.<span.cla
53160 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
53180 73 3d 22 74 6f 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 s="tok-fn">eventuallyNullSequenc
531a0 65 3c 2f 73 70 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 e</span>().?<span.class="tok-typ
531c0 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 3d e">u32</span>.{.....<span.class=
531e0 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
53200 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 6c ss="tok-kw">if</span>.(numbers_l
53220 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 3e eft.==.<span.class="tok-number">
53240 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 6e 75 6c 6c 22 0</span>).<span.class="tok-null"
53260 3e 6e 75 6c 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 >null</span>.<span.class="tok-kw
53280 22 3e 65 6c 73 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 ">else</span>.blk:.{.........num
532a0 62 65 72 73 5f 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 bers_left.-=.<span.class="tok-nu
532c0 6d 62 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 mber">1</span>;.........<span.cl
532e0 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 62 6c 6b 20 6e ass="tok-kw">break</span>.:blk.n
53300 75 6d 62 65 72 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 umbers_left;.....};.}</code></pr
53320 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
53340 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
53360 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
53380 73 74 5f 77 68 69 6c 65 5f 6e 75 6c 6c 5f 63 61 70 74 75 72 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a st_while_null_capture.zig</kbd>.
533a0 31 2f 31 20 74 65 73 74 5f 77 68 69 6c 65 5f 6e 75 6c 6c 5f 63 61 70 74 75 72 65 2e 74 65 73 74 1/1.test_while_null_capture.test
533c0 2e 77 68 69 6c 65 20 6e 75 6c 6c 20 63 61 70 74 75 72 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 .while.null.capture....OK.All.1.
533e0 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 tests.passed..</samp></pre></fig
53400 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 77 68 69 6c 65 ure>...............<h3.id="while
53420 2d 77 69 74 68 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 -with-Error-Unions"><a.href="nav
53440 2e 78 68 74 6d 6c 23 74 6f 63 2d 77 68 69 6c 65 2d 77 69 74 68 2d 45 72 72 6f 72 2d 55 6e 69 6f .xhtml#toc-while-with-Error-Unio
53460 6e 73 22 3e 77 68 69 6c 65 20 77 69 74 68 20 45 72 72 6f 72 20 55 6e 69 6f 6e 73 3c 2f 61 3e 20 ns">while.with.Error.Unions</a>.
53480 3c 61 20 63 6c 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 <a.class="hdr".href="#while-with
534a0 2d 45 72 72 6f 72 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 -Error-Unions">..</a></h3>......
534c0 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 22 23 ..<p>.......Just.like.<a.href="#
534e0 69 66 22 3e 69 66 3c 2f 61 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 77 68 69 6c 65 20 6c 6f if">if</a>.expressions,.while.lo
53500 6f 70 73 20 63 61 6e 20 74 61 6b 65 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 61 73 0a 20 ops.can.take.an.error.union.as..
53520 20 20 20 20 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 20 63 61 70 74 75 72 65 20 74 .....the.condition.and.capture.t
53540 68 65 20 70 61 79 6c 6f 61 64 20 6f 72 20 74 68 65 20 65 72 72 6f 72 20 63 6f 64 65 2e 20 57 68 he.payload.or.the.error.code..Wh
53560 65 6e 20 74 68 65 0a 20 20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 en.the.......condition.results.i
53580 6e 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 74 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 n.an.error.code.the.else.branch.
535a0 69 73 20 65 76 61 6c 75 61 74 65 64 20 61 6e 64 0a 20 20 20 20 20 20 74 68 65 20 6c 6f 6f 70 20 is.evaluated.and.......the.loop.
535c0 69 73 20 66 69 6e 69 73 68 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 is.finished........</p>.......<p
535e0 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 >.......When.the.<code><span.cla
53600 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 78 7c 3c 2f 63 6f 64 ss="tok-kw">else</span>.|x|</cod
53620 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 65 3e e>.syntax.is.present.on.a.<code>
53640 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 61 6e <span.class="tok-kw">while</span
53660 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 65 20 77 ></code>.expression,.......the.w
53680 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 61 20 68 hile.condition.must.have.an.<a.h
536a0 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 20 55 6e ref="#Error-Union-Type">Error.Un
536c0 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 20 20 3c ion.Type</a>........</p>.......<
536e0 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 figure><figcaption.class="zig-ca
53700 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 77 68 69 6c 65 p"><cite.class="file">test_while
53720 5f 65 72 72 6f 72 5f 63 61 70 74 75 72 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 _error_capture.zig</cite></figca
53740 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
53760 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 k-kw">const</span>.expect.=.<spa
53780 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
537a0 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
537c0 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 ;std&quot;</span>).testing.expec
537e0 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
53800 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
53820 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 6f 74 3b ;while.error.union.capture&quot;
53840 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
53860 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 73 73 3d w">var</span>.sum1:.<span.class=
53880 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
538a0 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 6e ass="tok-number">0</span>;.....n
538c0 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 6b 2d 6e umbers_left.=.<span.class="tok-n
538e0 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 73 73 umber">3</span>;.....<span.class
53900 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 75 61 6c ="tok-kw">while</span>.(eventual
53920 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 20 20 20 lyErrorSequence()).|value|.{....
53940 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 61 6e 20 .....sum1.+=.value;.....}.<span.
53960 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 72 72 7c class="tok-kw">else</span>.|err|
53980 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 3e .{.........<span.class="tok-kw">
539a0 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 65 72 72 20 3d 3d 20 3c 73 70 61 6e 20 63 try</span>.expect(err.==.<span.c
539c0 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 61 63 68 lass="tok-kw">error</span>.Reach
539e0 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 3d 22 74 edZero);.....}.}..<span.class="t
53a00 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 74 3a 20 ok-kw">var</span>.numbers_left:.
53a20 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
53a40 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
53a60 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 6b 2d 6b ined</span>;..<span.class="tok-k
53a80 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
53aa0 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 61 6e 3e ">eventuallyErrorSequence</span>
53ac0 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 65 72 72 ().<span.class="tok-type">anyerr
53ae0 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 22 or</span>!<span.class="tok-type"
53b00 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 3d 22 74 >u32</span>.{.....<span.class="t
53b20 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 73 ok-kw">return</span>.<span.class
53b40 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 6c 65 66 ="tok-kw">if</span>.(numbers_lef
53b60 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 30 3c t.==.<span.class="tok-number">0<
53b80 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 72 72 /span>).<span.class="tok-kw">err
53ba0 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 6c 61 73 or</span>.ReachedZero.<span.clas
53bc0 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 0a 20 20 s="tok-kw">else</span>.blk:.{...
53be0 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 6c 61 73 ......numbers_left.-=.<span.clas
53c00 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 20 20 20 s="tok-number">1</span>;........
53c20 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 73 70 61 .<span.class="tok-kw">break</spa
53c40 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 7d 3c 2f n>.:blk.numbers_left;.....};.}</
53c60 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
53c80 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
53ca0 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
53cc0 67 20 74 65 73 74 20 74 65 73 74 5f 77 68 69 6c 65 5f 65 72 72 6f 72 5f 63 61 70 74 75 72 65 2e g.test.test_while_error_capture.
53ce0 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 77 68 69 6c 65 5f 65 72 72 6f 72 5f 63 zig</kbd>.1/1.test_while_error_c
53d00 61 70 74 75 72 65 2e 74 65 73 74 2e 77 68 69 6c 65 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 63 61 apture.test.while.error.union.ca
53d20 70 74 75 72 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a pture....OK.All.1.tests.passed..
53d40 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 </samp></pre></figure>..........
53d60 20 20 20 20 20 3c 68 33 20 69 64 3d 22 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 3e 3c 61 20 68 72 .....<h3.id="inline-while"><a.hr
53d80 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 3e ef="nav.xhtml#toc-inline-while">
53da0 69 6e 6c 69 6e 65 20 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 inline.while</a>.<a.class="hdr".
53dc0 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 77 68 69 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e href="#inline-while">..</a></h3>
53de0 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 70 73 20 63 61 ........<p>.......While.loops.ca
53e00 6e 20 62 65 20 69 6e 6c 69 6e 65 64 2e 20 54 68 69 73 20 63 61 75 73 65 73 20 74 68 65 20 6c 6f n.be.inlined..This.causes.the.lo
53e20 6f 70 20 74 6f 20 62 65 20 75 6e 72 6f 6c 6c 65 64 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 61 op.to.be.unrolled,.which.......a
53e40 6c 6c 6f 77 73 20 74 68 65 20 63 6f 64 65 20 74 6f 20 64 6f 20 73 6f 6d 65 20 74 68 69 6e 67 73 llows.the.code.to.do.some.things
53e60 20 77 68 69 63 68 20 6f 6e 6c 79 20 77 6f 72 6b 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 .which.only.work.at.compile.time
53e80 2c 0a 20 20 20 20 20 20 73 75 63 68 20 61 73 20 75 73 65 20 74 79 70 65 73 20 61 73 20 66 69 72 ,.......such.as.use.types.as.fir
53ea0 73 74 20 63 6c 61 73 73 20 76 61 6c 75 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 st.class.values........</p>.....
53ec0 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
53ee0 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 6e -cap"><cite.class="file">test_in
53f00 6c 69 6e 65 5f 77 68 69 6c 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f line_while.zig</cite></figcaptio
53f20 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
53f40 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c ">const</span>.expect.=.<span.cl
53f60 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>
53f80 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
53fa0 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a &quot;</span>).testing.expect;..
53fc0 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>
53fe0 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 6c .<span.class="tok-str">&quot;inl
54000 69 6e 65 20 77 68 69 6c 65 20 6c 6f 6f 70 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 ine.while.loop&quot;</span>.{...
54020 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<
54040 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 76 61 72 3c /span>.<span.class="tok-kw">var<
54060 2f 73 70 61 6e 3e 20 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 /span>.i.=.<span.class="tok-numb
54080 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
540a0 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 61 6e 20 63 6c 61 ok-kw">var</span>.sum:.<span.cla
540c0 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 20 3c 73 70 ss="tok-type">usize</span>.=.<sp
540e0 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 3b 0a an.class="tok-number">0</span>;.
54100 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 6e 6c 69 6e 65 3c ....<span.class="tok-kw">inline<
54120 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 77 68 69 6c /span>.<span.class="tok-kw">whil
54140 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
54160 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 20 3a 20 28 69 20 2b 3d 20 3c 73 70 61 k-number">3</span>).:.(i.+=.<spa
54180 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 20 7b n.class="tok-number">1</span>).{
541a0 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
541c0 6e 73 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 nst</span>.T.=.<span.class="tok-
541e0 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 69 29 20 7b 0a 20 20 20 20 20 20 20 20 kw">switch</span>.(i).{.........
54200 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 30 3c 2f ....<span.class="tok-number">0</
54220 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 74 79 70 span>.=&gt;.<span.class="tok-typ
54240 65 22 3e 66 33 32 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 e">f32</span>,.............<span
54260 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 3d 26 67 .class="tok-number">1</span>.=&g
54280 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 69 38 3c 2f 73 70 t;.<span.class="tok-type">i8</sp
542a0 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 6f an>,.............<span.class="to
542c0 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 61 6e 20 63 k-number">2</span>.=&gt;.<span.c
542e0 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>,....
54300 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 65 6c .........<span.class="tok-kw">el
54320 73 65 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 se</span>.=&gt;.<span.class="tok
54340 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 20 20 20 20 20 -kw">unreachable</span>,........
54360 20 7d 3b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 .};.........sum.+=.typeNameLengt
54380 68 28 54 29 3b 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 h(T);.....}.....<span.class="tok
543a0 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 75 6d 20 3d 3d 20 3c 73 -kw">try</span>.expect(sum.==.<s
543c0 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 29 pan.class="tok-number">9</span>)
543e0 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
54400 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 79 70 65 4e 61 6d an>.<span.class="tok-fn">typeNam
54420 65 4c 65 6e 67 74 68 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 eLength</span>(<span.class="tok-
54440 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
54460 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
54480 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 7b .class="tok-type">usize</span>.{
544a0 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
544c0 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 62 75 69 6c 74 69 6e </span>.<span.class="tok-builtin
544e0 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 54 29 2e 6c 65 6e 3b 0a 7d 3c 2f 63 6f ">@typeName</span>(T).len;.}</co
54500 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 de></pre></figure><figure><figca
54520 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 ption.class="shell-cap">Shell</f
54540 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 igcaption><pre><samp>$.<kbd>zig.
54560 74 65 73 74 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 77 68 69 6c 65 2e 7a 69 67 3c 2f 6b 62 64 3e test.test_inline_while.zig</kbd>
54580 0a 31 2f 31 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 77 68 69 6c 65 2e 74 65 73 74 2e 69 6e 6c 69 .1/1.test_inline_while.test.inli
545a0 6e 65 20 77 68 69 6c 65 20 6c 6f 6f 70 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 ne.while.loop....OK.All.1.tests.
545c0 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 passed..</samp></pre></figure>..
545e0 20 20 20 20 20 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 .....<p>.......It.is.recommended
54600 20 74 6f 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b .to.use.<code><span.class="tok-k
54620 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 6f 6f 70 73 20 6f 6e w">inline</span></code>.loops.on
54640 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 6e 73 3a 0a 20 20 20 ly.for.one.of.these.reasons:....
54660 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 59 ...</p>.......<ul>.........<li>Y
54680 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 74 65 20 61 74 20 3c ou.need.the.loop.to.execute.at.<
546a0 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 61 3e 20 a.href="#comptime">comptime</a>.
546c0 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 2e 3c 2f 6c 69 3e 0a for.the.semantics.to.work.</li>.
546e0 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 68 61 76 65 20 61 20 ........<li>.........You.have.a.
54700 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 6f 72 63 69 62 6c 79 benchmark.to.prove.that.forcibly
54720 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 69 73 20 77 61 79 20 .unrolling.the.loop.in.this.way.
54740 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 20 20 20 20 20 3c 2f is.measurably.faster..........</
54760 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 70 3e li>.......</ul>..............<p>
54780 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="#
547a0 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 65 66 3d 22 23 4f 70 if">if</a></li>.<li><a.href="#Op
547c0 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 69 3e 0a 3c 6c 69 3e tionals">Optionals</a></li>.<li>
547e0 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 2f 61 3e 3c 2f 6c 69 <a.href="#Errors">Errors</a></li
54800 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 3e 63 6f 6d 70 74 69 >.<li><a.href="#comptime">compti
54820 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 23 75 6e 72 65 61 63 me</a></li>.<li><a.href="#unreac
54840 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 69 3e 0a 3c 2f 75 6c hable">unreachable</a></li>.</ul
54860 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 66 6f 72 22 3e 3c 61 20 >...............<h2.id="for"><a.
54880 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e href="nav.xhtml#toc-for">for</a>
548a0 20 3c 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 .<a.class="hdr".href="#for">..</
548c0 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 a></h2>........<figure><figcapti
548e0 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
54900 66 69 6c 65 22 3e 74 65 73 74 5f 66 6f 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 file">test_for.zig</cite></figca
54920 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
54940 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 k-kw">const</span>.expect.=.<spa
54960 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
54980 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
549a0 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 ;std&quot;</span>).testing.expec
549c0 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
549e0 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
54a00 3b 66 6f 72 20 62 61 73 69 63 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c ;for.basics&quot;</span>.{.....<
54a20 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>
54a40 20 69 74 65 6d 73 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 .items.=.[_]<span.class="tok-typ
54a60 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 6b e">i32</span>.{.<span.class="tok
54a80 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 22 -number">4</span>,.<span.class="
54aa0 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
54ac0 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 73 70 61 6e 20 63 s="tok-number">3</span>,.<span.c
54ae0 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 70 61 lass="tok-number">4</span>,.<spa
54b00 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 20 7d 3b n.class="tok-number">0</span>.};
54b20 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
54b40 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"
54b60 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
54b80 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 umber">0</span>;......<span.clas
54ba0 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 46 6f 72 20 6c 6f 6f 70 73 20 69 74 65 s="tok-comment">//.For.loops.ite
54bc0 72 61 74 65 20 6f 76 65 72 20 73 6c 69 63 65 73 20 61 6e 64 20 61 72 72 61 79 73 2e 3c 2f 73 70 rate.over.slices.and.arrays.</sp
54be0 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
54c00 3c 2f 73 70 61 6e 3e 20 28 69 74 65 6d 73 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 </span>.(items).|value|.{.......
54c20 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 42 ..<span.class="tok-comment">//.B
54c40 72 65 61 6b 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 2e reak.and.continue.are.supported.
54c60 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
54c80 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 63 -kw">if</span>.(value.==.<span.c
54ca0 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 7b 0a 20 20 lass="tok-number">0</span>).{...
54cc0 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
54ce0 6f 6e 74 69 6e 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ontinue</span>;.........}.......
54d00 20 20 73 75 6d 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 ..sum.+=.value;.....}.....<span.
54d20 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
54d40 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 6e 75 6d 62 65 72 22 (sum.==.<span.class="tok-number"
54d60 3e 31 36 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 >16</span>);......<span.class="t
54d80 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 6f 20 69 74 65 72 61 74 65 20 6f 76 65 72 20 61 ok-comment">//.To.iterate.over.a
54da0 20 70 6f 72 74 69 6f 6e 20 6f 66 20 61 20 73 6c 69 63 65 2c 20 72 65 73 6c 69 63 65 2e 3c 2f 73 .portion.of.a.slice,.reslice.</s
54dc0 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 66 6f pan>.....<span.class="tok-kw">fo
54de0 72 3c 2f 73 70 61 6e 3e 20 28 69 74 65 6d 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b r</span>.(items[<span.class="tok
54e00 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -number">0</span>..<span.class="
54e20 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 29 20 7c 76 61 6c 75 65 7c 20 7b tok-number">1</span>]).|value|.{
54e40 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 7d 0a 20 20 20 .........sum.+=.value;.....}....
54e60 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>
54e80 20 65 78 70 65 63 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 .expect(sum.==.<span.class="tok-
54ea0 6e 75 6d 62 65 72 22 3e 32 30 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 number">20</span>);......<span.c
54ec0 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 61 63 63 65 73 73 20 lass="tok-comment">//.To.access.
54ee0 74 68 65 20 69 6e 64 65 78 20 6f 66 20 69 74 65 72 61 74 69 6f 6e 2c 20 73 70 65 63 69 66 79 20 the.index.of.iteration,.specify.
54f00 61 20 73 65 63 6f 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 20 61 73 20 77 65 6c 6c 3c 2f 73 70 61 6e a.second.condition.as.well</span
54f20 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 3e >.....<span.class="tok-comment">
54f40 2f 2f 20 61 73 20 61 20 73 65 63 6f 6e 64 20 63 61 70 74 75 72 65 20 76 61 6c 75 65 2e 3c 2f 73 //.as.a.second.capture.value.</s
54f60 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
54f80 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 74 6f 6b 2d r</span>.sum2:.<span.class="tok-
54fa0 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="
54fc0 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 20 tok-number">0</span>;.....<span.
54fe0 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 65 6d 73 class="tok-kw">for</span>.(items
55000 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 3c 2f 73 70 ,.<span.class="tok-number">0</sp
55020 61 6e 3e 2e 2e 29 20 7c 5f 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c an>..).|_,.i|.{.........<span.cl
55040 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c ass="tok-kw">try</span>.expect(<
55060 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 4f 66 span.class="tok-builtin">@TypeOf
55080 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 6b 2d 74 </span>(i).==.<span.class="tok-t
550a0 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 75 6d 32 ype">usize</span>);.........sum2
550c0 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 3e 40 61 .+=.<span.class="tok-builtin">@a
550e0 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 74 79 70 65 22 3e s</span>(<span.class="tok-type">
55100 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 62 75 69 i32</span>,.<span.class="tok-bui
55120 6c 74 69 6e 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 69 29 29 3b 0a 20 20 20 20 7d ltin">@intCast</span>(i));.....}
55140 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
55160 70 61 6e 3e 20 65 78 70 65 63 74 28 73 75 6d 32 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d pan>.expect(sum2.==.<span.class=
55180 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 0a 20 20 20 20 3c 73 "tok-number">10</span>);......<s
551a0 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
551c0 65 72 61 74 65 20 6f 76 65 72 20 63 6f 6e 73 65 63 75 74 69 76 65 20 69 6e 74 65 67 65 72 73 2c erate.over.consecutive.integers,
551e0 20 75 73 65 20 74 68 65 20 72 61 6e 67 65 20 73 79 6e 74 61 78 2e 3c 2f 73 70 61 6e 3e 0a 20 20 .use.the.range.syntax.</span>...
55200 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 55 ..<span.class="tok-comment">//.U
55220 6e 62 6f 75 6e 64 65 64 20 72 61 6e 67 65 20 69 73 20 61 6c 77 61 79 73 20 61 20 63 6f 6d 70 69 nbounded.range.is.always.a.compi
55240 6c 65 20 65 72 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 le.error.</span>.....<span.class
55260 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 75 6d 33 20 3a 20 3c 73 70 61 ="tok-kw">var</span>.sum3.:.<spa
55280 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 20 n.class="tok-type">usize</span>.
552a0 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
552c0 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 66 6f an>;.....<span.class="tok-kw">fo
552e0 72 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 6d 62 65 r</span>.(<span.class="tok-numbe
55300 72 22 3e 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 r">0</span>..<span.class="tok-nu
55320 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 29 20 7c 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 mber">5</span>).|i|.{.........su
55340 6d 33 20 2b 3d 20 69 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 m3.+=.i;.....}.....<span.class="
55360 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 75 6d 33 20 3d tok-kw">try</span>.expect(sum3.=
55380 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 73 =.<span.class="tok-number">10</s
553a0 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
553c0 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"
553e0 3e 26 71 75 6f 74 3b 6d 75 6c 74 69 20 6f 62 6a 65 63 74 20 66 6f 72 26 71 75 6f 74 3b 3c 2f 73 >&quot;multi.object.for&quot;</s
55400 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">
55420 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
55440 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 7b 20 3c 73 70 ass="tok-type">usize</span>{.<sp
55460 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>,.
55480 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
554a0 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
554c0 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 22 pan>.};.....<span.class="tok-kw"
554e0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 74 65 6d 73 32 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 >const</span>.items2.=.[_]<span.
55500 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 7b 20 3c class="tok-type">usize</span>{.<
55520 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>
55540 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
55560 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 36 3c an>,.<span.class="tok-number">6<
55580 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
555a0 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 20 63 6c 61 73 73 w">var</span>.count:.<span.class
555c0 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
555e0 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>;...
55600 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">//.
55620 49 74 65 72 61 74 65 20 6f 76 65 72 20 6d 75 6c 74 69 70 6c 65 20 6f 62 6a 65 63 74 73 2e 3c 2f Iterate.over.multiple.objects.</
55640 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 65 span>.....<span.class="tok-comme
55660 6e 74 22 3e 2f 2f 20 41 6c 6c 20 6c 65 6e 67 74 68 73 20 6d 75 73 74 20 62 65 20 65 71 75 61 6c nt">//.All.lengths.must.be.equal
55680 20 61 74 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 6c 6f 6f 70 2c 20 6f 74 68 65 72 .at.the.start.of.the.loop,.other
556a0 77 69 73 65 20 64 65 74 65 63 74 61 62 6c 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e wise.detectable</span>.....<span
556c0 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 6c 6c 65 67 61 6c 20 .class="tok-comment">//.illegal.
556e0 62 65 68 61 76 69 6f 72 20 6f 63 63 75 72 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 behavior.occurs.</span>.....<spa
55700 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 65 n.class="tok-kw">for</span>.(ite
55720 6d 73 2c 20 69 74 65 6d 73 32 29 20 7c 69 2c 20 6a 7c 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 75 ms,.items2).|i,.j|.{.........cou
55740 6e 74 20 2b 3d 20 69 20 2b 20 6a 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c nt.+=.i.+.j;.....}......<span.cl
55760 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 63 ass="tok-kw">try</span>.expect(c
55780 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 72 22 ount.==.<span.class="tok-number"
557a0 3e 32 31 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 >21</span>);.}..<span.class="tok
557c0 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
557e0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 72 20 72 65 66 65 72 65 6e 63 65 26 71 75 6f 74 3b k-str">&quot;for.reference&quot;
55800 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
55820 77 22 3e 76 61 72 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 w">var</span>.items.=.[_]<span.c
55840 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
55860 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>,.<
55880 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>
558a0 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 73 70 ,.<span.class="tok-number">2</sp
558c0 61 6e 3e 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 6d an>.};......<span.class="tok-com
558e0 6d 65 6e 74 22 3e 2f 2f 20 49 74 65 72 61 74 65 20 6f 76 65 72 20 74 68 65 20 73 6c 69 63 65 20 ment">//.Iterate.over.the.slice.
55900 62 79 20 72 65 66 65 72 65 6e 63 65 20 62 79 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e by.reference.by</span>.....<span
55920 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 70 65 63 69 66 79 69 .class="tok-comment">//.specifyi
55940 6e 67 20 74 68 61 74 20 74 68 65 20 63 61 70 74 75 72 65 20 76 61 6c 75 65 20 69 73 20 61 20 70 ng.that.the.capture.value.is.a.p
55960 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 73 73 3d 22 ointer.</span>.....<span.class="
55980 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 26 61 6d 70 3b 69 74 65 6d 73 29 20 tok-kw">for</span>.(&amp;items).
559a0 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 2b 3d 20 3c 73 |*value|.{.........value.*.+=.<s
559c0 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>;
559e0 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"
55a00 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 69 74 65 6d 73 5b 3c 73 70 61 6e 20 63 >try</span>.expect(items[<span.c
55a20 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>].==.<
55a40 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>
55a60 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 74 72 79 3c );.....<span.class="tok-kw">try<
55a80 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 69 74 65 6d 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d /span>.expect(items[<span.class=
55aa0 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 73 70 61 6e 20 "tok-number">1</span>].==.<span.
55ac0 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 20 20 class="tok-number">5</span>);...
55ae0 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
55b00 3e 20 65 78 70 65 63 74 28 69 74 65 6d 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >.expect(items[<span.class="tok-
55b20 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 63 6c 61 73 73 number">2</span>].==.<span.class
55b40 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 0a 3c 73 70 61 ="tok-number">3</span>);.}..<spa
55b60 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
55b80 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 72 20 65 6c 73 an.class="tok-str">&quot;for.els
55ba0 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 73 73 e&quot;</span>.{.....<span.class
55bc0 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 73 20 61 6e 20 ="tok-comment">//.For.allows.an.
55be0 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 6d 65 20 61 73 else.attached.to.it,.the.same.as
55c00 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 73 70 61 6e 20 .a.while.loop.</span>.....<span.
55c20 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 69 74 65 6d class="tok-kw">const</span>.item
55c40 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 22 3e 69 s.=.[_]?<span.class="tok-type">i
55c60 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 75 6d 62 32</span>{.<span.class="tok-numb
55c80 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
55ca0 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
55cc0 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 6c 61 73 73 k-null">null</span>,.<span.class
55ce0 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 20 20 20 3c ="tok-number">5</span>.};......<
55d00 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 6f 72 20 span.class="tok-comment">//.For.
55d20 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 70 72 65 73 loops.can.also.be.used.as.expres
55d40 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 73 3d 22 74 sions.</span>.....<span.class="t
55d60 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 69 6c 65 20 ok-comment">//.Similar.to.while.
55d80 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 20 66 6f 72 loops,.when.you.break.from.a.for
55da0 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 74 20 65 76 .loop,.the.else.branch.is.not.ev
55dc0 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 61 73 73 3d aluated.</span>.....<span.class=
55de0 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 61 6e 20 63 "tok-kw">var</span>.sum:.<span.c
55e00 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 70 lass="tok-type">i32</span>.=.<sp
55e20 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 3b 0a an.class="tok-number">0</span>;.
55e40 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</
55e60 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 6b 2d span>.result.=.<span.class="tok-
55e80 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 65 7c 20 7b kw">for</span>.(items).|value|.{
55ea0 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 66 .........<span.class="tok-kw">if
55ec0 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 73 3d 22 74 </span>.(value.!=.<span.class="t
55ee0 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 20 20 20 20 ok-null">null</span>).{.........
55f00 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 7d 0a 20 20 ....sum.+=.value.?;.........}...
55f20 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
55f40 70 61 6e 3e 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d pan>.blk:.{.........<span.class=
55f60 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 75 6d 20 3d "tok-kw">try</span>.expect(sum.=
55f80 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 2f 73 =.<span.class="tok-number">12</s
55fa0 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 74 6f 6b 2d pan>);.........<span.class="tok-
55fc0 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 20 20 20 7d kw">break</span>.:blk.sum;.....}
55fe0 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
56000 73 70 61 6e 3e 20 65 78 70 65 63 74 28 72 65 73 75 6c 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 span>.expect(result.==.<span.cla
56020 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 7d 3c 2f 63 ss="tok-number">12</span>);.}</c
56040 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ode></pre></figure><figure><figc
56060 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
56080 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
560a0 20 74 65 73 74 20 74 65 73 74 5f 66 6f 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 34 20 74 65 73 .test.test_for.zig</kbd>.1/4.tes
560c0 74 5f 66 6f 72 2e 74 65 73 74 2e 66 6f 72 20 62 61 73 69 63 73 2e 2e 2e 20 4f 4b 0a 32 2f 34 20 t_for.test.for.basics....OK.2/4.
560e0 74 65 73 74 5f 66 6f 72 2e 74 65 73 74 2e 6d 75 6c 74 69 20 6f 62 6a 65 63 74 20 66 6f 72 2e 2e test_for.test.multi.object.for..
56100 2e 20 4f 4b 0a 33 2f 34 20 74 65 73 74 5f 66 6f 72 2e 74 65 73 74 2e 66 6f 72 20 72 65 66 65 72 ..OK.3/4.test_for.test.for.refer
56120 65 6e 63 65 2e 2e 2e 20 4f 4b 0a 34 2f 34 20 74 65 73 74 5f 66 6f 72 2e 74 65 73 74 2e 66 6f 72 ence....OK.4/4.test_for.test.for
56140 20 65 6c 73 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 34 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a .else....OK.All.4.tests.passed..
56160 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 </samp></pre></figure>.......<h3
56180 20 69 64 3d 22 4c 61 62 65 6c 65 64 2d 66 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 .id="Labeled-for"><a.href="nav.x
561a0 68 74 6d 6c 23 74 6f 63 2d 4c 61 62 65 6c 65 64 2d 66 6f 72 22 3e 4c 61 62 65 6c 65 64 20 66 6f html#toc-Labeled-for">Labeled.fo
561c0 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 4c 61 62 65 r</a>.<a.class="hdr".href="#Labe
561e0 6c 65 64 2d 66 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 57 led-for">..</a></h3>........<p>W
56200 68 65 6e 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 hen.a.<code><span.class="tok-kw"
56220 3e 66 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6c 6f 6f 70 20 69 73 20 6c 61 62 65 6c >for</span></code>.loop.is.label
56240 65 64 2c 20 69 74 20 63 61 6e 20 62 65 20 72 65 66 65 72 65 6e 63 65 64 20 66 72 6f 6d 20 61 20 ed,.it.can.be.referenced.from.a.
56260 3c 63 6f 64 65 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 <code><span.class="tok-kw">break
56280 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 6f 72 20 </span></code>...............or.
562a0 3c 63 6f 64 65 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 74 69 <code><span.class="tok-kw">conti
562c0 6e 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d 20 77 69 74 68 69 6e 20 61 20 nue</span></code>.from.within.a.
562e0 6e 65 73 74 65 64 20 6c 6f 6f 70 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c nested.loop:</p>.......<figure><
56300 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
56320 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 66 6f 72 5f 6e 65 73 74 65 64 5f 62 72 .class="file">test_for_nested_br
56340 65 61 6b 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e eak.zig</cite></figcaption><pre>
56360 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
56380 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
563a0 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
563c0 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
563e0 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
56400 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 67 2e 65 78 70 </span>.expect.=.std.testing.exp
56420 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 74 65 73 74 3c ect;..<span.class="tok-kw">test<
56440 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
56460 6f 74 3b 6e 65 73 74 65 64 20 62 72 65 61 6b 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 ot;nested.break&quot;</span>.{..
56480 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
564a0 6e 3e 20 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 n>.count:.<span.class="tok-type"
564c0 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
564e0 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 6f 75 74 65 72 3a 20 3c 73 -number">0</span>;.....outer:.<s
56500 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 3c pan.class="tok-kw">for</span>.(<
56520 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>
56540 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 36 3c 2f 73 70 ..<span.class="tok-number">6</sp
56560 61 6e 3e 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 3d 22 an>).|_|.{.........<span.class="
56580 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d tok-kw">for</span>.(<span.class=
565a0 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 20 63 6c 61 "tok-number">1</span>..<span.cla
565c0 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 20 7c 5f 7c 20 7b 0a ss="tok-number">6</span>).|_|.{.
565e0 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ............count.+=.<span.class
56600 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>;.........
56620 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</
56640 73 70 61 6e 3e 20 3a 6f 75 74 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 span>.:outer;.........}.....}...
56660 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
56680 3e 20 65 78 70 65 63 74 28 63 6f 75 6e 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >.expect(count.==.<span.class="t
566a0 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 3c 73 70 61 6e 20 63 ok-number">1</span>);.}..<span.c
566c0 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.
566e0 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 6e class="tok-str">&quot;nested.con
56700 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 63 tinue&quot;</span>.{.....<span.c
56720 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 6f 75 6e 74 3a 20 lass="tok-kw">var</span>.count:.
56740 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
56760 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 30 an>.=.<span.class="tok-number">0
56780 3c 2f 73 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 </span>;.....outer:.<span.class=
567a0 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 "tok-kw">for</span>.(<span.class
567c0 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 20 63 6c ="tok-number">1</span>..<span.cl
567e0 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 29 20 7c 5f 7c 20 7b ass="tok-number">9</span>).|_|.{
56800 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 66 6f .........<span.class="tok-kw">fo
56820 72 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 6d 62 65 r</span>.(<span.class="tok-numbe
56840 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
56860 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 mber">6</span>).|_|.{...........
56880 20 20 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 ..count.+=.<span.class="tok-numb
568a0 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 3c 73 70 61 6e 20 er">1</span>;.............<span.
568c0 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 20 3a class="tok-kw">continue</span>.:
568e0 6f 75 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 3c 73 70 61 outer;.........}.....}......<spa
56900 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 65 78 70 65 n.class="tok-kw">try</span>.expe
56920 63 74 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 ct(count.==.<span.class="tok-num
56940 62 65 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 2f ber">8</span>);.}</code></pre></
56960 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 figure><figure><figcaption.class
56980 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ="shell-cap">Shell</figcaption><
569a0 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 66 pre><samp>$.<kbd>zig.test.test_f
569c0 6f 72 5f 6e 65 73 74 65 64 5f 62 72 65 61 6b 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 or_nested_break.zig</kbd>.1/2.te
569e0 73 74 5f 66 6f 72 5f 6e 65 73 74 65 64 5f 62 72 65 61 6b 2e 74 65 73 74 2e 6e 65 73 74 65 64 20 st_for_nested_break.test.nested.
56a00 62 72 65 61 6b 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 66 6f 72 5f 6e 65 73 74 65 64 5f break....OK.2/2.test_for_nested_
56a20 62 72 65 61 6b 2e 74 65 73 74 2e 6e 65 73 74 65 64 20 63 6f 6e 74 69 6e 75 65 2e 2e 2e 20 4f 4b break.test.nested.continue....OK
56a40 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 .All.2.tests.passed..</samp></pr
56a60 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d e></figure>..............<h3.id=
56a80 22 69 6e 6c 69 6e 65 2d 66 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 "inline-for"><a.href="nav.xhtml#
56aa0 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 3c 2f 61 3e 20 3c toc-inline-for">inline.for</a>.<
56ac0 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 66 6f 72 22 a.class="hdr".href="#inline-for"
56ae0 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 46 6f >..</a></h3>........<p>.......Fo
56b00 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 69 73 20 63 61 75 r.loops.can.be.inlined..This.cau
56b20 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 64 2c 20 77 68 69 ses.the.loop.to.be.unrolled,.whi
56b40 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 6f 20 64 6f 20 73 ch.......allows.the.code.to.do.s
56b60 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 20 61 74 20 63 6f ome.things.which.only.work.at.co
56b80 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 75 73 65 20 74 79 mpile.time,.......such.as.use.ty
56ba0 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 0a 20 20 20 20 20 pes.as.first.class.values.......
56bc0 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 72 61 74 6f 72 20 .The.capture.value.and.iterator.
56be0 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 20 61 72 65 0a 20 value.of.inlined.for.loops.are..
56c00 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 20 20 20 20 20 3c .....compile-time.known........<
56c20 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c /p>.......<figure><figcaption.cl
56c40 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
56c60 3e 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 66 6f 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 >test_inline_for.zig</cite></fig
56c80 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
56ca0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 tok-kw">const</span>.expect.=.<s
56cc0 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<
56ce0 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
56d00 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 ot;std&quot;</span>).testing.exp
56d20 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 74 65 73 74 3c ect;..<span.class="tok-kw">test<
56d40 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
56d60 6f 74 3b 69 6e 6c 69 6e 65 20 66 6f 72 20 6c 6f 6f 70 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 ot;inline.for.loop&quot;</span>.
56d80 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
56da0 3c 2f 73 70 61 6e 3e 20 6e 75 6d 73 20 3d 20 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 </span>.nums.=.[_]<span.class="t
56dc0 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-type">i32</span>{<span.class=
56de0 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 6e 20 63 6c 61 "tok-number">2</span>,.<span.cla
56e00 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.
56e20 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 7d 3b 0a 20 20 class="tok-number">6</span>};...
56e40 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
56e60 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 3e 75 73 >.sum:.<span.class="tok-type">us
56e80 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 75 ize</span>.=.<span.class="tok-nu
56ea0 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 3d mber">0</span>;.....<span.class=
56ec0 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 70 61 6e 20 63 6c 61 "tok-kw">inline</span>.<span.cla
56ee0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 73 29 20 7c 69 ss="tok-kw">for</span>.(nums).|i
56f00 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"
56f20 3e 63 6f 6e 73 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 >const</span>.T.=.<span.class="t
56f40 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 69 29 20 7b 0a 20 20 20 20 20 ok-kw">switch</span>.(i).{......
56f60 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 3e .......<span.class="tok-number">
56f80 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 2d 2</span>.=&gt;.<span.class="tok-
56fa0 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 type">f32</span>,.............<s
56fc0 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 20 pan.class="tok-number">4</span>.
56fe0 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 3e 69 38 3c =&gt;.<span.class="tok-type">i8<
57000 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 63 6c 61 73 73 3d /span>,.............<span.class=
57020 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 3c 73 70 61 "tok-number">6</span>.=&gt;.<spa
57040 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>,.
57060 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 22 ............<span.class="tok-kw"
57080 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 63 6c 61 73 73 3d 22 >else</span>.=&gt;.<span.class="
570a0 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 20 20 tok-kw">unreachable</span>,.....
570c0 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 74 79 70 65 4e 61 6d 65 4c 65 ....};.........sum.+=.typeNameLe
570e0 6e 67 74 68 28 54 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ngth(T);.....}.....<span.class="
57100 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 75 6d 20 3d 3d tok-kw">try</span>.expect(sum.==
57120 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 61 .<span.class="tok-number">9</spa
57140 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 66 6e 3c n>);.}..<span.class="tok-kw">fn<
57160 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 74 79 70 65 /span>.<span.class="tok-fn">type
57180 4e 61 6d 65 4c 65 6e 67 74 68 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 NameLength</span>(<span.class="t
571a0 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.
571c0 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 73 class="tok-type">type</span>).<s
571e0 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
57200 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
57220 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 62 75 69 6c urn</span>.<span.class="tok-buil
57240 74 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 54 29 2e 6c 65 6e 3b 0a 7d 3c tin">@typeName</span>(T).len;.}<
57260 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
57280 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
572a0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
572c0 69 67 20 74 65 73 74 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 66 6f 72 2e 7a 69 67 3c 2f 6b 62 64 ig.test.test_inline_for.zig</kbd
572e0 3e 0a 31 2f 31 20 74 65 73 74 5f 69 6e 6c 69 6e 65 5f 66 6f 72 2e 74 65 73 74 2e 69 6e 6c 69 6e >.1/1.test_inline_for.test.inlin
57300 65 20 66 6f 72 20 6c 6f 6f 70 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 e.for.loop....OK.All.1.tests.pas
57320 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 sed..</samp></pre></figure>.....
57340 20 20 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 ..<p>.......It.is.recommended.to
57360 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e .use.<code><span.class="tok-kw">
57380 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 79 20 inline</span></code>.loops.only.
573a0 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 20 20 for.one.of.these.reasons:.......
573c0 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.
573e0 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 20 68 need.the.loop.to.execute.at.<a.h
57400 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 6f 72 ref="#comptime">comptime</a>.for
57420 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 20 20 .the.semantics.to.work.</li>....
57440 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 65 6e .....<li>.........You.have.a.ben
57460 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 75 6e chmark.to.prove.that.forcibly.un
57480 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 73 20 rolling.the.loop.in.this.way.is.
574a0 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 69 3e measurably.faster..........</li>
574c0 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 65 65 .......</ul>..............<p>See
574e0 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 68 69 .also:</p><ul>.<li><a.href="#whi
57500 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 3d 22 le">while</a></li>.<li><a.href="
57520 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 6c 69 #comptime">comptime</a></li>.<li
57540 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 6c ><a.href="#Arrays">Arrays</a></l
57560 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 73 3c i>.<li><a.href="#Slices">Slices<
57580 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 32 /a></li>.</ul>...............<h2
575a0 20 69 64 3d 22 69 66 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d .id="if"><a.href="nav.xhtml#toc-
575c0 69 66 22 3e 69 66 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 if">if</a>.<a.class="hdr".href="
575e0 23 69 66 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e #if">..</a></h2>........<figure>
57600 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 <figcaption.class="zig-cap"><cit
57620 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 66 2e 7a 69 67 3c 2f 63 69 74 65 e.class="file">test_if.zig</cite
57640 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></figcaption><pre><code><span.c
57660 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 73 lass="tok-comment">//.If.express
57680 69 6f 6e 73 20 68 61 76 65 20 74 68 72 65 65 20 75 73 65 73 2c 20 63 6f 72 72 65 73 70 6f 6e 64 ions.have.three.uses,.correspond
576a0 69 6e 67 20 74 6f 20 74 68 65 20 74 68 72 65 65 20 74 79 70 65 73 3a 3c 2f 73 70 61 6e 3e 0a 3c ing.to.the.three.types:</span>.<
576c0 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 2a 20 62 6f span.class="tok-comment">//.*.bo
576e0 6f 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 63 6f 6d 6d 65 ol</span>.<span.class="tok-comme
57700 6e 74 22 3e 2f 2f 20 2a 20 3f 54 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 nt">//.*.?T</span>.<span.class="
57720 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 2a 20 61 6e 79 65 72 72 6f 72 21 54 3c 2f 73 70 tok-comment">//.*.anyerror!T</sp
57740 61 6e 3e 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 an>..<span.class="tok-kw">const<
57760 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /span>.expect.=.<span.class="tok
57780 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
577a0 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;</
577c0 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c span>).testing.expect;..<span.cl
577e0 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
57800 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 66 20 65 78 70 72 65 73 73 69 lass="tok-str">&quot;if.expressi
57820 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
57840 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 73 69 6f 6e s="tok-comment">//.If.expression
57860 73 20 61 72 65 20 75 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 s.are.used.instead.of.a.ternary.
57880 65 78 70 72 65 73 73 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 expression.</span>.....<span.cla
578a0 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 73 70 61 ss="tok-kw">const</span>.a:.<spa
578c0 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>.=.
578e0 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
57900 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
57920 74 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 t</span>.b:.<span.class="tok-typ
57940 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
57960 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 63 6c 61 -number">4</span>;.....<span.cla
57980 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 74 20 ss="tok-kw">const</span>.result.
579a0 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>
579c0 20 28 61 20 21 3d 20 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 .(a.!=.b).<span.class="tok-numbe
579e0 72 22 3e 34 37 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 r">47</span>.<span.class="tok-kw
57a00 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 6e ">else</span>.<span.class="tok-n
57a20 75 6d 62 65 72 22 3e 33 30 38 39 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c umber">3089</span>;.....<span.cl
57a40 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 72 ass="tok-kw">try</span>.expect(r
57a60 65 73 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 esult.==.<span.class="tok-number
57a80 22 3e 34 37 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 ">47</span>);.}..<span.class="to
57aa0 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
57ac0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 66 20 62 6f 6f 6c 65 61 6e 26 71 75 6f 74 3b 3c 2f ok-str">&quot;if.boolean&quot;</
57ae0 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 6d span>.{.....<span.class="tok-com
57b00 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 20 62 6f 6f ment">//.If.expressions.test.boo
57b20 6c 65 61 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 lean.conditions.</span>.....<spa
57b40 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 3a n.class="tok-kw">const</span>.a:
57b60 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
57b80 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 3c n>.=.<span.class="tok-number">5<
57ba0 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"
57bc0 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 22 74 6f >const</span>.b:.<span.class="to
57be0 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
57c00 3d 22 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 ="tok-number">4</span>;.....<spa
57c20 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 21 3d n.class="tok-kw">if</span>.(a.!=
57c40 20 62 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 .b).{.........<span.class="tok-k
57c60 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 w">try</span>.expect(<span.class
57c80 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 20 20 7d 20 ="tok-null">true</span>);.....}.
57ca0 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>
57cc0 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>.
57ce0 28 61 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 39 (a.==.<span.class="tok-number">9
57d00 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 22 </span>).{.........<span.class="
57d20 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>;.....
57d40 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
57d60 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 22 74 6f 6b 2d 6b 77 n>.{.........<span.class="tok-kw
57d80 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 0a 0a 3c ">unreachable</span>;.....}.}..<
57da0 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>.
57dc0 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 65 <span.class="tok-str">&quot;if.e
57de0 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 0a 20 20 20 20 3c 73 rror.union&quot;</span>.{.....<s
57e00 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 65 78 pan.class="tok-comment">//.If.ex
57e20 70 72 65 73 73 69 6f 6e 73 20 74 65 73 74 20 66 6f 72 20 65 72 72 6f 72 73 2e 3c 2f 73 70 61 6e pressions.test.for.errors.</span
57e40 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 3e >.....<span.class="tok-comment">
57e60 2f 2f 20 4e 6f 74 65 20 74 68 65 20 7c 65 72 72 7c 20 63 61 70 74 75 72 65 20 6f 6e 20 74 68 65 //.Note.the.|err|.capture.on.the
57e80 20 65 6c 73 65 2e 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 .else.</span>......<span.class="
57ea0 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 73 70 61 6e 20 63 6c tok-kw">const</span>.a:.<span.cl
57ec0 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 21 3c ass="tok-type">anyerror</span>!<
57ee0 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>
57f00 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
57f20 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
57f40 66 3c 2f 73 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 3c f</span>.(a).|value|.{.........<
57f60 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 65 span.class="tok-kw">try</span>.e
57f80 78 70 65 63 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 xpect(value.==.<span.class="tok-
57fa0 6e 75 6d 62 65 72 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 number">0</span>);.....}.<span.c
57fc0 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 72 72 7c 20 lass="tok-kw">else</span>.|err|.
57fe0 7b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 65 72 72 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e {........._.=.err;.........<span
58000 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
58020 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-
58040 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=
58060 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 6e "tok-type">anyerror</span>!<span
58080 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 3c .class="tok-type">u32</span>.=.<
580a0 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>
580c0 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 2d .BadValue;.....<span.class="tok-
580e0 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 20 kw">if</span>.(b).|value|.{.....
58100 20 20 20 20 5f 20 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ...._.=.value;.........<span.cla
58120 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 0a ss="tok-kw">unreachable</span>;.
58140 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<
58160 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 6e 20 63 6c 61 /span>.|err|.{.........<span.cla
58180 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 65 72 ss="tok-kw">try</span>.expect(er
581a0 72 20 3d 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 r.==.<span.class="tok-kw">error<
581c0 2f 73 70 61 6e 3e 2e 42 61 64 56 61 6c 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 /span>.BadValue);.....}......<sp
581e0 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 65 6c an.class="tok-comment">//.The.el
58200 73 65 20 61 6e 64 20 7c 65 72 72 7c 20 63 61 70 74 75 72 65 20 69 73 20 73 74 72 69 63 74 6c 79 se.and.|err|.capture.is.strictly
58220 20 72 65 71 75 69 72 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 .required.</span>.....<span.clas
58240 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 76 61 6c 75 65 7c s="tok-kw">if</span>.(a).|value|
58260 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 3e .{.........<span.class="tok-kw">
58280 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e try</span>.expect(value.==.<span
582a0 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>);..
582c0 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 2f ...}.<span.class="tok-kw">else</
582e0 73 70 61 6e 3e 20 7c 5f 7c 20 7b 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>.|_|.{}......<span.class="t
58300 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 6f 20 63 68 65 63 6b 20 6f 6e 6c 79 20 74 68 65 ok-comment">//.To.check.only.the
58320 20 65 72 72 6f 72 20 76 61 6c 75 65 2c 20 75 73 65 20 61 6e 20 65 6d 70 74 79 20 62 6c 6f 63 6b .error.value,.use.an.empty.block
58340 20 65 78 70 72 65 73 73 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c .expression.</span>.....<span.cl
58360 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 7c 5f 7c 20 7b ass="tok-kw">if</span>.(b).|_|.{
58380 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
583a0 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 3d 22 n>.|err|.{.........<span.class="
583c0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 65 72 72 20 3d 3d tok-kw">try</span>.expect(err.==
583e0 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
58400 6e 3e 2e 42 61 64 56 61 6c 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 n>.BadValue);.....}......<span.c
58420 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 63 63 65 73 73 20 74 68 65 lass="tok-comment">//.Access.the
58440 20 76 61 6c 75 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 20 75 73 69 6e 67 20 61 20 70 6f 69 6e .value.by.reference.using.a.poin
58460 74 65 72 20 63 61 70 74 75 72 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ter.capture.</span>.....<span.cl
58480 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 3a 20 3c 73 70 61 6e ass="tok-kw">var</span>.c:.<span
584a0 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 6e .class="tok-type">anyerror</span
584c0 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 33 32 3c 2f 73 70 >!<span.class="tok-type">u32</sp
584e0 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 33 an>.=.<span.class="tok-number">3
58500 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
58520 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 ">if</span>.(c).|*value|.{......
58540 20 20 20 76 61 6c 75 65 2e 2a 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 ...value.*.=.<span.class="tok-nu
58560 6d 62 65 72 22 3e 39 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 mber">9</span>;.....}.<span.clas
58580 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 7b 0a 20 20 20 s="tok-kw">else</span>.|_|.{....
585a0 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
585c0 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 hable</span>;.....}......<span.c
585e0 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 76 61 6c lass="tok-kw">if</span>.(c).|val
58600 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 6b ue|.{.........<span.class="tok-k
58620 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 61 6c 75 65 20 3d 3d 20 3c 73 w">try</span>.expect(value.==.<s
58640 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 29 pan.class="tok-number">9</span>)
58660 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 6c 73 ;.....}.<span.class="tok-kw">els
58680 65 3c 2f 73 70 61 6e 3e 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 e</span>.|_|.{.........<span.cla
586a0 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 0a ss="tok-kw">unreachable</span>;.
586c0 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 ....}.}</code></pre></figure><fi
586e0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
58700 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
58720 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 69 66 2e 7a 69 67 3c 2f 6b 62 64 $.<kbd>zig.test.test_if.zig</kbd
58740 3e 0a 31 2f 33 20 74 65 73 74 5f 69 66 2e 74 65 73 74 2e 69 66 20 65 78 70 72 65 73 73 69 6f 6e >.1/3.test_if.test.if.expression
58760 2e 2e 2e 20 4f 4b 0a 32 2f 33 20 74 65 73 74 5f 69 66 2e 74 65 73 74 2e 69 66 20 62 6f 6f 6c 65 ....OK.2/3.test_if.test.if.boole
58780 61 6e 2e 2e 2e 20 4f 4b 0a 33 2f 33 20 74 65 73 74 5f 69 66 2e 74 65 73 74 2e 69 66 20 65 72 72 an....OK.3/3.test_if.test.if.err
587a0 6f 72 20 75 6e 69 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 33 20 74 65 73 74 73 20 70 61 73 73 65 or.union....OK.All.3.tests.passe
587c0 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 d..</samp></pre></figure>.......
587e0 3c 68 33 20 69 64 3d 22 69 66 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 3c 61 20 68 72 <h3.id="if-with-Optionals"><a.hr
58800 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 69 66 2d 77 69 74 68 2d 4f 70 74 69 6f 6e ef="nav.xhtml#toc-if-with-Option
58820 61 6c 73 22 3e 69 66 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 als">if.with.Optionals</a>.<a.cl
58840 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 66 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 ass="hdr".href="#if-with-Optiona
58860 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e ls">..</a></h3>.........<figure>
58880 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 <figcaption.class="zig-cap"><cit
588a0 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 66 5f 6f 70 74 69 6f 6e 61 6c 73 e.class="file">test_if_optionals
588c0 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
588e0 64 65 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 de><span.class="tok-kw">const</s
58900 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 pan>.expect.=.<span.class="tok-b
58920 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
58940 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
58960 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 an>).testing.expect;..<span.clas
58980 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
589a0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 66 20 6f 70 74 69 6f 6e 61 6c 26 71 ss="tok-str">&quot;if.optional&q
589c0 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
589e0 6f 6b 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 ok-comment">//.If.expressions.te
58a00 73 74 20 66 6f 72 20 6e 75 6c 6c 2e 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 st.for.null.</span>......<span.c
58a20 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 3f 3c lass="tok-kw">const</span>.a:.?<
58a40 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>
58a60 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
58a80 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
58aa0 66 3c 2f 73 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 3c f</span>.(a).|value|.{.........<
58ac0 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 65 span.class="tok-kw">try</span>.e
58ae0 78 70 65 63 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 xpect(value.==.<span.class="tok-
58b00 6e 75 6d 62 65 72 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 number">0</span>);.....}.<span.c
58b20 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>.{.....
58b40 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 68 ....<span.class="tok-kw">unreach
58b60 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c able</span>;.....}......<span.cl
58b80 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 3f 3c 73 ass="tok-kw">const</span>.b:.?<s
58ba0 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>.
58bc0 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
58be0 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
58c00 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e f</span>.(b).|_|.{.........<span
58c20 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
58c40 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 77 22 3e 65 n>;.....}.<span.class="tok-kw">e
58c60 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 73 73 lse</span>.{.........<span.class
58c80 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 ="tok-kw">try</span>.expect(<spa
58ca0 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 3b n.class="tok-null">true</span>);
58cc0 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 63 6f 6d .....}......<span.class="tok-com
58ce0 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 65 6c 73 65 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 ment">//.The.else.is.not.require
58d00 64 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 d.</span>.....<span.class="tok-k
58d20 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 w">if</span>.(a).|value|.{......
58d40 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 61 ...<span.class="tok-kw">try</spa
58d60 6e 3e 20 65 78 70 65 63 74 28 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 n>.expect(value.==.<span.class="
58d80 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 7d 0a 0a 20 20 tok-number">0</span>);.....}....
58da0 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 54 ..<span.class="tok-comment">//.T
58dc0 6f 20 74 65 73 74 20 61 67 61 69 6e 73 74 20 6e 75 6c 6c 20 6f 6e 6c 79 2c 20 75 73 65 20 74 68 o.test.against.null.only,.use.th
58de0 65 20 62 69 6e 61 72 79 20 65 71 75 61 6c 69 74 79 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 73 70 61 e.binary.equality.operator.</spa
58e00 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 69 66 3c 2f n>.....<span.class="tok-kw">if</
58e20 73 70 61 6e 3e 20 28 62 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>.(b.==.<span.class="tok-nul
58e40 6c 22 3e 6e 75 6c 6c 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 l">null</span>).{.........<span.
58e60 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
58e80 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
58ea0 61 6e 3e 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 an>);.....}......<span.class="to
58ec0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 41 63 63 65 73 73 20 74 68 65 20 76 61 6c 75 65 20 62 k-comment">//.Access.the.value.b
58ee0 79 20 72 65 66 65 72 65 6e 63 65 20 75 73 69 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 63 61 70 74 y.reference.using.a.pointer.capt
58f00 75 72 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 ure.</span>.....<span.class="tok
58f20 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 63 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d -kw">var</span>.c:.?<span.class=
58f40 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
58f60 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>;.....<
58f80 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
58fa0 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 3d 20 3c ).|*value|.{.........value.*.=.<
58fc0 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>
58fe0 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 77 ;.....}......<span.class="tok-kw
59000 22 3e 69 66 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 ">if</span>.(c).|value|.{.......
59020 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
59040 3e 20 65 78 70 65 63 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 >.expect(value.==.<span.class="t
59060 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 7d 20 3c 73 70 61 ok-number">2</span>);.....}.<spa
59080 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 20 n.class="tok-kw">else</span>.{..
590a0 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 72 65 .......<span.class="tok-kw">unre
590c0 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 achable</span>;.....}.}..<span.c
590e0 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.
59100 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 65 72 72 6f 72 20 75 class="tok-str">&quot;if.error.u
59120 6e 69 6f 6e 20 77 69 74 68 20 6f 70 74 69 6f 6e 61 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 nion.with.optional&quot;</span>.
59140 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">
59160 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 65 72 72 6f 72 //.If.expressions.test.for.error
59180 73 20 62 65 66 6f 72 65 20 75 6e 77 72 61 70 70 69 6e 67 20 6f 70 74 69 6f 6e 61 6c 73 2e 3c 2f s.before.unwrapping.optionals.</
591a0 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 65 span>.....<span.class="tok-comme
591c0 6e 74 22 3e 2f 2f 20 54 68 65 20 7c 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 7c 20 63 61 70 74 nt">//.The.|optional_value|.capt
591e0 75 72 65 27 73 20 74 79 70 65 20 69 73 20 3f 75 33 32 2e 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 ure's.type.is.?u32.</span>......
59200 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
59220 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 61 6e 79 65 >.a:.<span.class="tok-type">anye
59240 72 72 6f 72 3c 2f 73 70 61 6e 3e 21 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 rror</span>!?<span.class="tok-ty
59260 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 6f pe">u32</span>.=.<span.class="to
59280 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 6c k-number">0</span>;.....<span.cl
592a0 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 6f 70 74 69 ass="tok-kw">if</span>.(a).|opti
592c0 6f 6e 61 6c 5f 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 onal_value|.{.........<span.clas
592e0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6f 70 74 s="tok-kw">try</span>.expect(opt
59300 69 6f 6e 61 6c 5f 76 61 6c 75 65 2e 3f 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ional_value.?.==.<span.class="to
59320 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 7d 20 3c 73 70 61 6e k-number">0</span>);.....}.<span
59340 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 72 72 .class="tok-kw">else</span>.|err
59360 7c 20 7b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 65 72 72 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 |.{........._.=.err;.........<sp
59380 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 2f 73 an.class="tok-kw">unreachable</s
593a0 70 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 pan>;.....}......<span.class="to
593c0 6b 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 k-kw">const</span>.b:.<span.clas
593e0 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 3f 3c 73 s="tok-type">anyerror</span>!?<s
59400 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>.
59420 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
59440 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
59460 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 7c 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 7c 20 7b 0a f</span>.(b).|optional_value|.{.
59480 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 72 79 ........<span.class="tok-kw">try
594a0 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 20 3d 3d </span>.expect(optional_value.==
594c0 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
594e0 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 22 an>);.....}.<span.class="tok-kw"
59500 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 7c 5f 7c 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e >else</span>.|_|.{.........<span
59520 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
59540 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-
59560 6b 77 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 kw">const</span>.c:.<span.class=
59580 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 3f 3c 73 70 61 "tok-type">anyerror</span>!?<spa
595a0 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>.=.
595c0 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
595e0 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
59600 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 63 29 20 7c 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c -kw">if</span>.(c).|optional_val
59620 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 ue|.{........._.=.optional_value
59640 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 75 ;.........<span.class="tok-kw">u
59660 6e 72 65 61 63 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 nreachable</span>;.....}.<span.c
59680 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 72 72 7c 20 lass="tok-kw">else</span>.|err|.
596a0 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
596c0 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 65 72 72 20 3d 3d 20 3c 73 70 61 6e 20 63 6c ry</span>.expect(err.==.<span.cl
596e0 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 42 61 64 56 61 6c ass="tok-kw">error</span>.BadVal
59700 75 65 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 ue);.....}......<span.class="tok
59720 2d 63 6f 6d 6d 65 6e 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 -comment">//.Access.the.value.by
59740 20 72 65 66 65 72 65 6e 63 65 20 62 79 20 75 73 69 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 63 61 .reference.by.using.a.pointer.ca
59760 70 74 75 72 65 20 65 61 63 68 20 74 69 6d 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 pture.each.time.</span>.....<spa
59780 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 3a 20 3c n.class="tok-kw">var</span>.d:.<
597a0 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</
597c0 73 70 61 6e 3e 21 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 span>!?<span.class="tok-type">u3
597e0 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
59800 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 74 er">3</span>;.....<span.class="t
59820 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 64 29 20 7c 2a 6f 70 74 69 6f 6e 61 6c 5f ok-kw">if</span>.(d).|*optional_
59840 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 74 6f value|.{.........<span.class="to
59860 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 6f 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 2e k-kw">if</span>.(optional_value.
59880 2a 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 2e *).|*value|.{.............value.
598a0 2a 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 39 3c 2f *.=.<span.class="tok-number">9</
598c0 73 70 61 6e 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 span>;.........}.....}.<span.cla
598e0 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 7b 0a 20 20 ss="tok-kw">else</span>.|_|.{...
59900 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 72 65 61 ......<span.class="tok-kw">unrea
59920 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 chable</span>;.....}......<span.
59940 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 29 20 7c 6f 70 class="tok-kw">if</span>.(d).|op
59960 74 69 6f 6e 61 6c 5f 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 tional_value|.{.........<span.cl
59980 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6f ass="tok-kw">try</span>.expect(o
599a0 70 74 69 6f 6e 61 6c 5f 76 61 6c 75 65 2e 3f 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ptional_value.?.==.<span.class="
599c0 74 6f 6b 2d 6e 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 tok-number">9</span>);.....}.<sp
599e0 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 5f an.class="tok-kw">else</span>.|_
59a00 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"
59a20 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 6f >unreachable</span>;.....}.}</co
59a40 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 de></pre></figure><figure><figca
59a60 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 ption.class="shell-cap">Shell</f
59a80 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 igcaption><pre><samp>$.<kbd>zig.
59aa0 74 65 73 74 20 74 65 73 74 5f 69 66 5f 6f 70 74 69 6f 6e 61 6c 73 2e 7a 69 67 3c 2f 6b 62 64 3e test.test_if_optionals.zig</kbd>
59ac0 0a 31 2f 32 20 74 65 73 74 5f 69 66 5f 6f 70 74 69 6f 6e 61 6c 73 2e 74 65 73 74 2e 69 66 20 6f .1/2.test_if_optionals.test.if.o
59ae0 70 74 69 6f 6e 61 6c 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 69 66 5f 6f 70 74 69 6f 6e ptional....OK.2/2.test_if_option
59b00 61 6c 73 2e 74 65 73 74 2e 69 66 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 77 69 74 68 20 6f 70 74 als.test.if.error.union.with.opt
59b20 69 6f 6e 61 6c 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a ional....OK.All.2.tests.passed..
59b40 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 </samp></pre></figure>..........
59b60 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.
59b80 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 3e 3c href="#Optionals">Optionals</a><
59ba0 2f 6c 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 /li>.<li><a.href="#Errors">Error
59bc0 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>...............<
59be0 68 32 20 69 64 3d 22 64 65 66 65 72 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c h2.id="defer"><a.href="nav.xhtml
59c00 23 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 #toc-defer">defer</a>.<a.class="
59c20 68 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 32 3e 0a 0a hdr".href="#defer">..</a></h2>..
59c40 20 20 20 20 20 20 3c 70 3e 45 78 65 63 75 74 65 73 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 ......<p>Executes.an.expression.
59c60 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 61 74 20 73 63 6f 70 65 20 65 78 69 74 2e 3c 2f unconditionally.at.scope.exit.</
59c80 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
59ca0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
59cc0 74 65 73 74 5f 64 65 66 65 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f test_defer.zig</cite></figcaptio
59ce0 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
59d00 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
59d20 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
59d40 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
59d60 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 77 ot;</span>);.<span.class="tok-kw
59d80 22 3e 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 ">const</span>.expect.=.std.test
59da0 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ing.expect;.<span.class="tok-kw"
59dc0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e >const</span>.print.=.std.debug.
59de0 70 72 69 6e 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 66 6e 3c print;..<span.class="tok-kw">fn<
59e00 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 65 66 65 /span>.<span.class="tok-fn">defe
59e20 72 45 78 61 6d 70 6c 65 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 rExample</span>().!<span.class="
59e40 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 73 70 tok-type">usize</span>.{.....<sp
59e60 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:.
59e80 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
59ea0 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 31 an>.=.<span.class="tok-number">1
59ec0 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c </span>;......{.........<span.cl
59ee0 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 61 20 3d 20 3c 73 ass="tok-kw">defer</span>.a.=.<s
59f00 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 3b pan.class="tok-number">2</span>;
59f20 0a 20 20 20 20 20 20 20 20 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .........a.=.<span.class="tok-nu
59f40 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 3c 73 70 61 6e 20 mber">1</span>;.....}.....<span.
59f60 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
59f80 28 61 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 (a.==.<span.class="tok-number">2
59fa0 3c 2f 73 70 61 6e 3e 29 3b 0a 0a 20 20 20 20 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>);......a.=.<span.class="
59fc0 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.
59fe0 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 3b 0a class="tok-kw">return</span>.a;.
5a000 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
5a020 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;
5a040 64 65 66 65 72 20 62 61 73 69 63 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 defer.basics&quot;</span>.{.....
5a060 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>.
5a080 65 78 70 65 63 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 expect((<span.class="tok-kw">try
5a0a0 3c 2f 73 70 61 6e 3e 20 64 65 66 65 72 45 78 61 6d 70 6c 65 28 29 29 20 3d 3d 20 3c 73 70 61 6e </span>.deferExample()).==.<span
5a0c0 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 7d .class="tok-number">5</span>);.}
5a0e0 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 </code></pre></figure><figure><f
5a100 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c igcaption.class="shell-cap">Shel
5a120 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e l</figcaption><pre><samp>$.<kbd>
5a140 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 64 65 66 65 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f zig.test.test_defer.zig</kbd>.1/
5a160 31 20 74 65 73 74 5f 64 65 66 65 72 2e 74 65 73 74 2e 64 65 66 65 72 20 62 61 73 69 63 73 2e 2e 1.test_defer.test.defer.basics..
5a180 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e ..OK.All.1.tests.passed..</samp>
5a1a0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 44 65 66 65 72 20 65 </pre></figure>.......<p>Defer.e
5a1c0 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 69 6e 20 72 65 76 65 xpressions.are.evaluated.in.reve
5a1e0 72 73 65 20 6f 72 64 65 72 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 rse.order.</p>.......<figure><fi
5a200 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
5a220 6c 61 73 73 3d 22 66 69 6c 65 22 3e 64 65 66 65 72 5f 75 6e 77 69 6e 64 2e 7a 69 67 3c 2f 63 69 lass="file">defer_unwind.zig</ci
5a240 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
5a260 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
5a280 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
5a2a0 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
5a2c0 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 6e ">&quot;std&quot;</span>);.<span
5a2e0 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 78 70 .class="tok-kw">const</span>.exp
5a300 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 ect.=.std.testing.expect;.<span.
5a320 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 72 69 6e class="tok-kw">const</span>.prin
5a340 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 t.=.std.debug.print;..<span.clas
5a360 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
5a380 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 64 65 66 65 72 20 75 6e 77 69 6e 64 69 ss="tok-str">&quot;defer.unwindi
5a3a0 6e 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 ng&quot;</span>.{.....print(<spa
5a3c0 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 26 71 75 6f 74 3b n.class="tok-str">&quot;\n&quot;
5a3e0 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 7d 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d </span>,..{});......<span.class=
5a400 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 20 "tok-kw">defer</span>.{.........
5a420 70 72 69 6e 74 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 print(<span.class="tok-str">&quo
5a440 74 3b 31 20 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 7d 29 3b 0a 20 20 20 20 7d 0a 20 t;1.&quot;</span>,..{});.....}..
5a460 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 2f 73 ...<span.class="tok-kw">defer</s
5a480 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 pan>.{.........print(<span.class
5a4a0 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 32 20 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e ="tok-str">&quot;2.&quot;</span>
5a4c0 2c 20 2e 7b 7d 29 3b 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
5a4e0 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 73 73 3d 22 74 ok-kw">if</span>.(<span.class="t
5a500 6f 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 ok-null">false</span>).{........
5a520 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 64 65 .<span.class="tok-comment">//.de
5a540 66 65 72 73 20 61 72 65 20 6e 6f 74 20 72 75 6e 20 69 66 20 74 68 65 79 20 61 72 65 20 6e 65 76 fers.are.not.run.if.they.are.nev
5a560 65 72 20 65 78 65 63 75 74 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 er.executed.</span>.........<spa
5a580 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 20 7b 0a n.class="tok-kw">defer</span>.{.
5a5a0 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ............print(<span.class="t
5a5c0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 33 20 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e ok-str">&quot;3.&quot;</span>,..
5a5e0 7b 7d 29 3b 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
5a600 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 re></figure><figure><figcaption.
5a620 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 class="shell-cap">Shell</figcapt
5a640 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 64 ion><pre><samp>$.<kbd>zig.test.d
5a660 65 66 65 72 5f 75 6e 77 69 6e 64 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 64 65 66 65 72 5f efer_unwind.zig</kbd>.1/1.defer_
5a680 75 6e 77 69 6e 64 2e 74 65 73 74 2e 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 2e 2e 2e 0a 32 unwind.test.defer.unwinding....2
5a6a0 20 31 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 .1.OK.All.1.tests.passed..</samp
5a6c0 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 49 6e 73 69 64 65 ></pre></figure>.......<p>Inside
5a6e0 20 61 20 64 65 66 65 72 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68 65 20 72 65 74 75 72 6e 20 73 .a.defer.expression.the.return.s
5a700 74 61 74 65 6d 65 6e 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 3c 2f 70 3e 0a 20 20 20 tatement.is.not.allowed.</p>....
5a720 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
5a740 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 g-cap"><cite.class="file">test_i
5a760 6e 76 61 6c 69 64 5f 64 65 66 65 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 nvalid_defer.zig</cite></figcapt
5a780 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ion><pre><code><span.class="tok-
5a7a0 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
5a7c0 6e 22 3e 64 65 66 65 72 49 6e 76 61 6c 69 64 45 78 61 6d 70 6c 65 3c 2f 73 70 61 6e 3e 28 29 20 n">deferInvalidExample</span>().
5a7e0 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
5a800 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 64 an>.{.....<span.class="tok-kw">d
5a820 65 66 65 72 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 efer</span>.{.........<span.clas
5a840 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
5a860 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 44 65 66 65 72 lass="tok-kw">error</span>.Defer
5a880 45 72 72 6f 72 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 Error;.....}......<span.class="t
5a8a0 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 73 ok-kw">return</span>.<span.class
5a8c0 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 44 65 66 65 72 45 72 72 6f ="tok-kw">error</span>.DeferErro
5a8e0 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 r;.}</code></pre></figure><figur
5a900 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
5a920 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
5a940 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 69 6e 76 61 6c 69 64 5f 64 65 66 65 72 2e kbd>zig.test.test_invalid_defer.
5a960 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 zig</kbd>.<span.class="sgr-1m">d
5a980 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 69 6e 76 61 6c 69 64 5f 64 65 66 65 72 2e 7a 69 67 ocgen_tmp/test_invalid_defer.zig
5a9a0 3a 33 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 :3:9:.</span><span.class="sgr-31
5a9c0 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 m">error:.</span><span.class="sg
5a9e0 72 2d 31 6d 22 3e 63 61 6e 6e 6f 74 20 72 65 74 75 72 6e 20 66 72 6f 6d 20 64 65 66 65 72 20 65 r-1m">cannot.return.from.defer.e
5aa00 78 70 72 65 73 73 69 6f 6e 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 xpression.</span>........return.
5aa20 65 72 72 6f 72 2e 44 65 66 65 72 45 72 72 6f 72 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 error.DeferError;.........<span.
5aa40 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e class="sgr-32m">^~~~~~~~~~~~~~~~
5aa60 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d ~~~~~~~.</span><span.class="sgr-
5aa80 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 69 6e 76 61 6c 69 64 5f 64 65 66 65 1m">docgen_tmp/test_invalid_defe
5aaa0 72 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 73 r.zig:2:5:.</span><span.class="s
5aac0 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 gr-36m">note:.</span><span.class
5aae0 3d 22 73 67 72 2d 31 6d 22 3e 64 65 66 65 72 20 65 78 70 72 65 73 73 69 6f 6e 20 68 65 72 65 0a ="sgr-1m">defer.expression.here.
5ab00 3c 2f 73 70 61 6e 3e 20 20 20 20 64 65 66 65 72 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 </span>....defer.{.....<span.cla
5ab20 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d ss="sgr-32m">^~~~~.</span>.</sam
5ab40 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 p></pre></figure>.......<p>See.a
5ab60 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 45 72 72 6f 72 lso:</p><ul>.<li><a.href="#Error
5ab80 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>........
5aba0 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 3c 61 20 68 .......<h2.id="unreachable"><a.h
5abc0 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 75 6e 72 65 61 63 68 61 62 6c 65 22 3e ref="nav.xhtml#toc-unreachable">
5abe0 75 6e 72 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 unreachable</a>.<a.class="hdr".h
5ac00 72 65 66 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 32 3e 0a 0a ref="#unreachable">..</a></h2>..
5ac20 20 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 ......<p>.......In.<a.href="#Deb
5ac40 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 65 6c 65 ug">Debug</a>.and.<a.href="#Rele
5ac60 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 6d 6f 64 65 0a 20 20 aseSafe">ReleaseSafe</a>.mode...
5ac80 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 ....<code><span.class="tok-kw">u
5aca0 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 65 6d 69 74 73 20 61 nreachable</span></code>.emits.a
5acc0 20 63 61 6c 6c 20 74 6f 20 3c 63 6f 64 65 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 20 77 69 74 68 .call.to.<code>panic</code>.with
5ace0 20 74 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 .the.message.<code>reached.unrea
5ad00 63 68 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 chable.code</code>........</p>..
5ad20 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 52 65 6c 65 .....<p>.......In.<a.href="#Rele
5ad40 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 61 20 aseFast">ReleaseFast</a>.and.<a.
5ad60 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 61 6c href="#ReleaseSmall">ReleaseSmal
5ad80 6c 3c 2f 61 3e 20 6d 6f 64 65 2c 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 75 73 65 73 20 74 l</a>.mode,.the.optimizer.uses.t
5ada0 68 65 20 61 73 73 75 6d 70 74 69 6f 6e 20 74 68 61 74 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 he.assumption.that.<code><span.c
5adc0 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 3e lass="tok-kw">unreachable</span>
5ade0 3c 2f 63 6f 64 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 </code>.code.......will.never.be
5ae00 20 68 69 74 20 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 0a 20 .hit.to.perform.optimizations...
5ae20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 42 61 73 69 63 73 22 3e .....</p>.......<h3.id="Basics">
5ae40 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 42 61 73 69 63 73 22 3e 42 <a.href="nav.xhtml#toc-Basics">B
5ae60 61 73 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 asics</a>.<a.class="hdr".href="#
5ae80 42 61 73 69 63 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 Basics">..</a></h3>........<figu
5aea0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
5aec0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 75 6e 72 65 61 63 68 61 62 cite.class="file">test_unreachab
5aee0 6c 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c le.zig</cite></figcaption><pre><
5af00 63 6f 64 65 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 code><span.class="tok-comment">/
5af20 2f 20 75 6e 72 65 61 63 68 61 62 6c 65 20 69 73 20 75 73 65 64 20 74 6f 20 61 73 73 65 72 74 20 /.unreachable.is.used.to.assert.
5af40 74 68 61 74 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 77 69 6c 6c 20 6e 65 76 65 72 20 72 65 61 that.control.flow.will.never.rea
5af60 63 68 20 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 ch.a</span>.<span.class="tok-com
5af80 6d 65 6e 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 ment">//.particular.location:</s
5afa0 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 3c 2f pan>.<span.class="tok-kw">test</
5afc0 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
5afe0 74 3b 62 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 t;basic.math&quot;</span>.{.....
5b000 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
5b020 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 22 3e 31 >.x.=.<span.class="tok-number">1
5b040 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
5b060 22 3e 63 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 ">const</span>.y.=.<span.class="
5b080 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 3c 73 70 61 6e 20 tok-number">2</span>;.....<span.
5b0a0 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 2b 20 79 20 class="tok-kw">if</span>.(x.+.y.
5b0c0 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 33 3c 2f 73 !=.<span.class="tok-number">3</s
5b0e0 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 6f 6b pan>).{.........<span.class="tok
5b100 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 7d 0a 7d -kw">unreachable</span>;.....}.}
5b120 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 </code></pre></figure><figure><f
5b140 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c igcaption.class="shell-cap">Shel
5b160 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e l</figcaption><pre><samp>$.<kbd>
5b180 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3c 2f 6b zig.test.test_unreachable.zig</k
5b1a0 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 74 65 73 74 2e 62 61 bd>.1/1.test_unreachable.test.ba
5b1c0 73 69 63 20 6d 61 74 68 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 sic.math....OK.All.1.tests.passe
5b1e0 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 d..</samp></pre></figure>.......
5b200 3c 70 3e 49 6e 20 66 61 63 74 2c 20 74 68 69 73 20 69 73 20 68 6f 77 20 3c 63 6f 64 65 3e 73 74 <p>In.fact,.this.is.how.<code>st
5b220 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 69 6d 70 6c 65 6d 65 d.debug.assert</code>.is.impleme
5b240 6e 74 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 nted:</p>.......<figure><figcapt
5b260 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d ion.class="zig-cap"><cite.class=
5b280 22 66 69 6c 65 22 3e 74 65 73 74 5f 61 73 73 65 72 74 69 6f 6e 5f 66 61 69 6c 75 72 65 2e 7a 69 "file">test_assertion_failure.zi
5b2a0 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
5b2c0 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 69 <span.class="tok-comment">//.Thi
5b2e0 73 20 69 73 20 68 6f 77 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 20 69 73 20 69 6d 70 s.is.how.std.debug.assert.is.imp
5b300 6c 65 6d 65 6e 74 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 lemented</span>.<span.class="tok
5b320 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-
5b340 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 61 73 fn">assert</span>(ok:.<span.clas
5b360 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 6e 20 s="tok-type">bool</span>).<span.
5b380 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>.{..
5b3a0 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
5b3c0 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 6e 72 >.(!ok).<span.class="tok-kw">unr
5b3e0 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 74 6f eachable</span>;.<span.class="to
5b400 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 65 3c k-comment">//.assertion.failure<
5b420 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 65 /span>.}..<span.class="tok-comme
5b440 6e 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 nt">//.This.test.will.fail.becau
5b460 73 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 se.we.hit.unreachable.</span>.<s
5b480 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>.<
5b4a0 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.
5b4c0 77 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 will.fail&quot;</span>.{.....ass
5b4e0 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 3e 66 61 6c 73 65 ert(<span.class="tok-null">false
5b500 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 2f 66 69 67 75 72 65 </span>);.}</code></pre></figure
5b520 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
5b540 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
5b560 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 61 73 73 65 72 74 69 amp>$.<kbd>zig.test.test_asserti
5b580 6f 6e 5f 66 61 69 6c 75 72 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 61 73 on_failure.zig</kbd>.1/1.test_as
5b5a0 73 65 72 74 69 6f 6e 5f 66 61 69 6c 75 72 65 2e 74 65 73 74 2e 74 68 69 73 20 77 69 6c 6c 20 66 sertion_failure.test.this.will.f
5b5c0 61 69 6c 2e 2e 2e 20 74 68 72 65 61 64 20 31 33 39 32 34 37 20 70 61 6e 69 63 3a 20 72 65 61 63 ail....thread.139247.panic:.reac
5b5e0 68 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 hed.unreachable.code.<span.class
5b600 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 ="sgr-1m">/home/andy/src/zig-0.1
5b620 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 61 73 73 65 72 74 69 6f 6e 5f 66 61 2.x/docgen_tmp/test_assertion_fa
5b640 69 6c 75 72 65 2e 7a 69 67 3a 33 3a 31 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 ilure.zig:3:14</span>:.<span.cla
5b660 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 38 66 36 64 20 69 6e 20 61 73 73 65 72 74 20 ss="sgr-2m">0x1038f6d.in.assert.
5b680 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 65 61 (test)</span>.....if.(!ok).unrea
5b6a0 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....
5b6c0 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e ..........<span.class="sgr-32m">
5b6e0 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 ^</span>.<span.class="sgr-1m">/h
5b700 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 ome/andy/src/zig-0.12.x/docgen_t
5b720 6d 70 2f 74 65 73 74 5f 61 73 73 65 72 74 69 6f 6e 5f 66 61 69 6c 75 72 65 2e 7a 69 67 3a 38 3a mp/test_assertion_failure.zig:8:
5b740 31 31 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 11</span>:.<span.class="sgr-2m">
5b760 30 78 31 30 33 38 66 32 61 20 69 6e 20 74 65 73 74 2e 74 68 69 73 20 77 69 6c 6c 20 66 61 69 6c 0x1038f2a.in.test.this.will.fail
5b780 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 61 6c 73 65 29 .(test)</span>.....assert(false)
5b7a0 3b 0a 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d ;...........<span.class="sgr-32m
5b7c0 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e ">^</span>.<span.class="sgr-1m">
5b7e0 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f /home/andy/src/zig-0.12.x/lib/co
5b800 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 35 38 3a 32 35 3c 2f 73 mpiler/test_runner.zig:158:25</s
5b820 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 pan>:.<span.class="sgr-2m">0x104
5b840 33 63 34 64 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 28 74 65 73 74 29 3c 2f 73 70 61 3c4d.in.mainTerminal.(test)</spa
5b860 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 29 29 20 7c n>.........if.(test_fn.func()).|
5b880 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 20 3c 73 70 _|.{.........................<sp
5b8a0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 an.class="sgr-32m">^</span>.<spa
5b8c0 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f n.class="sgr-1m">/home/andy/src/
5b8e0 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e zig-0.12.x/lib/compiler/test_run
5b900 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 ner.zig:35:28</span>:.<span.clas
5b920 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 64 38 62 20 69 6e 20 6d 61 69 6e 20 28 74 65 s="sgr-2m">0x1039d8b.in.main.(te
5b940 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 69 6e 54 65 st)</span>.........return.mainTe
5b960 72 6d 69 6e 61 6c 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 20 rminal();.......................
5b980 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 .....<span.class="sgr-32m">^</sp
5b9a0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 an>.<span.class="sgr-1m">/home/a
5b9c0 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 ndy/src/zig-0.12.x/lib/std/start
5b9e0 2e 7a 69 67 3a 35 30 31 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:501:22</span>:.<span.class=
5ba00 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 34 31 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d "sgr-2m">0x1039419.in.posixCallM
5ba20 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 20 ainAndExit.(test)</span>........
5ba40 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 20 .....root.main();...............
5ba60 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f .......<span.class="sgr-32m">^</
5ba80 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 span>.<span.class="sgr-1m">/home
5baa0 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 /andy/src/zig-0.12.x/lib/std/sta
5bac0 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 rt.zig:253:5</span>:.<span.class
5bae0 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 38 66 38 31 20 69 6e 20 5f 73 74 61 72 74 20 28 74 ="sgr-2m">0x1038f81.in._start.(t
5bb00 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 est)</span>.....asm.volatile.(sw
5bb20 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 itch.(native_arch).{.....<span.c
5bb40 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c lass="sgr-32m">^</span>.<span.cl
5bb60 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 ass="sgr-1m">???:?:?</span>:.<sp
5bb80 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f an.class="sgr-2m">0x0.in.???.(??
5bba0 3f 29 3c 2f 73 70 61 6e 3e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 ?)</span>.error:.the.following.t
5bbc0 65 73 74 20 63 6f 6d 6d 61 6e 64 20 63 72 61 73 68 65 64 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f est.command.crashed:./home/andy/
5bbe0 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 36 35 32 37 63 src/zig-0.12.x/zig-cache/o/6527c
5bc00 64 65 35 34 65 66 32 61 31 61 39 65 32 66 36 38 65 63 32 34 38 66 65 37 36 34 31 2f 74 65 73 74 de54ef2a1a9e2f68ec248fe7641/test
5bc20 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 .</samp></pre></figure>.........
5bc40 20 20 20 20 20 3c 68 33 20 69 64 3d 22 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 3e 3c 61 .....<h3.id="At-Compile-Time"><a
5bc60 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 41 74 2d 43 6f 6d 70 69 6c 65 2d .href="nav.xhtml#toc-At-Compile-
5bc80 54 69 6d 65 22 3e 41 74 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 Time">At.Compile-Time</a>.<a.cla
5bca0 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 ss="hdr".href="#At-Compile-Time"
5bcc0 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 >..</a></h3>........<figure><fig
5bce0 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c caption.class="zig-cap"><cite.cl
5bd00 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 75 6e 72 65 61 63 68 ass="file">test_comptime_unreach
5bd20 61 62 6c 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 able.zig</cite></figcaption><pre
5bd40 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
5bd60 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
5bd80 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
5bda0 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;
5bdc0 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
5bde0 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
5be00 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 79 70 65 20 6f 66 20 75 6e 72 lass="tok-str">&quot;type.of.unr
5be20 65 61 63 68 61 62 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 eachable&quot;</span>.{.....<spa
5be40 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>
5be60 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 6d 6d .{.........<span.class="tok-comm
5be80 65 6e 74 22 3e 2f 2f 20 54 68 65 20 74 79 70 65 20 6f 66 20 75 6e 72 65 61 63 68 61 62 6c 65 20 ent">//.The.type.of.unreachable.
5bea0 69 73 20 6e 6f 72 65 74 75 72 6e 2e 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 is.noreturn.</span>..........<sp
5bec0 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 6f 77 65 76 65 an.class="tok-comment">//.Howeve
5bee0 72 20 74 68 69 73 20 61 73 73 65 72 74 69 6f 6e 20 77 69 6c 6c 20 73 74 69 6c 6c 20 66 61 69 6c r.this.assertion.will.still.fail
5bf00 20 74 6f 20 63 6f 6d 70 69 6c 65 20 62 65 63 61 75 73 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 .to.compile.because</span>......
5bf20 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">//.
5bf40 75 6e 72 65 61 63 68 61 62 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 63 6f 6d 70 unreachable.expressions.are.comp
5bf60 69 6c 65 20 65 72 72 6f 72 73 2e 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 20 20 20 20 61 73 73 65 ile.errors.</span>..........asse
5bf80 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 54 79 rt(<span.class="tok-builtin">@Ty
5bfa0 70 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 6b 77 22 peOf</span>(<span.class="tok-kw"
5bfc0 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c >unreachable</span>).==.<span.cl
5bfe0 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 29 3b ass="tok-type">noreturn</span>);
5c000 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 .....}.}</code></pre></figure><f
5c020 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 igure><figcaption.class="shell-c
5c040 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 ap">Shell</figcaption><pre><samp
5c060 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 75 >$.<kbd>zig.test.test_comptime_u
5c080 6e 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 nreachable.zig</kbd>.<span.class
5c0a0 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 ="sgr-1m">docgen_tmp/test_compti
5c0c0 6d 65 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3a 31 30 3a 31 36 3a 20 3c 2f 73 70 61 6e me_unreachable.zig:10:16:.</span
5c0e0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f ><span.class="sgr-31m">error:.</
5c100 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 75 6e 72 65 61 63 span><span.class="sgr-1m">unreac
5c120 68 61 62 6c 65 20 63 6f 64 65 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 61 73 73 65 72 74 hable.code.</span>........assert
5c140 28 40 54 79 70 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 (@TypeOf(unreachable).==.noretur
5c160 6e 29 3b 0a 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 n);................<span.class="
5c180 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f sgr-32m">^~~~~~~~~~~~~~~~~~~~.</
5c1a0 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e span><span.class="sgr-1m">docgen
5c1c0 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 7a _tmp/test_comptime_unreachable.z
5c1e0 69 67 3a 31 30 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 73 67 ig:10:24:.</span><span.class="sg
5c200 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d r-36m">note:.</span><span.class=
5c220 22 73 67 72 2d 31 6d 22 3e 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 69 73 20 64 69 76 65 72 74 65 "sgr-1m">control.flow.is.diverte
5c240 64 20 68 65 72 65 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 40 54 79 d.here.</span>........assert(@Ty
5c260 70 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 peOf(unreachable).==.noreturn);.
5c280 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 20 63 6c 61 .......................<span.cla
5c2a0 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e ss="sgr-32m">^~~~~~~~~~~.</span>
5c2c0 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 .</samp></pre></figure>.......<p
5c2e0 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="
5c300 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 6c 69 #Zig-Test">Zig.Test</a></li>.<li
5c320 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 6f 64 ><a.href="#Build-Mode">Build.Mod
5c340 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 69 6d e</a></li>.<li><a.href="#comptim
5c360 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 20 20 e">comptime</a></li>.</ul>......
5c380 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6e 6f 72 65 74 75 72 6e ................<h2.id="noreturn
5c3a0 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6e 6f 72 65 74 75 72 "><a.href="nav.xhtml#toc-noretur
5c3c0 6e 22 3e 6e 6f 72 65 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 n">noreturn</a>.<a.class="hdr".h
5c3e0 72 65 66 3d 22 23 6e 6f 72 65 74 75 72 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 ref="#noreturn">..</a></h2>.....
5c400 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...<p>.......<code><span.class="
5c420 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 63 6f 64 65 3e tok-type">noreturn</span></code>
5c440 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 0a 20 20 20 20 .is.the.type.of:.......</p>.....
5c460 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 3e 3c 73 70 61 6e ..<ul>...........<li><code><span
5c480 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 6f .class="tok-kw">break</span></co
5c4a0 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 3e 3c 73 70 de></li>...........<li><code><sp
5c4c0 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 70 61 6e an.class="tok-kw">continue</span
5c4e0 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
5c500 65 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 3c 2f 73 e><span.class="tok-kw">return</s
5c520 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 3c pan></code></li>...........<li><
5c540 63 6f 64 65 3e 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 code><span.class="tok-kw">unreac
5c560 68 61 62 6c 65 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 hable</span></code></li>........
5c580 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ...<li><code><span.class="tok-kw
5c5a0 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 6b ">while</span>.(<span.class="tok
5c5c0 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 6c -null">true</span>).{}</code></l
5c5e0 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 73 i>.......</ul>.......<p>When.res
5c600 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 3c olving.types.together,.such.as.<
5c620 63 6f 64 65 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 code><span.class="tok-kw">if</sp
5c640 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 6c 61 75 73 65 73 20 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 an></code>.clauses.or.<code><spa
5c660 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 3c 2f n.class="tok-kw">switch</span></
5c680 63 6f 64 65 3e 20 70 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 code>.prongs,...............the.
5c6a0 3c 63 6f 64 65 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 <code><span.class="tok-type">nor
5c6c0 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 20 63 6f 6d 70 eturn</span></code>.type.is.comp
5c6e0 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 65 2e 20 43 6f atible.with.every.other.type..Co
5c700 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 66 69 67 75 72 65 nsider:.......</p>.......<figure
5c720 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 ><figcaption.class="zig-cap"><ci
5c740 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6e 6f 72 65 74 75 72 6e 2e 7a 69 te.class="file">test_noreturn.zi
5c760 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
5c780 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>.<
5c7a0 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 63 span.class="tok-fn">foo</span>(c
5c7c0 6f 6e 64 69 74 69 6f 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 ondition:.<span.class="tok-type"
5c7e0 3e 62 6f 6f 6c 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 >bool</span>,.b:.<span.class="to
5c800 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 3d k-type">u32</span>).<span.class=
5c820 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
5c840 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
5c860 20 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 .=.<span.class="tok-kw">if</span
5c880 3e 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 62 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b >.(condition).b.<span.class="tok
5c8a0 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 22 74 6f -kw">else</span>.<span.class="to
5c8c0 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 61 3b 0a k-kw">return</span>;....._.=.a;.
5c8e0 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 70 ....<span.class="tok-builtin">@p
5c900 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 6b 2d 73 74 72 anic</span>(<span.class="tok-str
5c920 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 61 26 71 75 6f 74 ">&quot;do.something.with.a&quot
5c940 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 74 6f 6b 2d 6b 77 ;</span>);.}.<span.class="tok-kw
5c960 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
5c980 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 73 70 61 6e 3e 20 tr">&quot;noreturn&quot;</span>.
5c9a0 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 6c 6c 22 {.....foo(<span.class="tok-null"
5c9c0 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-
5c9e0 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 3e 3c 2f 70 72 65 number">1</span>);.}</code></pre
5ca00 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c ></figure><figure><figcaption.cl
5ca20 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f ass="shell-cap">Shell</figcaptio
5ca40 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 n><pre><samp>$.<kbd>zig.test.tes
5ca60 74 5f 6e 6f 72 65 74 75 72 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6e 6f t_noreturn.zig</kbd>.1/1.test_no
5ca80 72 65 74 75 72 6e 2e 74 65 73 74 2e 6e 6f 72 65 74 75 72 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 return.test.noreturn....OK.All.1
5caa0 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 .tests.passed..</samp></pre></fi
5cac0 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 6e 6f 74 68 65 72 20 75 73 65 20 63 61 73 65 20 gure>.......<p>Another.use.case.
5cae0 66 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 for.<code><span.class="tok-type"
5cb00 3e 6e 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 >noreturn</span></code>.is.the.<
5cb20 63 6f 64 65 3e 65 78 69 74 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 3a 3c 2f 70 3e 0a 20 code>exit</code>.function:</p>..
5cb40 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
5cb60 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
5cb80 5f 6e 6f 72 65 74 75 72 6e 5f 66 72 6f 6d 5f 65 78 69 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f _noreturn_from_exit.zig</cite></
5cba0 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 figcaption><pre><code><span.clas
5cbc0 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
5cbe0 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<
5cc00 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
5cc20 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
5cc40 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 20 s="tok-kw">const</span>.builtin.
5cc60 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
5cc80 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"
5cca0 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 3c 73 >&quot;builtin&quot;</span>);.<s
5ccc0 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>.
5cce0 6e 61 74 69 76 65 5f 61 72 63 68 20 3d 20 62 75 69 6c 74 69 6e 2e 63 70 75 2e 61 72 63 68 3b 0a native_arch.=.builtin.cpu.arch;.
5cd00 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
5cd20 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a >.expect.=.std.testing.expect;..
5cd40 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
5cd60 3e 20 57 49 4e 41 50 49 3a 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 43 61 6c 6c 69 6e 67 43 6f 6e >.WINAPI:.std.builtin.CallingCon
5cd80 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 6b 77 22 3e 69 vention.=.<span.class="tok-kw">i
5cda0 66 3c 2f 73 70 61 6e 3e 20 28 6e 61 74 69 76 65 5f 61 72 63 68 20 3d 3d 20 2e 78 38 36 29 20 2e f</span>.(native_arch.==..x86)..
5cdc0 53 74 64 63 61 6c 6c 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 Stdcall.<span.class="tok-kw">els
5cde0 65 3c 2f 73 70 61 6e 3e 20 2e 43 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 e</span>..C;.<span.class="tok-kw
5ce00 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 6f 6b ">extern</span>.<span.class="tok
5ce20 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 70 61 6e -str">&quot;kernel32&quot;</span
5ce40 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>
5ce60 20 3c 73 70 61 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 .<span.class="tok-fn">ExitProces
5ce80 73 3c 2f 73 70 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 s</span>(exit_code:.<span.class=
5cea0 22 74 6f 6b 2d 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 "tok-type">c_uint</span>).<span.
5cec0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 6c 6c 63 6f 6e 76 3c 2f 73 70 61 6e 3e 28 57 class="tok-kw">callconv</span>(W
5cee0 49 4e 41 50 49 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 6e 6f INAPI).<span.class="tok-type">no
5cf00 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 73 73 3d 22 74 6f 6b return</span>;..<span.class="tok
5cf20 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
5cf40 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 0a k-str">&quot;foo&quot;</span>.{.
5cf60 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</
5cf80 73 70 61 6e 3e 20 76 61 6c 75 65 20 3d 20 62 61 72 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d span>.value.=.bar().<span.class=
5cfa0 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 45 78 69 74 50 72 6f 63 65 73 "tok-kw">catch</span>.ExitProces
5cfc0 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 31 3c 2f 73 70 s(<span.class="tok-number">1</sp
5cfe0 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 74 an>);.....<span.class="tok-kw">t
5d000 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 76 61 6c 75 65 20 3d 3d 20 3c 73 70 61 6e 20 ry</span>.expect(value.==.<span.
5d020 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>);
5d040 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
5d060 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 72 3c 2f 73 70 61 n>.<span.class="tok-fn">bar</spa
5d080 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 65 n>().<span.class="tok-type">anye
5d0a0 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 70 rror</span>!<span.class="tok-typ
5d0c0 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 3d e">u32</span>.{.....<span.class=
5d0e0 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
5d100 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 7d 3c 2f ss="tok-number">1234</span>;.}</
5d120 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
5d140 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
5d160 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
5d180 67 20 74 65 73 74 20 74 65 73 74 5f 6e 6f 72 65 74 75 72 6e 5f 66 72 6f 6d 5f 65 78 69 74 2e 7a g.test.test_noreturn_from_exit.z
5d1a0 69 67 20 2d 74 61 72 67 65 74 20 78 38 36 5f 36 34 2d 77 69 6e 64 6f 77 73 20 2d 2d 74 65 73 74 ig.-target.x86_64-windows.--test
5d1c0 2d 6e 6f 2d 65 78 65 63 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 -no-exec</kbd>.</samp></pre></fi
5d1e0 67 75 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 46 75 6e 63 gure>...............<h2.id="Func
5d200 74 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 46 75 tions"><a.href="nav.xhtml#toc-Fu
5d220 6e 63 74 69 6f 6e 73 22 3e 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d nctions">Functions</a>.<a.class=
5d240 22 68 64 72 22 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f "hdr".href="#Functions">..</a></
5d260 68 32 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 h2>........<figure><figcaption.c
5d280 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
5d2a0 22 3e 74 65 73 74 5f 66 75 6e 63 74 69 6f 6e 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 ">test_functions.zig</cite></fig
5d2c0 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
5d2e0 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 6e tok-kw">const</span>.std.=.<span
5d300 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
5d320 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;
5d340 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 22 std&quot;</span>);.<span.class="
5d360 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.=.<
5d380 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
5d3a0 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
5d3c0 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 6e uot;builtin&quot;</span>);.<span
5d3e0 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 61 74 .class="tok-kw">const</span>.nat
5d400 69 76 65 5f 61 72 63 68 20 3d 20 62 75 69 6c 74 69 6e 2e 63 70 75 2e 61 72 63 68 3b 0a 3c 73 70 ive_arch.=.builtin.cpu.arch;.<sp
5d420 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
5d440 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 xpect.=.std.testing.expect;..<sp
5d460 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 75 6e 63 74 69 an.class="tok-comment">//.Functi
5d480 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 3c 2f 73 70 61 6e ons.are.declared.like.this</span
5d4a0 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 6e 3e >.<span.class="tok-kw">fn</span>
5d4c0 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 2f 73 70 61 6e 3e .<span.class="tok-fn">add</span>
5d4e0 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 38 3c 2f 73 (a:.<span.class="tok-type">i8</s
5d500 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 70 65 22 3e pan>,.b:.<span.class="tok-type">
5d520 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 74 79 70 65 i8</span>).<span.class="tok-type
5d540 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 61 73 73 3d 22 74 ">i8</span>.{.....<span.class="t
5d560 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 61 6e 20 63 6c 61 ok-kw">if</span>.(a.==.<span.cla
5d580 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 7b 0a 20 20 20 20 ss="tok-number">0</span>).{.....
5d5a0 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<
5d5c0 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 20 63 6c 61 73 73 /span>.b;.....}......<span.class
5d5e0 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 2b 20 62 3b 0a 7d ="tok-kw">return</span>.a.+.b;.}
5d600 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
5d620 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 61 20 66 75 6e 63 he.export.specifier.makes.a.func
5d640 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 20 74 68 65 20 67 tion.externally.visible.in.the.g
5d660 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 73 3d 22 74 6f 6b enerated</span>.<span.class="tok
5d680 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 61 6e 64 20 6d 61 -comment">//.object.file,.and.ma
5d6a0 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 6e 3e 0a 3c 73 70 kes.it.use.the.C.ABI.</span>.<sp
5d6c0 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 20 an.class="tok-kw">export</span>.
5d6e0 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>.<
5d700 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 70 61 6e 3e 28 61 span.class="tok-fn">sub</span>(a
5d720 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 38 3c 2f 73 70 61 :.<span.class="tok-type">i8</spa
5d740 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 69 38 n>,.b:.<span.class="tok-type">i8
5d760 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">
5d780 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 6f 6b 2d 6b 77 22 i8</span>.{.<span.class="tok-kw"
5d7a0 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 73 70 61 6e 20 63 >return</span>.a.-.b;.}..<span.c
5d7c0 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 65 78 74 65 72 6e lass="tok-comment">//.The.extern
5d7e0 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 61 72 65 20 61 20 .specifier.is.used.to.declare.a.
5d800 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 6c 76 65 64 3c 2f function.that.will.be.resolved</
5d820 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">
5d840 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 69 6e 67 20 73 74 //.at.link.time,.when.linking.st
5d860 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 68 65 6e 20 6c 69 atically,.or.at.runtime,.when.li
5d880 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 74 6f 6b 2d 63 6f nking</span>.<span.class="tok-co
5d8a0 6d 6d 65 6e 74 22 3e 2f 2f 20 64 79 6e 61 6d 69 63 61 6c 6c 79 2e 20 54 68 65 20 71 75 6f 74 65 mment">//.dynamically..The.quote
5d8c0 64 20 69 64 65 6e 74 69 66 69 65 72 20 61 66 74 65 72 20 74 68 65 20 65 78 74 65 72 6e 20 6b 65 d.identifier.after.the.extern.ke
5d8e0 79 77 6f 72 64 20 73 70 65 63 69 66 69 65 73 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 yword.specifies</span>.<span.cla
5d900 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 6c 69 62 72 61 72 79 20 ss="tok-comment">//.the.library.
5d920 74 68 61 74 20 68 61 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 20 28 65 2e 67 2e 20 26 71 75 that.has.the.function..(e.g..&qu
5d940 6f 74 3b 63 26 71 75 6f 74 3b 20 2d 26 67 74 3b 20 6c 69 62 63 2e 73 6f 29 3c 2f 73 70 61 6e 3e ot;c&quot;.-&gt;.libc.so)</span>
5d960 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 68 .<span.class="tok-comment">//.Th
5d980 65 20 63 61 6c 6c 63 6f 6e 76 20 73 70 65 63 69 66 69 65 72 20 63 68 61 6e 67 65 73 20 74 68 65 e.callconv.specifier.changes.the
5d9a0 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 75 6e 63 74 .calling.convention.of.the.funct
5d9c0 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"
5d9e0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 57 49 4e 41 50 49 3a 20 73 74 64 2e 62 75 69 6c 74 69 >const</span>.WINAPI:.std.builti
5da00 6e 2e 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 20 63 6c 61 73 n.CallingConvention.=.<span.clas
5da20 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 6e 61 74 69 76 65 5f 61 72 63 s="tok-kw">if</span>.(native_arc
5da40 68 20 3d 3d 20 2e 78 38 36 29 20 2e 53 74 64 63 61 6c 6c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d h.==..x86)..Stdcall.<span.class=
5da60 22 74 6f 6b 2d 6b 77 22 3e 65 6c 73 65 3c 2f 73 70 61 6e 3e 20 2e 43 3b 0a 3c 73 70 61 6e 20 63 "tok-kw">else</span>..C;.<span.c
5da80 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 20 3c 73 70 61 lass="tok-kw">extern</span>.<spa
5daa0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6b 65 72 6e 65 6c 33 32 n.class="tok-str">&quot;kernel32
5dac0 26 71 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 &quot;</span>.<span.class="tok-k
5dae0 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
5db00 22 3e 45 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 ">ExitProcess</span>(exit_code:.
5db20 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
5db40 3e 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 6c 6c 63 6f 6e 76 >).<span.class="tok-kw">callconv
5db60 3c 2f 73 70 61 6e 3e 28 57 49 4e 41 50 49 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>(WINAPI).<span.class="tok
5db80 2d 74 79 70 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c -type">noreturn</span>;.<span.cl
5dba0 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 20 3c 73 70 61 6e ass="tok-kw">extern</span>.<span
5dbc0 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;</
5dbe0 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
5dc00 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 74 61 6e 32 3c pan>.<span.class="tok-fn">atan2<
5dc20 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"
5dc40 3e 66 36 34 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 >f64</span>,.b:.<span.class="tok
5dc60 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 3d 22 -type">f64</span>).<span.class="
5dc80 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 tok-type">f64</span>;..<span.cla
5dca0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 40 73 65 74 43 6f 6c 64 ss="tok-comment">//.The.@setCold
5dcc0 20 62 75 69 6c 74 69 6e 20 74 65 6c 6c 73 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 74 68 61 .builtin.tells.the.optimizer.tha
5dce0 74 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 72 61 72 65 6c 79 20 63 61 6c 6c 65 64 2e 3c 2f t.a.function.is.rarely.called.</
5dd00 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
5dd20 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 62 6f 72 74 3c pan>.<span.class="tok-fn">abort<
5dd40 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">
5dd60 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 noreturn</span>.{.....<span.clas
5dd80 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 43 6f 6c 64 3c 2f 73 70 61 6e 3e 28 s="tok-builtin">@setCold</span>(
5dda0 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
5ddc0 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 77 68 n>);.....<span.class="tok-kw">wh
5dde0 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 6e 75 6c ile</span>.(<span.class="tok-nul
5de00 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 29 20 7b 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 l">true</span>).{}.}..<span.clas
5de20 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 6e 61 6b 65 64 20 63 61 6c s="tok-comment">//.The.naked.cal
5de40 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 6d 61 6b 65 73 20 61 20 66 75 6e 63 74 69 6f 6e ling.convention.makes.a.function
5de60 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6c 6f 67 75 65 20 .not.have.any.function.prologue.
5de80 6f 72 20 65 70 69 6c 6f 67 75 65 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d or.epilogue.</span>.<span.class=
5dea0 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 "tok-comment">//.This.can.be.use
5dec0 66 75 6c 20 77 68 65 6e 20 69 6e 74 65 67 72 61 74 69 6e 67 20 77 69 74 68 20 61 73 73 65 6d 62 ful.when.integrating.with.assemb
5dee0 6c 79 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 ly.</span>.<span.class="tok-kw">
5df00 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 5f fn</span>.<span.class="tok-fn">_
5df20 73 74 61 72 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 start</span>().<span.class="tok-
5df40 6b 77 22 3e 63 61 6c 6c 63 6f 6e 76 3c 2f 73 70 61 6e 3e 28 2e 4e 61 6b 65 64 29 20 3c 73 70 61 kw">callconv</span>(.Naked).<spa
5df60 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
5df80 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
5dfa0 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 63 61 6c ="tok-comment">//.The.inline.cal
5dfc0 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 66 6f 72 63 65 73 20 61 20 66 75 6e 63 74 69 6f ling.convention.forces.a.functio
5dfe0 6e 20 74 6f 20 62 65 20 69 6e 6c 69 6e 65 64 20 61 74 20 61 6c 6c 20 63 61 6c 6c 20 73 69 74 65 n.to.be.inlined.at.all.call.site
5e000 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
5e020 6e 74 22 3e 2f 2f 20 49 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6e 6f 74 20 62 65 nt">//.If.the.function.cannot.be
5e040 20 69 6e 6c 69 6e 65 64 2c 20 69 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 65 .inlined,.it.is.a.compile-time.e
5e060 72 72 6f 72 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 rror.</span>.<span.class="tok-kw
5e080 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"
5e0a0 3e 73 68 69 66 74 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 >shiftLeftOne</span>(a:.<span.cl
5e0c0 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 3c 73 70 61 6e ass="tok-type">u32</span>).<span
5e0e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 6c 6c 63 6f 6e 76 3c 2f 73 70 61 6e 3e 28 .class="tok-kw">callconv</span>(
5e100 2e 49 6e 6c 69 6e 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 .Inline).<span.class="tok-type">
5e120 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 3d 22 74 6f u32</span>.{.....<span.class="to
5e140 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 26 6c 74 3b 26 6c 74 3b 20 3c k-kw">return</span>.a.&lt;&lt;.<
5e160 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>
5e180 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 2f ;.}..<span.class="tok-comment">/
5e1a0 2f 20 54 68 65 20 70 75 62 20 73 70 65 63 69 66 69 65 72 20 61 6c 6c 6f 77 73 20 74 68 65 20 66 /.The.pub.specifier.allows.the.f
5e1c0 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 76 69 73 69 62 6c 65 20 77 68 65 6e 20 69 6d 70 6f 72 unction.to.be.visible.when.impor
5e1e0 74 69 6e 67 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 ting.</span>.<span.class="tok-co
5e200 6d 6d 65 6e 74 22 3e 2f 2f 20 41 6e 6f 74 68 65 72 20 66 69 6c 65 20 63 61 6e 20 75 73 65 20 40 mment">//.Another.file.can.use.@
5e220 69 6d 70 6f 72 74 20 61 6e 64 20 63 61 6c 6c 20 73 75 62 32 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 import.and.call.sub2</span>.<spa
5e240 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
5e260 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
5e280 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 75 62 32 3c 2f 73 70 61 6e 3e 28 61 3a 20 3c .class="tok-fn">sub2</span>(a:.<
5e2a0 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 2c span.class="tok-type">i8</span>,
5e2c0 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 38 3c 2f 73 .b:.<span.class="tok-type">i8</s
5e2e0 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 38 3c pan>).<span.class="tok-type">i8<
5e300 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 72 65 /span>.{.<span.class="tok-kw">re
5e320 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 2d 20 62 3b 20 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 turn</span>.a.-.b;.}..<span.clas
5e340 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 46 75 6e 63 74 69 6f 6e 20 70 6f 69 6e s="tok-comment">//.Function.poin
5e360 74 65 72 73 20 61 72 65 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 60 2a 63 6f 6e 73 74 20 60 ters.are.prefixed.with.`*const.`
5e380 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 6f .</span>.<span.class="tok-kw">co
5e3a0 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 61 6c 6c 32 4f 70 20 3d 20 2a 3c 73 70 61 6e 20 63 6c 61 73 nst</span>.Call2Op.=.*<span.clas
5e3c0 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
5e3e0 61 73 73 3d 22 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 ass="tok-kw">fn</span>.(a:.<span
5e400 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 2c 20 62 3a 20 .class="tok-type">i8</span>,.b:.
5e420 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 3e <span.class="tok-type">i8</span>
5e440 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 38 3c 2f 73 70 61 ).<span.class="tok-type">i8</spa
5e460 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 66 6e 3c 2f 73 70 61 n>;.<span.class="tok-kw">fn</spa
5e480 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 4f 70 3c 2f 73 70 n>.<span.class="tok-fn">doOp</sp
5e4a0 61 6e 3e 28 66 6e 43 61 6c 6c 3a 20 43 61 6c 6c 32 4f 70 2c 20 6f 70 31 3a 20 3c 73 70 61 6e 20 an>(fnCall:.Call2Op,.op1:.<span.
5e4c0 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 20 6f 70 32 3a class="tok-type">i8</span>,.op2:
5e4e0 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
5e500 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 38 3c 2f 73 70 >).<span.class="tok-type">i8</sp
5e520 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
5e540 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 6e 43 61 6c 6c 28 6f 70 31 2c 20 6f 70 32 29 3b 0a 7d eturn</span>.fnCall(op1,.op2);.}
5e560 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
5e580 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 66 n>.<span.class="tok-str">&quot;f
5e5a0 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 61 6e unction&quot;</span>.{.....<span
5e5c0 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
5e5e0 74 28 64 6f 4f 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 t(doOp(add,.<span.class="tok-num
5e600 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-
5e620 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
5e640 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 3c 73 ="tok-number">11</span>);.....<s
5e660 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 65 78 pan.class="tok-kw">try</span>.ex
5e680 70 65 63 74 28 64 6f 4f 70 28 73 75 62 32 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b pect(doOp(sub2,.<span.class="tok
5e6a0 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 22 -number">5</span>,.<span.class="
5e6c0 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 20 tok-number">6</span>).==.-<span.
5e6e0 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 3c class="tok-number">1</span>);.}<
5e700 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
5e720 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
5e740 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
5e760 69 67 20 74 65 73 74 20 74 65 73 74 5f 66 75 6e 63 74 69 6f 6e 73 2e 7a 69 67 3c 2f 6b 62 64 3e ig.test.test_functions.zig</kbd>
5e780 0a 31 2f 31 20 74 65 73 74 5f 66 75 6e 63 74 69 6f 6e 73 2e 74 65 73 74 2e 66 75 6e 63 74 69 6f .1/1.test_functions.test.functio
5e7a0 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 n....OK.All.1.tests.passed..</sa
5e7c0 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 72 mp></pre></figure>.......<p>Ther
5e7e0 65 20 69 73 20 61 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 61 20 66 75 6e 63 e.is.a.difference.between.a.func
5e800 74 69 6f 6e 20 3c 65 6d 3e 62 6f 64 79 3c 2f 65 6d 3e 20 61 6e 64 20 61 20 66 75 6e 63 74 69 6f tion.<em>body</em>.and.a.functio
5e820 6e 20 3c 65 6d 3e 70 6f 69 6e 74 65 72 3c 2f 65 6d 3e 2e 0a 20 20 20 20 20 20 46 75 6e 63 74 69 n.<em>pointer</em>........Functi
5e840 6f 6e 20 62 6f 64 69 65 73 20 61 72 65 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 on.bodies.are.<a.href="#comptime
5e860 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 2d 6f 6e 6c 79 20 74 79 70 65 73 20 77 68 69 6c 65 20 ">comptime</a>-only.types.while.
5e880 66 75 6e 63 74 69 6f 6e 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 function.<a.href="#Pointers">Poi
5e8a0 6e 74 65 72 73 3c 2f 61 3e 20 6d 61 79 20 62 65 0a 20 20 20 20 20 20 72 75 6e 74 69 6d 65 2d 6b nters</a>.may.be.......runtime-k
5e8c0 6e 6f 77 6e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 50 61 73 73 2d 62 79 2d nown.</p>.......<h3.id="Pass-by-
5e8e0 76 61 6c 75 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 value-Parameters"><a.href="nav.x
5e900 68 74 6d 6c 23 74 6f 63 2d 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 2d 50 61 72 61 6d 65 74 65 72 html#toc-Pass-by-value-Parameter
5e920 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 3c 2f 61 3e 20 s">Pass-by-value.Parameters</a>.
5e940 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 50 61 73 73 2d 62 79 2d 76 61 <a.class="hdr".href="#Pass-by-va
5e960 6c 75 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 lue-Parameters">..</a></h3>.....
5e980 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 72 69 6d 69 74 69 76 65 20 74 79 70 65 73 20 73 75 63 ...<p>.......Primitive.types.suc
5e9a0 68 20 61 73 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 h.as.<a.href="#Integers">Integer
5e9c0 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 s</a>.and.<a.href="#Floats">Floa
5e9e0 74 73 3c 2f 61 3e 20 70 61 73 73 65 64 20 61 73 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 ts</a>.passed.as.parameters.....
5ea00 20 20 61 72 65 20 63 6f 70 69 65 64 2c 20 61 6e 64 20 74 68 65 6e 20 74 68 65 20 63 6f 70 79 20 ..are.copied,.and.then.the.copy.
5ea20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 is.available.in.the.function.bod
5ea40 79 2e 20 54 68 69 73 20 69 73 20 63 61 6c 6c 65 64 20 22 70 61 73 73 69 6e 67 20 62 79 20 76 61 y..This.is.called."passing.by.va
5ea60 6c 75 65 22 2e 0a 20 20 20 20 20 20 43 6f 70 79 69 6e 67 20 61 20 70 72 69 6d 69 74 69 76 65 20 lue"........Copying.a.primitive.
5ea80 74 79 70 65 20 69 73 20 65 73 73 65 6e 74 69 61 6c 6c 79 20 66 72 65 65 20 61 6e 64 20 74 79 70 type.is.essentially.free.and.typ
5eaa0 69 63 61 6c 6c 79 20 69 6e 76 6f 6c 76 65 73 20 6e 6f 74 68 69 6e 67 20 6d 6f 72 65 20 74 68 61 ically.involves.nothing.more.tha
5eac0 6e 0a 20 20 20 20 20 20 73 65 74 74 69 6e 67 20 61 20 72 65 67 69 73 74 65 72 2e 0a 20 20 20 20 n.......setting.a.register......
5eae0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 74 72 75 63 74 73 2c 20 ..</p>.......<p>.......Structs,.
5eb00 75 6e 69 6f 6e 73 2c 20 61 6e 64 20 61 72 72 61 79 73 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 unions,.and.arrays.can.sometimes
5eb20 20 62 65 20 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 6c 79 20 70 61 73 73 65 64 20 61 73 20 61 .be.more.efficiently.passed.as.a
5eb40 20 72 65 66 65 72 65 6e 63 65 2c 20 73 69 6e 63 65 20 61 20 63 6f 70 79 0a 20 20 20 20 20 20 63 .reference,.since.a.copy.......c
5eb60 6f 75 6c 64 20 62 65 20 61 72 62 69 74 72 61 72 69 6c 79 20 65 78 70 65 6e 73 69 76 65 20 64 65 ould.be.arbitrarily.expensive.de
5eb80 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 73 69 7a 65 2e 20 57 68 65 6e 20 74 68 65 73 65 20 pending.on.the.size..When.these.
5eba0 74 79 70 65 73 20 61 72 65 20 70 61 73 73 65 64 0a 20 20 20 20 20 20 61 73 20 70 61 72 61 6d 65 types.are.passed.......as.parame
5ebc0 74 65 72 73 2c 20 5a 69 67 20 6d 61 79 20 63 68 6f 6f 73 65 20 74 6f 20 63 6f 70 79 20 61 6e 64 ters,.Zig.may.choose.to.copy.and
5ebe0 20 70 61 73 73 20 62 79 20 76 61 6c 75 65 2c 20 6f 72 20 70 61 73 73 20 62 79 20 72 65 66 65 72 .pass.by.value,.or.pass.by.refer
5ec00 65 6e 63 65 2c 20 77 68 69 63 68 65 76 65 72 20 77 61 79 0a 20 20 20 20 20 20 5a 69 67 20 64 65 ence,.whichever.way.......Zig.de
5ec20 63 69 64 65 73 20 77 69 6c 6c 20 62 65 20 66 61 73 74 65 72 2e 20 54 68 69 73 20 69 73 20 6d 61 cides.will.be.faster..This.is.ma
5ec40 64 65 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 20 70 61 72 74 2c 20 62 79 20 74 68 65 20 66 61 63 de.possible,.in.part,.by.the.fac
5ec60 74 20 74 68 61 74 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 69 6d 6d 75 74 61 62 6c 65 2e t.that.parameters.are.immutable.
5ec80 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 .......</p>.......<figure><figca
5eca0 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
5ecc0 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 70 61 73 73 5f 62 79 5f 72 65 66 65 72 65 6e 63 65 5f s="file">test_pass_by_reference_
5ece0 6f 72 5f 76 61 6c 75 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e or_value.zig</cite></figcaption>
5ed00 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
5ed20 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
5ed40 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:
5ed60 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
5ed80 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
5eda0 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 73 3d 22 74 ">i32</span>,.};..<span.class="t
5edc0 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
5ede0 6b 2d 66 6e 22 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 70 6f 69 6e 74 3a 20 50 6f 69 6e 74 29 20 3c k-fn">foo</span>(point:.Point).<
5ee00 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>
5ee20 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 74 22 .{.....<span.class="tok-comment"
5ee40 3e 2f 2f 20 48 65 72 65 2c 20 60 70 6f 69 6e 74 60 20 63 6f 75 6c 64 20 62 65 20 61 20 72 65 66 >//.Here,.`point`.could.be.a.ref
5ee60 65 72 65 6e 63 65 2c 20 6f 72 20 61 20 63 6f 70 79 2e 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 erence,.or.a.copy..The.function.
5ee80 62 6f 64 79 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 body</span>.....<span.class="tok
5eea0 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 63 61 6e 20 69 67 6e 6f 72 65 20 74 68 65 20 64 69 66 66 -comment">//.can.ignore.the.diff
5eec0 65 72 65 6e 63 65 20 61 6e 64 20 74 72 65 61 74 20 69 74 20 61 73 20 61 20 76 61 6c 75 65 2e 20 erence.and.treat.it.as.a.value..
5eee0 42 65 20 76 65 72 79 20 63 61 72 65 66 75 6c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e Be.very.careful</span>.....<span
5ef00 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 61 6b 69 6e 67 20 74 .class="tok-comment">//.taking.t
5ef20 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 2d 20 69 74 he.address.of.the.parameter.-.it
5ef40 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 69 66 3c 2f 73 70 61 6e 3e 0a .should.be.treated.as.if</span>.
5ef60 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">//
5ef80 20 74 68 65 20 61 64 64 72 65 73 73 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 69 6e 76 61 6c 69 64 .the.address.will.become.invalid
5efa0 20 77 68 65 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 2e 3c 2f 73 70 61 .when.the.function.returns.</spa
5efc0 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 65 74 75 n>.....<span.class="tok-kw">retu
5efe0 72 6e 3c 2f 73 70 61 6e 3e 20 70 6f 69 6e 74 2e 78 20 2b 20 70 6f 69 6e 74 2e 79 3b 0a 7d 0a 0a rn</span>.point.x.+.point.y;.}..
5f000 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
5f020 3e 20 65 78 70 65 63 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 >.expect.=.<span.class="tok-buil
5f040 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=
5f060 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>
5f080 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ).testing.expect;..<span.class="
5f0a0 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=
5f0c0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 61 73 73 20 73 74 72 75 63 74 20 74 6f 20 66 "tok-str">&quot;pass.struct.to.f
5f0e0 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 61 6e unction&quot;</span>.{.....<span
5f100 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
5f120 74 28 66 6f 6f 28 50 6f 69 6e 74 7b 20 2e 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t(foo(Point{..x.=.<span.class="t
5f140 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 20 3c 73 70 61 6e 20 ok-number">1</span>,..y.=.<span.
5f160 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 20 7d 29 20 3d class="tok-number">2</span>.}).=
5f180 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 70 =.<span.class="tok-number">3</sp
5f1a0 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 an>);.}</code></pre></figure><fi
5f1c0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
5f1e0 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
5f200 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 70 61 73 73 5f 62 79 5f 72 65 66 $.<kbd>zig.test.test_pass_by_ref
5f220 65 72 65 6e 63 65 5f 6f 72 5f 76 61 6c 75 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 erence_or_value.zig</kbd>.1/1.te
5f240 73 74 5f 70 61 73 73 5f 62 79 5f 72 65 66 65 72 65 6e 63 65 5f 6f 72 5f 76 61 6c 75 65 2e 74 65 st_pass_by_reference_or_value.te
5f260 73 74 2e 70 61 73 73 20 73 74 72 75 63 74 20 74 6f 20 66 75 6e 63 74 69 6f 6e 2e 2e 2e 20 4f 4b st.pass.struct.to.function....OK
5f280 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 .All.1.tests.passed..</samp></pr
5f2a0 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 e></figure>.......<p>.......For.
5f2c0 65 78 74 65 72 6e 20 66 75 6e 63 74 69 6f 6e 73 2c 20 5a 69 67 20 66 6f 6c 6c 6f 77 73 20 74 68 extern.functions,.Zig.follows.th
5f2e0 65 20 43 20 41 42 49 20 66 6f 72 20 70 61 73 73 69 6e 67 20 73 74 72 75 63 74 73 20 61 6e 64 20 e.C.ABI.for.passing.structs.and.
5f300 75 6e 69 6f 6e 73 20 62 79 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 unions.by.value........</p>.....
5f320 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 46 75 6e 63 74 69 6f 6e 2d 50 61 72 61 6d 65 .........<h3.id="Function-Parame
5f340 74 65 72 2d 54 79 70 65 2d 49 6e 66 65 72 65 6e 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 ter-Type-Inference"><a.href="nav
5f360 2e 78 68 74 6d 6c 23 74 6f 63 2d 46 75 6e 63 74 69 6f 6e 2d 50 61 72 61 6d 65 74 65 72 2d 54 79 .xhtml#toc-Function-Parameter-Ty
5f380 70 65 2d 49 6e 66 65 72 65 6e 63 65 22 3e 46 75 6e 63 74 69 6f 6e 20 50 61 72 61 6d 65 74 65 72 pe-Inference">Function.Parameter
5f3a0 20 54 79 70 65 20 49 6e 66 65 72 65 6e 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 .Type.Inference</a>.<a.class="hd
5f3c0 72 22 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 2d 50 61 72 61 6d 65 74 65 72 2d 54 79 70 r".href="#Function-Parameter-Typ
5f3e0 65 2d 49 6e 66 65 72 65 6e 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 e-Inference">..</a></h3>........
5f400 3c 70 3e 0a 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 20 63 61 <p>.......Function.parameters.ca
5f420 6e 20 62 65 20 64 65 63 6c 61 72 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 n.be.declared.with.<code><span.c
5f440 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f lass="tok-kw">anytype</span></co
5f460 64 65 3e 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 74 68 65 20 74 79 70 65 2e 0a 20 20 20 20 20 20 de>.in.place.of.the.type........
5f480 49 6e 20 74 68 69 73 20 63 61 73 65 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 73 In.this.case.the.parameter.types
5f4a0 20 77 69 6c 6c 20 62 65 20 69 6e 66 65 72 72 65 64 20 77 68 65 6e 20 74 68 65 20 66 75 6e 63 74 .will.be.inferred.when.the.funct
5f4c0 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 2e 0a 20 20 20 20 20 20 55 73 65 20 3c 61 20 68 72 65 66 ion.is.called........Use.<a.href
5f4e0 3d 22 23 54 79 70 65 4f 66 22 3e 40 54 79 70 65 4f 66 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 ="#TypeOf">@TypeOf</a>.and.<a.hr
5f500 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 20 74 6f 20 ef="#typeInfo">@typeInfo</a>.to.
5f520 67 65 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 69 6e 66 65 72 72 get.information.about.the.inferr
5f540 65 64 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 66 69 67 75 72 ed.type........</p>.......<figur
5f560 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
5f580 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 66 6e 5f 74 79 70 65 5f 69 6e ite.class="file">test_fn_type_in
5f5a0 66 65 72 65 6e 63 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ference.zig</cite></figcaption><
5f5c0 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pre><code><span.class="tok-kw">c
5f5e0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 onst</span>.expect.=.<span.class
5f600 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
5f620 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
5f640 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 ot;</span>).testing.expect;..<sp
5f660 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
5f680 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 61 64 64 46 6f 72 74 79 54 77 6f 3c 2f 73 70 n.class="tok-fn">addFortyTwo</sp
5f6a0 61 6e 3e 28 78 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 74 an>(x:.<span.class="tok-kw">anyt
5f6c0 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 62 75 69 ype</span>).<span.class="tok-bui
5f6e0 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 78 29 20 7b 0a 20 20 20 20 3c 73 ltin">@TypeOf</span>(x).{.....<s
5f700 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>
5f720 20 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 22 3e 34 32 .x.+.<span.class="tok-number">42
5f740 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"
5f760 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
5f780 72 22 3e 26 71 75 6f 74 3b 66 6e 20 74 79 70 65 20 69 6e 66 65 72 65 6e 63 65 26 71 75 6f 74 3b r">&quot;fn.type.inference&quot;
5f7a0 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
5f7c0 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 64 64 46 6f 72 74 79 54 77 6f w">try</span>.expect(addFortyTwo
5f7e0 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 70 61 (<span.class="tok-number">1</spa
5f800 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 3e n>).==.<span.class="tok-number">
5f820 34 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 73 3d 22 74 6f 6b 43</span>);.....<span.class="tok
5f840 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 -kw">try</span>.expect(<span.cla
5f860 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 ss="tok-builtin">@TypeOf</span>(
5f880 61 64 64 46 6f 72 74 79 54 77 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d addFortyTwo(<span.class="tok-num
5f8a0 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ber">1</span>)).==.<span.class="
5f8c0 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 29 3b 0a tok-type">comptime_int</span>);.
5f8e0 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</
5f900 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 79 70 65 22 3e span>.y:.<span.class="tok-type">
5f920 69 36 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 i64</span>.=.<span.class="tok-nu
5f940 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=
5f960 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 64 64 46 6f "tok-kw">try</span>.expect(addFo
5f980 72 74 79 54 77 6f 28 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 rtyTwo(y).==.<span.class="tok-nu
5f9a0 6d 62 65 72 22 3e 34 34 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 mber">44</span>);.....<span.clas
5f9c0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 s="tok-kw">try</span>.expect(<sp
5f9e0 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 4f 66 3c 2f an.class="tok-builtin">@TypeOf</
5fa00 73 70 61 6e 3e 28 61 64 64 46 6f 72 74 79 54 77 6f 28 79 29 29 20 3d 3d 20 3c 73 70 61 6e 20 63 span>(addFortyTwo(y)).==.<span.c
5fa20 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 29 3b 0a 7d 3c 2f lass="tok-type">i64</span>);.}</
5fa40 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
5fa60 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
5fa80 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
5faa0 67 20 74 65 73 74 20 74 65 73 74 5f 66 6e 5f 74 79 70 65 5f 69 6e 66 65 72 65 6e 63 65 2e 7a 69 g.test.test_fn_type_inference.zi
5fac0 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 66 6e 5f 74 79 70 65 5f 69 6e 66 65 72 65 6e g</kbd>.1/1.test_fn_type_inferen
5fae0 63 65 2e 74 65 73 74 2e 66 6e 20 74 79 70 65 20 69 6e 66 65 72 65 6e 63 65 2e 2e 2e 20 4f 4b 0a ce.test.fn.type.inference....OK.
5fb00 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 All.1.tests.passed..</samp></pre
5fb20 3e 3c 2f 66 69 67 75 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 ></figure>................<h3.id
5fb40 3d 22 69 6e 6c 69 6e 65 2d 66 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 ="inline-fn"><a.href="nav.xhtml#
5fb60 74 6f 63 2d 69 6e 6c 69 6e 65 2d 66 6e 22 3e 69 6e 6c 69 6e 65 20 66 6e 3c 2f 61 3e 20 3c 61 20 toc-inline-fn">inline.fn</a>.<a.
5fb80 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 66 6e 22 3e c2 a7 class="hdr".href="#inline-fn">..
5fba0 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 41 64 64 69 6e </a></h3>........<p>.......Addin
5fbc0 67 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 g.the.<code><span.class="tok-kw"
5fbe0 3e 69 6e 6c 69 6e 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 74 6f >inline</span></code>.keyword.to
5fc00 20 61 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 20 6d 61 6b 65 73 20 74 68 61 .a.function.definition.makes.tha
5fc20 74 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 62 65 63 6f 6d 65 20 3c 65 6d 3e 73 65 6d 61 t.......function.become.<em>sema
5fc40 6e 74 69 63 61 6c 6c 79 20 69 6e 6c 69 6e 65 64 3c 2f 65 6d 3e 20 61 74 20 74 68 65 20 63 61 6c ntically.inlined</em>.at.the.cal
5fc60 6c 73 69 74 65 2e 20 54 68 69 73 20 69 73 0a 20 20 20 20 20 20 6e 6f 74 20 61 20 68 69 6e 74 20 lsite..This.is.......not.a.hint.
5fc80 74 6f 20 62 65 20 70 6f 73 73 69 62 6c 79 20 6f 62 73 65 72 76 65 64 20 62 79 20 6f 70 74 69 6d to.be.possibly.observed.by.optim
5fca0 69 7a 61 74 69 6f 6e 20 70 61 73 73 65 73 2c 20 62 75 74 20 68 61 73 0a 20 20 20 20 20 20 69 6d ization.passes,.but.has.......im
5fcc0 70 6c 69 63 61 74 69 6f 6e 73 20 6f 6e 20 74 68 65 20 74 79 70 65 73 20 61 6e 64 20 76 61 6c 75 plications.on.the.types.and.valu
5fce0 65 73 20 69 6e 76 6f 6c 76 65 64 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c es.involved.in.the.function.call
5fd00 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 55 6e 6c ........</p>.......<p>.......Unl
5fd20 69 6b 65 20 6e 6f 72 6d 61 6c 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 2c 20 61 72 67 75 6d ike.normal.function.calls,.argum
5fd40 65 6e 74 73 20 61 74 20 61 6e 20 69 6e 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 ents.at.an.inline.function.calls
5fd60 69 74 65 20 77 68 69 63 68 20 61 72 65 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 ite.which.are.......compile-time
5fd80 20 6b 6e 6f 77 6e 20 61 72 65 20 74 72 65 61 74 65 64 20 61 73 20 3c 61 20 68 72 65 66 3d 22 23 .known.are.treated.as.<a.href="#
5fda0 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 43 6f 6d 70 69 6c 65 Compile-Time-Parameters">Compile
5fdc0 20 54 69 6d 65 20 50 61 72 61 6d 65 74 65 72 73 3c 2f 61 3e 2e 20 54 68 69 73 20 63 61 6e 20 70 .Time.Parameters</a>..This.can.p
5fde0 6f 74 65 6e 74 69 61 6c 6c 79 0a 20 20 20 20 20 20 70 72 6f 70 61 67 61 74 65 20 61 6c 6c 20 74 otentially.......propagate.all.t
5fe00 68 65 20 77 61 79 20 74 6f 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 3a 0a 20 20 20 20 he.way.to.the.return.value:.....
5fe20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
5fe40 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
5fe60 6c 65 22 3e 69 6e 6c 69 6e 65 5f 63 61 6c 6c 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 le">inline_call.zig</cite></figc
5fe80 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 aption><pre><code><span.class="t
5fea0 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="
5fec0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 6e 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 20 63 tok-str">&quot;inline.function.c
5fee0 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 61 6e 20 63 6c 61 all&quot;</span>.{.....<span.cla
5ff00 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 3c 73 70 61 6e ss="tok-kw">if</span>.(foo(<span
5ff20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 30 30 3c 2f 73 70 61 6e 3e 2c .class="tok-number">1200</span>,
5ff40 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 70 .<span.class="tok-number">34</sp
5ff60 61 6e 3e 29 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 an>).!=.<span.class="tok-number"
5ff80 3e 31 32 33 34 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 >1234</span>).{.........<span.cl
5ffa0 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 3c ass="tok-builtin">@compileError<
5ffc0 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
5ffe0 6f 74 3b 62 61 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c ot;bad&quot;</span>);.....}.}..<
60000 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 6e span.class="tok-kw">inline</span
60020 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>
60040 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 3e .<span.class="tok-fn">foo</span>
60060 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 33 32 3c 2f (a:.<span.class="tok-type">i32</
60080 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 70 65 22 span>,.b:.<span.class="tok-type"
600a0 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
600c0 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
600e0 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 2b 20 62 3b 0a 7d ="tok-kw">return</span>.a.+.b;.}
60100 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 </code></pre></figure><figure><f
60120 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c igcaption.class="shell-cap">Shel
60140 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e l</figcaption><pre><samp>$.<kbd>
60160 7a 69 67 20 74 65 73 74 20 69 6e 6c 69 6e 65 5f 63 61 6c 6c 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 zig.test.inline_call.zig</kbd>.1
60180 2f 31 20 69 6e 6c 69 6e 65 5f 63 61 6c 6c 2e 74 65 73 74 2e 69 6e 6c 69 6e 65 20 66 75 6e 63 74 /1.inline_call.test.inline.funct
601a0 69 6f 6e 20 63 61 6c 6c 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 ion.call....OK.All.1.tests.passe
601c0 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 d..</samp></pre></figure>.......
601e0 3c 70 3e 49 66 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 <p>If.<code><span.class="tok-kw"
60200 3e 69 6e 6c 69 6e 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 72 65 6d 6f 76 65 64 >inline</span></code>.is.removed
60220 2c 20 74 68 65 20 74 65 73 74 20 66 61 69 6c 73 20 77 69 74 68 20 74 68 65 20 63 6f 6d 70 69 6c ,.the.test.fails.with.the.compil
60240 65 20 65 72 72 6f 72 0a 20 20 20 20 20 20 69 6e 73 74 65 61 64 20 6f 66 20 70 61 73 73 69 6e 67 e.error.......instead.of.passing
60260 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 49 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 62 .</p>.......<p>It.is.generally.b
60280 65 74 74 65 72 20 74 6f 20 6c 65 74 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 64 65 63 69 64 65 etter.to.let.the.compiler.decide
602a0 20 77 68 65 6e 20 74 6f 20 69 6e 6c 69 6e 65 20 61 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e .when.to.inline.a.......function
602c0 2c 20 65 78 63 65 70 74 20 66 6f 72 20 74 68 65 73 65 20 73 63 65 6e 61 72 69 6f 73 3a 3c 2f 70 ,.except.for.these.scenarios:</p
602e0 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 54 6f 20 63 68 61 6e >.......<ul>.........<li>To.chan
60300 67 65 20 68 6f 77 20 6d 61 6e 79 20 73 74 61 63 6b 20 66 72 61 6d 65 73 20 61 72 65 20 69 6e 20 ge.how.many.stack.frames.are.in.
60320 74 68 65 20 63 61 6c 6c 20 73 74 61 63 6b 2c 20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 20 70 75 the.call.stack,.for.debugging.pu
60340 72 70 6f 73 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 6f 20 66 6f 72 63 rposes.</li>.........<li>To.forc
60360 65 20 63 6f 6d 70 74 69 6d 65 2d 6e 65 73 73 20 6f 66 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 e.comptime-ness.of.the.arguments
60380 20 74 6f 20 70 72 6f 70 61 67 61 74 65 20 74 6f 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 .to.propagate.to.the.return.valu
603a0 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2c 20 61 73 20 69 6e 20 74 68 65 20 61 62 6f e.of.the.function,.as.in.the.abo
603c0 76 65 20 65 78 61 6d 70 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 61 ve.example.</li>.........<li>Rea
603e0 6c 20 77 6f 72 6c 64 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 6d 65 61 73 75 72 65 6d 65 6e 74 73 l.world.performance.measurements
60400 20 64 65 6d 61 6e 64 20 69 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 .demand.it.</li>.......</ul>....
60420 20 20 20 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 ...<p>Note.that.<code><span.clas
60440 73 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 s="tok-kw">inline</span></code>.
60460 61 63 74 75 61 6c 6c 79 20 3c 65 6d 3e 72 65 73 74 72 69 63 74 73 3c 2f 65 6d 3e 0a 20 20 20 20 actually.<em>restricts</em>.....
60480 20 20 77 68 61 74 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 69 73 20 61 6c 6c 6f 77 65 64 20 74 ..what.the.compiler.is.allowed.t
604a0 6f 20 64 6f 2e 20 54 68 69 73 20 63 61 6e 20 68 61 72 6d 20 62 69 6e 61 72 79 20 73 69 7a 65 2c o.do..This.can.harm.binary.size,
604c0 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 65 64 2c 20 61 6e 64 20 65 76 .......compilation.speed,.and.ev
604e0 65 6e 20 72 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 en.runtime.performance.</p>.....
60500 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 ..........<h3.id="Function-Refle
60520 63 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 46 75 ction"><a.href="nav.xhtml#toc-Fu
60540 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 65 66 6c nction-Reflection">Function.Refl
60560 65 63 74 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 ection</a>.<a.class="hdr".href="
60580 23 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 #Function-Reflection">..</a></h3
605a0 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 >........<figure><figcaption.cla
605c0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
605e0 74 65 73 74 5f 66 6e 5f 72 65 66 6c 65 63 74 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 test_fn_reflection.zig</cite></f
60600 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
60620 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
60640 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</
60660 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
60680 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
606a0 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 74 68 20 3d 20 73 74 ="tok-kw">const</span>.math.=.st
606c0 64 2e 6d 61 74 68 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 d.math;.<span.class="tok-kw">con
606e0 73 74 3c 2f 73 70 61 6e 3e 20 74 65 73 74 69 6e 67 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 3b st</span>.testing.=.std.testing;
60700 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
60720 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 66 n>.<span.class="tok-str">&quot;f
60740 6e 20 72 65 66 6c 65 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 n.reflection&quot;</span>.{.....
60760 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>.
60780 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d testing.expect(<span.class="tok-
607a0 62 75 69 6c 74 69 6e 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 builtin">@typeInfo</span>(<span.
607c0 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 4f 66 3c 2f 73 70 61 class="tok-builtin">@TypeOf</spa
607e0 6e 3e 28 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 29 29 2e 46 6e 2e 70 61 72 61 6d 73 5b 3c 73 n>(testing.expect)).Fn.params[<s
60800 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>]
60820 2e 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
60840 61 6e 3e 2e 3f 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 an>.?.==.<span.class="tok-type">
60860 62 6f 6f 6c 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 bool</span>);.....<span.class="t
60880 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 ok-kw">try</span>.testing.expect
608a0 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
608c0 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 74 6f 6b 2d 62 75 69 Info</span>(<span.class="tok-bui
608e0 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 74 65 73 74 69 6e 67 2e 74 6d 70 ltin">@TypeOf</span>(testing.tmp
60900 44 69 72 29 29 2e 46 6e 2e 72 65 74 75 72 6e 5f 74 79 70 65 2e 3f 20 3d 3d 20 74 65 73 74 69 6e Dir)).Fn.return_type.?.==.testin
60920 67 2e 54 6d 70 44 69 72 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b g.TmpDir);......<span.class="tok
60940 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 3c -kw">try</span>.testing.expect(<
60960 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 6e span.class="tok-builtin">@typeIn
60980 66 6f 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 fo</span>(<span.class="tok-built
609a0 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6d 61 74 68 2e 4c 6f 67 32 49 6e 74 29 in">@TypeOf</span>(math.Log2Int)
609c0 29 2e 46 6e 2e 69 73 5f 67 65 6e 65 72 69 63 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e ).Fn.is_generic);.}</code></pre>
609e0 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
60a00 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
60a20 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 ><pre><samp>$.<kbd>zig.test.test
60a40 5f 66 6e 5f 72 65 66 6c 65 63 74 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 _fn_reflection.zig</kbd>.1/1.tes
60a60 74 5f 66 6e 5f 72 65 66 6c 65 63 74 69 6f 6e 2e 74 65 73 74 2e 66 6e 20 72 65 66 6c 65 63 74 69 t_fn_reflection.test.fn.reflecti
60a80 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 on....OK.All.1.tests.passed..</s
60aa0 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 amp></pre></figure>.............
60ac0 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 72 72 6f 72 73 22 3e 3c 61 20 68 72 65 66 3d ........<h2.id="Errors"><a.href=
60ae0 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 "nav.xhtml#toc-Errors">Errors</a
60b00 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 72 72 6f 72 73 22 3e >.<a.class="hdr".href="#Errors">
60b20 c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 72 72 6f 72 ..</a></h2>........<h3.id="Error
60b40 2d 53 65 74 2d 54 79 70 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f -Set-Type"><a.href="nav.xhtml#to
60b60 63 2d 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 c-Error-Set-Type">Error.Set.Type
60b80 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 72 72 6f 72 </a>.<a.class="hdr".href="#Error
60ba0 2d 53 65 74 2d 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 -Set-Type">..</a></h3>........<p
60bc0 3e 0a 20 20 20 20 20 20 41 6e 20 65 72 72 6f 72 20 73 65 74 20 69 73 20 6c 69 6b 65 20 61 6e 20 >.......An.error.set.is.like.an.
60be0 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 <a.href="#enum">enum</a>........
60c00 48 6f 77 65 76 65 72 2c 20 65 61 63 68 20 65 72 72 6f 72 20 6e 61 6d 65 20 61 63 72 6f 73 73 20 However,.each.error.name.across.
60c20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 67 65 74 73 20 61 73 73 69 the.entire.compilation.gets.assi
60c40 67 6e 65 64 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 0a 20 20 20 20 20 20 67 gned.an.unsigned.integer.......g
60c60 72 65 61 74 65 72 20 74 68 61 6e 20 30 2e 20 59 6f 75 20 61 72 65 20 61 6c 6c 6f 77 65 64 20 74 reater.than.0..You.are.allowed.t
60c80 6f 20 64 65 63 6c 61 72 65 20 74 68 65 20 73 61 6d 65 20 65 72 72 6f 72 20 6e 61 6d 65 20 6d 6f o.declare.the.same.error.name.mo
60ca0 72 65 20 74 68 61 6e 20 6f 6e 63 65 2c 20 61 6e 64 20 69 66 20 79 6f 75 20 64 6f 2c 20 69 74 0a re.than.once,.and.if.you.do,.it.
60cc0 20 20 20 20 20 20 67 65 74 73 20 61 73 73 69 67 6e 65 64 20 74 68 65 20 73 61 6d 65 20 69 6e 74 ......gets.assigned.the.same.int
60ce0 65 67 65 72 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 eger.value........</p>.......<p>
60d00 0a 20 20 20 20 20 20 54 68 65 20 65 72 72 6f 72 20 73 65 74 20 74 79 70 65 20 64 65 66 61 75 6c .......The.error.set.type.defaul
60d20 74 73 20 74 6f 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ts.to.a.<code><span.class="tok-t
60d40 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 74 68 6f 75 67 68 20 69 ype">u16</span></code>,.though.i
60d60 66 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 64 69 73 74 69 6e 63 74 f.the.maximum.number.of.distinct
60d80 0a 20 20 20 20 20 20 65 72 72 6f 72 20 76 61 6c 75 65 73 20 69 73 20 70 72 6f 76 69 64 65 64 20 .......error.values.is.provided.
60da0 76 69 61 20 74 68 65 20 3c 6b 62 64 3e 2d 2d 65 72 72 6f 72 2d 6c 69 6d 69 74 20 5b 6e 75 6d 5d via.the.<kbd>--error-limit.[num]
60dc0 3c 2f 6b 62 64 3e 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 61 72 61 6d 65 74 65 72 20 61 6e </kbd>.command.line.parameter.an
60de0 20 69 6e 74 65 67 65 72 20 74 79 70 65 0a 20 20 20 20 20 20 77 69 74 68 20 74 68 65 20 6d 69 6e .integer.type.......with.the.min
60e00 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 62 69 74 73 20 72 65 71 75 69 72 65 64 20 74 6f 20 imum.number.of.bits.required.to.
60e20 72 65 70 72 65 73 65 6e 74 20 61 6c 6c 20 6f 66 20 74 68 65 20 65 72 72 6f 72 20 76 61 6c 75 65 represent.all.of.the.error.value
60e40 73 20 77 69 6c 6c 20 62 65 20 75 73 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 s.will.be.used........</p>......
60e60 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 3d 22 23 54 79 70 .<p>.......You.can.<a.href="#Typ
60e80 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 63 6f 65 72 63 65 3c 2f 61 3e 20 61 6e 20 65 72 72 6f 72 20 e-Coercion">coerce</a>.an.error.
60ea0 66 72 6f 6d 20 61 20 73 75 62 73 65 74 20 74 6f 20 61 20 73 75 70 65 72 73 65 74 3a 0a 20 20 20 from.a.subset.to.a.superset:....
60ec0 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f ...</p>.......<figure><figcaptio
60ee0 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 n.class="zig-cap"><cite.class="f
60f00 69 6c 65 22 3e 74 65 73 74 5f 63 6f 65 72 63 65 5f 65 72 72 6f 72 5f 73 75 62 73 65 74 5f 74 6f ile">test_coerce_error_subset_to
60f20 5f 73 75 70 65 72 73 65 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e _superset.zig</cite></figcaption
60f40 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
60f60 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=
60f80 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
60fa0 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
60fc0 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 77 t;</span>);..<span.class="tok-kw
60fe0 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 72 20 3d 20 3c ">const</span>.FileOpenError.=.<
61000 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>
61020 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 74 4f 66 4d 65 .{.....AccessDenied,.....OutOfMe
61040 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 0a 3c 73 70 61 mory,.....FileNotFound,.};..<spa
61060 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 6c n.class="tok-kw">const</span>.Al
61080 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 3d 22 74 6f 6b locationError.=.<span.class="tok
610a0 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 4f 66 4d 65 6d -kw">error</span>.{.....OutOfMem
610c0 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 77 22 3e 74 65 ory,.};..<span.class="tok-kw">te
610e0 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">
61100 26 71 75 6f 74 3b 63 6f 65 72 63 65 20 73 75 62 73 65 74 20 74 6f 20 73 75 70 65 72 73 65 74 26 &quot;coerce.subset.to.superset&
61120 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="
61140 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 72 72 20 3d 20 66 6f 6f 28 41 tok-kw">const</span>.err.=.foo(A
61160 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 29 3b 0a 20 20 20 llocationError.OutOfMemory);....
61180 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>
611a0 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 65 72 72 20 3d 3d 20 46 69 6c 65 4f .std.testing.expect(err.==.FileO
611c0 70 65 6e 45 72 72 6f 72 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 penError.OutOfMemory);.}..<span.
611e0 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
61200 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 41 6c lass="tok-fn">foo</span>(err:.Al
61220 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 29 20 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 20 7b 0a 20 locationError).FileOpenError.{..
61240 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</
61260 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 2f 66 69 67 75 72 span>.err;.}</code></pre></figur
61280 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
612a0 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
612c0 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 65 72 63 65 samp>$.<kbd>zig.test.test_coerce
612e0 5f 65 72 72 6f 72 5f 73 75 62 73 65 74 5f 74 6f 5f 73 75 70 65 72 73 65 74 2e 7a 69 67 3c 2f 6b _error_subset_to_superset.zig</k
61300 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 65 72 72 6f 72 5f 73 75 62 73 65 74 bd>.1/1.test_coerce_error_subset
61320 5f 74 6f 5f 73 75 70 65 72 73 65 74 2e 74 65 73 74 2e 63 6f 65 72 63 65 20 73 75 62 73 65 74 20 _to_superset.test.coerce.subset.
61340 74 6f 20 73 75 70 65 72 73 65 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 to.superset....OK.All.1.tests.pa
61360 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 ssed..</samp></pre></figure>....
61380 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 75 74 20 79 6f 75 20 63 61 6e 6e 6f 74 20 3c 61 20 68 ...<p>.......But.you.cannot.<a.h
613a0 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 63 6f 65 72 63 65 3c 2f 61 3e 20 ref="#Type-Coercion">coerce</a>.
613c0 61 6e 20 65 72 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 an.error.from.a.superset.to.a.su
613e0 62 73 65 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c bset:.......</p>.......<figure><
61400 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
61420 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 65 72 63 65 5f 65 72 72 6f 72 5f .class="file">test_coerce_error_
61440 73 75 70 65 72 73 65 74 5f 74 6f 5f 73 75 62 73 65 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 superset_to_subset.zig</cite></f
61460 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
61480 3d 22 74 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 ="tok-kw">const</span>.FileOpenE
614a0 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 6f rror.=.<span.class="tok-kw">erro
614c0 72 3c 2f 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 r</span>.{.....AccessDenied,....
614e0 20 4f 75 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 .OutOfMemory,.....FileNotFound,.
61500 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</
61520 73 70 61 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 span>.AllocationError.=.<span.cl
61540 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 20 ass="tok-kw">error</span>.{.....
61560 4f 75 74 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 OutOfMemory,.};..<span.class="to
61580 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
615a0 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 6f 65 72 63 65 20 73 75 70 65 72 73 65 74 20 74 6f ok-str">&quot;coerce.superset.to
615c0 20 73 75 62 73 65 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 66 6f 6f 28 46 .subset&quot;</span>.{.....foo(F
615e0 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 20 3c 73 70 61 6e 20 ileOpenError.OutOfMemory).<span.
61600 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 7b 7d 3b 0a class="tok-kw">catch</span>.{};.
61620 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
61640 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
61660 3e 28 65 72 72 3a 20 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 >(err:.FileOpenError).Allocation
61680 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 22 Error.{.....<span.class="tok-kw"
616a0 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 72 >return</span>.err;.}</code></pr
616c0 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
616e0 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
61700 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
61720 73 74 5f 63 6f 65 72 63 65 5f 65 72 72 6f 72 5f 73 75 70 65 72 73 65 74 5f 74 6f 5f 73 75 62 73 st_coerce_error_superset_to_subs
61740 65 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d et.zig</kbd>.<span.class="sgr-1m
61760 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 65 72 63 65 5f 65 72 72 6f 72 5f 73 ">docgen_tmp/test_coerce_error_s
61780 75 70 65 72 73 65 74 5f 74 6f 5f 73 75 62 73 65 74 2e 7a 69 67 3a 31 36 3a 31 32 3a 20 3c 2f 73 uperset_to_subset.zig:16:12:.</s
617a0 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a pan><span.class="sgr-31m">error:
617c0 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 65 78 70 .</span><span.class="sgr-1m">exp
617e0 65 63 74 65 64 20 74 79 70 65 20 27 65 72 72 6f 72 7b 4f 75 74 4f 66 4d 65 6d 6f 72 79 7d 27 2c ected.type.'error{OutOfMemory}',
61800 20 66 6f 75 6e 64 20 27 65 72 72 6f 72 7b 41 63 63 65 73 73 44 65 6e 69 65 64 2c 4f 75 74 4f 66 .found.'error{AccessDenied,OutOf
61820 4d 65 6d 6f 72 79 2c 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 7d 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 Memory,FileNotFound}'.</span>...
61840 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 6e 20 63 6c .return.err;............<span.cl
61860 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 ass="sgr-32m">^~~.</span><span.c
61880 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f lass="sgr-1m">docgen_tmp/test_co
618a0 65 72 63 65 5f 65 72 72 6f 72 5f 73 75 70 65 72 73 65 74 5f 74 6f 5f 73 75 62 73 65 74 2e 7a 69 erce_error_superset_to_subset.zi
618c0 67 3a 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 73 67 72 g:16:12:.</span><span.class="sgr
618e0 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -36m">note:.</span><span.class="
61900 73 67 72 2d 31 6d 22 3e 27 65 72 72 6f 72 2e 41 63 63 65 73 73 44 65 6e 69 65 64 27 20 6e 6f 74 sgr-1m">'error.AccessDenied'.not
61920 20 61 20 6d 65 6d 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 .a.member.of.destination.error.s
61940 65 74 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 et.</span><span.class="sgr-1m">d
61960 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 65 72 63 65 5f 65 72 72 6f 72 5f 73 75 70 65 ocgen_tmp/test_coerce_error_supe
61980 72 73 65 74 5f 74 6f 5f 73 75 62 73 65 74 2e 7a 69 67 3a 31 36 3a 31 32 3a 20 3c 2f 73 70 61 6e rset_to_subset.zig:16:12:.</span
619a0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 ><span.class="sgr-36m">note:.</s
619c0 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 27 65 72 72 6f 72 2e pan><span.class="sgr-1m">'error.
619e0 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 27 20 6e 6f 74 20 61 20 6d 65 6d 62 65 72 20 6f 66 20 64 65 FileNotFound'.not.a.member.of.de
61a00 73 74 69 6e 61 74 69 6f 6e 20 65 72 72 6f 72 20 73 65 74 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e stination.error.set.</span><span
61a20 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f .class="sgr-1m">docgen_tmp/test_
61a40 63 6f 65 72 63 65 5f 65 72 72 6f 72 5f 73 75 70 65 72 73 65 74 5f 74 6f 5f 73 75 62 73 65 74 2e coerce_error_superset_to_subset.
61a60 7a 69 67 3a 31 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 73 zig:15:28:.</span><span.class="s
61a80 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 gr-36m">note:.</span><span.class
61aa0 3d 22 73 67 72 2d 31 6d 22 3e 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 20 74 79 70 65 20 64 ="sgr-1m">function.return.type.d
61ac0 65 63 6c 61 72 65 64 20 68 65 72 65 0a 3c 2f 73 70 61 6e 3e 66 6e 20 66 6f 6f 28 65 72 72 3a 20 eclared.here.</span>fn.foo(err:.
61ae0 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.{
61b00 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
61b20 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e n.class="sgr-32m">^~~~~~~~~~~~~~
61b40 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 72 65 ~.</span><span.class="sgr-2m">re
61b60 66 65 72 65 6e 63 65 64 20 62 79 3a 0a 20 20 20 20 74 65 73 74 2e 63 6f 65 72 63 65 20 73 75 70 ferenced.by:.....test.coerce.sup
61b80 65 72 73 65 74 20 74 6f 20 73 75 62 73 65 74 3a 20 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 erset.to.subset:.docgen_tmp/test
61ba0 5f 63 6f 65 72 63 65 5f 65 72 72 6f 72 5f 73 75 70 65 72 73 65 74 5f 74 6f 5f 73 75 62 73 65 74 _coerce_error_superset_to_subset
61bc0 2e 7a 69 67 3a 31 32 3a 35 0a 20 20 20 20 72 65 6d 61 69 6e 69 6e 67 20 72 65 66 65 72 65 6e 63 .zig:12:5.....remaining.referenc
61be0 65 20 74 72 61 63 65 73 20 68 69 64 64 65 6e 3b 20 75 73 65 20 27 2d 66 72 65 66 65 72 65 6e 63 e.traces.hidden;.use.'-freferenc
61c00 65 2d 74 72 61 63 65 27 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 65 66 65 72 65 6e 63 65 20 74 72 e-trace'.to.see.all.reference.tr
61c20 61 63 65 73 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 aces.</span>.</samp></pre></figu
61c40 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 61 20 73 re>.......<p>.......There.is.a.s
61c60 68 6f 72 74 63 75 74 20 66 6f 72 20 64 65 63 6c 61 72 69 6e 67 20 61 6e 20 65 72 72 6f 72 20 73 hortcut.for.declaring.an.error.s
61c80 65 74 20 77 69 74 68 20 6f 6e 6c 79 20 31 20 76 61 6c 75 65 2c 20 61 6e 64 20 74 68 65 6e 20 67 et.with.only.1.value,.and.then.g
61ca0 65 74 74 69 6e 67 20 74 68 61 74 20 76 61 6c 75 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 etting.that.value:.......</p>...
61cc0 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
61ce0 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 69 6e 67 6c ig-cap"><cite.class="file">singl
61d00 65 5f 76 61 6c 75 65 5f 65 72 72 6f 72 5f 73 65 74 5f 73 68 6f 72 74 63 75 74 2e 7a 69 67 3c 2f e_value_error_set_shortcut.zig</
61d20 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
61d40 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
61d60 72 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 rr.=.<span.class="tok-kw">error<
61d80 2f 73 70 61 6e 3e 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 65 /span>.FileNotFound;</code></pre
61da0 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 20 65 71 75 69 ></figure>.......<p>This.is.equi
61dc0 76 61 6c 65 6e 74 20 74 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 valent.to:</p>.......<figure><fi
61de0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
61e00 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 69 6e 67 6c 65 5f 76 61 6c 75 65 5f 65 72 72 6f 72 5f 73 lass="file">single_value_error_s
61e20 65 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c et.zig</cite></figcaption><pre><
61e40 63 6f 64 65 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 code><span.class="tok-kw">const<
61e60 2f 73 70 61 6e 3e 20 65 72 72 20 3d 20 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b /span>.err.=.(<span.class="tok-k
61e80 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 20 7b 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 7d 29 2e w">error</span>.{FileNotFound}).
61ea0 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 FileNotFound;</code></pre></figu
61ec0 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 65 63 6f 6d 65 73 re>.......<p>.......This.becomes
61ee0 20 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 .useful.when.using.<a.href="#Inf
61f00 65 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 erred-Error-Sets">Inferred.Error
61f20 20 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 34 20 .Sets</a>........</p>.......<h4.
61f40 69 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 id="The-Global-Error-Set"><a.hre
61f60 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f f="nav.xhtml#toc-The-Global-Erro
61f80 72 2d 53 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 20 r-Set">The.Global.Error.Set</a>.
61fa0 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 68 65 2d 47 6c 6f 62 61 6c <a.class="hdr".href="#The-Global
61fc0 2d 45 72 72 6f 72 2d 53 65 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c -Error-Set">..</a></h4>........<
61fe0 70 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 p><code><span.class="tok-type">a
62000 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 6f 20 nyerror</span></code>.refers.to.
62020 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 69 73 the.global.error.set........This
62040 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 73 20 .is.the.error.set.that.contains.
62060 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 6c 61 all.errors.in.the.entire.compila
62080 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 73 65 tion.unit........It.is.a.superse
620a0 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 61 20 t.of.all.other.error.sets.and.a.
620c0 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 3c 2f subset.of.none.of.them........</
620e0 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 3c 61 20 68 72 p>.......<p>.......You.can.<a.hr
62100 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 63 6f 65 72 63 65 3c 2f 61 3e 20 61 ef="#Type-Coercion">coerce</a>.a
62120 6e 79 20 65 72 72 6f 72 20 73 65 74 20 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 6f 6e 65 2c 20 ny.error.set.to.the.global.one,.
62140 61 6e 64 20 79 6f 75 20 63 61 6e 20 65 78 70 6c 69 63 69 74 6c 79 0a 20 20 20 20 20 20 63 61 73 and.you.can.explicitly.......cas
62160 74 20 61 6e 20 65 72 72 6f 72 20 6f 66 20 74 68 65 20 67 6c 6f 62 61 6c 20 65 72 72 6f 72 20 73 t.an.error.of.the.global.error.s
62180 65 74 20 74 6f 20 61 20 6e 6f 6e 2d 67 6c 6f 62 61 6c 20 6f 6e 65 2e 20 54 68 69 73 20 69 6e 73 et.to.a.non-global.one..This.ins
621a0 65 72 74 73 20 61 20 6c 61 6e 67 75 61 67 65 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 61 73 73 65 erts.a.language-level.......asse
621c0 72 74 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 20 65 72 72 6f 72 20 76 61 6c 75 65 20 rt.to.make.sure.the.error.value.
621e0 69 73 20 69 6e 20 66 61 63 74 20 69 6e 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 65 72 is.in.fact.in.the.destination.er
62200 72 6f 72 20 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 0a 20 20 ror.set........</p>.......<p>...
62220 20 20 20 20 54 68 65 20 67 6c 6f 62 61 6c 20 65 72 72 6f 72 20 73 65 74 20 73 68 6f 75 6c 64 20 ....The.global.error.set.should.
62240 67 65 6e 65 72 61 6c 6c 79 20 62 65 20 61 76 6f 69 64 65 64 20 62 65 63 61 75 73 65 20 69 74 20 generally.be.avoided.because.it.
62260 70 72 65 76 65 6e 74 73 20 74 68 65 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 72 20 66 72 6f 6d prevents.the.......compiler.from
62280 20 6b 6e 6f 77 69 6e 67 20 77 68 61 74 20 65 72 72 6f 72 73 20 61 72 65 20 70 6f 73 73 69 62 6c .knowing.what.errors.are.possibl
622a0 65 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 4b 6e 6f 77 69 6e 67 0a 20 20 20 20 20 e.at.compile-time..Knowing......
622c0 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 69 .the.error.set.at.compile-time.i
622e0 73 20 62 65 74 74 65 72 20 66 6f 72 20 67 65 6e 65 72 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 s.better.for.generated.documenta
62300 74 69 6f 6e 20 61 6e 64 0a 20 20 20 20 20 20 68 65 6c 70 66 75 6c 20 65 72 72 6f 72 20 6d 65 73 tion.and.......helpful.error.mes
62320 73 61 67 65 73 2c 20 73 75 63 68 20 61 73 20 66 6f 72 67 65 74 74 69 6e 67 20 61 20 70 6f 73 73 sages,.such.as.forgetting.a.poss
62340 69 62 6c 65 20 65 72 72 6f 72 20 76 61 6c 75 65 20 69 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 ible.error.value.in.a.<a.href="#
62360 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 switch">switch</a>........</p>..
62380 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 72 72 6f 72 ...................<h3.id="Error
623a0 2d 55 6e 69 6f 6e 2d 54 79 70 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 -Union-Type"><a.href="nav.xhtml#
623c0 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 20 55 6e 69 6f toc-Error-Union-Type">Error.Unio
623e0 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 72 65 66 3d 22 n.Type</a>.<a.class="hdr".href="
62400 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 68 33 3e 0a 0a #Error-Union-Type">..</a></h3>..
62420 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 74 20 74 79 70 ......<p>.......An.error.set.typ
62440 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 6d 62 69 6e 65 e.and.normal.type.can.be.combine
62460 64 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 3e 21 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 d.with.the.<code>!</code>.......
62480 62 69 6e 61 72 79 20 6f 70 65 72 61 74 6f 72 20 74 6f 20 66 6f 72 6d 20 61 6e 20 65 72 72 6f 72 binary.operator.to.form.an.error
624a0 20 75 6e 69 6f 6e 20 74 79 70 65 2e 20 59 6f 75 20 61 72 65 20 6c 69 6b 65 6c 79 20 74 6f 20 75 .union.type..You.are.likely.to.u
624c0 73 65 20 61 6e 0a 20 20 20 20 20 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 20 6d 6f 72 se.an.......error.union.type.mor
624e0 65 20 6f 66 74 65 6e 20 74 68 61 6e 20 61 6e 20 65 72 72 6f 72 20 73 65 74 20 74 79 70 65 20 62 e.often.than.an.error.set.type.b
62500 79 20 69 74 73 65 6c 66 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 y.itself........</p>.......<p>..
62520 20 20 20 20 20 48 65 72 65 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 70 61 72 73 65 .....Here.is.a.function.to.parse
62540 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 36 34 2d 62 69 74 20 69 6e 74 65 67 65 72 3a .a.string.into.a.64-bit.integer:
62560 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 .......</p>.......<figure><figca
62580 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
625a0 73 3d 22 66 69 6c 65 22 3e 65 72 72 6f 72 5f 75 6e 69 6f 6e 5f 70 61 72 73 69 6e 67 5f 75 36 34 s="file">error_union_parsing_u64
625c0 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
625e0 64 65 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 de><span.class="tok-kw">const</s
62600 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
62620 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=
62640 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>
62660 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
62680 70 61 6e 3e 20 6d 61 78 49 6e 74 20 3d 20 73 74 64 2e 6d 61 74 68 2e 6d 61 78 49 6e 74 3b 0a 0a pan>.maxInt.=.std.math.maxInt;..
626a0 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>.
626c0 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>.<
626e0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 61 72 73 65 55 36 34 3c 2f 73 70 span.class="tok-fn">parseU64</sp
62700 61 6e 3e 28 62 75 66 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 an>(buf:.[]<span.class="tok-kw">
62720 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
62740 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 72 61 64 69 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 pe">u8</span>,.radix:.<span.clas
62760 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 3c 73 70 61 6e 20 63 s="tok-type">u8</span>).!<span.c
62780 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 7b 0a 20 20 20 lass="tok-type">u64</span>.{....
627a0 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>
627c0 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 34 3c 2f .x:.<span.class="tok-type">u64</
627e0 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"
62800 3e 30 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 >0</span>;......<span.class="tok
62820 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 62 75 66 29 20 7c 63 7c 20 7b 0a 20 20 20 20 -kw">for</span>.(buf).|c|.{.....
62840 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</
62860 73 70 61 6e 3e 20 64 69 67 69 74 20 3d 20 63 68 61 72 54 6f 44 69 67 69 74 28 63 29 3b 0a 0a 20 span>.digit.=.charToDigit(c);...
62880 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 66 3c 2f .......<span.class="tok-kw">if</
628a0 73 70 61 6e 3e 20 28 64 69 67 69 74 20 26 67 74 3b 3d 20 72 61 64 69 78 29 20 7b 0a 20 20 20 20 span>.(digit.&gt;=.radix).{.....
628c0 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
628e0 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 22 3e urn</span>.<span.class="tok-kw">
62900 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 49 6e 76 61 6c 69 64 43 68 61 72 3b 0a 20 20 20 20 20 20 error</span>.InvalidChar;.......
62920 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 63 6f ..}..........<span.class="tok-co
62940 6d 6d 65 6e 74 22 3e 2f 2f 20 78 20 2a 3d 20 72 61 64 69 78 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 mment">//.x.*=.radix</span>.....
62960 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
62980 61 6e 3e 20 6f 76 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 an>.ov.=.<span.class="tok-builti
629a0 6e 22 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 78 2c 20 72 61 n">@mulWithOverflow</span>(x,.ra
629c0 64 69 78 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 6f 6b 2d 6b dix);.........<span.class="tok-k
629e0 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 6f 76 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f w">if</span>.(ov[<span.class="to
62a00 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 k-number">1</span>].!=.<span.cla
62a20 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 3c 73 70 61 6e 20 ss="tok-number">0</span>).<span.
62a40 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
62a60 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 4f an.class="tok-kw">error</span>.O
62a80 76 65 72 46 6c 6f 77 3b 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 verFlow;..........<span.class="t
62aa0 6f 6b 2d 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 ok-comment">//.x.+=.digit</span>
62ac0 0a 20 20 20 20 20 20 20 20 6f 76 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 .........ov.=.<span.class="tok-b
62ae0 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 28 uiltin">@addWithOverflow</span>(
62b00 6f 76 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 ov[<span.class="tok-number">0</s
62b20 70 61 6e 3e 5d 2c 20 64 69 67 69 74 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 pan>],.digit);.........<span.cla
62b40 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 6f 76 5b 3c 73 70 61 6e 20 ss="tok-kw">if</span>.(ov[<span.
62b60 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 5d 20 21 3d 20 class="tok-number">1</span>].!=.
62b80 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
62ba0 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 72 6e 3c 2f >).<span.class="tok-kw">return</
62bc0 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 6f 72 span>.<span.class="tok-kw">error
62be0 3c 2f 73 70 61 6e 3e 2e 4f 76 65 72 46 6c 6f 77 3b 0a 20 20 20 20 20 20 20 20 78 20 3d 20 6f 76 </span>.OverFlow;.........x.=.ov
62c00 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
62c20 6e 3e 5d 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 n>];.....}......<span.class="tok
62c40 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 78 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 -kw">return</span>.x;.}..<span.c
62c60 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
62c80 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 63 68 61 72 54 6f 44 69 67 69 74 3c 2f 73 70 61 6e 3e 28 ass="tok-fn">charToDigit</span>(
62ca0 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 2f 73 70 c:.<span.class="tok-type">u8</sp
62cc0 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 75 38 3c 2f an>).<span.class="tok-type">u8</
62ce0 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"
62d00 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-
62d20 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 20 20 20 kw">switch</span>.(c).{.........
62d40 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>
62d60 20 2e 2e 2e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 39 27 3c 2f .....<span.class="tok-str">'9'</
62d80 73 70 61 6e 3e 20 3d 26 67 74 3b 20 63 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b span>.=&gt;.c.-.<span.class="tok
62da0 2d 73 74 72 22 3e 27 30 27 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 -str">'0'</span>,.........<span.
62dc0 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 2e 2e 2e 20 3c class="tok-str">'A'</span>.....<
62de0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 5a 27 3c 2f 73 70 61 6e 3e 20 span.class="tok-str">'Z'</span>.
62e00 3d 26 67 74 3b 20 63 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e =&gt;.c.-.<span.class="tok-str">
62e20 27 41 27 3c 2f 73 70 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 'A'</span>.+.<span.class="tok-nu
62e40 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 mber">10</span>,.........<span.c
62e60 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 2e 2e 2e 20 3c 73 lass="tok-str">'a'</span>.....<s
62e80 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 7a 27 3c 2f 73 70 61 6e 3e 20 3d pan.class="tok-str">'z'</span>.=
62ea0 26 67 74 3b 20 63 20 2d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 &gt;.c.-.<span.class="tok-str">'
62ec0 61 27 3c 2f 73 70 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 a'</span>.+.<span.class="tok-num
62ee0 62 65 72 22 3e 31 30 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 ber">10</span>,.........<span.cl
62f00 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 20 6d ass="tok-kw">else</span>.=&gt;.m
62f20 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 22 3e 75 38 3c axInt(<span.class="tok-type">u8<
62f40 2f 73 70 61 6e 3e 29 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 /span>),.....};.}..<span.class="
62f60 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=
62f80 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 70 61 72 73 65 20 75 36 34 26 71 75 6f 74 3b 3c "tok-str">&quot;parse.u64&quot;<
62fa0 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
62fc0 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
62fe0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 70 61 72 73 65 55 36 34 ass="tok-kw">try</span>.parseU64
63000 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 31 32 33 (<span.class="tok-str">&quot;123
63020 34 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 4&quot;</span>,.<span.class="tok
63040 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 73 70 61 6e 20 63 -number">10</span>);.....<span.c
63060 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 74 65 73 lass="tok-kw">try</span>.std.tes
63080 74 69 6e 67 2e 65 78 70 65 63 74 28 72 65 73 75 6c 74 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 ting.expect(result.==.<span.clas
630a0 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 7d 3c 2f s="tok-number">1234</span>);.}</
630c0 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
630e0 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
63100 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
63120 67 20 74 65 73 74 20 65 72 72 6f 72 5f 75 6e 69 6f 6e 5f 70 61 72 73 69 6e 67 5f 75 36 34 2e 7a g.test.error_union_parsing_u64.z
63140 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 65 72 72 6f 72 5f 75 6e 69 6f 6e 5f 70 61 72 73 69 6e 67 ig</kbd>.1/1.error_union_parsing
63160 5f 75 36 34 2e 74 65 73 74 2e 70 61 72 73 65 20 75 36 34 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 _u64.test.parse.u64....OK.All.1.
63180 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 tests.passed..</samp></pre></fig
631a0 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 69 63 65 20 74 68 65 20 ure>.......<p>.......Notice.the.
631c0 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 3e 21 3c 73 70 61 6e 20 63 6c 61 73 return.type.is.<code>!<span.clas
631e0 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 65 3e 2e 20 s="tok-type">u64</span></code>..
63200 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 This.means.that.the.function....
63220 20 20 20 65 69 74 68 65 72 20 72 65 74 75 72 6e 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 36 34 ...either.returns.an.unsigned.64
63240 20 62 69 74 20 69 6e 74 65 67 65 72 2c 20 6f 72 20 61 6e 20 65 72 72 6f 72 2e 20 57 65 20 6c 65 .bit.integer,.or.an.error..We.le
63260 66 74 20 6f 66 66 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 0a 20 20 20 20 20 20 74 6f 20 74 68 ft.off.the.error.set.......to.th
63280 65 20 6c 65 66 74 20 6f 66 20 74 68 65 20 3c 63 6f 64 65 3e 21 3c 2f 63 6f 64 65 3e 2c 20 73 6f e.left.of.the.<code>!</code>,.so
632a0 20 74 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 .the.error.set.is.inferred......
632c0 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 68 69 6e 20 74 68 ..</p>.......<p>.......Within.th
632e0 65 20 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 e.function.definition,.you.can.s
63300 65 65 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 ee.some.return.statements.that.r
63320 65 74 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 eturn.......an.error,.and.at.the
63340 20 62 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 .bottom.a.return.statement.that.
63360 72 65 74 75 72 6e 73 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b returns.a.<code><span.class="tok
63380 2d 74 79 70 65 22 3e 75 36 34 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 -type">u64</span></code>........
633a0 20 20 20 20 42 6f 74 68 20 74 79 70 65 73 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f ....Both.types.<a.href="#Type-Co
633c0 65 72 63 69 6f 6e 22 3e 63 6f 65 72 63 65 3c 2f 61 3e 20 74 6f 20 3c 63 6f 64 65 3e 3c 73 70 61 ercion">coerce</a>.to.<code><spa
633e0 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
63400 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
63420 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
63440 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
63460 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
63480 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.
634a0 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:.......
634c0 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.
634e0 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.
63500 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>...
63520 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
63540 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
63560 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
63580 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
635a0 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
635c0 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.</
635e0 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
63600 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
63620 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>...
63640 20 20 20 20 3c 68 34 20 69 64 3d 22 63 61 74 63 68 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e ....<h4.id="catch"><a.href="nav.
63660 78 68 74 6d 6c 23 74 6f 63 2d 63 61 74 63 68 22 3e 63 61 74 63 68 3c 2f 61 3e 20 3c 61 20 63 6c xhtml#toc-catch">catch</a>.<a.cl
63680 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 61 74 63 68 22 3e c2 a7 3c 2f 61 3e 3c 2f ass="hdr".href="#catch">..</a></
636a0 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 70 72 6f h4>........<p>If.you.want.to.pro
636c0 76 69 64 65 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2c 20 79 6f 75 20 63 61 6e 20 75 73 vide.a.default.value,.you.can.us
636e0 65 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 e.the.<code><span.class="tok-kw"
63700 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 70 65 72 >catch</span></code>.binary.oper
63720 61 74 6f 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 ator:</p>.......<figure><figcapt
63740 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d ion.class="zig-cap"><cite.class=
63760 22 66 69 6c 65 22 3e 63 61 74 63 68 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 "file">catch.zig</cite></figcapt
63780 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ion><pre><code><span.class="tok-
637a0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 61 72 73 65 55 36 34 20 3d 20 3c 73 70 61 kw">const</span>.parseU64.=.<spa
637c0 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
637e0 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
63800 3b 65 72 72 6f 72 5f 75 6e 69 6f 6e 5f 70 61 72 73 69 6e 67 5f 75 36 34 2e 7a 69 67 26 71 75 6f ;error_union_parsing_u64.zig&quo
63820 74 3b 3c 2f 73 70 61 6e 3e 29 2e 70 61 72 73 65 55 36 34 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 t;</span>).parseU64;..<span.clas
63840 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
63860 3d 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 ="tok-fn">doAThing</span>(str:.[
63880 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
638a0 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</
638c0 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"
638e0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 36 34 28 >const</span>.number.=.parseU64(
63900 73 74 72 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 str,.<span.class="tok-number">10
63920 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 63 61 </span>).<span.class="tok-kw">ca
63940 74 63 68 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 6d 62 tch</span>.<span.class="tok-numb
63960 65 72 22 3e 31 33 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 6e 75 6d 62 65 72 3b 20 3c er">13</span>;....._.=.number;.<
63980 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">//....<
639a0 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 /span>.}</code></pre></figure>..
639c0 20 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 .....<p>.......In.this.code,.<co
639e0 64 65 3e 6e 75 6d 62 65 72 3c 2f 63 6f 64 65 3e 20 77 69 6c 6c 20 62 65 20 65 71 75 61 6c 20 74 de>number</code>.will.be.equal.t
63a00 6f 20 74 68 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 70 61 72 73 65 64 20 73 74 72 69 6e 67 o.the.successfully.parsed.string
63a20 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 6f ,.or...........a.default.value.o
63a40 66 20 31 33 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 72 69 67 68 74 20 68 61 6e 64 f.13..The.type.of.the.right.hand
63a60 20 73 69 64 65 20 6f 66 20 74 68 65 20 62 69 6e 61 72 79 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 .side.of.the.binary.<code><span.
63a80 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 3c 2f 63 6f 64 class="tok-kw">catch</span></cod
63aa0 65 3e 20 6f 70 65 72 61 74 6f 72 20 6d 75 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d e>.operator.must...............m
63ac0 61 74 63 68 20 74 68 65 20 75 6e 77 72 61 70 70 65 64 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 74 atch.the.unwrapped.error.union.t
63ae0 79 70 65 2c 20 6f 72 20 62 65 20 6f 66 20 74 79 70 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ype,.or.be.of.type.<code><span.c
63b00 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 3c lass="tok-type">noreturn</span><
63b20 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 /code>........</p>......<p>.....
63b40 20 20 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 66 61 75 ..If.you.want.to.provide.a.defau
63b60 6c 74 20 76 61 6c 75 65 20 77 69 74 68 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 lt.value.with.......<code><span.
63b80 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 3c 2f 63 6f 64 class="tok-kw">catch</span></cod
63ba0 65 3e 20 61 66 74 65 72 20 70 65 72 66 6f 72 6d 69 6e 67 20 73 6f 6d 65 20 6c 6f 67 69 63 2c 20 e>.after.performing.some.logic,.
63bc0 79 6f 75 0a 20 20 20 20 20 20 63 61 6e 20 63 6f 6d 62 69 6e 65 20 3c 63 6f 64 65 3e 3c 73 70 61 you.......can.combine.<code><spa
63be0 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 3c 2f 63 n.class="tok-kw">catch</span></c
63c00 6f 64 65 3e 20 77 69 74 68 20 6e 61 6d 65 64 20 3c 61 20 68 72 65 66 3d 22 23 42 6c 6f 63 6b 73 ode>.with.named.<a.href="#Blocks
63c20 22 3e 42 6c 6f 63 6b 73 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c ">Blocks</a>:.......</p>.......<
63c40 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 figure><figcaption.class="zig-ca
63c60 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 68 61 6e 64 6c 65 5f 65 72 72 p"><cite.class="file">handle_err
63c80 6f 72 5f 77 69 74 68 5f 63 61 74 63 68 5f 62 6c 6f 63 6b 2e 7a 69 67 2e 7a 69 67 3c 2f 63 69 74 or_with_catch_block.zig.zig</cit
63ca0 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
63cc0 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 61 72 73 class="tok-kw">const</span>.pars
63ce0 65 55 36 34 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 eU64.=.<span.class="tok-builtin"
63d00 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
63d20 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 72 72 6f 72 5f 75 6e 69 6f 6e 5f 70 61 72 73 69 6e 67 5f -str">&quot;error_union_parsing_
63d40 75 36 34 2e 7a 69 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 70 61 72 73 65 55 36 34 3b 0a u64.zig&quot;</span>).parseU64;.
63d60 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>.
63d80 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 2f 73 <span.class="tok-fn">doAThing</s
63da0 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 6b 2d 74 79 70 pan>(str:.[]<span.class="tok-typ
63dc0 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
63de0 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
63e00 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 72 20 ss="tok-kw">const</span>.number.
63e20 3d 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 73 3d 22 74 6f 6b =.parseU64(str,.<span.class="tok
63e40 2d 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d -number">10</span>).<span.class=
63e60 22 74 6f 6b 2d 6b 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 20 62 6c 6b 3a 20 7b 0a 20 20 20 "tok-kw">catch</span>.blk:.{....
63e80 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">/
63ea0 2f 20 64 6f 20 74 68 69 6e 67 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e /.do.things</span>.........<span
63ec0 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 62 6c .class="tok-kw">break</span>.:bl
63ee0 6b 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 2f 73 k.<span.class="tok-number">13</s
63f00 70 61 6e 3e 3b 0a 20 20 20 20 7d 3b 0a 20 20 20 20 5f 20 3d 20 6e 75 6d 62 65 72 3b 20 3c 73 70 pan>;.....};....._.=.number;.<sp
63f20 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 6e 75 6d 62 65 72 an.class="tok-comment">//.number
63f40 20 69 73 20 6e 6f 77 20 69 6e 69 74 69 61 6c 69 7a 65 64 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f .is.now.initialized</span>.}</co
63f60 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 de></pre></figure>..............
63f80 3c 68 34 20 69 64 3d 22 74 72 79 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 <h4.id="try"><a.href="nav.xhtml#
63fa0 74 6f 63 2d 74 72 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 toc-try">try</a>.<a.class="hdr".
63fc0 68 72 65 66 3d 22 23 74 72 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c href="#try">..</a></h4>........<
63fe0 70 3e 4c 65 74 27 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 p>Let's.say.you.wanted.to.return
64000 20 74 68 65 20 65 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 .the.error.if.you.got.one,.other
64020 77 69 73 65 20 63 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 wise.continue.with.the.......fun
64040 63 74 69 6f 6e 20 6c 6f 67 69 63 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c ction.logic:</p>.......<figure><
64060 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
64080 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 61 74 63 68 5f 65 72 72 5f 72 65 74 75 72 6e 2e 7a .class="file">catch_err_return.z
640a0 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 ig</cite></figcaption><pre><code
640c0 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
640e0 6e 3e 20 70 61 72 73 65 55 36 34 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 n>.parseU64.=.<span.class="tok-b
64100 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
64120 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 72 72 6f 72 5f 75 6e 69 6f 6e 5f 70 ss="tok-str">&quot;error_union_p
64140 61 72 73 69 6e 67 5f 75 36 34 2e 7a 69 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 70 61 72 arsing_u64.zig&quot;</span>).par
64160 73 65 55 36 34 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 seU64;..<span.class="tok-kw">fn<
64180 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
641a0 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="
641c0 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
641e0 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>.{.....<
64200 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>
64220 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
64240 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
64260 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
64280 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<
642a0 2f 73 70 61 6e 3e 20 65 72 72 3b 0a 20 20 20 20 5f 20 3d 20 6e 75 6d 62 65 72 3b 20 3c 73 70 61 /span>.err;....._.=.number;.<spa
642c0 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 2f 73 70 n.class="tok-comment">//....</sp
642e0 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 an>.}</code></pre></figure>.....
64300 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 69 73 20 61 20 73 68 6f 72 74 63 75 74 20 ..<p>.......There.is.a.shortcut.
64320 66 6f 72 20 74 68 69 73 2e 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d for.this..The.<code><span.class=
64340 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 78 70 72 65 "tok-kw">try</span></code>.expre
64360 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 66 69 67 75 72 65 3e ssion:.......</p>.......<figure>
64380 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 <figcaption.class="zig-cap"><cit
643a0 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 72 79 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 e.class="file">try.zig</cite></f
643c0 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
643e0 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 72 73 65 55 36 34 20 ="tok-kw">const</span>.parseU64.
64400 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
64420 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"
64440 3e 26 71 75 6f 74 3b 65 72 72 6f 72 5f 75 6e 69 6f 6e 5f 70 61 72 73 69 6e 67 5f 75 36 34 2e 7a >&quot;error_union_parsing_u64.z
64460 69 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 70 61 72 73 65 55 36 34 3b 0a 0a 3c 73 70 61 ig&quot;</span>).parseU64;..<spa
64480 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
644a0 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 2f 73 70 61 6e 3e 28 .class="tok-fn">doAThing</span>(
644c0 73 74 72 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 str:.[]<span.class="tok-type">u8
644e0 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 65 22 </span>).!<span.class="tok-type"
64500 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="
64520 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 72 20 3d 20 3c 73 tok-kw">const</span>.number.=.<s
64540 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 70 61 pan.class="tok-kw">try</span>.pa
64560 72 73 65 55 36 34 28 73 74 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d rseU64(str,.<span.class="tok-num
64580 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 5f 20 3d 20 6e 75 6d 62 65 72 3b ber">10</span>);....._.=.number;
645a0 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 2e 2e .<span.class="tok-comment">//...
645c0 2e 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e .</span>.}</code></pre></figure>
645e0 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 .......<p>.......<code><span.cla
64600 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 76 ss="tok-kw">try</span></code>.ev
64620 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 6f aluates.an.error.union.expressio
64640 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 73 n..If.it.is.an.error,.it.returns
64660 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 6e .......from.the.current.function
64680 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 2c .with.the.same.error..Otherwise,
646a0 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 20 .the.expression.results.in......
646c0 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 3e .the.unwrapped.value........</p>
646e0 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 20 ..............<p>.........Maybe.
64700 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 79 you.know.with.complete.certainty
64720 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 62 .that.an.expression.will.never.b
64740 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 65 e.an.error..........In.this.case
64760 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 20 .you.can.do.this:.......</p>....
64780 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f ...<code><span.class="tok-kw">co
647a0 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 36 34 28 3c 73 70 nst</span>.number.=.parseU64(<sp
647c0 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 32 33 34 26 71 75 an.class="tok-str">&quot;1234&qu
647e0 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 6e 75 6d ot;</span>,.<span.class="tok-num
64800 62 65 72 22 3e 31 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 ber">10</span>).<span.class="tok
64820 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 22 74 -kw">catch</span>.<span.class="t
64840 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 3c 2f 63 6f 64 65 ok-kw">unreachable</span>;</code
64860 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 20 77 65 20 6b 6e 6f 77 20 66 >.......<p>.......Here.we.know.f
64880 6f 72 20 73 75 72 65 20 74 68 61 74 20 22 31 32 33 34 22 20 77 69 6c 6c 20 70 61 72 73 65 20 73 or.sure.that."1234".will.parse.s
648a0 75 63 63 65 73 73 66 75 6c 6c 79 2e 20 53 6f 20 77 65 20 70 75 74 20 74 68 65 0a 20 20 20 20 20 uccessfully..So.we.put.the......
648c0 20 3c 63 6f 64 65 3e 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 .<code><span.class="tok-kw">unre
648e0 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 6f 6e 20 74 achable</span></code>.value.on.t
64900 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 3e 3c 73 70 61 6e 20 he.right.hand.side..<code><span.
64920 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
64940 3e 3c 2f 63 6f 64 65 3e 20 67 65 6e 65 72 61 74 65 73 0a 20 20 20 20 20 20 61 20 70 61 6e 69 63 ></code>.generates.......a.panic
64960 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 3c 2f 61 3e 20 61 .in.<a.href="#Debug">Debug</a>.a
64980 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 52 65 6c 65 61 73 nd.<a.href="#ReleaseSafe">Releas
649a0 65 53 61 66 65 3c 2f 61 3e 20 6d 6f 64 65 73 20 61 6e 64 20 75 6e 64 65 66 69 6e 65 64 20 62 65 eSafe</a>.modes.and.undefined.be
649c0 68 61 76 69 6f 72 20 69 6e 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 havior.in.......<a.href="#Releas
649e0 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 61 20 68 72 eFast">ReleaseFast</a>.and.<a.hr
64a00 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 61 6c 6c 3c ef="#ReleaseSmall">ReleaseSmall<
64a20 2f 61 3e 20 6d 6f 64 65 73 2e 20 53 6f 2c 20 77 68 69 6c 65 20 77 65 27 72 65 20 64 65 62 75 67 /a>.modes..So,.while.we're.debug
64a40 67 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 69 66 20 74 ging.the.......application,.if.t
64a60 68 65 72 65 20 3c 65 6d 3e 77 61 73 3c 2f 65 6d 3e 20 61 20 73 75 72 70 72 69 73 65 20 65 72 72 here.<em>was</em>.a.surprise.err
64a80 6f 72 20 68 65 72 65 2c 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 77 6f 75 6c 64 20 63 or.here,.the.application.would.c
64aa0 72 61 73 68 0a 20 20 20 20 20 20 61 70 70 72 6f 70 72 69 61 74 65 6c 79 2e 0a 20 20 20 20 20 20 rash.......appropriately........
64ac0 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 6d 61 79 20 77 61 6e </p>.......<p>.......You.may.wan
64ae0 74 20 74 6f 20 74 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 t.to.take.a.different.action.for
64b00 20 65 76 65 72 79 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 .every.situation..For.that,.we.c
64b20 6f 6d 62 69 6e 65 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 ombine.......the.<a.href="#if">i
64b40 66 3c 2f 61 3e 20 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 f</a>.and.<a.href="#switch">swit
64b60 63 68 3c 2f 61 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 ch</a>.expression:.......</p>...
64b80 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
64ba0 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 68 61 6e 64 6c ig-cap"><cite.class="file">handl
64bc0 65 5f 61 6c 6c 5f 65 72 72 6f 72 5f 73 63 65 6e 61 72 69 6f 73 2e 7a 69 67 3c 2f 63 69 74 65 3e e_all_error_scenarios.zig</cite>
64be0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
64c00 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
64c20 73 73 3d 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 ss="tok-fn">doAThing</span>(str:
64c40 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 70 .[]<span.class="tok-type">u8</sp
64c60 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
64c80 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
64ca0 77 22 3e 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 w">if</span>.(parseU64(str,.<spa
64cc0 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 29 29 n.class="tok-number">10</span>))
64ce0 20 7c 6e 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 .|number|.{.........doSomethingW
64d00 69 74 68 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 ithNumber(number);.....}.<span.c
64d20 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 72 72 7c 20 lass="tok-kw">else</span>.|err|.
64d40 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
64d60 6e 3e 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 n>.(err).{.........<span.class="
64d80 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 6f 77 20 3d 26 tok-kw">error</span>.Overflow.=&
64da0 67 74 3b 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 gt;.{.............<span.class="t
64dc0 6f 6b 2d 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 ok-comment">//.handle.overflow..
64de0 2e 3c 2f 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 .</span>.........},.........<spa
64e00 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 65 20 70 72 6f 6d n.class="tok-comment">//.we.prom
64e20 69 73 65 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 ise.that.InvalidChar.won't.happe
64e40 6e 20 28 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 n.(or.crash.in.debug.mode.if.it.
64e60 64 6f 65 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 does)</span>.........<span.class
64e80 3d 22 74 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 ="tok-kw">error</span>.InvalidCh
64ea0 61 72 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 ar.=&gt;.<span.class="tok-kw">un
64ec0 72 65 61 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 reachable</span>,.....}.}</code>
64ee0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 </pre></figure>.......<p>.......
64f00 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 68 61 6e 64 6c 65 20 Finally,.you.may.want.to.handle.
64f20 6f 6e 6c 79 20 73 6f 6d 65 20 65 72 72 6f 72 73 2e 20 46 6f 72 20 74 68 61 74 2c 20 79 6f 75 20 only.some.errors..For.that,.you.
64f40 63 61 6e 20 63 61 70 74 75 72 65 20 74 68 65 20 75 6e 68 61 6e 64 6c 65 64 0a 20 20 20 20 20 20 can.capture.the.unhandled.......
64f60 65 72 72 6f 72 73 20 69 6e 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d errors.in.the.<code><span.class=
64f80 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 63 61 73 65 "tok-kw">else</span></code>.case
64fa0 2c 20 77 68 69 63 68 20 6e 6f 77 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 61 72 72 6f 77 65 72 20 ,.which.now.contains.a.narrower.
64fc0 65 72 72 6f 72 20 73 65 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 error.set:.......</p>.......<fig
64fe0 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
65000 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 68 61 6e 64 6c 65 5f 73 6f 6d 65 5f 65 <cite.class="file">handle_some_e
65020 72 72 6f 72 5f 73 63 65 6e 61 72 69 6f 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 rror_scenarios.zig</cite></figca
65040 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
65060 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
65080 2d 66 6e 22 3e 64 6f 41 6e 6f 74 68 65 72 54 68 69 6e 67 3c 2f 73 70 61 6e 3e 28 73 74 72 3a 20 -fn">doAnotherThing</span>(str:.
650a0 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
650c0 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 72 72 6f 72 3c 2f n>).<span.class="tok-kw">error</
650e0 73 70 61 6e 3e 7b 49 6e 76 61 6c 69 64 43 68 61 72 7d 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 span>{InvalidChar}!<span.class="
65100 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 61 tok-type">void</span>.{.....<spa
65120 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 70 61 72 73 n.class="tok-kw">if</span>.(pars
65140 65 55 36 34 28 73 74 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 eU64(str,.<span.class="tok-numbe
65160 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 r">10</span>)).|number|.{.......
65180 20 20 64 6f 53 6f 6d 65 74 68 69 6e 67 57 69 74 68 4e 75 6d 62 65 72 28 6e 75 6d 62 65 72 29 3b ..doSomethingWithNumber(number);
651a0 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 65 .....}.<span.class="tok-kw">else
651c0 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 22 74 6f 6b 2d 6b </span>.|err|.<span.class="tok-k
651e0 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 20 20 20 20 20 20 w">switch</span>.(err).{........
65200 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
65220 6e 3e 2e 4f 76 65 72 66 6c 6f 77 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 n>.Overflow.=&gt;.{.............
65240 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 68 61 6e <span.class="tok-comment">//.han
65260 64 6c 65 20 6f 76 65 72 66 6c 6f 77 2e 2e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 7d dle.overflow...</span>.........}
65280 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
652a0 6c 73 65 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 7c 6c 65 66 74 6f 76 65 72 5f 65 72 72 7c 20 lse</span>.=&gt;.|leftover_err|.
652c0 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
652e0 6e 3e 20 6c 65 66 74 6f 76 65 72 5f 65 72 72 2c 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c n>.leftover_err,.....}.}</code><
65300 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 /pre></figure>.......<p>.......Y
65320 6f 75 20 6d 75 73 74 20 75 73 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 63 61 70 74 75 72 65 ou.must.use.the.variable.capture
65340 20 73 79 6e 74 61 78 2e 20 49 66 20 79 6f 75 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 68 65 0a 20 .syntax..If.you.don't.need.the..
65360 20 20 20 20 20 76 61 72 69 61 62 6c 65 2c 20 79 6f 75 20 63 61 6e 20 63 61 70 74 75 72 65 20 77 .....variable,.you.can.capture.w
65380 69 74 68 20 3c 63 6f 64 65 3e 5f 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 76 6f 69 64 20 74 68 65 ith.<code>_</code>.and.avoid.the
653a0 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .......<code><span.class="tok-kw
653c0 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f ">switch</span></code>........</
653e0 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
65400 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
65420 68 61 6e 64 6c 65 5f 6e 6f 5f 65 72 72 6f 72 5f 73 63 65 6e 61 72 69 6f 73 2e 7a 69 67 3c 2f 63 handle_no_error_scenarios.zig</c
65440 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ite></figcaption><pre><code><spa
65460 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
65480 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 6f 41 44 69 66 66 65 72 65 6e 74 54 68 69 6e .class="tok-fn">doADifferentThin
654a0 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 6b g</span>(str:.[]<span.class="tok
654c0 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 3d 22 74 -type">u8</span>).<span.class="t
654e0 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
65500 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 70 61 72 73 65 .class="tok-kw">if</span>.(parse
65520 55 36 34 28 73 74 72 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 U64(str,.<span.class="tok-number
65540 22 3e 31 30 3c 2f 73 70 61 6e 3e 29 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 ">10</span>)).|number|.{........
65560 20 64 6f 53 6f 6d 65 74 68 69 6e 67 57 69 74 68 4e 75 6d 62 65 72 28 6e 75 6d 62 65 72 29 3b 0a .doSomethingWithNumber(number);.
65580 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<
655a0 2f 73 70 61 6e 3e 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 /span>.|_|.{.........<span.class
655c0 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 64 6f 20 61 73 20 79 6f 75 27 64 20 6c 69 ="tok-comment">//.do.as.you'd.li
655e0 6b 65 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 3e 3c 2f ke</span>.....}.}</code></pre></
65600 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 65 72 72 64 65 66 65 72 22 3e figure>.......<h4.id="errdefer">
65620 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 72 72 64 65 66 65 72 22 <a.href="nav.xhtml#toc-errdefer"
65640 3e 65 72 72 64 65 66 65 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 >errdefer</a>.<a.class="hdr".hre
65660 66 3d 22 23 65 72 72 64 65 66 65 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 f="#errdefer">..</a></h4>.......
65680 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6f 74 68 65 72 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 .<p>.......The.other.component.t
656a0 6f 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 69 73 20 64 65 66 65 72 20 73 74 61 74 65 6d o.error.handling.is.defer.statem
656c0 65 6e 74 73 2e 0a 20 20 20 20 20 20 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 61 6e 20 75 6e ents........In.addition.to.an.un
656e0 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 3c 61 20 68 72 65 66 3d 22 23 64 65 66 65 72 22 3e 64 65 66 conditional.<a.href="#defer">def
65700 65 72 3c 2f 61 3e 2c 20 5a 69 67 20 68 61 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 er</a>,.Zig.has.<code><span.clas
65720 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 3c 2f 63 6f 64 65 s="tok-kw">errdefer</span></code
65740 3e 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 >,.......which.evaluates.the.def
65760 65 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 erred.expression.on.block.exit.p
65780 61 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 ath.if.and.only.if.......the.fun
657a0 63 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 ction.returned.with.an.error.fro
657c0 6d 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 m.the.block........</p>.......<p
657e0 3e 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 >.......Example:.......</p>.....
65800 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
65820 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 65 72 72 64 65 66 65 -cap"><cite.class="file">errdefe
65840 72 5f 65 78 61 6d 70 6c 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e r_example.zig</cite></figcaption
65860 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
65880 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">
658a0 63 72 65 61 74 65 46 6f 6f 3c 2f 73 70 61 6e 3e 28 70 61 72 61 6d 3a 20 3c 73 70 61 6e 20 63 6c createFoo</span>(param:.<span.cl
658c0 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 21 46 6f 6f 20 ass="tok-type">i32</span>).!Foo.
658e0 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
65900 3c 2f 73 70 61 6e 3e 20 66 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b </span>.foo.=.<span.class="tok-k
65920 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 74 72 79 54 6f 41 6c 6c 6f 63 61 74 65 46 6f 6f 28 29 w">try</span>.tryToAllocateFoo()
65940 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 3e ;.....<span.class="tok-comment">
65960 2f 2f 20 6e 6f 77 20 77 65 20 68 61 76 65 20 61 6c 6c 6f 63 61 74 65 64 20 66 6f 6f 2e 20 77 65 //.now.we.have.allocated.foo..we
65980 20 6e 65 65 64 20 74 6f 20 66 72 65 65 20 69 74 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e .need.to.free.it.if.the.function
659a0 20 66 61 69 6c 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 22 .fails.</span>.....<span.class="
659c0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 62 75 74 20 77 65 20 77 61 6e 74 20 74 6f 20 72 tok-comment">//.but.we.want.to.r
659e0 65 74 75 72 6e 20 69 74 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 75 63 63 65 65 64 eturn.it.if.the.function.succeed
65a00 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 22 74 6f 6b 2d 6b s.</span>.....<span.class="tok-k
65a20 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 64 65 61 6c 6c 6f 63 61 74 65 46 6f 6f w">errdefer</span>.deallocateFoo
65a40 28 66 6f 6f 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 (foo);......<span.class="tok-kw"
65a60 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 74 6d 70 5f 62 75 66 20 3d 20 61 6c 6c 6f 63 61 74 65 >const</span>.tmp_buf.=.allocate
65a80 54 6d 70 42 75 66 66 65 72 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 TmpBuffer().<span.class="tok-kw"
65aa0 3e 6f 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 >orelse</span>.<span.class="tok-
65ac0 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
65ae0 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 6f 72 79 3b ok-kw">error</span>.OutOfMemory;
65b00 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">/
65b20 2f 20 74 6d 70 5f 62 75 66 20 69 73 20 74 72 75 6c 79 20 61 20 74 65 6d 70 6f 72 61 72 79 20 72 /.tmp_buf.is.truly.a.temporary.r
65b40 65 73 6f 75 72 63 65 2c 20 61 6e 64 20 77 65 20 66 6f 72 20 73 75 72 65 20 77 61 6e 74 20 74 6f esource,.and.we.for.sure.want.to
65b60 20 63 6c 65 61 6e 20 69 74 20 75 70 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c .clean.it.up</span>.....<span.cl
65b80 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 62 65 66 6f 72 65 20 74 68 69 73 ass="tok-comment">//.before.this
65ba0 20 62 6c 6f 63 6b 20 6c 65 61 76 65 73 20 73 63 6f 70 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c .block.leaves.scope</span>.....<
65bc0 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>
65be0 20 64 65 61 6c 6c 6f 63 61 74 65 54 6d 70 42 75 66 66 65 72 28 74 6d 70 5f 62 75 66 29 3b 0a 0a .deallocateTmpBuffer(tmp_buf);..
65c00 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
65c20 6e 3e 20 28 70 61 72 61 6d 20 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d n>.(param.&gt;.<span.class="tok-
65c40 6e 75 6d 62 65 72 22 3e 31 33 33 37 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 number">1337</span>).<span.class
65c60 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
65c80 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 49 6e 76 61 6c 69 ass="tok-kw">error</span>.Invali
65ca0 64 50 61 72 61 6d 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 dParam;......<span.class="tok-co
65cc0 6d 6d 65 6e 74 22 3e 2f 2f 20 68 65 72 65 20 74 68 65 20 65 72 72 64 65 66 65 72 20 77 69 6c 6c mment">//.here.the.errdefer.will
65ce0 20 6e 6f 74 20 72 75 6e 20 73 69 6e 63 65 20 77 65 27 72 65 20 72 65 74 75 72 6e 69 6e 67 20 73 .not.run.since.we're.returning.s
65d00 75 63 63 65 73 73 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 73 70 61 6e 3e uccess.from.the.function.</span>
65d20 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">/
65d40 2f 20 62 75 74 20 74 68 65 20 64 65 66 65 72 20 77 69 6c 6c 20 72 75 6e 21 3c 2f 73 70 61 6e 3e /.but.the.defer.will.run!</span>
65d60 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
65d80 3c 2f 73 70 61 6e 3e 20 66 6f 6f 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 </span>.foo;.}</code></pre></fig
65da0 75 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 20 74 68 ure>.......<p>.......The.neat.th
65dc0 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 74 20 72 ing.about.this.is.that.you.get.r
65de0 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 20 20 20 obust.error.handling.without....
65e00 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 65 20 6f ...the.verbosity.and.cognitive.o
65e20 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 65 20 65 verhead.of.trying.to.make.sure.e
65e40 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 65 64 2e very.exit.path.......is.covered.
65e60 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 61 79 73 .The.deallocation.code.is.always
65e80 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 61 74 69 .directly.following.the.allocati
65ea0 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 20 20 20 on.code........</p>.............
65ec0 20 3c 68 34 20 69 64 3d 22 43 6f 6d 6d 6f 6e 2d 65 72 72 64 65 66 65 72 2d 53 6c 69 70 2d 55 70 .<h4.id="Common-errdefer-Slip-Up
65ee0 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 6f 6d 6d 6f 6e s"><a.href="nav.xhtml#toc-Common
65f00 2d 65 72 72 64 65 66 65 72 2d 53 6c 69 70 2d 55 70 73 22 3e 43 6f 6d 6d 6f 6e 20 65 72 72 64 65 -errdefer-Slip-Ups">Common.errde
65f20 66 65 72 20 53 6c 69 70 2d 55 70 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 fer.Slip-Ups</a>.<a.class="hdr".
65f40 68 72 65 66 3d 22 23 43 6f 6d 6d 6f 6e 2d 65 72 72 64 65 66 65 72 2d 53 6c 69 70 2d 55 70 73 22 href="#Common-errdefer-Slip-Ups"
65f60 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 >..</a></h4>........<p>.......It
65f80 20 73 68 6f 75 6c 64 20 62 65 20 6e 6f 74 65 64 20 74 68 61 74 20 3c 63 6f 64 65 3e 3c 73 70 61 .should.be.noted.that.<code><spa
65fa0 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 6e 3e n.class="tok-kw">errdefer</span>
65fc0 3c 2f 63 6f 64 65 3e 20 73 74 61 74 65 6d 65 6e 74 73 20 6f 6e 6c 79 20 6c 61 73 74 20 75 6e 74 </code>.statements.only.last.unt
65fe0 69 6c 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 74 68 il.the.end.of.the.block.......th
66000 65 79 20 61 72 65 20 77 72 69 74 74 65 6e 20 69 6e 2c 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 ey.are.written.in,.and.therefore
66020 20 61 72 65 20 6e 6f 74 20 72 75 6e 20 69 66 20 61 6e 20 65 72 72 6f 72 20 69 73 20 72 65 74 75 .are.not.run.if.an.error.is.retu
66040 72 6e 65 64 20 6f 75 74 73 69 64 65 20 6f 66 20 74 68 61 74 20 62 6c 6f 63 6b 3a 0a 20 20 20 20 rned.outside.of.that.block:.....
66060 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
66080 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
660a0 6c 65 22 3e 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 73 6c 69 70 5f 75 70 73 2e 7a 69 67 3c 2f le">test_errdefer_slip_ups.zig</
660c0 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
660e0 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
66100 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">@
66120 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
66140 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
66160 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 41 an.class="tok-kw">const</span>.A
66180 6c 6c 6f 63 61 74 6f 72 20 3d 20 73 74 64 2e 6d 65 6d 2e 41 6c 6c 6f 63 61 74 6f 72 3b 0a 0a 3c llocator.=.std.mem.Allocator;..<
661a0 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>
661c0 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
661e0 63 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 64 61 74 61 3a 20 3c 73 70 61 6e 20 63 6c 61 73 ct</span>.{.....data:.<span.clas
66200 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 0a 3c 73 70 s="tok-type">u32</span>,.};..<sp
66220 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
66240 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 72 79 54 6f 41 6c 6c 6f 63 61 74 65 46 6f n.class="tok-fn">tryToAllocateFo
66260 6f 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 41 6c 6c 6f 63 61 74 6f 72 29 20 21 o</span>(allocator:.Allocator).!
66280 2a 46 6f 6f 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 *Foo.{.....<span.class="tok-kw">
662a0 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 65 61 74 65 28 46 return</span>.allocator.create(F
662c0 6f 6f 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 oo);.}..<span.class="tok-kw">fn<
662e0 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 65 61 6c /span>.<span.class="tok-fn">deal
66300 6c 6f 63 61 74 65 46 6f 6f 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 41 6c 6c 6f locateFoo</span>(allocator:.Allo
66320 63 61 74 6f 72 2c 20 66 6f 6f 3a 20 2a 46 6f 6f 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 cator,.foo:.*Foo).<span.class="t
66340 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 6c 6c 6f 63 ok-type">void</span>.{.....alloc
66360 61 74 6f 72 2e 64 65 73 74 72 6f 79 28 66 6f 6f 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 ator.destroy(foo);.}..<span.clas
66380 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
663a0 3d 22 74 6f 6b 2d 66 6e 22 3e 67 65 74 46 6f 6f 44 61 74 61 3c 2f 73 70 61 6e 3e 28 29 20 21 3c ="tok-fn">getFooData</span>().!<
663c0 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>
663e0 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
66400 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 6d 62 65 rn</span>.<span.class="tok-numbe
66420 72 22 3e 36 36 36 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 r">666</span>;.}..<span.class="t
66440 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
66460 6b 2d 66 6e 22 3e 63 72 65 61 74 65 46 6f 6f 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 k-fn">createFoo</span>(allocator
66480 3a 20 41 6c 6c 6f 63 61 74 6f 72 2c 20 70 61 72 61 6d 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d :.Allocator,.param:.<span.class=
664a0 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 21 2a 46 6f 6f 20 7b 0a 20 "tok-type">i32</span>).!*Foo.{..
664c0 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
664e0 70 61 6e 3e 20 66 6f 6f 20 3d 20 67 65 74 46 6f 6f 3a 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 pan>.foo.=.getFoo:.{.........<sp
66500 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 66 6f 6f an.class="tok-kw">var</span>.foo
66520 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 61 .=.<span.class="tok-kw">try</spa
66540 6e 3e 20 74 72 79 54 6f 41 6c 6c 6f 63 61 74 65 46 6f 6f 28 61 6c 6c 6f 63 61 74 6f 72 29 3b 0a n>.tryToAllocateFoo(allocator);.
66560 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 72 72 ........<span.class="tok-kw">err
66580 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 64 65 61 6c 6c 6f 63 61 74 65 46 6f 6f 28 61 6c 6c 6f 63 defer</span>.deallocateFoo(alloc
665a0 61 74 6f 72 2c 20 66 6f 6f 29 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d ator,.foo);.<span.class="tok-com
665c0 6d 65 6e 74 22 3e 2f 2f 20 4f 6e 6c 79 20 6c 61 73 74 73 20 75 6e 74 69 6c 20 74 68 65 20 65 6e ment">//.Only.lasts.until.the.en
665e0 64 20 6f 66 20 67 65 74 46 6f 6f 3c 2f 73 70 61 6e 3e 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 d.of.getFoo</span>..........<spa
66600 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 43 61 6c 6c 73 20 64 n.class="tok-comment">//.Calls.d
66620 65 61 6c 6c 6f 63 61 74 65 46 6f 6f 20 6f 6e 20 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 0a 20 20 20 eallocateFoo.on.error</span>....
66640 20 20 20 20 20 66 6f 6f 2e 64 61 74 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....foo.data.=.<span.class="tok
66660 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 67 65 74 46 6f 6f 44 61 74 61 28 29 3b 0a 0a 20 -kw">try</span>.getFooData();...
66680 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 62 72 65 61 .......<span.class="tok-kw">brea
666a0 6b 3c 2f 73 70 61 6e 3e 20 3a 67 65 74 46 6f 6f 20 66 6f 6f 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 k</span>.:getFoo.foo;.....};....
666c0 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 4f ..<span.class="tok-comment">//.O
666e0 75 74 73 69 64 65 20 6f 66 20 74 68 65 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20 65 72 72 64 65 utside.of.the.scope.of.the.errde
66700 66 65 72 2c 20 73 6f 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 fer,.so</span>.....<span.class="
66720 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 64 65 61 6c 6c 6f 63 61 74 65 46 6f 6f 20 77 69 tok-comment">//.deallocateFoo.wi
66740 6c 6c 20 6e 6f 74 20 62 65 20 63 61 6c 6c 65 64 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 ll.not.be.called.here</span>....
66760 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>.
66780 28 70 61 72 61 6d 20 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d (param.&gt;.<span.class="tok-num
667a0 62 65 72 22 3e 31 33 33 37 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ber">1337</span>).<span.class="t
667c0 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 73 ok-kw">return</span>.<span.class
667e0 3d 22 74 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 50 61 ="tok-kw">error</span>.InvalidPa
66800 72 61 6d 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 72 ram;......<span.class="tok-kw">r
66820 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 6f 6f 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 eturn</span>.foo;.}..<span.class
66840 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
66860 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 72 65 61 74 65 46 6f 6f 26 71 75 6f 74 s="tok-str">&quot;createFoo&quot
66880 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-
668a0 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 kw">try</span>.std.testing.expec
668c0 74 45 72 72 6f 72 28 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 tError(<span.class="tok-kw">erro
668e0 72 3c 2f 73 70 61 6e 3e 2e 49 6e 76 61 6c 69 64 50 61 72 61 6d 2c 20 63 72 65 61 74 65 46 6f 6f r</span>.InvalidParam,.createFoo
66900 28 73 74 64 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c (std.testing.allocator,.<span.cl
66920 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 34 36 38 3c 2f 73 70 61 6e 3e 29 29 3b 0a ass="tok-number">2468</span>));.
66940 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
66960 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
66980 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
669a0 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 73 6c 69 70 5f 75 70 73 >zig.test.test_errdefer_slip_ups
669c0 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 73 6c 69 .zig</kbd>.1/1.test_errdefer_sli
669e0 70 5f 75 70 73 2e 74 65 73 74 2e 63 72 65 61 74 65 46 6f 6f 2e 2e 2e 20 4f 4b 0a 5b 67 70 61 5d p_ups.test.createFoo....OK.[gpa]
66a00 20 28 65 72 72 29 3a 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 20 30 78 37 66 65 62 38 34 61 .(err):.memory.address.0x7feb84a
66a20 63 62 30 30 30 20 6c 65 61 6b 65 64 3a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 cb000.leaked:.<span.class="sgr-1
66a40 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 m">/home/andy/src/zig-0.12.x/doc
66a60 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 73 6c 69 70 5f 75 70 73 2e 7a gen_tmp/test_errdefer_slip_ups.z
66a80 69 67 3a 39 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 ig:9:28</span>:.<span.class="sgr
66aa0 2d 32 6d 22 3e 30 78 31 30 33 39 35 35 66 20 69 6e 20 74 72 79 54 6f 41 6c 6c 6f 63 61 74 65 46 -2m">0x103955f.in.tryToAllocateF
66ac0 6f 6f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 61 6c 6c 6f oo.(test)</span>.....return.allo
66ae0 63 61 74 6f 72 2e 63 72 65 61 74 65 28 46 6f 6f 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 cator.create(Foo);..............
66b00 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 73 67 72 2d 33 ..............<span.class="sgr-3
66b20 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
66b40 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 ">/home/andy/src/zig-0.12.x/docg
66b60 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 73 6c 69 70 5f 75 70 73 2e 7a 69 en_tmp/test_errdefer_slip_ups.zi
66b80 67 3a 32 32 3a 33 39 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 g:22:39</span>:.<span.class="sgr
66ba0 2d 32 6d 22 3e 30 78 31 30 33 39 37 37 35 20 69 6e 20 63 72 65 61 74 65 46 6f 6f 20 28 74 65 73 -2m">0x1039775.in.createFoo.(tes
66bc0 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 76 61 72 20 66 6f 6f 20 3d 20 74 72 79 20 t)</span>.........var.foo.=.try.
66be0 74 72 79 54 6f 41 6c 6c 6f 63 61 74 65 46 6f 6f 28 61 6c 6c 6f 63 61 74 6f 72 29 3b 0a 20 20 20 tryToAllocateFoo(allocator);....
66c00 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 ................................
66c20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e ...<span.class="sgr-32m">^</span
66c40 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 >.<span.class="sgr-1m">/home/and
66c60 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 y/src/zig-0.12.x/docgen_tmp/test
66c80 5f 65 72 72 64 65 66 65 72 5f 73 6c 69 70 5f 75 70 73 2e 7a 69 67 3a 33 39 3a 36 32 3c 2f 73 70 _errdefer_slip_ups.zig:39:62</sp
66ca0 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 an>:.<span.class="sgr-2m">0x1039
66cc0 39 62 64 20 69 6e 20 74 65 73 74 2e 63 72 65 61 74 65 46 6f 6f 20 28 74 65 73 74 29 3c 2f 73 70 9bd.in.test.createFoo.(test)</sp
66ce0 61 6e 3e 0a 20 20 20 20 74 72 79 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 45 72 an>.....try.std.testing.expectEr
66d00 72 6f 72 28 65 72 72 6f 72 2e 49 6e 76 61 6c 69 64 50 61 72 61 6d 2c 20 63 72 65 61 74 65 46 6f ror(error.InvalidParam,.createFo
66d20 6f 28 73 74 64 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 2c 20 32 34 36 38 29 29 3b o(std.testing.allocator,.2468));
66d40 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 20 20 ................................
66d60 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 73 ..............................<s
66d80 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 pan.class="sgr-32m">^</span>.<sp
66da0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 an.class="sgr-1m">/home/andy/src
66dc0 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 /zig-0.12.x/lib/compiler/test_ru
66de0 6e 6e 65 72 2e 7a 69 67 3a 31 35 38 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c nner.zig:158:25</span>:.<span.cl
66e00 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 39 35 31 64 20 69 6e 20 6d 61 69 6e 54 65 ass="sgr-2m">0x104951d.in.mainTe
66e20 72 6d 69 6e 61 6c 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 rminal.(test)</span>.........if.
66e40 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 20 20 20 20 (test_fn.func()).|_|.{..........
66e60 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 73 67 72 2d ...............<span.class="sgr-
66e80 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 32m">^</span>.<span.class="sgr-1
66ea0 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 m">/home/andy/src/zig-0.12.x/lib
66ec0 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c /compiler/test_runner.zig:35:28<
66ee0 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 /span>:.<span.class="sgr-2m">0x1
66f00 30 33 66 36 30 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 20 20 03f60b.in.main.(test)</span>....
66f20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 20 20 20 .....return.mainTerminal();.....
66f40 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 20 63 6c 61 .......................<span.cla
66f60 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 ss="sgr-32m">^</span>.<span.clas
66f80 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e s="sgr-1m">/home/andy/src/zig-0.
66fa0 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 12.x/lib/std/start.zig:501:22</s
66fc0 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 pan>:.<span.class="sgr-2m">0x103
66fe0 62 62 63 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 74 65 bbc9.in.posixCallMainAndExit.(te
67000 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 61 69 6e st)</span>.............root.main
67020 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 6e 20 63 ();......................<span.c
67040 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c lass="sgr-32m">^</span>.<span.cl
67060 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d ass="sgr-1m">/home/andy/src/zig-
67080 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 0.12.x/lib/std/start.zig:253:5</
670a0 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 span>:.<span.class="sgr-2m">0x10
670c0 33 62 37 33 31 20 69 6e 20 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 3b731.in._start.(test)</span>...
670e0 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 ..asm.volatile.(switch.(native_a
67100 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 rch).{.....<span.class="sgr-32m"
67120 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 31 >^</span>..All.1.tests.passed..1
67140 20 65 72 72 6f 72 73 20 77 65 72 65 20 6c 6f 67 67 65 64 2e 0a 31 20 74 65 73 74 73 20 6c 65 61 .errors.were.logged..1.tests.lea
67160 6b 65 64 20 6d 65 6d 6f 72 79 2e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 ked.memory..error:.the.following
67180 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 61 69 6c 65 64 20 77 69 74 68 20 65 78 69 74 20 63 .test.command.failed.with.exit.c
671a0 6f 64 65 20 31 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 ode.1:./home/andy/src/zig-0.12.x
671c0 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 62 31 64 33 34 38 32 65 32 35 37 32 62 38 61 66 32 34 36 /zig-cache/o/b1d3482e2572b8af246
671e0 34 64 31 34 33 32 63 31 38 30 32 34 64 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 4d1432c18024d/test.</samp></pre>
67200 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 65 6e 73 </figure>.......<p>.......To.ens
67220 75 72 65 20 74 68 61 74 20 3c 63 6f 64 65 3e 64 65 61 6c 6c 6f 63 61 74 65 46 6f 6f 3c 2f 63 6f ure.that.<code>deallocateFoo</co
67240 64 65 3e 20 69 73 20 70 72 6f 70 65 72 6c 79 20 63 61 6c 6c 65 64 0a 20 20 20 20 20 20 77 68 65 de>.is.properly.called.......whe
67260 6e 20 72 65 74 75 72 6e 69 6e 67 20 61 6e 20 65 72 72 6f 72 2c 20 79 6f 75 20 6d 75 73 74 20 61 n.returning.an.error,.you.must.a
67280 64 64 20 61 6e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 dd.an.<code><span.class="tok-kw"
672a0 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 75 74 73 69 64 65 20 >errdefer</span></code>.outside.
672c0 6f 66 20 74 68 65 20 62 6c 6f 63 6b 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c of.the.block:.......</p>.......<
672e0 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 figure><figcaption.class="zig-ca
67300 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 65 72 72 64 65 p"><cite.class="file">test_errde
67320 66 65 72 5f 62 6c 6f 63 6b 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e fer_block.zig</cite></figcaption
67340 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
67360 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=
67380 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
673a0 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
673c0 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"
673e0 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 74 64 2e 6d 65 >const</span>.Allocator.=.std.me
67400 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 74 6f 6b 2d 6b m.Allocator;..<span.class="tok-k
67420 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 73 w">const</span>.Foo.=.<span.clas
67440 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 64 s="tok-kw">struct</span>.{.....d
67460 61 74 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 ata:.<span.class="tok-type">u32<
67480 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"
674a0 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">
674c0 74 72 79 54 6f 41 6c 6c 6f 63 61 74 65 46 6f 6f 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f tryToAllocateFoo</span>(allocato
674e0 72 3a 20 41 6c 6c 6f 63 61 74 6f 72 29 20 21 2a 46 6f 6f 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 r:.Allocator).!*Foo.{.....<span.
67500 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 6c 6c class="tok-kw">return</span>.all
67520 6f 63 61 74 6f 72 2e 63 72 65 61 74 65 28 46 6f 6f 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 ocator.create(Foo);.}..<span.cla
67540 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
67560 73 3d 22 74 6f 6b 2d 66 6e 22 3e 64 65 61 6c 6c 6f 63 61 74 65 46 6f 6f 3c 2f 73 70 61 6e 3e 28 s="tok-fn">deallocateFoo</span>(
67580 61 6c 6c 6f 63 61 74 6f 72 3a 20 41 6c 6c 6f 63 61 74 6f 72 2c 20 66 6f 6f 3a 20 2a 46 6f 6f 29 allocator:.Allocator,.foo:.*Foo)
675a0 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 70 .<span.class="tok-type">void</sp
675c0 61 6e 3e 20 7b 0a 20 20 20 20 61 6c 6c 6f 63 61 74 6f 72 2e 64 65 73 74 72 6f 79 28 66 6f 6f 29 an>.{.....allocator.destroy(foo)
675e0 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
67600 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 65 74 46 6f 6f 44 an>.<span.class="tok-fn">getFooD
67620 61 74 61 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 ata</span>().!<span.class="tok-t
67640 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 6c 61 73 ype">u32</span>.{.....<span.clas
67660 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
67680 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 36 36 36 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a lass="tok-number">666</span>;.}.
676a0 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>.
676c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 63 72 65 61 74 65 46 6f 6f 3c 2f <span.class="tok-fn">createFoo</
676e0 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 41 6c 6c 6f 63 61 74 6f 72 2c 20 70 61 72 61 span>(allocator:.Allocator,.para
67700 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 73 m:.<span.class="tok-type">i32</s
67720 70 61 6e 3e 29 20 21 2a 46 6f 6f 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 pan>).!*Foo.{.....<span.class="t
67740 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 67 65 74 46 6f 6f ok-kw">const</span>.foo.=.getFoo
67760 3a 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"
67780 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >var</span>.foo.=.<span.class="t
677a0 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 74 72 79 54 6f 41 6c 6c 6f 63 61 74 65 46 ok-kw">try</span>.tryToAllocateF
677c0 6f 6f 28 61 6c 6c 6f 63 61 74 6f 72 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 oo(allocator);.........<span.cla
677e0 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 65 61 6c ss="tok-kw">errdefer</span>.deal
67800 6c 6f 63 61 74 65 46 6f 6f 28 61 6c 6c 6f 63 61 74 6f 72 2c 20 66 6f 6f 29 3b 0a 0a 20 20 20 20 locateFoo(allocator,.foo);......
67820 20 20 20 20 66 6f 6f 2e 64 61 74 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....foo.data.=.<span.class="tok-
67840 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 67 65 74 46 6f 6f 44 61 74 61 28 29 3b 0a 0a 20 20 kw">try</span>.getFooData();....
67860 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 62 72 65 61 6b ......<span.class="tok-kw">break
67880 3c 2f 73 70 61 6e 3e 20 3a 67 65 74 46 6f 6f 20 66 6f 6f 3b 0a 20 20 20 20 7d 3b 0a 20 20 20 20 </span>.:getFoo.foo;.....};.....
678a0 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 69 <span.class="tok-comment">//.Thi
678c0 73 20 6c 61 73 74 73 20 66 6f 72 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 66 75 6e 63 s.lasts.for.the.rest.of.the.func
678e0 74 69 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 tion</span>.....<span.class="tok
67900 2d 6b 77 22 3e 65 72 72 64 65 66 65 72 3c 2f 73 70 61 6e 3e 20 64 65 61 6c 6c 6f 63 61 74 65 46 -kw">errdefer</span>.deallocateF
67920 6f 6f 28 61 6c 6c 6f 63 61 74 6f 72 2c 20 66 6f 6f 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 oo(allocator,.foo);......<span.c
67940 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 45 72 72 6f 72 20 69 73 20 6e lass="tok-comment">//.Error.is.n
67960 6f 77 20 70 72 6f 70 65 72 6c 79 20 68 61 6e 64 6c 65 64 20 62 79 20 65 72 72 64 65 66 65 72 3c ow.properly.handled.by.errdefer<
67980 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">
679a0 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 20 63 6c 61 73 if</span>.(param.&gt;.<span.clas
679c0 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 20 3c 73 70 61 s="tok-number">1337</span>).<spa
679e0 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>.<
67a00 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>
67a20 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 6c 61 73 73 3d .InvalidParam;......<span.class=
67a40 22 74 6f 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 0a 0a 3c "tok-kw">return</span>.foo;.}..<
67a60 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>.
67a80 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 72 65 61 <span.class="tok-str">&quot;crea
67aa0 74 65 46 6f 6f 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 teFoo&quot;</span>.{.....<span.c
67ac0 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 74 65 73 lass="tok-kw">try</span>.std.tes
67ae0 74 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 ting.expectError(<span.class="to
67b00 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 50 61 72 61 6d 2c k-kw">error</span>.InvalidParam,
67b20 20 63 72 65 61 74 65 46 6f 6f 28 73 74 64 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 .createFoo(std.testing.allocator
67b40 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 34 36 38 3c ,.<span.class="tok-number">2468<
67b60 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 2f 66 69 67 75 72 65 /span>));.}</code></pre></figure
67b80 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
67ba0 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
67bc0 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 65 72 72 64 65 66 65 amp>$.<kbd>zig.test.test_errdefe
67be0 72 5f 62 6c 6f 63 6b 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 65 72 72 64 65 r_block.zig</kbd>.1/1.test_errde
67c00 66 65 72 5f 62 6c 6f 63 6b 2e 74 65 73 74 2e 63 72 65 61 74 65 46 6f 6f 2e 2e 2e 20 4f 4b 0a 41 fer_block.test.createFoo....OK.A
67c20 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e ll.1.tests.passed..</samp></pre>
67c40 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 66 61 </figure>.......<p>.......The.fa
67c60 63 74 20 74 68 61 74 20 65 72 72 64 65 66 65 72 73 20 6f 6e 6c 79 20 6c 61 73 74 20 66 6f 72 20 ct.that.errdefers.only.last.for.
67c80 74 68 65 20 62 6c 6f 63 6b 20 74 68 65 79 20 61 72 65 20 64 65 63 6c 61 72 65 64 20 69 6e 20 69 the.block.they.are.declared.in.i
67ca0 73 0a 20 20 20 20 20 20 65 73 70 65 63 69 61 6c 6c 79 20 69 6d 70 6f 72 74 61 6e 74 20 77 68 65 s.......especially.important.whe
67cc0 6e 20 75 73 69 6e 67 20 6c 6f 6f 70 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 n.using.loops:.......</p>.......
67ce0 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
67d00 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 65 72 72 64 ap"><cite.class="file">test_errd
67d20 65 66 65 72 5f 6c 6f 6f 70 5f 6c 65 61 6b 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 efer_loop_leak.zig</cite></figca
67d40 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
67d60 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
67d80 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
67da0 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
67dc0 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
67de0 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
67e00 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="
67e20 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 73 70 61 6e tok-kw">const</span>.Foo.=.<span
67e40 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>.{.
67e60 20 20 20 20 64 61 74 61 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 ....data:.*<span.class="tok-type
67e80 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
67ea0 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
67ec0 2d 66 6e 22 3e 67 65 74 44 61 74 61 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 -fn">getData</span>().!<span.cla
67ee0 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 20 3c ss="tok-type">u32</span>.{.....<
67f00 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
67f20 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 36 36 36 3c 2f >.<span.class="tok-number">666</
67f40 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 3e 66 span>;.}..<span.class="tok-kw">f
67f60 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 67 65 n</span>.<span.class="tok-fn">ge
67f80 6e 46 6f 6f 73 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 41 6c 6c 6f 63 61 74 6f nFoos</span>(allocator:.Allocato
67fa0 72 2c 20 6e 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 3e 75 r,.num:.<span.class="tok-type">u
67fc0 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 21 5b 5d 46 6f 6f 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 size</span>).![]Foo.{.....<span.
67fe0 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 66 6f 6f 73 class="tok-kw">const</span>.foos
68000 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 61 .=.<span.class="tok-kw">try</spa
68020 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 61 6c 6c 6f 63 28 46 6f 6f 2c 20 6e 75 6d 29 3b 0a 20 20 n>.allocator.alloc(Foo,.num);...
68040 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 3c ..<span.class="tok-kw">errdefer<
68060 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 66 6f 6f 73 29 3b 0a 0a 20 20 /span>.allocator.free(foos);....
68080 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 6e ..<span.class="tok-kw">for</span
680a0 3e 20 28 66 6f 6f 73 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 >.(foos,.<span.class="tok-number
680c0 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 29 20 7c 2a 66 6f 6f 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 ">0</span>..).|*foo,.i|.{.......
680e0 20 20 66 6f 6f 2e 64 61 74 61 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ..foo.data.=.<span.class="tok-kw
68100 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 65 61 74 65 28 3c 73 ">try</span>.allocator.create(<s
68120 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>)
68140 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 63 6f 6d 6d 65 ;.........<span.class="tok-comme
68160 6e 74 22 3e 2f 2f 20 54 68 69 73 20 65 72 72 64 65 66 65 72 20 64 6f 65 73 20 6e 6f 74 20 6c 61 nt">//.This.errdefer.does.not.la
68180 73 74 20 62 65 74 77 65 65 6e 20 69 74 65 72 61 74 69 6f 6e 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 st.between.iterations</span>....
681a0 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 64 65 66 .....<span.class="tok-kw">errdef
681c0 65 72 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 64 65 73 74 72 6f 79 28 66 6f 6f 2e er</span>.allocator.destroy(foo.
681e0 64 61 74 61 29 3b 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 data);..........<span.class="tok
68200 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 64 61 74 61 20 66 6f 72 20 74 68 65 20 66 69 -comment">//.The.data.for.the.fi
68220 72 73 74 20 33 20 66 6f 6f 73 20 77 69 6c 6c 20 62 65 20 6c 65 61 6b 65 64 3c 2f 73 70 61 6e 3e rst.3.foos.will.be.leaked</span>
68240 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 66 .........<span.class="tok-kw">if
68260 3c 2f 73 70 61 6e 3e 28 69 20 26 67 74 3b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>(i.&gt;=.<span.class="tok
68280 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -number">3</span>).<span.class="
682a0 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
682c0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 54 6f 6f 4d 61 6e 79 46 s="tok-kw">error</span>.TooManyF
682e0 6f 6f 73 3b 0a 0a 20 20 20 20 20 20 20 20 66 6f 6f 2e 64 61 74 61 2e 2a 20 3d 20 3c 73 70 61 6e oos;..........foo.data.*.=.<span
68300 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 67 65 74 44 61 .class="tok-kw">try</span>.getDa
68320 74 61 28 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 ta();.....}......<span.class="to
68340 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 6f 6f 73 3b 0a 7d 0a 0a 3c 73 70 k-kw">return</span>.foos;.}..<sp
68360 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
68380 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 65 6e 46 6f 6f pan.class="tok-str">&quot;genFoo
683a0 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 73 s&quot;</span>.{.....<span.class
683c0 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 74 65 73 74 69 6e 67 ="tok-kw">try</span>.std.testing
683e0 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 2d 6b 77 .expectError(<span.class="tok-kw
68400 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 54 6f 6f 4d 61 6e 79 46 6f 6f 73 2c 20 67 65 6e 46 ">error</span>.TooManyFoos,.genF
68420 6f 6f 73 28 73 74 64 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e oos(std.testing.allocator,.<span
68440 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 29 3b 0a .class="tok-number">5</span>));.
68460 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
68480 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
684a0 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
684c0 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 6c 6f 6f 70 5f 6c 65 61 >zig.test.test_errdefer_loop_lea
684e0 6b 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 6c 6f k.zig</kbd>.1/1.test_errdefer_lo
68500 6f 70 5f 6c 65 61 6b 2e 74 65 73 74 2e 67 65 6e 46 6f 6f 73 2e 2e 2e 20 4f 4b 0a 5b 67 70 61 5d op_leak.test.genFoos....OK.[gpa]
68520 20 28 65 72 72 29 3a 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 20 30 78 37 66 39 34 36 65 38 .(err):.memory.address.0x7f946e8
68540 64 32 30 30 30 20 6c 65 61 6b 65 64 3a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 d2000.leaked:.<span.class="sgr-1
68560 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 m">/home/andy/src/zig-0.12.x/doc
68580 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 6c 6f 6f 70 5f 6c 65 61 6b 2e gen_tmp/test_errdefer_loop_leak.
685a0 7a 69 67 3a 31 37 3a 34 30 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 zig:17:40</span>:.<span.class="s
685c0 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 39 33 36 20 69 6e 20 67 65 6e 46 6f 6f 73 20 28 74 65 73 gr-2m">0x1039936.in.genFoos.(tes
685e0 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 66 6f 6f 2e 64 61 74 61 20 3d 20 74 72 79 t)</span>.........foo.data.=.try
68600 20 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 65 61 74 65 28 75 33 32 29 3b 0a 20 20 20 20 20 20 20 20 .allocator.create(u32);.........
68620 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 ...............................<
68640 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 span.class="sgr-32m">^</span>.<s
68660 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 pan.class="sgr-1m">/home/andy/sr
68680 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 72 72 c/zig-0.12.x/docgen_tmp/test_err
686a0 64 65 66 65 72 5f 6c 6f 6f 70 5f 6c 65 61 6b 2e 7a 69 67 3a 33 31 3a 35 39 3c 2f 73 70 61 6e 3e defer_loop_leak.zig:31:59</span>
686c0 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 61 32 36 64 :.<span.class="sgr-2m">0x103a26d
686e0 20 69 6e 20 74 65 73 74 2e 67 65 6e 46 6f 6f 73 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 .in.test.genFoos.(test)</span>..
68700 20 20 20 74 72 79 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 45 72 72 6f 72 28 65 ...try.std.testing.expectError(e
68720 72 72 6f 72 2e 54 6f 6f 4d 61 6e 79 46 6f 6f 73 2c 20 67 65 6e 46 6f 6f 73 28 73 74 64 2e 74 65 rror.TooManyFoos,.genFoos(std.te
68740 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 2c 20 35 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 sting.allocator,.5));...........
68760 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 ................................
68780 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 73 67 72 ................<span.class="sgr
687a0 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d -32m">^</span>.<span.class="sgr-
687c0 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 1m">/home/andy/src/zig-0.12.x/li
687e0 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 35 38 3a 32 b/compiler/test_runner.zig:158:2
68800 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 5</span>:.<span.class="sgr-2m">0
68820 78 31 30 34 61 32 38 64 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 28 74 65 73 74 29 3c x104a28d.in.mainTerminal.(test)<
68840 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(
68860 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 )).|_|.{........................
68880 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a .<span.class="sgr-32m">^</span>.
688a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f <span.class="sgr-1m">/home/andy/
688c0 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 src/zig-0.12.x/lib/compiler/test
688e0 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 _runner.zig:35:28</span>:.<span.
68900 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 30 30 61 62 20 69 6e 20 6d 61 69 6e class="sgr-2m">0x10400ab.in.main
68920 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 6e 20 6d 61 .(test)</span>.........return.ma
68940 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 inTerminal();...................
68960 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e .........<span.class="sgr-32m">^
68980 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f </span>.<span.class="sgr-1m">/ho
689a0 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 me/andy/src/zig-0.12.x/lib/std/s
689c0 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c tart.zig:501:22</span>:.<span.cl
689e0 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 63 34 37 39 20 69 6e 20 70 6f 73 69 78 43 ass="sgr-2m">0x103c479.in.posixC
68a00 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>....
68a20 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();...........
68a40 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 ...........<span.class="sgr-32m"
68a60 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f >^</span>.<span.class="sgr-1m">/
68a80 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 home/andy/src/zig-0.12.x/lib/std
68aa0 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 /start.zig:253:5</span>:.<span.c
68ac0 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 62 66 65 31 20 69 6e 20 5f 73 74 61 72 lass="sgr-2m">0x103bfe1.in._star
68ae0 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 t.(test)</span>.....asm.volatile
68b00 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 .(switch.(native_arch).{.....<sp
68b20 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 5b 67 70 an.class="sgr-32m">^</span>..[gp
68b40 61 5d 20 28 65 72 72 29 3a 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 20 30 78 37 66 39 34 36 a].(err):.memory.address.0x7f946
68b60 65 38 64 32 30 30 34 20 6c 65 61 6b 65 64 3a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 e8d2004.leaked:.<span.class="sgr
68b80 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 -1m">/home/andy/src/zig-0.12.x/d
68ba0 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 6c 6f 6f 70 5f 6c 65 61 ocgen_tmp/test_errdefer_loop_lea
68bc0 6b 2e 7a 69 67 3a 31 37 3a 34 30 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k.zig:17:40</span>:.<span.class=
68be0 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 39 33 36 20 69 6e 20 67 65 6e 46 6f 6f 73 20 28 74 "sgr-2m">0x1039936.in.genFoos.(t
68c00 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 66 6f 6f 2e 64 61 74 61 20 3d 20 74 est)</span>.........foo.data.=.t
68c20 72 79 20 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 65 61 74 65 28 75 33 32 29 3b 0a 20 20 20 20 20 20 ry.allocator.create(u32);.......
68c40 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 ................................
68c60 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a .<span.class="sgr-32m">^</span>.
68c80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f <span.class="sgr-1m">/home/andy/
68ca0 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 src/zig-0.12.x/docgen_tmp/test_e
68cc0 72 72 64 65 66 65 72 5f 6c 6f 6f 70 5f 6c 65 61 6b 2e 7a 69 67 3a 33 31 3a 35 39 3c 2f 73 70 61 rrdefer_loop_leak.zig:31:59</spa
68ce0 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 61 32 n>:.<span.class="sgr-2m">0x103a2
68d00 36 64 20 69 6e 20 74 65 73 74 2e 67 65 6e 46 6f 6f 73 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 6d.in.test.genFoos.(test)</span>
68d20 0a 20 20 20 20 74 72 79 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 45 72 72 6f 72 .....try.std.testing.expectError
68d40 28 65 72 72 6f 72 2e 54 6f 6f 4d 61 6e 79 46 6f 6f 73 2c 20 67 65 6e 46 6f 6f 73 28 73 74 64 2e (error.TooManyFoos,.genFoos(std.
68d60 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 2c 20 35 29 29 3b 0a 20 20 20 20 20 20 20 20 testing.allocator,.5));.........
68d80 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 ................................
68da0 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 73 ..................<span.class="s
68dc0 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 gr-32m">^</span>.<span.class="sg
68de0 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f r-1m">/home/andy/src/zig-0.12.x/
68e00 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 35 38 lib/compiler/test_runner.zig:158
68e20 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 :25</span>:.<span.class="sgr-2m"
68e40 3e 30 78 31 30 34 61 32 38 64 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 28 74 65 73 74 >0x104a28d.in.mainTerminal.(test
68e60 29 3c 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 )</span>.........if.(test_fn.fun
68e80 63 28 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 c()).|_|.{......................
68ea0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e ...<span.class="sgr-32m">^</span
68ec0 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 >.<span.class="sgr-1m">/home/and
68ee0 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 y/src/zig-0.12.x/lib/compiler/te
68f00 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 st_runner.zig:35:28</span>:.<spa
68f20 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 30 30 61 62 20 69 6e 20 6d 61 n.class="sgr-2m">0x10400ab.in.ma
68f40 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 6e 20 in.(test)</span>.........return.
68f60 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mainTerminal();.................
68f80 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 ...........<span.class="sgr-32m"
68fa0 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f >^</span>.<span.class="sgr-1m">/
68fc0 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 home/andy/src/zig-0.12.x/lib/std
68fe0 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 /start.zig:501:22</span>:.<span.
69000 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 63 34 37 39 20 69 6e 20 70 6f 73 69 class="sgr-2m">0x103c479.in.posi
69020 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 0a 20 xCallMainAndExit.(test)</span>..
69040 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 20 20 ...........root.main();.........
69060 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 73 67 72 2d 33 32 .............<span.class="sgr-32
69080 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 m">^</span>.<span.class="sgr-1m"
690a0 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 >/home/andy/src/zig-0.12.x/lib/s
690c0 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e td/start.zig:253:5</span>:.<span
690e0 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 62 66 65 31 20 69 6e 20 5f 73 74 .class="sgr-2m">0x103bfe1.in._st
69100 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 art.(test)</span>.....asm.volati
69120 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c le.(switch.(native_arch).{.....<
69140 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 5b span.class="sgr-32m">^</span>..[
69160 67 70 61 5d 20 28 65 72 72 29 3a 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 20 30 78 37 66 39 gpa].(err):.memory.address.0x7f9
69180 34 36 65 38 64 32 30 30 38 20 6c 65 61 6b 65 64 3a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 46e8d2008.leaked:.<span.class="s
691a0 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 gr-1m">/home/andy/src/zig-0.12.x
691c0 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 6c 6f 6f 70 5f 6c /docgen_tmp/test_errdefer_loop_l
691e0 65 61 6b 2e 7a 69 67 3a 31 37 3a 34 30 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 eak.zig:17:40</span>:.<span.clas
69200 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 39 33 36 20 69 6e 20 67 65 6e 46 6f 6f 73 20 s="sgr-2m">0x1039936.in.genFoos.
69220 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 66 6f 6f 2e 64 61 74 61 20 3d (test)</span>.........foo.data.=
69240 20 74 72 79 20 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 65 61 74 65 28 75 33 32 29 3b 0a 20 20 20 20 .try.allocator.create(u32);.....
69260 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 ................................
69280 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e ...<span.class="sgr-32m">^</span
692a0 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 >.<span.class="sgr-1m">/home/and
692c0 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 y/src/zig-0.12.x/docgen_tmp/test
692e0 5f 65 72 72 64 65 66 65 72 5f 6c 6f 6f 70 5f 6c 65 61 6b 2e 7a 69 67 3a 33 31 3a 35 39 3c 2f 73 _errdefer_loop_leak.zig:31:59</s
69300 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 pan>:.<span.class="sgr-2m">0x103
69320 61 32 36 64 20 69 6e 20 74 65 73 74 2e 67 65 6e 46 6f 6f 73 20 28 74 65 73 74 29 3c 2f 73 70 61 a26d.in.test.genFoos.(test)</spa
69340 6e 3e 0a 20 20 20 20 74 72 79 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 45 72 72 n>.....try.std.testing.expectErr
69360 6f 72 28 65 72 72 6f 72 2e 54 6f 6f 4d 61 6e 79 46 6f 6f 73 2c 20 67 65 6e 46 6f 6f 73 28 73 74 or(error.TooManyFoos,.genFoos(st
69380 64 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 2c 20 35 29 29 3b 0a 20 20 20 20 20 20 d.testing.allocator,.5));.......
693a0 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 ................................
693c0 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=
693e0 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "sgr-32m">^</span>.<span.class="
69400 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e sgr-1m">/home/andy/src/zig-0.12.
69420 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 x/lib/compiler/test_runner.zig:1
69440 35 38 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 58:25</span>:.<span.class="sgr-2
69460 6d 22 3e 30 78 31 30 34 61 32 38 64 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 28 74 65 m">0x104a28d.in.mainTerminal.(te
69480 73 74 29 3c 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 st)</span>.........if.(test_fn.f
694a0 75 6e 63 28 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 unc()).|_|.{....................
694c0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 .....<span.class="sgr-32m">^</sp
694e0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 an>.<span.class="sgr-1m">/home/a
69500 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f ndy/src/zig-0.12.x/lib/compiler/
69520 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 test_runner.zig:35:28</span>:.<s
69540 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 30 30 61 62 20 69 6e 20 pan.class="sgr-2m">0x10400ab.in.
69560 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
69580 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.mainTerminal();...............
695a0 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 73 67 72 2d 33 32 .............<span.class="sgr-32
695c0 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 m">^</span>.<span.class="sgr-1m"
695e0 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 >/home/andy/src/zig-0.12.x/lib/s
69600 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 td/start.zig:501:22</span>:.<spa
69620 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 63 34 37 39 20 69 6e 20 70 6f n.class="sgr-2m">0x103c479.in.po
69640 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>
69660 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();.......
69680 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 73 67 72 2d ...............<span.class="sgr-
696a0 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 32m">^</span>.<span.class="sgr-1
696c0 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 m">/home/andy/src/zig-0.12.x/lib
696e0 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 /std/start.zig:253:5</span>:.<sp
69700 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 62 66 65 31 20 69 6e 20 5f an.class="sgr-2m">0x103bfe1.in._
69720 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 start.(test)</span>.....asm.vola
69740 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 tile.(switch.(native_arch).{....
69760 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a .<span.class="sgr-32m">^</span>.
69780 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 33 20 65 72 72 6f 72 73 20 77 65 .All.1.tests.passed..3.errors.we
697a0 72 65 20 6c 6f 67 67 65 64 2e 0a 31 20 74 65 73 74 73 20 6c 65 61 6b 65 64 20 6d 65 6d 6f 72 79 re.logged..1.tests.leaked.memory
697c0 2e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 6f 6d 6d ..error:.the.following.test.comm
697e0 61 6e 64 20 66 61 69 6c 65 64 20 77 69 74 68 20 65 78 69 74 20 63 6f 64 65 20 31 3a 0a 2f 68 6f and.failed.with.exit.code.1:./ho
69800 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 63 68 65 me/andy/src/zig-0.12.x/zig-cache
69820 2f 6f 2f 61 61 62 37 64 64 32 35 38 37 38 63 31 64 66 38 37 61 33 33 63 35 39 33 33 62 31 66 36 /o/aab7dd25878c1df87a33c5933b1f6
69840 61 63 63 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a acc/test.</samp></pre></figure>.
69860 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 70 65 63 69 61 6c 20 63 61 72 65 20 6d 75 73 ......<p>.......Special.care.mus
69880 74 20 62 65 20 74 61 6b 65 6e 20 77 69 74 68 20 63 6f 64 65 20 74 68 61 74 20 61 6c 6c 6f 63 61 t.be.taken.with.code.that.alloca
698a0 74 65 73 20 69 6e 20 61 20 6c 6f 6f 70 0a 20 20 20 20 20 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 tes.in.a.loop.......to.make.sure
698c0 20 74 68 61 74 20 6e 6f 20 6d 65 6d 6f 72 79 20 69 73 20 6c 65 61 6b 65 64 20 77 68 65 6e 20 72 .that.no.memory.is.leaked.when.r
698e0 65 74 75 72 6e 69 6e 67 20 61 6e 20 65 72 72 6f 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 eturning.an.error:.......</p>...
69900 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
69920 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f ig-cap"><cite.class="file">test_
69940 65 72 72 64 65 66 65 72 5f 6c 6f 6f 70 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 errdefer_loop.zig</cite></figcap
69960 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
69980 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
699a0 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>
699c0 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
699e0 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
69a00 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 74 -kw">const</span>.Allocator.=.st
69a20 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 74 d.mem.Allocator;..<span.class="t
69a40 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.
69a60 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>.{..
69a80 20 20 20 64 61 74 61 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 ...data:.*<span.class="tok-type"
69aa0 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 6b >u32</span>.};..<span.class="tok
69ac0 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-
69ae0 66 6e 22 3e 67 65 74 44 61 74 61 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 fn">getData</span>().!<span.clas
69b00 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 20 3c 73 s="tok-type">u32</span>.{.....<s
69b20 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>
69b40 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 36 36 3c 2f 73 .<span.class="tok-number">666</s
69b60 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 3e 66 6e pan>;.}..<span.class="tok-kw">fn
69b80 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 67 65 6e </span>.<span.class="tok-fn">gen
69ba0 46 6f 6f 73 3c 2f 73 70 61 6e 3e 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 41 6c 6c 6f 63 61 74 6f 72 Foos</span>(allocator:.Allocator
69bc0 2c 20 6e 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 3e 75 73 ,.num:.<span.class="tok-type">us
69be0 69 7a 65 3c 2f 73 70 61 6e 3e 29 20 21 5b 5d 46 6f 6f 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 ize</span>).![]Foo.{.....<span.c
69c00 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 66 6f 6f 73 20 lass="tok-kw">const</span>.foos.
69c20 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 61 6e =.<span.class="tok-kw">try</span
69c40 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 61 6c 6c 6f 63 28 46 6f 6f 2c 20 6e 75 6d 29 3b 0a 20 20 20 >.allocator.alloc(Foo,.num);....
69c60 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 3c 2f .<span.class="tok-kw">errdefer</
69c80 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 66 72 65 65 28 66 6f 6f 73 29 3b 0a 0a 20 20 20 span>.allocator.free(foos);.....
69ca0 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 55 73 .<span.class="tok-comment">//.Us
69cc0 65 64 20 74 6f 20 74 72 61 63 6b 20 68 6f 77 20 6d 61 6e 79 20 66 6f 6f 73 20 68 61 76 65 20 62 ed.to.track.how.many.foos.have.b
69ce0 65 65 6e 20 69 6e 69 74 69 61 6c 69 7a 65 64 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e een.initialized</span>.....<span
69d00 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 28 69 6e 63 6c 75 64 69 .class="tok-comment">//.(includi
69d20 6e 67 20 74 68 65 69 72 20 64 61 74 61 20 62 65 69 6e 67 20 61 6c 6c 6f 63 61 74 65 64 29 3c 2f ng.their.data.being.allocated)</
69d40 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 76 span>.....<span.class="tok-kw">v
69d60 61 72 3c 2f 73 70 61 6e 3e 20 6e 75 6d 5f 61 6c 6c 6f 63 61 74 65 64 3a 20 3c 73 70 61 6e 20 63 ar</span>.num_allocated:.<span.c
69d80 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 20 3c lass="tok-type">usize</span>.=.<
69da0 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>
69dc0 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
69de0 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">
69e00 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 66 6f 6f 73 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f for</span>.(foos[<span.class="to
69e20 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 6e 75 6d 5f 61 6c 6c 6f 63 61 74 65 k-number">0</span>..num_allocate
69e40 64 5d 29 20 7c 66 6f 6f 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 6c 6c 6f 63 61 74 6f 72 2e 64 65 d]).|foo|.{.........allocator.de
69e60 73 74 72 6f 79 28 66 6f 6f 2e 64 61 74 61 29 3b 0a 20 20 20 20 7d 3b 0a 20 20 20 20 3c 73 70 61 stroy(foo.data);.....};.....<spa
69e80 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 66 6f 6f n.class="tok-kw">for</span>.(foo
69ea0 73 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 3c 2f 73 s,.<span.class="tok-number">0</s
69ec0 70 61 6e 3e 2e 2e 29 20 7c 2a 66 6f 6f 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 6f 2e pan>..).|*foo,.i|.{.........foo.
69ee0 64 61 74 61 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 data.=.<span.class="tok-kw">try<
69f00 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 65 61 74 65 28 3c 73 70 61 6e 20 63 6c /span>.allocator.create(<span.cl
69f20 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 3b 0a 20 20 20 20 ass="tok-type">u32</span>);.....
69f40 20 20 20 20 6e 75 6d 5f 61 6c 6c 6f 63 61 74 65 64 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ....num_allocated.+=.<span.class
69f60 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 20 20 20 ="tok-number">1</span>;.........
69f80 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>.
69fa0 28 69 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 72 (i.&gt;=.<span.class="tok-number
69fc0 22 3e 33 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 ">3</span>).<span.class="tok-kw"
69fe0 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-
6a000 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 54 6f 6f 4d 61 6e 79 46 6f 6f 73 3b 0a 0a 20 kw">error</span>.TooManyFoos;...
6a020 20 20 20 20 20 20 20 66 6f 6f 2e 64 61 74 61 2e 2a 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .......foo.data.*.=.<span.class=
6a040 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 67 65 74 44 61 74 61 28 29 3b 0a 20 "tok-kw">try</span>.getData();..
6a060 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 3e 72 ...}......<span.class="tok-kw">r
6a080 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 66 6f 6f 73 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 eturn</span>.foos;.}..<span.clas
6a0a0 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
6a0c0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 67 65 6e 46 6f 6f 73 26 71 75 6f 74 3b ss="tok-str">&quot;genFoos&quot;
6a0e0 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
6a100 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 w">try</span>.std.testing.expect
6a120 45 72 72 6f 72 28 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 Error(<span.class="tok-kw">error
6a140 3c 2f 73 70 61 6e 3e 2e 54 6f 6f 4d 61 6e 79 46 6f 6f 73 2c 20 67 65 6e 46 6f 6f 73 28 73 74 64 </span>.TooManyFoos,.genFoos(std
6a160 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .testing.allocator,.<span.class=
6a180 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 3c 2f 63 6f 64 65 "tok-number">5</span>));.}</code
6a1a0 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 ></pre></figure><figure><figcapt
6a1c0 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 ion.class="shell-cap">Shell</fig
6a1e0 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 caption><pre><samp>$.<kbd>zig.te
6a200 73 74 20 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 6c 6f 6f 70 2e 7a 69 67 3c 2f 6b 62 64 3e 0a st.test_errdefer_loop.zig</kbd>.
6a220 31 2f 31 20 74 65 73 74 5f 65 72 72 64 65 66 65 72 5f 6c 6f 6f 70 2e 74 65 73 74 2e 67 65 6e 46 1/1.test_errdefer_loop.test.genF
6a240 6f 6f 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f oos....OK.All.1.tests.passed..</
6a260 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 samp></pre></figure>............
6a280 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 74 69 ..<p>.......A.couple.of.other.ti
6a2a0 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 20 20 dbits.about.error.handling:.....
6a2c0 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 54 68 ..</p>.......<ul>.........<li>Th
6a2e0 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 72 65 ese.primitives.give.enough.expre
6a300 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 20 70 ssiveness.that.it's.completely.p
6a320 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 61 69 ractical.............to.have.fai
6a340 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 61 20 ling.to.check.for.an.error.be.a.
6a360 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 61 6e compile.error..If.you.really.wan
6a380 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 72 6f t.............to.ignore.the.erro
6a3a0 72 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 r,.you.can.add.<code><span.class
6a3c0 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 61 ="tok-kw">catch</span>.<span.cla
6a3e0 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 3c 2f ss="tok-kw">unreachable</span></
6a400 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 20 74 68 65 20 61 64 code>.and.............get.the.ad
6a420 64 65 64 20 62 65 6e 65 66 69 74 20 6f 66 20 63 72 61 73 68 69 6e 67 20 69 6e 20 44 65 62 75 67 ded.benefit.of.crashing.in.Debug
6a440 20 61 6e 64 20 52 65 6c 65 61 73 65 53 61 66 65 20 6d 6f 64 65 73 20 69 66 20 79 6f 75 72 20 61 .and.ReleaseSafe.modes.if.your.a
6a460 73 73 75 6d 70 74 69 6f 6e 20 77 61 73 20 77 72 6f 6e 67 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c ssumption.was.wrong..........</l
6a480 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 53 69 6e 63 65 20 i>.........<li>...........Since.
6a4a0 5a 69 67 20 75 6e 64 65 72 73 74 61 6e 64 73 20 65 72 72 6f 72 20 74 79 70 65 73 2c 20 69 74 20 Zig.understands.error.types,.it.
6a4c0 63 61 6e 20 70 72 65 2d 77 65 69 67 68 74 20 62 72 61 6e 63 68 65 73 20 69 6e 20 66 61 76 6f 72 can.pre-weight.branches.in.favor
6a4e0 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 73 20 6e 6f 74 20 6f 63 63 75 72 72 69 .of...........errors.not.occurri
6a500 6e 67 2e 20 4a 75 73 74 20 61 20 73 6d 61 6c 6c 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 62 65 ng..Just.a.small.optimization.be
6a520 6e 65 66 69 74 20 74 68 61 74 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 nefit.that.is.not.available.....
6a540 20 20 20 20 20 20 69 6e 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 2e 0a 20 20 20 20 20 20 ......in.other.languages........
6a560 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 53 65 65 ..</li>.......</ul>.......<p>See
6a580 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 65 66 .also:</p><ul>.<li><a.href="#def
6a5a0 65 72 22 3e 64 65 66 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 er">defer</a></li>.<li><a.href="
6a5c0 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 65 66 3d 22 23 73 #if">if</a></li>.<li><a.href="#s
6a5e0 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 witch">switch</a></li>.</ul>....
6a600 20 20 20 20 20 3c 70 3e 41 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 69 73 20 63 72 65 61 74 65 .....<p>An.error.union.is.create
6a620 64 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 3e 21 3c 2f 63 6f 64 65 3e 20 62 69 6e 61 72 79 d.with.the.<code>!</code>.binary
6a640 20 6f 70 65 72 61 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 .operator........You.can.use.com
6a660 70 69 6c 65 2d 74 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 pile-time.reflection.to.access.t
6a680 68 65 20 63 68 69 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 he.child.type.of.an.error.union:
6a6a0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
6a6c0 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
6a6e0 22 3e 74 65 73 74 5f 65 72 72 6f 72 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 ">test_error_union.zig</cite></f
6a700 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
6a720 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 70 65 63 74 20 3d 20 ="tok-kw">const</span>.expect.=.
6a740 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
6a760 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">&
6a780 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 quot;std&quot;</span>).testing.e
6a7a0 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 74 65 73 xpect;..<span.class="tok-kw">tes
6a7c0 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">&
6a7e0 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 0a quot;error.union&quot;</span>.{.
6a800 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
6a820 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 3e an>.foo:.<span.class="tok-type">
6a840 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
6a860 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=
6a880 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 20 "tok-null">undefined</span>;....
6a8a0 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 43 ..<span.class="tok-comment">//.C
6a8c0 6f 65 72 63 65 20 66 72 6f 6d 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 61 6e 20 65 72 72 6f oerce.from.child.type.of.an.erro
6a8e0 72 20 75 6e 69 6f 6e 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 6f 6f 20 3d 20 3c 73 70 61 6e 20 r.union:</span>.....foo.=.<span.
6a900 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 0a class="tok-number">1234</span>;.
6a920 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">/
6a940 2f 20 43 6f 65 72 63 65 20 66 72 6f 6d 20 61 6e 20 65 72 72 6f 72 20 73 65 74 3a 3c 2f 73 70 61 /.Coerce.from.an.error.set:</spa
6a960 6e 3e 0a 20 20 20 20 66 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n>.....foo.=.<span.class="tok-kw
6a980 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 53 6f 6d 65 45 72 72 6f 72 3b 0a 0a 20 20 20 20 3c ">error</span>.SomeError;......<
6a9a0 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 55 73 65 20 span.class="tok-comment">//.Use.
6a9c0 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 61 63 63 65 73 compile-time.reflection.to.acces
6a9e0 73 20 74 68 65 20 70 61 79 6c 6f 61 64 20 74 79 70 65 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 75 s.the.payload.type.of.an.error.u
6aa00 6e 69 6f 6e 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 nion:</span>.....<span.class="to
6aa20 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 22 74 6f k-kw">try</span>.<span.class="to
6aa40 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 k-kw">comptime</span>.expect(<sp
6aa60 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 6e 66 6f an.class="tok-builtin">@typeInfo
6aa80 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 6e </span>(<span.class="tok-builtin
6aaa0 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 66 6f 6f 29 29 2e 45 72 72 6f 72 55 6e 69 6f ">@TypeOf</span>(foo)).ErrorUnio
6aac0 6e 2e 70 61 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 n.payload.==.<span.class="tok-ty
6aae0 70 65 22 3e 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 pe">i32</span>);......<span.clas
6ab00 73 3d 22 74 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 s="tok-comment">//.Use.compile-t
6ab20 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 65 72 72 ime.reflection.to.access.the.err
6ab40 6f 72 20 73 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 or.set.type.of.an.error.union:</
6ab60 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 74 span>.....<span.class="tok-kw">t
6ab80 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 22 3e 63 ry</span>.<span.class="tok-kw">c
6aba0 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 omptime</span>.expect(<span.clas
6abc0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e s="tok-builtin">@typeInfo</span>
6abe0 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 79 70 65 (<span.class="tok-builtin">@Type
6ac00 4f 66 3c 2f 73 70 61 6e 3e 28 66 6f 6f 29 29 2e 45 72 72 6f 72 55 6e 69 6f 6e 2e 65 72 72 6f 72 Of</span>(foo)).ErrorUnion.error
6ac20 5f 73 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 65 22 3e 61 _set.==.<span.class="tok-type">a
6ac40 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 72 65 3e 3c nyerror</span>);.}</code></pre><
6ac60 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 /figure><figure><figcaption.clas
6ac80 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e s="shell-cap">Shell</figcaption>
6aca0 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f <pre><samp>$.<kbd>zig.test.test_
6acc0 65 72 72 6f 72 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 65 error_union.zig</kbd>.1/1.test_e
6ace0 72 72 6f 72 5f 75 6e 69 6f 6e 2e 74 65 73 74 2e 65 72 72 6f 72 20 75 6e 69 6f 6e 2e 2e 2e 20 4f rror_union.test.error.union....O
6ad00 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 K.All.1.tests.passed..</samp></p
6ad20 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 4d 65 72 67 69 re></figure>.......<h4.id="Mergi
6ad40 6e 67 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d ng-Error-Sets"><a.href="nav.xhtm
6ad60 6c 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 6e l#toc-Merging-Error-Sets">Mergin
6ad80 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 20 g.Error.Sets</a>.<a.class="hdr".
6ada0 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 61 href="#Merging-Error-Sets">..</a
6adc0 3e 3c 2f 68 34 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 20 ></h4>........<p>.......Use.the.
6ade0 3c 63 6f 64 65 3e 7c 7c 3c 2f 63 6f 64 65 3e 20 6f 70 65 72 61 74 6f 72 20 74 6f 20 6d 65 72 67 <code>||</code>.operator.to.merg
6ae00 65 20 74 77 6f 20 65 72 72 6f 72 20 73 65 74 73 20 74 6f 67 65 74 68 65 72 2e 20 54 68 65 20 72 e.two.error.sets.together..The.r
6ae20 65 73 75 6c 74 69 6e 67 0a 20 20 20 20 20 20 65 72 72 6f 72 20 73 65 74 20 63 6f 6e 74 61 69 6e esulting.......error.set.contain
6ae40 73 20 74 68 65 20 65 72 72 6f 72 73 20 6f 66 20 62 6f 74 68 20 65 72 72 6f 72 20 73 65 74 73 2e s.the.errors.of.both.error.sets.
6ae60 20 44 6f 63 20 63 6f 6d 6d 65 6e 74 73 20 66 72 6f 6d 20 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 .Doc.comments.from.the.left-hand
6ae80 0a 20 20 20 20 20 20 73 69 64 65 20 6f 76 65 72 72 69 64 65 20 64 6f 63 20 63 6f 6d 6d 65 6e 74 .......side.override.doc.comment
6aea0 73 20 66 72 6f 6d 20 74 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 2e 20 49 6e 20 74 s.from.the.right-hand.side..In.t
6aec0 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 64 6f 63 0a 20 20 20 20 20 20 63 6f 6d 6d 65 his.example,.the.doc.......comme
6aee0 6e 74 73 20 66 6f 72 20 3c 63 6f 64 65 3e 43 2e 50 61 74 68 4e 6f 74 46 6f 75 6e 64 3c 2f 63 6f nts.for.<code>C.PathNotFound</co
6af00 64 65 3e 20 69 73 20 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 de>.is.<code>A.doc.comment</code
6af20 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 54 68 >........</p>.......<p>.......Th
6af40 69 73 20 69 73 20 65 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 is.is.especially.useful.for.func
6af60 74 69 6f 6e 73 20 77 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 tions.which.return.different.err
6af80 6f 72 20 73 65 74 73 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 or.sets.depending.......on.<a.hr
6afa0 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 72 61 6e ef="#comptime">comptime</a>.bran
6afc0 63 68 65 73 2e 20 46 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 ches..For.example,.the.Zig.stand
6afe0 61 72 64 20 6c 69 62 72 61 72 79 20 75 73 65 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 4c 69 6e ard.library.uses.......<code>Lin
6b000 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 69 6c 65 4f 70 uxFileOpenError.||.WindowsFileOp
6b020 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 72 20 73 65 74 enError</code>.for.the.error.set
6b040 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 20 20 20 20 3c .of.opening.......files........<
6b060 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c /p>.......<figure><figcaption.cl
6b080 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
6b0a0 3e 74 65 73 74 5f 6d 65 72 67 69 6e 67 5f 65 72 72 6f 72 5f 73 65 74 73 2e 7a 69 67 3c 2f 63 69 >test_merging_error_sets.zig</ci
6b0c0 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
6b0e0 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 20 3d .class="tok-kw">const</span>.A.=
6b100 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
6b120 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 6e 20 63 6c 61 73 73 n>{.....NotDir,......<span.class
6b140 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 63 6f 6d 6d 65 6e 74 ="tok-comment">///.A.doc.comment
6b160 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 0a 7d 3b 0a 3c 73 70 </span>.....PathNotFound,.};.<sp
6b180 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 42 an.class="tok-kw">const</span>.B
6b1a0 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
6b1c0 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 20 20 20 3c 73 70 61 pan>{.....OutOfMemory,......<spa
6b1e0 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 42 20 64 6f 63 20 n.class="tok-comment">///.B.doc.
6b200 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,
6b220 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 3c .};..<span.class="tok-kw">const<
6b240 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 20 63 6c 61 73 73 3d /span>.C.=.A.||.B;..<span.class=
6b260 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="
6b280 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 70 61 6e 20 63 6c 61 tok-fn">foo</span>().C!<span.cla
6b2a0 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>.{.....
6b2c0 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
6b2e0 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 73 n>.<span.class="tok-kw">error</s
6b300 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 73 73 3d 22 74 6f 6b pan>.NotDir;.}..<span.class="tok
6b320 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
6b340 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 73 65 74 73 26 71 75 k-str">&quot;merge.error.sets&qu
6b360 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
6b380 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 0a 20 20 20 20 20 20 k-kw">if</span>.(foo()).{.......
6b3a0 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 70 61 6e ..<span.class="tok-builtin">@pan
6b3c0 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 73 74 72 22 3e ic</span>(<span.class="tok-str">
6b3e0 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 70 61 6e 3e 29 3b 0a &quot;unexpected&quot;</span>);.
6b400 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<
6b420 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
6b440 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).{.........
6b460 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
6b480 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 20 63 6c 61 73 73 3d >.OutOfMemory.=&gt;.<span.class=
6b4a0 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 70 61 "tok-builtin">@panic</span>(<spa
6b4c0 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 63 74 n.class="tok-str">&quot;unexpect
6b4e0 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 6e 20 ed&quot;</span>),.........<span.
6b500 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 50 61 74 68 class="tok-kw">error</span>.Path
6b520 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 3d 22 74 6f 6b 2d NotFound.=&gt;.<span.class="tok-
6b540 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 63 6c 61 builtin">@panic</span>(<span.cla
6b560 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 63 74 65 64 26 71 75 ss="tok-str">&quot;unexpected&qu
6b580 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 6e 20 63 6c 61 73 73 ot;</span>),.........<span.class
6b5a0 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 74 44 69 72 20 3d 26 ="tok-kw">error</span>.NotDir.=&
6b5c0 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 72 65 3e 3c 2f 66 69 gt;.{},.....}.}</code></pre></fi
6b5e0 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
6b600 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
6b620 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 6d 65 72 e><samp>$.<kbd>zig.test.test_mer
6b640 67 69 6e 67 5f 65 72 72 6f 72 5f 73 65 74 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 ging_error_sets.zig</kbd>.1/1.te
6b660 73 74 5f 6d 65 72 67 69 6e 67 5f 65 72 72 6f 72 5f 73 65 74 73 2e 74 65 73 74 2e 6d 65 72 67 65 st_merging_error_sets.test.merge
6b680 20 65 72 72 6f 72 20 73 65 74 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 .error.sets....OK.All.1.tests.pa
6b6a0 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 ssed..</samp></pre></figure>....
6b6c0 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 49 6e 66 65 72 72 65 64 2d 45 72 72 6f 72 ..........<h4.id="Inferred-Error
6b6e0 2d 53 65 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6e -Sets"><a.href="nav.xhtml#toc-In
6b700 66 65 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 ferred-Error-Sets">Inferred.Erro
6b720 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 20 68 72 65 66 3d 22 r.Sets</a>.<a.class="hdr".href="
6b740 23 49 6e 66 65 72 72 65 64 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 #Inferred-Error-Sets">..</a></h4
6b760 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 65 63 61 75 73 65 20 6d 61 6e 79 20 >........<p>.......Because.many.
6b780 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 5a 69 67 20 72 65 74 75 72 6e 20 61 20 70 6f 73 73 69 62 functions.in.Zig.return.a.possib
6b7a0 6c 65 20 65 72 72 6f 72 2c 20 5a 69 67 20 73 75 70 70 6f 72 74 73 20 69 6e 66 65 72 72 69 6e 67 le.error,.Zig.supports.inferring
6b7c0 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 2e 0a 20 20 20 20 20 20 54 6f 20 69 6e 66 65 72 20 74 .the.error.set........To.infer.t
6b7e0 68 65 20 65 72 72 6f 72 20 73 65 74 20 66 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 70 72 65 he.error.set.for.a.function,.pre
6b800 70 65 6e 64 20 74 68 65 20 3c 63 6f 64 65 3e 21 3c 2f 63 6f 64 65 3e 20 6f 70 65 72 61 74 6f 72 pend.the.<code>!</code>.operator
6b820 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 72 65 74 75 72 6e 20 74 79 70 65 .to.the.function...s.return.type
6b840 2c 20 6c 69 6b 65 20 3c 63 6f 64 65 3e 21 54 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f ,.like.<code>!T</code>:.......</
6b860 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
6b880 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
6b8a0 74 65 73 74 5f 69 6e 66 65 72 72 65 64 5f 65 72 72 6f 72 5f 73 65 74 73 2e 7a 69 67 3c 2f 63 69 test_inferred_error_sets.zig</ci
6b8c0 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
6b8e0 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 69 74 68 20 61 6e 20 .class="tok-comment">//.With.an.
6b900 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 0a 3c 73 70 61 6e 20 inferred.error.set</span>.<span.
6b920 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.
6b940 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
6b960 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 64 3c 2f 73 70 61 6e lass="tok-fn">add_inferred</span
6b980 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<
6b9a0 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"
6b9c0 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 21 54 20 7b 0a 20 >type</span>,.a:.T,.b:.T).!T.{..
6b9e0 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
6ba00 70 61 6e 3e 20 6f 76 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 pan>.ov.=.<span.class="tok-built
6ba20 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 61 2c 20 62 in">@addWithOverflow</span>(a,.b
6ba40 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 2f );.....<span.class="tok-kw">if</
6ba60 73 70 61 6e 3e 20 28 6f 76 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 span>.(ov[<span.class="tok-numbe
6ba80 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b r">1</span>].!=.<span.class="tok
6baa0 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 -number">0</span>).<span.class="
6bac0 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
6bae0 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 6f 77 s="tok-kw">error</span>.Overflow
6bb00 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
6bb20 6e 3c 2f 73 70 61 6e 3e 20 6f 76 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d n</span>.ov[<span.class="tok-num
6bb40 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ber">0</span>];.}..<span.class="
6bb60 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 57 69 74 68 20 61 6e 20 65 78 70 6c 69 63 69 74 tok-comment">//.With.an.explicit
6bb80 20 65 72 72 6f 72 20 73 65 74 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .error.set</span>.<span.class="t
6bba0 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
6bbc0 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
6bbe0 6b 2d 66 6e 22 3e 61 64 64 5f 65 78 70 6c 69 63 69 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 k-fn">add_explicit</span>(<span.
6bc00 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
6bc20 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
6bc40 70 61 6e 3e 2c 20 61 3a 20 54 2c 20 62 3a 20 54 29 20 45 72 72 6f 72 21 54 20 7b 0a 20 20 20 20 pan>,.a:.T,.b:.T).Error!T.{.....
6bc60 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
6bc80 3e 20 6f 76 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 >.ov.=.<span.class="tok-builtin"
6bca0 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 61 2c 20 62 29 3b 0a >@addWithOverflow</span>(a,.b);.
6bcc0 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
6bce0 6e 3e 20 28 6f 76 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 n>.(ov[<span.class="tok-number">
6bd00 31 3c 2f 73 70 61 6e 3e 5d 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 1</span>].!=.<span.class="tok-nu
6bd20 6d 62 65 72 22 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 mber">0</span>).<span.class="tok
6bd40 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 22 -kw">return</span>.<span.class="
6bd60 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 6f 77 3b 0a 20 tok-kw">error</span>.Overflow;..
6bd80 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</
6bda0 73 70 61 6e 3e 20 6f 76 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>.ov[<span.class="tok-number
6bdc0 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ">0</span>];.}..<span.class="tok
6bde0 2d 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 -kw">const</span>.Error.=.<span.
6be00 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 20 7b 0a 20 20 class="tok-kw">error</span>.{...
6be20 20 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 ..Overflow,.};..<span.class="tok
6be40 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
6be60 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>
6be80 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
6bea0 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
6bec0 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
6bee0 6f 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 ok-str">&quot;inferred.error.set
6bf00 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=
6bf20 22 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 "tok-kw">if</span>.(add_inferred
6bf40 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
6bf60 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 35 35 3c >,.<span.class="tok-number">255<
6bf80 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"
6bfa0 3e 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 >1</span>)).|_|.<span.class="tok
6bfc0 2d 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 -kw">unreachable</span>.<span.cl
6bfe0 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 3c ass="tok-kw">else</span>.|err|.<
6c000 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
6c020 3e 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 >.(err).{.........<span.class="t
6c040 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 6f 77 20 3d 26 67 ok-kw">error</span>.Overflow.=&g
6c060 74 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 t;.{},.<span.class="tok-comment"
6c080 3e 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 >//.ok</span>.....}.}</code></pr
6c0a0 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
6c0c0 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
6c0e0 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
6c100 73 74 5f 69 6e 66 65 72 72 65 64 5f 65 72 72 6f 72 5f 73 65 74 73 2e 7a 69 67 3c 2f 6b 62 64 3e st_inferred_error_sets.zig</kbd>
6c120 0a 31 2f 31 20 74 65 73 74 5f 69 6e 66 65 72 72 65 64 5f 65 72 72 6f 72 5f 73 65 74 73 2e 74 65 .1/1.test_inferred_error_sets.te
6c140 73 74 2e 69 6e 66 65 72 72 65 64 20 65 72 72 6f 72 20 73 65 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 st.inferred.error.set....OK.All.
6c160 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 1.tests.passed..</samp></pre></f
6c180 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 61 20 66 75 igure>.......<p>.......When.a.fu
6c1a0 6e 63 74 69 6f 6e 20 68 61 73 20 61 6e 20 69 6e 66 65 72 72 65 64 20 65 72 72 6f 72 20 73 65 74 nction.has.an.inferred.error.set
6c1c0 2c 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 20 62 65 63 6f 6d 65 73 20 67 65 6e 65 72 69 63 20 ,.that.function.becomes.generic.
6c1e0 61 6e 64 20 74 68 75 73 20 69 74 20 62 65 63 6f 6d 65 73 0a 20 20 20 20 20 20 74 72 69 63 6b 69 and.thus.it.becomes.......tricki
6c200 65 72 20 74 6f 20 64 6f 20 63 65 72 74 61 69 6e 20 74 68 69 6e 67 73 20 77 69 74 68 20 69 74 2c er.to.do.certain.things.with.it,
6c220 20 73 75 63 68 20 61 73 20 6f 62 74 61 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 70 6f 69 6e 74 .such.as.obtain.a.function.point
6c240 65 72 2c 20 6f 72 20 68 61 76 65 20 61 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 73 65 74 20 74 er,.or.have.an.error.......set.t
6c260 68 61 74 20 69 73 20 63 6f 6e 73 69 73 74 65 6e 74 20 61 63 72 6f 73 73 20 64 69 66 66 65 72 65 hat.is.consistent.across.differe
6c280 6e 74 20 62 75 69 6c 64 20 74 61 72 67 65 74 73 2e 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 nt.build.targets..Additionally,.
6c2a0 69 6e 66 65 72 72 65 64 20 65 72 72 6f 72 20 73 65 74 73 0a 20 20 20 20 20 20 61 72 65 20 69 6e inferred.error.sets.......are.in
6c2c0 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 72 65 63 75 72 73 69 6f 6e 2e 0a 20 20 20 20 20 compatible.with.recursion.......
6c2e0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 65 73 65 20 73 .</p>.......<p>.......In.these.s
6c300 69 74 75 61 74 69 6f 6e 73 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 ituations,.it.is.recommended.to.
6c320 75 73 65 20 61 6e 20 65 78 70 6c 69 63 69 74 20 65 72 72 6f 72 20 73 65 74 2e 20 59 6f 75 20 63 use.an.explicit.error.set..You.c
6c340 61 6e 20 67 65 6e 65 72 61 6c 6c 79 20 73 74 61 72 74 0a 20 20 20 20 20 20 77 69 74 68 20 61 6e an.generally.start.......with.an
6c360 20 65 6d 70 74 79 20 65 72 72 6f 72 20 73 65 74 20 61 6e 64 20 6c 65 74 20 63 6f 6d 70 69 6c 65 .empty.error.set.and.let.compile
6c380 20 65 72 72 6f 72 73 20 67 75 69 64 65 20 79 6f 75 20 74 6f 77 61 72 64 20 63 6f 6d 70 6c 65 74 .errors.guide.you.toward.complet
6c3a0 69 6e 67 20 74 68 65 20 73 65 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 ing.the.set........</p>.......<p
6c3c0 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 6c 69 6d 69 74 61 74 69 6f 6e 73 20 6d 61 79 20 62 65 >.......These.limitations.may.be
6c3e0 20 6f 76 65 72 63 6f 6d 65 20 69 6e 20 61 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 6f 66 .overcome.in.a.future.version.of
6c400 20 5a 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 20 0a 20 .Zig........</p>................
6c420 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 72 72 6f 72 2d 52 65 74 75 72 6e 2d 54 72 61 63 65 73 .....<h3.id="Error-Return-Traces
6c440 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 45 72 72 6f 72 2d 52 "><a.href="nav.xhtml#toc-Error-R
6c460 65 74 75 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 eturn-Traces">Error.Return.Trace
6c480 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 72 72 6f s</a>.<a.class="hdr".href="#Erro
6c4a0 72 2d 52 65 74 75 72 6e 2d 54 72 61 63 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 r-Return-Traces">..</a></h3>....
6c4c0 20 20 20 20 3c 70 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 ....<p>.......Error.Return.Trace
6c4e0 73 20 73 68 6f 77 20 61 6c 6c 20 74 68 65 20 70 6f 69 6e 74 73 20 69 6e 20 74 68 65 20 63 6f 64 s.show.all.the.points.in.the.cod
6c500 65 20 74 68 61 74 20 61 6e 20 65 72 72 6f 72 20 77 61 73 20 72 65 74 75 72 6e 65 64 20 74 6f 20 e.that.an.error.was.returned.to.
6c520 74 68 65 20 63 61 6c 6c 69 6e 67 20 66 75 6e 63 74 69 6f 6e 2e 20 54 68 69 73 20 6d 61 6b 65 73 the.calling.function..This.makes
6c540 20 69 74 20 70 72 61 63 74 69 63 61 6c 20 74 6f 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 74 .it.practical.to.use.<a.href="#t
6c560 72 79 22 3e 74 72 79 3c 2f 61 3e 20 65 76 65 72 79 77 68 65 72 65 20 61 6e 64 20 74 68 65 6e 20 ry">try</a>.everywhere.and.then.
6c580 73 74 69 6c 6c 20 62 65 20 61 62 6c 65 20 74 6f 20 6b 6e 6f 77 20 77 68 61 74 20 68 61 70 70 65 still.be.able.to.know.what.happe
6c5a0 6e 65 64 20 69 66 20 61 6e 20 65 72 72 6f 72 20 65 6e 64 73 20 75 70 20 62 75 62 62 6c 69 6e 67 ned.if.an.error.ends.up.bubbling
6c5c0 20 61 6c 6c 20 74 68 65 20 77 61 79 20 6f 75 74 20 6f 66 20 79 6f 75 72 20 61 70 70 6c 69 63 61 .all.the.way.out.of.your.applica
6c5e0 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c tion........</p>.......<figure><
6c600 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
6c620 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 .class="file">error_return_trace
6c640 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
6c660 64 65 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 de><span.class="tok-kw">pub</spa
6c680 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
6c6a0 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
6c6c0 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 69 n>().!<span.class="tok-type">voi
6c6e0 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 2d d</span>.{.....<span.class="tok-
6c700 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 66 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 kw">try</span>.foo(<span.class="
6c720 74 6f 6b 2d 6e 75 6d 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 tok-number">12</span>);.}..<span
6c740 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.
6c760 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 78 3a 20 3c 73 70 class="tok-fn">foo</span>(x:.<sp
6c780 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 20 an.class="tok-type">i32</span>).
6c7a0 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
6c7c0 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
6c7e0 66 3c 2f 73 70 61 6e 3e 20 28 78 20 26 67 74 3b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 f</span>.(x.&gt;=.<span.class="t
6c800 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 3c ok-number">5</span>).{.........<
6c820 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 62 span.class="tok-kw">try</span>.b
6c840 61 72 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 ar();.....}.<span.class="tok-kw"
6c860 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
6c880 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 32 28 29 3b 0a ss="tok-kw">try</span>.bang2();.
6c8a0 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 6b 77 22 3e 66 6e ....}.}..<span.class="tok-kw">fn
6c8c0 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 61 72 </span>.<span.class="tok-fn">bar
6c8e0 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
6c900 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=
6c920 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 61 7a 28 29 29 20 7b 0a 20 20 20 "tok-kw">if</span>.(baz()).{....
6c940 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
6c960 70 61 6e 3e 20 71 75 75 78 28 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 pan>.quux();.....}.<span.class="
6c980 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 61 6e 20 tok-kw">else</span>.|err|.<span.
6c9a0 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 28 65 72 class="tok-kw">switch</span>.(er
6c9c0 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 2d 6b 77 r).{.........<span.class="tok-kw
6c9e0 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 20 3d 26 67 74 ">error</span>.FileNotFound.=&gt
6ca00 3b 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
6ca20 3e 20 68 65 6c 6c 6f 28 29 2c 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d >.hello(),.....}.}..<span.class=
6ca40 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="
6ca60 74 6f 6b 2d 66 6e 22 3e 62 61 7a 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 63 6c 61 73 tok-fn">baz</span>().!<span.clas
6ca80 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>.{.....<
6caa0 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 62 span.class="tok-kw">try</span>.b
6cac0 61 6e 67 31 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 ang1();.}..<span.class="tok-kw">
6cae0 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 71 fn</span>.<span.class="tok-fn">q
6cb00 75 75 78 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 uux</span>().!<span.class="tok-t
6cb20 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
6cb40 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 32 28 29 3b 0a ss="tok-kw">try</span>.bang2();.
6cb60 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
6cb80 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 68 65 6c 6c 6f 3c 2f 73 70 >.<span.class="tok-fn">hello</sp
6cba0 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
6cbc0 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
6cbe0 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 62 61 6e 67 32 28 29 3b 0a 7d 0a 0a 3c 73 70 61 -kw">try</span>.bang2();.}..<spa
6cc00 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
6cc20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 6e 67 31 3c 2f 73 70 61 6e 3e 28 29 20 21 .class="tok-fn">bang1</span>().!
6cc40 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
6cc60 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 65 n>.{.....<span.class="tok-kw">re
6cc80 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 22 turn</span>.<span.class="tok-kw"
6cca0 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 0a 7d 0a 0a 3c >error</span>.FileNotFound;.}..<
6ccc0 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
6cce0 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 2f 73 70 61 6e 3e 28 pan.class="tok-fn">bang2</span>(
6cd00 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</
6cd20 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"
6cd40 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-
6cd60 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 50 65 72 6d 69 73 73 69 6f 6e 44 65 6e 69 65 kw">error</span>.PermissionDenie
6cd80 64 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 d;.}</code></pre></figure><figur
6cda0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
6cdc0 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
6cde0 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 kbd>zig.build-exe.error_return_t
6ce00 72 61 63 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 65 72 72 6f 72 5f 72 65 race.zig</kbd>.$.<kbd>./error_re
6ce20 74 75 72 6e 5f 74 72 61 63 65 3c 2f 6b 62 64 3e 0a 65 72 72 6f 72 3a 20 50 65 72 6d 69 73 73 69 turn_trace</kbd>.error:.Permissi
6ce40 6f 6e 44 65 6e 69 65 64 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 onDenied.<span.class="sgr-1m">/h
6ce60 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 ome/andy/src/zig-0.12.x/docgen_t
6ce80 6d 70 2f 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 2e 7a 69 67 3a 33 34 3a 35 3c 2f mp/error_return_trace.zig:34:5</
6cea0 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 span>:.<span.class="sgr-2m">0x10
6cec0 33 33 61 38 38 20 69 6e 20 62 61 6e 67 31 20 28 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 33a88.in.bang1.(error_return_tra
6cee0 63 65 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 46 69 6c 65 ce)</span>.....return.error.File
6cf00 4e 6f 74 46 6f 75 6e 64 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 NotFound;.....<span.class="sgr-3
6cf20 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
6cf40 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 ">/home/andy/src/zig-0.12.x/docg
6cf60 65 6e 5f 74 6d 70 2f 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 2e 7a 69 67 3a 32 32 en_tmp/error_return_trace.zig:22
6cf80 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e :5</span>:.<span.class="sgr-2m">
6cfa0 30 78 31 30 33 33 62 39 33 20 69 6e 20 62 61 7a 20 28 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 0x1033b93.in.baz.(error_return_t
6cfc0 72 61 63 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 74 72 79 20 62 61 6e 67 31 28 29 3b 0a 20 20 race)</span>.....try.bang1();...
6cfe0 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e ..<span.class="sgr-32m">^</span>
6d000 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 .<span.class="sgr-1m">/home/andy
6d020 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 65 72 72 6f 72 /src/zig-0.12.x/docgen_tmp/error
6d040 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 2e 7a 69 67 3a 33 38 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c _return_trace.zig:38:5</span>:.<
6d060 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 62 62 38 20 69 6e span.class="sgr-2m">0x1033bb8.in
6d080 20 62 61 6e 67 32 20 28 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 29 3c 2f 73 70 61 .bang2.(error_return_trace)</spa
6d0a0 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 50 65 72 6d 69 73 73 69 6f 6e 44 65 n>.....return.error.PermissionDe
6d0c0 6e 69 65 64 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e nied;.....<span.class="sgr-32m">
6d0e0 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 ^</span>.<span.class="sgr-1m">/h
6d100 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 ome/andy/src/zig-0.12.x/docgen_t
6d120 6d 70 2f 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 2e 7a 69 67 3a 33 30 3a 35 3c 2f mp/error_return_trace.zig:30:5</
6d140 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 span>:.<span.class="sgr-2m">0x10
6d160 33 33 63 32 33 20 69 6e 20 68 65 6c 6c 6f 20 28 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 33c23.in.hello.(error_return_tra
6d180 63 65 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 20 ce)</span>.....try.bang2();.....
6d1a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c <span.class="sgr-32m">^</span>.<
6d1c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 span.class="sgr-1m">/home/andy/s
6d1e0 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 65 72 72 6f 72 5f 72 rc/zig-0.12.x/docgen_tmp/error_r
6d200 65 74 75 72 6e 5f 74 72 61 63 65 2e 7a 69 67 3a 31 37 3a 33 31 3c 2f 73 70 61 6e 3e 3a 20 3c 73 eturn_trace.zig:17:31</span>:.<s
6d220 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 63 64 61 20 69 6e 20 pan.class="sgr-2m">0x1033cda.in.
6d240 62 61 72 20 28 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 29 3c 2f 73 70 61 6e 3e 0a bar.(error_return_trace)</span>.
6d260 20 20 20 20 20 20 20 20 65 72 72 6f 72 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 20 3d 26 67 74 3b ........error.FileNotFound.=&gt;
6d280 20 74 72 79 20 68 65 6c 6c 6f 28 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .try.hello(),...................
6d2a0 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 73 67 72 2d 33 32 6d ............<span.class="sgr-32m
6d2c0 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e ">^</span>.<span.class="sgr-1m">
6d2e0 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e /home/andy/src/zig-0.12.x/docgen
6d300 5f 74 6d 70 2f 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 2e 7a 69 67 3a 37 3a 39 3c _tmp/error_return_trace.zig:7:9<
6d320 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 /span>:.<span.class="sgr-2m">0x1
6d340 30 33 33 64 63 30 20 69 6e 20 66 6f 6f 20 28 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 033dc0.in.foo.(error_return_trac
6d360 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 74 72 79 20 62 61 72 28 29 3b 0a 20 20 20 e)</span>.........try.bar();....
6d380 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 .....<span.class="sgr-32m">^</sp
6d3a0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 an>.<span.class="sgr-1m">/home/a
6d3c0 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 65 72 ndy/src/zig-0.12.x/docgen_tmp/er
6d3e0 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 2e 7a 69 67 3a 32 3a 35 3c 2f 73 70 61 6e 3e 3a ror_return_trace.zig:2:5</span>:
6d400 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 65 31 38 20 .<span.class="sgr-2m">0x1033e18.
6d420 69 6e 20 6d 61 69 6e 20 28 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 65 29 3c 2f 73 70 in.main.(error_return_trace)</sp
6d440 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 73 70 61 6e 20 63 an>.....try.foo(12);.....<span.c
6d460 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c lass="sgr-32m">^</span>.</samp><
6d480 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c /pre></figure>.......<p>.......L
6d4a0 6f 6f 6b 20 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 ook.closely.at.this.example..Thi
6d4c0 73 20 69 73 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 s.is.no.stack.trace........</p>.
6d4e0 20 20 20 20 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 ......<p>.......You.can.see.that
6d500 20 74 68 65 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 .the.final.error.bubbled.up.was.
6d520 3c 63 6f 64 65 3e 50 65 72 6d 69 73 73 69 6f 6e 44 65 6e 69 65 64 3c 2f 63 6f 64 65 3e 2c 0a 20 <code>PermissionDenied</code>,..
6d540 20 20 20 20 20 20 20 20 20 62 75 74 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 65 72 72 6f 72 20 .........but.the.original.error.
6d560 74 68 61 74 20 73 74 61 72 74 65 64 20 74 68 69 73 20 77 68 6f 6c 65 20 74 68 69 6e 67 20 77 61 that.started.this.whole.thing.wa
6d580 73 20 3c 63 6f 64 65 3e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3c 2f 63 6f 64 65 3e 2e 20 49 6e 20 s.<code>FileNotFound</code>..In.
6d5a0 74 68 65 20 3c 63 6f 64 65 3e 62 61 72 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 2c 20 74 the.<code>bar</code>.function,.t
6d5c0 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
6d5e0 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.
6d600 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
6d620 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
6d640 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
6d660 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:.......<
6d680 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c /p>.......<figure><figcaption.cl
6d6a0 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
6d6c0 3e 73 74 61 63 6b 5f 74 72 61 63 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 >stack_trace.zig</cite></figcapt
6d6e0 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ion><pre><code><span.class="tok-
6d700 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-
6d720 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
6d740 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
6d760 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 6f 6f 28 3c 73 k-type">void</span>.{.....foo(<s
6d780 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>
6d7a0 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
6d7c0 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 73 pan>.<span.class="tok-fn">foo</s
6d7e0 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 22 3e 69 pan>(x:.<span.class="tok-type">i
6d800 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
6d820 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=
6d840 22 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 78 20 26 67 74 3b 3d 20 3c 73 70 61 "tok-kw">if</span>.(x.&gt;=.<spa
6d860 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 20 7b n.class="tok-number">5</span>).{
6d880 0a 20 20 20 20 20 20 20 20 62 61 72 28 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 .........bar();.....}.<span.clas
6d8a0 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 20 20 20 s="tok-kw">else</span>.{........
6d8c0 20 62 61 6e 67 32 28 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 .bang2();.....}.}..<span.class="
6d8e0 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
6d900 6f 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 ok-fn">bar</span>().<span.class=
6d920 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
6d940 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 61 7a an.class="tok-kw">if</span>.(baz
6d960 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 71 75 75 78 28 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 ()).{.........quux();.....}.<spa
6d980 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 20 n.class="tok-kw">else</span>.{..
6d9a0 20 20 20 20 20 20 20 68 65 6c 6c 6f 28 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 6e 20 63 .......hello();.....}.}..<span.c
6d9c0 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
6d9e0 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 7a 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 ass="tok-fn">baz</span>().<span.
6da00 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 7b 0a 20 class="tok-type">bool</span>.{..
6da20 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</
6da40 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 61 73 73 3d 22 74 span>.bang1();.}..<span.class="t
6da60 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
6da80 6b 2d 66 6e 22 3e 71 75 75 78 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-fn">quux</span>().<span.class=
6daa0 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 62 61 6e "tok-type">void</span>.{.....ban
6dac0 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
6dae0 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 68 65 6c </span>.<span.class="tok-fn">hel
6db00 6c 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 6b 2d 74 79 70 lo</span>().<span.class="tok-typ
6db20 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 62 61 6e 67 32 28 29 3b 0a 7d 0a e">void</span>.{.....bang2();.}.
6db40 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>.
6db60 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 70 61 6e <span.class="tok-fn">bang1</span
6db80 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 6f 6f 6c 3c >().<span.class="tok-type">bool<
6dba0 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
6dbc0 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
6dbe0 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c -null">false</span>;.}..<span.cl
6dc00 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
6dc20 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 61 6e 67 32 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e ss="tok-fn">bang2</span>().<span
6dc40 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>.{.
6dc60 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 70 ....<span.class="tok-builtin">@p
6dc80 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 6b 2d 73 74 72 anic</span>(<span.class="tok-str
6dca0 22 3e 26 71 75 6f 74 3b 50 65 72 6d 69 73 73 69 6f 6e 44 65 6e 69 65 64 26 71 75 6f 74 3b 3c 2f ">&quot;PermissionDenied&quot;</
6dcc0 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c span>);.}</code></pre></figure><
6dce0 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d figure><figcaption.class="shell-
6dd00 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d cap">Shell</figcaption><pre><sam
6dd20 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 73 74 61 63 6b 5f 74 72 61 p>$.<kbd>zig.build-exe.stack_tra
6dd40 63 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 73 74 61 63 6b 5f 74 72 61 63 ce.zig</kbd>.$.<kbd>./stack_trac
6dd60 65 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 30 36 30 39 20 70 61 6e 69 63 3a 20 50 65 72 e</kbd>.thread.140609.panic:.Per
6dd80 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 73 67 72 2d 31 missionDenied.<span.class="sgr-1
6dda0 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 m">/home/andy/src/zig-0.12.x/doc
6ddc0 67 65 6e 5f 74 6d 70 2f 73 74 61 63 6b 5f 74 72 61 63 65 2e 7a 69 67 3a 33 38 3a 35 3c 2f 73 70 gen_tmp/stack_trace.zig:38:5</sp
6dde0 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 37 an>:.<span.class="sgr-2m">0x1037
6de00 66 38 30 20 69 6e 20 62 61 6e 67 32 20 28 73 74 61 63 6b 5f 74 72 61 63 65 29 3c 2f 73 70 61 6e f80.in.bang2.(stack_trace)</span
6de20 3e 0a 20 20 20 20 40 70 61 6e 69 63 28 26 71 75 6f 74 3b 50 65 72 6d 69 73 73 69 6f 6e 44 65 6e >.....@panic(&quot;PermissionDen
6de40 69 65 64 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 ied&quot;);.....<span.class="sgr
6de60 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d -32m">^</span>.<span.class="sgr-
6de80 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 1m">/home/andy/src/zig-0.12.x/do
6dea0 63 67 65 6e 5f 74 6d 70 2f 73 74 61 63 6b 5f 74 72 61 63 65 2e 7a 69 67 3a 33 30 3a 31 30 3c 2f cgen_tmp/stack_trace.zig:30:10</
6dec0 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 span>:.<span.class="sgr-2m">0x10
6dee0 36 38 36 38 38 20 69 6e 20 68 65 6c 6c 6f 20 28 73 74 61 63 6b 5f 74 72 61 63 65 29 3c 2f 73 70 68688.in.hello.(stack_trace)</sp
6df00 61 6e 3e 0a 20 20 20 20 62 61 6e 67 32 28 29 3b 0a 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 an>.....bang2();..........<span.
6df20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 class="sgr-32m">^</span>.<span.c
6df40 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 lass="sgr-1m">/home/andy/src/zig
6df60 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 73 74 61 63 6b 5f 74 72 61 63 65 2e 7a -0.12.x/docgen_tmp/stack_trace.z
6df80 69 67 3a 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 73 67 ig:17:14</span>:.<span.class="sg
6dfa0 72 2d 32 6d 22 3e 30 78 31 30 33 37 66 35 63 20 69 6e 20 62 61 72 20 28 73 74 61 63 6b 5f 74 72 r-2m">0x1037f5c.in.bar.(stack_tr
6dfc0 61 63 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 68 65 6c 6c 6f 28 29 3b 0a 20 20 20 ace)</span>.........hello();....
6dfe0 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e ..........<span.class="sgr-32m">
6e000 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 ^</span>.<span.class="sgr-1m">/h
6e020 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 ome/andy/src/zig-0.12.x/docgen_t
6e040 6d 70 2f 73 74 61 63 6b 5f 74 72 61 63 65 2e 7a 69 67 3a 37 3a 31 32 3c 2f 73 70 61 6e 3e 3a 20 mp/stack_trace.zig:7:12</span>:.
6e060 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 35 65 38 63 20 69 <span.class="sgr-2m">0x1035e8c.i
6e080 6e 20 66 6f 6f 20 28 73 74 61 63 6b 5f 74 72 61 63 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 n.foo.(stack_trace)</span>......
6e0a0 20 20 20 62 61 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ...bar();............<span.class
6e0c0 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="sgr-32m">^</span>.<span.class=
6e0e0 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 "sgr-1m">/home/andy/src/zig-0.12
6e100 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 73 74 61 63 6b 5f 74 72 61 63 65 2e 7a 69 67 3a 32 3a .x/docgen_tmp/stack_trace.zig:2:
6e120 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 8</span>:.<span.class="sgr-2m">0
6e140 78 31 30 33 33 65 32 64 20 69 6e 20 6d 61 69 6e 20 28 73 74 61 63 6b 5f 74 72 61 63 65 29 3c 2f x1033e2d.in.main.(stack_trace)</
6e160 73 70 61 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 span>.....foo(12);........<span.
6e180 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 class="sgr-32m">^</span>.<span.c
6e1a0 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 lass="sgr-1m">/home/andy/src/zig
6e1c0 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 -0.12.x/lib/std/start.zig:501:22
6e1e0 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 </span>:.<span.class="sgr-2m">0x
6e200 31 30 33 33 36 64 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 10336d9.in.posixCallMainAndExit.
6e220 28 73 74 61 63 6b 5f 74 72 61 63 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 (stack_trace)</span>............
6e240 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();...................
6e260 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e ...<span.class="sgr-32m">^</span
6e280 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 >.<span.class="sgr-1m">/home/and
6e2a0 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a y/src/zig-0.12.x/lib/std/start.z
6e2c0 69 67 3a 32 35 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 73 67 ig:253:5</span>:.<span.class="sg
6e2e0 72 2d 32 6d 22 3e 30 78 31 30 33 33 32 34 31 20 69 6e 20 5f 73 74 61 72 74 20 28 73 74 61 63 6b r-2m">0x1033241.in._start.(stack
6e300 5f 74 72 61 63 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 _trace)</span>.....asm.volatile.
6e320 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 (switch.(native_arch).{.....<spa
6e340 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e n.class="sgr-32m">^</span>.<span
6e360 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 .class="sgr-1m">???:?:?</span>:.
6e380 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 <span.class="sgr-2m">0x0.in.???.
6e3a0 28 3f 3f 3f 29 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 (???)</span>.(process.terminated
6e3c0 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 .by.signal).</samp></pre></figur
6e3e0 65 3e 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 e>.......<p>.......Here,.the.sta
6e400 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
6e420 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 3e 62 61 e.control.......flow.in.<code>ba
6e440 72 3c 2f 63 6f 64 65 3e 20 67 6f 74 20 74 6f 20 74 68 65 20 3c 63 6f 64 65 3e 68 65 6c 6c 6f 28 r</code>.got.to.the.<code>hello(
6e460 29 3c 2f 63 6f 64 65 3e 20 63 61 6c 6c 2e 0a 20 20 20 20 20 20 4f 6e 65 20 77 6f 75 6c 64 20 68 )</code>.call........One.would.h
6e480 61 76 65 20 74 6f 20 6f 70 65 6e 20 61 20 64 65 62 75 67 67 65 72 20 6f 72 20 66 75 72 74 68 65 ave.to.open.a.debugger.or.furthe
6e4a0 72 20 69 6e 73 74 72 75 6d 65 6e 74 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 20 r.instrument.the.application....
6e4c0 20 20 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 66 69 6e 64 20 6f 75 74 2e 20 54 68 65 20 65 72 72 ...in.order.to.find.out..The.err
6e4e0 6f 72 20 72 65 74 75 72 6e 20 74 72 61 63 65 2c 20 6f 6e 20 74 68 65 20 6f 74 68 65 72 20 68 61 or.return.trace,.on.the.other.ha
6e500 6e 64 2c 0a 20 20 20 20 20 20 73 68 6f 77 73 20 65 78 61 63 74 6c 79 20 68 6f 77 20 74 68 65 20 nd,.......shows.exactly.how.the.
6e520 65 72 72 6f 72 20 62 75 62 62 6c 65 64 20 75 70 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 error.bubbled.up........</p>....
6e540 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 64 65 62 75 67 67 69 6e 67 20 66 65 61 74 ...<p>.......This.debugging.feat
6e560 75 72 65 20 6d 61 6b 65 73 20 69 74 20 65 61 73 69 65 72 20 74 6f 20 69 74 65 72 61 74 65 20 71 ure.makes.it.easier.to.iterate.q
6e580 75 69 63 6b 6c 79 20 6f 6e 20 63 6f 64 65 20 74 68 61 74 0a 20 20 20 20 20 20 72 6f 62 75 73 74 uickly.on.code.that.......robust
6e5a0 6c 79 20 68 61 6e 64 6c 65 73 20 61 6c 6c 20 65 72 72 6f 72 20 63 6f 6e 64 69 74 69 6f 6e 73 2e ly.handles.all.error.conditions.
6e5c0 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 5a 69 67 20 64 65 76 65 6c 6f 70 65 72 73 0a .This.means.that.Zig.developers.
6e5e0 20 20 20 20 20 20 77 69 6c 6c 20 6e 61 74 75 72 61 6c 6c 79 20 66 69 6e 64 20 74 68 65 6d 73 65 ......will.naturally.find.themse
6e600 6c 76 65 73 20 77 72 69 74 69 6e 67 20 63 6f 72 72 65 63 74 2c 20 72 6f 62 75 73 74 20 63 6f 64 lves.writing.correct,.robust.cod
6e620 65 20 69 6e 20 6f 72 64 65 72 0a 20 20 20 20 20 20 74 6f 20 69 6e 63 72 65 61 73 65 20 74 68 65 e.in.order.......to.increase.the
6e640 69 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 70 61 63 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ir.development.pace........</p>.
6e660 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 72 72 6f 72 20 52 65 74 75 72 6e 20 54 72 61 ......<p>.......Error.Return.Tra
6e680 63 65 73 20 61 72 65 20 65 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e 20 3c 61 ces.are.enabled.by.default.in.<a
6e6a0 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 61 6e 64 20 3c 61 20 .href="#Debug">Debug</a>.and.<a.
6e6c0 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<
6e6e0 2f 61 3e 20 62 75 69 6c 64 73 20 61 6e 64 20 64 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 /a>.builds.and.disabled.by.defau
6e700 6c 74 20 69 6e 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 lt.in.<a.href="#ReleaseFast">Rel
6e720 65 61 73 65 46 61 73 74 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 easeFast</a>.and.<a.href="#Relea
6e740 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 75 69 6c 64 73 seSmall">ReleaseSmall</a>.builds
6e760 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
6e780 72 65 20 61 72 65 20 61 20 66 65 77 20 77 61 79 73 20 74 6f 20 61 63 74 69 76 61 74 65 20 74 68 re.are.a.few.ways.to.activate.th
6e7a0 69 73 20 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 72 61 63 69 6e 67 20 66 65 61 74 75 72 65 3a is.error.return.tracing.feature:
6e7c0 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 3c .......</p>.......<ul>.........<
6e7e0 6c 69 3e 52 65 74 75 72 6e 20 61 6e 20 65 72 72 6f 72 20 66 72 6f 6d 20 6d 61 69 6e 3c 2f 6c 69 li>Return.an.error.from.main</li
6e800 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20 6d 61 6b 65 73 20 69 74 73 >.........<li>An.error.makes.its
6e820 20 77 61 79 20 74 6f 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b .way.to.<code><span.class="tok-k
6e840 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 22 74 6f 6b w">catch</span>.<span.class="tok
6e860 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 61 -kw">unreachable</span></code>.a
6e880 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 68 65 20 64 nd.you.have.not.overridden.the.d
6e8a0 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 20 20 20 20 efault.panic.handler</li>.......
6e8c0 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 75 72 6e 54 ..<li>Use.<a.href="#errorReturnT
6e8e0 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 6f 20 61 63 race">errorReturnTrace</a>.to.ac
6e900 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 65 2e 20 59 cess.the.current.return.trace..Y
6e920 6f 75 20 63 61 6e 20 75 73 65 20 3c 63 6f 64 65 3e 73 74 64 2e 64 65 62 75 67 2e 64 75 6d 70 53 ou.can.use.<code>std.debug.dumpS
6e940 74 61 63 6b 54 72 61 63 65 3c 2f 63 6f 64 65 3e 20 74 6f 20 70 72 69 6e 74 20 69 74 2e 20 54 68 tackTrace</code>.to.print.it..Th
6e960 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f is.function.returns.comptime-kno
6e980 77 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 77 68 65 6e wn.<a.href="#null">null</a>.when
6e9a0 20 62 75 69 6c 64 69 6e 67 20 77 69 74 68 6f 75 74 20 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 .building.without.error.return.t
6e9c0 72 61 63 69 6e 67 20 73 75 70 70 6f 72 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e racing.support.</li>.......</ul>
6e9e0 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 44 65 .......<h4.id="Implementation-De
6ea00 74 61 69 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6d tails"><a.href="nav.xhtml#toc-Im
6ea20 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 6c 65 6d 65 6e 74 61 plementation-Details">Implementa
6ea40 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 3d 22 68 64 72 22 20 tion.Details</a>.<a.class="hdr".
6ea60 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 61 69 6c 73 22 3e c2 href="#Implementation-Details">.
6ea80 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 61 .</a></h4>........<p>.......To.a
6eaa0 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 74 68 65 72 65 20 61 nalyze.performance.cost,.there.a
6eac0 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 20 20 20 20 20 20 3c re.two.cases:.......</p>.......<
6eae0 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 72 72 6f 72 73 20 61 ul>.........<li>when.no.errors.a
6eb00 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 3c 6c 69 3e 77 68 65 re.returned</li>.........<li>whe
6eb20 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 20 20 20 20 20 3c 2f n.returning.errors</li>.......</
6eb40 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 68 65 20 63 61 73 65 ul>.......<p>.......For.the.case
6eb60 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 6e 65 64 2c 20 74 68 .when.no.errors.are.returned,.th
6eb80 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 20 77 72 69 74 65 20 e.cost.is.a.single.memory.write.
6eba0 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 72 73 74 20 6e 6f 6e operation,.only.in.the.first.non
6ebc0 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 20 63 61 6c 6c 20 67 -failable.function.in.the.call.g
6ebe0 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 65 20 66 75 6e 63 74 raph.that.calls.a.failable.funct
6ec00 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 20 72 65 74 75 72 6e ion,.i.e..when.a.function.return
6ec20 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ing.<code><span.class="tok-type"
6ec40 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 >void</span></code>.calls.a.func
6ec60 74 69 6f 6e 20 72 65 74 75 72 6e 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 tion.returning.<code><span.class
6ec80 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 6f 64 65 3e 2e 0a 20 ="tok-kw">error</span></code>...
6eca0 20 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 .....This.is.to.initialize.this.
6ecc0 73 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 struct.in.the.stack.memory:.....
6ece0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
6ed00 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
6ed20 6c 65 22 3e 73 74 61 63 6b 5f 74 72 61 63 65 5f 73 74 72 75 63 74 2e 7a 69 67 3c 2f 63 69 74 65 le">stack_trace_struct.zig</cite
6ed40 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></figcaption><pre><code><span.c
6ed60 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
6ed80 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 63 6b lass="tok-kw">const</span>.Stack
6eda0 54 72 61 63 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 73 74 72 Trace.=.<span.class="tok-kw">str
6edc0 75 63 74 3c 2f 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 uct</span>.{.....index:.<span.cl
6ede0 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 20 20 20 ass="tok-type">usize</span>,....
6ee00 20 69 6e 73 74 72 75 63 74 69 6f 6e 5f 61 64 64 72 65 73 73 65 73 3a 20 5b 4e 5d 3c 73 70 61 6e .instruction_addresses:.[N]<span
6ee20 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>,.
6ee40 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c };</code></pre></figure>.......<
6ee60 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 20 p>.......Here,.N.is.the.maximum.
6ee80 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 65 function.call.depth.as.determine
6eea0 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 73 d.by.call.graph.analysis..Recurs
6eec0 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 2e ion.is.ignored.and.counts.for.2.
6eee0 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 6f .......</p>.......<p>.......A.po
6ef00 69 6e 74 65 72 20 74 6f 20 3c 63 6f 64 65 3e 53 74 61 63 6b 54 72 61 63 65 3c 2f 63 6f 64 65 3e inter.to.<code>StackTrace</code>
6ef20 20 69 73 20 70 61 73 73 65 64 20 61 73 20 61 20 73 65 63 72 65 74 20 70 61 72 61 6d 65 74 65 72 .is.passed.as.a.secret.parameter
6ef40 20 74 6f 20 65 76 65 72 79 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 61 6e 20 72 65 74 75 .to.every.function.that.can.retu
6ef60 72 6e 20 61 6e 20 65 72 72 6f 72 2c 20 62 75 74 20 69 74 27 73 20 61 6c 77 61 79 73 20 74 68 65 rn.an.error,.but.it's.always.the
6ef80 20 66 69 72 73 74 20 70 61 72 61 6d 65 74 65 72 2c 20 73 6f 20 69 74 20 63 61 6e 20 6c 69 6b 65 .first.parameter,.so.it.can.like
6efa0 6c 79 20 73 69 74 20 69 6e 20 61 20 72 65 67 69 73 74 65 72 20 61 6e 64 20 73 74 61 79 20 74 68 ly.sit.in.a.register.and.stay.th
6efc0 65 72 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 ere........</p>.......<p>.......
6efe0 54 68 61 74 27 73 20 69 74 20 66 6f 72 20 74 68 65 20 70 61 74 68 20 77 68 65 6e 20 6e 6f 20 65 That's.it.for.the.path.when.no.e
6f000 72 72 6f 72 73 20 6f 63 63 75 72 2e 20 49 74 27 73 20 70 72 61 63 74 69 63 61 6c 6c 79 20 66 72 rrors.occur..It's.practically.fr
6f020 65 65 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 70 65 72 66 6f 72 6d 61 6e 63 65 2e 0a 20 20 20 20 ee.in.terms.of.performance......
6f040 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 67 65 6e 65 ..</p>.......<p>.......When.gene
6f060 72 61 74 69 6e 67 20 74 68 65 20 63 6f 64 65 20 66 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 rating.the.code.for.a.function.t
6f080 68 61 74 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 2c 20 6a 75 73 74 20 62 65 66 6f 72 hat.returns.an.error,.just.befor
6f0a0 65 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 e.the.<code><span.class="tok-kw"
6f0c0 3e 72 65 74 75 72 6e 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 >return</span></code>.statement.
6f0e0 28 6f 6e 6c 79 20 66 6f 72 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d (only.for.the.<code><span.class=
6f100 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 65 3e 20 73 74 "tok-kw">return</span></code>.st
6f120 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 29 2c 20 5a 69 atements.that.return.errors),.Zi
6f140 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 66 75 6e 63 74 g.generates.a.call.to.this.funct
6f160 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 ion:.......</p>.......<figure><f
6f180 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 igcaption.class="zig-cap"><cite.
6f1a0 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 7a 69 67 5f 72 65 74 75 72 6e 5f 65 72 72 6f 72 5f 66 6e class="file">zig_return_error_fn
6f1c0 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
6f1e0 64 65 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 de><span.class="tok-comment">//.
6f200 6d 61 72 6b 65 64 20 61 73 20 26 71 75 6f 74 3b 6e 6f 2d 69 6e 6c 69 6e 65 26 71 75 6f 74 3b 20 marked.as.&quot;no-inline&quot;.
6f220 69 6e 20 4c 4c 56 4d 20 49 52 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 in.LLVM.IR</span>.<span.class="t
6f240 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
6f260 6b 2d 66 6e 22 3e 5f 5f 7a 69 67 5f 72 65 74 75 72 6e 5f 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 k-fn">__zig_return_error</span>(
6f280 73 74 61 63 6b 5f 74 72 61 63 65 3a 20 2a 53 74 61 63 6b 54 72 61 63 65 29 20 3c 73 70 61 6e 20 stack_trace:.*StackTrace).<span.
6f2a0 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>.{..
6f2c0 20 20 20 73 74 61 63 6b 5f 74 72 61 63 65 2e 69 6e 73 74 72 75 63 74 69 6f 6e 5f 61 64 64 72 65 ...stack_trace.instruction_addre
6f2e0 73 73 65 73 5b 73 74 61 63 6b 5f 74 72 61 63 65 2e 69 6e 64 65 78 5d 20 3d 20 3c 73 70 61 6e 20 sses[stack_trace.index].=.<span.
6f300 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 72 65 74 75 72 6e 41 64 64 72 65 class="tok-builtin">@returnAddre
6f320 73 73 3c 2f 73 70 61 6e 3e 28 29 3b 0a 20 20 20 20 73 74 61 63 6b 5f 74 72 61 63 65 2e 69 6e 64 ss</span>();.....stack_trace.ind
6f340 65 78 20 3d 20 28 73 74 61 63 6b 5f 74 72 61 63 65 2e 69 6e 64 65 78 20 2b 20 3c 73 70 61 6e 20 ex.=.(stack_trace.index.+.<span.
6f360 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 25 20 4e class="tok-number">1</span>).%.N
6f380 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 ;.}</code></pre></figure>.......
6f3a0 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 74 68 20 6f 70 65 <p>.......The.cost.is.2.math.ope
6f3c0 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 65 61 64 73 20 61 rations.plus.some.memory.reads.a
6f3e0 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 73 73 65 64 20 69 nd.writes..The.memory.accessed.i
6f400 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 65 6d 61 69 6e 20 s.constrained.and.should.remain.
6f420 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 20 74 68 65 20 65 cached.for.the.duration.of.the.e
6f440 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 20 20 3c 2f 70 3e rror.return.bubbling........</p>
6f460 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 64 65 20 73 69 7a .......<p>.......As.for.code.siz
6f480 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 66 6f 72 65 20 61 e.cost,.1.function.call.before.a
6f4a0 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 67 20 64 65 61 6c .return.statement.is.no.big.deal
6f4c0 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 20 68 72 65 66 3d ..Even.so,.......I.have.<a.href=
6f4e0 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/
6f500 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 6d 61 6b 65 20 74 issues/690">a.plan</a>.to.make.t
6f520 68 65 20 63 61 6c 6c 20 74 6f 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 5f 5f 7a 69 67 5f 72 65 74 he.call.to.......<code>__zig_ret
6f540 75 72 6e 5f 65 72 72 6f 72 3c 2f 63 6f 64 65 3e 20 61 20 74 61 69 6c 20 63 61 6c 6c 2c 20 77 68 urn_error</code>.a.tail.call,.wh
6f560 69 63 68 20 62 72 69 6e 67 73 20 74 68 65 20 63 6f 64 65 20 73 69 7a 65 20 63 6f 73 74 20 64 6f ich.brings.the.code.size.cost.do
6f580 77 6e 20 74 6f 20 61 63 74 75 61 6c 6c 79 20 7a 65 72 6f 2e 20 57 68 61 74 20 69 73 20 61 20 72 wn.to.actually.zero..What.is.a.r
6f5a0 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 63 6f 64 65 20 77 69 74 68 6f 75 74 20 eturn.statement.in.code.without.
6f5c0 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 72 61 63 69 6e 67 20 63 61 6e 20 62 65 63 6f 6d 65 20 error.return.tracing.can.become.
6f5e0 61 20 6a 75 6d 70 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 69 6e 20 63 6f 64 65 20 77 69 74 68 20 a.jump.instruction.in.code.with.
6f600 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 72 61 63 69 6e 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e error.return.tracing........</p>
6f620 0a 20 20 20 20 20 20 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 ............................<h2.
6f640 69 64 3d 22 4f 70 74 69 6f 6e 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d id="Optionals"><a.href="nav.xhtm
6f660 6c 23 74 6f 63 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 20 3c l#toc-Optionals">Optionals</a>.<
6f680 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 6c 73 22 3e a.class="hdr".href="#Optionals">
6f6a0 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 4f 6e 65 ..</a></h2>........<p>.......One
6f6c0 20 61 72 65 61 20 74 68 61 74 20 5a 69 67 20 70 72 6f 76 69 64 65 73 20 73 61 66 65 74 79 20 77 .area.that.Zig.provides.safety.w
6f6e0 69 74 68 6f 75 74 20 63 6f 6d 70 72 6f 6d 69 73 69 6e 67 20 65 66 66 69 63 69 65 6e 63 79 20 6f ithout.compromising.efficiency.o
6f700 72 0a 20 20 20 20 20 20 72 65 61 64 61 62 69 6c 69 74 79 20 69 73 20 77 69 74 68 20 74 68 65 20 r.......readability.is.with.the.
6f720 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 optional.type........</p>.......
6f740 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 71 75 65 73 74 69 6f 6e 20 6d 61 72 6b 20 73 79 6d 62 <p>.......The.question.mark.symb
6f760 6f 6c 69 7a 65 73 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 2e 20 59 6f 75 20 63 61 olizes.the.optional.type..You.ca
6f780 6e 20 63 6f 6e 76 65 72 74 20 61 20 74 79 70 65 20 74 6f 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 0a n.convert.a.type.to.an.optional.
6f7a0 20 20 20 20 20 20 74 79 70 65 20 62 79 20 70 75 74 74 69 6e 67 20 61 20 71 75 65 73 74 69 6f 6e ......type.by.putting.a.question
6f7c0 20 6d 61 72 6b 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 69 74 2c 20 6c 69 6b 65 20 74 68 69 73 3a .mark.in.front.of.it,.like.this:
6f7e0 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 .......</p>.......<figure><figca
6f800 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
6f820 73 3d 22 66 69 6c 65 22 3e 6f 70 74 69 6f 6e 61 6c 5f 69 6e 74 65 67 65 72 2e 7a 69 67 3c 2f 63 s="file">optional_integer.zig</c
6f840 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ite></figcaption><pre><code><spa
6f860 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 6e 6f 72 6d 61 6c 20 n.class="tok-comment">//.normal.
6f880 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 74 6f 6b 2d integer</span>.<span.class="tok-
6f8a0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 6f 72 6d 61 6c 5f 69 6e 74 3a 20 3c 73 70 kw">const</span>.normal_int:.<sp
6f8c0 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>.=
6f8e0 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 2f .<span.class="tok-number">1234</
6f900 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 63 6f 6d 6d 65 6e 74 span>;..<span.class="tok-comment
6f920 22 3e 2f 2f 20 6f 70 74 69 6f 6e 61 6c 20 69 6e 74 65 67 65 72 3c 2f 73 70 61 6e 3e 0a 3c 73 70 ">//.optional.integer</span>.<sp
6f940 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
6f960 70 74 69 6f 6e 61 6c 5f 69 6e 74 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ptional_int:.?<span.class="tok-t
6f980 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
6f9a0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 35 36 37 38 3c 2f 73 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 3c 2f ok-number">5678</span>;</code></
6f9c0 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f pre></figure>.......<p>.......No
6f9e0 77 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 3c 63 6f 64 65 3e 6f 70 74 69 6f 6e 61 6c 5f 69 6e w.the.variable.<code>optional_in
6fa00 74 3c 2f 63 6f 64 65 3e 20 63 6f 75 6c 64 20 62 65 20 61 6e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e t</code>.could.be.an.<code><span
6fa20 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
6fa40 64 65 3e 2c 20 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e de>,.or.<code><span.class="tok-n
6fa60 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c ull">null</span></code>........<
6fa80 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 20 6f 66 20 69 /p>.......<p>.......Instead.of.i
6faa0 6e 74 65 67 65 72 73 2c 20 6c 65 74 27 73 20 74 61 6c 6b 20 61 62 6f 75 74 20 70 6f 69 6e 74 65 ntegers,.let's.talk.about.pointe
6fac0 72 73 2e 20 4e 75 6c 6c 20 72 65 66 65 72 65 6e 63 65 73 20 61 72 65 20 74 68 65 20 73 6f 75 72 rs..Null.references.are.the.sour
6fae0 63 65 20 6f 66 20 6d 61 6e 79 20 72 75 6e 74 69 6d 65 0a 20 20 20 20 20 20 65 78 63 65 70 74 69 ce.of.many.runtime.......excepti
6fb00 6f 6e 73 2c 20 61 6e 64 20 65 76 65 6e 20 73 74 61 6e 64 20 61 63 63 75 73 65 64 20 6f 66 20 62 ons,.and.even.stand.accused.of.b
6fb20 65 69 6e 67 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e eing.......<a.href="https://www.
6fb40 6c 75 63 69 64 63 68 61 72 74 2e 63 6f 6d 2f 74 65 63 68 62 6c 6f 67 2f 32 30 31 35 2f 30 38 2f lucidchart.com/techblog/2015/08/
6fb60 33 31 2f 74 68 65 2d 77 6f 72 73 74 2d 6d 69 73 74 61 6b 65 2d 6f 66 2d 63 6f 6d 70 75 74 65 72 31/the-worst-mistake-of-computer
6fb80 2d 73 63 69 65 6e 63 65 2f 22 3e 74 68 65 20 77 6f 72 73 74 20 6d 69 73 74 61 6b 65 20 6f 66 20 -science/">the.worst.mistake.of.
6fba0 63 6f 6d 70 75 74 65 72 20 73 63 69 65 6e 63 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e computer.science</a>........</p>
6fbc0 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 74 68 65 6d .......<p>Zig.does.not.have.them
6fbe0 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 2c 20 79 .</p>.......<p>.......Instead,.y
6fc00 6f 75 20 63 61 6e 20 75 73 65 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 2e 20 ou.can.use.an.optional.pointer..
6fc20 54 68 69 73 20 73 65 63 72 65 74 6c 79 20 63 6f 6d 70 69 6c 65 73 20 64 6f 77 6e 20 74 6f 20 61 This.secretly.compiles.down.to.a
6fc40 20 6e 6f 72 6d 61 6c 20 70 6f 69 6e 74 65 72 2c 0a 20 20 20 20 20 20 73 69 6e 63 65 20 77 65 20 .normal.pointer,.......since.we.
6fc60 6b 6e 6f 77 20 77 65 20 63 61 6e 20 75 73 65 20 30 20 61 73 20 74 68 65 20 6e 75 6c 6c 20 76 61 know.we.can.use.0.as.the.null.va
6fc80 6c 75 65 20 66 6f 72 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 2e 20 42 75 74 20 74 lue.for.the.optional.type..But.t
6fca0 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 63 61 6e 20 63 68 65 63 6b 20 79 6f 75 72 he.compiler.......can.check.your
6fcc0 20 77 6f 72 6b 20 61 6e 64 20 6d 61 6b 65 20 73 75 72 65 20 79 6f 75 20 64 6f 6e 27 74 20 61 73 .work.and.make.sure.you.don't.as
6fce0 73 69 67 6e 20 6e 75 6c 6c 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 63 61 6e 27 sign.null.to.something.that.can'
6fd00 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 70 3e 0a t.be.null........</p>.......<p>.
6fd20 20 20 20 20 20 20 54 79 70 69 63 61 6c 6c 79 20 74 68 65 20 64 6f 77 6e 73 69 64 65 20 6f 66 20 ......Typically.the.downside.of.
6fd40 6e 6f 74 20 68 61 76 69 6e 67 20 6e 75 6c 6c 20 69 73 20 74 68 61 74 20 69 74 20 6d 61 6b 65 73 not.having.null.is.that.it.makes
6fd60 20 74 68 65 20 63 6f 64 65 20 6d 6f 72 65 20 76 65 72 62 6f 73 65 20 74 6f 0a 20 20 20 20 20 20 .the.code.more.verbose.to.......
6fd80 77 72 69 74 65 2e 20 42 75 74 2c 20 6c 65 74 27 73 20 63 6f 6d 70 61 72 65 20 73 6f 6d 65 20 65 write..But,.let's.compare.some.e
6fda0 71 75 69 76 61 6c 65 6e 74 20 43 20 63 6f 64 65 20 61 6e 64 20 5a 69 67 20 63 6f 64 65 2e 0a 20 quivalent.C.code.and.Zig.code...
6fdc0 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 61 73 6b 3a 20 .....</p>.......<p>.......Task:.
6fde0 63 61 6c 6c 20 6d 61 6c 6c 6f 63 2c 20 69 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 6e 75 call.malloc,.if.the.result.is.nu
6fe00 6c 6c 2c 20 72 65 74 75 72 6e 20 6e 75 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 ll,.return.null........</p>.....
6fe20 20 20 3c 70 3e 43 20 63 6f 64 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 ..<p>C.code</p>.......<figure><f
6fe40 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 63 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c igcaption.class="c-cap"><cite.cl
6fe60 61 73 73 3d 22 66 69 6c 65 22 3e 63 61 6c 6c 5f 6d 61 6c 6c 6f 63 5f 69 6e 5f 63 2e 63 3c 2f 63 ass="file">call_malloc_in_c.c</c
6fe80 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 2f 2f 20 6d ite></figcaption><pre><code>//.m
6fea0 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 65 66 alloc.prototype.included.for.ref
6fec0 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 65 29 erence.void.*malloc(size_t.size)
6fee0 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 29 20 ;..struct.Foo.*do_a_thing(void).
6ff00 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 3b 0a {.....char.*ptr.=.malloc(1234);.
6ff20 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 20 2f ....if.(!ptr).return.NULL;...../
6ff40 2f 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 /.....}</code></pre></figure>...
6ff60 20 20 20 20 3c 70 3e 5a 69 67 20 63 6f 64 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 ....<p>Zig.code</p>.......<figur
6ff80 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
6ffa0 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 61 6c 6c 5f 6d 61 6c 6c 6f 63 5f 66 72 6f ite.class="file">call_malloc_fro
6ffc0 6d 5f 7a 69 67 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 m_zig.zig</cite></figcaption><pr
6ffe0 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-comment
70000 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 20 66 ">//.malloc.prototype.included.f
70020 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 73 3d or.reference</span>.<span.class=
70040 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 61 "tok-kw">extern</span>.<span.cla
70060 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
70080 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 20 3c s="tok-fn">malloc</span>(size:.<
700a0 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
700c0 6e 3e 29 20 3f 5b 2a 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 n>).?[*]<span.class="tok-type">u
700e0 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 77 22 3e 8</span>;..<span.class="tok-kw">
70100 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 64 fn</span>.<span.class="tok-fn">d
70120 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 3c 73 70 oAThing</span>().?*Foo.{.....<sp
70140 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
70160 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 6e 75 6d tr.=.malloc(<span.class="tok-num
70180 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 3d 22 74 ber">1234</span>).<span.class="t
701a0 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 61 73 73 ok-kw">orelse</span>.<span.class
701c0 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
701e0 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 20 20 20 ass="tok-null">null</span>;.....
70200 5f 20 3d 20 70 74 72 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e _.=.ptr;.<span.class="tok-commen
70220 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 3c 2f 70 72 65 3e 3c t">//....</span>.}</code></pre><
70240 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 48 65 72 65 2c /figure>.......<p>.........Here,
70260 20 5a 69 67 20 69 73 20 61 74 20 6c 65 61 73 74 20 61 73 20 63 6f 6e 76 65 6e 69 65 6e 74 2c 20 .Zig.is.at.least.as.convenient,.
70280 69 66 20 6e 6f 74 20 6d 6f 72 65 2c 20 74 68 61 6e 20 43 2e 20 41 6e 64 2c 20 74 68 65 20 74 79 if.not.more,.than.C..And,.the.ty
702a0 70 65 20 6f 66 20 22 70 74 72 22 0a 20 20 20 20 20 20 20 20 69 73 20 3c 63 6f 64 65 3e 5b 2a 5d pe.of."ptr".........is.<code>[*]
702c0 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>
702e0 3c 2f 63 6f 64 65 3e 20 3c 65 6d 3e 6e 6f 74 3c 2f 65 6d 3e 20 3c 63 6f 64 65 3e 3f 5b 2a 5d 3c </code>.<em>not</em>.<code>?[*]<
70300 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 3c span.class="tok-type">u8</span><
70320 2f 63 6f 64 65 3e 2e 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 /code>..The.<code><span.class="t
70340 6f 6b 2d 6b 77 22 3e 6f 72 65 6c 73 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 ok-kw">orelse</span></code>.keyw
70360 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 77 72 61 70 70 65 ord.....................unwrappe
70380 64 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 20 61 6e 64 20 74 68 65 72 65 66 6f 72 d.the.optional.type.and.therefor
703a0 65 20 3c 63 6f 64 65 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 e.<code>ptr</code>.is.guaranteed
703c0 20 74 6f 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 .to.be.non-null.everywhere......
703e0 20 20 20 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 ...it.is.used.in.the.function...
70400 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 54 68 65 20 .....</p>.......<p>.........The.
70420 6f 74 68 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 other.form.of.checking.against.N
70440 55 4c 4c 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 ULL.you.might.see.looks.like.thi
70460 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 s:.......</p>.......<figure><fig
70480 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 63 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 caption.class="c-cap"><cite.clas
704a0 73 3d 22 66 69 6c 65 22 3e 63 68 65 63 6b 69 6e 67 5f 6e 75 6c 6c 5f 69 6e 5f 63 2e 63 3c 2f 63 s="file">checking_null_in_c.c</c
704c0 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 76 6f 69 64 ite></figcaption><pre><code>void
704e0 20 64 6f 5f 61 5f 74 68 69 6e 67 28 73 74 72 75 63 74 20 46 6f 6f 20 2a 66 6f 6f 29 20 7b 0a 20 .do_a_thing(struct.Foo.*foo).{..
70500 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 0a 0a 20 20 20 20 69 66 20 28 66 6f 6f ...//.do.some.stuff......if.(foo
70520 29 20 7b 0a 20 20 20 20 20 20 20 20 64 6f 5f 73 6f 6d 65 74 68 69 6e 67 5f 77 69 74 68 5f 66 6f ).{.........do_something_with_fo
70540 6f 28 66 6f 6f 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 o(foo);.....}......//.do.some.st
70560 75 66 66 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 uff.}</code></pre></figure>.....
70580 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 61 63 63 ..<p>.........In.Zig.you.can.acc
705a0 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 20 3c 2f omplish.the.same.thing:.......</
705c0 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
705e0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
70600 63 68 65 63 6b 69 6e 67 5f 6e 75 6c 6c 5f 69 6e 5f 7a 69 67 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c checking_null_in_zig.zig</cite><
70620 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /figcaption><pre><code><span.cla
70640 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.=.<
70660 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 6e span.class="tok-kw">struct</span
70680 3e 7b 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 2f 73 70 >{};.<span.class="tok-kw">fn</sp
706a0 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 53 6f 6d 65 74 an>.<span.class="tok-fn">doSomet
706c0 68 69 6e 67 57 69 74 68 46 6f 6f 3c 2f 73 70 61 6e 3e 28 66 6f 6f 3a 20 2a 46 6f 6f 29 20 3c 73 hingWithFoo</span>(foo:.*Foo).<s
706e0 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>
70700 20 7b 20 5f 20 3d 20 66 6f 6f 3b 20 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .{._.=.foo;.}..<span.class="tok-
70720 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
70740 6e 22 3e 64 6f 41 54 68 69 6e 67 3c 2f 73 70 61 6e 3e 28 6f 70 74 69 6f 6e 61 6c 5f 66 6f 6f 3a n">doAThing</span>(optional_foo:
70760 20 3f 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 3e 76 .?*Foo).<span.class="tok-type">v
70780 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
707a0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 3c 2f 73 70 61 k-comment">//.do.some.stuff</spa
707c0 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 22 3e 69 66 3c n>......<span.class="tok-kw">if<
707e0 2f 73 70 61 6e 3e 20 28 6f 70 74 69 6f 6e 61 6c 5f 66 6f 6f 29 20 7c 66 6f 6f 7c 20 7b 0a 20 20 /span>.(optional_foo).|foo|.{...
70800 20 20 20 20 64 6f 53 6f 6d 65 74 68 69 6e 67 57 69 74 68 46 6f 6f 28 66 6f 6f 29 3b 0a 20 20 20 ....doSomethingWithFoo(foo);....
70820 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 74 .}......<span.class="tok-comment
70840 22 3e 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 ">//.do.some.stuff</span>.}</cod
70860 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 e></pre></figure>.......<p>.....
70880 20 20 4f 6e 63 65 20 61 67 61 69 6e 2c 20 74 68 65 20 6e 6f 74 61 62 6c 65 20 74 68 69 6e 67 20 ..Once.again,.the.notable.thing.
708a0 68 65 72 65 20 69 73 20 74 68 61 74 20 69 6e 73 69 64 65 20 74 68 65 20 69 66 20 62 6c 6f 63 6b here.is.that.inside.the.if.block
708c0 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 66 6f 6f 3c 2f 63 6f 64 65 3e 20 69 73 20 6e 6f 20 6c ,.......<code>foo</code>.is.no.l
708e0 6f 6e 67 65 72 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 2c 20 69 74 20 69 73 onger.an.optional.pointer,.it.is
70900 20 61 20 70 6f 69 6e 74 65 72 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 .a.pointer,.which.......cannot.b
70920 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 70 3e 0a 20 20 20 e.null........</p>.......<p>....
70940 20 20 20 4f 6e 65 20 62 65 6e 65 66 69 74 20 74 6f 20 74 68 69 73 20 69 73 20 74 68 61 74 20 66 ...One.benefit.to.this.is.that.f
70960 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 20 74 61 6b 65 20 70 6f 69 6e 74 65 72 73 20 61 73 20 unctions.which.take.pointers.as.
70980 61 72 67 75 6d 65 6e 74 73 20 63 61 6e 0a 20 20 20 20 20 20 62 65 20 61 6e 6e 6f 74 61 74 65 64 arguments.can.......be.annotated
709a0 20 77 69 74 68 20 74 68 65 20 22 6e 6f 6e 6e 75 6c 6c 22 20 61 74 74 72 69 62 75 74 65 20 2d 20 .with.the."nonnull".attribute.-.
709c0 3c 63 6f 64 65 3e 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 28 28 6e 6f 6e 6e 75 6c 6c 29 29 3c 2f <code>__attribute__((nonnull))</
709e0 63 6f 64 65 3e 20 69 6e 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f code>.in.......<a.href="https://
70a00 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 2d 34 2e 30 2e 30 gcc.gnu.org/onlinedocs/gcc-4.0.0
70a20 2f 67 63 63 2f 46 75 6e 63 74 69 6f 6e 2d 41 74 74 72 69 62 75 74 65 73 2e 68 74 6d 6c 22 3e 47 /gcc/Function-Attributes.html">G
70a40 43 43 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 63 61 6e 20 CC</a>........The.optimizer.can.
70a60 73 6f 6d 65 74 69 6d 65 73 20 6d 61 6b 65 20 62 65 74 74 65 72 20 64 65 63 69 73 69 6f 6e 73 20 sometimes.make.better.decisions.
70a80 6b 6e 6f 77 69 6e 67 20 74 68 61 74 20 70 6f 69 6e 74 65 72 20 61 72 67 75 6d 65 6e 74 73 0a 20 knowing.that.pointer.arguments..
70aa0 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 65 20 6e 75 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a .....cannot.be.null........</p>.
70ac0 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4f 70 74 69 6f 6e 61 6c 2d 54 79 70 65 22 3e 3c 61 20 ......<h3.id="Optional-Type"><a.
70ae0 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 4f 70 74 69 6f 6e 61 6c 2d 54 79 70 href="nav.xhtml#toc-Optional-Typ
70b00 65 22 3e 4f 70 74 69 6f 6e 61 6c 20 54 79 70 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 e">Optional.Type</a>.<a.class="h
70b20 64 72 22 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 54 79 70 65 22 3e c2 a7 3c 2f 61 3e dr".href="#Optional-Type">..</a>
70b40 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e 20 6f 70 74 69 6f 6e 61 6c 20 69 73 20 63 </h3>........<p>An.optional.is.c
70b60 72 65 61 74 65 64 20 62 79 20 70 75 74 74 69 6e 67 20 3c 63 6f 64 65 3e 3f 3c 2f 63 6f 64 65 3e reated.by.putting.<code>?</code>
70b80 20 69 6e 20 66 72 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 .in.front.of.a.type..You.can.use
70ba0 20 63 6f 6d 70 69 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 .compile-time.......reflection.t
70bc0 6f 20 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 61 6e 20 6f 70 o.access.the.child.type.of.an.op
70be0 74 69 6f 6e 61 6c 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 tional:</p>.......<figure><figca
70c00 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
70c20 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6f 70 74 69 6f 6e 61 6c 5f 74 79 70 65 2e 7a 69 67 3c s="file">test_optional_type.zig<
70c40 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
70c60 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>.
70c80 65 78 70 65 63 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 expect.=.<span.class="tok-builti
70ca0 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
70cc0 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>).
70ce0 74 65 73 74 69 6e 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 testing.expect;..<span.class="to
70d00 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
70d20 6f 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 ok-str">&quot;optional.type&quot
70d40 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-
70d60 63 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 comment">//.Declare.an.optional.
70d80 61 6e 64 20 63 6f 65 72 63 65 20 66 72 6f 6d 20 6e 75 6c 6c 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 and.coerce.from.null:</span>....
70da0 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>
70dc0 20 66 6f 6f 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 .foo:.?<span.class="tok-type">i3
70de0 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
70e00 22 3e 6e 75 6c 6c 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 ">null</span>;......<span.class=
70e20 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 43 6f 65 72 63 65 20 66 72 6f 6d 20 63 68 69 "tok-comment">//.Coerce.from.chi
70e40 6c 64 20 74 79 70 65 20 6f 66 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 3c 2f 73 70 61 6e 3e 0a 20 20 ld.type.of.an.optional</span>...
70e60 20 20 66 6f 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 ..foo.=.<span.class="tok-number"
70e80 3e 31 32 33 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 >1234</span>;......<span.class="
70ea0 74 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 tok-comment">//.Use.compile-time
70ec0 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 6c 64 20 .reflection.to.access.the.child.
70ee0 74 79 70 65 20 6f 66 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 type.of.the.optional:</span>....
70f00 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>
70f20 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</
70f40 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 span>.expect(<span.class="tok-bu
70f60 69 6c 74 69 6e 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 iltin">@typeInfo</span>(<span.cl
70f80 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e ass="tok-builtin">@TypeOf</span>
70fa0 28 66 6f 6f 29 29 2e 4f 70 74 69 6f 6e 61 6c 2e 63 68 69 6c 64 20 3d 3d 20 3c 73 70 61 6e 20 63 (foo)).Optional.child.==.<span.c
70fc0 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 0a 7d 3c 2f lass="tok-type">i32</span>);.}</
70fe0 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
71000 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
71020 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
71040 67 20 74 65 73 74 20 74 65 73 74 5f 6f 70 74 69 6f 6e 61 6c 5f 74 79 70 65 2e 7a 69 67 3c 2f 6b g.test.test_optional_type.zig</k
71060 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6f 70 74 69 6f 6e 61 6c 5f 74 79 70 65 2e 74 65 73 74 2e bd>.1/1.test_optional_type.test.
71080 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 optional.type....OK.All.1.tests.
710a0 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 passed..</samp></pre></figure>..
710c0 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6e 75 6c 6c 22 3e 3c 61 20 68 72 65 ............<h3.id="null"><a.hre
710e0 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 20 f="nav.xhtml#toc-null">null</a>.
71100 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6e 75 6c 6c 22 3e c2 a7 3c 2f <a.class="hdr".href="#null">..</
71120 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 4a 75 73 74 20 6c 69 a></h3>........<p>.......Just.li
71140 6b 65 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 6e 65 64 22 3e 75 6e 64 65 66 69 6e 65 ke.<a.href="#undefined">undefine
71160 64 3c 2f 61 3e 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 d</a>,.<code><span.class="tok-nu
71180 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 6f ll">null</span></code>.has.its.o
711a0 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 65 wn.type,.and.the.only.way.to.use
711c0 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 66 .it.is.to.......cast.it.to.a.dif
711e0 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 66 ferent.type:.......</p>.......<f
71200 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
71220 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6e 75 6c 6c 2e 7a 69 67 3c 2f 63 "><cite.class="file">null.zig</c
71240 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ite></figcaption><pre><code><spa
71260 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 70 n.class="tok-kw">const</span>.op
71280 74 69 6f 6e 61 6c 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 tional_value:.?<span.class="tok-
712a0 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="
712c0 74 6f 6b 2d 6e 75 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 tok-null">null</span>;</code></p
712e0 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 re></figure>..............<h3.id
71300 3d 22 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 ="Optional-Pointers"><a.href="na
71320 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 4f 70 74 69 6f 6e 61 6c 2d 50 6f 69 6e 74 65 72 73 22 3e 4f v.xhtml#toc-Optional-Pointers">O
71340 70 74 69 6f 6e 61 6c 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 ptional.Pointers</a>.<a.class="h
71360 64 72 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 c2 a7 dr".href="#Optional-Pointers">..
71380 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e 20 6f 70 74 69 6f 6e 61 6c 20 </a></h3>........<p>An.optional.
713a0 70 6f 69 6e 74 65 72 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 74 68 65 20 pointer.is.guaranteed.to.be.the.
713c0 73 61 6d 65 20 73 69 7a 65 20 61 73 20 61 20 70 6f 69 6e 74 65 72 2e 20 54 68 65 20 3c 63 6f 64 same.size.as.a.pointer..The.<cod
713e0 65 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 e><span.class="tok-null">null</s
71400 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 66 0a 20 20 20 20 20 20 74 68 65 20 6f 70 74 69 6f 6e 61 pan></code>.of.......the.optiona
71420 6c 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 61 64 64 72 65 73 73 20 30 2e l.is.guaranteed.to.be.address.0.
71440 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
71460 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
71480 22 3e 74 65 73 74 5f 6f 70 74 69 6f 6e 61 6c 5f 70 6f 69 6e 74 65 72 2e 7a 69 67 3c 2f 63 69 74 ">test_optional_pointer.zig</cit
714a0 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
714c0 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 78 70 65 class="tok-kw">const</span>.expe
714e0 63 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 ct.=.<span.class="tok-builtin">@
71500 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
71520 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 74 65 73 74 tr">&quot;std&quot;</span>).test
71540 69 6e 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 ing.expect;..<span.class="tok-kw
71560 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
71580 74 72 22 3e 26 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 tr">&quot;optional.pointers&quot
715a0 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-
715c0 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 50 6f 69 6e 74 65 72 73 20 63 61 6e 6e 6f 74 20 62 65 20 6e comment">//.Pointers.cannot.be.n
715e0 75 6c 6c 2e 20 49 66 20 79 6f 75 20 77 61 6e 74 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 2c ull..If.you.want.a.null.pointer,
71600 20 75 73 65 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 .use.the.optional</span>.....<sp
71620 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 72 65 66 69 78 an.class="tok-comment">//.prefix
71640 20 60 3f 60 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 6f 70 .`?`.to.make.the.pointer.type.op
71660 74 69 6f 6e 61 6c 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 tional.</span>.....<span.class="
71680 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 74 72 3a 20 3f 2a 3c 73 70 61 6e 20 tok-kw">var</span>.ptr:.?*<span.
716a0 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
716c0 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>
716e0 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 3c ;......<span.class="tok-kw">var<
71700 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"
71720 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
71740 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 70 74 72 20 3d 20 26 61 6d 70 3b umber">1</span>;.....ptr.=.&amp;
71760 78 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 74 72 79 x;......<span.class="tok-kw">try
71780 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 74 72 2e 3f 2e 2a 20 3d 3d 20 3c 73 70 61 6e 20 </span>.expect(ptr.?.*.==.<span.
717a0 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 0a 20 class="tok-number">1</span>);...
717c0 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">//.
717e0 4f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 73 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 73 Optional.pointers.are.the.same.s
71800 69 7a 65 20 61 73 20 6e 6f 72 6d 61 6c 20 70 6f 69 6e 74 65 72 73 2c 20 62 65 63 61 75 73 65 20 ize.as.normal.pointers,.because.
71820 70 6f 69 6e 74 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 pointer</span>.....<span.class="
71840 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 76 61 6c 75 65 20 30 20 69 73 20 75 73 65 64 20 tok-comment">//.value.0.is.used.
71860 61 73 20 74 68 65 20 6e 75 6c 6c 20 76 61 6c 75 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 as.the.null.value.</span>.....<s
71880 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 65 78 pan.class="tok-kw">try</span>.ex
718a0 70 65 63 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 pect(<span.class="tok-builtin">@
718c0 73 69 7a 65 4f 66 3c 2f 73 70 61 6e 3e 28 3f 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b sizeOf</span>(?*<span.class="tok
718e0 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 -type">i32</span>).==.<span.clas
71900 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 61 6e 3e 28 2a s="tok-builtin">@sizeOf</span>(*
71920 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
71940 3e 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 >));.}</code></pre></figure><fig
71960 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 ure><figcaption.class="shell-cap
71980 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 ">Shell</figcaption><pre><samp>$
719a0 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 6f 70 74 69 6f 6e 61 6c 5f 70 6f 69 .<kbd>zig.test.test_optional_poi
719c0 6e 74 65 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6f 70 74 69 6f 6e 61 6c nter.zig</kbd>.1/1.test_optional
719e0 5f 70 6f 69 6e 74 65 72 2e 74 65 73 74 2e 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 73 2e _pointer.test.optional.pointers.
71a00 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 ...OK.All.1.tests.passed..</samp
71a20 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c ></pre></figure>...............<
71a40 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=
71a60 22 23 77 68 69 6c 65 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 77 68 69 6c 65 20 77 69 "#while-with-Optionals">while.wi
71a80 74 68 20 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 th.Optionals</a></li>.<li><a.hre
71aa0 66 3d 22 23 69 66 2d 77 69 74 68 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 69 66 20 77 69 74 68 20 4f f="#if-with-Optionals">if.with.O
71ac0 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 0a ptionals</a></li>.</ul>.........
71ae0 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 61 73 74 69 6e 67 22 3e 3c 61 20 68 72 65 66 3d 22 ......<h2.id="Casting"><a.href="
71b00 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 61 73 74 69 6e 67 22 3e 43 61 73 74 69 6e 67 3c 2f nav.xhtml#toc-Casting">Casting</
71b20 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 61 73 74 69 6e 67 a>.<a.class="hdr".href="#Casting
71b40 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 20 41 ">..</a></h2>........<p>.......A
71b60 20 3c 73 74 72 6f 6e 67 3e 74 79 70 65 20 63 61 73 74 3c 2f 73 74 72 6f 6e 67 3e 20 63 6f 6e 76 .<strong>type.cast</strong>.conv
71b80 65 72 74 73 20 61 20 76 61 6c 75 65 20 6f 66 20 6f 6e 65 20 74 79 70 65 20 74 6f 20 61 6e 6f 74 erts.a.value.of.one.type.to.anot
71ba0 68 65 72 2e 0a 20 20 20 20 20 20 5a 69 67 20 68 61 73 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 her........Zig.has.<a.href="#Typ
71bc0 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3c 2f 61 3e 20 66 6f e-Coercion">Type.Coercion</a>.fo
71be0 72 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 6b 6e 6f 77 6e 20 74 6f 20 r.conversions.that.are.known.to.
71c00 62 65 20 63 6f 6d 70 6c 65 74 65 6c 79 20 73 61 66 65 20 61 6e 64 20 75 6e 61 6d 62 69 67 75 6f be.completely.safe.and.unambiguo
71c20 75 73 2c 0a 20 20 20 20 20 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 45 78 70 6c 69 63 69 74 us,.......and.<a.href="#Explicit
71c40 2d 43 61 73 74 73 22 3e 45 78 70 6c 69 63 69 74 20 43 61 73 74 73 3c 2f 61 3e 20 66 6f 72 20 63 -Casts">Explicit.Casts</a>.for.c
71c60 6f 6e 76 65 72 73 69 6f 6e 73 20 74 68 61 74 20 6f 6e 65 20 77 6f 75 6c 64 20 6e 6f 74 20 77 61 onversions.that.one.would.not.wa
71c80 6e 74 20 74 6f 20 68 61 70 70 65 6e 20 6f 6e 20 61 63 63 69 64 65 6e 74 2e 0a 20 20 20 20 20 20 nt.to.happen.on.accident........
71ca0 54 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 20 74 68 69 72 64 20 6b 69 6e 64 20 6f 66 20 74 79 There.is.also.a.third.kind.of.ty
71cc0 70 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 63 61 6c 6c 65 64 20 3c 61 20 68 72 65 66 3d 22 23 50 pe.conversion.called.<a.href="#P
71ce0 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
71d00 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 20 66 6f 72 0a 20 20 20 20 20 20 74 68 65 20 63 61 73 65 esolution</a>.for.......the.case
71d20 20 77 68 65 6e 20 61 20 72 65 73 75 6c 74 20 74 79 70 65 20 6d 75 73 74 20 62 65 20 64 65 63 69 .when.a.result.type.must.be.deci
71d40 64 65 64 20 67 69 76 65 6e 20 6d 75 6c 74 69 70 6c 65 20 6f 70 65 72 61 6e 64 20 74 79 70 65 73 ded.given.multiple.operand.types
71d60 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 54 79 70 65 2d ........</p>.......<h3.id="Type-
71d80 43 6f 65 72 63 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 Coercion"><a.href="nav.xhtml#toc
71da0 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3c 2f 61 -Type-Coercion">Type.Coercion</a
71dc0 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 79 70 65 2d 43 6f 65 >.<a.class="hdr".href="#Type-Coe
71de0 72 63 69 6f 6e 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 rcion">..</a></h3>........<p>...
71e00 20 20 20 20 54 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 6f 63 63 75 72 73 20 77 68 65 6e 20 6f 6e ....Type.coercion.occurs.when.on
71e20 65 20 74 79 70 65 20 69 73 20 65 78 70 65 63 74 65 64 2c 20 62 75 74 20 64 69 66 66 65 72 65 6e e.type.is.expected,.but.differen
71e40 74 20 74 79 70 65 20 69 73 20 70 72 6f 76 69 64 65 64 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 t.type.is.provided:.......</p>..
71e60 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
71e80 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
71ea0 5f 74 79 70 65 5f 63 6f 65 72 63 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 _type_coercion.zig</cite></figca
71ec0 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
71ee0 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
71f00 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 2d 20 76 61 ok-str">&quot;type.coercion.-.va
71f20 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 riable.declaration&quot;</span>.
71f40 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
71f60 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 70 65 </span>.a:.<span.class="tok-type
71f80 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
71fa0 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 73 umber">1</span>;.....<span.class
71fc0 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 73 70 61 6e 20 ="tok-kw">const</span>.b:.<span.
71fe0 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 20 61 3b class="tok-type">u16</span>.=.a;
72000 0a 20 20 20 20 5f 20 3d 20 62 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....._.=.b;.}..<span.class="tok-
72020 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
72040 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 2d 20 66 75 6e 63 -str">&quot;type.coercion.-.func
72060 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
72080 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
720a0 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
720c0 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 3c n>.=.<span.class="tok-number">1<
720e0 2f 73 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 /span>;.....foo(a);.}..<span.cla
72100 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
72120 73 3d 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 s="tok-fn">foo</span>(b:.<span.c
72140 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 29 20 3c 73 70 61 lass="tok-type">u16</span>).<spa
72160 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>.{
72180 0a 20 20 20 20 5f 20 3d 20 62 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....._.=.b;.}..<span.class="tok-
721a0 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
721c0 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 2d 20 40 61 73 20 -str">&quot;type.coercion.-.@as.
721e0 62 75 69 6c 74 69 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 builtin&quot;</span>.{.....<span
72200 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 3a 20 .class="tok-kw">const</span>.a:.
72220 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>
72240 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
72260 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
72280 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 22 74 6f 6b onst</span>.b.=.<span.class="tok
722a0 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 -builtin">@as</span>(<span.class
722c0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 31 36 3c 2f 73 70 61 6e 3e 2c 20 61 29 3b 0a 20 20 20 20 ="tok-type">u16</span>,.a);.....
722e0 5f 20 3d 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 _.=.b;.}</code></pre></figure><f
72300 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 igure><figcaption.class="shell-c
72320 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 ap">Shell</figcaption><pre><samp
72340 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 74 79 70 65 5f 63 6f 65 72 63 >$.<kbd>zig.test.test_type_coerc
72360 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 33 20 74 65 73 74 5f 74 79 70 65 5f 63 6f 65 72 ion.zig</kbd>.1/3.test_type_coer
72380 63 69 6f 6e 2e 74 65 73 74 2e 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 2d 20 76 61 72 69 61 62 cion.test.type.coercion.-.variab
723a0 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e 2e 2e 20 4f 4b 0a 32 2f 33 20 74 65 73 74 5f 74 79 le.declaration....OK.2/3.test_ty
723c0 70 65 5f 63 6f 65 72 63 69 6f 6e 2e 74 65 73 74 2e 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 2d pe_coercion.test.type.coercion.-
723e0 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 2e 2e 20 4f 4b 0a 33 2f 33 20 74 65 73 74 5f 74 79 .function.call....OK.3/3.test_ty
72400 70 65 5f 63 6f 65 72 63 69 6f 6e 2e 74 65 73 74 2e 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 2d pe_coercion.test.type.coercion.-
72420 20 40 61 73 20 62 75 69 6c 74 69 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 33 20 74 65 73 74 73 20 70 .@as.builtin....OK.All.3.tests.p
72440 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 assed..</samp></pre></figure>...
72460 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 79 70 65 20 63 6f 65 72 63 69 6f 6e 73 20 61 72 65 ....<p>.......Type.coercions.are
72480 20 6f 6e 6c 79 20 61 6c 6c 6f 77 65 64 20 77 68 65 6e 20 69 74 20 69 73 20 63 6f 6d 70 6c 65 74 .only.allowed.when.it.is.complet
724a0 65 6c 79 20 75 6e 61 6d 62 69 67 75 6f 75 73 20 68 6f 77 20 74 6f 20 67 65 74 20 66 72 6f 6d 20 ely.unambiguous.how.to.get.from.
724c0 6f 6e 65 20 74 79 70 65 20 74 6f 20 61 6e 6f 74 68 65 72 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 one.type.to.another,.......and.t
724e0 68 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 he.transformation.is.guaranteed.
72500 74 6f 20 62 65 20 73 61 66 65 2e 20 54 68 65 72 65 20 69 73 20 6f 6e 65 20 65 78 63 65 70 74 69 to.be.safe..There.is.one.excepti
72520 6f 6e 2c 20 77 68 69 63 68 20 69 73 20 3c 61 20 68 72 65 66 3d 22 23 43 2d 50 6f 69 6e 74 65 72 on,.which.is.<a.href="#C-Pointer
72540 73 22 3e 43 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 s">C.Pointers</a>........</p>...
72560 20 20 20 20 3c 68 34 20 69 64 3d 22 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 53 74 72 69 63 74 ....<h4.id="Type-Coercion-Strict
72580 65 72 2d 51 75 61 6c 69 66 69 63 61 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 er-Qualification"><a.href="nav.x
725a0 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 53 74 72 69 63 74 65 72 2d html#toc-Type-Coercion-Stricter-
725c0 51 75 61 6c 69 66 69 63 61 74 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 53 74 Qualification">Type.Coercion:.St
725e0 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 61 20 63 6c 61 73 ricter.Qualification</a>.<a.clas
72600 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 53 74 72 s="hdr".href="#Type-Coercion-Str
72620 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 3e 3c 2f 68 34 3e icter-Qualification">..</a></h4>
72640 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 68 69 63 68 20 68 ........<p>.......Values.which.h
72660 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 6e 20 61 74 20 72 ave.the.same.representation.at.r
72680 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 65 61 73 65 20 74 untime.can.be.cast.to.increase.t
726a0 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 20 71 75 61 6c 69 he.strictness.......of.the.quali
726c0 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 64 20 74 68 65 20 fiers,.no.matter.how.nested.the.
726e0 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 0a 20 20 20 20 20 qualifiers.are:.......</p>......
72700 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 3e 3c 73 70 61 6e 20 .<ul>...........<li><code><span.
72720 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 6f 64 class="tok-kw">const</span></cod
72740 65 3e 20 2d 20 6e 6f 6e 2d 63 6f 6e 73 74 20 74 6f 20 63 6f 6e 73 74 20 69 73 20 61 6c 6c 6f 77 e>.-.non-const.to.const.is.allow
72760 65 64 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 3e 3c 73 70 61 ed</li>...........<li><code><spa
72780 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 61 6e 3e n.class="tok-kw">volatile</span>
727a0 3c 2f 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 </code>.-.non-volatile.to.volati
727c0 6c 65 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 le.is.allowed</li>...........<li
727e0 3e 3c 63 6f 64 65 3e 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 ><code><span.class="tok-kw">alig
72800 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 2d 20 62 69 67 67 65 72 20 74 6f 20 73 6d 61 6c n</span></code>.-.bigger.to.smal
72820 6c 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 69 73 20 61 6c 6c 6f 77 65 64 20 3c 2f 6c 69 3e 0a 20 ler.alignment.is.allowed.</li>..
72840 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 2d 53 65 74 .........<li><a.href="#Error-Set
72860 2d 54 79 70 65 22 3e 65 72 72 6f 72 20 73 65 74 73 3c 2f 61 3e 20 74 6f 20 73 75 70 65 72 73 65 -Type">error.sets</a>.to.superse
72880 74 73 20 69 73 20 61 6c 6c 6f 77 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 ts.is.allowed</li>.......</ul>..
728a0 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 63 61 73 74 73 20 61 72 65 20 6e .....<p>.......These.casts.are.n
728c0 6f 2d 6f 70 73 20 61 74 20 72 75 6e 74 69 6d 65 20 73 69 6e 63 65 20 74 68 65 20 76 61 6c 75 65 o-ops.at.runtime.since.the.value
728e0 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 63 68 61 6e 67 65 2e .representation.does.not.change.
72900 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 .......</p>.......<figure><figca
72920 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
72940 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 6e 6f 5f 6f 70 5f 63 61 73 74 73 2e 7a 69 67 3c 2f 63 s="file">test_no_op_casts.zig</c
72960 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ite></figcaption><pre><code><spa
72980 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
729a0 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 79 70 65 20 63 6f an.class="tok-str">&quot;type.co
729c0 65 72 63 69 6f 6e 20 2d 20 63 6f 6e 73 74 20 71 75 61 6c 69 66 69 63 61 74 69 6f 6e 26 71 75 6f ercion.-.const.qualification&quo
729e0 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
72a00 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 3d 22 -kw">var</span>.a:.<span.class="
72a20 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
72a40 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 3c 73 ss="tok-number">1</span>;.....<s
72a60 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>.
72a80 62 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 3c 2f b:.*<span.class="tok-type">i32</
72aa0 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 61 3b 0a 20 20 20 20 66 6f 6f 28 62 29 3b 0a 7d 0a 0a 3c span>.=.&amp;a;.....foo(b);.}..<
72ac0 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
72ae0 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 5f 3a pan.class="tok-fn">foo</span>(_:
72b00 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 2f 73 70 .*<span.class="tok-kw">const</sp
72b20 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 69 33 32 3c 2f an>.<span.class="tok-type">i32</
72b40 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
72b60 69 64 3c 2f 73 70 61 6e 3e 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 id</span>.{}</code></pre></figur
72b80 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
72ba0 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
72bc0 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 6e 6f 5f 6f 70 5f samp>$.<kbd>zig.test.test_no_op_
72be0 63 61 73 74 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 6e 6f 5f 6f 70 5f 63 casts.zig</kbd>.1/1.test_no_op_c
72c00 61 73 74 73 2e 74 65 73 74 2e 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 2d 20 63 6f 6e 73 74 20 asts.test.type.coercion.-.const.
72c20 71 75 61 6c 69 66 69 63 61 74 69 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 qualification....OK.All.1.tests.
72c40 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 passed..</samp></pre></figure>..
72c60 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 61 64 64 69 74 69 6f 6e 2c 20 70 6f 69 6e .....<p>.......In.addition,.poin
72c80 74 65 72 73 20 63 6f 65 72 63 65 20 74 6f 20 63 6f 6e 73 74 20 6f 70 74 69 6f 6e 61 6c 20 70 6f ters.coerce.to.const.optional.po
72ca0 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 66 69 67 75 72 65 inters:.......</p>.......<figure
72cc0 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 ><figcaption.class="zig-cap"><ci
72ce0 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 70 6f 69 6e 74 65 72 5f 63 6f 65 te.class="file">test_pointer_coe
72d00 72 63 65 5f 63 6f 6e 73 74 5f 6f 70 74 69 6f 6e 61 6c 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 rce_const_optional.zig</cite></f
72d20 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
72d40 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
72d60 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</
72d80 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
72da0 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
72dc0 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 70 65 63 74 20 3d 20 ="tok-kw">const</span>.expect.=.
72de0 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d std.testing.expect;.<span.class=
72e00 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 73 74 64 2e "tok-kw">const</span>.mem.=.std.
72e20 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 3e 74 65 73 74 3c mem;..<span.class="tok-kw">test<
72e40 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
72e60 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 6f 20 5b 2a 5d 63 6f ot;cast.*[1][*]const.u8.to.[*]co
72e80 6e 73 74 20 3f 5b 2a 5d 63 6f 6e 73 74 20 75 38 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a nst.?[*]const.u8&quot;</span>.{.
72ea0 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</
72ec0 73 70 61 6e 3e 20 77 69 6e 64 6f 77 5f 6e 61 6d 65 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 span>.window_name.=.[<span.class
72ee0 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 5b 2a 5d 3c 73 70 61 6e 20 ="tok-number">1</span>][*]<span.
72f00 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 61 class="tok-kw">const</span>.<spa
72f20 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 3c 73 70 n.class="tok-type">u8</span>{<sp
72f40 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 69 6e 64 6f 77 20 an.class="tok-str">&quot;window.
72f60 6e 61 6d 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c name&quot;</span>};.....<span.cl
72f80 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:.[*]
72fa0 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
72fc0 3e 20 3f 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 >.?[*]<span.class="tok-kw">const
72fe0 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
73000 38 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 77 69 6e 64 6f 77 5f 6e 61 6d 65 3b 0a 20 20 20 8</span>.=.&amp;window_name;....
73020 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>
73040 20 65 78 70 65 63 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 .expect(mem.eql(<span.class="tok
73060 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 73 74 64 2e 6d 65 6d 2e 73 6c 69 63 65 54 -type">u8</span>,.std.mem.sliceT
73080 6f 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 73 3c o(<span.class="tok-builtin">@as<
730a0 2f 73 70 61 6e 3e 28 5b 2a 3a 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
730c0 72 22 3e 30 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 6b 77 22 r">0</span>]<span.class="tok-kw"
730e0 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
73100 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
73120 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 78 5b 3c 73 70 61 -builtin">@ptrCast</span>(x[<spa
73140 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 2e 3f n.class="tok-number">0</span>].?
73160 29 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 30 3c 2f )),.<span.class="tok-number">0</
73180 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 72 22 3e 26 71 span>),.<span.class="tok-str">&q
731a0 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>));.
731c0 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
731e0 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
73200 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
73220 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 70 6f 69 6e 74 65 72 5f 63 6f 65 72 63 65 5f 63 6f >zig.test.test_pointer_coerce_co
73240 6e 73 74 5f 6f 70 74 69 6f 6e 61 6c 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f nst_optional.zig</kbd>.1/1.test_
73260 70 6f 69 6e 74 65 72 5f 63 6f 65 72 63 65 5f 63 6f 6e 73 74 5f 6f 70 74 69 6f 6e 61 6c 2e 74 65 pointer_coerce_const_optional.te
73280 73 74 2e 63 61 73 74 20 2a 5b 31 5d 5b 2a 5d 63 6f 6e 73 74 20 75 38 20 74 6f 20 5b 2a 5d 63 6f st.cast.*[1][*]const.u8.to.[*]co
732a0 6e 73 74 20 3f 5b 2a 5d 63 6f 6e 73 74 20 75 38 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 nst.?[*]const.u8....OK.All.1.tes
732c0 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ts.passed..</samp></pre></figure
732e0 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 54 79 70 65 2d 43 6f 65 72 >..............<h4.id="Type-Coer
73300 63 69 6f 6e 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 67 22 cion-Integer-and-Float-Widening"
73320 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d 43 6f 65 ><a.href="nav.xhtml#toc-Type-Coe
73340 72 63 69 6f 6e 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 67 rcion-Integer-and-Float-Widening
73360 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 49 6e 74 65 67 65 72 20 61 6e 64 20 46 6c 6f ">Type.Coercion:.Integer.and.Flo
73380 61 74 20 57 69 64 65 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 at.Widening</a>.<a.class="hdr".h
733a0 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 49 6e 74 65 67 65 72 2d 61 6e 64 2d ref="#Type-Coercion-Integer-and-
733c0 46 6c 6f 61 74 2d 57 69 64 65 6e 69 6e 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 Float-Widening">..</a></h4>.....
733e0 20 20 20 3c 70 3e 0a 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 ...<p>.......<a.href="#Integers"
73400 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 20 63 6f 65 72 63 65 20 74 6f 20 69 6e 74 65 67 65 72 20 >Integers</a>.coerce.to.integer.
73420 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 79 20 types.which.can.represent.every.
73440 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 65 77 value.of.the.old.type,.and.likew
73460 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 6f 61 ise.......<a.href="#Floats">Floa
73480 74 73 3c 2f 61 3e 20 63 6f 65 72 63 65 20 74 6f 20 66 6c 6f 61 74 20 74 79 70 65 73 20 77 68 69 ts</a>.coerce.to.float.types.whi
734a0 63 68 20 63 61 6e 20 72 65 70 72 65 73 65 6e 74 20 65 76 65 72 79 20 76 61 6c 75 65 20 6f 66 20 ch.can.represent.every.value.of.
734c0 74 68 65 20 6f 6c 64 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 the.old.type........</p>.......<
734e0 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 figure><figcaption.class="zig-ca
73500 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 6e 74 65 67 p"><cite.class="file">test_integ
73520 65 72 5f 77 69 64 65 6e 69 6e 67 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 er_widening.zig</cite></figcapti
73540 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b on><pre><code><span.class="tok-k
73560 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
73580 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>(<
735a0 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
735c0 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
735e0 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 73 70 61 6e 20 w">const</span>.builtin.=.<span.
73600 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
73620 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 62 n>(<span.class="tok-str">&quot;b
73640 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 6e 20 63 6c 61 73 uiltin&quot;</span>);.<span.clas
73660 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 70 65 63 74 20 3d s="tok-kw">const</span>.expect.=
73680 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 .std.testing.expect;.<span.class
736a0 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 3d 20 73 74 64 ="tok-kw">const</span>.mem.=.std
736c0 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 3e 74 65 73 74 .mem;..<span.class="tok-kw">test
736e0 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
73700 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 2f 73 70 61 6e uot;integer.widening&quot;</span
73720 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
73740 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 74 79 st</span>.a:.<span.class="tok-ty
73760 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 6b pe">u8</span>.=.<span.class="tok
73780 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 6e 20 63 -number">250</span>;.....<span.c
737a0 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 73 lass="tok-kw">const</span>.b:.<s
737c0 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 20 pan.class="tok-type">u16</span>.
737e0 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 63 6f =.a;.....<span.class="tok-kw">co
73800 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 6f 6b 2d 74 nst</span>.c:.<span.class="tok-t
73820 79 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 ype">u32</span>.=.b;.....<span.c
73840 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 3a 20 3c 73 lass="tok-kw">const</span>.d:.<s
73860 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 20 pan.class="tok-type">u64</span>.
73880 3d 20 63 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 =.c;.....<span.class="tok-kw">co
738a0 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 74 nst</span>.e:.<span.class="tok-t
738c0 79 70 65 22 3e 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 ype">u64</span>.=.d;.....<span.c
738e0 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 66 3a 20 3c 73 lass="tok-kw">const</span>.f:.<s
73900 70 61 6e 20 63 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 pan.class="tok-type">u128</span>
73920 20 3d 20 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 74 .=.e;.....<span.class="tok-kw">t
73940 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 66 20 3d 3d 20 61 29 3b 0a 7d 0a 0a 3c 73 70 ry</span>.expect(f.==.a);.}..<sp
73960 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
73980 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 6c 69 63 pan.class="tok-str">&quot;implic
739a0 69 74 20 75 6e 73 69 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 it.unsigned.integer.to.signed.in
739c0 74 65 67 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 teger&quot;</span>.{.....<span.c
739e0 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 73 lass="tok-kw">const</span>.a:.<s
73a00 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>.=
73a20 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 30 3c 2f 73 .<span.class="tok-number">250</s
73a40 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
73a60 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 22 74 6f 6b 2d onst</span>.b:.<span.class="tok-
73a80 74 79 70 65 22 3e 69 31 36 3c 2f 73 70 61 6e 3e 20 3d 20 61 3b 0a 20 20 20 20 3c 73 70 61 6e 20 type">i16</span>.=.a;.....<span.
73aa0 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
73ac0 28 62 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 (b.==.<span.class="tok-number">2
73ae0 35 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 50</span>);.}..<span.class="tok-
73b00 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
73b20 2d 73 74 72 22 3e 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 -str">&quot;float.widening&quot;
73b40 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
73b60 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 73 73 3d 22 w">const</span>.a:.<span.class="
73b80 74 6f 6b 2d 74 79 70 65 22 3e 66 31 36 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 tok-type">f16</span>.=.<span.cla
73ba0 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 20 20 ss="tok-number">12.34</span>;...
73bc0 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
73be0 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 66 33 an>.b:.<span.class="tok-type">f3
73c00 32 3c 2f 73 70 61 6e 3e 20 3d 20 61 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 2</span>.=.a;.....<span.class="t
73c20 6f 6b 2d 6b 77 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 ok-kw">const</span>.c:.<span.cla
73c40 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 66 36 34 3c 2f 73 70 61 6e 3e 20 3d 20 62 3b 0a 20 20 ss="tok-type">f64</span>.=.b;...
73c60 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
73c80 61 6e 3e 20 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 66 31 an>.d:.<span.class="tok-type">f1
73ca0 32 38 3c 2f 73 70 61 6e 3e 20 3d 20 63 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 28</span>.=.c;.....<span.class="
73cc0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 64 20 3d 3d 20 61 tok-kw">try</span>.expect(d.==.a
73ce0 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 );.}</code></pre></figure><figur
73d00 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
73d20 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
73d40 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 69 6e 74 65 67 65 72 5f 77 69 64 65 6e 69 kbd>zig.test.test_integer_wideni
73d60 6e 67 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 33 20 74 65 73 74 5f 69 6e 74 65 67 65 72 5f 77 69 ng.zig</kbd>.1/3.test_integer_wi
73d80 64 65 6e 69 6e 67 2e 74 65 73 74 2e 69 6e 74 65 67 65 72 20 77 69 64 65 6e 69 6e 67 2e 2e 2e 20 dening.test.integer.widening....
73da0 4f 4b 0a 32 2f 33 20 74 65 73 74 5f 69 6e 74 65 67 65 72 5f 77 69 64 65 6e 69 6e 67 2e 74 65 73 OK.2/3.test_integer_widening.tes
73dc0 74 2e 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 6f 20 73 t.implicit.unsigned.integer.to.s
73de0 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2e 2e 2e 20 4f 4b 0a 33 2f 33 20 74 65 73 74 5f 69 6e 74 igned.integer....OK.3/3.test_int
73e00 65 67 65 72 5f 77 69 64 65 6e 69 6e 67 2e 74 65 73 74 2e 66 6c 6f 61 74 20 77 69 64 65 6e 69 6e eger_widening.test.float.widenin
73e20 67 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 33 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 g....OK.All.3.tests.passed..</sa
73e40 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 mp></pre></figure>..............
73e60 3c 68 34 20 69 64 3d 22 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 46 6c 6f 61 74 2d 74 6f 2d 49 <h4.id="Type-Coercion-Float-to-I
73e80 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d nt"><a.href="nav.xhtml#toc-Type-
73ea0 43 6f 65 72 63 69 6f 6e 2d 46 6c 6f 61 74 2d 74 6f 2d 49 6e 74 22 3e 54 79 70 65 20 43 6f 65 72 Coercion-Float-to-Int">Type.Coer
73ec0 63 69 6f 6e 3a 20 46 6c 6f 61 74 20 74 6f 20 49 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d cion:.Float.to.Int</a>.<a.class=
73ee0 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 46 6c 6f 61 74 "hdr".href="#Type-Coercion-Float
73f00 2d 74 6f 2d 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a -to-Int">..</a></h4>........<p>.
73f20 20 20 20 20 20 20 41 20 63 6f 6d 70 69 6c 65 72 20 65 72 72 6f 72 20 69 73 20 61 70 70 72 6f 70 ......A.compiler.error.is.approp
73f40 72 69 61 74 65 20 62 65 63 61 75 73 65 20 74 68 69 73 20 61 6d 62 69 67 75 6f 75 73 20 65 78 70 riate.because.this.ambiguous.exp
73f60 72 65 73 73 69 6f 6e 20 6c 65 61 76 65 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 ression.leaves.the.compiler.....
73f80 20 20 74 77 6f 20 63 68 6f 69 63 65 73 20 61 62 6f 75 74 20 74 68 65 20 63 6f 65 72 63 69 6f 6e ..two.choices.about.the.coercion
73fa0 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 20 ........</p>.......<ul>.........
73fc0 3c 6c 69 3e 43 61 73 74 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d <li>Cast.<code><span.class="tok-
73fe0 6e 75 6d 62 65 72 22 3e 35 34 2e 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 3c 63 number">54.0</span></code>.to.<c
74000 6f 64 65 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 ode><span.class="tok-type">compt
74020 69 6d 65 5f 69 6e 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 73 75 6c 74 69 6e 67 20 ime_int</span></code>.resulting.
74040 69 6e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 in.<code><span.class="tok-builti
74060 6e 22 3e 40 61 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 74 n">@as</span>(<span.class="tok-t
74080 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 20 3c 73 70 61 6e 20 ype">comptime_int</span>,.<span.
740a0 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 3c 2f 63 class="tok-number">10</span>)</c
740c0 6f 64 65 3e 2c 20 77 68 69 63 68 20 69 73 20 63 61 73 74 65 64 20 74 6f 20 3c 63 6f 64 65 3e 3c ode>,.which.is.casted.to.<code><
740e0 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 73 3c 2f 73 70 span.class="tok-builtin">@as</sp
74100 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 66 33 32 3c 2f an>(<span.class="tok-type">f32</
74120 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">
74140 31 30 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 10</span>)</code></li>.........<
74160 6c 69 3e 43 61 73 74 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e li>Cast.<code><span.class="tok-n
74180 75 6d 62 65 72 22 3e 35 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 3c 63 6f 64 65 3e umber">5</span></code>.to.<code>
741a0 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_
741c0 66 6c 6f 61 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 73 75 6c 74 69 6e 67 20 69 6e float</span></code>.resulting.in
741e0 20 3c 63 6f 64 65 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 .<code><span.class="tok-builtin"
74200 3e 40 61 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 74 79 70 >@as</span>(<span.class="tok-typ
74220 65 22 3e 63 6f 6d 70 74 69 6d 65 5f 66 6c 6f 61 74 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 e">comptime_float</span>,.<span.
74240 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 2e 38 3c 2f 73 70 61 6e 3e 29 3c class="tok-number">10.8</span>)<
74260 2f 63 6f 64 65 3e 2c 20 77 68 69 63 68 20 69 73 20 63 61 73 74 65 64 20 74 6f 20 3c 63 6f 64 65 /code>,.which.is.casted.to.<code
74280 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 61 73 3c 2f ><span.class="tok-builtin">@as</
742a0 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 66 33 32 span>(<span.class="tok-type">f32
742c0 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
742e0 22 3e 31 30 2e 38 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 ">10.8</span>)</code></li>......
74300 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e .</ul>.......<figure><figcaption
74320 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
74340 6c 65 22 3e 74 65 73 74 5f 61 6d 62 69 67 75 6f 75 73 5f 63 6f 65 72 63 69 6f 6e 2e 7a 69 67 3c le">test_ambiguous_coercion.zig<
74360 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
74380 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 43 6f 6d 70 69 pan.class="tok-comment">//.Compi
743a0 6c 65 20 74 69 6d 65 20 63 6f 65 72 63 69 6f 6e 20 6f 66 20 66 6c 6f 61 74 20 74 6f 20 69 6e 74 le.time.coercion.of.float.to.int
743c0 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
743e0 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">&
74400 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 73 74 20 74 6f 20 63 6f 6d 70 74 69 6d 65 5f 69 quot;implicit.cast.to.comptime_i
74420 6e 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 nt&quot;</span>.{.....<span.clas
74440 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 3a 20 3c 73 70 61 6e s="tok-kw">const</span>.f:.<span
74460 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 3c .class="tok-type">f32</span>.=.<
74480 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 34 2e 30 3c 2f 73 70 span.class="tok-number">54.0</sp
744a0 61 6e 3e 20 2f 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
744c0 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 66 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 </span>;....._.=.f;.}</code></pr
744e0 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
74500 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
74520 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
74540 73 74 5f 61 6d 62 69 67 75 6f 75 73 5f 63 6f 65 72 63 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a st_ambiguous_coercion.zig</kbd>.
74560 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f <span.class="sgr-1m">docgen_tmp/
74580 74 65 73 74 5f 61 6d 62 69 67 75 6f 75 73 5f 63 6f 65 72 63 69 6f 6e 2e 7a 69 67 3a 33 3a 32 35 test_ambiguous_coercion.zig:3:25
745a0 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 :.</span><span.class="sgr-31m">e
745c0 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d rror:.</span><span.class="sgr-1m
745e0 22 3e 61 6d 62 69 67 75 6f 75 73 20 63 6f 65 72 63 69 6f 6e 20 6f 66 20 64 69 76 69 73 69 6f 6e ">ambiguous.coercion.of.division
74600 20 6f 70 65 72 61 6e 64 73 20 27 63 6f 6d 70 74 69 6d 65 5f 66 6c 6f 61 74 27 20 61 6e 64 20 27 .operands.'comptime_float'.and.'
74620 63 6f 6d 70 74 69 6d 65 5f 69 6e 74 27 3b 20 6e 6f 6e 2d 7a 65 72 6f 20 72 65 6d 61 69 6e 64 65 comptime_int';.non-zero.remainde
74640 72 20 27 34 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 66 3a 20 66 33 32 20 3d 20 r.'4'.</span>....const.f:.f32.=.
74660 35 34 2e 30 20 2f 20 35 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 54.0./.5;....................<sp
74680 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e 7e 7e 7e 5e 7e 7e 0a 3c 2f 73 70 an.class="sgr-32m">~~~~~^~~.</sp
746a0 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 an>.</samp></pre></figure>......
746c0 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 53 6c ........<h4.id="Type-Coercion-Sl
746e0 69 63 65 73 2d 41 72 72 61 79 73 2d 61 6e 64 2d 50 6f 69 6e 74 65 72 73 22 3e 3c 61 20 68 72 65 ices-Arrays-and-Pointers"><a.hre
74700 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 53 f="nav.xhtml#toc-Type-Coercion-S
74720 6c 69 63 65 73 2d 41 72 72 61 79 73 2d 61 6e 64 2d 50 6f 69 6e 74 65 72 73 22 3e 54 79 70 65 20 lices-Arrays-and-Pointers">Type.
74740 43 6f 65 72 63 69 6f 6e 3a 20 53 6c 69 63 65 73 2c 20 41 72 72 61 79 73 20 61 6e 64 20 50 6f 69 Coercion:.Slices,.Arrays.and.Poi
74760 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 72 65 66 3d 22 23 nters</a>.<a.class="hdr".href="#
74780 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 53 6c 69 63 65 73 2d 41 72 72 61 79 73 2d 61 6e 64 2d Type-Coercion-Slices-Arrays-and-
747a0 50 6f 69 6e 74 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 66 69 Pointers">..</a></h4>........<fi
747c0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 gure><figcaption.class="zig-cap"
747e0 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 65 72 63 65 5f ><cite.class="file">test_coerce_
74800 73 6c 69 63 65 73 5f 61 72 72 61 79 73 5f 61 6e 64 5f 70 6f 69 6e 74 65 72 73 2e 7a 69 67 3c 2f slices_arrays_and_pointers.zig</
74820 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
74840 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
74860 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">@
74880 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
748a0 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
748c0 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
748e0 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 xpect.=.std.testing.expect;..<sp
74900 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 59 6f 75 20 63 61 an.class="tok-comment">//.You.ca
74920 6e 20 61 73 73 69 67 6e 20 63 6f 6e 73 74 61 6e 74 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 61 72 n.assign.constant.pointers.to.ar
74940 72 61 79 73 20 74 6f 20 61 20 73 6c 69 63 65 20 77 69 74 68 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 rays.to.a.slice.with</span>.<spa
74960 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 74 20 6d n.class="tok-comment">//.const.m
74980 6f 64 69 66 69 65 72 20 6f 6e 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 2e 20 55 73 65 odifier.on.the.element.type..Use
749a0 66 75 6c 20 69 6e 20 70 61 72 74 69 63 75 6c 61 72 20 66 6f 72 3c 2f 73 70 61 6e 3e 0a 3c 73 70 ful.in.particular.for</span>.<sp
749c0 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 72 69 6e 67 an.class="tok-comment">//.String
749e0 20 6c 69 74 65 72 61 6c 73 2e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .literals.</span>.<span.class="t
74a00 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="
74a20 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 2a 63 6f 6e 73 74 20 5b 4e 5d 54 20 74 6f 20 5b 5d tok-str">&quot;*const.[N]T.to.[]
74a40 63 6f 6e 73 74 20 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 const.T&quot;</span>.{.....<span
74a60 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 31 3a .class="tok-kw">const</span>.x1:
74a80 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 73 .[]<span.class="tok-kw">const</s
74aa0 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</
74ac0 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 73 74 72 22 3e 26 71 span>.=.<span.class="tok-str">&q
74ae0 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 61 uot;hello&quot;</span>;.....<spa
74b00 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 32 n.class="tok-kw">const</span>.x2
74b20 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</
74b40 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<
74b60 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d /span>.=.&amp;[<span.class="tok-
74b80 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 74 6f number">5</span>]<span.class="to
74ba0 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 73 3d 22 k-type">u8</span>{.<span.class="
74bc0 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 63 6c 61 73 73 tok-str">'h'</span>,.<span.class
74be0 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 6e 20 63 6c 61 ="tok-str">'e'</span>,.<span.cla
74c00 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
74c20 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 70 61 6e lass="tok-str">'l'</span>,.<span
74c40 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 61 6e 3e 20 7d .class="tok-number">111</span>.}
74c60 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
74c80 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 span>.expect(std.mem.eql(<span.c
74ca0 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 31 2c 20 78 lass="tok-type">u8</span>,.x1,.x
74cc0 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 6b 77 22 3e 63 2));......<span.class="tok-kw">c
74ce0 6f 6e 73 74 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 22 74 6f onst</span>.y:.[]<span.class="to
74d00 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="
74d20 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 5b 3c 73 70 tok-type">f32</span>.=.&amp;[<sp
74d40 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 5d 3c an.class="tok-number">2</span>]<
74d60 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>
74d80 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 2e 32 3c 2f {.<span.class="tok-number">1.2</
74da0 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">
74dc0 33 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 3.4</span>.};.....<span.class="t
74de0 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 79 5b 3c 73 70 61 6e ok-kw">try</span>.expect(y[<span
74e00 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>].==
74e20 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
74e40 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 6d 65 pan>);.}..<span.class="tok-comme
74e60 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 74 nt">//.Likewise,.it.works.when.t
74e80 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 65 72 72 6f 72 20 he.destination.type.is.an.error.
74ea0 75 6e 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 union.</span>.<span.class="tok-k
74ec0 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-
74ee0 73 74 72 22 3e 26 71 75 6f 74 3b 2a 63 6f 6e 73 74 20 5b 4e 5d 54 20 74 6f 20 45 21 5b 5d 63 6f str">&quot;*const.[N]T.to.E![]co
74f00 6e 73 74 20 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 nst.T&quot;</span>.{.....<span.c
74f20 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 31 3a 20 3c lass="tok-kw">const</span>.x1:.<
74f40 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</
74f60 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 6b 77 22 3e 63 6f 6e span>![]<span.class="tok-kw">con
74f80 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"
74fa0 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 73 74 >u8</span>.=.<span.class="tok-st
74fc0 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 6e 3e 3b 0a 20 20 20 r">&quot;hello&quot;</span>;....
74fe0 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
75000 6e 3e 20 78 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 61 6e n>.x2:.<span.class="tok-type">an
75020 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
75040 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
75060 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 5b 3c 73 70 61 6e ok-type">u8</span>.=.&amp;[<span
75080 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 3c 73 70 .class="tok-number">5</span>]<sp
750a0 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 20 3c an.class="tok-type">u8</span>{.<
750c0 73 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 2c span.class="tok-str">'h'</span>,
750e0 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 3c 2f 73 70 61 6e .<span.class="tok-str">'e'</span
75100 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 27 6c 27 3c 2f 73 70 >,.<span.class="tok-str">'l'</sp
75120 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 27 6c 27 3c 2f an>,.<span.class="tok-str">'l'</
75140 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">
75160 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 6c 61 73 73 3d 22 74 111</span>.};.....<span.class="t
75180 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 64 2e 6d 65 6d ok-kw">try</span>.expect(std.mem
751a0 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</
751c0 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 74 72 79 3c span>,.<span.class="tok-kw">try<
751e0 2f 73 70 61 6e 3e 20 78 31 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e /span>.x1,.<span.class="tok-kw">
75200 74 72 79 3c 2f 73 70 61 6e 3e 20 78 32 29 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 try</span>.x2));......<span.clas
75220 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 3a 20 3c 73 70 61 6e s="tok-kw">const</span>.y:.<span
75240 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 6e .class="tok-type">anyerror</span
75260 3e 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 >![]<span.class="tok-kw">const</
75280 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 66 33 32 span>.<span.class="tok-type">f32
752a0 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>.=.&amp;[<span.class="tok
752c0 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 6c 61 73 73 3d 22 74 -number">2</span>]<span.class="t
752e0 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 6e 20 63 6c 61 73 73 ok-type">f32</span>{.<span.class
75300 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 20 3c 73 70 61 6e 20 ="tok-number">1.2</span>,.<span.
75320 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 70 61 6e 3e 20 7d 3b class="tok-number">3.4</span>.};
75340 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
75360 70 61 6e 3e 20 65 78 70 65 63 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 pan>.expect((<span.class="tok-kw
75380 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 73 73 3d 22 74 6f 6b ">try</span>.y)[<span.class="tok
753a0 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 61 6e 20 63 6c 61 73 -number">0</span>].==.<span.clas
753c0 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 29 3b 0a 7d 0a 0a 3c s="tok-number">1.2</span>);.}..<
753e0 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 4c 69 6b 65 span.class="tok-comment">//.Like
75400 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 65 73 74 69 6e 61 74 wise,.it.works.when.the.destinat
75420 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 2f 73 70 61 6e 3e 0a ion.type.is.an.optional.</span>.
75440 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>
75460 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 2a 63 6f .<span.class="tok-str">&quot;*co
75480 6e 73 74 20 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 nst.[N]T.to.?[]const.T&quot;</sp
754a0 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
754c0 6f 6e 73 74 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 onst</span>.x1:.?[]<span.class="
754e0 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
75500 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
75520 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;<
75540 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"
75560 3e 63 6f 6e 73 74 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 >const</span>.x2:.?[]<span.class
75580 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
755a0 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 26 61 6d 70 3b 5b ss="tok-type">u8</span>.=.&amp;[
755c0 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
755e0 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
75600 6e 3e 7b 20 3c 73 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 n>{.<span.class="tok-str">'h'</s
75620 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 27 65 27 3c pan>,.<span.class="tok-str">'e'<
75640 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 27 6c /span>,.<span.class="tok-str">'l
75660 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 73 74 72 22 3e '</span>,.<span.class="tok-str">
75680 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 74 6f 6b 2d 6e 75 6d 'l'</span>,.<span.class="tok-num
756a0 62 65 72 22 3e 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 6c 61 ber">111</span>.};.....<span.cla
756c0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 ss="tok-kw">try</span>.expect(st
756e0 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"
75700 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 78 31 2e 3f 2c 20 78 32 2e 3f 29 29 3b 0a 0a 20 20 20 20 3c >u8</span>,.x1.?,.x2.?));......<
75720 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>
75740 20 79 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 3e 63 6f 6e 73 .y:.?[]<span.class="tok-kw">cons
75760 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">
75780 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 f32</span>.=.&amp;[<span.class="
757a0 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 6c 61 73 73 tok-number">2</span>]<span.class
757c0 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 6e 20 63 6c ="tok-type">f32</span>{.<span.cl
757e0 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 20 3c 73 70 ass="tok-number">1.2</span>,.<sp
75800 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 70 61 6e 3e an.class="tok-number">3.4</span>
75820 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 74 72 79 .};.....<span.class="tok-kw">try
75840 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 79 2e 3f 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 </span>.expect(y.?[<span.class="
75860 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 61 6e 20 63 tok-number">0</span>].==.<span.c
75880 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 29 3b 0a 7d lass="tok-number">1.2</span>);.}
758a0 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 49 ..<span.class="tok-comment">//.I
758c0 6e 20 74 68 69 73 20 63 61 73 74 2c 20 74 68 65 20 61 72 72 61 79 20 6c 65 6e 67 74 68 20 62 65 n.this.cast,.the.array.length.be
758e0 63 6f 6d 65 73 20 74 68 65 20 73 6c 69 63 65 20 6c 65 6e 67 74 68 2e 3c 2f 73 70 61 6e 3e 0a 3c comes.the.slice.length.</span>.<
75900 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>.
75920 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 2a 5b 4e 5d <span.class="tok-str">&quot;*[N]
75940 54 20 74 6f 20 5b 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 T.to.[]T&quot;</span>.{.....<spa
75960 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 75 66 3a n.class="tok-kw">var</span>.buf:
75980 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 3c 2f 73 70 .[<span.class="tok-number">5</sp
759a0 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 73 an>]<span.class="tok-type">u8</s
759c0 70 61 6e 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 pan>.=.<span.class="tok-str">&qu
759e0 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2e 2a 3b 0a 20 20 20 20 3c 73 70 ot;hello&quot;</span>.*;.....<sp
75a00 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
75a20 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
75a40 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 62 75 66 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 pan>.=.&amp;buf;.....<span.class
75a60 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 64 2e ="tok-kw">try</span>.expect(std.
75a80 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
75aa0 38 3c 2f 73 70 61 6e 3e 2c 20 78 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 8</span>,.x,.<span.class="tok-st
75ac0 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 6e 3e 29 29 3b 0a 0a r">&quot;hello&quot;</span>));..
75ae0 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</
75b00 73 70 61 6e 3e 20 62 75 66 32 20 3d 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e span>.buf2.=.[<span.class="tok-n
75b20 75 6d 62 65 72 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 umber">2</span>]<span.class="tok
75b40 2d 74 79 70 65 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 -type">f32</span>{.<span.class="
75b60 74 6f 6b 2d 6e 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 tok-number">1.2</span>,.<span.cl
75b80 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 2e 34 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 ass="tok-number">3.4</span>.};..
75ba0 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
75bc0 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 77 22 3e pan>.x2:.[]<span.class="tok-kw">
75be0 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
75c00 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 62 75 66 32 3b 0a 20 20 20 20 pe">f32</span>.=.&amp;buf2;.....
75c20 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>.
75c40 65 78 70 65 63 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 expect(std.mem.eql(<span.class="
75c60 74 6f 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 20 78 32 2c 20 26 61 6d 70 3b 5b tok-type">f32</span>,.x2,.&amp;[
75c80 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
75ca0 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 2f 73 70 >]<span.class="tok-type">f32</sp
75cc0 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 2e an>{.<span.class="tok-number">1.
75ce0 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
75d00 72 22 3e 33 2e 34 3c 2f 73 70 61 6e 3e 20 7d 29 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 r">3.4</span>.}));.}..<span.clas
75d20 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 74 65 6d 20 70 s="tok-comment">//.Single-item.p
75d40 6f 69 6e 74 65 72 73 20 74 6f 20 61 72 72 61 79 73 20 63 61 6e 20 62 65 20 63 6f 65 72 63 65 64 ointers.to.arrays.can.be.coerced
75d60 20 74 6f 20 6d 61 6e 79 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 73 2e 3c 2f 73 70 61 6e 3e 0a 3c .to.many-item.pointers.</span>.<
75d80 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>.
75da0 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 2a 5b 4e 5d <span.class="tok-str">&quot;*[N]
75dc0 54 20 74 6f 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 T.to.[*]T&quot;</span>.{.....<sp
75de0 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 75 66 an.class="tok-kw">var</span>.buf
75e00 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 35 3c 2f 73 :.[<span.class="tok-number">5</s
75e20 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</
75e40 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 73 74 72 22 3e 26 71 span>.=.<span.class="tok-str">&q
75e60 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2e 2a 3b 0a 20 20 20 20 3c 73 uot;hello&quot;</span>.*;.....<s
75e80 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>.
75ea0 78 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 22 3e 75 38 3c x:.[*]<span.class="tok-type">u8<
75ec0 2f 73 70 61 6e 3e 20 3d 20 26 61 6d 70 3b 62 75 66 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 /span>.=.&amp;buf;.....<span.cla
75ee0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 78 5b ss="tok-kw">try</span>.expect(x[
75f00 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
75f20 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 6f 27 3c >].==.<span.class="tok-str">'o'<
75f40 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 63 6f /span>);.....<span.class="tok-co
75f60 6d 6d 65 6e 74 22 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 mment">//.x[5].would.be.an.uncau
75f80 67 68 74 20 6f 75 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 ght.out.of.bounds.pointer.derefe
75fa0 72 65 6e 63 65 21 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 rence!</span>.}..<span.class="to
75fc0 6b 2d 63 6f 6d 6d 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 k-comment">//.Likewise,.it.works
75fe0 20 77 68 65 6e 20 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 .when.the.destination.type.is.an
76000 20 6f 70 74 69 6f 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 .optional.</span>.<span.class="t
76020 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="
76040 74 6f 6b 2d 73 74 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 tok-str">&quot;*[N]T.to.?[*]T&qu
76060 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
76080 6b 2d 6b 77 22 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 k-kw">var</span>.buf:.[<span.cla
760a0 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
760c0 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
760e0 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 75 n.class="tok-str">&quot;hello&qu
76100 6f 74 3b 3c 2f 73 70 61 6e 3e 2e 2a 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ot;</span>.*;.....<span.class="t
76120 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 3a 20 3f 5b 2a 5d 3c 73 70 61 6e ok-kw">const</span>.x:.?[*]<span
76140 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 26 61 .class="tok-type">u8</span>.=.&a
76160 6d 70 3b 62 75 66 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 mp;buf;.....<span.class="tok-kw"
76180 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 78 2e 3f 5b 3c 73 70 61 6e 20 63 6c 61 >try</span>.expect(x.?[<span.cla
761a0 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 3c 73 70 ss="tok-number">4</span>].==.<sp
761c0 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 29 3b 0a an.class="tok-str">'o'</span>);.
761e0 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">//.
76200 53 69 6e 67 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 73 20 63 61 6e 20 62 65 20 63 61 73 74 Single-item.pointers.can.be.cast
76220 20 74 6f 20 6c 65 6e 2d 31 20 73 69 6e 67 6c 65 2d 69 74 65 6d 20 61 72 72 61 79 73 2e 3c 2f 73 .to.len-1.single-item.arrays.</s
76240 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 3c 2f pan>.<span.class="tok-kw">test</
76260 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
76280 74 3b 2a 54 20 74 6f 20 2a 5b 31 5d 54 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 t;*T.to.*[1]T&quot;</span>.{....
762a0 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>
762c0 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 2f .x:.<span.class="tok-type">i32</
762e0 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"
76300 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 22 74 >1234</span>;.....<span.class="t
76320 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 79 3a 20 2a 5b 3c 73 70 61 6e 20 63 ok-kw">const</span>.y:.*[<span.c
76340 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 3c 73 70 61 6e lass="tok-number">1</span>]<span
76360 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 26 .class="tok-type">i32</span>.=.&
76380 61 6d 70 3b 78 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 amp;x;.....<span.class="tok-kw">
763a0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 7a 3a 20 5b 2a 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 const</span>.z:.[*]<span.class="
763c0 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 20 3d 20 79 3b 0a 20 20 20 20 3c 73 tok-type">i32</span>.=.y;.....<s
763e0 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 65 78 pan.class="tok-kw">try</span>.ex
76400 70 65 63 74 28 7a 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 pect(z[<span.class="tok-number">
76420 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
76440 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 mber">1234</span>);.}</code></pr
76460 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
76480 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
764a0 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
764c0 73 74 5f 63 6f 65 72 63 65 5f 73 6c 69 63 65 73 5f 61 72 72 61 79 73 5f 61 6e 64 5f 70 6f 69 6e st_coerce_slices_arrays_and_poin
764e0 74 65 72 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 37 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 73 ters.zig</kbd>.1/7.test_coerce_s
76500 6c 69 63 65 73 5f 61 72 72 61 79 73 5f 61 6e 64 5f 70 6f 69 6e 74 65 72 73 2e 74 65 73 74 2e 2a lices_arrays_and_pointers.test.*
76520 63 6f 6e 73 74 20 5b 4e 5d 54 20 74 6f 20 5b 5d 63 6f 6e 73 74 20 54 2e 2e 2e 20 4f 4b 0a 32 2f const.[N]T.to.[]const.T....OK.2/
76540 37 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 73 6c 69 63 65 73 5f 61 72 72 61 79 73 5f 61 6e 64 5f 7.test_coerce_slices_arrays_and_
76560 70 6f 69 6e 74 65 72 73 2e 74 65 73 74 2e 2a 63 6f 6e 73 74 20 5b 4e 5d 54 20 74 6f 20 45 21 5b pointers.test.*const.[N]T.to.E![
76580 5d 63 6f 6e 73 74 20 54 2e 2e 2e 20 4f 4b 0a 33 2f 37 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 73 ]const.T....OK.3/7.test_coerce_s
765a0 6c 69 63 65 73 5f 61 72 72 61 79 73 5f 61 6e 64 5f 70 6f 69 6e 74 65 72 73 2e 74 65 73 74 2e 2a lices_arrays_and_pointers.test.*
765c0 63 6f 6e 73 74 20 5b 4e 5d 54 20 74 6f 20 3f 5b 5d 63 6f 6e 73 74 20 54 2e 2e 2e 20 4f 4b 0a 34 const.[N]T.to.?[]const.T....OK.4
765e0 2f 37 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 73 6c 69 63 65 73 5f 61 72 72 61 79 73 5f 61 6e 64 /7.test_coerce_slices_arrays_and
76600 5f 70 6f 69 6e 74 65 72 73 2e 74 65 73 74 2e 2a 5b 4e 5d 54 20 74 6f 20 5b 5d 54 2e 2e 2e 20 4f _pointers.test.*[N]T.to.[]T....O
76620 4b 0a 35 2f 37 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 73 6c 69 63 65 73 5f 61 72 72 61 79 73 5f K.5/7.test_coerce_slices_arrays_
76640 61 6e 64 5f 70 6f 69 6e 74 65 72 73 2e 74 65 73 74 2e 2a 5b 4e 5d 54 20 74 6f 20 5b 2a 5d 54 2e and_pointers.test.*[N]T.to.[*]T.
76660 2e 2e 20 4f 4b 0a 36 2f 37 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 73 6c 69 63 65 73 5f 61 72 72 ...OK.6/7.test_coerce_slices_arr
76680 61 79 73 5f 61 6e 64 5f 70 6f 69 6e 74 65 72 73 2e 74 65 73 74 2e 2a 5b 4e 5d 54 20 74 6f 20 3f ays_and_pointers.test.*[N]T.to.?
766a0 5b 2a 5d 54 2e 2e 2e 20 4f 4b 0a 37 2f 37 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 73 6c 69 63 65 [*]T....OK.7/7.test_coerce_slice
766c0 73 5f 61 72 72 61 79 73 5f 61 6e 64 5f 70 6f 69 6e 74 65 72 73 2e 74 65 73 74 2e 2a 54 20 74 6f s_arrays_and_pointers.test.*T.to
766e0 20 2a 5b 31 5d 54 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 37 20 74 65 73 74 73 20 70 61 73 73 65 64 2e .*[1]T....OK.All.7.tests.passed.
76700 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 .</samp></pre></figure>.......<p
76720 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="
76740 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 3e #C-Pointers">C.Pointers</a></li>
76760 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 54 79 70 .</ul>...............<h4.id="Typ
76780 65 2d 43 6f 65 72 63 69 6f 6e 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e e-Coercion-Optionals"><a.href="n
767a0 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 4f 70 74 69 6f av.xhtml#toc-Type-Coercion-Optio
767c0 6e 61 6c 73 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 4f 70 74 69 6f 6e 61 6c 73 3c 2f nals">Type.Coercion:.Optionals</
767e0 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 79 70 65 2d 43 6f a>.<a.class="hdr".href="#Type-Co
76800 65 72 63 69 6f 6e 2d 4f 70 74 69 6f 6e 61 6c 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 ercion-Optionals">..</a></h4>...
76820 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 70 61 79 6c 6f 61 64 20 74 79 70 65 20 .....<p>.......The.payload.type.
76840 6f 66 20 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 6c of.<a.href="#Optionals">Optional
76860 73 3c 2f 61 3e 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c s</a>,.as.well.as.<a.href="#null
76880 22 3e 6e 75 6c 6c 3c 2f 61 3e 2c 20 63 6f 65 72 63 65 20 74 6f 20 74 68 65 20 6f 70 74 69 6f 6e ">null</a>,.coerce.to.the.option
768a0 61 6c 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 66 69 67 75 72 al.type........</p>.......<figur
768c0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
768e0 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 65 72 63 65 5f 6f 70 74 ite.class="file">test_coerce_opt
76900 69 6f 6e 61 6c 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 ionals.zig</cite></figcaption><p
76920 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f re><code><span.class="tok-kw">co
76940 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
76960 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.
76980 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;<
769a0 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
769c0 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 67 2e nst</span>.expect.=.std.testing.
769e0 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 74 65 expect;..<span.class="tok-kw">te
76a00 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">
76a20 26 71 75 6f 74 3b 63 6f 65 72 63 65 20 74 6f 20 6f 70 74 69 6f 6e 61 6c 73 26 71 75 6f 74 3b 3c &quot;coerce.to.optionals&quot;<
76a40 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
76a60 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 22 ">const</span>.x:.?<span.class="
76a80 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
76aa0 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 20 ss="tok-number">1234</span>;....
76ac0 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
76ae0 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 33 n>.y:.?<span.class="tok-type">i3
76b00 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
76b20 22 3e 6e 75 6c 6c 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 ">null</span>;......<span.class=
76b40 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 78 2e 3f 20 3d "tok-kw">try</span>.expect(x.?.=
76b60 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 3c =.<span.class="tok-number">1234<
76b80 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 6b 77 /span>);.....<span.class="tok-kw
76ba0 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 79 20 3d 3d 20 3c 73 70 61 6e 20 63 ">try</span>.expect(y.==.<span.c
76bc0 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 3c lass="tok-null">null</span>);.}<
76be0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
76c00 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
76c20 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
76c40 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 6f 70 74 69 6f 6e 61 6c 73 2e 7a 69 ig.test.test_coerce_optionals.zi
76c60 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 6f 70 74 69 6f 6e 61 6c g</kbd>.1/1.test_coerce_optional
76c80 73 2e 74 65 73 74 2e 63 6f 65 72 63 65 20 74 6f 20 6f 70 74 69 6f 6e 61 6c 73 2e 2e 2e 20 4f 4b s.test.coerce.to.optionals....OK
76ca0 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 .All.1.tests.passed..</samp></pr
76cc0 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 4f 70 74 69 6f 6e 61 6c 73 20 77 e></figure>.......<p>Optionals.w
76ce0 6f 72 6b 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 23 ork.nested.inside.the.<a.href="#
76d00 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
76d20 70 65 3c 2f 61 3e 2c 20 74 6f 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c pe</a>,.too:</p>.......<figure><
76d40 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
76d60 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 65 72 63 65 5f 6f 70 74 69 6f 6e .class="file">test_coerce_option
76d80 61 6c 5f 77 72 61 70 70 65 64 5f 65 72 72 6f 72 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 al_wrapped_error_union.zig</cite
76da0 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></figcaption><pre><code><span.c
76dc0 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.=
76de0 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
76e00 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">
76e20 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
76e40 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 70 65 63 lass="tok-kw">const</span>.expec
76e60 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 t.=.std.testing.expect;..<span.c
76e80 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.
76ea0 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 6f 65 72 63 65 20 74 6f 20 class="tok-str">&quot;coerce.to.
76ec0 6f 70 74 69 6f 6e 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 optionals.wrapped.in.error.union
76ee0 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=
76f00 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
76f20 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 21 lass="tok-type">anyerror</span>!
76f40 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 73 70 61 ?<span.class="tok-type">i32</spa
76f60 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
76f80 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-
76fa0 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 6c 61 73 73 3d kw">const</span>.y:.<span.class=
76fc0 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 3f 3c 73 70 61 "tok-type">anyerror</span>!?<spa
76fe0 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>.=.
77000 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
77020 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 74 72 n>;......<span.class="tok-kw">tr
77040 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f y</span>.expect((<span.class="to
77060 6b 2d 6b 77 22 3e 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 k-kw">try</span>.x).?.==.<span.c
77080 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 0a lass="tok-number">1234</span>);.
770a0 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
770c0 61 6e 3e 20 65 78 70 65 63 74 28 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 an>.expect((<span.class="tok-kw"
770e0 3e 74 72 79 3c 2f 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 >try</span>.y).==.<span.class="t
77100 6f 6b 2d 6e 75 6c 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 ok-null">null</span>);.}</code><
77120 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f /pre></figure><figure><figcaptio
77140 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 n.class="shell-cap">Shell</figca
77160 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 ption><pre><samp>$.<kbd>zig.test
77180 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 6f 70 74 69 6f 6e 61 6c 5f 77 72 61 70 70 65 64 5f 65 72 .test_coerce_optional_wrapped_er
771a0 72 6f 72 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 65 ror_union.zig</kbd>.1/1.test_coe
771c0 72 63 65 5f 6f 70 74 69 6f 6e 61 6c 5f 77 72 61 70 70 65 64 5f 65 72 72 6f 72 5f 75 6e 69 6f 6e rce_optional_wrapped_error_union
771e0 2e 74 65 73 74 2e 63 6f 65 72 63 65 20 74 6f 20 6f 70 74 69 6f 6e 61 6c 73 20 77 72 61 70 70 65 .test.coerce.to.optionals.wrappe
77200 64 20 69 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 d.in.error.union....OK.All.1.tes
77220 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ts.passed..</samp></pre></figure
77240 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 54 79 70 65 2d 43 6f 65 72 >..............<h4.id="Type-Coer
77260 63 69 6f 6e 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e cion-Error-Unions"><a.href="nav.
77280 78 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 45 72 72 6f 72 2d 55 6e xhtml#toc-Type-Coercion-Error-Un
772a0 69 6f 6e 73 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 45 72 72 6f 72 20 55 6e 69 6f 6e ions">Type.Coercion:.Error.Union
772c0 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 54 79 70 65 s</a>.<a.class="hdr".href="#Type
772e0 2d 43 6f 65 72 63 69 6f 6e 2d 45 72 72 6f 72 2d 55 6e 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f -Coercion-Error-Unions">..</a></
77300 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 20 70 61 79 6c 6f 61 64 20 74 79 70 65 20 6f h4>........<p>The.payload.type.o
77320 66 20 61 6e 20 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 22 f.an.<a.href="#Error-Union-Type"
77340 3e 45 72 72 6f 72 20 55 6e 69 6f 6e 20 54 79 70 65 3c 2f 61 3e 20 61 73 20 77 65 6c 6c 20 61 73 >Error.Union.Type</a>.as.well.as
77360 20 74 68 65 20 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 45 .the.<a.href="#Error-Set-Type">E
77380 72 72 6f 72 20 53 65 74 20 54 79 70 65 3c 2f 61 3e 0a 20 20 20 20 20 20 63 6f 65 72 63 65 20 74 rror.Set.Type</a>.......coerce.t
773a0 6f 20 74 68 65 20 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 o.the.error.union.type:.......</
773c0 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
773e0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
77400 74 65 73 74 5f 63 6f 65 72 63 65 5f 74 6f 5f 65 72 72 6f 72 5f 75 6e 69 6f 6e 2e 7a 69 67 3c 2f test_coerce_to_error_union.zig</
77420 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
77440 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
77460 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">@
77480 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
774a0 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
774c0 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
774e0 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 xpect.=.std.testing.expect;..<sp
77500 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
77520 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 65 72 63 69 pan.class="tok-str">&quot;coerci
77540 6f 6e 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 on.to.error.unions&quot;</span>.
77560 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
77580 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 74 79 70 65 </span>.x:.<span.class="tok-type
775a0 22 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 ">anyerror</span>!<span.class="t
775c0 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
775e0 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 20 20 s="tok-number">1234</span>;.....
77600 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
77620 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 79 65 >.y:.<span.class="tok-type">anye
77640 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 70 rror</span>!<span.class="tok-typ
77660 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 6f 6b e">i32</span>.=.<span.class="tok
77680 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 3b 0a 0a 20 20 20 20 -kw">error</span>.Failure;......
776a0 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>.
776c0 65 78 70 65 63 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 expect((<span.class="tok-kw">try
776e0 3c 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 </span>.x).==.<span.class="tok-n
77700 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 3c 73 70 61 6e 20 63 umber">1234</span>);.....<span.c
77720 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 74 65 73 lass="tok-kw">try</span>.std.tes
77740 74 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 ting.expectError(<span.class="to
77760 6b 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 k-kw">error</span>.Failure,.y);.
77780 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
777a0 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
777c0 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
777e0 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 74 6f 5f 65 72 72 6f 72 5f 75 >zig.test.test_coerce_to_error_u
77800 6e 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 74 nion.zig</kbd>.1/1.test_coerce_t
77820 6f 5f 65 72 72 6f 72 5f 75 6e 69 6f 6e 2e 74 65 73 74 2e 63 6f 65 72 63 69 6f 6e 20 74 6f 20 65 o_error_union.test.coercion.to.e
77840 72 72 6f 72 20 75 6e 69 6f 6e 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 rror.unions....OK.All.1.tests.pa
77860 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 ssed..</samp></pre></figure>....
77880 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d ..........<h4.id="Type-Coercion-
778a0 43 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 3c 61 20 68 Compile-Time-Known-Numbers"><a.h
778c0 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e ref="nav.xhtml#toc-Type-Coercion
778e0 2d 43 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 54 79 70 -Compile-Time-Known-Numbers">Typ
77900 65 20 43 6f 65 72 63 69 6f 6e 3a 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 4b 6e 6f 77 6e 20 4e e.Coercion:.Compile-Time.Known.N
77920 75 6d 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 umbers</a>.<a.class="hdr".href="
77940 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 4b 6e 6f 77 #Type-Coercion-Compile-Time-Know
77960 6e 2d 4e 75 6d 62 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 n-Numbers">..</a></h4>........<p
77980 3e 57 68 65 6e 20 61 20 6e 75 6d 62 65 72 20 69 73 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 >When.a.number.is.<a.href="#comp
779a0 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 74 6f 20 62 65 20 72 time">comptime</a>-known.to.be.r
779c0 65 70 72 65 73 65 6e 74 61 62 6c 65 20 69 6e 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 epresentable.in.the.destination.
779e0 74 79 70 65 2c 0a 20 20 20 20 20 20 69 74 20 6d 61 79 20 62 65 20 63 6f 65 72 63 65 64 3a 0a 20 type,.......it.may.be.coerced:..
77a00 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 .....</p>.......<figure><figcapt
77a20 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d ion.class="zig-cap"><cite.class=
77a40 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 65 72 63 65 5f 6c 61 72 67 65 5f 74 6f 5f 73 6d 61 6c "file">test_coerce_large_to_smal
77a60 6c 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 l.zig</cite></figcaption><pre><c
77a80 6f 64 65 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 ode><span.class="tok-kw">const</
77aa0 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
77ac0 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
77ae0 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
77b00 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</
77b20 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 67 2e 65 78 70 65 63 span>.expect.=.std.testing.expec
77b40 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
77b60 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
77b80 3b 63 6f 65 72 63 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 ;coercing.large.integer.type.to.
77ba0 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 63 6f 6d 70 74 69 smaller.one.when.value.is.compti
77bc0 6d 65 2d 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 me-known.to.fit&quot;</span>.{..
77be0 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
77c00 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 75 pan>.x:.<span.class="tok-type">u
77c20 36 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 64</span>.=.<span.class="tok-num
77c40 62 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 ber">255</span>;.....<span.class
77c60 3d 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 ="tok-kw">const</span>.y:.<span.
77c80 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 78 3b 0a class="tok-type">u8</span>.=.x;.
77ca0 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
77cc0 61 6e 3e 20 65 78 70 65 63 74 28 79 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b an>.expect(y.==.<span.class="tok
77ce0 2d 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 -number">255</span>);.}</code></
77d00 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e pre></figure><figure><figcaption
77d20 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 .class="shell-cap">Shell</figcap
77d40 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 tion><pre><samp>$.<kbd>zig.test.
77d60 74 65 73 74 5f 63 6f 65 72 63 65 5f 6c 61 72 67 65 5f 74 6f 5f 73 6d 61 6c 6c 2e 7a 69 67 3c 2f test_coerce_large_to_small.zig</
77d80 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 6c 61 72 67 65 5f 74 6f 5f 73 6d kbd>.1/1.test_coerce_large_to_sm
77da0 61 6c 6c 2e 74 65 73 74 2e 63 6f 65 72 63 69 6e 67 20 6c 61 72 67 65 20 69 6e 74 65 67 65 72 20 all.test.coercing.large.integer.
77dc0 74 79 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 type.to.smaller.one.when.value.i
77de0 73 20 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 20 74 6f 20 66 69 74 2e 2e 2e 20 4f 4b 0a 41 6c s.comptime-known.to.fit....OK.Al
77e00 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c l.1.tests.passed..</samp></pre><
77e20 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 54 79 /figure>..............<h4.id="Ty
77e40 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 55 6e 69 6f 6e 73 2d 61 6e 64 2d 45 6e 75 6d 73 22 3e 3c 61 pe-Coercion-Unions-and-Enums"><a
77e60 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 .href="nav.xhtml#toc-Type-Coerci
77e80 6f 6e 2d 55 6e 69 6f 6e 73 2d 61 6e 64 2d 45 6e 75 6d 73 22 3e 54 79 70 65 20 43 6f 65 72 63 69 on-Unions-and-Enums">Type.Coerci
77ea0 6f 6e 3a 20 55 6e 69 6f 6e 73 20 61 6e 64 20 45 6e 75 6d 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 on:.Unions.and.Enums</a>.<a.clas
77ec0 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 55 6e 69 s="hdr".href="#Type-Coercion-Uni
77ee0 6f 6e 73 2d 61 6e 64 2d 45 6e 75 6d 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 ons-and-Enums">..</a></h4>......
77f00 20 20 3c 70 3e 54 61 67 67 65 64 20 75 6e 69 6f 6e 73 20 63 61 6e 20 62 65 20 63 6f 65 72 63 65 ..<p>Tagged.unions.can.be.coerce
77f20 64 20 74 6f 20 65 6e 75 6d 73 2c 20 61 6e 64 20 65 6e 75 6d 73 20 63 61 6e 20 62 65 20 63 6f 65 d.to.enums,.and.enums.can.be.coe
77f40 72 63 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 65 6e rced.to.tagged.unions.......when
77f60 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 63 6f .they.are.<a.href="#comptime">co
77f80 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 20 6f mptime</a>-known.to.be.a.field.o
77fa0 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 70 6f f.the.union.that.has.only.one.po
77fc0 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 20 68 ssible.value,.such.as.......<a.h
77fe0 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 70 3e ref="#void">void</a>:.......</p>
78000 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 .......<figure><figcaption.class
78020 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ="zig-cap"><cite.class="file">te
78040 73 74 5f 63 6f 65 72 63 65 5f 75 6e 69 6f 6e 73 5f 65 6e 75 6d 73 2e 7a 69 67 3c 2f 63 69 74 65 st_coerce_unions_enums.zig</cite
78060 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></figcaption><pre><code><span.c
78080 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.=
780a0 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
780c0 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">
780e0 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
78100 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 70 65 63 lass="tok-kw">const</span>.expec
78120 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 t.=.std.testing.expect;..<span.c
78140 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 3c lass="tok-kw">const</span>.E.=.<
78160 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>.
78180 7b 0a 20 20 20 20 6f 6e 65 2c 0a 20 20 20 20 74 77 6f 2c 0a 20 20 20 20 74 68 72 65 65 2c 0a 7d {.....one,.....two,.....three,.}
781a0 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
781c0 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 6e pan>.U.=.<span.class="tok-kw">un
781e0 69 6f 6e 3c 2f 73 70 61 6e 3e 28 45 29 20 7b 0a 20 20 20 20 6f 6e 65 3a 20 3c 73 70 61 6e 20 63 ion</span>(E).{.....one:.<span.c
78200 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 20 lass="tok-type">i32</span>,.....
78220 74 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 3c two:.<span.class="tok-type">f32<
78240 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 74 68 72 65 65 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 /span>,.....three,.};..<span.cla
78260 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 55 32 20 3d 20 3c 73 ss="tok-kw">const</span>.U2.=.<s
78280 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>(
782a0 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>
782c0 29 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 79 70 65 ).{.....a:.<span.class="tok-type
782e0 22 3e 76 6f 69 64 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 73 ">void</span>,.....b:.<span.clas
78300 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 3c 73 s="tok-type">f32</span>,......<s
78320 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
78340 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 61 67 3c 2f 73 70 61 6e 3e 28 73 65 6c an.class="tok-fn">tag</span>(sel
78360 66 3a 20 55 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 75 73 f:.U2).<span.class="tok-type">us
78380 69 7a 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 ize</span>.{.........<span.class
783a0 3d 22 74 6f 6b 2d 6b 77 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 20 28 73 65 6c 66 29 20 7b ="tok-kw">switch</span>.(self).{
783c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 61 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 ..............a.=&gt;.<span.clas
783e0 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
78400 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 0a 20 20 20 20 lass="tok-number">1</span>,.....
78420 20 20 20 20 20 20 20 20 2e 62 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f .........b.=&gt;.<span.class="to
78440 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=
78460 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 20 20 20 20 7d "tok-number">2</span>,.........}
78480 0a 20 20 20 20 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 .....}.};..<span.class="tok-kw">
784a0 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
784c0 22 3e 26 71 75 6f 74 3b 63 6f 65 72 63 69 6f 6e 20 62 65 74 77 65 65 6e 20 75 6e 69 6f 6e 73 20 ">&quot;coercion.between.unions.
784e0 61 6e 64 20 65 6e 75 6d 73 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 and.enums&quot;</span>.{.....<sp
78500 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 75 an.class="tok-kw">const</span>.u
78520 20 3d 20 55 7b 20 2e 74 77 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .=.U{..two.=.<span.class="tok-nu
78540 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 3c 73 70 61 6e 20 mber">12.34</span>.};.....<span.
78560 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 3a 20 45 class="tok-kw">const</span>.e:.E
78580 20 3d 20 75 3b 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 .=.u;.<span.class="tok-comment">
785a0 2f 2f 20 63 6f 65 72 63 65 20 75 6e 69 6f 6e 20 74 6f 20 65 6e 75 6d 3c 2f 73 70 61 6e 3e 0a 20 //.coerce.union.to.enum</span>..
785c0 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 61 ...<span.class="tok-kw">try</spa
785e0 6e 3e 20 65 78 70 65 63 74 28 65 20 3d 3d 20 45 2e 74 77 6f 29 3b 0a 0a 20 20 20 20 3c 73 70 61 n>.expect(e.==.E.two);......<spa
78600 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 74 68 n.class="tok-kw">const</span>.th
78620 72 65 65 20 3d 20 45 2e 74 68 72 65 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ree.=.E.three;.....<span.class="
78640 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 75 5f 32 3a 20 55 20 3d 20 74 68 tok-kw">const</span>.u_2:.U.=.th
78660 72 65 65 3b 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 ree;.<span.class="tok-comment">/
78680 2f 20 63 6f 65 72 63 65 20 65 6e 75 6d 20 74 6f 20 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 /.coerce.enum.to.union</span>...
786a0 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
786c0 3e 20 65 78 70 65 63 74 28 75 5f 32 20 3d 3d 20 45 2e 74 68 72 65 65 29 3b 0a 0a 20 20 20 20 3c >.expect(u_2.==.E.three);......<
786e0 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>
78700 20 75 5f 33 3a 20 55 20 3d 20 2e 74 68 72 65 65 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .u_3:.U.=..three;.<span.class="t
78720 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 63 6f 65 72 63 65 20 65 6e 75 6d 20 6c 69 74 65 72 ok-comment">//.coerce.enum.liter
78740 61 6c 20 74 6f 20 75 6e 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 al.to.union</span>.....<span.cla
78760 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 75 5f ss="tok-kw">try</span>.expect(u_
78780 33 20 3d 3d 20 45 2e 74 68 72 65 65 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 3.==.E.three);......<span.class=
787a0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 75 5f 34 3a 20 55 32 20 3d 20 "tok-kw">const</span>.u_4:.U2.=.
787c0 2e 61 3b 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 .a;.<span.class="tok-comment">//
787e0 20 63 6f 65 72 63 65 20 65 6e 75 6d 20 6c 69 74 65 72 61 6c 20 74 6f 20 75 6e 69 6f 6e 20 77 69 .coerce.enum.literal.to.union.wi
78800 74 68 20 69 6e 66 65 72 72 65 64 20 65 6e 75 6d 20 74 61 67 20 74 79 70 65 2e 3c 2f 73 70 61 6e th.inferred.enum.tag.type.</span
78820 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 74 72 79 3c 2f >.....<span.class="tok-kw">try</
78840 73 70 61 6e 3e 20 65 78 70 65 63 74 28 75 5f 34 2e 74 61 67 28 29 20 3d 3d 20 3c 73 70 61 6e 20 span>.expect(u_4.tag().==.<span.
78860 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 0a 20 class="tok-number">1</span>);...
78880 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">//.
788a0 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 61 6d 70 6c 65 20 69 73 20 69 6e 76 61 6c 69 64 The.following.example.is.invalid
788c0 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
788e0 6d 6d 65 6e 74 22 3e 2f 2f 20 65 72 72 6f 72 3a 20 63 6f 65 72 63 69 6f 6e 20 66 72 6f 6d 20 65 mment">//.error:.coercion.from.e
78900 6e 75 6d 20 27 40 54 79 70 65 4f 66 28 2e 65 6e 75 6d 5f 6c 69 74 65 72 61 6c 29 27 20 74 6f 20 num.'@TypeOf(.enum_literal)'.to.
78920 75 6e 69 6f 6e 20 27 74 65 73 74 5f 63 6f 65 72 63 65 5f 75 6e 69 6f 6e 73 5f 65 6e 75 6d 2e 55 union.'test_coerce_unions_enum.U
78940 32 27 20 6d 75 73 74 20 69 6e 69 74 69 61 6c 69 7a 65 20 27 66 33 32 27 20 66 69 65 6c 64 20 27 2'.must.initialize.'f32'.field.'
78960 62 27 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 b'</span>.....<span.class="tok-c
78980 6f 6d 6d 65 6e 74 22 3e 2f 2f 76 61 72 20 75 5f 35 3a 20 55 32 20 3d 20 2e 62 3b 3c 2f 73 70 61 omment">//var.u_5:.U2.=..b;</spa
789a0 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"
789c0 3e 2f 2f 74 72 79 20 65 78 70 65 63 74 28 75 5f 35 2e 74 61 67 28 29 20 3d 3d 20 32 29 3b 3c 2f >//try.expect(u_5.tag().==.2);</
789e0 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 span>.}</code></pre></figure><fi
78a00 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
78a20 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
78a40 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 75 6e 69 6f $.<kbd>zig.test.test_coerce_unio
78a60 6e 73 5f 65 6e 75 6d 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 65 72 ns_enums.zig</kbd>.1/1.test_coer
78a80 63 65 5f 75 6e 69 6f 6e 73 5f 65 6e 75 6d 73 2e 74 65 73 74 2e 63 6f 65 72 63 69 6f 6e 20 62 65 ce_unions_enums.test.coercion.be
78aa0 74 77 65 65 6e 20 75 6e 69 6f 6e 73 20 61 6e 64 20 65 6e 75 6d 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c tween.unions.and.enums....OK.All
78ac0 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .1.tests.passed..</samp></pre></
78ae0 66 69 67 75 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 figure>.......<p>See.also:</p><u
78b00 6c 3e 0a 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 l>.<li><a.href="#union">union</a
78b20 3e 3c 2f 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 ></li>.<li><a.href="#enum">enum<
78b40 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 34 /a></li>.</ul>...............<h4
78b60 20 69 64 3d 22 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 75 6e 64 65 66 69 6e 65 64 22 3e 3c 61 .id="Type-Coercion-undefined"><a
78b80 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 79 70 65 2d 43 6f 65 72 63 69 .href="nav.xhtml#toc-Type-Coerci
78ba0 6f 6e 2d 75 6e 64 65 66 69 6e 65 64 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 75 6e 64 on-undefined">Type.Coercion:.und
78bc0 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 22 efined</a>.<a.class="hdr".href="
78be0 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 75 6e 64 65 66 69 6e 65 64 22 3e c2 a7 3c 2f 61 3e #Type-Coercion-undefined">..</a>
78c00 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 </h4>........<p><a.href="#undefi
78c20 6e 65 64 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 20 63 61 6e 20 62 65 20 63 6f 65 72 63 65 ned">undefined</a>.can.be.coerce
78c40 64 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 0a 20 20 20 20 20 d.to.any.type.</p>..............
78c60 20 3c 68 34 20 69 64 3d 22 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 54 75 70 6c 65 73 2d 74 6f .<h4.id="Type-Coercion-Tuples-to
78c80 2d 41 72 72 61 79 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d -Arrays"><a.href="nav.xhtml#toc-
78ca0 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 2d 54 75 70 6c 65 73 2d 74 6f 2d 41 72 72 61 79 73 22 3e Type-Coercion-Tuples-to-Arrays">
78cc0 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3a 20 54 75 70 6c 65 73 20 74 6f 20 41 72 72 61 79 73 3c Type.Coercion:.Tuples.to.Arrays<
78ce0 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 54 79 70 65 2d 43 /a>.<a.class="hdr".href="#Type-C
78d00 6f 65 72 63 69 6f 6e 2d 54 75 70 6c 65 73 2d 74 6f 2d 41 72 72 61 79 73 22 3e c2 a7 3c 2f 61 3e oercion-Tuples-to-Arrays">..</a>
78d20 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d 22 23 54 75 70 6c 65 73 </h4>........<p><a.href="#Tuples
78d40 22 3e 54 75 70 6c 65 73 3c 2f 61 3e 20 63 61 6e 20 62 65 20 63 6f 65 72 63 65 64 20 74 6f 20 61 ">Tuples</a>.can.be.coerced.to.a
78d60 72 72 61 79 73 2c 20 69 66 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 69 65 6c 64 73 20 68 61 76 65 rrays,.if.all.of.the.fields.have
78d80 20 74 68 65 20 73 61 6d 65 20 74 79 70 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 .the.same.type.</p>.......<figur
78da0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
78dc0 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 65 72 63 65 5f 74 75 70 ite.class="file">test_coerce_tup
78de0 6c 65 73 5f 61 72 72 61 79 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f les_arrays.zig</cite></figcaptio
78e00 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
78e20 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
78e40 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
78e60 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
78e80 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 77 ot;</span>);.<span.class="tok-kw
78ea0 22 3e 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 ">const</span>.expect.=.std.test
78ec0 69 6e 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 ing.expect;..<span.class="tok-kw
78ee0 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 54 75 70 6c 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 ">const</span>.Tuple.=.<span.cla
78f00 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 7b 20 3c 73 70 61 6e ss="tok-kw">struct</span>{.<span
78f20 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 3c 73 70 .class="tok-type">u8</span>,.<sp
78f40 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 7d 3b an.class="tok-type">u8</span>.};
78f60 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
78f80 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 63 6f >.<span.class="tok-str">&quot;co
78fa0 65 72 63 69 6f 6e 20 66 72 6f 6d 20 68 6f 6d 6f 67 65 6e 6f 75 73 20 74 75 70 6c 65 20 74 6f 20 ercion.from.homogenous.tuple.to.
78fc0 61 72 72 61 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 09 3c 73 70 61 6e 20 63 6c 61 73 array&quot;</span>.{..<span.clas
78fe0 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 75 70 6c 65 3a 20 54 s="tok-kw">const</span>.tuple:.T
79000 75 70 6c 65 20 3d 20 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 uple.=..{<span.class="tok-number
79020 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 6e 75 6d ">5</span>,.<span.class="tok-num
79040 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 7d 3b 0a 09 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ber">6</span>};..<span.class="to
79060 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 3a 20 5b 3c 73 70 61 6e k-kw">const</span>.array:.[<span
79080 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
790a0 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>.=.
790c0 74 75 70 6c 65 3b 0a 09 5f 20 3d 20 61 72 72 61 79 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 tuple;.._.=.array;.}</code></pre
790e0 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c ></figure><figure><figcaption.cl
79100 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f ass="shell-cap">Shell</figcaptio
79120 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 n><pre><samp>$.<kbd>zig.test.tes
79140 74 5f 63 6f 65 72 63 65 5f 74 75 70 6c 65 73 5f 61 72 72 61 79 73 2e 7a 69 67 3c 2f 6b 62 64 3e t_coerce_tuples_arrays.zig</kbd>
79160 0a 31 2f 31 20 74 65 73 74 5f 63 6f 65 72 63 65 5f 74 75 70 6c 65 73 5f 61 72 72 61 79 73 2e 74 .1/1.test_coerce_tuples_arrays.t
79180 65 73 74 2e 63 6f 65 72 63 69 6f 6e 20 66 72 6f 6d 20 68 6f 6d 6f 67 65 6e 6f 75 73 20 74 75 70 est.coercion.from.homogenous.tup
791a0 6c 65 20 74 6f 20 61 72 72 61 79 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 le.to.array....OK.All.1.tests.pa
791c0 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 ssed..</samp></pre></figure>....
791e0 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 78 70 6c 69 63 ..................<h3.id="Explic
79200 69 74 2d 43 61 73 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 it-Casts"><a.href="nav.xhtml#toc
79220 2d 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 3c -Explicit-Casts">Explicit.Casts<
79240 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 70 6c 69 63 /a>.<a.class="hdr".href="#Explic
79260 69 74 2d 43 61 73 74 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 it-Casts">..</a></h3>........<p>
79280 0a 20 20 20 20 20 20 45 78 70 6c 69 63 69 74 20 63 61 73 74 73 20 61 72 65 20 70 65 72 66 6f 72 .......Explicit.casts.are.perfor
792a0 6d 65 64 20 76 69 61 20 3c 61 20 68 72 65 66 3d 22 23 42 75 69 6c 74 69 6e 2d 46 75 6e 63 74 69 med.via.<a.href="#Builtin-Functi
792c0 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 2e 0a 20 20 20 20 ons">Builtin.Functions</a>......
792e0 20 20 53 6f 6d 65 20 65 78 70 6c 69 63 69 74 20 63 61 73 74 73 20 61 72 65 20 73 61 66 65 3b 20 ..Some.explicit.casts.are.safe;.
79300 73 6f 6d 65 20 61 72 65 20 6e 6f 74 2e 0a 20 20 20 20 20 20 53 6f 6d 65 20 65 78 70 6c 69 63 69 some.are.not........Some.explici
79320 74 20 63 61 73 74 73 20 70 65 72 66 6f 72 6d 20 6c 61 6e 67 75 61 67 65 2d 6c 65 76 65 6c 20 61 t.casts.perform.language-level.a
79340 73 73 65 72 74 69 6f 6e 73 3b 20 73 6f 6d 65 20 64 6f 20 6e 6f 74 2e 0a 20 20 20 20 20 20 53 6f ssertions;.some.do.not........So
79360 6d 65 20 65 78 70 6c 69 63 69 74 20 63 61 73 74 73 20 61 72 65 20 6e 6f 2d 6f 70 73 20 61 74 20 me.explicit.casts.are.no-ops.at.
79380 72 75 6e 74 69 6d 65 3b 20 73 6f 6d 65 20 61 72 65 20 6e 6f 74 2e 0a 20 20 20 20 20 20 3c 2f 70 runtime;.some.are.not........</p
793a0 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 61 20 68 72 >.......<ul>...........<li><a.hr
793c0 65 66 3d 22 23 62 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c 2f 61 3e 20 2d 20 63 68 61 ef="#bitCast">@bitCast</a>.-.cha
793e0 6e 67 65 20 74 79 70 65 20 62 75 74 20 6d 61 69 6e 74 61 69 6e 20 62 69 74 20 72 65 70 72 65 73 nge.type.but.maintain.bit.repres
79400 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 entation</li>...........<li><a.h
79420 72 65 66 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 20 ref="#alignCast">@alignCast</a>.
79440 2d 20 6d 61 6b 65 20 61 20 70 6f 69 6e 74 65 72 20 68 61 76 65 20 6d 6f 72 65 20 61 6c 69 67 6e -.make.a.pointer.have.more.align
79460 6d 65 6e 74 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 ment</li>...........<li><a.href=
79480 22 23 65 6e 75 6d 46 72 6f 6d 49 6e 74 22 3e 40 65 6e 75 6d 46 72 6f 6d 49 6e 74 3c 2f 61 3e 20 "#enumFromInt">@enumFromInt</a>.
794a0 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 64 20 6f 6e 20 -.obtain.an.enum.value.based.on.
794c0 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 20 20 20 20 20 its.integer.tag.value</li>......
794e0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 46 72 6f 6d 49 6e 74 22 .....<li><a.href="#errorFromInt"
79500 3e 40 65 72 72 6f 72 46 72 6f 6d 49 6e 74 3c 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 61 6e 20 65 >@errorFromInt</a>.-.obtain.an.e
79520 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 76 rror.code.based.on.its.integer.v
79540 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=
79560 22 23 65 72 72 6f 72 43 61 73 74 22 3e 40 65 72 72 6f 72 43 61 73 74 3c 2f 61 3e 20 2d 20 63 6f "#errorCast">@errorCast</a>.-.co
79580 6e 76 65 72 74 20 74 6f 20 61 20 73 6d 61 6c 6c 65 72 20 65 72 72 6f 72 20 73 65 74 3c 2f 6c 69 nvert.to.a.smaller.error.set</li
795a0 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 66 6c 6f 61 74 43 >...........<li><a.href="#floatC
795c0 61 73 74 22 3e 40 66 6c 6f 61 74 43 61 73 74 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 61 20 ast">@floatCast</a>.-.convert.a.
795e0 6c 61 72 67 65 72 20 66 6c 6f 61 74 20 74 6f 20 61 20 73 6d 61 6c 6c 65 72 20 66 6c 6f 61 74 3c larger.float.to.a.smaller.float<
79600 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 66 6c 6f /li>...........<li><a.href="#flo
79620 61 74 46 72 6f 6d 49 6e 74 22 3e 40 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 3c 2f 61 3e 20 2d 20 63 atFromInt">@floatFromInt</a>.-.c
79640 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 61 6c onvert.an.integer.to.a.float.val
79660 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 22 23 ue</li>...........<li><a.href="#
79680 69 6e 74 43 61 73 74 22 3e 40 69 6e 74 43 61 73 74 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 intCast">@intCast</a>.-.convert.
796a0 62 65 74 77 65 65 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 between.integer.types</li>......
796c0 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 42 6f 6f 6c 22 3e .....<li><a.href="#intFromBool">
796e0 40 69 6e 74 46 72 6f 6d 42 6f 6f 6c 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 74 72 75 65 20 @intFromBool</a>.-.convert.true.
79700 74 6f 20 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 to.1.and.false.to.0</li>........
79720 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 45 6e 75 6d 22 3e 40 69 ...<li><a.href="#intFromEnum">@i
79740 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 74 68 65 20 69 6e 74 65 ntFromEnum</a>.-.obtain.the.inte
79760 67 65 72 20 74 61 67 20 76 61 6c 75 65 20 6f 66 20 61 6e 20 65 6e 75 6d 20 6f 72 20 74 61 67 67 ger.tag.value.of.an.enum.or.tagg
79780 65 64 20 75 6e 69 6f 6e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 ed.union</li>...........<li><a.h
797a0 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 45 72 72 6f 72 22 3e 40 69 6e 74 46 72 6f 6d 45 72 72 6f ref="#intFromError">@intFromErro
797c0 72 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 75 65 r</a>.-.obtain.the.integer.value
797e0 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 20 20 .of.an.error.code</li>..........
79800 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 22 3e 40 69 6e .<li><a.href="#intFromFloat">@in
79820 74 46 72 6f 6d 46 6c 6f 61 74 3c 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 74 68 65 20 69 6e 74 65 tFromFloat</a>.-.obtain.the.inte
79840 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 20 ger.part.of.a.float.value</li>..
79860 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 46 72 6f 6d 50 74 .........<li><a.href="#intFromPt
79880 72 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 61 3e 20 2d 20 6f 62 74 61 69 6e 20 74 68 65 20 r">@intFromPtr</a>.-.obtain.the.
798a0 61 64 64 72 65 73 73 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 address.of.a.pointer</li>.......
798c0 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 74 72 46 72 6f 6d 49 6e 74 22 3e 40 70 ....<li><a.href="#ptrFromInt">@p
798e0 74 72 46 72 6f 6d 49 6e 74 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 61 6e 20 61 64 64 72 65 trFromInt</a>.-.convert.an.addre
79900 73 73 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c ss.to.a.pointer</li>...........<
79920 6c 69 3e 3c 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 li><a.href="#ptrCast">@ptrCast</
79940 61 3e 20 2d 20 63 6f 6e 76 65 72 74 20 62 65 74 77 65 65 6e 20 70 6f 69 6e 74 65 72 20 74 79 70 a>.-.convert.between.pointer.typ
79960 65 73 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 es</li>...........<li><a.href="#
79980 74 72 75 6e 63 61 74 65 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 61 3e 20 2d 20 63 6f 6e 76 65 72 truncate">@truncate</a>.-.conver
799a0 74 20 62 65 74 77 65 65 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 73 2c 20 63 68 6f 70 70 69 6e t.between.integer.types,.choppin
799c0 67 20 6f 66 66 20 62 69 74 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 g.off.bits</li>.......</ul>.....
799e0 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 50 65 65 72 2d 54 79 70 65 2d 52 65 73 6f ..........<h3.id="Peer-Type-Reso
79a00 6c 75 74 69 6f 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 50 lution"><a.href="nav.xhtml#toc-P
79a20 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
79a40 65 73 6f 6c 75 74 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 esolution</a>.<a.class="hdr".hre
79a60 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 c2 a7 3c 2f 61 3e f="#Peer-Type-Resolution">..</a>
79a80 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 50 65 65 72 20 54 79 70 65 20 52 65 73 6f 6c 75 </h3>........<p>Peer.Type.Resolu
79aa0 74 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e 20 74 68 65 73 65 20 70 6c 61 63 65 73 3a 3c 2f 70 3e tion.occurs.in.these.places:</p>
79ac0 0a 20 20 20 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 .......<ul>.........<li><a.href=
79ae0 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 "#switch">switch</a>.expressions
79b00 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e </li>.........<li><a.href="#if">
79b20 69 66 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 20 if</a>.expressions</li>.........
79b40 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 3e 20 65 <li><a.href="#while">while</a>.e
79b60 78 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 xpressions</li>.........<li><a.h
79b80 72 65 66 3d 22 23 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f ref="#for">for</a>.expressions</
79ba0 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4d 75 6c 74 69 70 6c 65 20 62 72 65 61 6b 20 73 li>.........<li>Multiple.break.s
79bc0 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 61 20 62 6c 6f 63 6b 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 tatements.in.a.block</li>.......
79be0 20 20 3c 6c 69 3e 53 6f 6d 65 20 3c 61 20 68 72 65 66 3d 22 23 54 61 62 6c 65 2d 6f 66 2d 4f 70 ..<li>Some.<a.href="#Table-of-Op
79c00 65 72 61 74 6f 72 73 22 3e 62 69 6e 61 72 79 20 6f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f erators">binary.operations</a></
79c20 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>.......
79c40 54 68 69 73 20 6b 69 6e 64 20 6f 66 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 20 63 68 6f This.kind.of.type.resolution.cho
79c60 6f 73 65 73 20 61 20 74 79 70 65 20 74 68 61 74 20 61 6c 6c 20 70 65 65 72 20 74 79 70 65 73 20 oses.a.type.that.all.peer.types.
79c80 63 61 6e 20 63 6f 65 72 63 65 20 69 6e 74 6f 2e 20 48 65 72 65 20 61 72 65 0a 20 20 20 20 20 20 can.coerce.into..Here.are.......
79ca0 73 6f 6d 65 20 65 78 61 6d 70 6c 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 some.examples:.......</p>.......
79cc0 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
79ce0 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 70 65 65 72 ap"><cite.class="file">test_peer
79d00 5f 74 79 70 65 5f 72 65 73 6f 6c 75 74 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 _type_resolution.zig</cite></fig
79d20 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
79d40 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 6e tok-kw">const</span>.std.=.<span
79d60 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
79d80 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;
79da0 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 22 std&quot;</span>);.<span.class="
79dc0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 74 tok-kw">const</span>.expect.=.st
79de0 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 d.testing.expect;.<span.class="t
79e00 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 73 74 64 2e 6d 65 ok-kw">const</span>.mem.=.std.me
79e20 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
79e40 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
79e60 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;
79e80 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
79ea0 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 73 73 3d 22 w">const</span>.a:.<span.class="
79ec0 74 6f 6b 2d 74 79 70 65 22 3e 69 38 3c 2f 73 70 61 6e 3e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 tok-type">i8</span>.=.<span.clas
79ee0 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 32 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 s="tok-number">12</span>;.....<s
79f00 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>.
79f20 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 73 b:.<span.class="tok-type">i16</s
79f40 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">
79f60 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-
79f80 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 20 3d 20 61 20 2b 20 62 3b 0a 20 20 20 20 kw">const</span>.c.=.a.+.b;.....
79fa0 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>.
79fc0 65 78 70 65 63 74 28 63 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d expect(c.==.<span.class="tok-num
79fe0 62 65 72 22 3e 34 36 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 ber">46</span>);.....<span.class
7a000 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 ="tok-kw">try</span>.expect(<spa
7a020 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 4f 66 3c 2f 73 n.class="tok-builtin">@TypeOf</s
7a040 70 61 6e 3e 28 63 29 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 pan>(c).==.<span.class="tok-type
7a060 22 3e 69 31 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 ">i16</span>);.}..<span.class="t
7a080 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="
7a0a0 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 61 72 72 61 tok-str">&quot;peer.resolve.arra
7a0c0 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 6e 73 74 20 73 6c ys.of.different.size.to.const.sl
7a0e0 69 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 ice&quot;</span>.{.....<span.cla
7a100 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 65 ss="tok-kw">try</span>.expect(me
7a120 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<
7a140 2f 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 /span>,.boolToStr(<span.class="t
7a160 6f 6b 2d 6e 75 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 ok-null">true</span>),.<span.cla
7a180 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 75 6f 74 3b 3c 2f 73 ss="tok-str">&quot;true&quot;</s
7a1a0 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 22 pan>));.....<span.class="tok-kw"
7a1c0 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e >try</span>.expect(mem.eql(<span
7a1e0 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
7a200 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
7a220 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
7a240 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 20 r">&quot;false&quot;</span>));..
7a260 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 61 ...<span.class="tok-kw">try</spa
7a280 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 6d 70 74 69 6d 65 n>.<span.class="tok-kw">comptime
7a2a0 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c 61 </span>.expect(mem.eql(<span.cla
7a2c0 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 6c 54 6f 53 ss="tok-type">u8</span>,.boolToS
7a2e0 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 74 72 75 65 3c 2f tr(<span.class="tok-null">true</
7a300 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 72 22 3e 26 71 span>),.<span.class="tok-str">&q
7a320 75 6f 74 3b 74 72 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 20 20 20 20 3c 73 70 uot;true&quot;</span>));.....<sp
7a340 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 3c 73 70 an.class="tok-kw">try</span>.<sp
7a360 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
7a380 3e 20 65 78 70 65 63 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 >.expect(mem.eql(<span.class="to
7a3a0 6b 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 k-type">u8</span>,.boolToStr(<sp
7a3c0 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>
7a3e0 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 66 ),.<span.class="tok-str">&quot;f
7a400 61 6c 73 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 alse&quot;</span>));.}.<span.cla
7a420 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
7a440 73 3d 22 74 6f 6b 2d 66 6e 22 3e 62 6f 6f 6c 54 6f 53 74 72 3c 2f 73 70 61 6e 3e 28 62 3a 20 3c s="tok-fn">boolToStr</span>(b:.<
7a460 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
7a480 3e 29 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 >).[]<span.class="tok-kw">const<
7a4a0 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
7a4c0 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
7a4e0 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 6f w">return</span>.<span.class="to
7a500 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d k-kw">if</span>.(b).<span.class=
7a520 22 74 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 "tok-str">&quot;true&quot;</span
7a540 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 2f 73 70 61 >.<span.class="tok-kw">else</spa
7a560 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 66 n>.<span.class="tok-str">&quot;f
7a580 61 6c 73 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 alse&quot;</span>;.}..<span.clas
7a5a0 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
7a5c0 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 73 6f 6c 76 65 20 ss="tok-str">&quot;peer.resolve.
7a5e0 61 72 72 61 79 20 61 6e 64 20 63 6f 6e 73 74 20 73 6c 69 63 65 26 71 75 6f 74 3b 3c 2f 73 70 61 array.and.const.slice&quot;</spa
7a600 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 72 n>.{.....<span.class="tok-kw">tr
7a620 79 3c 2f 73 70 61 6e 3e 20 74 65 73 74 50 65 65 72 52 65 73 6f 6c 76 65 41 72 72 61 79 43 6f 6e y</span>.testPeerResolveArrayCon
7a640 73 74 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 stSlice(<span.class="tok-null">t
7a660 72 75 65 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 rue</span>);.....<span.class="to
7a680 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 22 74 6f k-kw">try</span>.<span.class="to
7a6a0 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 74 65 73 74 50 65 65 72 52 65 k-kw">comptime</span>.testPeerRe
7a6c0 73 6f 6c 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 solveArrayConstSlice(<span.class
7a6e0 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 7d 0a 3c 73 70 61 ="tok-null">true</span>);.}.<spa
7a700 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
7a720 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 74 65 73 74 50 65 65 72 52 65 73 6f 6c 76 65 41 .class="tok-fn">testPeerResolveA
7a740 72 72 61 79 43 6f 6e 73 74 53 6c 69 63 65 3c 2f 73 70 61 6e 3e 28 62 3a 20 3c 73 70 61 6e 20 63 rrayConstSlice</span>(b:.<span.c
7a760 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 21 3c 73 lass="tok-type">bool</span>).!<s
7a780 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>
7a7a0 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
7a7c0 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 75 65 31 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 t</span>.value1.=.<span.class="t
7a7e0 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 ok-kw">if</span>.(b).<span.class
7a800 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
7a820 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 2f 73 70 n>.<span.class="tok-kw">else</sp
7a840 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 61 an>.<span.class="tok-builtin">@a
7a860 73 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 s</span>([]<span.class="tok-kw">
7a880 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
7a8a0 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 2d pe">u8</span>,.<span.class="tok-
7a8c0 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 3b 0a 20 20 20 str">&quot;zz&quot;</span>);....
7a8e0 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
7a900 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 6b 2d 6b 77 22 n>.value2.=.<span.class="tok-kw"
7a920 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 62 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >if</span>.(b).<span.class="tok-
7a940 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 builtin">@as</span>([]<span.clas
7a960 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
7a980 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.
7a9a0 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 2f class="tok-str">&quot;zz&quot;</
7a9c0 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 65 span>).<span.class="tok-kw">else
7a9e0 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
7aa00 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 3c 73 70 61 6e uot;aoeu&quot;</span>;.....<span
7aa20 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 65 78 70 65 63 .class="tok-kw">try</span>.expec
7aa40 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 22 t(mem.eql(<span.class="tok-type"
7aa60 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 3d >u8</span>,.value1,.<span.class=
7aa80 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 6e "tok-str">&quot;aoeu&quot;</span
7aaa0 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 22 3e 74 72 >));.....<span.class="tok-kw">tr
7aac0 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 65 6d 2e 65 71 6c 28 3c 73 70 61 6e 20 63 6c y</span>.expect(mem.eql(<span.cl
7aae0 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 32 ass="tok-type">u8</span>,.value2
7ab00 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 7a ,.<span.class="tok-str">&quot;zz
7ab20 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 3d &quot;</span>));.}..<span.class=
7ab40 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
7ab60 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 6c ="tok-str">&quot;peer.type.resol
7ab80 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 20 ution:.?T.and.T&quot;</span>.{..
7aba0 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 61 ...<span.class="tok-kw">try</spa
7abc0 6e 3e 20 65 78 70 65 63 74 28 70 65 65 72 54 79 70 65 54 41 6e 64 4f 70 74 69 6f 6e 61 6c 54 28 n>.expect(peerTypeTAndOptionalT(
7abe0 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
7ac00 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 65 n>,.<span.class="tok-null">false
7ac20 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 6e </span>).?.==.<span.class="tok-n
7ac40 75 6d 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 umber">0</span>);.....<span.clas
7ac60 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 65 65 s="tok-kw">try</span>.expect(pee
7ac80 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 22 rTypeTAndOptionalT(<span.class="
7aca0 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 6c tok-null">false</span>,.<span.cl
7acc0 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 3d ass="tok-null">false</span>).?.=
7ace0 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 70 =.<span.class="tok-number">3</sp
7ad00 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 63 an>);.....<span.class="tok-kw">c
7ad20 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 61 6e 20 63 omptime</span>.{.........<span.c
7ad40 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 65 78 70 65 63 74 28 lass="tok-kw">try</span>.expect(
7ad60 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 73 peerTypeTAndOptionalT(<span.clas
7ad80 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 20 s="tok-null">true</span>,.<span.
7ada0 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 3f class="tok-null">false</span>).?
7adc0 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</
7ade0 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 74 6f 6b span>);.........<span.class="tok
7ae00 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 65 65 72 54 79 70 65 54 -kw">try</span>.expect(peerTypeT
7ae20 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 75 AndOptionalT(<span.class="tok-nu
7ae40 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 74 ll">false</span>,.<span.class="t
7ae60 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 61 ok-null">false</span>).?.==.<spa
7ae80 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>);.
7aea0 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 3c ....}.}.<span.class="tok-kw">fn<
7aec0 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 72 /span>.<span.class="tok-fn">peer
7aee0 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 61 TypeTAndOptionalT</span>(c:.<spa
7af00 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 20 n.class="tok-type">bool</span>,.
7af20 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</
7af40 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 75 span>).?<span.class="tok-type">u
7af60 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 74 size</span>.{.....<span.class="t
7af80 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 3c ok-kw">if</span>.(c).{.........<
7afa0 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
7afc0 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 3e >.<span.class="tok-kw">if</span>
7afe0 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 6c .(b).<span.class="tok-null">null
7b000 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
7b020 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 62 75 69 6c 74 69 e</span>.<span.class="tok-builti
7b040 6e 22 3e 40 61 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 74 n">@as</span>(<span.class="tok-t
7b060 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 73 73 3d 22 ype">usize</span>,.<span.class="
7b080 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 7d 0a 0a 20 20 tok-number">0</span>);.....}....
7b0a0 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
7b0c0 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 40 pan>.<span.class="tok-builtin">@
7b0e0 61 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 74 79 70 65 22 as</span>(<span.class="tok-type"
7b100 3e 75 73 69 7a 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 >usize</span>,.<span.class="tok-
7b120 6e 75 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 number">3</span>);.}..<span.clas
7b140 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
7b160 73 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 ss="tok-str">&quot;peer.type.res
7b180 6f 6c 75 74 69 6f 6e 3a 20 2a 5b 30 5d 75 38 20 61 6e 64 20 5b 5d 63 6f 6e 73 74 20 75 38 26 71 olution:.*[0]u8.and.[]const.u8&q
7b1a0 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
7b1c0 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 65 65 72 54 79 70 ok-kw">try</span>.expect(peerTyp
7b1e0 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d eEmptyArrayAndSlice(<span.class=
7b200 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 20 63 6c "tok-null">true</span>,.<span.cl
7b220 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 74 3b 3c 2f 73 70 ass="tok-str">&quot;hi&quot;</sp
7b240 61 6e 3e 29 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 an>).len.==.<span.class="tok-num
7b260 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=
7b280 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 65 65 72 54 "tok-kw">try</span>.expect(peerT
7b2a0 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 6e 20 63 6c 61 73 ypeEmptyArrayAndSlice(<span.clas
7b2c0 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
7b2e0 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 74 3b 3c .class="tok-str">&quot;hi&quot;<
7b300 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 22 74 6f 6b 2d /span>).len.==.<span.class="tok-
7b320 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 number">1</span>);.....<span.cla
7b340 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>.{...
7b360 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 72 79 3c 2f ......<span.class="tok-kw">try</
7b380 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 65 65 72 54 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 span>.expect(peerTypeEmptyArrayA
7b3a0 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
7b3c0 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
7b3e0 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.==.
7b400 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
7b420 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 74 6f 6b 2d 6b 77 22 >);.........<span.class="tok-kw"
7b440 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 65 65 72 54 79 70 65 45 6d 70 74 79 >try</span>.expect(peerTypeEmpty
7b460 41 72 72 61 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 ArrayAndSlice(<span.class="tok-n
7b480 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="
7b4a0 74 6f 6b 2d 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 tok-str">&quot;hi&quot;</span>).
7b4c0 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">
7b4e0 31 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 1</span>);.....}.}.<span.class="
7b500 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
7b520 6f 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 ok-fn">peerTypeEmptyArrayAndSlic
7b540 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 6f 6b 2d 74 79 70 e</span>(a:.<span.class="tok-typ
7b560 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 3c 73 70 61 6e 20 63 e">bool</span>,.slice:.[]<span.c
7b580 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
7b5a0 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 5b 5d 3c .class="tok-type">u8</span>).[]<
7b5c0 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>
7b5e0 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
7b600 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<
7b620 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 61 73 73 /span>.(a).{.........<span.class
7b640 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 26 61 6d 70 3b 5b 5f 5d ="tok-kw">return</span>.&amp;[_]
7b660 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>
7b680 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 22 74 6f 6b 2d {};.....}......<span.class="tok-
7b6a0 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 61 6e 20 63 6c kw">return</span>.slice[<span.cl
7b6c0 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 73 70 61 6e ass="tok-number">0</span>..<span
7b6e0 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 5d 3b 0a 7d .class="tok-number">1</span>];.}
7b700 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
7b720 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 70 65 >.<span.class="tok-str">&quot;pe
7b740 65 72 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 2a 5b 30 5d 75 38 2c 20 5b 5d 63 6f er.type.resolution:.*[0]u8,.[]co
7b760 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 3c nst.u8,.and.anyerror![]u8&quot;<
7b780 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 61 6e 20 63 6c 61 /span>.{.....{.........<span.cla
7b7a0 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 20 3d 20 3c 73 ss="tok-kw">var</span>.data.=.<s
7b7c0 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
7b7e0 74 3b 3c 2f 73 70 61 6e 3e 2e 2a 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 t;</span>.*;.........<span.class
7b800 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 20 3d 20 64 ="tok-kw">const</span>.slice.=.d
7b820 61 74 61 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 ata[<span.class="tok-number">0</
7b840 73 70 61 6e 3e 2e 2e 5d 3b 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
7b860 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 28 3c 73 70 61 6e 20 ok-kw">try</span>.expect((<span.
7b880 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 70 65 65 72 54 79 class="tok-kw">try</span>.peerTy
7b8a0 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 41 6e 64 45 72 72 6f 72 28 3c 73 70 peEmptyArrayAndSliceAndError(<sp
7b8c0 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 2c an.class="tok-null">true</span>,
7b8e0 20 73 6c 69 63 65 29 29 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .slice)).len.==.<span.class="tok
7b900 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 3c 73 70 61 -number">0</span>);.........<spa
7b920 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 65 78 70 65 n.class="tok-kw">try</span>.expe
7b940 63 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 70 ct((<span.class="tok-kw">try</sp
7b960 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 6e an>.peerTypeEmptyArrayAndSliceAn
7b980 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 66 61 dError(<span.class="tok-null">fa
7b9a0 6c 73 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 lse</span>,.slice)).len.==.<span
7b9c0 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>);..
7b9e0 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 63 6f ...}.....<span.class="tok-kw">co
7ba00 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 61 6e 20 63 6c mptime</span>.{.........<span.cl
7ba20 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 20 3d 20 3c ass="tok-kw">var</span>.data.=.<
7ba40 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 75 span.class="tok-str">&quot;hi&qu
7ba60 6f 74 3b 3c 2f 73 70 61 6e 3e 2e 2a 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ot;</span>.*;.........<span.clas
7ba80 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 20 3d 20 s="tok-kw">const</span>.slice.=.
7baa0 64 61 74 61 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 data[<span.class="tok-number">0<
7bac0 2f 73 70 61 6e 3e 2e 2e 5d 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 /span>..];.........<span.class="
7bae0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 28 3c 73 70 61 6e tok-kw">try</span>.expect((<span
7bb00 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 70 65 65 72 54 .class="tok-kw">try</span>.peerT
7bb20 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 41 6e 64 45 72 72 6f 72 28 3c 73 ypeEmptyArrayAndSliceAndError(<s
7bb40 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>
7bb60 2c 20 73 6c 69 63 65 29 29 2e 6c 65 6e 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ,.slice)).len.==.<span.class="to
7bb80 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 3c 73 70 k-number">0</span>);.........<sp
7bba0 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 65 78 70 an.class="tok-kw">try</span>.exp
7bbc0 65 63 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 ect((<span.class="tok-kw">try</s
7bbe0 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
7bc00 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 66 ndError(<span.class="tok-null">f
7bc20 61 6c 73 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 alse</span>,.slice)).len.==.<spa
7bc40 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>);.
7bc60 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 3c ....}.}.<span.class="tok-kw">fn<
7bc80 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 72 /span>.<span.class="tok-fn">peer
7bca0 54 79 70 65 45 6d 70 74 79 41 72 72 61 79 41 6e 64 53 6c 69 63 65 41 6e 64 45 72 72 6f 72 3c 2f TypeEmptyArrayAndSliceAndError</
7bcc0 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 3e span>(a:.<span.class="tok-type">
7bce0 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 2c 20 73 6c 69 63 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 bool</span>,.slice:.[]<span.clas
7bd00 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
7bd20 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 21 5b ass="tok-type">anyerror</span>![
7bd40 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
7bd60 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<
7bd80 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 61 73 73 /span>.(a).{.........<span.class
7bda0 3d 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 26 61 6d 70 3b 5b 5f 5d ="tok-kw">return</span>.&amp;[_]
7bdc0 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>
7bde0 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 22 74 6f 6b 2d {};.....}......<span.class="tok-
7be00 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 61 6e 20 63 6c kw">return</span>.slice[<span.cl
7be20 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 73 70 61 6e ass="tok-number">0</span>..<span
7be40 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 5d 3b 0a 7d .class="tok-number">1</span>];.}
7be60 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
7be80 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 70 n>.<span.class="tok-str">&quot;p
7bea0 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 20 54 20 61 6e eer.type.resolution:.*const.T.an
7bec0 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 70 61 6e 20 63 d.?*T&quot;</span>.{.....<span.c
7bee0 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 2a 3c lass="tok-kw">const</span>.a:.*<
7bf00 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>
7bf20 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
7bf40 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 75 69 6c 74 69 6e 22 pan>.=.<span.class="tok-builtin"
7bf60 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d >@ptrFromInt</span>(<span.class=
7bf80 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 31 32 33 34 35 36 37 38 30 3c 2f 73 70 61 6e 3e 29 "tok-number">0x123456780</span>)
7bfa0 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
7bfc0 3c 2f 73 70 61 6e 3e 20 62 3a 20 3f 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 </span>.b:.?*<span.class="tok-ty
7bfe0 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="
7c000 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 tok-builtin">@ptrFromInt</span>(
7c020 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 35 <span.class="tok-number">0x12345
7c040 36 37 38 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 22 74 6780</span>);.....<span.class="t
7c060 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 20 3d 3d 20 62 29 ok-kw">try</span>.expect(a.==.b)
7c080 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
7c0a0 73 70 61 6e 3e 20 65 78 70 65 63 74 28 62 20 3d 3d 20 61 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 span>.expect(b.==.a);.}..<span.c
7c0c0 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.
7c0e0 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 74 79 70 65 20 class="tok-str">&quot;peer.type.
7c100 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 73 77 69 74 63 68 26 71 resolution:.error.union.switch&q
7c120 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
7c140 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 6e 6f 6e 2d 65 72 72 6f 72 20 61 6e 64 ok-comment">//.The.non-error.and
7c160 20 65 72 72 6f 72 20 63 61 73 65 73 20 61 72 65 20 6f 6e 6c 79 20 70 65 65 72 73 20 69 66 20 74 .error.cases.are.only.peers.if.t
7c180 68 65 20 65 72 72 6f 72 20 63 61 73 65 20 69 73 20 6a 75 73 74 20 61 20 73 77 69 74 63 68 20 65 he.error.case.is.just.a.switch.e
7c1a0 78 70 72 65 73 73 69 6f 6e 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 xpression;</span>.....<span.clas
7c1c0 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 70 61 74 74 65 72 6e 20 60 s="tok-comment">//.the.pattern.`
7c1e0 69 66 20 28 78 29 20 7b 2e 2e 2e 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 62 6c 6b 3a 20 7b 20 73 if.(x).{...}.else.|err|.blk:.{.s
7c200 77 69 74 63 68 20 28 65 72 72 29 20 7b 2e 2e 2e 7d 20 7d 60 20 64 6f 65 73 20 6e 6f 74 20 63 6f witch.(err).{...}.}`.does.not.co
7c220 6e 73 69 64 65 72 20 74 68 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 nsider.the</span>.....<span.clas
7c240 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6e 6f 6e 2d 65 72 72 6f 72 20 61 6e 64 s="tok-comment">//.non-error.and
7c260 20 65 72 72 6f 72 20 63 61 73 65 20 74 6f 20 62 65 20 70 65 65 72 73 2e 3c 2f 73 70 61 6e 3e 0a .error.case.to.be.peers.</span>.
7c280 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
7c2a0 61 6e 3e 20 61 3a 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 an>.a:.<span.class="tok-kw">erro
7c2c0 72 3c 2f 73 70 61 6e 3e 7b 20 41 2c 20 42 2c 20 43 20 7d 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d r</span>{.A,.B,.C.}!<span.class=
7c2e0 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
7c300 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 5f ass="tok-number">0</span>;....._
7c320 20 3d 20 26 61 6d 70 3b 61 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .=.&amp;a;.....<span.class="tok-
7c340 6b 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 kw">const</span>.b.=.<span.class
7c360 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 78 7c 0a 20 20 20 20 ="tok-kw">if</span>.(a).|x|.....
7c380 20 20 20 20 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 22 ....x.+.<span.class="tok-number"
7c3a0 3e 33 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 >3</span>.....<span.class="tok-k
7c3c0 77 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 w">else</span>.|err|.<span.class
7c3e0 3d 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 ="tok-kw">switch</span>.(err).{.
7c400 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 72 72 ........<span.class="tok-kw">err
7c420 6f 72 3c 2f 73 70 61 6e 3e 2e 41 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 or</span>.A.=&gt;.<span.class="t
7c440 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 ok-number">0</span>,.........<sp
7c460 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 42 an.class="tok-kw">error</span>.B
7c480 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 6d 62 65 72 22 3e .=&gt;.<span.class="tok-number">
7c4a0 31 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 3d 22 74 1</span>,.........<span.class="t
7c4c0 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 43 20 3d 26 67 74 3b 20 3c 73 70 61 ok-kw">error</span>.C.=&gt;.<spa
7c4e0 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 2c 0a n.class="tok-null">null</span>,.
7c500 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 3e ....};.....<span.class="tok-kw">
7c520 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 try</span>.expect(<span.class="t
7c540 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 62 29 20 3d 3d ok-builtin">@TypeOf</span>(b).==
7c560 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 32 3c 2f 73 70 .?<span.class="tok-type">u32</sp
7c580 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 63 6f 6d 6d an>);......<span.class="tok-comm
7c5a0 65 6e 74 22 3e 2f 2f 20 54 68 65 20 6e 6f 6e 2d 65 72 72 6f 72 20 61 6e 64 20 65 72 72 6f 72 20 ent">//.The.non-error.and.error.
7c5c0 63 61 73 65 73 20 61 72 65 20 6f 6e 6c 79 20 70 65 65 72 73 20 69 66 20 74 68 65 20 65 72 72 6f cases.are.only.peers.if.the.erro
7c5e0 72 20 63 61 73 65 20 69 73 20 6a 75 73 74 20 61 20 73 77 69 74 63 68 20 65 78 70 72 65 73 73 69 r.case.is.just.a.switch.expressi
7c600 6f 6e 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 6f 6b 2d on;</span>.....<span.class="tok-
7c620 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 70 61 74 74 65 72 6e 20 60 78 20 63 61 74 63 68 comment">//.the.pattern.`x.catch
7c640 20 7c 65 72 72 7c 20 62 6c 6b 3a 20 7b 20 73 77 69 74 63 68 20 28 65 72 72 29 20 7b 2e 2e 2e 7d .|err|.blk:.{.switch.(err).{...}
7c660 20 7d 60 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 75 6e 77 72 61 70 .}`.does.not.consider.the.unwrap
7c680 70 65 64 20 60 78 60 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 ped.`x`</span>.....<span.class="
7c6a0 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 61 6e 64 20 65 72 72 6f 72 20 63 61 73 65 20 74 tok-comment">//.and.error.case.t
7c6c0 6f 20 62 65 20 70 65 65 72 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 o.be.peers.</span>.....<span.cla
7c6e0 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 20 3d 20 61 20 3c ss="tok-kw">const</span>.c.=.a.<
7c700 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 3e span.class="tok-kw">catch</span>
7c720 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 22 3e 73 77 69 74 .|err|.<span.class="tok-kw">swit
7c740 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 3c 73 70 61 6e 20 ch</span>.(err).{.........<span.
7c760 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 41 20 3d 26 class="tok-kw">error</span>.A.=&
7c780 67 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 30 3c 2f gt;.<span.class="tok-number">0</
7c7a0 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 3d 22 74 6f 6b 2d span>,.........<span.class="tok-
7c7c0 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 42 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 kw">error</span>.B.=&gt;.<span.c
7c7e0 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 0a 20 20 20 20 lass="tok-number">1</span>,.....
7c800 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 72 3c 2f ....<span.class="tok-kw">error</
7c820 73 70 61 6e 3e 2e 43 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 span>.C.=&gt;.<span.class="tok-n
7c840 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 3c 73 70 ull">null</span>,.....};.....<sp
7c860 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 65 78 70 an.class="tok-kw">try</span>.exp
7c880 65 63 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 54 ect(<span.class="tok-builtin">@T
7c8a0 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 63 29 20 3d 3d 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d ypeOf</span>(c).==.?<span.class=
7c8c0 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 64 65 3e "tok-type">u32</span>);.}</code>
7c8e0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 </pre></figure><figure><figcapti
7c900 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 on.class="shell-cap">Shell</figc
7c920 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 aption><pre><samp>$.<kbd>zig.tes
7c940 74 20 74 65 73 74 5f 70 65 65 72 5f 74 79 70 65 5f 72 65 73 6f 6c 75 74 69 6f 6e 2e 7a 69 67 3c t.test_peer_type_resolution.zig<
7c960 2f 6b 62 64 3e 0a 31 2f 38 20 74 65 73 74 5f 70 65 65 72 5f 74 79 70 65 5f 72 65 73 6f 6c 75 74 /kbd>.1/8.test_peer_type_resolut
7c980 69 6f 6e 2e 74 65 73 74 2e 70 65 65 72 20 72 65 73 6f 6c 76 65 20 69 6e 74 20 77 69 64 65 6e 69 ion.test.peer.resolve.int.wideni
7c9a0 6e 67 2e 2e 2e 20 4f 4b 0a 32 2f 38 20 74 65 73 74 5f 70 65 65 72 5f 74 79 70 65 5f 72 65 73 6f ng....OK.2/8.test_peer_type_reso
7c9c0 6c 75 74 69 6f 6e 2e 74 65 73 74 2e 70 65 65 72 20 72 65 73 6f 6c 76 65 20 61 72 72 61 79 73 20 lution.test.peer.resolve.arrays.
7c9e0 6f 66 20 64 69 66 66 65 72 65 6e 74 20 73 69 7a 65 20 74 6f 20 63 6f 6e 73 74 20 73 6c 69 63 65 of.different.size.to.const.slice
7ca00 2e 2e 2e 20 4f 4b 0a 33 2f 38 20 74 65 73 74 5f 70 65 65 72 5f 74 79 70 65 5f 72 65 73 6f 6c 75 ....OK.3/8.test_peer_type_resolu
7ca20 74 69 6f 6e 2e 74 65 73 74 2e 70 65 65 72 20 72 65 73 6f 6c 76 65 20 61 72 72 61 79 20 61 6e 64 tion.test.peer.resolve.array.and
7ca40 20 63 6f 6e 73 74 20 73 6c 69 63 65 2e 2e 2e 20 4f 4b 0a 34 2f 38 20 74 65 73 74 5f 70 65 65 72 .const.slice....OK.4/8.test_peer
7ca60 5f 74 79 70 65 5f 72 65 73 6f 6c 75 74 69 6f 6e 2e 74 65 73 74 2e 70 65 65 72 20 74 79 70 65 20 _type_resolution.test.peer.type.
7ca80 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 3f 54 20 61 6e 64 20 54 2e 2e 2e 20 4f 4b 0a 35 2f 38 20 74 resolution:.?T.and.T....OK.5/8.t
7caa0 65 73 74 5f 70 65 65 72 5f 74 79 70 65 5f 72 65 73 6f 6c 75 74 69 6f 6e 2e 74 65 73 74 2e 70 65 est_peer_type_resolution.test.pe
7cac0 65 72 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 2a 5b 30 5d 75 38 20 61 6e 64 20 5b er.type.resolution:.*[0]u8.and.[
7cae0 5d 63 6f 6e 73 74 20 75 38 2e 2e 2e 20 4f 4b 0a 36 2f 38 20 74 65 73 74 5f 70 65 65 72 5f 74 79 ]const.u8....OK.6/8.test_peer_ty
7cb00 70 65 5f 72 65 73 6f 6c 75 74 69 6f 6e 2e 74 65 73 74 2e 70 65 65 72 20 74 79 70 65 20 72 65 73 pe_resolution.test.peer.type.res
7cb20 6f 6c 75 74 69 6f 6e 3a 20 2a 5b 30 5d 75 38 2c 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 20 61 6e 64 olution:.*[0]u8,.[]const.u8,.and
7cb40 20 61 6e 79 65 72 72 6f 72 21 5b 5d 75 38 2e 2e 2e 20 4f 4b 0a 37 2f 38 20 74 65 73 74 5f 70 65 .anyerror![]u8....OK.7/8.test_pe
7cb60 65 72 5f 74 79 70 65 5f 72 65 73 6f 6c 75 74 69 6f 6e 2e 74 65 73 74 2e 70 65 65 72 20 74 79 70 er_type_resolution.test.peer.typ
7cb80 65 20 72 65 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 2e 2e e.resolution:.*const.T.and.?*T..
7cba0 2e 20 4f 4b 0a 38 2f 38 20 74 65 73 74 5f 70 65 65 72 5f 74 79 70 65 5f 72 65 73 6f 6c 75 74 69 ..OK.8/8.test_peer_type_resoluti
7cbc0 6f 6e 2e 74 65 73 74 2e 70 65 65 72 20 74 79 70 65 20 72 65 73 6f 6c 75 74 69 6f 6e 3a 20 65 72 on.test.peer.type.resolution:.er
7cbe0 72 6f 72 20 75 6e 69 6f 6e 20 73 77 69 74 63 68 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 38 20 74 65 73 ror.union.switch....OK.All.8.tes
7cc00 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ts.passed..</samp></pre></figure
7cc20 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 32 20 69 64 3d 22 5a >......................<h2.id="Z
7cc40 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d ero-Bit-Types"><a.href="nav.xhtm
7cc60 6c 23 74 6f 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 l#toc-Zero-Bit-Types">Zero.Bit.T
7cc80 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 5a ypes</a>.<a.class="hdr".href="#Z
7cca0 65 72 6f 2d 42 69 74 2d 54 79 70 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 ero-Bit-Types">..</a></h2>......
7ccc0 20 20 3c 70 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 ..<p>For.some.types,.<a.href="#s
7cce0 69 7a 65 4f 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 izeOf">@sizeOf</a>.is.0:</p>....
7cd00 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 66 3d 22 23 ...<ul>...........<li><a.href="#
7cd20 76 6f 69 64 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 void">void</a></li>...........<l
7cd40 69 3e 54 68 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 i>The.<a.href="#Integers">Intege
7cd60 72 73 3c 2f 61 3e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 rs</a>.<code><span.class="tok-ty
7cd80 70 65 22 3e 75 30 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 3c pe">u0</span></code>.and.<code><
7cda0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 30 3c 2f 73 70 61 6e 3e 3c span.class="tok-type">i0</span><
7cdc0 2f 63 6f 64 65 3e 2e 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 /code>.</li>...........<li><a.hr
7cde0 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 20 3c 61 20 68 ef="#Arrays">Arrays</a>.and.<a.h
7ce00 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 77 69 74 68 20 ref="#Vectors">Vectors</a>.with.
7ce20 6c 65 6e 20 30 2c 20 6f 72 20 77 69 74 68 20 61 6e 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 20 74 len.0,.or.with.an.element.type.t
7ce40 68 61 74 20 69 73 20 61 20 7a 65 72 6f 20 62 69 74 20 74 79 70 65 2e 3c 2f 6c 69 3e 0a 20 20 20 hat.is.a.zero.bit.type.</li>....
7ce60 20 20 20 20 20 20 20 3c 6c 69 3e 41 6e 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e .......<li>An.<a.href="#enum">en
7ce80 75 6d 3c 2f 61 3e 20 77 69 74 68 20 6f 6e 6c 79 20 31 20 74 61 67 2e 3c 2f 6c 69 3e 0a 20 20 20 um</a>.with.only.1.tag.</li>....
7cea0 20 20 20 20 20 20 20 3c 6c 69 3e 41 20 3c 61 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 .......<li>A.<a.href="#struct">s
7cec0 74 72 75 63 74 3c 2f 61 3e 20 77 69 74 68 20 61 6c 6c 20 66 69 65 6c 64 73 20 62 65 69 6e 67 20 truct</a>.with.all.fields.being.
7cee0 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 20 20 20 20 20 20 3c zero.bit.types.</li>...........<
7cf00 6c 69 3e 41 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 li>A.<a.href="#union">union</a>.
7cf20 77 69 74 68 20 6f 6e 6c 79 20 31 20 66 69 65 6c 64 20 77 68 69 63 68 20 69 73 20 61 20 7a 65 72 with.only.1.field.which.is.a.zer
7cf40 6f 20 62 69 74 20 74 79 70 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 o.bit.type.</li>.......</ul>....
7cf60 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 74 79 70 65 73 20 63 61 6e 20 6f 6e 6c ...<p>.......These.types.can.onl
7cf80 79 20 65 76 65 72 20 68 61 76 65 20 6f 6e 65 20 70 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 2c 20 y.ever.have.one.possible.value,.
7cfa0 61 6e 64 20 74 68 75 73 0a 20 20 20 20 20 20 72 65 71 75 69 72 65 20 30 20 62 69 74 73 20 74 6f and.thus.......require.0.bits.to
7cfc0 20 72 65 70 72 65 73 65 6e 74 2e 20 43 6f 64 65 20 74 68 61 74 20 6d 61 6b 65 73 20 75 73 65 20 .represent..Code.that.makes.use.
7cfe0 6f 66 20 74 68 65 73 65 20 74 79 70 65 73 20 69 73 0a 20 20 20 20 20 20 6e 6f 74 20 69 6e 63 6c of.these.types.is.......not.incl
7d000 75 64 65 64 20 69 6e 20 74 68 65 20 66 69 6e 61 6c 20 67 65 6e 65 72 61 74 65 64 20 63 6f 64 65 uded.in.the.final.generated.code
7d020 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 :.......</p>.......<figure><figc
7d040 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 aption.class="zig-cap"><cite.cla
7d060 73 73 3d 22 66 69 6c 65 22 3e 7a 65 72 6f 5f 62 69 74 5f 74 79 70 65 73 2e 7a 69 67 3c 2f 63 69 ss="file">zero_bit_types.zig</ci
7d080 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
7d0a0 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 20 3c 73 .class="tok-kw">export</span>.<s
7d0c0 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
7d0e0 61 6e 20 63 6c 61 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 an.class="tok-fn">entry</span>()
7d100 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 70 .<span.class="tok-type">void</sp
7d120 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
7d140 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 74 79 ar</span>.x:.<span.class="tok-ty
7d160 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 6e 20 pe">void</span>.=.{};.....<span.
7d180 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 3c 73 70 class="tok-kw">var</span>.y:.<sp
7d1a0 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>.
7d1c0 3d 20 7b 7d 3b 0a 20 20 20 20 78 20 3d 20 79 3b 0a 20 20 20 20 79 20 3d 20 78 3b 0a 7d 3c 2f 63 =.{};.....x.=.y;.....y.=.x;.}</c
7d1e0 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 57 68 65 ode></pre></figure>.......<p>Whe
7d200 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 63 6f 64 65 2c 20 n.this.turns.into.machine.code,.
7d220 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 20 69 6e 20 74 68 there.is.no.code.generated.in.th
7d240 65 0a 20 20 20 20 20 20 62 6f 64 79 20 6f 66 20 3c 63 6f 64 65 3e 65 6e 74 72 79 3c 2f 63 6f 64 e.......body.of.<code>entry</cod
7d260 65 3e 2c 20 65 76 65 6e 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 44 65 62 75 67 22 3e 44 65 62 e>,.even.in.<a.href="#Debug">Deb
7d280 75 67 3c 2f 61 3e 20 6d 6f 64 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6f 6e 20 78 38 36 ug</a>.mode..For.example,.on.x86
7d2a0 5f 36 34 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 30 30 30 30 30 30 _64:</p>.......<pre><code>000000
7d2c0 30 30 30 30 30 30 30 30 31 30 20 26 6c 74 3b 65 6e 74 72 79 26 67 74 3b 3a 0a 20 20 31 30 3a 09 0000000010.&lt;entry&gt;:...10:.
7d2e0 35 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 70 75 73 68 20 20 20 25 72 62 55....................push...%rb
7d300 70 0a 20 20 31 31 3a 09 34 38 20 38 39 20 65 35 20 20 20 20 20 20 20 20 20 20 20 20 20 09 6d 6f p...11:.48.89.e5..............mo
7d320 76 20 20 20 20 25 72 73 70 2c 25 72 62 70 0a 20 20 31 34 3a 09 35 64 20 20 20 20 20 20 20 20 20 v....%rsp,%rbp...14:.5d.........
7d340 20 20 20 20 20 20 20 20 20 20 09 70 6f 70 20 20 20 20 25 72 62 70 0a 20 20 31 35 3a 09 63 33 20 ...........pop....%rbp...15:.c3.
7d360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 72 65 74 71 20 20 20 3c 2f 63 6f 64 65 ...................retq...</code
7d380 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 73 65 20 61 73 73 65 6d 62 6c 79 20 ></pre>.......<p>These.assembly.
7d3a0 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 63 6f 64 instructions.do.not.have.any.cod
7d3c0 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 76 6f 69 64 20 76 61 6c 75 65 e.associated.with.the.void.value
7d3e0 73 20 2d 0a 20 20 20 20 20 20 74 68 65 79 20 6f 6e 6c 79 20 70 65 72 66 6f 72 6d 20 74 68 65 20 s.-.......they.only.perform.the.
7d400 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 70 72 6f 6c 6f 67 75 65 20 61 6e 64 20 65 70 69 6c 6f function.call.prologue.and.epilo
7d420 67 75 65 2e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 76 6f 69 64 22 3e 3c 61 gue.</p>........<h3.id="void"><a
7d440 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 76 6f 69 64 22 3e 76 6f 69 64 3c .href="nav.xhtml#toc-void">void<
7d460 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 76 6f 69 64 22 3e /a>.<a.class="hdr".href="#void">
7d480 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 3c 63 6f ..</a></h3>........<p>.......<co
7d4a0 64 65 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 64 3c 2f de><span.class="tok-type">void</
7d4c0 73 70 61 6e 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 69 span></code>.can.be.useful.for.i
7d4e0 6e 73 74 61 6e 74 69 61 74 69 6e 67 20 67 65 6e 65 72 69 63 20 74 79 70 65 73 2e 20 46 6f 72 20 nstantiating.generic.types..For.
7d500 65 78 61 6d 70 6c 65 2c 20 67 69 76 65 6e 20 61 0a 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 example,.given.a...........<code
7d520 3e 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 >Map(Key,.Value)</code>,.one.can
7d540 20 70 61 73 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 .pass.<code><span.class="tok-typ
7d560 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 6f 72 20 74 68 65 20 3c 63 e">void</span></code>.for.the.<c
7d580 6f 64 65 3e 56 61 6c 75 65 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ode>Value</code>................
7d5a0 20 20 20 20 20 20 20 74 79 70 65 20 74 6f 20 6d 61 6b 65 20 69 74 20 69 6e 74 6f 20 61 20 3c 63 .......type.to.make.it.into.a.<c
7d5c0 6f 64 65 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 20 20 20 ode>Set</code>:.......</p>......
7d5e0 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d .<figure><figcaption.class="zig-
7d600 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 76 6f 69 cap"><cite.class="file">test_voi
7d620 64 5f 69 6e 5f 68 61 73 68 6d 61 70 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 d_in_hashmap.zig</cite></figcapt
7d640 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ion><pre><code><span.class="tok-
7d660 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
7d680 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>(
7d6a0 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&
7d6c0 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 2d quot;</span>);.<span.class="tok-
7d6e0 6b 77 22 3e 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 kw">const</span>.expect.=.std.te
7d700 73 74 69 6e 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 sting.expect;..<span.class="tok-
7d720 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
7d740 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 6e 74 6f 20 61 20 -str">&quot;turn.HashMap.into.a.
7d760 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 20 7b 0a 20 20 20 set.with.void&quot;</span>.{....
7d780 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>
7d7a0 20 6d 61 70 20 3d 20 73 74 64 2e 41 75 74 6f 48 61 73 68 4d 61 70 28 3c 73 70 61 6e 20 63 6c 61 .map.=.std.AutoHashMap(<span.cla
7d7c0 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 6e 20 ss="tok-type">i32</span>,.<span.
7d7e0 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 2e 69 6e class="tok-type">void</span>).in
7d800 69 74 28 73 74 64 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 29 3b 0a 20 20 20 20 3c it(std.testing.allocator);.....<
7d820 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>
7d840 20 6d 61 70 2e 64 65 69 6e 69 74 28 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .map.deinit();......<span.class=
7d860 22 74 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 "tok-kw">try</span>.map.put(<spa
7d880 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 7b n.class="tok-number">1</span>,.{
7d8a0 7d 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 74 72 79 });.....<span.class="tok-kw">try
7d8c0 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 6f 6b </span>.map.put(<span.class="tok
7d8e0 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 3c 73 70 -number">2</span>,.{});......<sp
7d900 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 65 78 70 an.class="tok-kw">try</span>.exp
7d920 65 63 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 74 6f ect(map.contains(<span.class="to
7d940 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 3c 73 70 61 6e 20 k-number">2</span>));.....<span.
7d960 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
7d980 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 6b 2d (!map.contains(<span.class="tok-
7d9a0 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 61 70 number">3</span>));......_.=.map
7d9c0 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 72 22 .remove(<span.class="tok-number"
7d9e0 3e 32 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 >2</span>);.....<span.class="tok
7da00 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 21 6d 61 70 2e 63 6f 6e 74 -kw">try</span>.expect(!map.cont
7da20 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 32 3c ains(<span.class="tok-number">2<
7da40 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 2f 66 69 67 75 72 65 /span>));.}</code></pre></figure
7da60 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
7da80 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
7daa0 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 76 6f 69 64 5f 69 6e amp>$.<kbd>zig.test.test_void_in
7dac0 5f 68 61 73 68 6d 61 70 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 76 6f 69 64 _hashmap.zig</kbd>.1/1.test_void
7dae0 5f 69 6e 5f 68 61 73 68 6d 61 70 2e 74 65 73 74 2e 74 75 72 6e 20 48 61 73 68 4d 61 70 20 69 6e _in_hashmap.test.turn.HashMap.in
7db00 74 6f 20 61 20 73 65 74 20 77 69 74 68 20 76 6f 69 64 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 to.a.set.with.void....OK.All.1.t
7db20 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 ests.passed..</samp></pre></figu
7db40 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 69 73 20 64 re>.......<p>Note.that.this.is.d
7db60 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 75 73 69 6e 67 20 61 20 64 75 6d 6d 79 20 76 61 6c 75 ifferent.from.using.a.dummy.valu
7db80 65 20 66 6f 72 20 74 68 65 20 68 61 73 68 20 6d 61 70 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 e.for.the.hash.map.value........
7dba0 42 79 20 75 73 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d By.using.<code><span.class="tok-
7dbc0 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 61 73 20 74 68 65 20 type">void</span></code>.as.the.
7dbe0 74 79 70 65 20 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 type.of.the.value,.the.hash.map.
7dc00 65 6e 74 72 79 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 entry.type.has.no.value.field,.a
7dc20 6e 64 0a 20 20 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 nd.......thus.the.hash.map.takes
7dc40 20 75 70 20 6c 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 .up.less.space..Further,.all.the
7dc60 20 63 6f 64 65 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 .code.that.deals.with.storing.an
7dc80 64 20 6c 6f 61 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 d.loading.the.......value.is.del
7dca0 65 74 65 64 2c 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 eted,.as.seen.above........</p>.
7dcc0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 ......<p>.......<code><span.clas
7dce0 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>.
7dd00 69 73 20 64 69 73 74 69 6e 63 74 20 66 72 6f 6d 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 is.distinct.from.<code><span.cla
7dd20 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 6f 70 61 71 75 65 3c 2f 73 70 61 6e 3e 3c 2f ss="tok-type">anyopaque</span></
7dd40 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 code>........<code><span.class="
7dd60 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 68 61 73 tok-type">void</span></code>.has
7dd80 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 6e 64 20 3c 63 .a.known.size.of.0.bytes,.and.<c
7dda0 6f 64 65 3e 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 6f 70 ode><span.class="tok-type">anyop
7ddc0 61 71 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 61 6e 20 75 6e 6b 6e 6f 77 aque</span></code>.has.an.unknow
7dde0 6e 2c 20 62 75 74 20 6e 6f 6e 2d 7a 65 72 6f 2c 20 73 69 7a 65 2e 0a 20 20 20 20 20 20 3c 2f 70 n,.but.non-zero,.size........</p
7de00 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 70 72 65 73 73 69 6f 6e 73 20 6f 66 >.......<p>.......Expressions.of
7de20 20 74 79 70 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 .type.<code><span.class="tok-typ
7de40 65 22 3e 76 6f 69 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 e">void</span></code>.are.the.on
7de60 6c 79 20 6f 6e 65 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 ly.ones.whose.value.can.be.ignor
7de80 65 64 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 67 6e 6f 72 69 6e 67 0a 20 20 20 20 20 20 ed..For.example,.ignoring.......
7dea0 61 20 6e 6f 6e 2d 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 a.non-<code><span.class="tok-typ
7dec0 65 22 3e 76 6f 69 64 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 e">void</span></code>.expression
7dee0 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a .is.a.compile.error:.......</p>.
7df00 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d ......<figure><figcaption.class=
7df20 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 "zig-cap"><cite.class="file">tes
7df40 74 5f 65 78 70 72 65 73 73 69 6f 6e 5f 69 67 6e 6f 72 65 64 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c t_expression_ignored.zig</cite><
7df60 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /figcaption><pre><code><span.cla
7df80 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
7dfa0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 69 67 6e 6f 72 69 6e 67 20 65 78 70 ass="tok-str">&quot;ignoring.exp
7dfc0 72 65 73 73 69 6f 6e 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 ression.value&quot;</span>.{....
7dfe0 20 66 6f 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 .foo();.}..<span.class="tok-kw">
7e000 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 66 fn</span>.<span.class="tok-fn">f
7e020 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 6b 2d 74 79 70 oo</span>().<span.class="tok-typ
7e040 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 3d e">i32</span>.{.....<span.class=
7e060 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
7e080 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 7d 3c 2f ss="tok-number">1234</span>;.}</
7e0a0 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
7e0c0 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
7e0e0 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
7e100 67 20 74 65 73 74 20 74 65 73 74 5f 65 78 70 72 65 73 73 69 6f 6e 5f 69 67 6e 6f 72 65 64 2e 7a g.test.test_expression_ignored.z
7e120 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f ig</kbd>.<span.class="sgr-1m">do
7e140 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 78 70 72 65 73 73 69 6f 6e 5f 69 67 6e 6f 72 65 64 cgen_tmp/test_expression_ignored
7e160 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 73 3d 22 73 67 .zig:2:8:.</span><span.class="sg
7e180 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 r-31m">error:.</span><span.class
7e1a0 3d 22 73 67 72 2d 31 6d 22 3e 76 61 6c 75 65 20 6f 66 20 74 79 70 65 20 27 69 33 32 27 20 69 67 ="sgr-1m">value.of.type.'i32'.ig
7e1c0 6e 6f 72 65 64 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 66 6f 6f 28 29 3b 0a 20 20 20 20 3c 73 70 61 nored.</span>....foo();.....<spa
7e1e0 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e 7e 5e 7e 0a 3c 2f 73 70 61 6e 3e 3c n.class="sgr-32m">~~~^~.</span><
7e200 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 span.class="sgr-1m">docgen_tmp/t
7e220 65 73 74 5f 65 78 70 72 65 73 73 69 6f 6e 5f 69 67 6e 6f 72 65 64 2e 7a 69 67 3a 32 3a 38 3a 20 est_expression_ignored.zig:2:8:.
7e240 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 </span><span.class="sgr-36m">not
7e260 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 61 e:.</span><span.class="sgr-1m">a
7e280 6c 6c 20 6e 6f 6e 2d 76 6f 69 64 20 76 61 6c 75 65 73 20 6d 75 73 74 20 62 65 20 75 73 65 64 0a ll.non-void.values.must.be.used.
7e2a0 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 </span><span.class="sgr-1m">docg
7e2c0 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 65 78 70 72 65 73 73 69 6f 6e 5f 69 67 6e 6f 72 65 64 2e 7a en_tmp/test_expression_ignored.z
7e2e0 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 73 3d 22 73 67 72 2d ig:2:8:.</span><span.class="sgr-
7e300 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 36m">note:.</span><span.class="s
7e320 67 72 2d 31 6d 22 3e 74 68 69 73 20 65 72 72 6f 72 20 63 61 6e 20 62 65 20 73 75 70 70 72 65 73 gr-1m">this.error.can.be.suppres
7e340 73 65 64 20 62 79 20 61 73 73 69 67 6e 69 6e 67 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 27 5f sed.by.assigning.the.value.to.'_
7e360 27 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e '.</span>.</samp></pre></figure>
7e380 0a 20 20 20 20 20 20 3c 70 3e 48 6f 77 65 76 65 72 2c 20 69 66 20 74 68 65 20 65 78 70 72 65 73 .......<p>However,.if.the.expres
7e3a0 73 69 6f 6e 20 68 61 73 20 74 79 70 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d sion.has.type.<code><span.class=
7e3c0 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 2c 20 74 "tok-type">void</span></code>,.t
7e3e0 68 65 72 65 20 77 69 6c 6c 20 62 65 20 6e 6f 20 65 72 72 6f 72 2e 20 45 78 70 72 65 73 73 69 6f here.will.be.no.error..Expressio
7e400 6e 20 72 65 73 75 6c 74 73 20 63 61 6e 20 62 65 20 65 78 70 6c 69 63 69 74 6c 79 20 69 67 6e 6f n.results.can.be.explicitly.igno
7e420 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 3e 5f red.by.assigning.them.to.<code>_
7e440 3c 2f 63 6f 64 65 3e 2e 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 </code>..</p>.......<figure><fig
7e460 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c caption.class="zig-cap"><cite.cl
7e480 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 76 6f 69 64 5f 69 67 6e 6f 72 65 64 2e 7a 69 67 ass="file">test_void_ignored.zig
7e4a0 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c </cite></figcaption><pre><code><
7e4c0 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>.
7e4e0 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 6f 69 64 <span.class="tok-str">&quot;void
7e500 20 69 73 20 69 67 6e 6f 72 65 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 72 .is.ignored&quot;</span>.{.....r
7e520 65 74 75 72 6e 73 56 6f 69 64 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f eturnsVoid();.}..<span.class="to
7e540 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
7e560 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 65 78 70 6c 69 63 69 74 6c 79 20 69 67 6e 6f 72 69 6e ok-str">&quot;explicitly.ignorin
7e580 67 20 65 78 70 72 65 73 73 69 6f 6e 20 76 61 6c 75 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 g.expression.value&quot;</span>.
7e5a0 7b 0a 20 20 20 20 5f 20 3d 20 66 6f 6f 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d {....._.=.foo();.}..<span.class=
7e5c0 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="
7e5e0 74 6f 6b 2d 66 6e 22 3e 72 65 74 75 72 6e 73 56 6f 69 64 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 tok-fn">returnsVoid</span>().<sp
7e600 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>.
7e620 7b 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
7e640 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
7e660 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 33 32 3c n>().<span.class="tok-type">i32<
7e680 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
7e6a0 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
7e6c0 2d 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 -number">1234</span>;.}</code></
7e6e0 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e pre></figure><figure><figcaption
7e700 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 .class="shell-cap">Shell</figcap
7e720 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 tion><pre><samp>$.<kbd>zig.test.
7e740 74 65 73 74 5f 76 6f 69 64 5f 69 67 6e 6f 72 65 64 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 test_void_ignored.zig</kbd>.1/2.
7e760 74 65 73 74 5f 76 6f 69 64 5f 69 67 6e 6f 72 65 64 2e 74 65 73 74 2e 76 6f 69 64 20 69 73 20 69 test_void_ignored.test.void.is.i
7e780 67 6e 6f 72 65 64 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 76 6f 69 64 5f 69 67 6e 6f 72 gnored....OK.2/2.test_void_ignor
7e7a0 65 64 2e 74 65 73 74 2e 65 78 70 6c 69 63 69 74 6c 79 20 69 67 6e 6f 72 69 6e 67 20 65 78 70 72 ed.test.explicitly.ignoring.expr
7e7c0 65 73 73 69 6f 6e 20 76 61 6c 75 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 ession.value....OK.All.2.tests.p
7e7e0 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 assed..</samp></pre></figure>...
7e800 20 20 20 20 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 73 75 6c ...................<h2.id="Resul
7e820 74 2d 4c 6f 63 61 74 69 6f 6e 2d 53 65 6d 61 6e 74 69 63 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e t-Location-Semantics"><a.href="n
7e840 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 65 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 2d 53 65 6d av.xhtml#toc-Result-Location-Sem
7e860 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 6e 74 69 63 antics">Result.Location.Semantic
7e880 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 52 65 73 75 s</a>.<a.class="hdr".href="#Resu
7e8a0 6c 74 2d 4c 6f 63 61 74 69 6f 6e 2d 53 65 6d 61 6e 74 69 63 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 lt-Location-Semantics">..</a></h
7e8c0 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 44 75 72 69 6e 67 20 63 6f 6d 70 69 2>........<p>.......During.compi
7e8e0 6c 61 74 69 6f 6e 2c 20 65 76 65 72 79 20 5a 69 67 20 65 78 70 72 65 73 73 69 6f 6e 20 61 6e 64 lation,.every.Zig.expression.and
7e900 20 73 75 62 2d 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 61 73 73 69 67 6e 65 64 20 6f 70 74 69 .sub-expression.is.assigned.opti
7e920 6f 6e 61 6c 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 0a 20 20 20 20 20 20 69 6e 66 6f 72 onal.result.location.......infor
7e940 6d 61 74 69 6f 6e 2e 20 54 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 64 69 63 74 61 74 65 mation..This.information.dictate
7e960 73 20 77 68 61 74 20 74 79 70 65 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 73 68 6f 75 6c s.what.type.the.expression.shoul
7e980 64 20 68 61 76 65 20 28 69 74 73 20 72 65 73 75 6c 74 20 74 79 70 65 29 2c 20 61 6e 64 0a 20 20 d.have.(its.result.type),.and...
7e9a0 20 20 20 20 77 68 65 72 65 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 76 61 6c 75 65 20 73 68 ....where.the.resulting.value.sh
7e9c0 6f 75 6c 64 20 62 65 20 70 6c 61 63 65 64 20 69 6e 20 6d 65 6d 6f 72 79 20 28 69 74 73 20 72 65 ould.be.placed.in.memory.(its.re
7e9e0 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 29 2e 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 sult.location)..The.information.
7ea00 69 73 0a 20 20 20 20 20 20 6f 70 74 69 6f 6e 61 6c 20 69 6e 20 74 68 65 20 73 65 6e 73 65 20 74 is.......optional.in.the.sense.t
7ea20 68 61 74 20 6e 6f 74 20 65 76 65 72 79 20 65 78 70 72 65 73 73 69 6f 6e 20 68 61 73 20 74 68 69 hat.not.every.expression.has.thi
7ea40 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3a 20 61 73 73 69 67 6e 6d 65 6e 74 20 74 6f 0a 20 20 20 s.information:.assignment.to....
7ea60 20 20 20 3c 63 6f 64 65 3e 5f 3c 2f 63 6f 64 65 3e 2c 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 2c ...<code>_</code>,.for.instance,
7ea80 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 76 69 64 65 20 61 6e 79 20 69 6e 66 6f 72 6d 61 74 69 6f .does.not.provide.any.informatio
7eaa0 6e 20 61 62 6f 75 74 20 74 68 65 20 74 79 70 65 20 6f 66 20 61 6e 0a 20 20 20 20 20 20 65 78 70 n.about.the.type.of.an.......exp
7eac0 72 65 73 73 69 6f 6e 2c 20 6e 6f 72 20 64 6f 65 73 20 69 74 20 70 72 6f 76 69 64 65 20 61 20 63 ression,.nor.does.it.provide.a.c
7eae0 6f 6e 63 72 65 74 65 20 6d 65 6d 6f 72 79 20 6c 6f 63 61 74 69 6f 6e 20 74 6f 20 70 6c 61 63 65 oncrete.memory.location.to.place
7eb00 20 69 74 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 .it.in........</p>.......<p>....
7eb20 20 20 20 41 73 20 61 20 6d 6f 74 69 76 61 74 69 6e 67 20 65 78 61 6d 70 6c 65 2c 20 63 6f 6e 73 ...As.a.motivating.example,.cons
7eb40 69 64 65 72 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ider.the.statement.<code><span.c
7eb60 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 20 3c 73 lass="tok-kw">const</span>.x:.<s
7eb80 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>.
7eba0 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 32 3c 2f 73 =.<span.class="tok-number">42</s
7ebc0 70 61 6e 3e 3b 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 74 79 70 65 0a 20 20 20 20 20 20 61 6e 6e pan>;</code>..The.type.......ann
7ebe0 6f 74 61 74 69 6f 6e 20 68 65 72 65 20 70 72 6f 76 69 64 65 73 20 61 20 72 65 73 75 6c 74 20 74 otation.here.provides.a.result.t
7ec00 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ype.of.<code><span.class="tok-ty
7ec20 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 69 6e 69 pe">u32</span></code>.to.the.ini
7ec40 74 69 61 6c 69 7a 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 20 20 3c 63 6f tialization.expression.......<co
7ec60 64 65 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 34 32 3c 2f de><span.class="tok-number">42</
7ec80 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 69 6e 73 74 72 75 63 74 69 6e 67 20 74 68 65 20 63 6f span></code>,.instructing.the.co
7eca0 6d 70 69 6c 65 72 20 74 6f 20 63 6f 65 72 63 65 20 74 68 69 73 20 69 6e 74 65 67 65 72 20 28 69 mpiler.to.coerce.this.integer.(i
7ecc0 6e 69 74 61 6c 6c 79 20 6f 66 20 74 79 70 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 nitally.of.type.......<code><spa
7ece0 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<
7ed00 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 20 74 6f 20 74 68 69 73 20 74 79 70 65 2e 20 57 65 20 /span></code>).to.this.type..We.
7ed20 77 69 6c 6c 20 73 65 65 20 6d 6f 72 65 20 65 78 61 6d 70 6c 65 73 20 73 68 6f 72 74 6c 79 2e 0a will.see.more.examples.shortly..
7ed40 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 69 73 20 ......</p>.......<p>.......This.
7ed60 69 73 20 6e 6f 74 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 74 61 69 6c 3a is.not.an.implementation.detail:
7ed80 20 74 68 65 20 6c 6f 67 69 63 20 6f 75 74 6c 69 6e 65 64 20 61 62 6f 76 65 20 69 73 20 63 6f 64 .the.logic.outlined.above.is.cod
7eda0 69 66 69 65 64 20 69 6e 74 6f 20 74 68 65 20 5a 69 67 20 6c 61 6e 67 75 61 67 65 0a 20 20 20 20 ified.into.the.Zig.language.....
7edc0 20 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2c 20 61 6e 64 20 69 73 20 74 68 65 20 70 72 69 6d ..specification,.and.is.the.prim
7ede0 61 72 79 20 6d 65 63 68 61 6e 69 73 6d 20 6f 66 20 74 79 70 65 20 69 6e 66 65 72 65 6e 63 65 20 ary.mechanism.of.type.inference.
7ee00 69 6e 20 74 68 65 20 6c 61 6e 67 75 61 67 65 2e 20 54 68 69 73 20 73 79 73 74 65 6d 20 69 73 0a in.the.language..This.system.is.
7ee20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 69 76 65 6c 79 20 72 65 66 65 72 72 65 64 20 74 6f 20 61 ......collectively.referred.to.a
7ee40 73 20 22 52 65 73 75 6c 74 20 4c 6f 63 61 74 69 6f 6e 20 53 65 6d 61 6e 74 69 63 73 22 2e 0a 20 s."Result.Location.Semantics"...
7ee60 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 52 65 73 75 6c 74 2d 54 .....</p>.......<h3.id="Result-T
7ee80 79 70 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 65 73 ypes"><a.href="nav.xhtml#toc-Res
7eea0 75 6c 74 2d 54 79 70 65 73 22 3e 52 65 73 75 6c 74 20 54 79 70 65 73 3c 2f 61 3e 20 3c 61 20 63 ult-Types">Result.Types</a>.<a.c
7eec0 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 52 65 73 75 6c 74 2d 54 79 70 65 73 22 3e lass="hdr".href="#Result-Types">
7eee0 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 52 65 73 ..</a></h3>........<p>.......Res
7ef00 75 6c 74 20 74 79 70 65 73 20 61 72 65 20 70 72 6f 70 61 67 61 74 65 64 20 72 65 63 75 72 73 69 ult.types.are.propagated.recursi
7ef20 76 65 6c 79 20 74 68 72 6f 75 67 68 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 68 65 72 65 20 70 vely.through.expressions.where.p
7ef40 6f 73 73 69 62 6c 65 2e 20 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 69 66 20 74 68 65 0a 20 20 ossible..For.instance,.if.the...
7ef60 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 65 3c 2f 63 6f 64 ....expression.<code>&amp;e</cod
7ef80 65 3e 20 68 61 73 20 72 65 73 75 6c 74 20 74 79 70 65 20 3c 63 6f 64 65 3e 2a 3c 73 70 61 6e 20 e>.has.result.type.<code>*<span.
7efa0 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 3c 2f 63 6f 64 class="tok-type">u32</span></cod
7efc0 65 3e 2c 20 74 68 65 6e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 65 3c 2f 63 6f 64 65 3e 20 69 73 e>,.then.......<code>e</code>.is
7efe0 20 67 69 76 65 6e 20 61 20 72 65 73 75 6c 74 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 3c 73 .given.a.result.type.of.<code><s
7f000 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 3c pan.class="tok-type">u32</span><
7f020 2f 63 6f 64 65 3e 2c 20 61 6c 6c 6f 77 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 6c 61 6e 67 75 /code>,.allowing.the.......langu
7f040 61 67 65 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 68 69 73 20 63 6f 65 72 63 69 6f 6e 20 62 65 66 age.to.perform.this.coercion.bef
7f060 6f 72 65 20 74 61 6b 69 6e 67 20 61 20 72 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 20 20 20 3c 2f ore.taking.a.reference........</
7f080 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 6c 74 20 74 79 p>.......<p>.......The.result.ty
7f0a0 70 65 20 6d 65 63 68 61 6e 69 73 6d 20 69 73 20 75 74 69 6c 69 7a 65 64 20 62 79 20 63 61 73 74 pe.mechanism.is.utilized.by.cast
7f0c0 69 6e 67 20 62 75 69 6c 74 69 6e 73 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e ing.builtins.such.as.<code><span
7f0e0 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 73 74 3c 2f 73 .class="tok-builtin">@intCast</s
7f100 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 52 61 74 68 65 72 20 74 68 61 6e 20 74 pan></code>........Rather.than.t
7f120 61 6b 69 6e 67 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 74 68 65 20 74 79 70 65 20 74 6f aking.as.an.argument.the.type.to
7f140 20 63 61 73 74 20 74 6f 2c 20 74 68 65 73 65 20 62 75 69 6c 74 69 6e 73 20 75 73 65 20 74 68 65 .cast.to,.these.builtins.use.the
7f160 69 72 20 72 65 73 75 6c 74 20 74 79 70 65 20 74 6f 0a 20 20 20 20 20 20 64 65 74 65 72 6d 69 6e ir.result.type.to.......determin
7f180 65 20 74 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 72 65 73 75 6c 74 20 74 e.this.information..The.result.t
7f1a0 79 70 65 20 69 73 20 6f 66 74 65 6e 20 6b 6e 6f 77 6e 20 66 72 6f 6d 20 63 6f 6e 74 65 78 74 3b ype.is.often.known.from.context;
7f1c0 20 77 68 65 72 65 20 69 74 20 69 73 20 6e 6f 74 2c 20 74 68 65 0a 20 20 20 20 20 20 3c 63 6f 64 .where.it.is.not,.the.......<cod
7f1e0 65 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 61 73 3c e><span.class="tok-builtin">@as<
7f200 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 75 69 6c 74 69 6e 20 63 61 6e 20 62 65 20 75 73 65 /span></code>.builtin.can.be.use
7f220 64 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 70 72 6f 76 69 64 65 20 61 20 72 65 73 75 6c 74 d.to.explicitly.provide.a.result
7f240 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 20 .type........</p>.......<p>.....
7f260 20 20 57 65 20 63 61 6e 20 62 72 65 61 6b 20 64 6f 77 6e 20 74 68 65 20 72 65 73 75 6c 74 20 74 ..We.can.break.down.the.result.t
7f280 79 70 65 73 20 66 6f 72 20 65 61 63 68 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 61 20 73 69 6d ypes.for.each.component.of.a.sim
7f2a0 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 20 20 20 20 20 ple.expression.as.follows:......
7f2c0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 .</p>.......<figure><figcaption.
7f2e0 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c class="zig-cap"><cite.class="fil
7f300 65 22 3e 72 65 73 75 6c 74 5f 74 79 70 65 5f 70 72 6f 70 61 67 61 74 69 6f 6e 2e 7a 69 67 3c 2f e">result_type_propagation.zig</
7f320 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
7f340 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
7f360 78 70 65 63 74 45 71 75 61 6c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 xpectEqual.=.<span.class="tok-bu
7f380 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
7f3a0 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
7f3c0 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 45 71 75 61 6c 3b 0a 3c 73 70 61 6e 20 63 n>).testing.expectEqual;.<span.c
7f3e0 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.
7f400 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 65 73 75 6c 74 20 74 79 70 class="tok-str">&quot;result.typ
7f420 65 20 70 72 6f 70 61 67 61 74 65 73 20 74 68 72 6f 75 67 68 20 73 74 72 75 63 74 20 69 6e 69 74 e.propagates.through.struct.init
7f440 69 61 6c 69 7a 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 ializer&quot;</span>.{.....<span
7f460 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 20 3d .class="tok-kw">const</span>.S.=
7f480 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
7f4a0 61 6e 3e 20 7b 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 an>.{.x:.<span.class="tok-type">
7f4c0 75 33 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 22 74 u32</span>.};.....<span.class="t
7f4e0 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 3a 20 3c 73 70 61 6e 20 63 ok-kw">const</span>.val:.<span.c
7f500 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 3c 73 70 lass="tok-type">u64</span>.=.<sp
7f520 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 3c 2f 73 70 61 6e 3e an.class="tok-number">123</span>
7f540 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
7f560 3c 2f 73 70 61 6e 3e 20 73 3a 20 53 20 3d 20 2e 7b 20 2e 78 20 3d 20 3c 73 70 61 6e 20 63 6c 61 </span>.s:.S.=..{..x.=.<span.cla
7f580 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 3e ss="tok-builtin">@intCast</span>
7f5a0 28 76 61 6c 29 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 63 6f (val).};.....<span.class="tok-co
7f5c0 6d 6d 65 6e 74 22 3e 2f 2f 20 2e 7b 20 2e 78 20 3d 20 40 69 6e 74 43 61 73 74 28 76 61 6c 29 20 mment">//..{..x.=.@intCast(val).
7f5e0 7d 20 20 20 68 61 73 20 72 65 73 75 6c 74 20 74 79 70 65 20 60 53 60 20 64 75 65 20 74 6f 20 74 }...has.result.type.`S`.due.to.t
7f600 68 65 20 74 79 70 65 20 61 6e 6e 6f 74 61 74 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 he.type.annotation</span>.....<s
7f620 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 20 20 20 20 20 pan.class="tok-comment">//......
7f640 20 20 20 40 69 6e 74 43 61 73 74 28 76 61 6c 29 20 20 20 20 20 68 61 73 20 72 65 73 75 6c 74 20 ...@intCast(val).....has.result.
7f660 74 79 70 65 20 60 75 33 32 60 20 64 75 65 20 74 6f 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 type.`u32`.due.to.the.type.of.th
7f680 65 20 66 69 65 6c 64 20 60 53 2e 78 60 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 e.field.`S.x`</span>.....<span.c
7f6a0 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 20 20 20 20 20 20 20 20 20 20 lass="tok-comment">//...........
7f6c0 20 20 20 20 20 20 20 76 61 6c 20 20 20 20 20 20 68 61 73 20 6e 6f 20 72 65 73 75 6c 74 20 74 79 .......val......has.no.result.ty
7f6e0 70 65 2c 20 61 73 20 69 74 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 62 65 20 61 6e 79 pe,.as.it.is.permitted.to.be.any
7f700 20 69 6e 74 65 67 65 72 20 74 79 70 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 .integer.type</span>.....<span.c
7f720 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 65 78 70 65 63 74 45 lass="tok-kw">try</span>.expectE
7f740 71 75 61 6c 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 qual(<span.class="tok-builtin">@
7f760 61 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 74 79 70 65 22 as</span>(<span.class="tok-type"
7f780 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 74 6f 6b 2d 6e 75 >u32</span>,.<span.class="tok-nu
7f7a0 6d 62 65 72 22 3e 31 32 33 3c 2f 73 70 61 6e 3e 29 2c 20 73 2e 78 29 3b 0a 7d 3c 2f 63 6f 64 65 mber">123</span>),.s.x);.}</code
7f7c0 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 ></pre></figure><figure><figcapt
7f7e0 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 ion.class="shell-cap">Shell</fig
7f800 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 caption><pre><samp>$.<kbd>zig.te
7f820 73 74 20 72 65 73 75 6c 74 5f 74 79 70 65 5f 70 72 6f 70 61 67 61 74 69 6f 6e 2e 7a 69 67 3c 2f st.result_type_propagation.zig</
7f840 6b 62 64 3e 0a 31 2f 31 20 72 65 73 75 6c 74 5f 74 79 70 65 5f 70 72 6f 70 61 67 61 74 69 6f 6e kbd>.1/1.result_type_propagation
7f860 2e 74 65 73 74 2e 72 65 73 75 6c 74 20 74 79 70 65 20 70 72 6f 70 61 67 61 74 65 73 20 74 68 72 .test.result.type.propagates.thr
7f880 6f 75 67 68 20 73 74 72 75 63 74 20 69 6e 69 74 69 61 6c 69 7a 65 72 2e 2e 2e 20 4f 4b 0a 41 6c ough.struct.initializer....OK.Al
7f8a0 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c l.1.tests.passed..</samp></pre><
7f8c0 2f 66 69 67 75 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 72 65 /figure>.......<p>.......This.re
7f8e0 73 75 6c 74 20 74 79 70 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 75 73 65 66 75 6c 20 sult.type.information.is.useful.
7f900 66 6f 72 20 74 68 65 20 61 66 6f 72 65 6d 65 6e 74 69 6f 6e 65 64 20 63 61 73 74 20 62 75 69 6c for.the.aforementioned.cast.buil
7f920 74 69 6e 73 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 74 6f 20 61 76 6f 69 64 0a 20 20 20 20 20 20 tins,.as.well.as.to.avoid.......
7f940 74 68 65 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 20 6f 66 20 70 72 65 2d 63 6f 65 72 63 69 6f 6e the.construction.of.pre-coercion
7f960 20 76 61 6c 75 65 73 2c 20 61 6e 64 20 74 6f 20 61 76 6f 69 64 20 74 68 65 20 6e 65 65 64 20 66 .values,.and.to.avoid.the.need.f
7f980 6f 72 20 65 78 70 6c 69 63 69 74 20 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 73 20 69 6e 20 73 6f or.explicit.type.coercions.in.so
7f9a0 6d 65 0a 20 20 20 20 20 20 63 61 73 65 73 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 me.......cases..The.following.ta
7f9c0 62 6c 65 20 64 65 74 61 69 6c 73 20 68 6f 77 20 73 6f 6d 65 20 63 6f 6d 6d 6f 6e 20 65 78 70 72 ble.details.how.some.common.expr
7f9e0 65 73 73 69 6f 6e 73 20 70 72 6f 70 61 67 61 74 65 20 72 65 73 75 6c 74 20 74 79 70 65 73 2c 20 essions.propagate.result.types,.
7fa00 77 68 65 72 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c where.......<code>x</code>.and.<
7fa20 63 6f 64 65 3e 79 3c 2f 63 6f 64 65 3e 20 61 72 65 20 61 72 62 69 74 72 61 72 79 20 73 75 62 2d code>y</code>.are.arbitrary.sub-
7fa40 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 64 expressions........</p>.......<d
7fa60 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 20 20 20 20 20 iv.class="table-wrapper">.......
7fa80 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 68 65 61 64 3e 0a 20 20 20 20 20 20 20 20 <table>.........<thead>.........
7faa0 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f ..<tr>.............<th.scope="co
7fac0 6c 22 3e 45 78 70 72 65 73 73 69 6f 6e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c l">Expression</th>.............<
7fae0 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 50 61 72 65 6e 74 20 52 65 73 75 6c 74 20 54 79 70 th.scope="col">Parent.Result.Typ
7fb00 65 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f e</th>.............<th.scope="co
7fb20 6c 22 3e 53 75 62 2d 65 78 70 72 65 73 73 69 6f 6e 20 52 65 73 75 6c 74 20 54 79 70 65 3c 2f 74 l">Sub-expression.Result.Type</t
7fb40 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 68 65 h>...........</tr>.........</the
7fb60 61 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 ad>.........<tbody>...........<t
7fb80 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c r>.............<th.scope="row"><
7fba0 63 6f 64 65 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 code><span.class="tok-kw">const<
7fbc0 2f 73 70 61 6e 3e 20 76 61 6c 3a 20 54 20 3d 20 78 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 /span>.val:.T.=.x</code></th>...
7fbe0 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 ..........<td>-</td>............
7fc00 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 54 .<td><code>x</code>.is.a.<code>T
7fc20 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 </code></td>...........</tr>....
7fc40 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 68 20 73 63 6f 70 .......<tr>.............<th.scop
7fc60 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b e="row"><code><span.class="tok-k
7fc80 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 76 61 6c 3a 20 54 20 3d 20 78 3c 2f 63 6f 64 65 3e 3c w">var</span>.val:.T.=.x</code><
7fca0 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 20 /th>.............<td>-</td>.....
7fcc0 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 ........<td><code>x</code>.is.a.
7fce0 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f <code>T</code></td>...........</
7fd00 74 72 3e 0a 20 20 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>.............<
7fd20 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 76 61 6c 20 3d 20 78 3c 2f 63 6f th.scope="row"><code>val.=.x</co
7fd40 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a de></th>.............<td>-</td>.
7fd60 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 ............<td><code>x</code>.i
7fd80 73 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 s.a.<code><span.class="tok-built
7fda0 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f in">@TypeOf</span>(val)</code></
7fdc0 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 td>...........</tr>...........<t
7fde0 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c r>.............<th.scope="row"><
7fe00 63 6f 64 65 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 code><span.class="tok-builtin">@
7fe20 61 73 3c 2f 73 70 61 6e 3e 28 54 2c 20 78 29 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 as</span>(T,.x)</code></th>.....
7fe40 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c ........<td>-</td>.............<
7fe60 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 54 3c 2f td><code>x</code>.is.a.<code>T</
7fe80 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 code></td>...........</tr>......
7fea0 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d .....<tr>.............<th.scope=
7fec0 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 26 61 6d 70 3b 78 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 "row"><code>&amp;x</code></th>..
7fee0 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 2a 54 3c 2f 63 6f 64 65 3e 3c 2f ...........<td><code>*T</code></
7ff00 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 td>.............<td><code>x</cod
7ff20 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 e>.is.a.<code>T</code></td>.....
7ff40 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 ......</tr>...........<tr>......
7ff60 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 26 61 6d .......<th.scope="row"><code>&am
7ff80 70 3b 78 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e p;x</code></th>.............<td>
7ffa0 3c 63 6f 64 65 3e 5b 5d 54 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 <code>[]T</code></td>...........
7ffc0 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 73 6f 6d 65 20 61 72 72 ..<td><code>x</code>.is.some.arr
7ffe0 61 79 20 6f 66 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 ay.of.<code>T</code></td>.......
80000 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 ....</tr>...........<tr>........
80020 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 66 28 78 29 3c .....<th.scope="row"><code>f(x)<
80040 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 /code></th>.............<td>-</t
80060 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 d>.............<td><code>x</code
80080 3e 20 68 61 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 70 61 72 61 >.has.the.type.of.the.first.para
800a0 6d 65 74 65 72 20 6f 66 20 3c 63 6f 64 65 3e 66 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 meter.of.<code>f</code></td>....
800c0 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 .......</tr>...........<tr>.....
800e0 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 2e 7b ........<th.scope="row"><code>.{
80100 78 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c x}</code></th>.............<td><
80120 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c code>T</code></td>.............<
80140 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 73 74 64 td><code>x</code>.is.a.<code>std
80160 2e 6d 65 74 61 2e 46 69 65 6c 64 54 79 70 65 28 54 2c 20 2e 40 26 71 75 6f 74 3b 30 26 71 75 6f .meta.FieldType(T,..@&quot;0&quo
80180 74 3b 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a t;)</code></td>...........</tr>.
801a0 20 20 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 68 20 73 ..........<tr>.............<th.s
801c0 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 2e 7b 20 2e 61 20 3d 20 78 20 7d 3c 2f 63 6f cope="row"><code>.{..a.=.x.}</co
801e0 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 54 de></th>.............<td><code>T
80200 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f </code></td>.............<td><co
80220 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 73 74 64 2e 6d 65 74 61 2e de>x</code>.is.a.<code>std.meta.
80240 46 69 65 6c 64 54 79 70 65 28 54 2c 20 2e 61 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 FieldType(T,..a)</code></td>....
80260 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 .......</tr>...........<tr>.....
80280 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 54 7b ........<th.scope="row"><code>T{
802a0 78 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d x}</code></th>.............<td>-
802c0 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 </td>.............<td><code>x</c
802e0 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 73 74 64 2e 6d 65 74 61 2e 46 69 65 6c 64 54 79 ode>.is.a.<code>std.meta.FieldTy
80300 70 65 28 54 2c 20 2e 40 26 71 75 6f 74 3b 30 26 71 75 6f 74 3b 29 3c 2f 63 6f 64 65 3e 3c 2f 74 pe(T,..@&quot;0&quot;)</code></t
80320 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 d>...........</tr>...........<tr
80340 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 >.............<th.scope="row"><c
80360 6f 64 65 3e 54 7b 20 2e 61 20 3d 20 78 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 ode>T{..a.=.x.}</code></th>.....
80380 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c ........<td>-</td>.............<
803a0 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 73 74 64 td><code>x</code>.is.a.<code>std
803c0 2e 6d 65 74 61 2e 46 69 65 6c 64 54 79 70 65 28 54 2c 20 2e 61 29 3c 2f 63 6f 64 65 3e 3c 2f 74 .meta.FieldType(T,..a)</code></t
803e0 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 d>...........</tr>...........<tr
80400 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 >.............<th.scope="row"><c
80420 6f 64 65 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 ode><span.class="tok-builtin">@T
80440 79 70 65 3c 2f 73 70 61 6e 3e 28 78 29 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 ype</span>(x)</code></th>.......
80460 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 ......<td>-</td>.............<td
80480 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 73 74 64 2e 62 ><code>x</code>.is.a.<code>std.b
804a0 75 69 6c 74 69 6e 2e 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 uiltin.Type</code></td>.........
804c0 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 ..</tr>...........<tr>..........
804e0 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ...<th.scope="row"><code><span.c
80500 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 6e 66 6f 3c 2f 73 70 lass="tok-builtin">@typeInfo</sp
80520 61 6e 3e 28 78 29 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c an>(x)</code></th>.............<
80540 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e td>-</td>.............<td><code>
80560 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d x</code>.is.a.<code><span.class=
80580 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 74 "tok-type">type</span></code></t
805a0 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 d>...........</tr>...........<tr
805c0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 >.............<th.scope="row"><c
805e0 6f 64 65 3e 78 20 26 6c 74 3b 26 6c 74 3b 20 79 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 ode>x.&lt;&lt;.y</code></th>....
80600 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........<td>-</td>.............
80620 3c 74 64 3e 3c 63 6f 64 65 3e 79 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 73 74 <td><code>y</code>.is.a.<code>st
80640 64 2e 6d 61 74 68 2e 4c 6f 67 32 49 6e 74 43 65 69 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 d.math.Log2IntCeil(<span.class="
80660 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 78 29 29 3c tok-builtin">@TypeOf</span>(x))<
80680 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 /code></td>...........</tr>.....
806a0 20 20 20 20 3c 2f 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 20 ....</tbody>.......</table>.....
806c0 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 52 65 ..</div>..............<h3.id="Re
806e0 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 sult-Locations"><a.href="nav.xht
80700 6d 6c 23 74 6f 63 2d 52 65 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 73 22 3e 52 65 73 75 6c 74 20 ml#toc-Result-Locations">Result.
80720 4c 6f 63 61 74 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 Locations</a>.<a.class="hdr".hre
80740 66 3d 22 23 52 65 73 75 6c 74 2d 4c 6f 63 61 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 f="#Result-Locations">..</a></h3
80760 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 >........<p>.......In.addition.t
80780 6f 20 72 65 73 75 6c 74 20 74 79 70 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 65 76 65 72 79 o.result.type.information,.every
807a0 20 65 78 70 72 65 73 73 69 6f 6e 20 6d 61 79 20 62 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 61 73 .expression.may.be.optionally.as
807c0 73 69 67 6e 65 64 20 61 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 6c 6f 63 61 74 69 6f 6e 3a 20 signed.a.result.......location:.
807e0 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 77 68 69 63 68 20 74 68 65 20 76 61 6c 75 65 20 6d 75 73 a.pointer.to.which.the.value.mus
80800 74 20 62 65 20 64 69 72 65 63 74 6c 79 20 77 72 69 74 74 65 6e 2e 20 54 68 69 73 20 73 79 73 74 t.be.directly.written..This.syst
80820 65 6d 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 70 72 65 76 65 6e 74 0a 20 20 20 20 20 20 em.can.be.used.to.prevent.......
80840 69 6e 74 65 72 6d 65 64 69 61 74 65 20 63 6f 70 69 65 73 20 77 68 65 6e 20 69 6e 69 74 69 61 6c intermediate.copies.when.initial
80860 69 7a 69 6e 67 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 2c 20 77 68 69 63 68 20 63 61 6e izing.data.structures,.which.can
80880 20 62 65 20 69 6d 70 6f 72 74 61 6e 74 20 66 6f 72 20 74 79 70 65 73 20 77 68 69 63 68 20 6d 75 .be.important.for.types.which.mu
808a0 73 74 0a 20 20 20 20 20 20 68 61 76 65 20 61 20 66 69 78 65 64 20 6d 65 6d 6f 72 79 20 61 64 64 st.......have.a.fixed.memory.add
808c0 72 65 73 73 20 28 22 70 69 6e 6e 65 64 22 20 74 79 70 65 73 29 2e 0a 20 20 20 20 20 20 3c 2f 70 ress.("pinned".types)........</p
808e0 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 67 >.......<p>.......When.compiling
80900 20 74 68 65 20 73 69 6d 70 6c 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 65 78 70 72 65 73 73 69 6f .the.simple.assignment.expressio
80920 6e 20 3c 63 6f 64 65 3e 78 20 3d 20 65 3c 2f 63 6f 64 65 3e 2c 20 6d 61 6e 79 20 6c 61 6e 67 75 n.<code>x.=.e</code>,.many.langu
80940 61 67 65 73 20 77 6f 75 6c 64 0a 20 20 20 20 20 20 63 72 65 61 74 65 20 74 68 65 20 74 65 6d 70 ages.would.......create.the.temp
80960 6f 72 61 72 79 20 76 61 6c 75 65 20 3c 63 6f 64 65 3e 65 3c 2f 63 6f 64 65 3e 20 6f 6e 20 74 68 orary.value.<code>e</code>.on.th
80980 65 20 73 74 61 63 6b 2c 20 61 6e 64 20 74 68 65 6e 20 61 73 73 69 67 6e 20 69 74 20 74 6f 0a 20 e.stack,.and.then.assign.it.to..
809a0 20 20 20 20 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 2c 20 70 6f 74 65 6e 74 69 61 6c 6c 79 .....<code>x</code>,.potentially
809c0 20 70 65 72 66 6f 72 6d 69 6e 67 20 61 20 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 20 69 6e 20 74 .performing.a.type.coercion.in.t
809e0 68 65 20 70 72 6f 63 65 73 73 2e 20 5a 69 67 20 61 70 70 72 6f 61 63 68 65 73 20 74 68 69 73 0a he.process..Zig.approaches.this.
80a00 20 20 20 20 20 20 64 69 66 66 65 72 65 6e 74 6c 79 2e 20 54 68 65 20 65 78 70 72 65 73 73 69 6f ......differently..The.expressio
80a20 6e 20 3c 63 6f 64 65 3e 65 3c 2f 63 6f 64 65 3e 20 69 73 20 67 69 76 65 6e 20 61 20 72 65 73 75 n.<code>e</code>.is.given.a.resu
80a40 6c 74 20 74 79 70 65 20 6d 61 74 63 68 69 6e 67 20 74 68 65 20 74 79 70 65 20 6f 66 0a 20 20 20 lt.type.matching.the.type.of....
80a60 20 20 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 61 20 72 65 73 75 6c 74 20 ...<code>x</code>,.and.a.result.
80a80 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 78 3c 2f 63 6f 64 65 3e 2e location.of.<code>&amp;x</code>.
80aa0 20 46 6f 72 20 6d 61 6e 79 20 73 79 6e 74 61 63 74 69 63 0a 20 20 20 20 20 20 66 6f 72 6d 73 20 .For.many.syntactic.......forms.
80ac0 6f 66 20 3c 63 6f 64 65 3e 65 3c 2f 63 6f 64 65 3e 2c 20 74 68 69 73 20 68 61 73 20 6e 6f 20 70 of.<code>e</code>,.this.has.no.p
80ae0 72 61 63 74 69 63 61 6c 20 69 6d 70 61 63 74 2e 20 48 6f 77 65 76 65 72 2c 20 69 74 20 63 61 6e ractical.impact..However,.it.can
80b00 20 68 61 76 65 20 69 6d 70 6f 72 74 61 6e 74 0a 20 20 20 20 20 20 73 65 6d 61 6e 74 69 63 20 65 .have.important.......semantic.e
80b20 66 66 65 63 74 73 20 77 68 65 6e 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 6d 6f 72 65 20 63 6f ffects.when.working.with.more.co
80b40 6d 70 6c 65 78 20 73 79 6e 74 61 78 20 66 6f 72 6d 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 mplex.syntax.forms........</p>..
80b60 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 69 66 20 .....<p>.......For.instance,.if.
80b80 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 3c 63 6f 64 65 3e 2e 7b 20 2e 61 20 3d 20 78 2c 20 the.expression.<code>.{..a.=.x,.
80ba0 2e 62 20 3d 20 79 20 7d 3c 2f 63 6f 64 65 3e 20 68 61 73 20 61 20 72 65 73 75 6c 74 20 6c 6f 63 .b.=.y.}</code>.has.a.result.loc
80bc0 61 74 69 6f 6e 20 6f 66 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 2c ation.of.......<code>ptr</code>,
80be0 20 74 68 65 6e 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 67 69 76 65 6e 20 61 20 .then.<code>x</code>.is.given.a.
80c00 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 26 result.location.of.......<code>&
80c20 61 6d 70 3b 70 74 72 2e 61 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 79 3c 2f 63 amp;ptr.a</code>,.and.<code>y</c
80c40 6f 64 65 3e 20 61 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 3c 63 6f 64 65 3e ode>.a.result.location.of.<code>
80c60 26 61 6d 70 3b 70 74 72 2e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 57 69 74 68 6f 75 74 &amp;ptr.b</code>........Without
80c80 20 74 68 69 73 20 73 79 73 74 65 6d 2c 20 74 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e 20 77 6f .this.system,.this.expression.wo
80ca0 75 6c 64 20 63 6f 6e 73 74 72 75 63 74 20 61 20 74 65 6d 70 6f 72 61 72 79 20 73 74 72 75 63 74 uld.construct.a.temporary.struct
80cc0 20 76 61 6c 75 65 20 65 6e 74 69 72 65 6c 79 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 2c 20 61 6e .value.entirely.on.the.stack,.an
80ce0 64 0a 20 20 20 20 20 20 6f 6e 6c 79 20 74 68 65 6e 20 63 6f 70 79 20 69 74 20 74 6f 20 74 68 65 d.......only.then.copy.it.to.the
80d00 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 61 64 64 72 65 73 73 2e 20 49 6e 20 65 73 73 65 6e 63 65 .destination.address..In.essence
80d20 2c 20 5a 69 67 20 64 65 73 75 67 61 72 73 20 74 68 65 20 61 73 73 69 67 6e 6d 65 6e 74 0a 20 20 ,.Zig.desugars.the.assignment...
80d40 20 20 20 20 3c 63 6f 64 65 3e 66 6f 6f 20 3d 20 2e 7b 20 2e 61 20 3d 20 78 2c 20 2e 62 20 3d 20 ....<code>foo.=..{..a.=.x,..b.=.
80d60 79 20 7d 3c 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 74 77 6f 20 73 74 61 74 65 6d 65 6e 74 73 y.}</code>.to.the.two.statements
80d80 20 3c 63 6f 64 65 3e 66 6f 6f 2e 61 20 3d 20 78 3b 20 66 6f 6f 2e 62 20 3d 20 79 3b 3c 2f 63 6f .<code>foo.a.=.x;.foo.b.=.y;</co
80da0 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 20 de>........</p>.......<p>.......
80dc0 54 68 69 73 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 62 65 20 69 6d 70 6f 72 74 61 6e 74 20 This.can.sometimes.be.important.
80de0 77 68 65 6e 20 61 73 73 69 67 6e 69 6e 67 20 61 6e 20 61 67 67 72 65 67 61 74 65 20 76 61 6c 75 when.assigning.an.aggregate.valu
80e00 65 20 77 68 65 72 65 20 74 68 65 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 0a 20 20 20 20 20 e.where.the.initialization......
80e20 20 65 78 70 72 65 73 73 69 6f 6e 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 70 72 65 76 69 .expression.depends.on.the.previ
80e40 6f 75 73 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 74 65 2e 20 54 68 65 20 ous.value.of.the.aggregate..The.
80e60 65 61 73 69 65 73 74 20 77 61 79 20 74 6f 20 64 65 6d 6f 6e 73 74 72 61 74 65 20 74 68 69 73 20 easiest.way.to.demonstrate.this.
80e80 69 73 20 62 79 0a 20 20 20 20 20 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 73 77 61 70 20 66 is.by.......attempting.to.swap.f
80ea0 69 65 6c 64 73 20 6f 66 20 61 20 73 74 72 75 63 74 20 6f 72 20 61 72 72 61 79 20 2d 20 74 68 65 ields.of.a.struct.or.array.-.the
80ec0 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 6f 67 69 63 20 6c 6f 6f 6b 73 20 73 6f 75 6e 64 2c 20 62 75 .following.logic.looks.sound,.bu
80ee0 74 20 69 6e 20 66 61 63 74 20 69 73 20 6e 6f 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 t.in.fact.is.not:.......</p>....
80f00 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
80f20 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 65 73 75 6c 74 g-cap"><cite.class="file">result
80f40 5f 6c 6f 63 61 74 69 6f 6e 5f 69 6e 74 65 72 66 65 72 69 6e 67 5f 77 69 74 68 5f 73 77 61 70 2e _location_interfering_with_swap.
80f60 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 zig</cite></figcaption><pre><cod
80f80 65 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 e><span.class="tok-kw">const</sp
80fa0 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 an>.expect.=.<span.class="tok-bu
80fc0 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
80fe0 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
81000 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d n>).testing.expect;.<span.class=
81020 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
81040 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 61 74 74 65 6d 70 74 20 74 6f 20 73 77 61 70 ="tok-str">&quot;attempt.to.swap
81060 20 61 72 72 61 79 20 65 6c 65 6d 65 6e 74 73 20 77 69 74 68 20 61 72 72 61 79 20 69 6e 69 74 69 .array.elements.with.array.initi
81080 61 6c 69 7a 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 alizer&quot;</span>.{.....<span.
810a0 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 3a 20 5b class="tok-kw">var</span>.arr:.[
810c0 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
810e0 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 33 32 3c 2f 73 70 >]<span.class="tok-type">u32</sp
81100 61 6e 3e 20 3d 20 2e 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 an>.=..{.<span.class="tok-number
81120 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
81140 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 61 72 72 20 3d 20 2e 7b 20 61 72 ber">2</span>.};.....arr.=..{.ar
81160 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 31 3c 2f 73 70 r[<span.class="tok-number">1</sp
81180 61 6e 3e 5d 2c 20 61 72 72 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 an>],.arr[<span.class="tok-numbe
811a0 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d r">0</span>].};.....<span.class=
811c0 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 65 20 70 72 65 76 69 6f 75 73 20 6c 69 "tok-comment">//.The.previous.li
811e0 6e 65 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e ne.is.equivalent.to.the.followin
81200 67 20 74 77 6f 20 6c 69 6e 65 73 3a 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c g.two.lines:</span>.....<span.cl
81220 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 20 20 61 72 72 5b 30 5d 20 3d 20 ass="tok-comment">//...arr[0].=.
81240 61 72 72 5b 31 5d 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 arr[1];</span>.....<span.class="
81260 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 20 20 61 72 72 5b 31 5d 20 3d 20 61 72 72 5b 30 tok-comment">//...arr[1].=.arr[0
81280 5d 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 6f 6b 2d 63 ];</span>.....<span.class="tok-c
812a0 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 53 6f 20 74 68 69 73 20 66 61 69 6c 73 21 3c 2f 73 70 61 6e 3e omment">//.So.this.fails!</span>
812c0 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 72 79 3c 2f 73 .....<span.class="tok-kw">try</s
812e0 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 72 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b pan>.expect(arr[<span.class="tok
81300 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 61 6e 20 63 6c 61 73 -number">0</span>].==.<span.clas
81320 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 20 3c 73 70 61 6e 20 s="tok-number">2</span>);.<span.
81340 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 73 75 63 63 65 65 64 73 3c class="tok-comment">//.succeeds<
81360 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">
81380 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 61 72 72 5b 3c 73 70 61 6e 20 63 6c 61 73 try</span>.expect(arr[<span.clas
813a0 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 73 70 61 s="tok-number">1</span>].==.<spa
813c0 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 20 n.class="tok-number">1</span>);.
813e0 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 66 61 69 <span.class="tok-comment">//.fai
81400 6c 73 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ls</span>.}</code></pre></figure
81420 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
81440 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
81460 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 72 65 73 75 6c 74 5f 6c 6f 63 61 74 amp>$.<kbd>zig.test.result_locat
81480 69 6f 6e 5f 69 6e 74 65 72 66 65 72 69 6e 67 5f 77 69 74 68 5f 73 77 61 70 2e 7a 69 67 3c 2f 6b ion_interfering_with_swap.zig</k
814a0 62 64 3e 0a 31 2f 31 20 72 65 73 75 6c 74 5f 6c 6f 63 61 74 69 6f 6e 5f 69 6e 74 65 72 66 65 72 bd>.1/1.result_location_interfer
814c0 69 6e 67 5f 77 69 74 68 5f 73 77 61 70 2e 74 65 73 74 2e 61 74 74 65 6d 70 74 20 74 6f 20 73 77 ing_with_swap.test.attempt.to.sw
814e0 61 70 20 61 72 72 61 79 20 65 6c 65 6d 65 6e 74 73 20 77 69 74 68 20 61 72 72 61 79 20 69 6e 69 ap.array.elements.with.array.ini
81500 74 69 61 6c 69 7a 65 72 2e 2e 2e 20 46 41 49 4c 20 28 54 65 73 74 55 6e 65 78 70 65 63 74 65 64 tializer....FAIL.(TestUnexpected
81520 52 65 73 75 6c 74 29 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f Result).<span.class="sgr-1m">/ho
81540 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 74 me/andy/src/zig-0.12.x/lib/std/t
81560 65 73 74 69 6e 67 2e 7a 69 67 3a 35 34 30 3a 31 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 esting.zig:540:14</span>:.<span.
81580 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 38 66 65 66 20 69 6e 20 65 78 70 65 class="sgr-2m">0x1038fef.in.expe
815a0 63 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 72 65 ct.(test)</span>.....if.(!ok).re
815c0 74 75 72 6e 20 65 72 72 6f 72 2e 54 65 73 74 55 6e 65 78 70 65 63 74 65 64 52 65 73 75 6c 74 3b turn.error.TestUnexpectedResult;
815e0 0a 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 73 67 72 2d 33 ..............<span.class="sgr-3
81600 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
81620 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 ">/home/andy/src/zig-0.12.x/docg
81640 65 6e 5f 74 6d 70 2f 72 65 73 75 6c 74 5f 6c 6f 63 61 74 69 6f 6e 5f 69 6e 74 65 72 66 65 72 69 en_tmp/result_location_interferi
81660 6e 67 5f 77 69 74 68 5f 73 77 61 70 2e 7a 69 67 3a 31 30 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 ng_with_swap.zig:10:5</span>:.<s
81680 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 31 35 35 20 69 6e 20 pan.class="sgr-2m">0x1039155.in.
816a0 74 65 73 74 2e 61 74 74 65 6d 70 74 20 74 6f 20 73 77 61 70 20 61 72 72 61 79 20 65 6c 65 6d 65 test.attempt.to.swap.array.eleme
816c0 6e 74 73 20 77 69 74 68 20 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 65 72 20 28 74 65 73 74 nts.with.array.initializer.(test
816e0 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 74 72 79 20 65 78 70 65 63 74 28 61 72 72 5b 31 5d 20 3d )</span>.....try.expect(arr[1].=
81700 3d 20 31 29 3b 20 2f 2f 20 66 61 69 6c 73 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 =.1);.//.fails.....<span.class="
81720 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 30 20 70 61 73 73 65 64 3b 20 30 20 73 6b sgr-32m">^</span>.0.passed;.0.sk
81740 69 70 70 65 64 3b 20 31 20 66 61 69 6c 65 64 2e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 6f 6c 6c ipped;.1.failed..error:.the.foll
81760 6f 77 69 6e 67 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 61 69 6c 65 64 20 77 69 74 68 20 65 owing.test.command.failed.with.e
81780 78 69 74 20 63 6f 64 65 20 31 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 xit.code.1:./home/andy/src/zig-0
817a0 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 31 36 63 31 66 31 35 64 38 30 65 64 62 31 .12.x/zig-cache/o/16c1f15d80edb1
817c0 62 30 61 36 34 35 64 63 35 66 30 35 33 30 39 31 36 33 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c b0a645dc5f05309163/test.</samp><
817e0 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 /pre></figure>.......<p>.......T
81800 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65 20 64 65 74 61 69 6c 73 20 68 6f 77 20 73 he.following.table.details.how.s
81820 6f 6d 65 20 63 6f 6d 6d 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 70 72 6f 70 61 67 61 74 65 ome.common.expressions.propagate
81840 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 73 2c 20 77 68 65 72 65 0a 20 20 20 20 20 20 3c .result.locations,.where.......<
81860 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 79 3c 2f 63 6f 64 65 3e code>x</code>.and.<code>y</code>
81880 20 61 72 65 20 61 72 62 69 74 72 61 72 79 20 73 75 62 2d 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 .are.arbitrary.sub-expressions..
818a0 4e 6f 74 65 20 74 68 61 74 0a 20 20 20 20 20 20 73 6f 6d 65 20 65 78 70 72 65 73 73 69 6f 6e 73 Note.that.......some.expressions
818c0 20 63 61 6e 6e 6f 74 20 70 72 6f 76 69 64 65 20 6d 65 61 6e 69 6e 67 66 75 6c 20 72 65 73 75 6c .cannot.provide.meaningful.resul
818e0 74 20 6c 6f 63 61 74 69 6f 6e 73 20 74 6f 20 73 75 62 2d 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 t.locations.to.sub-expressions,.
81900 65 76 65 6e 20 69 66 20 74 68 65 79 0a 20 20 20 20 20 20 74 68 65 6d 73 65 6c 76 65 73 20 68 61 even.if.they.......themselves.ha
81920 76 65 20 61 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e ve.a.result.location........</p>
81940 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
81960 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 68 65 61 64 3e ">.......<table>.........<thead>
81980 0a 20 20 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 68 20 ...........<tr>.............<th.
819a0 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 45 78 70 72 65 73 73 69 6f 6e 3c 2f 74 68 3e 0a 20 20 20 20 scope="col">Expression</th>.....
819c0 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 52 65 73 75 6c 74 20 4c ........<th.scope="col">Result.L
819e0 6f 63 61 74 69 6f 6e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f ocation</th>.............<th.sco
81a00 70 65 3d 22 63 6f 6c 22 3e 53 75 62 2d 65 78 70 72 65 73 73 69 6f 6e 20 52 65 73 75 6c 74 20 4c pe="col">Sub-expression.Result.L
81a20 6f 63 61 74 69 6f 6e 73 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 ocations</th>...........</tr>...
81a40 20 20 20 20 20 20 3c 2f 74 68 65 61 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 62 6f 64 79 3e 0a 20 ......</thead>.........<tbody>..
81a60 20 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 68 20 73 63 .........<tr>.............<th.sc
81a80 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ope="row"><code><span.class="tok
81aa0 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 3a 20 54 20 3d 20 78 3c 2f 63 6f -kw">const</span>.val:.T.=.x</co
81ac0 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a de></th>.............<td>-</td>.
81ae0 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 ............<td><code>x</code>.h
81b00 61 73 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 76 61 as.result.location.<code>&amp;va
81b20 6c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 l</code></td>...........</tr>...
81b40 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 68 20 73 63 6f ........<tr>.............<th.sco
81b60 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d pe="row"><code><span.class="tok-
81b80 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 76 61 6c 3a 20 54 20 3d 20 78 3c 2f 63 6f 64 65 3e kw">var</span>.val:.T.=.x</code>
81ba0 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 </th>.............<td>-</td>....
81bc0 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 20 .........<td><code>x</code>.has.
81be0 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 76 61 6c 3c 2f result.location.<code>&amp;val</
81c00 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 code></td>...........</tr>......
81c20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d .....<tr>.............<th.scope=
81c40 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 76 61 6c 20 3d 20 78 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a "row"><code>val.=.x</code></th>.
81c60 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 2d 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 ............<td>-</td>..........
81c80 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 20 72 65 73 75 6c 74 ...<td><code>x</code>.has.result
81ca0 20 6c 6f 63 61 74 69 6f 6e 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 76 61 6c 3c 2f 63 6f 64 65 3e 3c .location.<code>&amp;val</code><
81cc0 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c /td>...........</tr>...........<
81ce0 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e tr>.............<th.scope="row">
81d00 3c 63 6f 64 65 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 <code><span.class="tok-builtin">
81d20 40 61 73 3c 2f 73 70 61 6e 3e 28 54 2c 20 78 29 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 @as</span>(T,.x)</code></th>....
81d40 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 3c 2f 74 .........<td><code>ptr</code></t
81d60 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 d>.............<td><code>x</code
81d80 3e 20 68 61 73 20 6e 6f 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 >.has.no.result.location</td>...
81da0 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 ........</tr>...........<tr>....
81dc0 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 26 .........<th.scope="row"><code>&
81de0 61 6d 70 3b 78 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 amp;x</code></th>.............<t
81e00 64 3e 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 d><code>ptr</code></td>.........
81e20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 20 6e 6f 20 72 65 ....<td><code>x</code>.has.no.re
81e40 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 sult.location</td>...........</t
81e60 72 3e 0a 20 20 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 r>...........<tr>.............<t
81e80 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 66 28 78 29 3c 2f 63 6f 64 65 3e 3c h.scope="row"><code>f(x)</code><
81ea0 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 70 74 72 3c 2f /th>.............<td><code>ptr</
81ec0 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 code></td>.............<td><code
81ee0 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 20 6e 6f 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e >x</code>.has.no.result.location
81f00 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 </td>...........</tr>...........
81f20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 <tr>.............<th.scope="row"
81f40 3e 3c 63 6f 64 65 3e 2e 7b 78 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 ><code>.{x}</code></th>.........
81f60 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 ....<td><code>ptr</code></td>...
81f80 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 ..........<td><code>x</code>.has
81fa0 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 70 74 72 5b .result.location.<code>&amp;ptr[
81fc0 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
81fe0 3e 5d 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 >]</code></td>...........</tr>..
82000 20 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 68 20 73 63 .........<tr>.............<th.sc
82020 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 2e 7b 20 2e 61 20 3d 20 78 20 7d 3c 2f 63 6f 64 ope="row"><code>.{..a.=.x.}</cod
82040 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 70 74 e></th>.............<td><code>pt
82060 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 r</code></td>.............<td><c
82080 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e ode>x</code>.has.result.location
820a0 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 70 74 72 2e 61 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 .<code>&amp;ptr.a</code></td>...
820c0 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 ........</tr>...........<tr>....
820e0 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 54 .........<th.scope="row"><code>T
82100 7b 78 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e {x}</code></th>.............<td>
82120 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 <code>ptr</code></td>...........
82140 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 20 6e 6f 20 72 65 73 75 ..<td><code>x</code>.has.no.resu
82160 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 28 74 79 70 65 64 20 69 6e 69 74 69 61 6c 69 7a 65 72 73 20 lt.location.(typed.initializers.
82180 64 6f 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 65 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e do.not.propagate.result.location
821a0 73 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 s)</td>...........</tr>.........
821c0 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f ..<tr>.............<th.scope="ro
821e0 77 22 3e 3c 63 6f 64 65 3e 54 7b 20 2e 61 20 3d 20 78 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e w"><code>T{..a.=.x.}</code></th>
82200 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 .............<td><code>ptr</code
82220 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f ></td>.............<td><code>x</
82240 63 6f 64 65 3e 20 68 61 73 20 6e 6f 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 20 28 74 79 code>.has.no.result.location.(ty
82260 70 65 64 20 69 6e 69 74 69 61 6c 69 7a 65 72 73 20 64 6f 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 ped.initializers.do.not.propagat
82280 65 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 73 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 e.result.locations)</td>........
822a0 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 ...</tr>...........<tr>.........
822c0 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 ....<th.scope="row"><code><span.
822e0 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 61 6e 3e class="tok-builtin">@Type</span>
82300 28 78 29 3c 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e (x)</code></th>.............<td>
82320 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 <code>ptr</code></td>...........
82340 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 20 6e 6f 20 72 65 73 75 ..<td><code>x</code>.has.no.resu
82360 6c 74 20 6c 6f 63 61 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e lt.location</td>...........</tr>
82380 0a 20 20 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 68 20 ...........<tr>.............<th.
823a0 73 63 6f 70 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 scope="row"><code><span.class="t
823c0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 78 29 3c ok-builtin">@typeInfo</span>(x)<
823e0 2f 63 6f 64 65 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 /code></th>.............<td><cod
82400 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 e>ptr</code></td>.............<t
82420 64 3e 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 68 61 73 20 6e 6f 20 72 65 73 75 6c 74 20 6c d><code>x</code>.has.no.result.l
82440 6f 63 61 74 69 6f 6e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 ocation</td>...........</tr>....
82460 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 68 20 73 63 6f 70 .......<tr>.............<th.scop
82480 65 3d 22 72 6f 77 22 3e 3c 63 6f 64 65 3e 78 20 26 6c 74 3b 26 6c 74 3b 20 79 3c 2f 63 6f 64 65 e="row"><code>x.&lt;&lt;.y</code
824a0 3e 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 70 74 72 ></th>.............<td><code>ptr
824c0 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f </code></td>.............<td><co
824e0 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 79 3c 2f 63 6f 64 65 3e 20 64 de>x</code>.and.<code>y</code>.d
82500 6f 20 6e 6f 74 20 68 61 76 65 20 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 73 3c 2f 74 64 3e o.not.have.result.locations</td>
82520 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 62 6f 64 79 ...........</tr>.........</tbody
82540 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 20 20 >.......</table>.......</div>...
82560 20 20 20 20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 75 73 69 6e 67 ...................<h2.id="using
82580 6e 61 6d 65 73 70 61 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f namespace"><a.href="nav.xhtml#to
825a0 63 2d 75 73 69 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 c-usingnamespace">usingnamespace
825c0 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 75 73 69 6e 67 </a>.<a.class="hdr".href="#using
825e0 6e 61 6d 65 73 70 61 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 namespace">..</a></h2>........<p
82600 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b >.......<code><span.class="tok-k
82620 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>.
82640 69 73 20 61 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 68 61 74 20 6d 69 78 65 73 20 61 6c 6c 20 is.a.declaration.that.mixes.all.
82660 74 68 65 20 70 75 62 6c 69 63 0a 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6f 66 the.public.......declarations.of
82680 20 74 68 65 20 6f 70 65 72 61 6e 64 2c 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 61 20 3c 61 .the.operand,.which.must.be.a.<a
826a0 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 2c 20 3c 61 20 68 .href="#struct">struct</a>,.<a.h
826c0 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e 69 6f 6e 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d ref="#union">union</a>,.<a.href=
826e0 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 6f 72 20 3c 61 20 68 72 "#enum">enum</a>,.......or.<a.hr
82700 65 66 3d 22 23 6f 70 61 71 75 65 22 3e 6f 70 61 71 75 65 3c 2f 61 3e 2c 20 69 6e 74 6f 20 74 68 ef="#opaque">opaque</a>,.into.th
82720 65 20 6e 61 6d 65 73 70 61 63 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 e.namespace:.......</p>.......<f
82740 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
82760 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 75 73 69 6e 67 6e "><cite.class="file">test_usingn
82780 61 6d 65 73 70 61 63 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e amespace.zig</cite></figcaption>
827a0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
827c0 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
827e0 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 65 26 71 75 6f 74 ">&quot;using.std.namespace&quot
82800 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-
82820 6b 77 22 3e 63 6f 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 kw">const</span>.S.=.<span.class
82840 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>.{.......
82860 20 20 3c 73 70 61 6e 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 ..<span.class="tok-kw">usingname
82880 73 70 61 63 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 62 75 space</span>.<span.class="tok-bu
828a0 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
828c0 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
828e0 6e 3e 29 3b 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 n>);.....};.....<span.class="tok
82900 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 53 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 -kw">try</span>.S.testing.expect
82920 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
82940 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 an>);.}</code></pre></figure><fi
82960 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
82980 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
829a0 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 75 73 69 6e 67 6e 61 6d 65 73 70 $.<kbd>zig.test.test_usingnamesp
829c0 61 63 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 75 73 69 6e 67 6e 61 6d 65 ace.zig</kbd>.1/1.test_usingname
829e0 73 70 61 63 65 2e 74 65 73 74 2e 75 73 69 6e 67 20 73 74 64 20 6e 61 6d 65 73 70 61 63 65 2e 2e space.test.using.std.namespace..
82a00 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e ..OK.All.1.tests.passed..</samp>
82a20 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 </pre></figure>.......<p>.......
82a40 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 73 69 6e 67 <code><span.class="tok-kw">using
82a60 6e 61 6d 65 73 70 61 63 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 68 61 73 20 61 6e 20 69 namespace</span></code>.has.an.i
82a80 6d 70 6f 72 74 61 6e 74 20 75 73 65 20 63 61 73 65 20 77 68 65 6e 20 6f 72 67 61 6e 69 7a 69 6e mportant.use.case.when.organizin
82aa0 67 20 74 68 65 20 70 75 62 6c 69 63 0a 20 20 20 20 20 20 41 50 49 20 6f 66 20 61 20 66 69 6c 65 g.the.public.......API.of.a.file
82ac0 20 6f 72 20 70 61 63 6b 61 67 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6f 6e 65 20 6d 69 .or.package..For.example,.one.mi
82ae0 67 68 74 20 68 61 76 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 2e 7a 69 ght.have.<code.class="file">c.zi
82b00 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.......<
82b20 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
82b40 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>...
82b60 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
82b80 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 2e 7a 69 67 ig-cap"><cite.class="file">c.zig
82ba0 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c </cite></figcaption><pre><code><
82bc0 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>.<
82be0 73 70 61 6e 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 span.class="tok-kw">usingnamespa
82c00 63 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 62 75 69 6c 74 ce</span>.<span.class="tok-built
82c20 69 6e 22 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 in">@cImport</span>({.....<span.
82c40 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 73 class="tok-builtin">@cInclude</s
82c60 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
82c80 3b 65 70 6f 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 ;epoxy/gl.h&quot;</span>);.....<
82ca0 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 75 span.class="tok-builtin">@cInclu
82cc0 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 73 74 72 22 3e de</span>(<span.class="tok-str">
82ce0 26 71 75 6f 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 &quot;GLFW/glfw3.h&quot;</span>)
82d00 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">
82d20 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 3d 22 74 6f 6b @cDefine</span>(<span.class="tok
82d40 2d 73 74 72 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 -str">&quot;STBI_ONLY_PNG&quot;<
82d60 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
82d80 75 6f 74 3b 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 uot;&quot;</span>);.....<span.cl
82da0 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 70 61 6e ass="tok-builtin">@cDefine</span
82dc0 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 53 54 >(<span.class="tok-str">&quot;ST
82de0 42 49 5f 4e 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 BI_NO_STDIO&quot;</span>,.<span.
82e00 63 6c 61 73 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 class="tok-str">&quot;&quot;</sp
82e20 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 62 75 69 6c 74 an>);.....<span.class="tok-built
82e40 69 6e 22 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 in">@cInclude</span>(<span.class
82e60 3d 22 74 6f 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 ="tok-str">&quot;stb_image.h&quo
82e80 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 t;</span>);.});</code></pre></fi
82ea0 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 61 62 6f 76 65 20 gure>.......<p>.......The.above.
82ec0 65 78 61 6d 70 6c 65 20 64 65 6d 6f 6e 73 74 72 61 74 65 73 20 75 73 69 6e 67 20 3c 63 6f 64 65 example.demonstrates.using.<code
82ee0 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>
82f00 3c 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 </code>.to.qualify.the.......<co
82f20 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 75 73 69 6e 67 6e 61 6d de><span.class="tok-kw">usingnam
82f40 65 73 70 61 63 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 64 64 69 74 69 6f 6e 61 6c 6c espace</span></code>.additionall
82f60 79 20 6d 61 6b 65 73 20 74 68 65 20 69 6d 70 6f 72 74 65 64 20 64 65 63 6c 61 72 61 74 69 6f 6e y.makes.the.imported.declaration
82f80 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b s.......<code><span.class="tok-k
82fa0 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 63 61 6e 20 62 w">pub</span></code>..This.can.b
82fc0 65 20 75 73 65 64 20 74 6f 20 66 6f 72 77 61 72 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 e.used.to.forward.declarations,.
82fe0 67 69 76 69 6e 67 20 70 72 65 63 69 73 65 20 63 6f 6e 74 72 6f 6c 0a 20 20 20 20 20 20 6f 76 65 giving.precise.control.......ove
83000 72 20 77 68 61 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 20 67 69 76 65 6e 20 66 69 6c 65 r.what.declarations.a.given.file
83020 20 65 78 70 6f 73 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 0a 20 20 .exposes........</p>............
83040 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6f 6d 70 74 69 6d 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e ....<h2.id="comptime"><a.href="n
83060 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c av.xhtml#toc-comptime">comptime<
83080 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 63 6f 6d 70 74 69 /a>.<a.class="hdr".href="#compti
830a0 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 3e 0a 20 20 20 20 20 me">..</a></h2>........<p>......
830c0 20 5a 69 67 20 70 6c 61 63 65 73 20 69 6d 70 6f 72 74 61 6e 63 65 20 6f 6e 20 74 68 65 20 63 6f .Zig.places.importance.on.the.co
830e0 6e 63 65 70 74 20 6f 66 20 77 68 65 74 68 65 72 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 ncept.of.whether.an.expression.i
83100 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 54 s.known.at.compile-time........T
83120 68 65 72 65 20 61 72 65 20 61 20 66 65 77 20 64 69 66 66 65 72 65 6e 74 20 70 6c 61 63 65 73 20 here.are.a.few.different.places.
83140 74 68 69 73 20 63 6f 6e 63 65 70 74 20 69 73 20 75 73 65 64 2c 20 61 6e 64 20 74 68 65 73 65 20 this.concept.is.used,.and.these.
83160 62 75 69 6c 64 69 6e 67 20 62 6c 6f 63 6b 73 20 61 72 65 20 75 73 65 64 0a 20 20 20 20 20 20 74 building.blocks.are.used.......t
83180 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 2c 20 72 65 61 64 61 o.keep.the.language.small,.reada
831a0 62 6c 65 2c 20 61 6e 64 20 70 6f 77 65 72 66 75 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 ble,.and.powerful........</p>...
831c0 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6e 74 72 6f 64 75 63 69 6e 67 2d 74 68 65 2d 43 6f 6d 70 ....<h3.id="Introducing-the-Comp
831e0 69 6c 65 2d 54 69 6d 65 2d 43 6f 6e 63 65 70 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 ile-Time-Concept"><a.href="nav.x
83200 68 74 6d 6c 23 74 6f 63 2d 49 6e 74 72 6f 64 75 63 69 6e 67 2d 74 68 65 2d 43 6f 6d 70 69 6c 65 html#toc-Introducing-the-Compile
83220 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 68 65 20 43 -Time-Concept">Introducing.the.C
83240 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 6c 61 73 73 ompile-Time.Concept</a>.<a.class
83260 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 65 2d 43 6f ="hdr".href="#Introducing-the-Co
83280 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 68 33 3e 0a mpile-Time-Concept">..</a></h3>.
832a0 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 50 61 72 61 .......<h4.id="Compile-Time-Para
832c0 6d 65 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 meters"><a.href="nav.xhtml#toc-C
832e0 6f 6d 70 69 6c 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 ompile-Time-Parameters">Compile-
83300 54 69 6d 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 Time.Parameters</a>.<a.class="hd
83320 72 22 20 68 72 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 r".href="#Compile-Time-Parameter
83340 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 s">..</a></h4>........<p>.......
83360 43 6f 6d 70 69 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 Compile-time.parameters.is.how.Z
83380 69 67 20 69 6d 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 ig.implements.generics..It.is.co
833a0 6d 70 69 6c 65 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 mpile-time.duck.typing........</
833c0 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
833e0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
83400 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 5f 64 75 63 6b 5f 74 79 70 69 6e 67 2e 7a 69 67 3c 2f 63 69 compile-time_duck_typing.zig</ci
83420 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
83440 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.
83460 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.
83480 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
834a0 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
834c0 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.
834e0 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
83500 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.&
83520 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
83540 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-
83560 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
83580 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:
835a0 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
835c0 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
835e0 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"
83600 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
83620 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
83640 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
83660 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
83680 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
836a0 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
836c0 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:.<
836e0 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>
83700 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
83720 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
83740 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
83760 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
83780 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 de></pre></figure>.......<p>....
837a0 20 20 20 49 6e 20 5a 69 67 2c 20 74 79 70 65 73 20 61 72 65 20 66 69 72 73 74 2d 63 6c 61 73 73 ...In.Zig,.types.are.first-class
837c0 20 63 69 74 69 7a 65 6e 73 2e 20 54 68 65 79 20 63 61 6e 20 62 65 20 61 73 73 69 67 6e 65 64 20 .citizens..They.can.be.assigned.
837e0 74 6f 20 76 61 72 69 61 62 6c 65 73 2c 20 70 61 73 73 65 64 20 61 73 20 70 61 72 61 6d 65 74 65 to.variables,.passed.as.paramete
83800 72 73 20 74 6f 20 66 75 6e 63 74 69 6f 6e 73 2c 0a 20 20 20 20 20 20 61 6e 64 20 72 65 74 75 72 rs.to.functions,.......and.retur
83820 6e 65 64 20 66 72 6f 6d 20 66 75 6e 63 74 69 6f 6e 73 2e 20 48 6f 77 65 76 65 72 2c 20 74 68 65 ned.from.functions..However,.the
83840 79 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 69 6e 20 65 78 70 72 65 73 73 69 6f 6e y.can.only.be.used.in.expression
83860 73 20 77 68 69 63 68 20 61 72 65 20 6b 6e 6f 77 6e 20 61 74 20 3c 65 6d 3e 63 6f 6d 70 69 6c 65 s.which.are.known.at.<em>compile
83880 2d 74 69 6d 65 3c 2f 65 6d 3e 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 69 73 20 77 68 79 20 74 -time</em>,.......which.is.why.t
838a0 68 65 20 70 61 72 61 6d 65 74 65 72 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 69 6e 20 74 he.parameter.<code>T</code>.in.t
838c0 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 65 64 20 he.above.snippet.must.be.marked.
838e0 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e with.<code><span.class="tok-kw">
83900 63 6f 6d 70 74 69 6d 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 comptime</span></code>........</
83920 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 3c 63 6f 64 65 3e 3c 73 70 61 6e p>.......<p>.......A.<code><span
83940 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 3c .class="tok-kw">comptime</span><
83960 2f 63 6f 64 65 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 /code>.parameter.means.that:....
83980 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 41 ...</p>.......<ul>.........<li>A
839a0 74 20 74 68 65 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 t.the.callsite,.the.value.must.b
839c0 65 20 6b 6e 6f 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 e.known.at.compile-time,.or.it.i
839e0 73 20 61 20 63 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 s.a.compile.error.</li>.........
83a00 3c 6c 69 3e 49 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 <li>In.the.function.definition,.
83a20 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 69 6c 65 2d 74 69 the.value.is.known.at.compile-ti
83a40 6d 65 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 0a 20 me.</li>.......</ul>.......<p>..
83a60 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 77 65 20 77 65 72 65 20 74 6f 20 .....For.example,.if.we.were.to.
83a80 69 6e 74 72 6f 64 75 63 65 20 61 6e 6f 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74 68 introduce.another.function.to.th
83aa0 65 20 61 62 6f 76 65 20 73 6e 69 70 70 65 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 e.above.snippet:.......</p>.....
83ac0 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
83ae0 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 75 6e -cap"><cite.class="file">test_un
83b00 72 65 73 6f 6c 76 65 64 5f 63 6f 6d 70 74 69 6d 65 5f 76 61 6c 75 65 2e 7a 69 67 3c 2f 63 69 74 resolved_comptime_value.zig</cit
83b20 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
83b40 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
83b60 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 63 lass="tok-fn">max</span>(<span.c
83b80 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:
83ba0 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
83bc0 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 63 an>,.a:.T,.b:.T).T.{.....<span.c
83be0 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
83c00 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 67 n.class="tok-kw">if</span>.(a.&g
83c20 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 73 t;.b).a.<span.class="tok-kw">els
83c40 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 6b e</span>.b;.}.<span.class="tok-k
83c60 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-
83c80 73 74 72 22 3e 26 71 75 6f 74 3b 74 72 79 20 74 6f 20 70 61 73 73 20 61 20 72 75 6e 74 69 6d 65 str">&quot;try.to.pass.a.runtime
83ca0 20 74 79 70 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 3c 73 70 .type&quot;</span>.{.....foo(<sp
83cc0 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>
83ce0 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
83d00 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 73 70 an>.<span.class="tok-fn">foo</sp
83d20 61 6e 3e 28 63 6f 6e 64 69 74 69 6f 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d an>(condition:.<span.class="tok-
83d40 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 6c 61 73 73 3d 22 type">bool</span>).<span.class="
83d60 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 61 tok-type">void</span>.{.....<spa
83d80 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 65 n.class="tok-kw">const</span>.re
83da0 73 75 6c 74 20 3d 20 6d 61 78 28 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d sult.=.max(.........<span.class=
83dc0 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 3c "tok-kw">if</span>.(condition).<
83de0 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>
83e00 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
83e20 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 36 34 3c 2f 73 70 >.<span.class="tok-type">u64</sp
83e40 61 6e 3e 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 6e 75 an>,.........<span.class="tok-nu
83e60 6d 62 65 72 22 3e 31 32 33 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e mber">1234</span>,.........<span
83e80 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 6e 3e 29 .class="tok-number">5678</span>)
83ea0 3b 0a 20 20 20 20 5f 20 3d 20 72 65 73 75 6c 74 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e ;....._.=.result;.}</code></pre>
83ec0 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
83ee0 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
83f00 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 ><pre><samp>$.<kbd>zig.test.test
83f20 5f 75 6e 72 65 73 6f 6c 76 65 64 5f 63 6f 6d 70 74 69 6d 65 5f 76 61 6c 75 65 2e 7a 69 67 3c 2f _unresolved_comptime_value.zig</
83f40 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e kbd>.<span.class="sgr-1m">docgen
83f60 5f 74 6d 70 2f 74 65 73 74 5f 75 6e 72 65 73 6f 6c 76 65 64 5f 63 6f 6d 70 74 69 6d 65 5f 76 61 _tmp/test_unresolved_comptime_va
83f80 6c 75 65 2e 7a 69 67 3a 39 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 lue.zig:9:13:.</span><span.class
83fa0 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 ="sgr-31m">error:.</span><span.c
83fc0 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 75 6e 61 62 6c 65 20 74 6f 20 72 65 73 6f 6c 76 65 20 lass="sgr-1m">unable.to.resolve.
83fe0 63 6f 6d 70 74 69 6d 65 20 76 61 6c 75 65 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 69 66 comptime.value.</span>........if
84000 20 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 .(condition).f32.else.u64,......
84020 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e .......<span.class="sgr-32m">^~~
84040 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 ~~~~~~.</span><span.class="sgr-1
84060 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 75 6e 72 65 73 6f 6c 76 65 64 5f 63 6f m">docgen_tmp/test_unresolved_co
84080 6d 70 74 69 6d 65 5f 76 61 6c 75 65 2e 7a 69 67 3a 39 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 mptime_value.zig:9:13:.</span><s
840a0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e pan.class="sgr-36m">note:.</span
840c0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 63 6f 6e 64 69 74 69 6f 6e 20 ><span.class="sgr-1m">condition.
840e0 69 6e 20 63 6f 6d 70 74 69 6d 65 20 62 72 61 6e 63 68 20 6d 75 73 74 20 62 65 20 63 6f 6d 70 74 in.comptime.branch.must.be.compt
84100 69 6d 65 2d 6b 6e 6f 77 6e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 ime-known.</span><span.class="sg
84120 72 2d 32 6d 22 3e 72 65 66 65 72 65 6e 63 65 64 20 62 79 3a 0a 20 20 20 20 74 65 73 74 2e 74 72 r-2m">referenced.by:.....test.tr
84140 79 20 74 6f 20 70 61 73 73 20 61 20 72 75 6e 74 69 6d 65 20 74 79 70 65 3a 20 64 6f 63 67 65 6e y.to.pass.a.runtime.type:.docgen
84160 5f 74 6d 70 2f 74 65 73 74 5f 75 6e 72 65 73 6f 6c 76 65 64 5f 63 6f 6d 70 74 69 6d 65 5f 76 61 _tmp/test_unresolved_comptime_va
84180 6c 75 65 2e 7a 69 67 3a 35 3a 35 0a 20 20 20 20 72 65 6d 61 69 6e 69 6e 67 20 72 65 66 65 72 65 lue.zig:5:5.....remaining.refere
841a0 6e 63 65 20 74 72 61 63 65 73 20 68 69 64 64 65 6e 3b 20 75 73 65 20 27 2d 66 72 65 66 65 72 65 nce.traces.hidden;.use.'-frefere
841c0 6e 63 65 2d 74 72 61 63 65 27 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 65 66 65 72 65 6e 63 65 20 nce-trace'.to.see.all.reference.
841e0 74 72 61 63 65 73 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 traces.</span>.</samp></pre></fi
84200 67 75 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 61 6e gure>.......<p>.......This.is.an
84220 20 65 72 72 6f 72 20 62 65 63 61 75 73 65 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 61 74 .error.because.the.programmer.at
84240 74 65 6d 70 74 65 64 20 74 6f 20 70 61 73 73 20 61 20 76 61 6c 75 65 20 6f 6e 6c 79 20 6b 6e 6f tempted.to.pass.a.value.only.kno
84260 77 6e 20 61 74 20 72 75 6e 2d 74 69 6d 65 0a 20 20 20 20 20 20 74 6f 20 61 20 66 75 6e 63 74 69 wn.at.run-time.......to.a.functi
84280 6f 6e 20 77 68 69 63 68 20 65 78 70 65 63 74 73 20 61 20 76 61 6c 75 65 20 6b 6e 6f 77 6e 20 61 on.which.expects.a.value.known.a
842a0 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 20 20 20 20 20 t.compile-time........</p>......
842c0 20 3c 70 3e 0a 20 20 20 20 20 20 41 6e 6f 74 68 65 72 20 77 61 79 20 74 6f 20 67 65 74 20 61 6e .<p>.......Another.way.to.get.an
842e0 20 65 72 72 6f 72 20 69 73 20 69 66 20 77 65 20 70 61 73 73 20 61 20 74 79 70 65 20 74 68 61 74 .error.is.if.we.pass.a.type.that
84300 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 74 79 70 65 20 63 68 65 63 6b 65 72 20 77 68 65 6e 20 .violates.the.type.checker.when.
84320 74 68 65 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 6e 61 6c 79 7a 65 64 2e 20 the.......function.is.analyzed..
84340 54 68 69 73 20 69 73 20 77 68 61 74 20 69 74 20 6d 65 61 6e 73 20 74 6f 20 68 61 76 65 20 3c 65 This.is.what.it.means.to.have.<e
84360 6d 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 64 75 63 6b 20 74 79 70 69 6e 67 3c 2f 65 6d 3e 2e m>compile-time.duck.typing</em>.
84380 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 20 .......</p>.......<p>.......For.
843a0 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 66 69 67 75 72 example:.......</p>.......<figur
843c0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
843e0 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6d ite.class="file">test_comptime_m
84400 69 73 6d 61 74 63 68 65 64 5f 74 79 70 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 ismatched_type.zig</cite></figca
84420 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
84440 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
84460 2d 66 6e 22 3e 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 -fn">max</span>(<span.class="tok
84480 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 6c -kw">comptime</span>.T:.<span.cl
844a0 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 54 ass="tok-type">type</span>,.a:.T
844c0 2c 20 62 3a 20 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 ,.b:.T).T.{.....<span.class="tok
844e0 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 22 -kw">return</span>.<span.class="
84500 74 6f 6b 2d 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 61 20 26 67 74 3b 20 62 29 20 61 20 3c tok-kw">if</span>.(a.&gt;.b).a.<
84520 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>.
84540 62 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 74 65 73 74 3c 2f b;.}.<span.class="tok-kw">test</
84560 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
84580 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
845a0 61 6e 3e 20 7b 0a 20 20 20 20 5f 20 3d 20 6d 61 78 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 an>.{....._.=.max(<span.class="t
845c0 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
845e0 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 20 s="tok-null">true</span>,.<span.
84600 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 3b 0a class="tok-null">false</span>);.
84620 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
84640 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
84660 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
84680 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6d 69 73 6d 61 74 63 68 >zig.test.test_comptime_mismatch
846a0 65 64 5f 74 79 70 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 ed_type.zig</kbd>.<span.class="s
846c0 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f gr-1m">docgen_tmp/test_comptime_
846e0 6d 69 73 6d 61 74 63 68 65 64 5f 74 79 70 65 2e 7a 69 67 3a 32 3a 31 38 3a 20 3c 2f 73 70 61 6e mismatched_type.zig:2:18:.</span
84700 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f ><span.class="sgr-31m">error:.</
84720 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 6f 70 65 72 61 74 span><span.class="sgr-1m">operat
84740 6f 72 20 26 67 74 3b 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 66 6f 72 20 74 79 70 65 20 27 62 6f or.&gt;.not.allowed.for.type.'bo
84760 6f 6c 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 61 20 26 67 74 3b ol'.</span>....return.if.(a.&gt;
84780 20 62 29 20 61 20 65 6c 73 65 20 62 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 .b).a.else.b;................<sp
847a0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e 5e 7e 7e 0a 3c 2f 73 70 61 6e 3e an.class="sgr-32m">~~^~~.</span>
847c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 72 65 66 65 72 65 6e 63 65 64 20 <span.class="sgr-2m">referenced.
847e0 62 79 3a 0a 20 20 20 20 74 65 73 74 2e 74 72 79 20 74 6f 20 63 6f 6d 70 61 72 65 20 62 6f 6f 6c by:.....test.try.to.compare.bool
84800 73 3a 20 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6d 69 73 6d s:.docgen_tmp/test_comptime_mism
84820 61 74 63 68 65 64 5f 74 79 70 65 2e 7a 69 67 3a 35 3a 31 32 0a 20 20 20 20 72 65 6d 61 69 6e 69 atched_type.zig:5:12.....remaini
84840 6e 67 20 72 65 66 65 72 65 6e 63 65 20 74 72 61 63 65 73 20 68 69 64 64 65 6e 3b 20 75 73 65 20 ng.reference.traces.hidden;.use.
84860 27 2d 66 72 65 66 65 72 65 6e 63 65 2d 74 72 61 63 65 27 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 '-freference-trace'.to.see.all.r
84880 65 66 65 72 65 6e 63 65 20 74 72 61 63 65 73 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c eference.traces.</span>.</samp><
848a0 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f /pre></figure>.......<p>.......O
848c0 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 6e 63 n.the.flip.side,.inside.the.func
848e0 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 3e 3c tion.definition.with.the.<code><
84900 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
84920 61 6e 3e 3c 2f 63 6f 64 65 3e 20 70 61 72 61 6d 65 74 65 72 2c 20 74 68 65 0a 20 20 20 20 20 20 an></code>.parameter,.the.......
84940 76 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 20 value.is.known.at.compile-time..
84960 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 20 61 63 74 75 61 6c 6c 79 20 63 6f 75 6c This.means.that.we.actually.coul
84980 64 20 6d 61 6b 65 20 74 68 69 73 20 77 6f 72 6b 20 66 6f 72 20 74 68 65 20 62 6f 6f 6c 20 74 79 d.make.this.work.for.the.bool.ty
849a0 70 65 0a 20 20 20 20 20 20 69 66 20 77 65 20 77 61 6e 74 65 64 20 74 6f 3a 0a 20 20 20 20 20 20 pe.......if.we.wanted.to:.......
849c0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
849e0 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
84a00 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6d 61 78 5f 77 69 74 68 5f 62 6f 6f 6c 2e 7a 69 ">test_comptime_max_with_bool.zi
84a20 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
84a40 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>.<
84a60 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 6e 3e 28 3c span.class="tok-fn">max</span>(<
84a80 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
84aa0 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 79 an>.T:.<span.class="tok-type">ty
84ac0 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 20 20 20 3c pe</span>,.a:.T,.b:.T).T.{.....<
84ae0 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 54 span.class="tok-kw">if</span>.(T
84b00 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 62 6f 6f 6c 3c .==.<span.class="tok-type">bool<
84b20 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
84b40 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 20 3c 73 70 61 6e 20 63 6c 61 ok-kw">return</span>.a.<span.cla
84b60 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 3c 2f 73 70 61 6e 3e 20 62 3b 0a 20 20 20 20 7d 20 3c ss="tok-kw">or</span>.b;.....}.<
84b80 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>.
84ba0 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>.(
84bc0 61 20 26 67 74 3b 20 62 29 20 7b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d a.&gt;.b).{.........<span.class=
84be0 22 74 6f 6b 2d 6b 77 22 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 61 3b 0a 20 20 20 20 7d 20 "tok-kw">return</span>.a;.....}.
84c00 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>
84c20 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 3e .{.........<span.class="tok-kw">
84c40 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 62 3b 0a 20 20 20 20 7d 0a 7d 0a 3c 73 70 61 6e 20 63 return</span>.b;.....}.}.<span.c
84c60 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.
84c80 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 63 6f 6d class="tok-str">&quot;try.to.com
84ca0 70 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 3c 73 pare.bools&quot;</span>.{.....<s
84cc0 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 3c 73 pan.class="tok-kw">try</span>.<s
84ce0 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<
84d00 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
84d20 6f 74 3b 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 ot;std&quot;</span>).testing.exp
84d40 65 63 74 28 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 ect(max(<span.class="tok-type">b
84d60 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 2d 6e 75 6c ool</span>,.<span.class="tok-nul
84d80 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 74 6f l">false</span>,.<span.class="to
84da0 6b 2d 6e 75 6c 6c 22 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 k-null">true</span>).==.<span.cl
84dc0 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 7d 3c 2f ass="tok-null">true</span>);.}</
84de0 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
84e00 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
84e20 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
84e40 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6d 61 78 5f 77 69 74 68 5f 62 6f g.test.test_comptime_max_with_bo
84e60 6f 6c 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6d ol.zig</kbd>.1/1.test_comptime_m
84e80 61 78 5f 77 69 74 68 5f 62 6f 6f 6c 2e 74 65 73 74 2e 74 72 79 20 74 6f 20 63 6f 6d 70 61 72 65 ax_with_bool.test.try.to.compare
84ea0 20 62 6f 6f 6c 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e .bools....OK.All.1.tests.passed.
84ec0 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 .</samp></pre></figure>.......<p
84ee0 3e 0a 20 20 20 20 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 >.......This.works.because.Zig.i
84f00 6d 70 6c 69 63 69 74 6c 79 20 69 6e 6c 69 6e 65 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c mplicitly.inlines.<code><span.cl
84f20 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 20 65 78 ass="tok-kw">if</span></code>.ex
84f40 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 6f 6e 0a 20 20 20 pressions.when.the.condition....
84f60 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 65 2c 20 61 6e 64 ...is.known.at.compile-time,.and
84f80 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 68 61 74 20 69 74 .the.compiler.guarantees.that.it
84fa0 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 20 20 20 74 68 65 .will.skip.analysis.of.......the
84fc0 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 2f 70 3e 0a 20 20 .branch.not.taken........</p>...
84fe0 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 74 68 ....<p>.......This.means.that.th
85000 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 64 20 66 6f 72 20 e.actual.function.generated.for.
85020 3c 63 6f 64 65 3e 6d 61 78 3c 2f 63 6f 64 65 3e 20 69 6e 20 74 68 69 73 20 73 69 74 75 61 74 69 <code>max</code>.in.this.situati
85040 6f 6e 20 6c 6f 6f 6b 73 20 6c 69 6b 65 0a 20 20 20 20 20 20 74 68 69 73 3a 0a 20 20 20 20 20 20 on.looks.like.......this:.......
85060 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
85080 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
850a0 22 3e 63 6f 6d 70 69 6c 65 72 5f 67 65 6e 65 72 61 74 65 64 5f 66 75 6e 63 74 69 6f 6e 2e 7a 69 ">compiler_generated_function.zi
850c0 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
850e0 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>.<
85100 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 6e 3e 28 61 span.class="tok-fn">max</span>(a
85120 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
85140 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 70 65 22 3e pan>,.b:.<span.class="tok-type">
85160 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 6b 2d 74 79 bool</span>).<span.class="tok-ty
85180 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 pe">bool</span>.{.....{.........
851a0 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
851c0 6e 3e 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 n>.a.<span.class="tok-kw">or</sp
851e0 61 6e 3e 20 62 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 an>.b;.....}.}</code></pre></fig
85200 75 72 65 3e 0a 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 ure>.......<p>.......All.the.cod
85220 65 20 74 68 61 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 e.that.dealt.with.compile-time.k
85240 6e 6f 77 6e 20 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 nown.values.is.eliminated.and.we
85260 20 61 72 65 20 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 .are.left.with.only.......the.ne
85280 63 65 73 73 61 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 cessary.run-time.code.to.accompl
852a0 69 73 68 20 74 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 ish.the.task........</p>.......<
852c0 70 3e 0a 20 20 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 p>.......This.works.the.same.way
852e0 20 66 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e .for.<code><span.class="tok-kw">
85300 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 65 73 73 69 6f 6e 73 switch</span></code>.expressions
85320 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 6c 69 6e 65 64 0a 20 .-.they.are.implicitly.inlined..
85340 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 65 73 73 69 6f 6e 20 .....when.the.target.expression.
85360 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 20 20 20 20 3c 2f 70 is.compile-time.known........</p
85380 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 43 6f 6d 70 69 6c 65 2d 54 >..............<h4.id="Compile-T
853a0 69 6d 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d ime-Variables"><a.href="nav.xhtm
853c0 6c 23 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 l#toc-Compile-Time-Variables">Co
853e0 6d 70 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 mpile-Time.Variables</a>.<a.clas
85400 73 3d 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 s="hdr".href="#Compile-Time-Vari
85420 61 62 6c 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 ables">..</a></h4>........<p>...
85440 20 20 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 ....In.Zig,.the.programmer.can.l
85460 61 62 65 6c 20 76 61 72 69 61 62 6c 65 73 20 61 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c abel.variables.as.<code><span.cl
85480 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
854a0 64 65 3e 2e 20 54 68 69 73 20 67 75 61 72 61 6e 74 65 65 73 20 74 6f 20 74 68 65 20 63 6f 6d 70 de>..This.guarantees.to.the.comp
854c0 69 6c 65 72 0a 20 20 20 20 20 20 74 68 61 74 20 65 76 65 72 79 20 6c 6f 61 64 20 61 6e 64 20 73 iler.......that.every.load.and.s
854e0 74 6f 72 65 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 70 65 72 66 6f 72 6d 65 tore.of.the.variable.is.performe
85500 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 41 6e 79 20 76 69 6f 6c 61 74 69 6f 6e d.at.compile-time..Any.violation
85520 20 6f 66 20 74 68 69 73 20 72 65 73 75 6c 74 73 20 69 6e 20 61 0a 20 20 20 20 20 20 63 6f 6d 70 .of.this.results.in.a.......comp
85540 69 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 ile.error........</p>.......<p>.
85560 20 20 20 20 20 20 54 68 69 73 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 74 68 65 20 66 61 63 ......This.combined.with.the.fac
85580 74 20 74 68 61 74 20 77 65 20 63 61 6e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d t.that.we.can.<code><span.class=
855a0 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 6f "tok-kw">inline</span></code>.lo
855c0 6f 70 73 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 77 72 69 74 65 0a 20 20 20 20 20 20 61 20 66 ops.allows.us.to.write.......a.f
855e0 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 69 73 20 70 61 72 74 69 61 6c 6c 79 20 65 76 61 6c 75 unction.which.is.partially.evalu
85600 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 70 61 72 74 69 61 6c ated.at.compile-time.and.partial
85620 6c 79 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 20 20 20 ly.at.run-time........</p>......
85640 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f .<p>.......For.example:.......</
85660 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
85680 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
856a0 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 65 76 61 6c 75 61 74 69 6f 6e 2e 7a 69 67 3c 2f 63 69 test_comptime_evaluation.zig</ci
856c0 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
856e0 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 78 70 .class="tok-kw">const</span>.exp
85700 65 63 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 ect.=.<span.class="tok-builtin">
85720 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-
85740 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 74 65 73 str">&quot;std&quot;</span>).tes
85760 74 69 6e 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 ting.expect;..<span.class="tok-k
85780 77 22 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 w">const</span>.CmdFn.=.<span.cl
857a0 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>.{....
857c0 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
857e0 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
85800 22 3e 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 ">u8</span>,.....func:.<span.cla
85820 73 73 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 ss="tok-kw">fn</span>(<span.clas
85840 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
85860 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>,.};..
85880 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
858a0 3e 20 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 >.cmd_fns.=.[_]CmdFn{.....CmdFn.
858c0 7b 2e 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 {.name.=.<span.class="tok-str">&
858e0 71 75 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 quot;one&quot;</span>,..func.=.o
85900 6e 65 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 ne},.....CmdFn.{.name.=.<span.cl
85920 61 73 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 ass="tok-str">&quot;two&quot;</s
85940 70 61 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 pan>,..func.=.two},.....CmdFn.{.
85960 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
85980 6f 74 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 ot;three&quot;</span>,..func.=.t
859a0 68 72 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 hree},.};.<span.class="tok-kw">f
859c0 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 6f 6e n</span>.<span.class="tok-fn">on
859e0 65 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 74 6f 6b e</span>(value:.<span.class="tok
85a00 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="
85a20 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 6e 20 63 6c 61 tok-type">i32</span>.{.<span.cla
85a40 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 76 61 6c 75 65 20 ss="tok-kw">return</span>.value.
85a60 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 2f 73 70 +.<span.class="tok-number">1</sp
85a80 61 6e 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 an>;.}.<span.class="tok-kw">fn</
85aa0 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 74 77 6f 3c 2f span>.<span.class="tok-fn">two</
85ac0 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
85ae0 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 6b pe">i32</span>).<span.class="tok
85b00 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 3d -type">i32</span>.{.<span.class=
85b20 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 3c "tok-kw">return</span>.value.+.<
85b40 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>
85b60 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 61 ;.}.<span.class="tok-kw">fn</spa
85b80 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 68 72 65 65 3c 2f 73 n>.<span.class="tok-fn">three</s
85ba0 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 70 pan>(value:.<span.class="tok-typ
85bc0 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 6b 2d e">i32</span>).<span.class="tok-
85be0 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 3d 22 type">i32</span>.{.<span.class="
85c00 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 3c 73 tok-kw">return</span>.value.+.<s
85c20 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>;
85c40 20 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
85c60 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
85c80 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 6b 77 22 3e 63 6f n</span>(<span.class="tok-kw">co
85ca0 6d 70 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 mptime</span>.prefix_char:.<span
85cc0 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 73 74 61 .class="tok-type">u8</span>,.sta
85ce0 72 74 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 rt_value:.<span.class="tok-type"
85d00 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
85d20 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
85d40 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
85d60 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>.=
85d80 20 73 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 .start_value;.....<span.class="t
85da0 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 61 ok-kw">comptime</span>.<span.cla
85dc0 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
85de0 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>;...
85e00 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
85e20 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 77 68 69 6c 65 3c pan>.<span.class="tok-kw">while<
85e40 2f 73 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 /span>.(i.&lt;.cmd_fns.len).:.(i
85e60 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 2f .+=.<span.class="tok-number">1</
85e80 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 6f span>).{.........<span.class="to
85ea0 6b 2d 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 k-kw">if</span>.(cmd_fns[i].name
85ec0 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
85ee0 6e 3e 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 n>].==.prefix_char).{...........
85f00 20 20 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 ..result.=.cmd_fns[i].func(resul
85f20 74 29 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 t);.........}.....}.....<span.cl
85f40 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
85f60 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 74 65 73 74 3c t;.}..<span.class="tok-kw">test<
85f80 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
85fa0 6f 74 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 ot;perform.fn&quot;</span>.{....
85fc0 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>
85fe0 20 65 78 70 65 63 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 .expect(performFn(<span.class="t
86000 6f 6b 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 ok-str">'t'</span>,.<span.class=
86020 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 20 "tok-number">1</span>).==.<span.
86040 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 29 3b 0a 20 20 class="tok-number">6</span>);...
86060 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
86080 3e 20 65 78 70 65 63 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 >.expect(performFn(<span.class="
860a0 74 6f 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 tok-str">'o'</span>,.<span.class
860c0 3d 22 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 ="tok-number">0</span>).==.<span
860e0 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>);..
86100 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 61 ...<span.class="tok-kw">try</spa
86120 6e 3e 20 65 78 70 65 63 74 28 70 65 72 66 6f 72 6d 46 6e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d n>.expect(performFn(<span.class=
86140 22 74 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 "tok-str">'w'</span>,.<span.clas
86160 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 20 3d 3d 20 3c 73 70 s="tok-number">99</span>).==.<sp
86180 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 3e 29 an.class="tok-number">99</span>)
861a0 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 ;.}</code></pre></figure><figure
861c0 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 ><figcaption.class="shell-cap">S
861e0 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b hell</figcaption><pre><samp>$.<k
86200 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 65 76 61 6c 75 61 bd>zig.test.test_comptime_evalua
86220 74 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 tion.zig</kbd>.1/1.test_comptime
86240 5f 65 76 61 6c 75 61 74 69 6f 6e 2e 74 65 73 74 2e 70 65 72 66 6f 72 6d 20 66 6e 2e 2e 2e 20 4f _evaluation.test.perform.fn....O
86260 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 K.All.1.tests.passed..</samp></p
86280 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 re></figure>.......<p>.......Thi
862a0 73 20 65 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 s.example.is.a.bit.contrived,.be
862c0 63 61 75 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 cause.the.compile-time.evaluatio
862e0 6e 20 63 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 n.component.is.unnecessary;.....
86300 20 20 74 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 ..this.code.would.work.fine.if.i
86320 74 20 77 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 t.was.all.done.at.run-time..But.
86340 69 74 20 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 it.does.end.up.generating.......
86360 64 69 66 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 different.code..In.this.example,
86380 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 63 6f 64 65 3e 70 65 72 66 6f 72 6d 46 6e 3c 2f 63 .the.function.<code>performFn</c
863a0 6f 64 65 3e 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 74 68 72 65 65 20 64 69 66 66 65 72 65 6e ode>.is.generated.three.differen
863c0 74 20 74 69 6d 65 73 2c 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 68 65 20 64 69 66 66 65 t.times,...........for.the.diffe
863e0 72 65 6e 74 20 76 61 6c 75 65 73 20 6f 66 20 3c 63 6f 64 65 3e 70 72 65 66 69 78 5f 63 68 61 72 rent.values.of.<code>prefix_char
86400 3c 2f 63 6f 64 65 3e 20 70 72 6f 76 69 64 65 64 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 </code>.provided:.......</p>....
86420 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
86440 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 65 72 66 6f 72 g-cap"><cite.class="file">perfor
86460 6d 46 6e 5f 31 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 mFn_1</cite></figcaption><pre><c
86480 6f 64 65 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 ode><span.class="tok-comment">//
864a0 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 3a 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 .From.the.line:</span>.<span.cla
864c0 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 65 78 70 65 63 74 28 70 65 72 66 6f ss="tok-comment">//.expect(perfo
864e0 72 6d 46 6e 28 27 74 27 2c 20 31 29 20 3d 3d 20 36 29 3b 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e rmFn('t',.1).==.6);</span>.<span
86500 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.
86520 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 2f 73 70 61 6e 3e 28 class="tok-fn">performFn</span>(
86540 73 74 61 72 74 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 start_value:.<span.class="tok-ty
86560 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 6b pe">i32</span>).<span.class="tok
86580 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 6c -type">i32</span>.{.....<span.cl
865a0 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 74 3a 20 ass="tok-kw">var</span>.result:.
865c0 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
865e0 3e 20 3d 20 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3d 20 74 77 >.=.start_value;.....result.=.tw
86600 6f 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3d 20 74 68 72 65 65 28 72 65 o(result);.....result.=.three(re
86620 73 75 6c 74 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 sult);.....<span.class="tok-kw">
86640 72 65 74 75 72 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 return</span>.result;.}</code></
86660 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 pre></figure>.......<figure><fig
86680 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c caption.class="zig-cap"><cite.cl
866a0 61 73 73 3d 22 66 69 6c 65 22 3e 70 65 72 66 6f 72 6d 46 6e 5f 32 3c 2f 63 69 74 65 3e 3c 2f 66 ass="file">performFn_2</cite></f
866c0 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
866e0 3d 22 74 6f 6b 2d 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 ="tok-comment">//.From.the.line:
86700 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
86720 22 3e 2f 2f 20 65 78 70 65 63 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 6f 27 2c 20 30 29 20 3d 3d ">//.expect(performFn('o',.0).==
86740 20 31 29 3b 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 .1);</span>.<span.class="tok-kw"
86760 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">
86780 70 65 72 66 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 performFn</span>(start_value:.<s
867a0 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 29 pan.class="tok-type">i32</span>)
867c0 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
867e0 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
86800 72 3c 2f 73 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 r</span>.result:.<span.class="to
86820 6b 2d 74 79 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 k-type">i32</span>.=.start_value
86840 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3d 20 6f 6e 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 ;.....result.=.one(result);.....
86860 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
86880 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 2f 66 69 67 75 72 n>.result;.}</code></pre></figur
868a0 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 e>.......<figure><figcaption.cla
868c0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
868e0 70 65 72 66 6f 72 6d 46 6e 5f 33 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c performFn_3</cite></figcaption><
86900 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 pre><code><span.class="tok-comme
86920 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 3c 73 70 nt">//.From.the.line:</span>.<sp
86940 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 78 70 65 63 74 an.class="tok-comment">//.expect
86960 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 3c 2f 73 70 61 (performFn('w',.99).==.99);</spa
86980 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 6e n>.<span.class="tok-kw">fn</span
869a0 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 6e >.<span.class="tok-fn">performFn
869c0 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 73 </span>(start_value:.<span.class
869e0 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
86a00 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 20 ass="tok-type">i32</span>.{.....
86a20 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>.
86a40 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 69 result:.<span.class="tok-type">i
86a60 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 5f 20 3d 32</span>.=.start_value;....._.=
86a80 20 26 61 6d 70 3b 72 65 73 75 6c 74 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .&amp;result;.....<span.class="t
86aa0 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 3c 2f ok-kw">return</span>.result;.}</
86ac0 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 code></pre></figure>.......<p>..
86ae0 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 6e 73 20 65 76 65 6e .....Note.that.this.happens.even
86b00 20 69 6e 20 61 20 64 65 62 75 67 20 62 75 69 6c 64 2e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 .in.a.debug.build........This.is
86b20 20 6e 6f 74 20 61 20 77 61 79 20 74 6f 20 77 72 69 74 65 20 6d 6f 72 65 20 6f 70 74 69 6d 69 7a .not.a.way.to.write.more.optimiz
86b40 65 64 20 63 6f 64 65 2c 20 62 75 74 20 69 74 20 69 73 20 61 20 77 61 79 20 74 6f 20 6d 61 6b 65 ed.code,.but.it.is.a.way.to.make
86b60 20 73 75 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 .sure.that.what.<em>should</em>.
86b80 68 61 70 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 happen.......at.compile-time,.<e
86ba0 6d 3e 64 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 m>does</em>.happen.at.compile-ti
86bc0 6d 65 2e 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 me..This.catches.more.errors.and
86be0 20 61 6c 6c 6f 77 73 20 65 78 70 72 65 73 73 69 76 65 6e 65 73 73 0a 20 20 20 20 20 20 74 68 61 .allows.expressiveness.......tha
86c00 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 73 20 75 73 t.in.other.languages.requires.us
86c20 69 6e 67 20 6d 61 63 72 6f 73 2c 20 67 65 6e 65 72 61 74 65 64 20 63 6f 64 65 2c 20 6f 72 20 61 ing.macros,.generated.code,.or.a
86c40 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73 68 2e 0a 20 20 20 .preprocessor.to.accomplish.....
86c60 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 43 6f 6d ...</p>..............<h4.id="Com
86c80 70 69 6c 65 2d 54 69 6d 65 2d 45 78 70 72 65 73 73 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 pile-Time-Expressions"><a.href="
86ca0 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 45 78 70 72 65 nav.xhtml#toc-Compile-Time-Expre
86cc0 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 73 ssions">Compile-Time.Expressions
86ce0 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 69 </a>.<a.class="hdr".href="#Compi
86d00 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 34 3e le-Time-Expressions">..</a></h4>
86d20 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 74 ........<p>.......In.Zig,.it.mat
86d40 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 20 ters.whether.a.given.expression.
86d60 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 2d is.known.at.compile-time.or.run-
86d80 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 65 time..A.programmer.can.......use
86da0 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f .a.<code><span.class="tok-kw">co
86dc0 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 65 73 73 69 6f 6e 20 mptime</span></code>.expression.
86de0 74 6f 20 67 75 61 72 61 6e 74 65 65 20 74 68 61 74 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e to.guarantee.that.the.expression
86e00 20 77 69 6c 6c 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 .will.be.evaluated.at.compile-ti
86e20 6d 65 2e 0a 20 20 20 20 20 20 49 66 20 74 68 69 73 20 63 61 6e 6e 6f 74 20 62 65 20 61 63 63 6f me........If.this.cannot.be.acco
86e40 6d 70 6c 69 73 68 65 64 2c 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 77 69 6c 6c 20 65 6d 69 74 mplished,.the.compiler.will.emit
86e60 20 61 6e 20 65 72 72 6f 72 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f .an.error..For.example:.......</
86e80 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
86ea0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
86ec0 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 63 61 6c 6c 5f 65 78 74 65 72 6e 5f 66 75 6e 63 74 69 test_comptime_call_extern_functi
86ee0 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c on.zig</cite></figcaption><pre><
86f00 63 6f 64 65 3e 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 code><span.class="tok-kw">extern
86f20 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<
86f40 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 65 78 69 74 /span>.<span.class="tok-fn">exit
86f60 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"
86f80 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 73 73 3d 22 >noreturn</span>;..<span.class="
86fa0 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=
86fc0 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 3e "tok-str">&quot;foo&quot;</span>
86fe0 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
87000 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 3b 0a 20 20 time</span>.{.........exit();...
87020 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 ..}.}</code></pre></figure><figu
87040 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 re><figcaption.class="shell-cap"
87060 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 >Shell</figcaption><pre><samp>$.
87080 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 63 61 6c 6c <kbd>zig.test.test_comptime_call
870a0 5f 65 78 74 65 72 6e 5f 66 75 6e 63 74 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e _extern_function.zig</kbd>.<span
870c0 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f .class="sgr-1m">docgen_tmp/test_
870e0 63 6f 6d 70 74 69 6d 65 5f 63 61 6c 6c 5f 65 78 74 65 72 6e 5f 66 75 6e 63 74 69 6f 6e 2e 7a 69 comptime_call_extern_function.zi
87100 67 3a 35 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d g:5:13:.</span><span.class="sgr-
87120 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 31m">error:.</span><span.class="
87140 73 67 72 2d 31 6d 22 3e 63 6f 6d 70 74 69 6d 65 20 63 61 6c 6c 20 6f 66 20 65 78 74 65 72 6e 20 sgr-1m">comptime.call.of.extern.
87160 66 75 6e 63 74 69 6f 6e 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 65 78 69 74 28 29 3b 0a function.</span>........exit();.
87180 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e ........<span.class="sgr-32m">~~
871a0 7e 7e 5e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 ~~^~.</span>.</samp></pre></figu
871c0 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 64 6f 65 73 6e 27 74 20 6d re>.......<p>.......It.doesn't.m
871e0 61 6b 65 20 73 65 6e 73 65 20 74 68 61 74 20 61 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 20 63 ake.sense.that.a.program.could.c
87200 61 6c 6c 20 3c 63 6f 64 65 3e 65 78 69 74 28 29 3c 2f 63 6f 64 65 3e 20 28 6f 72 20 61 6e 79 20 all.<code>exit()</code>.(or.any.
87220 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 20 20 20 other.external.function)........
87240 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 73 20 61 ...at.compile-time,.so.this.is.a
87260 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 6f 64 65 .compile.error..However,.a.<code
87280 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</
872a0 73 70 61 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 6d 75 63 span></code>.expression.does.muc
872c0 68 0a 20 20 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 h.......more.than.sometimes.caus
872e0 65 20 61 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 20 20 e.a.compile.error........</p>...
87300 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 69 74 68 69 6e 20 61 20 3c 63 6f 64 65 3e 3c 73 70 ....<p>.......Within.a.<code><sp
87320 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
87340 3e 3c 2f 63 6f 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 ></code>.expression:.......</p>.
87360 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 6c 6c 20 76 61 72 ......<ul>...........<li>All.var
87380 69 61 62 6c 65 73 20 61 72 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f iables.are.<code><span.class="to
873a0 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 76 61 72 k-kw">comptime</span></code>.var
873c0 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 69 3e 41 6c 6c 20 3c iables.</li>...........<li>All.<
873e0 63 6f 64 65 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 code><span.class="tok-kw">if</sp
87400 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 an></code>,.<code><span.class="t
87420 6f 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 ok-kw">while</span></code>,.<cod
87440 65 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 6e e><span.class="tok-kw">for</span
87460 3e 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ></code>,.and.<code><span.class=
87480 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 0a 20 20 "tok-kw">switch</span></code>...
874a0 20 20 20 20 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 65 76 61 6c 75 61 74 65 ........expressions.are.evaluate
874c0 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 6f 72 20 65 6d 69 74 20 61 20 63 6f 6d d.at.compile-time,.or.emit.a.com
874e0 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 pile.error.if.this.is.not.possib
87500 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6c 6c 20 3c 63 6f 64 65 le.</li>...........<li>All.<code
87520 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 3c 2f 73 70 ><span.class="tok-kw">return</sp
87540 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 an></code>.and.<code><span.class
87560 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 78 70 72 ="tok-kw">try</span></code>.expr
87580 65 73 73 69 6f 6e 73 20 61 72 65 20 69 6e 76 61 6c 69 64 20 28 75 6e 6c 65 73 73 20 74 68 65 20 essions.are.invalid.(unless.the.
875a0 66 75 6e 63 74 69 6f 6e 20 69 74 73 65 6c 66 20 69 73 20 63 61 6c 6c 65 64 20 61 74 20 63 6f 6d function.itself.is.called.at.com
875c0 70 69 6c 65 2d 74 69 6d 65 29 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 pile-time).</li>...........<li>A
875e0 6c 6c 20 63 6f 64 65 20 77 69 74 68 20 72 75 6e 74 69 6d 65 20 73 69 64 65 20 65 66 66 65 63 74 ll.code.with.runtime.side.effect
87600 73 20 6f 72 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 72 75 6e 74 69 6d 65 20 76 61 6c 75 65 73 s.or.depending.on.runtime.values
87620 20 65 6d 69 74 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 .emits.a.compile.error.</li>....
87640 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 61 .......<li>All.function.calls.ca
87660 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 68 use.the.compiler.to.interpret.th
87680 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 74 e.function.at.compile-time,.emit
876a0 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 69 ting.a...........compile.error.i
876c0 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 74 f.the.function.tries.to.do.somet
876e0 68 69 6e 67 20 74 68 61 74 20 68 61 73 20 67 6c 6f 62 61 6c 20 72 75 6e 74 69 6d 65 20 73 69 64 hing.that.has.global.runtime.sid
87700 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 20 20 e.effects.</li>.......</ul>.....
87720 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 70 72 ..<p>.......This.means.that.a.pr
87740 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 20 77 ogrammer.can.create.a.function.w
87760 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 2d 74 hich.is.called.both.at.compile-t
87780 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 6f 20 ime.and.run-time,.with.......no.
877a0 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 65 71 modification.to.the.function.req
877c0 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 20 20 uired........</p>.......<p>.....
877e0 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 20 20 ..Let's.look.at.an.example:.....
87800 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
87820 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
87840 6c 65 22 3e 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 72 65 63 75 72 73 69 6f 6e 2e 7a 69 67 le">test_fibonacci_recursion.zig
87860 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c </cite></figcaption><pre><code><
87880 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>
878a0 20 65 78 70 65 63 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 .expect.=.<span.class="tok-built
878c0 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="
878e0 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>)
87900 2e 74 65 73 74 69 6e 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 .testing.expect;..<span.class="t
87920 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
87940 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 73 k-fn">fibonacci</span>(index:.<s
87960 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>)
87980 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
879a0 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 66 n>.{.....<span.class="tok-kw">if
879c0 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 3d </span>.(index.&lt;.<span.class=
879e0 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 61 "tok-number">2</span>).<span.cla
87a00 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 3b ss="tok-kw">return</span>.index;
87a20 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
87a40 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 20 </span>.fibonacci(index.-.<span.
87a60 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 66 class="tok-number">1</span>).+.f
87a80 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 6f ibonacci(index.-.<span.class="to
87aa0 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 6c k-number">2</span>);.}..<span.cl
87ac0 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
87ae0 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 71 lass="tok-str">&quot;fibonacci&q
87b00 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
87b20 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 74 ok-comment">//.test.fibonacci.at
87b40 20 72 75 6e 2d 74 69 6d 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 .run-time</span>.....<span.class
87b60 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 66 69 62 6f ="tok-kw">try</span>.expect(fibo
87b80 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 37 nacci(<span.class="tok-number">7
87ba0 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
87bc0 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 73 ber">13</span>);......<span.clas
87be0 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 63 s="tok-comment">//.test.fibonacc
87c00 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 70 i.at.compile-time</span>.....<sp
87c20 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 3c 73 70 an.class="tok-kw">try</span>.<sp
87c40 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
87c60 3e 20 65 78 70 65 63 74 28 66 69 62 6f 6e 61 63 63 69 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >.expect(fibonacci(<span.class="
87c80 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 61 6e 20 63 tok-number">7</span>).==.<span.c
87ca0 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 3b 0a 7d 3c lass="tok-number">13</span>);.}<
87cc0 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
87ce0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
87d00 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
87d20 69 67 20 74 65 73 74 20 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 72 65 63 75 72 73 69 6f 6e ig.test.test_fibonacci_recursion
87d40 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 72 65 .zig</kbd>.1/1.test_fibonacci_re
87d60 63 75 72 73 69 6f 6e 2e 74 65 73 74 2e 66 69 62 6f 6e 61 63 63 69 2e 2e 2e 20 4f 4b 0a 41 6c 6c cursion.test.fibonacci....OK.All
87d80 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .1.tests.passed..</samp></pre></
87da0 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6d 61 67 69 6e 65 20 figure>.......<p>.......Imagine.
87dc0 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 61 73 65 20 63 61 73 if.we.had.forgotten.the.base.cas
87de0 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 6f 6e 20 61 6e 64 20 e.of.the.recursive.function.and.
87e00 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 20 20 20 20 20 3c 2f tried.to.run.the.tests:.......</
87e20 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
87e40 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
87e60 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 63 6f 6d 70 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 test_fibonacci_comptime_overflow
87e80 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
87ea0 64 65 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 de><span.class="tok-kw">const</s
87ec0 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 pan>.expect.=.<span.class="tok-b
87ee0 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
87f00 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
87f20 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 an>).testing.expect;..<span.clas
87f40 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
87f60 3d 22 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 ="tok-fn">fibonacci</span>(index
87f80 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
87fa0 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 75 33 32 3c an>).<span.class="tok-type">u32<
87fc0 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
87fe0 6d 6d 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 mment">//if.(index.&lt;.2).retur
88000 6e 20 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 n.index;</span>.....<span.class=
88020 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 69 "tok-kw">return</span>.fibonacci
88040 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 72 (index.-.<span.class="tok-number
88060 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 20 ">1</span>).+.fibonacci(index.-.
88080 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
880a0 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 74 >);.}..<span.class="tok-kw">test
880c0 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
880e0 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 20 uot;fibonacci&quot;</span>.{....
88100 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>
88120 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</
88140 73 70 61 6e 3e 20 65 78 70 65 63 74 28 66 69 62 6f 6e 61 63 63 69 28 3c 73 70 61 6e 20 63 6c 61 span>.expect(fibonacci(<span.cla
88160 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
88180 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>)
881a0 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 ;.}</code></pre></figure><figure
881c0 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 ><figcaption.class="shell-cap">S
881e0 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b hell</figcaption><pre><samp>$.<k
88200 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 63 6f 6d 70 74 bd>zig.test.test_fibonacci_compt
88220 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 ime_overflow.zig</kbd>.<span.cla
88240 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 66 69 62 6f ss="sgr-1m">docgen_tmp/test_fibo
88260 6e 61 63 63 69 5f 63 6f 6d 70 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3a 35 3a 32 38 nacci_comptime_overflow.zig:5:28
88280 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 :.</span><span.class="sgr-31m">e
882a0 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d rror:.</span><span.class="sgr-1m
882c0 22 3e 6f 76 65 72 66 6c 6f 77 20 6f 66 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 27 75 33 32 27 ">overflow.of.integer.type.'u32'
882e0 20 77 69 74 68 20 76 61 6c 75 65 20 27 2d 31 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 72 65 74 75 .with.value.'-1'.</span>....retu
88300 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 6e 61 rn.fibonacci(index.-.1).+.fibona
88320 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 20 20 cci(index.-.2);.................
88340 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e 7e 7e 7e .....<span.class="sgr-32m">~~~~~
88360 7e 5e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 ~^~~.</span><span.class="sgr-1m"
88380 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 63 6f 6d 70 74 >docgen_tmp/test_fibonacci_compt
883a0 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 ime_overflow.zig:5:21:.</span><s
883c0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e pan.class="sgr-36m">note:.</span
883e0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 63 61 6c 6c 65 64 20 66 72 6f ><span.class="sgr-1m">called.fro
88400 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d m.here</span><span.class="sgr-2m
88420 22 3e 20 28 37 20 74 69 6d 65 73 29 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 72 65 74 75 72 6e 20 66 ">.(7.times).</span>....return.f
88440 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 69 28 ibonacci(index.-.1).+.fibonacci(
88460 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 index.-.2);............<span.cla
88480 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e 7e 7e 7e 7e 7e 7e 7e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e ss="sgr-32m">~~~~~~~~~^~~~~~~~~~
884a0 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f ~.</span><span.class="sgr-1m">do
884c0 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 63 6f 6d 70 74 69 6d 65 cgen_tmp/test_fibonacci_comptime
884e0 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3a 39 3a 33 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e _overflow.zig:9:34:.</span><span
88500 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 .class="sgr-36m">note:.</span><s
88520 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 pan.class="sgr-1m">called.from.h
88540 65 72 65 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 74 72 79 20 63 6f 6d 70 74 69 6d 65 20 65 78 70 65 ere.</span>....try.comptime.expe
88560 63 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 20 20 20 ct(fibonacci(7).==.13);.........
88580 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 73 67 72 ................<span.class="sgr
885a0 2d 33 32 6d 22 3e 7e 7e 7e 7e 7e 7e 7e 7e 7e 5e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d -32m">~~~~~~~~~^~~.</span>.</sam
885c0 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 p></pre></figure>.......<p>.....
885e0 20 20 54 68 65 20 63 6f 6d 70 69 6c 65 72 20 70 72 6f 64 75 63 65 73 20 61 6e 20 65 72 72 6f 72 ..The.compiler.produces.an.error
88600 20 77 68 69 63 68 20 69 73 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 20 66 72 6f 6d 20 74 72 79 .which.is.a.stack.trace.from.try
88620 69 6e 67 20 74 6f 20 65 76 61 6c 75 61 74 65 20 74 68 65 0a 20 20 20 20 20 20 66 75 6e 63 74 69 ing.to.evaluate.the.......functi
88640 6f 6e 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 20 on.at.compile-time........</p>..
88660 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c 75 63 6b 69 6c 79 2c 20 77 65 20 75 73 65 64 20 .....<p>.......Luckily,.we.used.
88680 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2c 20 61 6e 64 20 73 6f 20 77 68 65 6e an.unsigned.integer,.and.so.when
886a0 20 77 65 20 74 72 69 65 64 20 74 6f 20 73 75 62 74 72 61 63 74 20 31 20 66 72 6f 6d 20 30 2c 20 .we.tried.to.subtract.1.from.0,.
886c0 69 74 20 74 72 69 67 67 65 72 65 64 0a 20 20 20 20 20 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 it.triggered.......undefined.beh
886e0 61 76 69 6f 72 2c 20 77 68 69 63 68 20 69 73 20 61 6c 77 61 79 73 20 61 20 63 6f 6d 70 69 6c 65 avior,.which.is.always.a.compile
88700 20 65 72 72 6f 72 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 6b 6e 6f 77 73 20 69 74 20 .error.if.the.compiler.knows.it.
88720 68 61 70 70 65 6e 65 64 2e 0a 20 20 20 20 20 20 42 75 74 20 77 68 61 74 20 77 6f 75 6c 64 20 68 happened........But.what.would.h
88740 61 76 65 20 68 61 70 70 65 6e 65 64 20 69 66 20 77 65 20 75 73 65 64 20 61 20 73 69 67 6e 65 64 ave.happened.if.we.used.a.signed
88760 20 69 6e 74 65 67 65 72 3f 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 .integer?.......</p>.......<figu
88780 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
887a0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 69 62 6f 6e 61 63 63 69 5f 63 6f 6d 70 cite.class="file">fibonacci_comp
887c0 74 69 6d 65 5f 69 6e 66 69 6e 69 74 65 5f 72 65 63 75 72 73 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 time_infinite_recursion.zig</cit
887e0 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
88800 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
88820 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 40 rt.=.<span.class="tok-builtin">@
88840 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
88860 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 75 tr">&quot;std&quot;</span>).debu
88880 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 3e g.assert;..<span.class="tok-kw">
888a0 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 66 fn</span>.<span.class="tok-fn">f
888c0 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 61 ibonacci</span>(index:.<span.cla
888e0 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 20 ss="tok-type">i32</span>).<span.
88900 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 20 class="tok-type">i32</span>.{...
88920 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 66 ..<span.class="tok-comment">//if
88940 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 73 .(index.&lt;.2).return.index;</s
88960 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 65 pan>.....<span.class="tok-kw">re
88980 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 73 turn</span>.fibonacci(index.-.<s
889a0 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>)
889c0 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 73 .+.fibonacci(index.-.<span.class
889e0 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
88a00 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
88a20 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 63 an.class="tok-str">&quot;fibonac
88a40 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 73 ci&quot;</span>.{.....<span.clas
88a60 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 63 6c 61 73 s="tok-kw">try</span>.<span.clas
88a80 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
88aa0 74 28 66 69 62 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 t(fibonacci(<span.class="tok-num
88ac0 62 65 72 22 3e 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 ber">7</span>).==.<span.class="t
88ae0 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 33 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c ok-number">13</span>);.}</code><
88b00 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 /pre></figure>.......<p>.......T
88b20 68 65 20 63 6f 6d 70 69 6c 65 72 20 69 73 20 73 75 70 70 6f 73 65 64 20 74 6f 20 6e 6f 74 69 63 he.compiler.is.supposed.to.notic
88b40 65 20 74 68 61 74 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 e.that.evaluating.this.function.
88b60 61 74 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 74 6f 6f 6b 20 6d 6f 72 65 20 at.......compile-time.took.more.
88b80 74 68 61 6e 20 31 30 30 30 20 62 72 61 6e 63 68 65 73 2c 20 61 6e 64 20 74 68 75 73 20 65 6d 69 than.1000.branches,.and.thus.emi
88ba0 74 73 20 61 6e 20 65 72 72 6f 72 20 61 6e 64 0a 20 20 20 20 20 20 67 69 76 65 73 20 75 70 2e 20 ts.an.error.and.......gives.up..
88bc0 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 63 72 65 If.the.programmer.wants.to.incre
88be0 61 73 65 20 74 68 65 20 62 75 64 67 65 74 20 66 6f 72 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a ase.the.budget.for.compile-time.
88c00 20 20 20 20 20 20 63 6f 6d 70 75 74 61 74 69 6f 6e 2c 20 74 68 65 79 20 63 61 6e 20 75 73 65 20 ......computation,.they.can.use.
88c20 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 20 20 20 a.built-in.function.called......
88c40 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 22 3e 40 .<a.href="#setEvalBranchQuota">@
88c60 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 6e 67 65 setEvalBranchQuota</a>.to.change
88c80 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 0a 20 20 20 20 .the.default.number.1000.to.....
88ca0 20 20 73 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 ..something.else........</p>....
88cc0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 74 68 65 72 65 20 69 73 20 61 ...<p>.......However,.there.is.a
88ce0 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 7a 69 67 .<a.href="https://github.com/zig
88d00 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 31 33 37 32 34 22 3e 64 65 73 69 67 6e 0a 20 20 lang/zig/issues/13724">design...
88d20 20 20 20 20 66 6c 61 77 20 69 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 3c 2f 61 3e 20 63 61 75 ....flaw.in.the.compiler</a>.cau
88d40 73 69 6e 67 20 69 74 20 74 6f 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 20 69 6e 73 74 65 61 sing.it.to.stack.overflow.instea
88d60 64 20 6f 66 20 68 61 76 69 6e 67 20 74 68 65 20 70 72 6f 70 65 72 0a 20 20 20 20 20 20 62 65 68 d.of.having.the.proper.......beh
88d80 61 76 69 6f 72 20 68 65 72 65 2e 20 49 27 6d 20 74 65 72 72 69 62 6c 79 20 73 6f 72 72 79 20 61 avior.here..I'm.terribly.sorry.a
88da0 62 6f 75 74 20 74 68 61 74 2e 20 49 20 68 6f 70 65 20 74 6f 20 67 65 74 20 74 68 69 73 20 72 65 bout.that..I.hope.to.get.this.re
88dc0 73 6f 6c 76 65 64 0a 20 20 20 20 20 20 62 65 66 6f 72 65 20 74 68 65 20 6e 65 78 74 20 72 65 6c solved.......before.the.next.rel
88de0 65 61 73 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 ease........</p>.......<p>......
88e00 20 57 68 61 74 20 69 66 20 77 65 20 66 69 78 20 74 68 65 20 62 61 73 65 20 63 61 73 65 2c 20 62 .What.if.we.fix.the.base.case,.b
88e20 75 74 20 70 75 74 20 74 68 65 20 77 72 6f 6e 67 20 76 61 6c 75 65 20 69 6e 20 74 68 65 0a 20 20 ut.put.the.wrong.value.in.the...
88e40 20 20 20 20 3c 63 6f 64 65 3e 65 78 70 65 63 74 3c 2f 63 6f 64 65 3e 20 6c 69 6e 65 3f 0a 20 20 ....<code>expect</code>.line?...
88e60 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ....</p>.......<figure><figcapti
88e80 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
88ea0 66 69 6c 65 22 3e 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 63 6f 6d 70 74 69 6d 65 5f 75 6e file">test_fibonacci_comptime_un
88ec0 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e reachable.zig</cite></figcaption
88ee0 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
88f00 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
88f20 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>(
88f40 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&
88f60 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
88f80 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
88fa0 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 2f 73 70 61 6e n.class="tok-fn">fibonacci</span
88fc0 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 79 70 65 22 3e >(index:.<span.class="tok-type">
88fe0 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 70 i32</span>).<span.class="tok-typ
89000 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 3d e">i32</span>.{.....<span.class=
89020 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 6c 74 3b 20 3c "tok-kw">if</span>.(index.&lt;.<
89040 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>
89060 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 72 6e 3c 2f 73 ).<span.class="tok-kw">return</s
89080 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 3d 22 74 6f 6b pan>.index;.....<span.class="tok
890a0 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 6e 64 -kw">return</span>.fibonacci(ind
890c0 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 31 3c ex.-.<span.class="tok-number">1<
890e0 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 70 61 /span>).+.fibonacci(index.-.<spa
89100 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 0a n.class="tok-number">2</span>);.
89120 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
89140 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;
89160 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 73 70 fibonacci&quot;</span>.{.....<sp
89180 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 3c 73 70 an.class="tok-kw">try</span>.<sp
891a0 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
891c0 3e 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 73 73 3d 22 >.assert(fibonacci(<span.class="
891e0 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 61 6e 20 63 tok-number">7</span>).==.<span.c
89200 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 39 39 39 39 3c 2f 73 70 61 6e 3e 29 3b lass="tok-number">99999</span>);
89220 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e .}</code></pre></figure><figure>
89240 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 <figcaption.class="shell-cap">Sh
89260 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 ell</figcaption><pre><samp>$.<kb
89280 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 63 6f 6d 70 74 69 d>zig.test.test_fibonacci_compti
892a0 6d 65 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 me_unreachable.zig</kbd>.<span.c
892c0 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 6c 69 62 2f 73 74 64 2f 64 65 62 75 67 2e 7a 69 67 3a lass="sgr-1m">lib/std/debug.zig:
892e0 34 30 33 3a 31 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 403:14:.</span><span.class="sgr-
89300 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 31m">error:.</span><span.class="
89320 73 67 72 2d 31 6d 22 3e 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 sgr-1m">reached.unreachable.code
89340 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c 65 .</span>....if.(!ok).unreachable
89360 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 20 20 20 20 20 20 ;.//.assertion.failure..........
89380 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e ....<span.class="sgr-32m">^~~~~~
893a0 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d ~~~~~.</span><span.class="sgr-1m
893c0 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 66 69 62 6f 6e 61 63 63 69 5f 63 6f 6d 70 ">docgen_tmp/test_fibonacci_comp
893e0 74 69 6d 65 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3a 39 3a 32 34 3a 20 3c 2f 73 70 61 time_unreachable.zig:9:24:.</spa
89400 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f n><span.class="sgr-36m">note:.</
89420 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 63 61 6c 6c 65 64 span><span.class="sgr-1m">called
89440 20 66 72 6f 6d 20 68 65 72 65 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 74 72 79 20 63 6f 6d 70 74 69 .from.here.</span>....try.compti
89460 6d 65 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 39 39 39 39 39 29 me.assert(fibonacci(7).==.99999)
89480 3b 0a 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="
894a0 73 67 72 2d 33 32 6d 22 3e 7e 7e 7e 7e 7e 7e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e sgr-32m">~~~~~~^~~~~~~~~~~~~~~~~
894c0 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 ~~~~~~.</span>.</samp></pre></fi
894e0 67 75 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 74 20 3c 61 20 68 72 65 gure>........<p>.......At.<a.hre
89500 66 3d 22 23 43 6f 6e 74 61 69 6e 65 72 73 22 3e 63 6f 6e 74 61 69 6e 65 72 3c 2f 61 3e 20 6c 65 f="#Containers">container</a>.le
89520 76 65 6c 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 vel.(outside.of.any.function),.a
89540 6c 6c 20 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 ll.expressions.are.implicitly...
89560 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 ....<code><span.class="tok-kw">c
89580 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 65 73 73 69 6f 6e omptime</span></code>.expression
895a0 73 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 20 63 61 6e 20 75 73 65 20 66 75 s..This.means.that.we.can.use.fu
895c0 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 20 20 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 70 nctions.to.......initialize.comp
895e0 6c 65 78 20 73 74 61 74 69 63 20 64 61 74 61 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 lex.static.data..For.example:...
89600 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ....</p>.......<figure><figcapti
89620 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
89640 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6e 74 61 69 6e 65 72 2d 6c 65 76 65 6c 5f 63 6f 6d 70 74 file">test_container-level_compt
89660 69 6d 65 5f 65 78 70 72 65 73 73 69 6f 6e 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 ime_expressions.zig</cite></figc
89680 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 aption><pre><code><span.class="t
896a0 6f 6b 2d 6b 77 22 3e 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 ok-kw">const</span>.first_25_pri
896c0 6d 65 73 20 3d 20 66 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 mes.=.firstNPrimes(<span.class="
896e0 74 6f 6b 2d 6e 75 6d 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 tok-number">25</span>);.<span.cl
89700 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 75 6d 5f 6f 66 ass="tok-kw">const</span>.sum_of
89720 5f 66 69 72 73 74 5f 32 35 5f 70 72 69 6d 65 73 20 3d 20 73 75 6d 28 26 61 6d 70 3b 66 69 72 73 _first_25_primes.=.sum(&amp;firs
89740 74 5f 32 35 5f 70 72 69 6d 65 73 29 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d t_25_primes);..<span.class="tok-
89760 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
89780 6e 22 3e 66 69 72 73 74 4e 50 72 69 6d 65 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 n">firstNPrimes</span>(<span.cla
897a0 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 3a 20 3c ss="tok-kw">comptime</span>.n:.<
897c0 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
897e0 6e 3e 29 20 5b 6e 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 n>).[n]<span.class="tok-type">i3
89800 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-
89820 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 70 72 69 6d 65 5f 6c 69 73 74 3a 20 5b 6e 5d 3c 73 kw">var</span>.prime_list:.[n]<s
89840 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>.
89860 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
89880 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-
898a0 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6e 65 78 74 5f 69 6e 64 65 78 3a 20 3c 73 70 61 6e kw">var</span>.next_index:.<span
898c0 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>.=
898e0 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
89900 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
89920 3c 2f 73 70 61 6e 3e 20 74 65 73 74 5f 6e 75 6d 62 65 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 </span>.test_number:.<span.class
89940 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 63 ="tok-type">i32</span>.=.<span.c
89960 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 20 20 lass="tok-number">2</span>;.....
89980 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 61 6e <span.class="tok-kw">while</span
899a0 3e 20 28 6e 65 78 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 70 72 69 6d 65 5f 6c 69 73 74 2e 6c 65 >.(next_index.&lt;.prime_list.le
899c0 6e 29 20 3a 20 28 74 65 73 74 5f 6e 75 6d 62 65 72 20 2b 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 n).:.(test_number.+=.<span.class
899e0 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>).{.......
89a00 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
89a20 3e 20 74 65 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >.test_prime_index:.<span.class=
89a40 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 20 "tok-type">usize</span>.=.<span.
89a60 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 20 class="tok-number">0</span>;....
89a80 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
89aa0 70 61 6e 3e 20 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 pan>.is_prime.=.<span.class="tok
89ac0 2d 6e 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 -null">true</span>;.........<spa
89ae0 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 28 74 n.class="tok-kw">while</span>.(t
89b00 65 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 20 26 6c 74 3b 20 6e 65 78 74 5f 69 6e 64 65 78 29 est_prime_index.&lt;.next_index)
89b20 20 3a 20 28 74 65 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 20 2b 3d 20 3c 73 70 61 6e 20 63 6c .:.(test_prime_index.+=.<span.cl
89b40 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 0a 20 20 20 ass="tok-number">1</span>).{....
89b60 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 69 66 .........<span.class="tok-kw">if
89b80 3c 2f 73 70 61 6e 3e 20 28 74 65 73 74 5f 6e 75 6d 62 65 72 20 25 20 70 72 69 6d 65 5f 6c 69 73 </span>.(test_number.%.prime_lis
89ba0 74 5b 74 65 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 5d 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 t[test_prime_index].==.<span.cla
89bc0 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 7b 0a 20 20 20 20 ss="tok-number">0</span>).{.....
89be0 20 20 20 20 20 20 20 20 20 20 20 20 69 73 5f 70 72 69 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 ............is_prime.=.<span.cla
89c00 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 20 20 20 20 ss="tok-null">false</span>;.....
89c20 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 22 ............<span.class="tok-kw"
89c40 3e 62 72 65 61 6b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 >break</span>;.............}....
89c60 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 73 3d 22 74 6f 6b 2d .....}.........<span.class="tok-
89c80 6b 77 22 3e 69 66 3c 2f 73 70 61 6e 3e 20 28 69 73 5f 70 72 69 6d 65 29 20 7b 0a 20 20 20 20 20 kw">if</span>.(is_prime).{......
89ca0 20 20 20 20 20 20 20 70 72 69 6d 65 5f 6c 69 73 74 5b 6e 65 78 74 5f 69 6e 64 65 78 5d 20 3d 20 .......prime_list[next_index].=.
89cc0 74 65 73 74 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 5f 69 6e test_number;.............next_in
89ce0 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 62 65 72 22 3e dex.+=.<span.class="tok-number">
89d00 31 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 1</span>;.........}.....}.....<s
89d20 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>
89d40 20 70 72 69 6d 65 5f 6c 69 73 74 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .prime_list;.}..<span.class="tok
89d60 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-
89d80 66 6e 22 3e 73 75 6d 3c 2f 73 70 61 6e 3e 28 6e 75 6d 62 65 72 73 3a 20 5b 5d 3c 73 70 61 6e 20 fn">sum</span>(numbers:.[]<span.
89da0 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 61 class="tok-kw">const</span>.<spa
89dc0 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 20 3c n.class="tok-type">i32</span>).<
89de0 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>
89e00 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<
89e20 2f 73 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 /span>.result:.<span.class="tok-
89e40 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="
89e60 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 20 tok-number">0</span>;.....<span.
89e80 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 6e 75 6d 62 65 class="tok-kw">for</span>.(numbe
89ea0 72 73 29 20 7c 78 7c 20 7b 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 2b 3d 20 78 3b 0a 20 rs).|x|.{.........result.+=.x;..
89ec0 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 72 65 ...}.....<span.class="tok-kw">re
89ee0 74 75 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 turn</span>.result;.}..<span.cla
89f00 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
89f20 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 61 72 69 61 62 6c 65 20 76 61 6c ass="tok-str">&quot;variable.val
89f40 75 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 ues&quot;</span>.{.....<span.cla
89f60 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 63 6c 61 ss="tok-kw">try</span>.<span.cla
89f80 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>(
89fa0 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&
89fc0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 73 75 6d quot;</span>).testing.expect(sum
89fe0 5f 6f 66 5f 66 69 72 73 74 5f 32 35 5f 70 72 69 6d 65 73 20 3d 3d 20 3c 73 70 61 6e 20 63 6c 61 _of_first_25_primes.==.<span.cla
8a000 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 30 36 30 3c 2f 73 70 61 6e 3e 29 3b 0a 7d 3c ss="tok-number">1060</span>);.}<
8a020 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
8a040 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
8a060 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
8a080 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6e 74 61 69 6e 65 72 2d 6c 65 76 65 6c 5f 63 6f 6d ig.test.test_container-level_com
8a0a0 70 74 69 6d 65 5f 65 78 70 72 65 73 73 69 6f 6e 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 ptime_expressions.zig</kbd>.1/1.
8a0c0 74 65 73 74 5f 63 6f 6e 74 61 69 6e 65 72 2d 6c 65 76 65 6c 5f 63 6f 6d 70 74 69 6d 65 5f 65 78 test_container-level_comptime_ex
8a0e0 70 72 65 73 73 69 6f 6e 73 2e 74 65 73 74 2e 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 73 2e 2e pressions.test.variable.values..
8a100 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e ..OK.All.1.tests.passed..</samp>
8a120 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 </pre></figure>.......<p>.......
8a140 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 61 6d 2c 20 5a 69 When.we.compile.this.program,.Zi
8a160 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 20 20 20 20 20 20 g.generates.the.constants.......
8a180 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 65 64 2e 20 48 65 with.the.answer.pre-computed..He
8a1a0 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 67 65 6e 65 72 61 re.are.the.lines.from.the.genera
8a1c0 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 20 20 20 20 3c 70 ted.LLVM.IR:.......</p>.......<p
8a1e0 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 20 69 6e 74 65 72 re><code.class="llvm">@0.=.inter
8a200 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 5b 32 35 20 78 20 nal.unnamed_addr.constant.[25.x.
8a220 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 20 69 33 32 20 37 i32].[i32.2,.i32.3,.i32.5,.i32.7
8a240 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 69 33 32 20 31 39 ,.i32.11,.i32.13,.i32.17,.i32.19
8a260 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 69 33 32 20 33 37 ,.i32.23,.i32.29,.i32.31,.i32.37
8a280 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 69 33 32 20 35 33 ,.i32.41,.i32.43,.i32.47,.i32.53
8a2a0 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 69 33 32 20 37 31 ,.i32.59,.i32.61,.i32.67,.i32.71
8a2c0 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 69 33 32 20 38 39 ,.i32.73,.i32.79,.i32.83,.i32.89
8a2e0 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 6e 61 6d 65 64 5f ,.i32.97].@1.=.internal.unnamed_
8a300 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 64 65 3e 3c 2f 70 addr.constant.i32.1060</code></p
8a320 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 68 61 74 20 77 65 re>.......<p>.......Note.that.we
8a340 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 6e 67 20 73 70 65 .did.not.have.to.do.anything.spe
8a360 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 65 73 65 20 66 75 cial.with.the.syntax.of.these.fu
8a380 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 20 20 77 65 20 63 nctions..For.example,.......we.c
8a3a0 6f 75 6c 64 20 63 61 6c 6c 20 74 68 65 20 3c 63 6f 64 65 3e 73 75 6d 3c 2f 63 6f 64 65 3e 20 66 ould.call.the.<code>sum</code>.f
8a3c0 75 6e 63 74 69 6f 6e 20 61 73 20 69 73 20 77 69 74 68 20 61 20 73 6c 69 63 65 20 6f 66 20 6e 75 unction.as.is.with.a.slice.of.nu
8a3e0 6d 62 65 72 73 20 77 68 6f 73 65 20 6c 65 6e 67 74 68 20 61 6e 64 20 76 61 6c 75 65 73 20 77 65 mbers.whose.length.and.values.we
8a400 72 65 0a 20 20 20 20 20 20 6f 6e 6c 79 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 2d 74 69 6d 65 2e re.......only.known.at.run-time.
8a420 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 20 .......</p>.....................
8a440 3c 68 33 20 69 64 3d 22 47 65 6e 65 72 69 63 2d 44 61 74 61 2d 53 74 72 75 63 74 75 72 65 73 22 <h3.id="Generic-Data-Structures"
8a460 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 47 65 6e 65 72 69 63 2d ><a.href="nav.xhtml#toc-Generic-
8a480 44 61 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 Data-Structures">Generic.Data.St
8a4a0 72 75 63 74 75 72 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 ructures</a>.<a.class="hdr".href
8a4c0 3d 22 23 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 c2 a7 3c 2f ="#Generic-Data-Structures">..</
8a4e0 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 5a 69 67 20 75 73 65 a></h3>........<p>.......Zig.use
8a500 73 20 63 6f 6d 70 74 69 6d 65 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 74 6f 20 69 6d 70 6c 65 s.comptime.capabilities.to.imple
8a520 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 65 73 20 77 69 74 ment.generic.data.structures.wit
8a540 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 20 73 70 65 63 69 hout.introducing.any.......speci
8a560 61 6c 2d 63 61 73 65 20 73 79 6e 74 61 78 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 al-case.syntax........</p>......
8a580 20 3c 70 3e 0a 09 09 09 48 65 72 65 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 .<p>....Here.is.an.example.of.a.
8a5a0 67 65 6e 65 72 69 63 20 3c 63 6f 64 65 3e 4c 69 73 74 3c 2f 63 6f 64 65 3e 20 64 61 74 61 20 73 generic.<code>List</code>.data.s
8a5c0 74 72 75 63 74 75 72 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 tructure........</p>.......<figu
8a5e0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
8a600 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 67 65 6e 65 72 69 63 5f 64 61 74 61 5f 73 cite.class="file">generic_data_s
8a620 74 72 75 63 74 75 72 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e tructure.zig</cite></figcaption>
8a640 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
8a660 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 4c fn</span>.<span.class="tok-fn">L
8a680 69 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 6b 77 22 3e ist</span>(<span.class="tok-kw">
8a6a0 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="
8a6c0 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 20 63 6c 61 tok-type">type</span>).<span.cla
8a6e0 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 20 7b 0a 20 20 20 20 ss="tok-type">type</span>.{.....
8a700 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
8a720 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</
8a740 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 69 74 65 6d 73 3a 20 5b 5d 54 2c 0a 20 20 20 20 span>.{.........items:.[]T,.....
8a760 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 70 65 22 3e ....len:.<span.class="tok-type">
8a780 75 73 69 7a 65 3c 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 usize</span>,.....};.}..<span.cl
8a7a0 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 67 65 6e 65 72 69 63 ass="tok-comment">//.The.generic
8a7c0 20 4c 69 73 74 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 63 61 6e 20 62 65 20 69 6e 73 74 .List.data.structure.can.be.inst
8a7e0 61 6e 74 69 61 74 65 64 20 62 79 20 70 61 73 73 69 6e 67 20 69 6e 20 61 20 74 79 70 65 3a 3c 2f antiated.by.passing.in.a.type:</
8a800 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 76 61 72 3c 2f span>.<span.class="tok-kw">var</
8a820 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 74 6f 6b 2d span>.buffer:.[<span.class="tok-
8a840 6e 75 6d 62 65 72 22 3e 31 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 number">10</span>]<span.class="t
8a860 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
8a880 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 3c s="tok-null">undefined</span>;.<
8a8a0 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 6c span.class="tok-kw">var</span>.l
8a8c0 69 73 74 20 3d 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 ist.=.List(<span.class="tok-type
8a8e0 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 7b 0a 20 20 20 20 2e 69 74 65 6d 73 20 3d 20 26 61 6d 70 ">i32</span>){......items.=.&amp
8a900 3b 62 75 66 66 65 72 2c 0a 20 20 20 20 2e 6c 65 6e 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ;buffer,......len.=.<span.class=
8a920 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e "tok-number">0</span>,.};</code>
8a940 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 </pre></figure>.......<p>.......
8a960 54 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 That's.it..It's.a.function.that.
8a980 72 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 3e 3c 73 70 61 6e returns.an.anonymous.<code><span
8a9a0 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 3c 2f 63 .class="tok-kw">struct</span></c
8a9c0 6f 64 65 3e 2e 0a 20 20 20 20 20 20 46 6f 72 20 74 68 65 20 70 75 72 70 6f 73 65 73 20 6f 66 20 ode>........For.the.purposes.of.
8a9e0 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 61 6e 64 20 64 65 62 75 67 67 69 6e 67 2c 20 5a 69 error.messages.and.debugging,.Zi
8aa00 67 20 69 6e 66 65 72 73 20 74 68 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 g.infers.the.name.......<code><s
8aa20 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 4c 69 73 74 28 69 pan.class="tok-str">&quot;List(i
8aa40 33 32 29 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d 20 74 68 65 32)&quot;</span></code>.from.the
8aa60 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e .function.name.and.parameters.in
8aa80 76 6f 6b 65 64 20 77 68 65 6e 20 63 72 65 61 74 69 6e 67 0a 20 20 20 20 20 20 74 68 65 20 61 6e voked.when.creating.......the.an
8aaa0 6f 6e 79 6d 6f 75 73 20 73 74 72 75 63 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 onymous.struct........</p>......
8aac0 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 67 69 76 65 20 61 20 .<p>.......To.explicitly.give.a.
8aae0 74 79 70 65 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 20 63 type.a.name,.we.assign.it.to.a.c
8ab00 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 66 69 67 75 72 onstant........</p>.......<figur
8ab20 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
8ab40 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 61 6e 6f 6e 79 6d 6f 75 73 5f 73 74 72 75 63 ite.class="file">anonymous_struc
8ab60 74 5f 6e 61 6d 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 t_name.zig</cite></figcaption><p
8ab80 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f re><code><span.class="tok-kw">co
8aba0 6e 73 74 3c 2f 73 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 nst</span>.Node.=.<span.class="t
8abc0 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 65 78 74 3a ok-kw">struct</span>.{.....next:
8abe0 20 3f 2a 4e 6f 64 65 2c 0a 20 20 20 20 6e 61 6d 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 .?*Node,.....name:.[]<span.class
8ac00 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
8ac20 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 7d 3b 0a 0a 3c 73 70 ss="tok-type">u8</span>,.};..<sp
8ac40 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 6e 6f 64 an.class="tok-kw">var</span>.nod
8ac60 65 5f 61 20 3d 20 4e 6f 64 65 7b 0a 20 20 20 20 2e 6e 65 78 74 20 3d 20 3c 73 70 61 6e 20 63 6c e_a.=.Node{......next.=.<span.cl
8ac80 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 2c 0a 20 20 20 20 ass="tok-null">null</span>,.....
8aca0 2e 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 .name.=.<span.class="tok-str">&q
8acc0 75 6f 74 3b 4e 6f 64 65 20 41 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 7d 3b 0a 0a 3c 73 70 uot;Node.A&quot;</span>,.};..<sp
8ace0 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 6e 6f 64 an.class="tok-kw">var</span>.nod
8ad00 65 5f 62 20 3d 20 4e 6f 64 65 7b 0a 20 20 20 20 2e 6e 65 78 74 20 3d 20 26 61 6d 70 3b 6e 6f 64 e_b.=.Node{......next.=.&amp;nod
8ad20 65 5f 61 2c 0a 20 20 20 20 2e 6e 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f e_a,......name.=.<span.class="to
8ad40 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 4e 6f 64 65 20 42 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e k-str">&quot;Node.B&quot;</span>
8ad60 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 ,.};</code></pre></figure>......
8ad80 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 .<p>.......In.this.example,.the.
8ada0 3c 63 6f 64 65 3e 4e 6f 64 65 3c 2f 63 6f 64 65 3e 20 73 74 72 75 63 74 20 72 65 66 65 72 73 20 <code>Node</code>.struct.refers.
8adc0 74 6f 20 69 74 73 65 6c 66 2e 0a 20 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 62 65 63 61 to.itself........This.works.beca
8ade0 75 73 65 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 use.all.top.level.declarations.a
8ae00 72 65 20 6f 72 64 65 72 2d 69 6e 64 65 70 65 6e 64 65 6e 74 2e 0a 20 20 20 20 20 20 41 73 20 6c re.order-independent........As.l
8ae20 6f 6e 67 20 61 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 63 61 6e 20 64 65 74 65 72 6d 69 6e ong.as.the.compiler.can.determin
8ae40 65 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 73 74 72 75 63 74 2c 20 69 74 20 69 73 20 e.the.size.of.the.struct,.it.is.
8ae60 66 72 65 65 20 74 6f 20 72 65 66 65 72 20 74 6f 20 69 74 73 65 6c 66 2e 0a 20 20 20 20 20 20 49 free.to.refer.to.itself........I
8ae80 6e 20 74 68 69 73 20 63 61 73 65 2c 20 3c 63 6f 64 65 3e 4e 6f 64 65 3c 2f 63 6f 64 65 3e 20 72 n.this.case,.<code>Node</code>.r
8aea0 65 66 65 72 73 20 74 6f 20 69 74 73 65 6c 66 20 61 73 20 61 20 70 6f 69 6e 74 65 72 2c 20 77 68 efers.to.itself.as.a.pointer,.wh
8aec0 69 63 68 20 68 61 73 20 61 0a 20 20 20 20 20 20 77 65 6c 6c 2d 64 65 66 69 6e 65 64 20 73 69 7a ich.has.a.......well-defined.siz
8aee0 65 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2c 20 73 6f 20 69 74 20 77 6f 72 6b 73 20 66 e.at.compile.time,.so.it.works.f
8af00 69 6e 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 33 ine........</p>..............<h3
8af20 20 69 64 3d 22 43 61 73 65 2d 53 74 75 64 79 2d 70 72 69 6e 74 2d 69 6e 2d 5a 69 67 22 3e 3c 61 .id="Case-Study-print-in-Zig"><a
8af40 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 61 73 65 2d 53 74 75 64 79 2d .href="nav.xhtml#toc-Case-Study-
8af60 70 72 69 6e 74 2d 69 6e 2d 5a 69 67 22 3e 43 61 73 65 20 53 74 75 64 79 3a 20 70 72 69 6e 74 20 print-in-Zig">Case.Study:.print.
8af80 69 6e 20 5a 69 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 in.Zig</a>.<a.class="hdr".href="
8afa0 23 43 61 73 65 2d 53 74 75 64 79 2d 70 72 69 6e 74 2d 69 6e 2d 5a 69 67 22 3e c2 a7 3c 2f 61 3e #Case-Study-print-in-Zig">..</a>
8afc0 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 75 74 74 69 6e 67 20 61 </h3>........<p>.......Putting.a
8afe0 6c 6c 20 6f 66 20 74 68 69 73 20 74 6f 67 65 74 68 65 72 2c 20 6c 65 74 27 73 20 73 65 65 20 68 ll.of.this.together,.let's.see.h
8b000 6f 77 20 3c 63 6f 64 65 3e 70 72 69 6e 74 3c 2f 63 6f 64 65 3e 20 77 6f 72 6b 73 20 69 6e 20 5a ow.<code>print</code>.works.in.Z
8b020 69 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 ig........</p>.......<figure><fi
8b040 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
8b060 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 72 69 6e 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 lass="file">print.zig</cite></fi
8b080 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
8b0a0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 "tok-kw">const</span>.print.=.<s
8b0c0 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<
8b0e0 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
8b100 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 70 72 69 6e 74 ot;std&quot;</span>).debug.print
8b120 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
8b140 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-
8b160 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="
8b180 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
8b1a0 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
8b1c0 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
8b1e0 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
8b200 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
8b220 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
8b240 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.
8b260 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>.{..
8b280 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 ...print(<span.class="tok-str">&
8b2a0 71 75 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 73 7d 27 20 68 65 72 quot;here.is.a.string:.'{s}'.her
8b2c0 65 20 69 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 e.is.a.number:.{}\n&quot;</span>
8b2e0 2c 20 2e 7b 61 5f 73 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 65 72 7d 29 3b 0a 7d 3c 2f 63 6f 64 ,..{a_string,.a_number});.}</cod
8b300 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
8b320 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
8b340 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 gcaption><pre><samp>$.<kbd>zig.b
8b360 75 69 6c 64 2d 65 78 65 20 70 72 69 6e 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e uild-exe.print.zig</kbd>.$.<kbd>
8b380 2e 2f 70 72 69 6e 74 3c 2f 6b 62 64 3e 0a 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 ./print</kbd>.here.is.a.string:.
8b3a0 27 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 'foobar'.here.is.a.number:.1234.
8b3c0 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 </samp></pre></figure>........<p
8b3e0 3e 0a 20 20 20 20 20 20 4c 65 74 27 73 20 63 72 61 63 6b 20 6f 70 65 6e 20 74 68 65 20 69 6d 70 >.......Let's.crack.open.the.imp
8b400 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 61 6e 64 20 73 65 65 20 68 6f 77 20 lementation.of.this.and.see.how.
8b420 69 74 20 77 6f 72 6b 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 it.works:.......</p>........<fig
8b440 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
8b460 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 6f 63 5f 70 72 69 6e 74 5f 66 6e 2e <cite.class="file">poc_print_fn.
8b480 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 zig</cite></figcaption><pre><cod
8b4a0 65 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 e><span.class="tok-kw">const</sp
8b4c0 61 6e 3e 20 57 72 69 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 an>.Writer.=.<span.class="tok-kw
8b4e0 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 20 63 6c 61 73 ">struct</span>.{.....<span.clas
8b500 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 43 61 6c 6c 73 20 70 72 69 6e 74 20 s="tok-comment">///.Calls.print.
8b520 61 6e 64 20 74 68 65 6e 20 66 6c 75 73 68 65 73 20 74 68 65 20 62 75 66 66 65 72 2e 3c 2f 73 70 and.then.flushes.the.buffer.</sp
8b540 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 70 75 62 an>.....<span.class="tok-kw">pub
8b560 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<
8b580 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 72 69 6e /span>.<span.class="tok-fn">prin
8b5a0 74 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 2a 57 72 69 74 65 72 2c 20 3c 73 70 61 6e 20 63 6c t</span>(self:.*Writer,.<span.cl
8b5c0 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 6f 72 ass="tok-kw">comptime</span>.for
8b5e0 6d 61 74 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 mat:.[]<span.class="tok-kw">cons
8b600 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">
8b620 75 38 3c 2f 73 70 61 6e 3e 2c 20 61 72 67 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f u8</span>,.args:.<span.class="to
8b640 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 k-kw">anytype</span>).<span.clas
8b660 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 70 s="tok-type">anyerror</span>!<sp
8b680 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>.
8b6a0 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 63 {.........<span.class="tok-kw">c
8b6c0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 74 61 74 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d onst</span>.State.=.<span.class=
8b6e0 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 20 20 20 20 20 "tok-kw">enum</span>.{..........
8b700 20 20 20 73 74 61 72 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 65 6e 5f 62 72 61 63 65 ...start,.............open_brace
8b720 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 6f 73 65 5f 62 72 61 63 65 2c 0a 20 20 20 20 20 ,.............close_brace,......
8b740 20 20 20 7d 3b 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-
8b760 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 3d kw">comptime</span>.<span.class=
8b780 22 74 6f 6b 2d 6b 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 "tok-kw">var</span>.start_index:
8b7a0 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
8b7c0 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">
8b7e0 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 6c 61 73 73 3d 22 74 0</span>;.........<span.class="t
8b800 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 61 ok-kw">comptime</span>.<span.cla
8b820 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 73 74 61 74 65 20 3d 20 53 ss="tok-kw">var</span>.state.=.S
8b840 74 61 74 65 2e 73 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tate.start;.........<span.class=
8b860 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 70 61 6e 20 63 "tok-kw">comptime</span>.<span.c
8b880 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 6e 65 78 74 5f 61 72 lass="tok-kw">var</span>.next_ar
8b8a0 67 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 g:.<span.class="tok-type">usize<
8b8c0 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 72 /span>.=.<span.class="tok-number
8b8e0 22 3e 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">0</span>;..........<span.class
8b900 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 70 61 6e 20 63 6c ="tok-kw">inline</span>.<span.cl
8b920 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 66 6f 72 6d 61 74 2c ass="tok-kw">for</span>.(format,
8b940 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
8b960 6e 3e 2e 2e 29 20 7c 63 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e n>..).|c,.i|.{.............<span
8b980 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 28 73 .class="tok-kw">switch</span>.(s
8b9a0 74 61 74 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 2e 73 74 tate).{.................State.st
8b9c0 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 73 art.=&gt;.<span.class="tok-kw">s
8b9e0 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 20 witch</span>.(c).{..............
8ba00 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 7b 27 .......<span.class="tok-str">'{'
8ba20 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 20 20 </span>.=&gt;.{.................
8ba40 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 66 3c ........<span.class="tok-kw">if<
8ba60 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 69 29 20 3c 73 70 61 /span>.(start_index.&lt;.i).<spa
8ba80 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 66 n.class="tok-kw">try</span>.self
8baa0 2e 77 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 .write(format[start_index..i]);.
8bac0 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 74 61 74 65 20 3d 20 ........................state.=.
8bae0 53 74 61 74 65 2e 6f 70 65 6e 5f 62 72 61 63 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 State.open_brace;...............
8bb00 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 20 20 20 20 3c 73 70 ......},.....................<sp
8bb20 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 26 an.class="tok-str">'}'</span>.=&
8bb40 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 20 20 20 20 3c 73 gt;.{.........................<s
8bb60 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 73 74 pan.class="tok-kw">if</span>.(st
8bb80 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 3d 22 74 art_index.&lt;.i).<span.class="t
8bba0 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 6f 72 ok-kw">try</span>.self.write(for
8bbc0 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 20 20 20 mat[start_index..i]);...........
8bbe0 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 63 6c 6f 73 ..............state.=.State.clos
8bc00 65 5f 62 72 61 63 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a e_brace;.....................},.
8bc20 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=
8bc40 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 7b 7d 2c 0a 20 "tok-kw">else</span>.=&gt;.{},..
8bc60 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 20 20 20 20 20 20 20 ...............},...............
8bc80 20 20 53 74 61 74 65 2e 6f 70 65 6e 5f 62 72 61 63 65 20 3d 26 67 74 3b 20 3c 73 70 61 6e 20 63 ..State.open_brace.=&gt;.<span.c
8bca0 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 28 63 29 20 lass="tok-kw">switch</span>.(c).
8bcc0 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 20 63 6c 61 73 {.....................<span.clas
8bce0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 7b 27 3c 2f 73 70 61 6e 3e 20 3d 26 67 74 3b 20 7b 0a 20 s="tok-str">'{'</span>.=&gt;.{..
8bd00 20 20 20 20 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 .......................state.=.S
8bd20 74 61 74 65 2e 73 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 tate.start;.....................
8bd40 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 20 20 ....start_index.=.i;............
8bd60 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 20 20 20 20 .........},.....................
8bd80 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>
8bda0 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 20 20 20 .=&gt;.{........................
8bdc0 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>
8bde0 20 73 65 6c 66 2e 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 .self.printValue(args[next_arg])
8be00 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 6e 65 78 74 5f 61 ;.........................next_a
8be20 72 67 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 rg.+=.<span.class="tok-number">1
8be40 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 20 20 20 20 20 20 20 </span>;........................
8be60 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 73 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 .state.=.State.start;...........
8be80 20 20 20 20 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 20 2b 20 ..............start_index.=.i.+.
8bea0 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
8bec0 3e 3b 0a 20 20 20 20 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 >;.....................},.......
8bee0 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 73 ..............<span.class="tok-s
8bf00 74 72 22 3e 27 73 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 tr">'s'</span>.=&gt;.{..........
8bf20 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-
8bf40 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 20 20 20 20 20 20 20 kw">continue</span>;............
8bf60 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 20 20 20 20 .........},.....................
8bf80 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>
8bfa0 20 3d 26 67 74 3b 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 .=&gt;.<span.class="tok-builtin"
8bfc0 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
8bfe0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 55 6e 6b 6e 6f 77 6e 20 66 6f 72 6d 61 74 s="tok-str">&quot;Unknown.format
8c000 20 63 68 61 72 61 63 74 65 72 3a 20 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 2b 2b 20 5b 3c 73 .character:.&quot;</span>.++.[<s
8c020 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 5d pan.class="tok-number">1</span>]
8c040 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>
8c060 7b 63 7d 29 2c 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 {c}),.................},........
8c080 20 20 20 20 20 20 20 20 20 53 74 61 74 65 2e 63 6c 6f 73 65 5f 62 72 61 63 65 20 3d 26 67 74 3b .........State.close_brace.=&gt;
8c0a0 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 70 .<span.class="tok-kw">switch</sp
8c0c0 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 20 20 20 20 3c 73 an>.(c).{.....................<s
8c0e0 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>.=
8c100 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 20 20 20 20 73 &gt;.{.........................s
8c120 74 61 74 65 20 3d 20 53 74 61 74 65 2e 73 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 tate.=.State.start;.............
8c140 20 20 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 ............start_index.=.i;....
8c160 20 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 20 20 20 20 20 .................},.............
8c180 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
8c1a0 65 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 2d e</span>.=&gt;.<span.class="tok-
8c1c0 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 70 61 6e 3e 28 3c 73 builtin">@compileError</span>(<s
8c1e0 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 69 6e 67 6c 65 pan.class="tok-str">&quot;Single
8c200 20 27 7d 27 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 69 6e 20 66 6f 72 6d 61 74 20 73 74 72 69 6e .'}'.encountered.in.format.strin
8c220 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g&quot;</span>),................
8c240 20 7d 2c 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 .},.............}.........}.....
8c260 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
8c280 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 63 6c 61 e</span>.{.............<span.cla
8c2a0 73 73 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 ss="tok-kw">if</span>.(args.len.
8c2c0 21 3d 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 20 20 20 20 3c !=.next_arg).{.................<
8c2e0 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
8c300 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 2d 73 eError</span>(<span.class="tok-s
8c320 74 72 22 3e 26 71 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 tr">&quot;Unused.arguments&quot;
8c340 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 </span>);.............}.........
8c360 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
8c380 6e 3e 20 28 73 74 61 74 65 20 21 3d 20 53 74 61 74 65 2e 73 74 61 72 74 29 20 7b 0a 20 20 20 20 n>.(state.!=.State.start).{.....
8c3a0 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 62 75 69 ............<span.class="tok-bui
8c3c0 6c 74 69 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 ltin">@compileError</span>(<span
8c3e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 49 6e 63 6f 6d 70 6c 65 74 .class="tok-str">&quot;Incomplet
8c400 65 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 3a 20 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 2b e.format.string:.&quot;</span>.+
8c420 2b 20 66 6f 72 6d 61 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 +.format);.............}........
8c440 20 7d 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 .}.........<span.class="tok-kw">
8c460 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 72 6d if</span>.(start_index.&lt;.form
8c480 61 74 2e 6c 65 6e 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 at.len).{.............<span.clas
8c4a0 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 72 69 74 65 s="tok-kw">try</span>.self.write
8c4c0 28 66 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 (format[start_index..format.len]
8c4e0 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 73 );.........}.........<span.class
8c500 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 6c 75 73 68 28 ="tok-kw">try</span>.self.flush(
8c520 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
8c540 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
8c560 22 3e 77 72 69 74 65 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 2a 57 72 69 74 65 72 2c 20 76 61 ">write</span>(self:.*Writer,.va
8c580 6c 75 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 lue:.[]<span.class="tok-kw">cons
8c5a0 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">
8c5c0 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
8c5e0 65 22 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 73 65 6c e">void</span>.{........._.=.sel
8c600 66 3b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 f;........._.=.value;.....}.....
8c620 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>.
8c640 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>.<
8c660 73 70 61 6e 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 span.class="tok-fn">printValue</
8c680 73 70 61 6e 3e 28 73 65 6c 66 3a 20 2a 57 72 69 74 65 72 2c 20 76 61 6c 75 65 3a 20 3c 73 70 61 span>(self:.*Writer,.value:.<spa
8c6a0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 n.class="tok-kw">anytype</span>)
8c6c0 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 73 .!<span.class="tok-type">void</s
8c6e0 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 73 65 6c 66 3b 0a 20 20 20 20 20 20 20 pan>.{........._.=.self;........
8c700 20 5f 20 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ._.=.value;.....}.....<span.clas
8c720 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
8c740 3d 22 74 6f 6b 2d 66 6e 22 3e 66 6c 75 73 68 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 2a 57 72 ="tok-fn">flush</span>(self:.*Wr
8c760 69 74 65 72 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 iter).!<span.class="tok-type">vo
8c780 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 73 65 6c 66 3b 0a 20 20 id</span>.{........._.=.self;...
8c7a0 20 20 7d 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 ..}.};</code></pre></figure>....
8c7c0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 61 20 70 72 6f 6f 66 20 6f 66 20 ...<p>.......This.is.a.proof.of.
8c7e0 63 6f 6e 63 65 70 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 3b 20 74 68 65 20 61 63 74 75 concept.implementation;.the.actu
8c800 61 6c 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 al.function.in.the.standard.libr
8c820 61 72 79 20 68 61 73 20 6d 6f 72 65 0a 20 20 20 20 20 20 66 6f 72 6d 61 74 74 69 6e 67 20 63 61 ary.has.more.......formatting.ca
8c840 70 61 62 69 6c 69 74 69 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e pabilities........</p>.......<p>
8c860 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 69 73 20 6e 6f 74 20 68 61 72 .......Note.that.this.is.not.har
8c880 64 2d 63 6f 64 65 64 20 69 6e 74 6f 20 74 68 65 20 5a 69 67 20 63 6f 6d 70 69 6c 65 72 3b 20 74 d-coded.into.the.Zig.compiler;.t
8c8a0 68 69 73 20 69 73 20 75 73 65 72 6c 61 6e 64 20 63 6f 64 65 20 69 6e 20 74 68 65 20 73 74 61 6e his.is.userland.code.in.the.stan
8c8c0 64 61 72 64 20 6c 69 62 72 61 72 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c dard.library........</p>.......<
8c8e0 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 p>.......When.this.function.is.a
8c900 6e 61 6c 79 7a 65 64 20 66 72 6f 6d 20 6f 75 72 20 65 78 61 6d 70 6c 65 20 63 6f 64 65 20 61 62 nalyzed.from.our.example.code.ab
8c920 6f 76 65 2c 20 5a 69 67 20 70 61 72 74 69 61 6c 6c 79 20 65 76 61 6c 75 61 74 65 73 20 74 68 65 ove,.Zig.partially.evaluates.the
8c940 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 61 6e 64 20 65 6d 69 74 73 20 61 20 66 75 6e 63 .function.......and.emits.a.func
8c960 74 69 6f 6e 20 74 68 61 74 20 61 63 74 75 61 6c 6c 79 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 68 tion.that.actually.looks.like.th
8c980 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 is:.......</p>.......<figure><fi
8c9a0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
8c9c0 6c 61 73 73 3d 22 66 69 6c 65 22 3e 45 6d 69 74 74 65 64 20 70 72 69 6e 74 20 46 75 6e 63 74 69 lass="file">Emitted.print.Functi
8c9e0 6f 6e 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 on</cite></figcaption><pre><code
8ca00 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>
8ca20 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>.
8ca40 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 72 69 6e 74 3c 2f 73 70 61 6e <span.class="tok-fn">print</span
8ca60 3e 28 73 65 6c 66 3a 20 2a 57 72 69 74 65 72 2c 20 61 72 67 30 3a 20 5b 5d 3c 73 70 61 6e 20 63 >(self:.*Writer,.arg0:.[]<span.c
8ca80 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
8caa0 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 72 67 .class="tok-type">u8</span>,.arg
8cac0 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 32 3c 2f 73 1:.<span.class="tok-type">i32</s
8cae0 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 65 22 3e 76 6f pan>).!<span.class="tok-type">vo
8cb00 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
8cb20 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 70 61 6e -kw">try</span>.self.write(<span
8cb40 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 72 65 20 69 73 20 61 .class="tok-str">&quot;here.is.a
8cb60 20 73 74 72 69 6e 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 .string:.'&quot;</span>);.....<s
8cb80 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 73 65 pan.class="tok-kw">try</span>.se
8cba0 6c 66 2e 70 72 69 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 lf.printValue(arg0);.....<span.c
8cbc0 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 72 lass="tok-kw">try</span>.self.wr
8cbe0 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 75 6f 74 3b ite(<span.class="tok-str">&quot;
8cc00 27 20 68 65 72 65 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 '.here.is.a.number:.&quot;</span
8cc20 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 74 72 79 >);.....<span.class="tok-kw">try
8cc40 3c 2f 73 70 61 6e 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 </span>.self.printValue(arg1);..
8cc60 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 61 ...<span.class="tok-kw">try</spa
8cc80 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 3d 22 74 6f 6b 2d 73 n>.self.write(<span.class="tok-s
8cca0 74 72 22 3e 26 71 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 tr">&quot;\n&quot;</span>);.....
8ccc0 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>.
8cce0 73 65 6c 66 2e 66 6c 75 73 68 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 self.flush();.}</code></pre></fi
8cd00 67 75 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 3e 70 72 69 6e gure>.......<p>.......<code>prin
8cd20 74 56 61 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 tValue</code>.is.a.function.that
8cd40 20 74 61 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 .takes.a.parameter.of.any.type,.
8cd60 61 6e 64 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 and.does.different.things.depend
8cd80 69 6e 67 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 ing.......on.the.type:.......</p
8cda0 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 >.......<figure><figcaption.clas
8cdc0 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 s="zig-cap"><cite.class="file">p
8cde0 6f 63 5f 70 72 69 6e 74 56 61 6c 75 65 5f 66 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 oc_printValue_fn.zig</cite></fig
8ce00 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
8ce20 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 57 72 69 74 65 72 20 3d 20 3c 73 tok-kw">const</span>.Writer.=.<s
8ce40 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>
8ce60 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 70 75 62 3c .{.....<span.class="tok-kw">pub<
8ce80 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</
8cea0 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 72 69 6e 74 span>.<span.class="tok-fn">print
8cec0 56 61 6c 75 65 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 2a 57 72 69 74 65 72 2c 20 76 61 6c 75 Value</span>(self:.*Writer,.valu
8cee0 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 74 79 70 65 3c e:.<span.class="tok-kw">anytype<
8cf00 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 65 22 3e /span>).!<span.class="tok-type">
8cf20 76 6f 69 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 63 6c 61 73 void</span>.{.........<span.clas
8cf40 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 28 3c 73 70 61 6e 20 s="tok-kw">switch</span>.(<span.
8cf60 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 6e 66 6f 3c 2f 73 class="tok-builtin">@typeInfo</s
8cf80 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">@
8cfa0 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 29 29 20 7b 0a 20 20 20 20 20 20 20 TypeOf</span>(value))).{........
8cfc0 20 20 20 20 20 2e 49 6e 74 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......Int.=&gt;.{...............
8cfe0 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
8d000 70 61 6e 3e 20 73 65 6c 66 2e 77 72 69 74 65 49 6e 74 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 pan>.self.writeInt(value);......
8d020 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 46 6c 6f 61 74 20 3d 26 67 .......},..............Float.=&g
8d040 74 3b 20 7b 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 t;.{.................<span.class
8d060 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 77 72 69 ="tok-kw">return</span>.self.wri
8d080 74 65 46 6c 6f 61 74 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 teFloat(value);.............},..
8d0a0 20 20 20 20 20 20 20 20 20 20 20 2e 50 6f 69 6e 74 65 72 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 ............Pointer.=&gt;.{.....
8d0c0 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 22 ............<span.class="tok-kw"
8d0e0 3e 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 77 72 69 74 65 28 76 61 6c 75 65 29 >return</span>.self.write(value)
8d100 3b 0a 20 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 3c 73 70 ;.............},.............<sp
8d120 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 3d 26 an.class="tok-kw">else</span>.=&
8d140 67 74 3b 20 7b 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 gt;.{.................<span.clas
8d160 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
8d180 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
8d1a0 3b 55 6e 61 62 6c 65 20 74 6f 20 70 72 69 6e 74 20 74 79 70 65 20 27 26 71 75 6f 74 3b 3c 2f 73 ;Unable.to.print.type.'&quot;</s
8d1c0 70 61 6e 3e 20 2b 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 pan>.++.<span.class="tok-builtin
8d1e0 22 3e 40 74 79 70 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 ">@typeName</span>(<span.class="
8d200 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 tok-builtin">@TypeOf</span>(valu
8d220 65 29 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 75 e)).++.<span.class="tok-str">&qu
8d240 6f 74 3b 27 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ot;'&quot;</span>);.............
8d260 7d 2c 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c },.........}.....}......<span.cl
8d280 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
8d2a0 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 77 72 69 74 65 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 2a ss="tok-fn">write</span>(self:.*
8d2c0 57 72 69 74 65 72 2c 20 76 61 6c 75 65 3a 20 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f Writer,.value:.[]<span.class="to
8d2e0 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="
8d300 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
8d320 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 20 s="tok-type">void</span>.{......
8d340 20 20 20 5f 20 3d 20 73 65 6c 66 3b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 76 61 6c 75 65 3b 0a ..._.=.self;........._.=.value;.
8d360 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 66 ....}.....<span.class="tok-kw">f
8d380 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 77 72 n</span>.<span.class="tok-fn">wr
8d3a0 69 74 65 49 6e 74 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 2a 57 72 69 74 65 72 2c 20 76 61 6c iteInt</span>(self:.*Writer,.val
8d3c0 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 61 6e 79 74 79 70 65 ue:.<span.class="tok-kw">anytype
8d3e0 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 65 22 </span>).!<span.class="tok-type"
8d400 3e 76 6f 69 64 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 73 65 6c 66 3b >void</span>.{........._.=.self;
8d420 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3c 73 ........._.=.value;.....}.....<s
8d440 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
8d460 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 77 72 69 74 65 46 6c 6f 61 74 3c 2f 73 70 an.class="tok-fn">writeFloat</sp
8d480 61 6e 3e 28 73 65 6c 66 3a 20 2a 57 72 69 74 65 72 2c 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 an>(self:.*Writer,.value:.<span.
8d4a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 21 class="tok-kw">anytype</span>).!
8d4c0 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
8d4e0 6e 3e 20 7b 0a 20 20 20 20 20 20 20 20 5f 20 3d 20 73 65 6c 66 3b 0a 20 20 20 20 20 20 20 20 5f n>.{........._.=.self;........._
8d500 20 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c .=.value;.....}.};</code></pre><
8d520 2f 66 69 67 75 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 77 /figure>.......<p>.......And.now
8d540 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 61 ,.what.happens.if.we.give.too.ma
8d560 6e 79 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 3c 63 6f 64 65 3e 70 72 69 6e 74 3c 2f 63 6f 64 ny.arguments.to.<code>print</cod
8d580 65 3e 3f 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 e>?.......</p>.......<figure><fi
8d5a0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
8d5c0 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 70 72 69 6e 74 5f 74 6f 6f 5f 6d 61 6e 79 5f lass="file">test_print_too_many_
8d5e0 61 72 67 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 args.zig</cite></figcaption><pre
8d600 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">cons
8d620 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f t</span>.print.=.<span.class="to
8d640 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.
8d660 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;<
8d680 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 /span>).debug.print;..<span.clas
8d6a0 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 6e 75 6d 62 65 72 s="tok-kw">const</span>.a_number
8d6c0 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
8d6e0 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 31 an>.=.<span.class="tok-number">1
8d700 32 33 34 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 234</span>;.<span.class="tok-kw"
8d720 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 5f 73 74 72 69 6e 67 20 3d 20 3c 73 70 61 6e 20 63 >const</span>.a_string.=.<span.c
8d740 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 66 6f 6f 62 61 72 26 71 75 6f 74 lass="tok-str">&quot;foobar&quot
8d760 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 77 22 3e ;</span>;..<span.class="tok-kw">
8d780 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
8d7a0 22 3e 26 71 75 6f 74 3b 70 72 69 6e 74 20 74 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 ">&quot;print.too.many.arguments
8d7c0 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 &quot;</span>.{.....print(<span.
8d7e0 63 6c 61 73 73 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 class="tok-str">&quot;here.is.a.
8d800 73 74 72 69 6e 67 3a 20 27 7b 73 7d 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 string:.'{s}'.here.is.a.number:.
8d820 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 0a 20 20 20 20 20 20 20 20 61 5f {}\n&quot;</span>,..{.........a_
8d840 73 74 72 69 6e 67 2c 0a 20 20 20 20 20 20 20 20 61 5f 6e 75 6d 62 65 72 2c 0a 20 20 20 20 20 20 string,.........a_number,.......
8d860 20 20 61 5f 6e 75 6d 62 65 72 2c 0a 20 20 20 20 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ..a_number,.....});.}</code></pr
8d880 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
8d8a0 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
8d8c0 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
8d8e0 73 74 5f 70 72 69 6e 74 5f 74 6f 6f 5f 6d 61 6e 79 5f 61 72 67 73 2e 7a 69 67 3c 2f 6b 62 64 3e st_print_too_many_args.zig</kbd>
8d900 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 6c 69 62 2f 73 74 64 2f 66 6d .<span.class="sgr-1m">lib/std/fm
8d920 74 2e 7a 69 67 3a 32 30 33 3a 31 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 t.zig:203:18:.</span><span.class
8d940 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 ="sgr-31m">error:.</span><span.c
8d960 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 75 6e 75 73 65 64 20 61 72 67 75 6d 65 6e 74 20 69 6e lass="sgr-1m">unused.argument.in
8d980 20 27 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 73 7d 27 20 68 65 72 65 20 69 .'here.is.a.string:.'{s}'.here.i
8d9a0 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.a.number:.{}..................
8d9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 20 20 20 20 20 ..............'.</span>.........
8d9e0 20 20 20 31 20 3d 26 67 74 3b 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 71 75 6f 74 3b 75 ...1.=&gt;.@compileError(&quot;u
8da00 6e 75 73 65 64 20 61 72 67 75 6d 65 6e 74 20 69 6e 20 27 26 71 75 6f 74 3b 20 2b 2b 20 66 6d 74 nused.argument.in.'&quot;.++.fmt
8da20 20 2b 2b 20 26 71 75 6f 74 3b 27 26 71 75 6f 74 3b 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .++.&quot;'&quot;),.............
8da40 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e .....<span.class="sgr-32m">^~~~~
8da60 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8da80 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 ~~~~~~~~~~~~~~.</span><span.clas
8daa0 73 3d 22 73 67 72 2d 32 6d 22 3e 72 65 66 65 72 65 6e 63 65 64 20 62 79 3a 0a 20 20 20 20 70 72 s="sgr-2m">referenced.by:.....pr
8dac0 69 6e 74 5f 5f 61 6e 6f 6e 5f 32 35 36 35 3a 20 6c 69 62 2f 73 74 64 2f 69 6f 2f 57 72 69 74 65 int__anon_2565:.lib/std/io/Write
8dae0 72 2e 7a 69 67 3a 32 33 3a 32 36 0a 20 20 20 20 70 72 69 6e 74 3a 20 6c 69 62 2f 73 74 64 2f 69 r.zig:23:26.....print:.lib/std/i
8db00 6f 2e 7a 69 67 3a 33 32 34 3a 34 37 0a 20 20 20 20 72 65 6d 61 69 6e 69 6e 67 20 72 65 66 65 72 o.zig:324:47.....remaining.refer
8db20 65 6e 63 65 20 74 72 61 63 65 73 20 68 69 64 64 65 6e 3b 20 75 73 65 20 27 2d 66 72 65 66 65 72 ence.traces.hidden;.use.'-frefer
8db40 65 6e 63 65 2d 74 72 61 63 65 27 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 65 66 65 72 65 6e 63 65 ence-trace'.to.see.all.reference
8db60 20 74 72 61 63 65 73 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 .traces.</span>.</samp></pre></f
8db80 69 67 75 72 65 3e 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 igure>.......<p>.......Zig.gives
8dba0 20 70 72 6f 67 72 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 .programmers.the.tools.needed.to
8dbc0 20 70 72 6f 74 65 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 .protect.themselves.against.thei
8dbe0 72 20 6f 77 6e 20 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 r.own.mistakes........</p>......
8dc00 20 3c 70 3e 0a 20 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 .<p>.......Zig.doesn't.care.whet
8dc20 68 65 72 20 74 68 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 her.the.format.argument.is.a.str
8dc40 69 6e 67 20 6c 69 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 ing.literal,.......only.that.it.
8dc60 69 73 20 61 20 63 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 is.a.compile-time.known.value.th
8dc80 61 74 20 63 61 6e 20 62 65 20 63 6f 65 72 63 65 64 20 74 6f 20 61 20 3c 63 6f 64 65 3e 5b 5d 3c at.can.be.coerced.to.a.<code>[]<
8dca0 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>
8dcc0 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
8dce0 3e 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 66 69 67 75 ></code>:.......</p>.......<figu
8dd00 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
8dd20 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 72 69 6e 74 5f 63 6f 6d 70 74 69 6d 65 cite.class="file">print_comptime
8dd40 2d 6b 6e 6f 77 6e 5f 66 6f 72 6d 61 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 -known_format.zig</cite></figcap
8dd60 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
8dd80 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e 20 -kw">const</span>.print.=.<span.
8dda0 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
8ddc0 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
8dde0 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 0a 3c td&quot;</span>).debug.print;..<
8de00 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>
8de20 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 74 79 70 65 .a_number:.<span.class="tok-type
8de40 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-
8de60 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 6c 61 73 73 number">1234</span>;.<span.class
8de80 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 69 6e 67 20 ="tok-kw">const</span>.a_string.
8dea0 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 66 6f =.<span.class="tok-str">&quot;fo
8dec0 6f 62 61 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 obar&quot;</span>;.<span.class="
8dee0 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 6d 74 20 3d 20 3c 73 70 61 6e tok-kw">const</span>.fmt.=.<span
8df00 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 72 65 20 69 73 20 61 .class="tok-str">&quot;here.is.a
8df20 20 73 74 72 69 6e 67 3a 20 27 7b 73 7d 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a .string:.'{s}'.here.is.a.number:
8df40 20 7b 7d 5c 6e 26 71 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 .{}\n&quot;</span>;..<span.class
8df60 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
8df80 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=
8dfa0 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 61 "tok-fn">main</span>().<span.cla
8dfc0 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>.{.....
8dfe0 70 72 69 6e 74 28 66 6d 74 2c 20 2e 7b 61 5f 73 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 65 72 7d print(fmt,..{a_string,.a_number}
8e000 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 );.}</code></pre></figure><figur
8e020 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
8e040 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
8e060 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 70 72 69 6e 74 5f 63 6f 6d 70 74 69 6d 65 kbd>zig.build-exe.print_comptime
8e080 2d 6b 6e 6f 77 6e 5f 66 6f 72 6d 61 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e -known_format.zig</kbd>.$.<kbd>.
8e0a0 2f 70 72 69 6e 74 5f 63 6f 6d 70 74 69 6d 65 2d 6b 6e 6f 77 6e 5f 66 6f 72 6d 61 74 3c 2f 6b 62 /print_comptime-known_format</kb
8e0c0 64 3e 0a 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 66 6f 6f 62 61 72 27 20 68 65 d>.here.is.a.string:.'foobar'.he
8e0e0 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 31 32 33 34 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 re.is.a.number:.1234.</samp></pr
8e100 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 e></figure>.......<p>.......This
8e120 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 20 20 20 20 20 3c 70 .works.fine........</p>.......<p
8e140 3e 0a 20 20 20 20 20 20 5a 69 67 20 64 6f 65 73 20 6e 6f 74 20 73 70 65 63 69 61 6c 20 63 61 73 >.......Zig.does.not.special.cas
8e160 65 20 73 74 72 69 6e 67 20 66 6f 72 6d 61 74 74 69 6e 67 20 69 6e 20 74 68 65 20 63 6f 6d 70 69 e.string.formatting.in.the.compi
8e180 6c 65 72 20 61 6e 64 20 69 6e 73 74 65 61 64 20 65 78 70 6f 73 65 73 20 65 6e 6f 75 67 68 20 70 ler.and.instead.exposes.enough.p
8e1a0 6f 77 65 72 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73 68 20 74 68 69 73 0a 20 20 20 20 20 20 74 61 ower.to.accomplish.this.......ta
8e1c0 73 6b 20 69 6e 20 75 73 65 72 6c 61 6e 64 2e 20 49 74 20 64 6f 65 73 20 73 6f 20 77 69 74 68 6f sk.in.userland..It.does.so.witho
8e1e0 75 74 20 69 6e 74 72 6f 64 75 63 69 6e 67 20 61 6e 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 20 ut.introducing.another.language.
8e200 6f 6e 20 74 6f 70 20 6f 66 20 5a 69 67 2c 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 61 20 6d on.top.of.Zig,.such.as.......a.m
8e220 61 63 72 6f 20 6c 61 6e 67 75 61 67 65 20 6f 72 20 61 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 acro.language.or.a.preprocessor.
8e240 6c 61 6e 67 75 61 67 65 2e 20 49 74 27 73 20 5a 69 67 20 61 6c 6c 20 74 68 65 20 77 61 79 20 64 language..It's.Zig.all.the.way.d
8e260 6f 77 6e 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 70 3e own........</p>..............<p>
8e280 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="#
8e2a0 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 3e 3c 2f inline-while">inline.while</a></
8e2c0 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 66 6f 72 22 3e 69 6e li>.<li><a.href="#inline-for">in
8e2e0 6c 69 6e 65 20 66 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 line.for</a></li>.</ul>.........
8e300 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 73 73 65 6d 62 6c 79 22 3e 3c 61 20 68 72 65 66 3d ......<h2.id="Assembly"><a.href=
8e320 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 41 73 73 65 6d 62 6c 79 22 3e 41 73 73 65 6d 62 6c "nav.xhtml#toc-Assembly">Assembl
8e340 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 73 73 65 y</a>.<a.class="hdr".href="#Asse
8e360 6d 62 6c 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 20 20 mbly">..</a></h2>........<p>....
8e380 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 20 62 65 ...For.some.use.cases,.it.may.be
8e3a0 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 6c 20 74 .necessary.to.directly.control.t
8e3c0 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 20 20 20 he.machine.code.generated.......
8e3e0 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 72 65 6c by.Zig.programs,.rather.than.rel
8e400 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 2e 20 46 ying.on.Zig's.code.generation..F
8e420 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 20 75 73 or.these.cases,.one.......can.us
8e440 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 20 65 78 e.inline.assembly..Here.is.an.ex
8e460 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 57 6f 72 ample.of.implementing.Hello,.Wor
8e480 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 67 20 69 ld.on.x86_64.Linux.......using.i
8e4a0 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 20 20 20 nline.assembly:.......</p>......
8e4c0 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d .<figure><figcaption.class="zig-
8e4e0 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 69 6e 6c 69 6e 65 5f 61 cap"><cite.class="file">inline_a
8e500 73 73 65 6d 62 6c 79 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ssembly.zig</cite></figcaption><
8e520 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 pre><code><span.class="tok-kw">p
8e540 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
8e560 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
8e580 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
8e5a0 65 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 e">noreturn</span>.{.....<span.c
8e5c0 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 73 67 20 3d lass="tok-kw">const</span>.msg.=
8e5e0 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 6c .<span.class="tok-str">&quot;hel
8e600 6c 6f 20 77 6f 72 6c 64 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d lo.world\n&quot;</span>;....._.=
8e620 20 73 79 73 63 61 6c 6c 33 28 53 59 53 5f 77 72 69 74 65 2c 20 53 54 44 4f 55 54 5f 46 49 4c 45 .syscall3(SYS_write,.STDOUT_FILE
8e640 4e 4f 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 69 NO,.<span.class="tok-builtin">@i
8e660 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 61 6e 3e 28 6d 73 67 29 2c 20 6d 73 67 2e 6c 65 6e 29 3b ntFromPtr</span>(msg),.msg.len);
8e680 0a 20 20 20 20 5f 20 3d 20 73 79 73 63 61 6c 6c 31 28 53 59 53 5f 65 78 69 74 2c 20 3c 73 70 61 ....._.=.syscall1(SYS_exit,.<spa
8e6a0 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>);.
8e6c0 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 68 ....<span.class="tok-kw">unreach
8e6e0 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 22 74 6f 6b able</span>;.}..<span.class="tok
8e700 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
8e720 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 59 53 5f 77 72 69 74 65 20 3d 20 3c 73 -kw">const</span>.SYS_write.=.<s
8e740 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>;
8e760 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>
8e780 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
8e7a0 6e 3e 20 53 59 53 5f 65 78 69 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e n>.SYS_exit.=.<span.class="tok-n
8e7c0 75 6d 62 65 72 22 3e 36 30 3c 2f 73 70 61 6e 3e 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 umber">60</span>;..<span.class="
8e7e0 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="
8e800 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 53 54 44 4f 55 54 5f 46 49 4c 45 tok-kw">const</span>.STDOUT_FILE
8e820 4e 4f 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 NO.=.<span.class="tok-number">1<
8e840 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 70 75 /span>;..<span.class="tok-kw">pu
8e860 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
8e880 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 73 79 73 </span>.<span.class="tok-fn">sys
8e8a0 63 61 6c 6c 31 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 call1</span>(number:.<span.class
8e8c0 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 20 61 72 67 31 3a 20 ="tok-type">usize</span>,.arg1:.
8e8e0 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
8e900 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 75 73 69 7a an>).<span.class="tok-type">usiz
8e920 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 6b 2d e</span>.{.....<span.class="tok-
8e940 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
8e960 6f 6b 2d 6b 77 22 3e 61 73 6d 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ok-kw">asm</span>.<span.class="t
8e980 6f 6b 2d 6b 77 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 3c 73 70 61 6e 20 63 6c ok-kw">volatile</span>.(<span.cl
8e9a0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 73 79 73 63 61 6c 6c 26 71 75 6f 74 ass="tok-str">&quot;syscall&quot
8e9c0 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3a 20 5b 72 65 74 5d 20 3c 73 70 61 6e 20 63 ;</span>.........:.[ret].<span.c
8e9e0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 3d 7b 72 61 78 7d 26 71 75 6f 74 lass="tok-str">&quot;={rax}&quot
8ea00 3b 3c 2f 73 70 61 6e 3e 20 28 2d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ;</span>.(-&gt;.<span.class="tok
8ea20 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 20 20 20 20 3a 20 -type">usize</span>),.........:.
8ea40 5b 6e 75 6d 62 65 72 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 [number].<span.class="tok-str">&
8ea60 71 75 6f 74 3b 7b 72 61 78 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 29 quot;{rax}&quot;</span>.(number)
8ea80 2c 0a 20 20 20 20 20 20 20 20 20 20 5b 61 72 67 31 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ,...........[arg1].<span.class="
8eaa0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 64 69 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e tok-str">&quot;{rdi}&quot;</span
8eac0 3e 20 28 61 72 67 31 29 2c 0a 20 20 20 20 20 20 20 20 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >.(arg1),.........:.<span.class=
8eae0 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 6e 3e "tok-str">&quot;rcx&quot;</span>
8eb00 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 72 31 ,.<span.class="tok-str">&quot;r1
8eb20 31 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 1&quot;</span>.....);.}..<span.c
8eb40 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
8eb60 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
8eb80 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 73 79 73 63 61 6c 6c 33 3c 2f 73 70 61 6e 3e 28 6e 75 6d ass="tok-fn">syscall3</span>(num
8eba0 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
8ebc0 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
8ebe0 2d 74 79 70 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 2c 20 61 72 67 32 3a 20 3c 73 70 61 6e -type">usize</span>,.arg2:.<span
8ec00 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 20 .class="tok-type">usize</span>,.
8ec20 61 72 67 33 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 arg3:.<span.class="tok-type">usi
8ec40 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 6f 6b 2d 74 79 70 65 ze</span>).<span.class="tok-type
8ec60 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 73 ">usize</span>.{.....<span.class
8ec80 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
8eca0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 73 6d 3c 2f 73 70 61 6e 3e 20 3c 73 70 61 6e 20 63 6c ass="tok-kw">asm</span>.<span.cl
8ecc0 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 20 28 3c 73 ass="tok-kw">volatile</span>.(<s
8ece0 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 79 73 63 61 6c pan.class="tok-str">&quot;syscal
8ed00 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3a 20 5b 72 65 74 5d 20 3c l&quot;</span>.........:.[ret].<
8ed20 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 3d 7b 72 61 78 span.class="tok-str">&quot;={rax
8ed40 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 2d 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 }&quot;</span>.(-&gt;.<span.clas
8ed60 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 2c 0a 20 20 20 20 s="tok-type">usize</span>),.....
8ed80 20 20 20 20 3a 20 5b 6e 75 6d 62 65 72 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....:.[number].<span.class="tok-
8eda0 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 61 78 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 6e str">&quot;{rax}&quot;</span>.(n
8edc0 75 6d 62 65 72 29 2c 0a 20 20 20 20 20 20 20 20 20 20 5b 61 72 67 31 5d 20 3c 73 70 61 6e 20 63 umber),...........[arg1].<span.c
8ede0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 64 69 7d 26 71 75 6f 74 3b lass="tok-str">&quot;{rdi}&quot;
8ee00 3c 2f 73 70 61 6e 3e 20 28 61 72 67 31 29 2c 0a 20 20 20 20 20 20 20 20 20 20 5b 61 72 67 32 5d </span>.(arg1),...........[arg2]
8ee20 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 73 .<span.class="tok-str">&quot;{rs
8ee40 69 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 61 72 67 32 29 2c 0a 20 20 20 20 20 20 20 20 i}&quot;</span>.(arg2),.........
8ee60 20 20 5b 61 72 67 33 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 ..[arg3].<span.class="tok-str">&
8ee80 71 75 6f 74 3b 7b 72 64 78 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 61 72 67 33 29 2c 0a quot;{rdx}&quot;</span>.(arg3),.
8eea0 20 20 20 20 20 20 20 20 3a 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">
8eec0 26 71 75 6f 74 3b 72 63 78 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c &quot;rcx&quot;</span>,.<span.cl
8eee0 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 31 31 26 71 75 6f 74 3b 3c 2f 73 ass="tok-str">&quot;r11&quot;</s
8ef00 70 61 6e 3e 0a 20 20 20 20 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 pan>.....);.}</code></pre></figu
8ef20 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 re><figure><figcaption.class="sh
8ef40 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ell-cap">Shell</figcaption><pre>
8ef60 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 69 6e 6c 69 6e <samp>$.<kbd>zig.build-exe.inlin
8ef80 65 5f 61 73 73 65 6d 62 6c 79 2e 7a 69 67 20 2d 74 61 72 67 65 74 20 78 38 36 5f 36 34 2d 6c 69 e_assembly.zig.-target.x86_64-li
8efa0 6e 75 78 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 69 6e 6c 69 6e 65 5f 61 73 73 65 6d 62 nux</kbd>.$.<kbd>./inline_assemb
8efc0 6c 79 3c 2f 6b 62 64 3e 0a 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 ly</kbd>.hello.world.</samp></pr
8efe0 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 44 69 73 73 e></figure>.......<p>.......Diss
8f000 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 70 3e 0a 20 20 ecting.the.syntax:.......</p>...
8f020 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
8f040 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 41 73 73 65 6d ig-cap"><cite.class="file">Assem
8f060 62 6c 79 20 53 79 6e 74 61 78 20 45 78 70 6c 61 69 6e 65 64 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c bly.Syntax.Explained.zig</cite><
8f080 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /figcaption><pre><code><span.cla
8f0a0 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
8f0c0 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
8f0e0 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 62 65 s="tok-fn">syscall1</span>(numbe
8f100 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 65 3c r:.<span.class="tok-type">usize<
8f120 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 2d 74 /span>,.arg1:.<span.class="tok-t
8f140 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 3d 22 ype">usize</span>).<span.class="
8f160 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 73 70 tok-type">usize</span>.{.....<sp
8f180 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 69 6e 65 an.class="tok-comment">//.Inline
8f1a0 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 69 63 68 .assembly.is.an.expression.which
8f1c0 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 20 20 20 20 3c 73 70 .returns.a.value.</span>.....<sp
8f1e0 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 65 20 60 61 an.class="tok-comment">//.the.`a
8f200 73 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 sm`.keyword.begins.the.expressio
8f220 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 2d 6b n.</span>.....<span.class="tok-k
8f240 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 6f w">return</span>.<span.class="to
8f260 6b 2d 6b 77 22 3e 61 73 6d 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 k-kw">asm</span>.....<span.class
8f280 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 60 76 6f 6c 61 74 69 6c 65 60 20 69 73 20 ="tok-comment">//.`volatile`.is.
8f2a0 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6d 6f 64 69 66 69 65 72 20 74 68 61 74 20 74 65 6c 6c 73 20 an.optional.modifier.that.tells.
8f2c0 5a 69 67 20 74 68 69 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d Zig.this</span>.....<span.class=
8f2e0 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 "tok-comment">//.inline.assembly
8f300 20 65 78 70 72 65 73 73 69 6f 6e 20 68 61 73 20 73 69 64 65 2d 65 66 66 65 63 74 73 2e 20 57 69 .expression.has.side-effects..Wi
8f320 74 68 6f 75 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 thout</span>.....<span.class="to
8f340 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 60 76 6f 6c 61 74 69 6c 65 60 2c 20 5a 69 67 20 69 73 k-comment">//.`volatile`,.Zig.is
8f360 20 61 6c 6c 6f 77 65 64 20 74 6f 20 64 65 6c 65 74 65 20 74 68 65 20 69 6e 6c 69 6e 65 20 61 73 .allowed.to.delete.the.inline.as
8f380 73 65 6d 62 6c 79 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 sembly</span>.....<span.class="t
8f3a0 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 63 6f 64 65 20 69 66 20 74 68 65 20 72 65 73 75 6c ok-comment">//.code.if.the.resul
8f3c0 74 20 69 73 20 75 6e 75 73 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c t.is.unused.</span>.....<span.cl
8f3e0 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 20 28 0a 20 ass="tok-kw">volatile</span>.(..
8f400 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">//.
8f420 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 69 63 68 20 Next.is.a.comptime.string.which.
8f440 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 0a 20 20 20 is.the.assembly.code.</span>....
8f460 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 49 6e .<span.class="tok-comment">//.In
8f480 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.`%[
8f4a0 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 20 20 20 20 3c ret]`,.`%[number]`,</span>.....<
8f4c0 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 6f 72 20 60 span.class="tok-comment">//.or.`
8f4e0 25 5b 61 72 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 %[arg1]`.where.a.register.is.exp
8f500 65 63 74 65 64 2c 20 74 6f 20 73 70 65 63 69 66 79 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 ected,.to.specify</span>.....<sp
8f520 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 65 20 72 65 an.class="tok-comment">//.the.re
8f540 67 69 73 74 65 72 20 74 68 61 74 20 5a 69 67 20 75 73 65 73 20 66 6f 72 20 74 68 65 20 61 72 67 gister.that.Zig.uses.for.the.arg
8f560 75 6d 65 6e 74 20 6f 72 20 72 65 74 75 72 6e 20 76 61 6c 75 65 2c 3c 2f 73 70 61 6e 3e 0a 20 20 ument.or.return.value,</span>...
8f580 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 69 ..<span.class="tok-comment">//.i
8f5a0 66 20 74 68 65 20 72 65 67 69 73 74 65 72 20 63 6f 6e 73 74 72 61 69 6e 74 20 73 74 72 69 6e 67 f.the.register.constraint.string
8f5c0 73 20 61 72 65 20 75 73 65 64 2e 20 48 6f 77 65 76 65 72 20 69 6e 3c 2f 73 70 61 6e 3e 0a 20 20 s.are.used..However.in</span>...
8f5e0 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 74 ..<span.class="tok-comment">//.t
8f600 68 65 20 62 65 6c 6f 77 20 63 6f 64 65 2c 20 74 68 69 73 20 69 73 20 6e 6f 74 20 75 73 65 64 2e he.below.code,.this.is.not.used.
8f620 20 41 20 6c 69 74 65 72 61 6c 20 60 25 60 20 63 61 6e 20 62 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 .A.literal.`%`.can.be</span>....
8f640 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 6f 62 .<span.class="tok-comment">//.ob
8f660 74 61 69 6e 65 64 20 62 79 20 65 73 63 61 70 69 6e 67 20 69 74 20 77 69 74 68 20 61 20 64 6f 75 tained.by.escaping.it.with.a.dou
8f680 62 6c 65 20 70 65 72 63 65 6e 74 3a 20 60 25 25 60 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 ble.percent:.`%%`.</span>.....<s
8f6a0 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 4f 66 74 65 6e pan.class="tok-comment">//.Often
8f6c0 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 73 79 6e 74 61 78 20 63 6f 6d 65 73 20 69 .multiline.string.syntax.comes.i
8f6e0 6e 20 68 61 6e 64 79 20 68 65 72 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 n.handy.here.</span>.....<span.c
8f700 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 5c 5c 73 79 73 63 61 6c 6c 0a 3c 2f 73 70 61 6e 3e lass="tok-str">\\syscall.</span>
8f720 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">//
8f740 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 6f 73 73 69 .Next.is.the.output..It.is.possi
8f760 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 73 70 61 6e ble.in.the.future.Zig.will</span
8f780 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 3e >.....<span.class="tok-comment">
8f7a0 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
8f7c0 65 6e 64 69 6e 67 20 6f 6e 20 68 6f 77 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 ending.on.how</span>.....<span.c
8f7e0 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 2f 67 69 lass="tok-comment">//.https://gi
8f800 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 31 35 20 thub.com/ziglang/zig/issues/215.
8f820 69 73 20 72 65 73 6f 6c 76 65 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c is.resolved.</span>.....<span.cl
8f840 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 49 74 20 69 73 20 61 6c 6c 6f 77 ass="tok-comment">//.It.is.allow
8f860 65 64 20 66 6f 72 20 74 68 65 72 65 20 74 6f 20 62 65 20 6e 6f 20 6f 75 74 70 75 74 73 2c 20 69 ed.for.there.to.be.no.outputs,.i
8f880 6e 20 77 68 69 63 68 20 63 61 73 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c n.which.case</span>.....<span.cl
8f8a0 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 69 73 20 63 6f 6c 6f 6e 20 ass="tok-comment">//.this.colon.
8f8c0 77 6f 75 6c 64 20 62 65 20 64 69 72 65 63 74 6c 79 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 68 would.be.directly.followed.by.th
8f8e0 65 20 63 6f 6c 6f 6e 20 66 6f 72 20 74 68 65 20 69 6e 70 75 74 73 2e 3c 2f 73 70 61 6e 3e 0a 20 e.colon.for.the.inputs.</span>..
8f900 20 20 20 20 20 20 20 3a 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.class="tok-co
8f920 6d 6d 65 6e 74 22 3e 2f 2f 20 54 68 69 73 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 6e 61 6d mment">//.This.specifies.the.nam
8f940 65 20 74 6f 20 62 65 20 75 73 65 64 20 69 6e 20 60 25 5b 72 65 74 5d 60 20 73 79 6e 74 61 78 20 e.to.be.used.in.`%[ret]`.syntax.
8f960 69 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 63 in</span>.....<span.class="tok-c
8f980 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 74 68 65 20 61 62 6f 76 65 20 61 73 73 65 6d 62 6c 79 20 73 74 omment">//.the.above.assembly.st
8f9a0 72 69 6e 67 2e 20 54 68 69 73 20 65 78 61 6d 70 6c 65 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20 ring..This.example.does.not.use.
8f9c0 69 74 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 it,</span>.....<span.class="tok-
8f9e0 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 73 20 6d 61 comment">//.but.the.syntax.is.ma
8fa00 6e 64 61 74 6f 72 79 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 5b 72 65 74 5d 0a 20 20 ndatory.</span>.........[ret]...
8fa20 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
8fa40 65 78 74 20 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 ext.is.the.output.constraint.str
8fa60 69 6e 67 2e 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 ing..This.feature.is.still</span
8fa80 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 3e >.....<span.class="tok-comment">
8faa0 2f 2f 20 63 6f 6e 73 69 64 65 72 65 64 20 75 6e 73 74 61 62 6c 65 20 69 6e 20 5a 69 67 2c 20 61 //.considered.unstable.in.Zig,.a
8fac0 6e 64 20 73 6f 20 4c 4c 56 4d 2f 47 43 43 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 73 70 nd.so.LLVM/GCC.documentation</sp
8fae0 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
8fb00 22 3e 2f 2f 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 20 ">//.must.be.used.to.understand.
8fb20 74 68 65 20 73 65 6d 61 6e 74 69 63 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 the.semantics.</span>.....<span.
8fb40 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 3a 2f 2f 72 65 class="tok-comment">//.http://re
8fb60 6c 65 61 73 65 73 2e 6c 6c 76 6d 2e 6f 72 67 2f 31 30 2e 30 2e 30 2f 64 6f 63 73 2f 4c 61 6e 67 leases.llvm.org/10.0.0/docs/Lang
8fb80 52 65 66 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 Ref.html#inline-asm-constraint-s
8fba0 74 72 69 6e 67 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 tring</span>.....<span.class="to
8fbc0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 68 74 74 70 73 3a 2f 2f 67 63 63 2e 67 6e 75 2e 6f 72 k-comment">//.https://gcc.gnu.or
8fbe0 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 41 73 6d 2e 68 74 g/onlinedocs/gcc/Extended-Asm.ht
8fc00 6d 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 74 6f 6b 2d 63 ml</span>.....<span.class="tok-c
8fc20 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 65 2c 20 74 68 65 20 omment">//.In.this.example,.the.
8fc40 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 71 75 6f 74 3b 74 68 constraint.string.means.&quot;th
8fc60 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 20 20 20 20 3c 73 70 e.result.value.of</span>.....<sp
8fc80 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 73 20 69 an.class="tok-comment">//.this.i
8fca0 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 20 77 68 nline.assembly.instruction.is.wh
8fcc0 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 6e 3e 0a atever.is.in.$rax&quot;.</span>.
8fce0 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 26 71 ........<span.class="tok-str">&q
8fd00 75 6f 74 3b 3d 7b 72 61 78 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 uot;={rax}&quot;</span>.....<spa
8fd20 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
8fd40 20 65 69 74 68 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 .either.a.value.binding,.or.`-&g
8fd60 74 3b 60 20 61 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 t;`.and.then.a.type..The</span>.
8fd80 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">//
8fda0 20 74 79 70 65 20 69 73 20 74 68 65 20 72 65 73 75 6c 74 20 74 79 70 65 20 6f 66 20 74 68 65 20 .type.is.the.result.type.of.the.
8fdc0 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 2e 3c 2f 73 70 61 inline.assembly.expression.</spa
8fde0 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"
8fe00 3e 2f 2f 20 49 66 20 69 74 20 69 73 20 61 20 76 61 6c 75 65 20 62 69 6e 64 69 6e 67 2c 20 74 68 >//.If.it.is.a.value.binding,.th
8fe20 65 6e 20 60 25 5b 72 65 74 5d 60 20 73 79 6e 74 61 78 20 77 6f 75 6c 64 20 62 65 20 75 73 65 64 en.`%[ret]`.syntax.would.be.used
8fe40 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 6d </span>.....<span.class="tok-com
8fe60 6d 65 6e 74 22 3e 2f 2f 20 74 6f 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 72 65 67 69 73 74 65 ment">//.to.refer.to.the.registe
8fe80 72 20 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 76 61 6c 75 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 r.bound.to.the.value.</span>....
8fea0 20 20 20 20 20 28 2d 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 .....(-&gt;.<span.class="tok-typ
8fec0 65 22 3e 75 73 69 7a 65 3c 2f 73 70 61 6e 3e 29 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 e">usize</span>),.....<span.clas
8fee0 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 68 65 20 6c s="tok-comment">//.Next.is.the.l
8ff00 69 73 74 20 6f 66 20 69 6e 70 75 74 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 ist.of.inputs.</span>.....<span.
8ff20 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 73 74 class="tok-comment">//.The.const
8ff40 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 26 71 raint.for.these.inputs.means,.&q
8ff60 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 2f 73 uot;when.the.assembly.code.is</s
8ff80 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
8ffa0 74 22 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 t">//.executed,.$rax.shall.have.
8ffc0 74 68 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 the.value.of.`number`.and.$rdi.s
8ffe0 68 61 6c 6c 20 68 61 76 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 hall.have</span>.....<span.class
90000 3d 22 74 6f 6b 2d 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 ="tok-comment">//.the.value.of.`
90020 61 72 67 31 60 26 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 arg1`&quot;..Any.number.of.input
90040 20 70 61 72 61 6d 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 20 .parameters.is.allowed,</span>..
90060 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">//.
90080 69 6e 63 6c 75 64 69 6e 67 20 6e 6f 6e 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3a including.none.</span>.........:
900a0 20 5b 6e 75 6d 62 65 72 5d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e .[number].<span.class="tok-str">
900c0 26 71 75 6f 74 3b 7b 72 61 78 7d 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 28 6e 75 6d 62 65 72 &quot;{rax}&quot;</span>.(number
900e0 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 5b 61 72 67 31 5d 20 3c 73 70 61 6e 20 63 6c 61 73 ),.............[arg1].<span.clas
90100 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 72 64 69 7d 26 71 75 6f 74 3b 3c 2f 73 s="tok-str">&quot;{rdi}&quot;</s
90120 70 61 6e 3e 20 28 61 72 67 31 29 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pan>.(arg1),.....<span.class="to
90140 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 65 78 74 20 69 73 20 74 68 65 20 6c 69 73 74 20 6f k-comment">//.Next.is.the.list.o
90160 66 20 63 6c 6f 62 62 65 72 73 2e 20 54 68 65 73 65 20 64 65 63 6c 61 72 65 20 61 20 73 65 74 20 f.clobbers..These.declare.a.set.
90180 6f 66 20 72 65 67 69 73 74 65 72 73 20 77 68 6f 73 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 of.registers.whose</span>.....<s
901a0 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 6c 75 65 pan.class="tok-comment">//.value
901c0 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 74 68 65 20 65 s.will.not.be.preserved.by.the.e
901e0 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 6f 64 65 2e 3c xecution.of.this.assembly.code.<
90200 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
90220 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 74 ent">//.These.do.not.include.out
90240 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 63 put.or.input.registers..The.spec
90260 69 61 6c 20 63 6c 6f 62 62 65 72 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 ial.clobber</span>.....<span.cla
90280 73 73 3d 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 ss="tok-comment">//.value.of.&qu
902a0 6f 74 3b 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 ot;memory&quot;.means.that.the.a
902c0 73 73 65 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 ssembly.writes.to.arbitrary.unde
902e0 63 6c 61 72 65 64 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 clared</span>.....<span.class="t
90300 6f 6b 2d 63 6f 6d 6d 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 ok-comment">//.memory.locations.
90320 2d 20 6e 6f 74 20 6f 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 -.not.only.the.memory.pointed.to
90340 20 62 79 20 61 20 64 65 63 6c 61 72 65 64 20 69 6e 64 69 72 65 63 74 3c 2f 73 70 61 6e 3e 0a 20 .by.a.declared.indirect</span>..
90360 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">//.
90380 6f 75 74 70 75 74 2e 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 77 65 20 6c 69 73 74 20 output..In.this.example.we.list.
903a0 24 72 63 78 20 61 6e 64 20 24 72 31 31 20 62 65 63 61 75 73 65 20 69 74 20 69 73 20 6b 6e 6f 77 $rcx.and.$r11.because.it.is.know
903c0 6e 20 74 68 65 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 n.the</span>.....<span.class="to
903e0 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 6b 65 72 6e 65 6c 20 73 79 73 63 61 6c 6c 20 64 6f 65 k-comment">//.kernel.syscall.doe
90400 73 20 6e 6f 74 20 70 72 65 73 65 72 76 65 20 74 68 65 73 65 20 72 65 67 69 73 74 65 72 73 2e 3c s.not.preserve.these.registers.<
90420 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>.........:.<span.class="to
90440 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 6e 3e 2c 20 3c k-str">&quot;rcx&quot;</span>,.<
90460 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 31 31 26 71 span.class="tok-str">&quot;r11&q
90480 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 3c 2f 70 72 65 uot;</span>.....);.}</code></pre
904a0 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 78 ></figure>.......<p>.......For.x
904c0 38 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 86.and.x86_64.targets,.the.synta
904e0 78 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 x.is.AT&amp;T.syntax,.rather.tha
90500 6e 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 n.the.more.......popular.Intel.s
90520 79 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 yntax..This.is.due.to.technical.
90540 63 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 constraints;.assembly.parsing.is
90560 0a 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 .......provided.by.LLVM.and.its.
90580 73 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 support.for.Intel.syntax.is.bugg
905a0 79 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 y.and.not.well.tested........</p
905c0 3e 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 >.......<p>.......Some.day.Zig.m
905e0 61 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 ay.have.its.own.assembler..This.
90600 77 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 would.allow.it.to.integrate.more
90620 20 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 .seamlessly.......into.the.langu
90640 61 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 age,.as.well.as.be.compatible.wi
90660 74 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 th.the.popular.NASM.syntax..This
90680 20 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 .documentation.......section.wil
906a0 6c 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 l.be.updated.before.1.0.0.is.rel
906c0 65 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 eased,.with.a.conclusive.stateme
906e0 6e 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 nt.about.the.status.......of.AT&
90700 61 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 amp;T.vs.Intel/NASM.syntax......
90720 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4f 75 74 70 75 74 2d 43 6f 6e 73 ..</p>.......<h3.id="Output-Cons
90740 74 72 61 69 6e 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d traints"><a.href="nav.xhtml#toc-
90760 4f 75 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 Output-Constraints">Output.Const
90780 72 61 69 6e 74 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 raints</a>.<a.class="hdr".href="
907a0 23 4f 75 74 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e #Output-Constraints">..</a></h3>
907c0 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 75 74 70 75 74 20 63 6f 6e 73 74 72 61 ........<p>.......Output.constra
907e0 69 6e 74 73 20 61 72 65 20 73 74 69 6c 6c 20 63 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 62 65 20 ints.are.still.considered.to.be.
90800 75 6e 73 74 61 62 6c 65 20 69 6e 20 5a 69 67 2c 20 61 6e 64 0a 20 20 20 20 20 20 73 6f 0a 20 20 unstable.in.Zig,.and.......so...
90820 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 72 65 6c 65 61 73 65 73 2e 6c 6c 76 ....<a.href="http://releases.llv
90840 6d 2e 6f 72 67 2f 31 30 2e 30 2e 30 2f 64 6f 63 73 2f 4c 61 6e 67 52 65 66 2e 68 74 6d 6c 23 69 m.org/10.0.0/docs/LangRef.html#i
90860 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 6e 67 22 3e 4c 4c 56 nline-asm-constraint-string">LLV
90880 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 20 61 6e 64 0a 20 20 M.documentation</a>.......and...
908a0 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 72 67 ....<a.href="https://gcc.gnu.org
908c0 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 41 73 6d 2e 68 74 6d /onlinedocs/gcc/Extended-Asm.htm
908e0 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 20 20 20 20 20 20 6d l">GCC.documentation</a>.......m
90900 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 20 74 68 65 20 73 65 ust.be.used.to.understand.the.se
90920 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 20 3c 70 3e 0a 20 20 mantics........</p>.......<p>...
90940 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 6e 67 20 63 68 61 6e ....Note.that.some.breaking.chan
90960 67 65 73 20 74 6f 20 6f 75 74 70 75 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20 70 6c ges.to.output.constraints.are.pl
90980 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 68 74 74 70 73 3a anned.with.......<a.href="https:
909a0 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/
909c0 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 20 3c 2f 70 3e 0a 215">issue.#215</a>........</p>.
909e0 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6e 70 75 74 2d 43 6f 6e 73 ..............<h3.id="Input-Cons
90a00 74 72 61 69 6e 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d traints"><a.href="nav.xhtml#toc-
90a20 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 74 72 61 Input-Constraints">Input.Constra
90a40 69 6e 74 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 ints</a>.<a.class="hdr".href="#I
90a60 6e 70 75 74 2d 43 6f 6e 73 74 72 61 69 6e 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 nput-Constraints">..</a></h3>...
90a80 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 70 75 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 .....<p>.......Input.constraints
90aa0 20 61 72 65 20 73 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 .are.still.considered.to.be.unst
90ac0 61 62 6c 65 20 69 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 able.in.Zig,.and.......so.......
90ae0 3c 61 20 68 72 65 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 <a.href="http://releases.llvm.or
90b00 67 2f 31 30 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 g/10.0.0/docs/LangRef.html#inlin
90b20 65 2d 61 73 6d 2d 63 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 e-asm-constraint-string">LLVM.do
90b40 63 75 6d 65 6e 74 61 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 cumentation</a>.......and.......
90b60 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 72 67 2f 6f 6e 6c <a.href="https://gcc.gnu.org/onl
90b80 69 6e 65 64 6f 63 73 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 inedocs/gcc/Extended-Asm.html">G
90ba0 43 43 20 64 6f 63 75 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 CC.documentation</a>.......must.
90bc0 62 65 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 be.used.to.understand.the.semant
90be0 69 63 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 ics........</p>.......<p>.......
90c00 4e 6f 74 65 20 74 68 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 Note.that.some.breaking.changes.
90c20 74 6f 20 69 6e 70 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 to.input.constraints.are.planned
90c40 20 77 69 74 68 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 .with.......<a.href="https://git
90c60 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 31 35 22 3e hub.com/ziglang/zig/issues/215">
90c80 69 73 73 75 65 20 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 issue.#215</a>........</p>......
90ca0 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 6c 6f 62 62 65 72 73 22 3e 3c 61 20 68 72 .........<h3.id="Clobbers"><a.hr
90cc0 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 6c 6f 62 62 65 72 73 22 3e 43 6c 6f 62 ef="nav.xhtml#toc-Clobbers">Clob
90ce0 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 23 43 bers</a>.<a.class="hdr".href="#C
90d00 6c 6f 62 62 65 72 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 lobbers">..</a></h3>........<p>.
90d20 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 72 65 ......Clobbers.are.the.set.of.re
90d40 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 62 65 gisters.whose.values.will.not.be
90d60 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 0a 20 .preserved.by.the.execution.of..
90d80 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 64 6f .....the.assembly.code..These.do
90da0 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 65 67 .not.include.output.or.input.reg
90dc0 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 20 20 isters..The.special.clobber.....
90de0 20 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ..value.of.<code><span.class="to
90e00 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6d 65 6d 6f 72 79 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e k-str">&quot;memory&quot;</span>
90e20 3c 2f 63 6f 64 65 3e 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 61 73 73 65 6d 62 6c 79 20 </code>.means.that.the.assembly.
90e40 63 61 75 73 65 73 20 77 72 69 74 65 73 20 74 6f 0a 20 20 20 20 20 20 61 72 62 69 74 72 61 72 79 causes.writes.to.......arbitrary
90e60 20 75 6e 64 65 63 6c 61 72 65 64 20 6d 65 6d 6f 72 79 20 6c 6f 63 61 74 69 6f 6e 73 20 2d 20 6e .undeclared.memory.locations.-.n
90e80 6f 74 20 6f 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 ot.only.the.memory.pointed.to.by
90ea0 20 61 20 64 65 63 6c 61 72 65 64 0a 20 20 20 20 20 20 69 6e 64 69 72 65 63 74 20 6f 75 74 70 75 .a.declared.......indirect.outpu
90ec0 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 46 61 t........</p>.......<p>.......Fa
90ee0 69 6c 75 72 65 20 74 6f 20 64 65 63 6c 61 72 65 20 74 68 65 20 66 75 6c 6c 20 73 65 74 20 6f 66 ilure.to.declare.the.full.set.of
90f00 20 63 6c 6f 62 62 65 72 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 69 6e 6c 69 6e 65 20 61 73 73 .clobbers.for.a.given.inline.ass
90f20 65 6d 62 6c 79 0a 20 20 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 75 6e 63 68 65 63 embly.......expression.is.unchec
90f40 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 72 ked.<a.href="#Undefined-Behavior
90f60 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 20 ">Undefined.Behavior</a>........
90f80 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 47 6c 6f 62 61 </p>...............<h3.id="Globa
90fa0 6c 2d 41 73 73 65 6d 62 6c 79 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 l-Assembly"><a.href="nav.xhtml#t
90fc0 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 41 73 73 65 6d oc-Global-Assembly">Global.Assem
90fe0 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 47 6c bly</a>.<a.class="hdr".href="#Gl
91000 6f 62 61 6c 2d 41 73 73 65 6d 62 6c 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 obal-Assembly">..</a></h3>......
91020 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 79 20 65 78 70 ..<p>.......When.an.assembly.exp
91040 72 65 73 73 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 43 6f ression.occurs.in.a.<a.href="#Co
91060 6e 74 61 69 6e 65 72 73 22 3e 63 6f 6e 74 61 69 6e 65 72 3c 2f 61 3e 20 6c 65 76 65 6c 20 3c 61 ntainers">container</a>.level.<a
91080 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 62 .href="#comptime">comptime</a>.b
910a0 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 3e 67 6c 6f 62 lock,.this.is.......<strong>glob
910c0 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 20 3c 2f 70 3e al.assembly</strong>........</p>
910e0 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 6f 66 20 61 73 .......<p>.......This.kind.of.as
91100 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 74 68 61 6e 20 sembly.has.different.rules.than.
91120 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 64 65 3e 3c 73 inline.assembly..First,.<code><s
91140 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 61 pan.class="tok-kw">volatile</spa
91160 6e 3e 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 20 62 65 63 n></code>.......is.not.valid.bec
91180 61 75 73 65 20 61 6c 6c 20 67 6c 6f 62 61 6c 20 61 73 73 65 6d 62 6c 79 20 69 73 20 75 6e 63 6f ause.all.global.assembly.is.unco
911a0 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 69 6e 63 6c 75 64 65 64 2e 0a 20 20 20 20 20 20 53 65 63 6f nditionally.included........Seco
911c0 6e 64 2c 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 69 6e 70 75 74 73 2c 20 6f 75 74 70 75 74 73 nd,.there.are.no.inputs,.outputs
911e0 2c 20 6f 72 20 63 6c 6f 62 62 65 72 73 2e 20 41 6c 6c 20 67 6c 6f 62 61 6c 20 61 73 73 65 6d 62 ,.or.clobbers..All.global.assemb
91200 6c 79 20 69 73 20 63 6f 6e 63 61 74 65 6e 61 74 65 64 0a 20 20 20 20 20 20 76 65 72 62 61 74 69 ly.is.concatenated.......verbati
91220 6d 20 69 6e 74 6f 20 6f 6e 65 20 6c 6f 6e 67 20 73 74 72 69 6e 67 20 61 6e 64 20 61 73 73 65 6d m.into.one.long.string.and.assem
91240 62 6c 65 64 20 74 6f 67 65 74 68 65 72 2e 20 54 68 65 72 65 20 61 72 65 20 6e 6f 20 74 65 6d 70 bled.together..There.are.no.temp
91260 6c 61 74 65 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 72 75 6c 65 73 20 72 65 67 61 72 64 69 6e late.substitution.rules.regardin
91280 67 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 25 3c 2f 63 6f 64 65 3e 20 61 73 20 74 68 65 72 65 20 g.......<code>%</code>.as.there.
912a0 61 72 65 20 69 6e 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 are.in.inline.assembly.expressio
912c0 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 ns........</p>.......<figure><fi
912e0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
91300 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 67 6c 6f 62 61 6c 5f 61 73 73 65 6d 62 6c 79 lass="file">test_global_assembly
91320 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
91340 64 65 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 de><span.class="tok-kw">const</s
91360 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
91380 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=
913a0 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>
913c0 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
913e0 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 pan>.expect.=.std.testing.expect
91400 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 6d 70 74 69 6d 65 ;..<span.class="tok-kw">comptime
91420 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
91440 77 22 3e 61 73 6d 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 w">asm</span>.(.........<span.cl
91460 61 73 73 3d 22 74 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 ass="tok-str">\\.global.my_func;
91480 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 6f 6b .</span>........<span.class="tok
914a0 2d 73 74 72 22 3e 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 -str">\\.type.my_func,.@function
914c0 3b 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 6f ;.</span>........<span.class="to
914e0 6b 2d 73 74 72 22 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 k-str">\\my_func:.</span>.......
91500 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 6c 65 61 20 28 .<span.class="tok-str">\\..lea.(
91520 25 72 64 69 2c 25 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 %rdi,%rsi,1),%eax.</span>.......
91540 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 72 65 74 71 0a .<span.class="tok-str">\\..retq.
91560 3c 2f 73 70 61 6e 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 </span>....);.}..<span.class="to
91580 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 61 73 73 3d k-kw">extern</span>.<span.class=
915a0 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="
915c0 74 6f 6b 2d 66 6e 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 tok-fn">my_func</span>(a:.<span.
915e0 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 20 class="tok-type">i32</span>,.b:.
91600 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
91620 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 3c 2f 73 >).<span.class="tok-type">i32</s
91640 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 74 65 73 74 pan>;..<span.class="tok-kw">test
91660 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
91680 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 3c 2f 73 70 61 6e 3e uot;global.assembly&quot;</span>
916a0 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 72 79 3c .{.....<span.class="tok-kw">try<
916c0 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6d 79 5f 66 75 6e 63 28 3c 73 70 61 6e 20 63 6c 61 73 /span>.expect(my_func(<span.clas
916e0 73 3d 22 74 6f 6b 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 s="tok-number">12</span>,.<span.
91700 63 6c 61 73 73 3d 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 class="tok-number">34</span>).==
91720 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 36 3c 2f 73 70 .<span.class="tok-number">46</sp
91740 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 an>);.}</code></pre></figure><fi
91760 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
91780 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
917a0 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 67 6c 6f 62 61 6c 5f 61 73 73 65 $.<kbd>zig.test.test_global_asse
917c0 6d 62 6c 79 2e 7a 69 67 20 2d 74 61 72 67 65 74 20 78 38 36 5f 36 34 2d 6c 69 6e 75 78 3c 2f 6b mbly.zig.-target.x86_64-linux</k
917e0 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 67 6c 6f 62 61 6c 5f 61 73 73 65 6d 62 6c 79 2e 74 65 73 bd>.1/1.test_global_assembly.tes
91800 74 2e 67 6c 6f 62 61 6c 20 61 73 73 65 6d 62 6c 79 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 t.global.assembly....OK.All.1.te
91820 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 sts.passed..</samp></pre></figur
91840 65 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 32 20 69 64 3d 22 e>......................<h2.id="
91860 41 74 6f 6d 69 63 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d Atomics"><a.href="nav.xhtml#toc-
91880 41 74 6f 6d 69 63 73 22 3e 41 74 6f 6d 69 63 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 Atomics">Atomics</a>.<a.class="h
918a0 64 72 22 20 68 72 65 66 3d 22 23 41 74 6f 6d 69 63 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a dr".href="#Atomics">..</a></h2>.
918c0 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 40 66 65 6e 63 65 28 29 3c 2f 70 3e 0a 20 20 20 .......<p>TODO:.@fence()</p>....
918e0 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 40 61 74 6f 6d 69 63 20 72 6d 77 3c 2f 70 3e 0a 20 20 20 20 ...<p>TODO:.@atomic.rmw</p>.....
91900 20 20 3c 70 3e 54 4f 44 4f 3a 20 62 75 69 6c 74 69 6e 20 61 74 6f 6d 69 63 20 6d 65 6d 6f 72 79 ..<p>TODO:.builtin.atomic.memory
91920 20 6f 72 64 65 72 69 6e 67 20 65 6e 75 6d 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 .ordering.enum</p>........<p>See
91940 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 61 74 6f .also:</p><ul>.<li><a.href="#ato
91960 6d 69 63 4c 6f 61 64 22 3e 40 61 74 6f 6d 69 63 4c 6f 61 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c micLoad">@atomicLoad</a></li>.<l
91980 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 53 74 6f 72 65 22 3e 40 61 74 6f 6d 69 63 i><a.href="#atomicStore">@atomic
919a0 53 74 6f 72 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 61 74 6f Store</a></li>.<li><a.href="#ato
919c0 6d 69 63 52 6d 77 22 3e 40 61 74 6f 6d 69 63 52 6d 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e micRmw">@atomicRmw</a></li>.<li>
919e0 3c 61 20 68 72 65 66 3d 22 23 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e <a.href="#fence">@fence</a></li>
91a00 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6d 70 78 63 68 67 57 65 61 6b 22 3e 40 63 6d 70 .<li><a.href="#cmpxchgWeak">@cmp
91a20 78 63 68 67 57 65 61 6b 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 xchgWeak</a></li>.<li><a.href="#
91a40 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 67 3c 2f 61 cmpxchgStrong">@cmpxchgStrong</a
91a60 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 ></li>.</ul>.................<h2
91a80 20 69 64 3d 22 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e .id="Async-Functions"><a.href="n
91aa0 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 41 73 79 6e 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 41 73 av.xhtml#toc-Async-Functions">As
91ac0 79 6e 63 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 64 72 22 ync.Functions</a>.<a.class="hdr"
91ae0 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 c2 a7 3c 2f 61 3e 3c .href="#Async-Functions">..</a><
91b00 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 73 20 72 /h2>........<p>Async.functions.r
91b20 65 67 72 65 73 73 65 64 20 77 69 74 68 20 74 68 65 20 72 65 6c 65 61 73 65 20 6f 66 20 30 2e 31 egressed.with.the.release.of.0.1
91b40 31 2e 30 2e 20 54 68 65 69 72 20 66 75 74 75 72 65 20 69 6e 0a 20 20 20 20 20 20 74 68 65 20 5a 1.0..Their.future.in.......the.Z
91b60 69 67 20 6c 61 6e 67 75 61 67 65 20 69 73 20 75 6e 63 6c 65 61 72 20 64 75 65 20 74 6f 20 6d 75 ig.language.is.unclear.due.to.mu
91b80 6c 74 69 70 6c 65 20 75 6e 73 6f 6c 76 65 64 20 70 72 6f 62 6c 65 6d 73 3a 3c 2f 70 3e 0a 20 20 ltiple.unsolved.problems:</p>...
91ba0 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4c 4c 56 4d 27 73 20 6c 61 63 6b ....<ul>.........<li>LLVM's.lack
91bc0 20 6f 66 20 61 62 69 6c 69 74 79 20 74 6f 20 6f 70 74 69 6d 69 7a 65 20 74 68 65 6d 2e 3c 2f 6c .of.ability.to.optimize.them.</l
91be0 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 69 72 64 2d 70 61 72 74 79 20 64 65 62 75 67 i>.........<li>Third-party.debug
91c00 67 65 72 73 27 20 6c 61 63 6b 20 6f 66 20 61 62 69 6c 69 74 79 20 74 6f 20 64 65 62 75 67 20 74 gers'.lack.of.ability.to.debug.t
91c20 68 65 6d 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 68 hem.</li>.........<li><a.href="h
91c40 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
91c60 73 75 65 73 2f 35 39 31 33 22 3e 54 68 65 20 63 61 6e 63 65 6c 6c 61 74 69 6f 6e 20 70 72 6f 62 sues/5913">The.cancellation.prob
91c80 6c 65 6d 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 73 79 6e 63 20 lem</a>.</li>.........<li>Async.
91ca0 66 75 6e 63 74 69 6f 6e 20 70 6f 69 6e 74 65 72 73 20 70 72 65 76 65 6e 74 69 6e 67 20 74 68 65 function.pointers.preventing.the
91cc0 20 73 74 61 63 6b 20 73 69 7a 65 20 66 72 6f 6d 20 62 65 69 6e 67 20 6b 6e 6f 77 6e 2e 3c 2f 6c .stack.size.from.being.known.</l
91ce0 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 73 65 20 70 72 i>.......</ul>.......<p>These.pr
91d00 6f 62 6c 65 6d 73 20 61 72 65 20 73 75 72 6d 6f 75 6e 74 61 62 6c 65 2c 20 62 75 74 20 69 74 20 oblems.are.surmountable,.but.it.
91d20 77 69 6c 6c 20 74 61 6b 65 20 74 69 6d 65 2e 20 54 68 65 20 5a 69 67 20 74 65 61 6d 0a 20 20 20 will.take.time..The.Zig.team....
91d40 20 20 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 66 6f 63 75 73 65 64 20 6f 6e 20 6f 74 68 65 72 ...is.currently.focused.on.other
91d60 20 70 72 69 6f 72 69 74 69 65 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c .priorities.</p>...............<
91d80 68 32 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 61 20 68 72 65 h2.id="Builtin-Functions"><a.hre
91da0 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 42 75 69 6c 74 69 6e 2d 46 75 6e 63 74 69 6f f="nav.xhtml#toc-Builtin-Functio
91dc0 6e 73 22 3e 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 ns">Builtin.Functions</a>.<a.cla
91de0 73 73 3d 22 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 ss="hdr".href="#Builtin-Function
91e00 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 20 s">..</a></h2>........<p>.......
91e20 42 75 69 6c 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 Builtin.functions.are.provided.b
91e40 79 20 74 68 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 y.the.compiler.and.are.prefixed.
91e60 77 69 74 68 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 with.<code>@</code>........The.<
91e80 63 6f 64 65 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 code><span.class="tok-kw">compti
91ea0 6d 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 6f 6e 20 61 20 70 61 me</span></code>.keyword.on.a.pa
91ec0 72 61 6d 65 74 65 72 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 rameter.means.that.the.parameter
91ee0 20 6d 75 73 74 20 62 65 20 6b 6e 6f 77 6e 0a 20 20 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 20 .must.be.known.......at.compile.
91f00 74 69 6d 65 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 61 time........</p>.......<h3.id="a
91f20 64 64 72 53 70 61 63 65 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c ddrSpaceCast"><a.href="nav.xhtml
91f40 23 74 6f 63 2d 61 64 64 72 53 70 61 63 65 43 61 73 74 22 3e 40 61 64 64 72 53 70 61 63 65 43 61 #toc-addrSpaceCast">@addrSpaceCa
91f60 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 64 64 st</a>.<a.class="hdr".href="#add
91f80 72 53 70 61 63 65 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c rSpaceCast">..</a></h3>........<
91fa0 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 pre><code><span.class="tok-built
91fc0 69 6e 22 3e 40 61 64 64 72 53 70 61 63 65 43 61 73 74 3c 2f 73 70 61 6e 3e 28 70 74 72 3a 20 3c in">@addrSpaceCast</span>(ptr:.<
91fe0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 span.class="tok-kw">anytype</spa
92000 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 61 6e 79 74 79 70 65 n>).<span.class="tok-kw">anytype
92020 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>..
92040 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 20 70 6f 69 6e 74 65 72 20 66 72 6f 6d 20 6f 6e 65 .....Converts.a.pointer.from.one
92060 20 61 64 64 72 65 73 73 20 73 70 61 63 65 20 74 6f 20 61 6e 6f 74 68 65 72 2e 20 54 68 65 20 6e .address.space.to.another..The.n
92080 65 77 20 61 64 64 72 65 73 73 20 73 70 61 63 65 20 69 73 20 69 6e 66 65 72 72 65 64 0a 09 09 09 ew.address.space.is.inferred....
920a0 62 61 73 65 64 20 6f 6e 20 74 68 65 20 72 65 73 75 6c 74 20 74 79 70 65 2e 20 44 65 70 65 6e 64 based.on.the.result.type..Depend
920c0 69 6e 67 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 61 72 67 65 74 20 61 6e 64 20 61 64 ing.on.the.current.target.and.ad
920e0 64 72 65 73 73 20 73 70 61 63 65 73 2c 20 74 68 69 73 20 63 61 73 74 0a 09 09 09 6d 61 79 20 62 dress.spaces,.this.cast....may.b
92100 65 20 61 20 6e 6f 2d 6f 70 2c 20 61 20 63 6f 6d 70 6c 65 78 20 6f 70 65 72 61 74 69 6f 6e 2c 20 e.a.no-op,.a.complex.operation,.
92120 6f 72 20 69 6c 6c 65 67 61 6c 2e 20 49 66 20 74 68 65 20 63 61 73 74 20 69 73 20 6c 65 67 61 6c or.illegal..If.the.cast.is.legal
92140 2c 20 74 68 65 6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 0a 09 09 09 70 6f 69 6e 74 65 72 20 ,.then.the.resulting....pointer.
92160 70 6f 69 6e 74 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20 6d 65 6d 6f 72 79 20 6c 6f 63 61 74 69 points.to.the.same.memory.locati
92180 6f 6e 20 61 73 20 74 68 65 20 70 6f 69 6e 74 65 72 20 6f 70 65 72 61 6e 64 2e 20 49 74 20 69 73 on.as.the.pointer.operand..It.is
921a0 20 61 6c 77 61 79 73 20 76 61 6c 69 64 20 74 6f 0a 09 09 09 63 61 73 74 20 61 20 70 6f 69 6e 74 .always.valid.to....cast.a.point
921c0 65 72 20 62 65 74 77 65 65 6e 20 74 68 65 20 73 61 6d 65 20 61 64 64 72 65 73 73 20 73 70 61 63 er.between.the.same.address.spac
921e0 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 20 20 20 3c 68 33 20 es........</p>..............<h3.
92200 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 22 6e 61 id="addWithOverflow"><a.href="na
92220 76 2e 78 68 74 6d 6c 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 v.xhtml#toc-addWithOverflow">@ad
92240 64 57 69 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 dWithOverflow</a>.<a.class="hdr"
92260 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 c2 a7 3c 2f 61 3e 3c .href="#addWithOverflow">..</a><
92280 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /h3>........<pre><code><span.cla
922a0 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 76 65 72 66 6c 6f ss="tok-builtin">@addWithOverflo
922c0 77 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 6b 77 22 w</span>(a:.<span.class="tok-kw"
922e0 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 62 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d >anytype</span>,.b:.<span.class=
92300 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 "tok-kw">anytype</span>).<span.c
92320 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 20 3c 73 lass="tok-kw">struct</span>.{.<s
92340 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 4f 66 3c pan.class="tok-builtin">@TypeOf<
92360 2f 73 70 61 6e 3e 28 61 2c 20 62 29 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 /span>(a,.b),.<span.class="tok-t
92380 79 70 65 22 3e 75 31 3c 2f 73 70 61 6e 3e 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 ype">u1</span>.}</code></pre>...
923a0 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 3e 61 20 2b ....<p>.......Performs.<code>a.+
923c0 20 62 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 74 75 70 6c 65 20 77 69 .b</code>.and.returns.a.tuple.wi
923e0 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 61 6e 64 20 61 20 70 6f 73 73 69 62 6c 65 20 6f 76 65 th.the.result.and.a.possible.ove
92400 72 66 6c 6f 77 20 62 69 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 rflow.bit........</p>...........
92420 20 20 20 3c 68 33 20 69 64 3d 22 61 6c 69 67 6e 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e ...<h3.id="alignCast"><a.href="n
92440 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 61 6c 69 67 6e 43 61 73 74 22 3e 40 61 6c 69 67 6e 43 61 av.xhtml#toc-alignCast">@alignCa
92460 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 69 st</a>.<a.class="hdr".href="#ali
92480 67 6e 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e gnCast">..</a></h3>........<pre>
924a0 3c 63 6f 64 65 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 <code><span.class="tok-builtin">
924c0 40 61 6c 69 67 6e 43 61 73 74 3c 2f 73 70 61 6e 3e 28 70 74 72 3a 20 3c 73 70 61 6e 20 63 6c 61 @alignCast</span>(ptr:.<span.cla
924e0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 ss="tok-kw">anytype</span>).<spa
92500 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 3c n.class="tok-kw">anytype</span><
92520 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 3c 63 6f /code></pre>.......<p>.......<co
92540 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 3c 63 6f 64 65 3e 2a 54 3c 2f 63 de>ptr</code>.can.be.<code>*T</c
92560 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3f 2a 54 3c 2f 63 6f 64 65 3e 2c 20 6f 72 20 3c 63 6f 64 65 ode>,.<code>?*T</code>,.or.<code
92580 3e 5b 5d 54 3c 2f 63 6f 64 65 3e 2e 0a 09 09 09 43 68 61 6e 67 65 73 20 74 68 65 20 61 6c 69 67 >[]T</code>.....Changes.the.alig
925a0 6e 6d 65 6e 74 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 2e 20 54 68 65 20 61 6c 69 67 6e 6d 65 6e nment.of.a.pointer..The.alignmen
925c0 74 20 74 6f 20 75 73 65 20 69 73 20 69 6e 66 65 72 72 65 64 20 62 61 73 65 64 20 6f 6e 20 74 68 t.to.use.is.inferred.based.on.th
925e0 65 20 72 65 73 75 6c 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 e.result.type........</p>.......
92600 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 50 6f 69 6e 74 65 72 <p>A.<a.href="#Incorrect-Pointer
92620 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 6d 65 6e 74 20 73 61 -Alignment">pointer.alignment.sa
92640 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 20 20 20 20 20 74 6f fety.check</a>.is.added.......to
92660 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 6b 65 20 73 75 72 65 .the.generated.code.to.make.sure
92680 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 73 20 70 72 6f 6d 69 .the.pointer.is.aligned.as.promi
926a0 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 33 20 69 64 3d 22 61 sed.</p>...............<h3.id="a
926c0 6c 69 67 6e 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 61 lignOf"><a.href="nav.xhtml#toc-a
926e0 6c 69 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 lignOf">@alignOf</a>.<a.class="h
92700 64 72 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 33 3e 0a dr".href="#alignOf">..</a></h3>.
92720 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
92740 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 61 ok-builtin">@alignOf</span>(<spa
92760 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>
92780 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<
927a0 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 63 /span>).<span.class="tok-type">c
927c0 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 3e 0a omptime_int</span></code></pre>.
927e0 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
92800 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 74 68 61 74 20 74 turns.the.number.of.bytes.that.t
92820 68 69 73 20 74 79 70 65 20 73 68 6f 75 6c 64 20 62 65 20 61 6c 69 67 6e 65 64 20 74 6f 0a 20 20 his.type.should.be.aligned.to...
92840 20 20 20 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 61 72 67 65 74 20 74 6f 20 6d 61 ....for.the.current.target.to.ma
92860 74 63 68 20 74 68 65 20 43 20 41 42 49 2e 20 57 68 65 6e 20 74 68 65 20 63 68 69 6c 64 20 74 79 tch.the.C.ABI..When.the.child.ty
92880 70 65 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 20 68 61 73 0a 20 20 20 20 20 20 74 68 69 73 20 61 pe.of.a.pointer.has.......this.a
928a0 6c 69 67 6e 6d 65 6e 74 2c 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 20 63 61 6e 20 62 65 20 6f lignment,.the.alignment.can.be.o
928c0 6d 69 74 74 65 64 20 66 72 6f 6d 20 74 68 65 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e mitted.from.the.type........</p>
928e0 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
92900 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
92920 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</
92940 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
92960 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
92980 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 6d 70 74 69 6d 65 3c ;.<span.class="tok-kw">comptime<
929a0 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 2a 3c 73 70 61 6e 20 63 6c 61 73 73 /span>.{.....assert(*<span.class
929c0 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 33 32 3c 2f 73 70 61 6e 3e 20 3d 3d 20 2a 3c 73 70 61 6e ="tok-type">u32</span>.==.*<span
929e0 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
92a00 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 6e 4f 66 3c an.class="tok-builtin">@alignOf<
92a20 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 75 33 /span>(<span.class="tok-type">u3
92a40 32 3c 2f 73 70 61 6e 3e 29 29 20 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
92a60 22 3e 75 33 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 0a 20 20 ">u32</span>);.}</code></pre>...
92a80 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 74 61 ....<p>.......The.result.is.a.ta
92aa0 72 67 65 74 2d 73 70 65 63 69 66 69 63 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 rget-specific.compile.time.const
92ac0 61 6e 74 2e 20 49 74 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 0a 20 20 20 20 ant..It.is.guaranteed.to.be.....
92ae0 20 20 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 3c 61 20 68 72 65 66 3d ..less.than.or.equal.to.<a.href=
92b00 22 23 73 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 28 54 29 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 "#sizeOf">@sizeOf(T)</a>........
92b20 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>.
92b40 3c 6c 69 3e 3c 61 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 <li><a.href="#Alignment">Alignme
92b60 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 20 20 20 20 20 nt</a></li>.</ul>...............
92b80 20 3c 68 33 20 69 64 3d 22 61 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 .<h3.id="as"><a.href="nav.xhtml#
92ba0 74 6f 63 2d 61 73 22 3e 40 61 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 toc-as">@as</a>.<a.class="hdr".h
92bc0 72 65 66 3d 22 23 61 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 ref="#as">..</a></h3>........<pr
92be0 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-builtin
92c00 22 3e 40 61 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 ">@as</span>(<span.class="tok-kw
92c20 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
92c40 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 65 78 70 72 65 73 73 ="tok-type">type</span>,.express
92c60 69 6f 6e 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 ion).T</code></pre>.......<p>...
92c80 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 2d 43 6f 65 72 ....Performs.<a.href="#Type-Coer
92ca0 63 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3c 2f 61 3e 2e 20 54 68 69 73 20 63 61 cion">Type.Coercion</a>..This.ca
92cc0 73 74 20 69 73 20 61 6c 6c 6f 77 65 64 20 77 68 65 6e 20 74 68 65 20 63 6f 6e 76 65 72 73 69 6f st.is.allowed.when.the.conversio
92ce0 6e 20 69 73 20 75 6e 61 6d 62 69 67 75 6f 75 73 20 61 6e 64 20 73 61 66 65 2c 0a 20 20 20 20 20 n.is.unambiguous.and.safe,......
92d00 20 61 6e 64 20 69 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 77 61 79 20 74 6f 20 63 6f 6e .and.is.the.preferred.way.to.con
92d20 76 65 72 74 20 62 65 74 77 65 65 6e 20 74 79 70 65 73 2c 20 77 68 65 6e 65 76 65 72 20 70 6f 73 vert.between.types,.whenever.pos
92d40 73 69 62 6c 65 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 sible........</p>...............
92d60 3c 68 33 20 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 6e 61 76 <h3.id="atomicLoad"><a.href="nav
92d80 2e 78 68 74 6d 6c 23 74 6f 63 2d 61 74 6f 6d 69 63 4c 6f 61 64 22 3e 40 61 74 6f 6d 69 63 4c 6f .xhtml#toc-atomicLoad">@atomicLo
92da0 61 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 61 74 6f ad</a>.<a.class="hdr".href="#ato
92dc0 6d 69 63 4c 6f 61 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 micLoad">..</a></h3>........<pre
92de0 3e 3c 63 6f 64 65 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 ><code><span.class="tok-builtin"
92e00 3e 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 >@atomicLoad</span>(<span.class=
92e20 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
92e40 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>,.
92e60 70 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 ptr:.*<span.class="tok-kw">const
92e80 3c 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 </span>.T,.<span.class="tok-kw">
92ea0 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 41 74 6f 6d 69 63 comptime</span>.ordering:.Atomic
92ec0 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 20 20 20 3c 70 3e 0a Order).T</code></pre>.......<p>.
92ee0 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 6f 6e 20 61 74 6f 6d ......This.builtin.function.atom
92f00 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 6e 74 65 72 20 74 6f ically.dereferences.a.pointer.to
92f20 20 61 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 .a.<code>T</code>.and.returns.th
92f40 65 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 20 e.value........</p>.......<p>...
92f60 20 20 20 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 70 6f 69 ....<code>T</code>.must.be.a.poi
92f80 6e 74 65 72 2c 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 nter,.a.<code><span.class="tok-t
92fa0 79 70 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 20 66 6c 6f 61 74 ype">bool</span></code>,.a.float
92fc0 2c 0a 20 20 20 20 20 20 61 6e 20 69 6e 74 65 67 65 72 20 6f 72 20 61 6e 20 65 6e 75 6d 2e 0a 20 ,.......an.integer.or.an.enum...
92fe0 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 41 74 6f 6d 69 63 4f .....</p>.......<p><code>AtomicO
93000 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 69 74 68 20 3c 63 rder</code>.can.be.found.with.<c
93020 6f 64 65 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 ode><span.class="tok-builtin">@i
93040 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
93060 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 62 75 69 6c 74 r">&quot;std&quot;</span>).built
93080 69 6e 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 in.AtomicOrder</code>.</p>......
930a0 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
930c0 66 3d 22 23 61 74 6f 6d 69 63 53 74 6f 72 65 22 3e 40 61 74 6f 6d 69 63 53 74 6f 72 65 3c 2f 61 f="#atomicStore">@atomicStore</a
930e0 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 52 6d 77 22 3e ></li>.<li><a.href="#atomicRmw">
93100 40 61 74 6f 6d 69 63 52 6d 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d @atomicRmw</a></li>.<li><a.href=
93120 22 23 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 "#fence">@fence</a></li>.<li><a.
93140 68 72 65 66 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 href="#cmpxchgWeak">@cmpxchgWeak
93160 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 53 </a></li>.<li><a.href="#cmpxchgS
93180 74 72 6f 6e 67 22 3e 40 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c trong">@cmpxchgStrong</a></li>.<
931a0 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 61 74 6f 6d /ul>................<h3.id="atom
931c0 69 63 52 6d 77 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 61 74 icRmw"><a.href="nav.xhtml#toc-at
931e0 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 61 73 73 omicRmw">@atomicRmw</a>.<a.class
93200 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 61 3e 3c ="hdr".href="#atomicRmw">..</a><
93220 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /h3>........<pre><code><span.cla
93240 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 74 6f 6d 69 63 52 6d 77 3c 2f 73 70 61 ss="tok-builtin">@atomicRmw</spa
93260 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
93280 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
932a0 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 70 74 72 3a 20 2a 54 2c 20 3c 73 70 61 6e 20 63 6c ">type</span>,.ptr:.*T,.<span.cl
932c0 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 6f 70 3a ass="tok-kw">comptime</span>.op:
932e0 20 41 74 6f 6d 69 63 52 6d 77 4f 70 2c 20 6f 70 65 72 61 6e 64 3a 20 54 2c 20 3c 73 70 61 6e 20 .AtomicRmwOp,.operand:.T,.<span.
93300 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 6f class="tok-kw">comptime</span>.o
93320 72 64 65 72 69 6e 67 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f rdering:.AtomicOrder).T</code></
93340 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 74 69 pre>.......<p>.......This.builti
93360 6e 20 66 75 6e 63 74 69 6f 6e 20 64 65 72 65 66 65 72 65 6e 63 65 73 20 61 20 70 6f 69 6e 74 65 n.function.dereferences.a.pointe
93380 72 20 74 6f 20 61 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 74 6f 6d 69 63 r.to.a.<code>T</code>.and.atomic
933a0 61 6c 6c 79 0a 20 20 20 20 20 20 6d 6f 64 69 66 69 65 73 20 74 68 65 20 76 61 6c 75 65 20 61 6e ally.......modifies.the.value.an
933c0 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 76 61 6c 75 65 2e 0a 20 20 d.returns.the.previous.value....
933e0 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 6f 64 65 3e 54 ....</p>.......<p>.......<code>T
93400 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 70 6f 69 6e 74 65 72 2c 20 61 20 3c 63 6f </code>.must.be.a.pointer,.a.<co
93420 64 65 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 de><span.class="tok-type">bool</
93440 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 20 66 6c 6f 61 74 2c 0a 20 20 20 20 20 20 61 6e 20 span></code>,.a.float,.......an.
93460 69 6e 74 65 67 65 72 20 6f 72 20 61 6e 20 65 6e 75 6d 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 integer.or.an.enum........</p>..
93480 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e .....<p><code>AtomicOrder</code>
934a0 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 .can.be.found.with.<code><span.c
934c0 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
934e0 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
93500 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 4f 72 d&quot;</span>).builtin.AtomicOr
93520 64 65 72 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 41 der</code>.</p>.......<p><code>A
93540 74 6f 6d 69 63 52 6d 77 4f 70 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 tomicRmwOp</code>.can.be.found.w
93560 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 ith.<code><span.class="tok-built
93580 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="
935a0 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>)
935c0 2e 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 52 6d 77 4f 70 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e .builtin.AtomicRmwOp</code>.</p>
935e0 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 3e .......<p>See.also:</p><ul>.<li>
93600 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 53 74 6f 72 65 22 3e 40 61 74 6f 6d 69 63 53 74 <a.href="#atomicStore">@atomicSt
93620 6f 72 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 61 74 6f 6d 69 ore</a></li>.<li><a.href="#atomi
93640 63 4c 6f 61 64 22 3e 40 61 74 6f 6d 69 63 4c 6f 61 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e cLoad">@atomicLoad</a></li>.<li>
93660 3c 61 20 68 72 65 66 3d 22 23 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e <a.href="#fence">@fence</a></li>
93680 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6d 70 78 63 68 67 57 65 61 6b 22 3e 40 63 6d 70 .<li><a.href="#cmpxchgWeak">@cmp
936a0 78 63 68 67 57 65 61 6b 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 xchgWeak</a></li>.<li><a.href="#
936c0 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 67 3c 2f 61 cmpxchgStrong">@cmpxchgStrong</a
936e0 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 33 20 ></li>.</ul>................<h3.
93700 69 64 3d 22 61 74 6f 6d 69 63 53 74 6f 72 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 id="atomicStore"><a.href="nav.xh
93720 74 6d 6c 23 74 6f 63 2d 61 74 6f 6d 69 63 53 74 6f 72 65 22 3e 40 61 74 6f 6d 69 63 53 74 6f 72 tml#toc-atomicStore">@atomicStor
93740 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 61 74 6f 6d e</a>.<a.class="hdr".href="#atom
93760 69 63 53 74 6f 72 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 icStore">..</a></h3>........<pre
93780 3e 3c 63 6f 64 65 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 ><code><span.class="tok-builtin"
937a0 3e 40 61 74 6f 6d 69 63 53 74 6f 72 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 >@atomicStore</span>(<span.class
937c0 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 70 ="tok-kw">comptime</span>.T:.<sp
937e0 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 2c an.class="tok-type">type</span>,
93800 20 70 74 72 3a 20 2a 54 2c 20 76 61 6c 75 65 3a 20 54 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d .ptr:.*T,.value:.T,.<span.class=
93820 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 6f 72 64 65 72 69 6e "tok-kw">comptime</span>.orderin
93840 67 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b g:.AtomicOrder).<span.class="tok
93860 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 65 3e 0a -type">void</span></code></pre>.
93880 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 20 66 75 6e ......<p>.......This.builtin.fun
938a0 63 74 69 6f 6e 20 64 65 72 65 66 65 72 65 6e 63 65 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 ction.dereferences.a.pointer.to.
938c0 61 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 74 6f 6d 69 63 61 6c 6c 79 20 a.<code>T</code>.and.atomically.
938e0 73 74 6f 72 65 73 20 74 68 65 20 67 69 76 65 6e 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f stores.the.given.value........</
93900 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 p>.......<p>.......<code>T</code
93920 3e 20 6d 75 73 74 20 62 65 20 61 20 70 6f 69 6e 74 65 72 2c 20 61 20 3c 63 6f 64 65 3e 3c 73 70 >.must.be.a.pointer,.a.<code><sp
93940 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><
93960 2f 63 6f 64 65 3e 2c 20 61 20 66 6c 6f 61 74 2c 0a 20 20 20 20 20 20 61 6e 20 69 6e 74 65 67 65 /code>,.a.float,.......an.intege
93980 72 20 6f 72 20 61 6e 20 65 6e 75 6d 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c r.or.an.enum........</p>.......<
939a0 70 3e 3c 63 6f 64 65 3e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 p><code>AtomicOrder</code>.can.b
939c0 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 e.found.with.<code><span.class="
939e0 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
93a00 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
93a20 3b 3c 2f 73 70 61 6e 3e 29 2e 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 ;</span>).builtin.AtomicOrder</c
93a40 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 6f 3a 3c 2f 70 3e ode>.</p>.......<p>See.also:</p>
93a60 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 4c 6f 61 64 22 3e 40 <ul>.<li><a.href="#atomicLoad">@
93a80 61 74 6f 6d 69 63 4c 6f 61 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d atomicLoad</a></li>.<li><a.href=
93aa0 22 23 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 3c 2f 6c 69 3e "#atomicRmw">@atomicRmw</a></li>
93ac0 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f 61 3e .<li><a.href="#fence">@fence</a>
93ae0 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 65 61 6b 22 </li>.<li><a.href="#cmpxchgWeak"
93b00 3e 40 63 6d 70 78 63 68 67 57 65 61 6b 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 >@cmpxchgWeak</a></li>.<li><a.hr
93b20 65 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 ef="#cmpxchgStrong">@cmpxchgStro
93b40 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 0a 0a 20 20 20 20 20 ng</a></li>.</ul>...............
93b60 20 3c 68 33 20 69 64 3d 22 62 69 74 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 .<h3.id="bitCast"><a.href="nav.x
93b80 68 74 6d 6c 23 74 6f 63 2d 62 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c 2f 61 3e 20 3c html#toc-bitCast">@bitCast</a>.<
93ba0 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 62 69 74 43 61 73 74 22 3e c2 a7 a.class="hdr".href="#bitCast">..
93bc0 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 </a></h3>........<pre><code><spa
93be0 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 43 61 73 74 3c 2f n.class="tok-builtin">@bitCast</
93c00 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 6b 77 span>(value:.<span.class="tok-kw
93c20 22 3e 61 6e 79 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 ">anytype</span>).<span.class="t
93c40 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ok-kw">anytype</span></code></pr
93c60 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 76 61 e>.......<p>.......Converts.a.va
93c80 6c 75 65 20 6f 66 20 6f 6e 65 20 74 79 70 65 20 74 6f 20 61 6e 6f 74 68 65 72 20 74 79 70 65 2e lue.of.one.type.to.another.type.
93ca0 20 54 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 74 68 65 0a 09 09 09 69 6e 66 65 72 .The.return.type.is.the....infer
93cc0 72 65 64 20 72 65 73 75 6c 74 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 red.result.type........</p>.....
93ce0 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 65 3e 3c ..<p>.......Asserts.that.<code><
93d00 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
93d20 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 6e </span>(<span.class="tok-builtin
93d40 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 29 20 3d 3d 20 3c 73 70 61 ">@TypeOf</span>(value)).==.<spa
93d60 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
93d80 70 61 6e 3e 28 44 65 73 74 54 79 70 65 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 pan>(DestType)</code>........</p
93da0 3e 0a 20 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 >.......<p>.......Asserts.that.<
93dc0 63 6f 64 65 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 code><span.class="tok-builtin">@
93de0 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 44 65 73 74 54 79 70 65 29 20 21 3d 20 2e 50 6f typeInfo</span>(DestType).!=..Po
93e00 69 6e 74 65 72 3c 2f 63 6f 64 65 3e 2e 20 55 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c inter</code>..Use.<code><span.cl
93e20 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 61 6e ass="tok-builtin">@ptrCast</span
93e40 3e 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ></code>.or.<code><span.class="t
93e60 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 3c 2f ok-builtin">@ptrFromInt</span></
93e80 63 6f 64 65 3e 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 68 69 73 2e 0a 20 20 20 20 20 20 3c 2f code>.if.you.need.this........</
93ea0 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 61 6e 20 62 65 20 75 73 65 64 20 66 p>.......<p>.......Can.be.used.f
93ec0 6f 72 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 66 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 or.these.things.for.example:....
93ee0 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
93f00 3e 43 6f 6e 76 65 72 74 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >Convert.<code><span.class="tok-
93f20 74 79 70 65 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 type">f32</span></code>.to.<code
93f40 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 61 ><span.class="tok-type">u32</spa
93f60 6e 3e 3c 2f 63 6f 64 65 3e 20 62 69 74 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c n></code>.bits</li>...........<l
93f80 69 3e 43 6f 6e 76 65 72 74 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b i>Convert.<code><span.class="tok
93fa0 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 74 6f 20 3c 63 6f 64 -type">i32</span></code>.to.<cod
93fc0 65 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 e><span.class="tok-type">u32</sp
93fe0 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
94000 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>
94020 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.
94040 3c 63 6f 64 65 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 <code>value</code>.is.known.at.c
94060 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 20 49 74 27 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f ompile.time..It's.a.compile.erro
94080 72 20 74 6f 20 62 69 74 63 61 73 74 20 61 20 76 61 6c 75 65 20 6f 66 20 75 6e 64 65 66 69 6e 65 r.to.bitcast.a.value.of.undefine
940a0 64 20 6c 61 79 6f 75 74 3b 20 74 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 2c 20 62 65 73 69 64 d.layout;.this.means.that,.besid
940c0 65 73 20 74 68 65 20 72 65 73 74 72 69 63 74 69 6f 6e 20 66 72 6f 6d 20 74 79 70 65 73 20 77 68 es.the.restriction.from.types.wh
940e0 69 63 68 20 70 6f 73 73 65 73 73 20 64 65 64 69 63 61 74 65 64 20 63 61 73 74 69 6e 67 20 62 75 ich.possess.dedicated.casting.bu
94100 69 6c 74 69 6e 73 20 28 65 6e 75 6d 73 2c 20 70 6f 69 6e 74 65 72 73 2c 20 65 72 72 6f 72 20 73 iltins.(enums,.pointers,.error.s
94120 65 74 73 29 2c 20 62 61 72 65 20 73 74 72 75 63 74 73 2c 20 65 72 72 6f 72 20 75 6e 69 6f 6e 73 ets),.bare.structs,.error.unions
94140 2c 20 73 6c 69 63 65 73 2c 20 6f 70 74 69 6f 6e 61 6c 73 2c 20 61 6e 64 20 61 6e 79 20 6f 74 68 ,.slices,.optionals,.and.any.oth
94160 65 72 20 74 79 70 65 20 77 69 74 68 6f 75 74 20 61 20 77 65 6c 6c 2d 64 65 66 69 6e 65 64 20 6d er.type.without.a.well-defined.m
94180 65 6d 6f 72 79 20 6c 61 79 6f 75 74 2c 20 61 6c 73 6f 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 emory.layout,.also.cannot.be.use
941a0 64 20 69 6e 20 74 68 69 73 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a d.in.this.operation........</p>.
941c0 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 69 74 4f 66 66 73 65 74 4f ..............<h3.id="bitOffsetO
941e0 66 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 62 69 74 4f 66 66 f"><a.href="nav.xhtml#toc-bitOff
94200 73 65 74 4f 66 22 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 setOf">@bitOffsetOf</a>.<a.class
94220 3d 22 68 64 72 22 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 ="hdr".href="#bitOffsetOf">..</a
94240 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></h3>........<pre><code><span.c
94260 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 74 4f 66 3c lass="tok-builtin">@bitOffsetOf<
94280 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
942a0 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-
942c0 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 73 73 3d 22 type">type</span>,.<span.class="
942e0 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 65 6c 64 5f 6e 61 tok-kw">comptime</span>.field_na
94300 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
94320 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
94340 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 79 70 65 22 8</span>).<span.class="tok-type"
94360 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
94380 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 62 69 >.......<p>.......Returns.the.bi
943a0 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 76 65 20 74 6f 20 t.offset.of.a.field.relative.to.
943c0 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 20 20 20 3c 2f 70 its.containing.struct........</p
943e0 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 3c 61 20 68 72 65 >.......<p>.......For.non.<a.hre
94400 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 75 63 74 f="#packed-struct">packed.struct
94420 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 20 64 69 76 69 73 s</a>,.this.will.always.be.divis
94440 69 62 6c 65 20 62 79 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ible.by.<code><span.class="tok-n
94460 75 6d 62 65 72 22 3e 38 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 46 6f umber">8</span></code>........Fo
94480 72 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 73 2c 20 6e 6f 6e 2d 62 79 74 65 2d 61 6c 69 67 6e r.packed.structs,.non-byte-align
944a0 65 64 20 66 69 65 6c 64 73 20 77 69 6c 6c 20 73 68 61 72 65 20 61 20 62 79 74 65 20 6f 66 66 73 ed.fields.will.share.a.byte.offs
944c0 65 74 2c 20 62 75 74 20 74 68 65 79 20 77 69 6c 6c 20 68 61 76 65 20 64 69 66 66 65 72 65 6e 74 et,.but.they.will.have.different
944e0 0a 20 20 20 20 20 20 62 69 74 20 6f 66 66 73 65 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 .......bit.offsets........</p>..
94500 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
94520 20 68 72 65 66 3d 22 23 6f 66 66 73 65 74 4f 66 22 3e 40 6f 66 66 73 65 74 4f 66 3c 2f 61 3e 3c .href="#offsetOf">@offsetOf</a><
94540 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 33 20 69 64 /li>.</ul>................<h3.id
94560 3d 22 62 69 74 53 69 7a 65 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 ="bitSizeOf"><a.href="nav.xhtml#
94580 74 6f 63 2d 62 69 74 53 69 7a 65 4f 66 22 3e 40 62 69 74 53 69 7a 65 4f 66 3c 2f 61 3e 20 3c 61 toc-bitSizeOf">@bitSizeOf</a>.<a
945a0 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 62 69 74 53 69 7a 65 4f 66 22 3e c2 .class="hdr".href="#bitSizeOf">.
945c0 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 .</a></h3>........<pre><code><sp
945e0 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 53 69 7a 65 4f an.class="tok-builtin">@bitSizeO
94600 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 63 6f f</span>(<span.class="tok-kw">co
94620 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
94640 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 20 63 6c 61 73 73 k-type">type</span>).<span.class
94660 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><
94680 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
946a0 73 20 66 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 s.function.returns.the.number.of
946c0 20 62 69 74 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 3e 54 3c .bits.it.takes.to.store.<code>T<
946e0 2f 63 6f 64 65 3e 20 69 6e 20 6d 65 6d 6f 72 79 20 69 66 20 74 68 65 20 74 79 70 65 0a 20 20 20 /code>.in.memory.if.the.type....
94700 20 20 20 77 65 72 65 20 61 20 66 69 65 6c 64 20 69 6e 20 61 20 70 61 63 6b 65 64 20 73 74 72 75 ...were.a.field.in.a.packed.stru
94720 63 74 2f 75 6e 69 6f 6e 2e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 ct/union........The.result.is.a.
94740 74 61 72 67 65 74 2d 73 70 65 63 69 66 69 63 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e target-specific.compile.time.con
94760 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 20 20 20 stant........</p>.......<p>.....
94780 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 65 20 73 69 7a ..This.function.measures.the.siz
947a0 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 74 20 61 72 65 e.at.runtime..For.types.that.are
947c0 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 68 20 61 73 0a .disallowed.at.runtime,.such.as.
947e0 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 ......<code><span.class="tok-typ
94800 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 20 61 6e e">comptime_int</span></code>.an
94820 64 20 3c 63 6f 64 65 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 d.<code><span.class="tok-type">t
94840 79 70 65 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 ype</span></code>,.the.result.is
94860 20 3c 63 6f 64 65 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 .<code><span.class="tok-number">
94880 30 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 0</span></code>........</p>.....
948a0 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
948c0 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 3e 0a 3c 6c ef="#sizeOf">@sizeOf</a></li>.<l
948e0 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 6f 3c i><a.href="#typeInfo">@typeInfo<
94900 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 68 /a></li>.</ul>................<h
94920 33 20 69 64 3d 22 62 72 65 61 6b 70 6f 69 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 3.id="breakpoint"><a.href="nav.x
94940 68 74 6d 6c 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 69 6e 74 html#toc-breakpoint">@breakpoint
94960 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 65 61 6b </a>.<a.class="hdr".href="#break
94980 70 6f 69 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c point">..</a></h3>........<pre><
949a0 63 6f 64 65 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 code><span.class="tok-builtin">@
949c0 62 72 65 61 6b 70 6f 69 6e 74 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d breakpoint</span>().<span.class=
949e0 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 3c 2f 70 "tok-type">void</span></code></p
94a00 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
94a20 6e 20 69 6e 73 65 72 74 73 20 61 20 70 6c 61 74 66 6f 72 6d 2d 73 70 65 63 69 66 69 63 20 64 65 n.inserts.a.platform-specific.de
94a40 62 75 67 20 74 72 61 70 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 77 68 69 63 68 20 63 61 75 73 65 bug.trap.instruction.which.cause
94a60 73 0a 20 20 20 20 20 20 64 65 62 75 67 67 65 72 73 20 74 6f 20 62 72 65 61 6b 20 74 68 65 72 65 s.......debuggers.to.break.there
94a80 2e 0a 20 20 20 20 20 20 55 6e 6c 69 6b 65 20 66 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ........Unlike.for.<code><span.c
94aa0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 72 61 70 3c 2f 73 70 61 6e 3e 28 lass="tok-builtin">@trap</span>(
94ac0 29 3c 2f 63 6f 64 65 3e 2c 20 65 78 65 63 75 74 69 6f 6e 20 6d 61 79 20 63 6f 6e 74 69 6e 75 65 )</code>,.execution.may.continue
94ae0 20 61 66 74 65 72 20 74 68 69 73 20 70 6f 69 6e 74 20 69 66 20 74 68 65 20 70 72 6f 67 72 61 6d .after.this.point.if.the.program
94b00 20 69 73 20 72 65 73 75 6d 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 .is.resumed........</p>.......<p
94b20 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 61 >.......This.function.is.only.va
94b40 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 20 lid.within.function.scope.......
94b60 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 6c 3e .</p>.......<p>See.also:</p><ul>
94b80 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 72 61 70 22 3e 40 74 72 61 70 3c 2f 61 3e 3c 2f .<li><a.href="#trap">@trap</a></
94ba0 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 33 20 69 64 3d li>.</ul>................<h3.id=
94bc0 22 6d 75 6c 41 64 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d "mulAdd"><a.href="nav.xhtml#toc-
94be0 6d 75 6c 41 64 64 22 3e 40 6d 75 6c 41 64 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 mulAdd">@mulAdd</a>.<a.class="hd
94c00 72 22 20 68 72 65 66 3d 22 23 6d 75 6c 41 64 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 r".href="#mulAdd">..</a></h3>...
94c20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
94c40 2d 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 -builtin">@mulAdd</span>(<span.c
94c60 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:
94c80 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
94ca0 61 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 an>,.a:.T,.b:.T,.c:.T).T</code><
94cc0 2f 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 /pre>.......<p>.......Fused.mult
94ce0 69 70 6c 79 2d 61 64 64 2c 20 73 69 6d 69 6c 61 72 20 74 6f 20 3c 63 6f 64 65 3e 28 61 20 2a 20 iply-add,.similar.to.<code>(a.*.
94d00 62 29 20 2b 20 63 3c 2f 63 6f 64 65 3e 2c 20 65 78 63 65 70 74 0a 20 20 20 20 20 20 6f 6e 6c 79 b).+.c</code>,.except.......only
94d20 20 72 6f 75 6e 64 73 20 6f 6e 63 65 2c 20 61 6e 64 20 69 73 20 74 68 75 73 20 6d 6f 72 65 20 61 .rounds.once,.and.is.thus.more.a
94d40 63 63 75 72 61 74 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 ccurate........</p>.......<p>...
94d60 20 20 20 20 53 75 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 ....Supports.<a.href="#Floats">F
94d80 6c 6f 61 74 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 73 22 loats</a>.and.<a.href="#Vectors"
94da0 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e 0a 20 20 20 20 20 20 3c 2f >Vectors</a>.of.floats........</
94dc0 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 62 79 74 65 53 77 61 p>...............<h3.id="byteSwa
94de0 70 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 62 79 74 65 53 77 p"><a.href="nav.xhtml#toc-byteSw
94e00 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"
94e20 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 33 3e 0a 0a 20 .href="#byteSwap">..</a></h3>...
94e40 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
94e60 2d 62 75 69 6c 74 69 6e 22 3e 40 62 79 74 65 53 77 61 70 3c 2f 73 70 61 6e 3e 28 6f 70 65 72 61 -builtin">@byteSwap</span>(opera
94e80 6e 64 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 74 79 70 65 nd:.<span.class="tok-kw">anytype
94ea0 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 20 3c 70 </span>).T</code></pre>.......<p
94ec0 3e 3c 63 6f 64 65 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 ><code><span.class="tok-builtin"
94ee0 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6f 70 65 72 61 6e 64 29 3c 2f 63 6f 64 65 3e 20 >@TypeOf</span>(operand)</code>.
94f00 6d 75 73 74 20 62 65 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 6f 72 20 61 6e 20 69 6e must.be.an.integer.type.or.an.in
94f20 74 65 67 65 72 20 76 65 63 74 6f 72 20 74 79 70 65 20 77 69 74 68 20 62 69 74 20 63 6f 75 6e 74 teger.vector.type.with.bit.count
94f40 20 65 76 65 6e 6c 79 20 64 69 76 69 73 69 62 6c 65 20 62 79 20 38 2e 3c 2f 70 3e 0a 20 20 20 20 .evenly.divisible.by.8.</p>.....
94f60 20 20 3c 70 3e 3c 63 6f 64 65 3e 6f 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e 20 6d 61 79 20 62 65 ..<p><code>operand</code>.may.be
94f80 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 67 65 72 3c .an.<a.href="#Integers">integer<
94fa0 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 63 74 6f 72 /a>.or.<a.href="#Vectors">vector
94fc0 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 61 70 73 20 </a>.</p>.......<p>.......Swaps.
94fe0 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 72 2e 20 54 the.byte.order.of.the.integer..T
95000 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 74 65 67 65 his.converts.a.big.endian.intege
95020 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 2c 0a 20 20 r.to.a.little.endian.integer,...
95040 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 64 69 61 6e ....and.converts.a.little.endian
95060 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 65 67 65 72 .integer.to.a.big.endian.integer
95080 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 4e 6f 74 ........</p>.......<p>.......Not
950a0 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 65 6d 6f 72 e.that.for.the.purposes.of.memor
950c0 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 69 61 6e 6e y.layout.with.respect.to.endiann
950e0 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 20 62 65 0a ess,.the.integer.type.should.be.
95100 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 6f 66 20 62 ......related.to.the.number.of.b
95120 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 69 7a 65 4f ytes.reported.by.<a.href="#sizeO
95140 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 73 20 64 65 f">@sizeOf</a>.bytes..This.is.de
95160 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 3e 3c 73 70 61 monstrated.with.......<code><spa
95180 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 3e 3c 2f 63 n.class="tok-type">u24</span></c
951a0 6f 64 65 3e 2e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 ode>..<code><span.class="tok-bui
951c0 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 73 73 ltin">@sizeOf</span>(<span.class
951e0 3d 22 74 6f 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 ="tok-type">u24</span>).==.<span
95200 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 3c 2f 63 6f .class="tok-number">4</span></co
95220 64 65 3e 2c 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 de>,.which.means.that.a.......<c
95240 6f 64 65 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 32 34 3c 2f ode><span.class="tok-type">u24</
95260 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 73 74 6f 72 65 64 20 69 6e 20 6d 65 6d 6f 72 79 20 74 61 span></code>.stored.in.memory.ta
95280 6b 65 73 20 34 20 62 79 74 65 73 2c 20 61 6e 64 20 74 68 6f 73 65 20 34 20 62 79 74 65 73 20 61 kes.4.bytes,.and.those.4.bytes.a
952a0 72 65 20 77 68 61 74 20 61 72 65 20 73 77 61 70 70 65 64 20 6f 6e 0a 20 20 20 20 20 20 61 20 6c re.what.are.swapped.on.......a.l
952c0 69 74 74 6c 65 20 76 73 20 62 69 67 20 65 6e 64 69 61 6e 20 73 79 73 74 65 6d 2e 20 4f 6e 20 74 ittle.vs.big.endian.system..On.t
952e0 68 65 20 6f 74 68 65 72 20 68 61 6e 64 2c 20 69 66 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e he.other.hand,.if.<code>T</code>
95300 20 69 73 20 73 70 65 63 69 66 69 65 64 20 74 6f 0a 20 20 20 20 20 20 62 65 20 3c 63 6f 64 65 3e .is.specified.to.......be.<code>
95320 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
95340 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.
95360 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>............
95380 20 20 20 3c 68 33 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 ...<h3.id="bitReverse"><a.href="
953a0 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 62 69 74 52 65 76 65 72 73 65 22 3e 40 62 69 74 52 65 nav.xhtml#toc-bitReverse">@bitRe
953c0 76 65 72 73 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 verse</a>.<a.class="hdr".href="#
953e0 62 69 74 52 65 76 65 72 73 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c bitReverse">..</a></h3>........<
95400 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 pre><code><span.class="tok-built
95420 69 6e 22 3e 40 62 69 74 52 65 76 65 72 73 65 3c 2f 73 70 61 6e 3e 28 69 6e 74 65 67 65 72 3a 20 in">@bitReverse</span>(integer:.
95440 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 <span.class="tok-kw">anytype</sp
95460 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 20 3c 70 3e 3c 63 6f an>).T</code></pre>.......<p><co
95480 64 65 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 de><span.class="tok-builtin">@Ty
954a0 70 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 6b 77 22 peOf</span>(<span.class="tok-kw"
954c0 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 20 61 63 63 65 70 74 73 20 >anytype</span>)</code>.accepts.
954e0 61 6e 79 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 6f 72 20 69 6e 74 65 67 65 72 20 76 65 63 74 any.integer.type.or.integer.vect
95500 6f 72 20 74 79 70 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 76 or.type.</p>.......<p>.......Rev
95520 65 72 73 65 73 20 74 68 65 20 62 69 74 70 61 74 74 65 72 6e 20 6f 66 20 61 6e 20 69 6e 74 65 67 erses.the.bitpattern.of.an.integ
95540 65 72 20 76 61 6c 75 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 73 69 67 6e 20 62 69 74 er.value,.including.the.sign.bit
95560 20 69 66 20 61 70 70 6c 69 63 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 .if.applicable........</p>......
95580 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 20 30 62 31 30 31 31 30 31 31 .<p>.......For.example.0b1011011
955a0 30 20 28 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 0.(<code><span.class="tok-type">
955c0 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 6d u8</span>.=.<span.class="tok-num
955e0 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 3e 3c 73 ber">182</span></code>,.<code><s
95600 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 20 3d pan.class="tok-type">i8</span>.=
95620 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 37 34 3c 2f 73 .-<span.class="tok-number">74</s
95640 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 0a 20 20 20 20 20 20 62 65 63 6f 6d 65 73 20 30 62 30 31 31 pan></code>).......becomes.0b011
95660 30 31 31 30 31 20 28 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 01101.(<code><span.class="tok-ty
95680 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 6b pe">u8</span>.=.<span.class="tok
956a0 2d 6e 75 6d 62 65 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 -number">109</span></code>,.<cod
956c0 65 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 38 3c 2f 73 70 61 e><span.class="tok-type">i8</spa
956e0 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 30 n>.=.<span.class="tok-number">10
95700 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 70 3e 0a 20 20 20 9</span></code>)........</p>....
95720 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6f 66 66 73 65 74 4f 66 22 3e 3c 61 20 ...........<h3.id="offsetOf"><a.
95740 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6f 66 66 73 65 74 4f 66 22 3e 40 6f href="nav.xhtml#toc-offsetOf">@o
95760 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 20 68 72 65 66 3d ffsetOf</a>.<a.class="hdr".href=
95780 22 23 6f 66 66 73 65 74 4f 66 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c "#offsetOf">..</a></h3>........<
957a0 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 pre><code><span.class="tok-built
957c0 69 6e 22 3e 40 6f 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 in">@offsetOf</span>(<span.class
957e0 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 70 ="tok-kw">comptime</span>.T:.<sp
95800 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 2c an.class="tok-type">type</span>,
95820 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</
95840 73 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 span>.field_name:.[]<span.class=
95860 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
95880 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
958a0 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
958c0 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 20 20 n></code></pre>.......<p>.......
958e0 52 65 74 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 Returns.the.byte.offset.of.a.fie
95900 6c 64 20 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 ld.relative.to.its.containing.st
95920 72 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 53 65 65 20 61 6c ruct........</p>.......<p>See.al
95940 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 69 74 4f 66 66 so:</p><ul>.<li><a.href="#bitOff
95960 73 65 74 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 setOf">@bitOffsetOf</a></li>.</u
95980 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 61 6c 6c 22 3e l>................<h3.id="call">
959a0 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 61 6c 6c 22 3e 40 63 61 <a.href="nav.xhtml#toc-call">@ca
959c0 6c 6c 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 63 61 6c ll</a>.<a.class="hdr".href="#cal
959e0 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 l">..</a></h3>........<pre><code
95a00 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 61 6c 6c ><span.class="tok-builtin">@call
95a20 3c 2f 73 70 61 6e 3e 28 6d 6f 64 69 66 69 65 72 3a 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 43 61 </span>(modifier:.std.builtin.Ca
95a40 6c 6c 4d 6f 64 69 66 69 65 72 2c 20 66 75 6e 63 74 69 6f 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 llModifier,.function:.<span.clas
95a60 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 61 72 67 73 3a s="tok-kw">anytype</span>,.args:
95a80 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 74 79 70 65 3c 2f 73 .<span.class="tok-kw">anytype</s
95aa0 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 61 6e 79 74 79 pan>).<span.class="tok-kw">anyty
95ac0 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 3e pe</span></code></pre>.......<p>
95ae0 0a 20 20 20 20 20 20 43 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 .......Calls.a.function,.in.the.
95b00 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 69 6e 76 6f 6b 69 6e 67 20 61 6e 20 65 78 70 72 65 73 same.way.that.invoking.an.expres
95b20 73 69 6f 6e 20 77 69 74 68 20 70 61 72 65 6e 74 68 65 73 65 73 20 64 6f 65 73 3a 0a 20 20 20 20 sion.with.parentheses.does:.....
95b40 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
95b60 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
95b80 6c 65 22 3e 74 65 73 74 5f 63 61 6c 6c 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e le">test_call_builtin.zig</cite>
95ba0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
95bc0 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 70 65 63 74 ass="tok-kw">const</span>.expect
95be0 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
95c00 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
95c20 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 74 65 73 74 69 6e ">&quot;std&quot;</span>).testin
95c40 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">
95c60 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
95c80 22 3e 26 71 75 6f 74 3b 6e 6f 69 6e 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 26 71 ">&quot;noinline.function.call&q
95ca0 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
95cc0 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 ok-kw">try</span>.expect(<span.c
95ce0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 61 6c 6c 3c 2f 73 70 61 6e 3e 28 lass="tok-builtin">@call</span>(
95d00 2e 61 75 74 6f 2c 20 61 64 64 2c 20 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e .auto,.add,..{<span.class="tok-n
95d20 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
95d40 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 7d 29 20 3d 3d 20 3c 73 70 61 6e 20 63 6c k-number">9</span>}).==.<span.cl
95d60 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 7d 0a 0a ass="tok-number">12</span>);.}..
95d80 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>.<
95da0 73 70 61 6e 20 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 span.class="tok-fn">add</span>(a
95dc0 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
95de0 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 70 65 22 3e 69 an>,.b:.<span.class="tok-type">i
95e00 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
95e20 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="
95e40 74 6f 6b 2d 6b 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 tok-kw">return</span>.a.+.b;.}</
95e60 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
95e80 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
95ea0 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
95ec0 67 20 74 65 73 74 20 74 65 73 74 5f 63 61 6c 6c 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 g.test.test_call_builtin.zig</kb
95ee0 64 3e 0a 31 2f 31 20 74 65 73 74 5f 63 61 6c 6c 5f 62 75 69 6c 74 69 6e 2e 74 65 73 74 2e 6e 6f d>.1/1.test_call_builtin.test.no
95f00 69 6e 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 inline.function.call....OK.All.1
95f20 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 .tests.passed..</samp></pre></fi
95f40 67 75 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 3e 3c 73 70 61 gure>.......<p>.......<code><spa
95f60 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 61 6c 6c 3c 2f 73 70 61 n.class="tok-builtin">@call</spa
95f80 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6c 6c 6f 77 73 20 6d 6f 72 65 20 66 6c 65 78 69 62 69 6c 69 74 n></code>.allows.more.flexibilit
95fa0 79 20 74 68 61 6e 20 6e 6f 72 6d 61 6c 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 73 79 6e 74 y.than.normal.function.call.synt
95fc0 61 78 20 64 6f 65 73 2e 20 54 68 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 43 61 6c 6c 4d 6f 64 ax.does..The.......<code>CallMod
95fe0 69 66 69 65 72 3c 2f 63 6f 64 65 3e 20 65 6e 75 6d 20 69 73 20 72 65 70 72 6f 64 75 63 65 64 20 ifier</code>.enum.is.reproduced.
96000 68 65 72 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c here:.......</p>.......<figure><
96020 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
96040 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 62 75 69 6c 74 69 6e 2e 43 61 6c 6c 4d 6f 64 69 66 69 .class="file">builtin.CallModifi
96060 65 72 20 73 74 72 75 63 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e er.struct.zig</cite></figcaption
96080 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
960a0 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"
960c0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 43 61 6c 6c 4d 6f 64 69 66 69 65 72 20 3d 20 3c 73 70 >const</span>.CallModifier.=.<sp
960e0 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>.{.
96100 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">//
96120 2f 20 45 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 73 79 /.Equivalent.to.function.call.sy
96140 6e 74 61 78 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 75 74 6f 2c 0a 0a 20 20 20 20 3c 73 70 61 ntax.</span>.....auto,......<spa
96160 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 45 71 75 69 76 61 n.class="tok-comment">///.Equiva
96180 6c 65 6e 74 20 74 6f 20 61 73 79 6e 63 20 6b 65 79 77 6f 72 64 20 75 73 65 64 20 77 69 74 68 20 lent.to.async.keyword.used.with.
961a0 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 73 79 6e 74 61 78 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 function.call.syntax.</span>....
961c0 20 61 73 79 6e 63 5f 6b 77 2c 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .async_kw,......<span.class="tok
961e0 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 50 72 65 76 65 6e 74 73 20 74 61 69 6c 20 63 61 6c 6c -comment">///.Prevents.tail.call
96200 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e 20 54 68 69 73 20 67 75 61 72 61 6e 74 65 65 73 20 74 .optimization..This.guarantees.t
96220 68 61 74 20 74 68 65 20 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 hat.the.return</span>.....<span.
96240 63 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 61 64 64 72 65 73 73 20 class="tok-comment">///.address.
96260 77 69 6c 6c 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 61 6c 6c 73 69 74 65 2c 20 61 73 20 6f will.point.to.the.callsite,.as.o
96280 70 70 6f 73 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 73 69 74 65 27 73 3c 2f 73 70 61 6e 3e 0a pposed.to.the.callsite's</span>.
962a0 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">//
962c0 2f 20 63 61 6c 6c 73 69 74 65 2e 20 49 66 20 74 68 65 20 63 61 6c 6c 20 69 73 20 6f 74 68 65 72 /.callsite..If.the.call.is.other
962e0 77 69 73 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 62 65 20 74 61 69 6c 2d 63 61 6c 6c 65 64 3c wise.required.to.be.tail-called<
96300 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
96320 65 6e 74 22 3e 2f 2f 2f 20 6f 72 20 69 6e 6c 69 6e 65 64 2c 20 61 20 63 6f 6d 70 69 6c 65 20 65 ent">///.or.inlined,.a.compile.e
96340 72 72 6f 72 20 69 73 20 65 6d 69 74 74 65 64 20 69 6e 73 74 65 61 64 2e 3c 2f 73 70 61 6e 3e 0a rror.is.emitted.instead.</span>.
96360 20 20 20 20 6e 65 76 65 72 5f 74 61 69 6c 2c 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ....never_tail,......<span.class
96380 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 47 75 61 72 61 6e 74 65 65 73 20 74 68 ="tok-comment">///.Guarantees.th
963a0 61 74 20 74 68 65 20 63 61 6c 6c 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 69 6e 6c 69 6e 65 64 2e at.the.call.will.not.be.inlined.
963c0 20 49 66 20 74 68 65 20 63 61 6c 6c 20 69 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e .If.the.call.is</span>.....<span
963e0 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 6f 74 68 65 72 77 69 .class="tok-comment">///.otherwi
96400 73 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 62 65 20 69 6e 6c 69 6e 65 64 2c 20 61 20 63 6f 6d se.required.to.be.inlined,.a.com
96420 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 65 6d 69 74 74 65 64 20 69 6e 73 74 65 61 64 2e 3c 2f pile.error.is.emitted.instead.</
96440 73 70 61 6e 3e 0a 20 20 20 20 6e 65 76 65 72 5f 69 6e 6c 69 6e 65 2c 0a 0a 20 20 20 20 3c 73 70 span>.....never_inline,......<sp
96460 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 20 41 73 73 65 72 an.class="tok-comment">///.Asser
96480 74 73 20 74 68 61 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 77 69 6c 6c 20 6e ts.that.the.function.call.will.n
964a0 6f 74 20 73 75 73 70 65 6e 64 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 61 3c 2f 73 70 61 6e 3e ot.suspend..This.allows.a</span>
964c0 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">/
964e0 2f 2f 20 6e 6f 6e 2d 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 61 6e //.non-async.function.to.call.an
96500 20 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 6e 6f 5f 61 .async.function.</span>.....no_a
96520 73 79 6e 63 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 sync,......<span.class="tok-comm
96540 65 6e 74 22 3e 2f 2f 2f 20 47 75 61 72 61 6e 74 65 65 73 20 74 68 61 74 20 74 68 65 20 63 61 6c ent">///.Guarantees.that.the.cal
96560 6c 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 20 77 69 74 68 20 74 61 69 6c 20 63 61 l.will.be.generated.with.tail.ca
96580 6c 6c 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 ll.optimization.</span>.....<spa
965a0 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 49 66 20 74 68 69 n.class="tok-comment">///.If.thi
965c0 73 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 2c 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 s.is.not.possible,.a.compile.err
965e0 6f 72 20 69 73 20 65 6d 69 74 74 65 64 20 69 6e 73 74 65 61 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 or.is.emitted.instead.</span>...
96600 20 20 61 6c 77 61 79 73 5f 74 61 69 6c 2c 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..always_tail,......<span.class=
96620 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 47 75 61 72 61 6e 74 65 65 73 20 74 68 61 "tok-comment">///.Guarantees.tha
96640 74 20 74 68 65 20 63 61 6c 6c 20 77 69 6c 6c 20 69 6e 6c 69 6e 65 64 20 61 74 20 74 68 65 20 63 t.the.call.will.inlined.at.the.c
96660 61 6c 6c 73 69 74 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 allsite.</span>.....<span.class=
96680 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 49 66 20 74 68 69 73 20 69 73 20 6e 6f 74 "tok-comment">///.If.this.is.not
966a0 20 70 6f 73 73 69 62 6c 65 2c 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 65 6d .possible,.a.compile.error.is.em
966c0 69 74 74 65 64 20 69 6e 73 74 65 61 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 6c 77 61 79 73 itted.instead.</span>.....always
966e0 5f 69 6e 6c 69 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 63 _inline,......<span.class="tok-c
96700 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 45 76 61 6c 75 61 74 65 73 20 74 68 65 20 63 61 6c 6c 20 61 omment">///.Evaluates.the.call.a
96720 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 49 66 20 74 68 65 20 63 61 6c 6c 20 63 61 6e 6e t.compile-time..If.the.call.cann
96740 6f 74 20 62 65 20 63 6f 6d 70 6c 65 74 65 64 20 61 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 ot.be.completed.at</span>.....<s
96760 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 20 63 6f 6d 70 pan.class="tok-comment">///.comp
96780 69 6c 65 2d 74 69 6d 65 2c 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 65 6d 69 ile-time,.a.compile.error.is.emi
967a0 74 74 65 64 20 69 6e 73 74 65 61 64 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6d 70 69 6c 65 tted.instead.</span>.....compile
967c0 5f 74 69 6d 65 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a _time,.};</code></pre></figure>.
967e0 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 44 65 66 69 6e 65 22 3e 3c ..............<h3.id="cDefine"><
96800 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 44 65 66 69 6e 65 22 3e 40 a.href="nav.xhtml#toc-cDefine">@
96820 63 44 65 66 69 6e 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 cDefine</a>.<a.class="hdr".href=
96840 22 23 63 44 65 66 69 6e 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 "#cDefine">..</a></h3>........<p
96860 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 re><code><span.class="tok-builti
96880 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 3d 22 n">@cDefine</span>(<span.class="
968a0 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 5b 5d tok-kw">comptime</span>.name:.[]
968c0 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
968e0 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 70 61 >.<span.class="tok-type">u8</spa
96900 6e 3e 2c 20 76 61 6c 75 65 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 n>,.value).<span.class="tok-type
96920 22 3e 76 6f 69 64 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 ">void</span></code></pre>......
96940 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 61 6e 20 6f 6e 6c .<p>.......This.function.can.onl
96960 79 20 6f 63 63 75 72 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 y.occur.inside.<code><span.class
96980 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 3c 2f ="tok-builtin">@cImport</span></
969a0 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>.....
969c0 20 20 54 68 69 73 20 61 70 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 64 65 66 69 6e 65 20 24 6e 61 ..This.appends.<code>#define.$na
969e0 6d 65 20 24 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 me.$value</code>.to.the.<code><s
96a00 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
96a20 3c 2f 73 70 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 </span></code>.......temporary.b
96a40 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 0a 20 20 20 20 uffer........</p>.......<p>.....
96a60 20 20 54 6f 20 64 65 66 69 6e 65 20 77 69 74 68 6f 75 74 20 61 20 76 61 6c 75 65 2c 20 6c 69 6b ..To.define.without.a.value,.lik
96a80 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 3c 63 e.this:.......</p>.......<pre><c
96aa0 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 23 64 65 66 69 6e 65 20 5f 47 4e 55 5f 53 4f 55 52 43 ode.class="c">#define._GNU_SOURC
96ac0 45 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 55 E</code></pre>.......<p>.......U
96ae0 73 65 20 74 68 65 20 76 6f 69 64 20 76 61 6c 75 65 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 se.the.void.value,.like.this:...
96b00 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 3e 3c 73 70 61 6e 20 ....</p>.......<pre><code><span.
96b20 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 70 class="tok-builtin">@cDefine</sp
96b40 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;
96b60 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 63 _GNU_SOURCE&quot;</span>,.{})</c
96b80 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 70 ode></pre>.......<p>See.also:</p
96ba0 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 2d ><ul>.<li><a.href="#Import-from-
96bc0 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 61 C-Header-File">Import.from.C.Hea
96be0 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 23 der.File</a></li>.<li><a.href="#
96c00 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 69 cInclude">@cInclude</a></li>.<li
96c20 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 3e ><a.href="#cImport">@cImport</a>
96c40 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 6e </li>.<li><a.href="#cUndef">@cUn
96c60 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 22 def</a></li>.<li><a.href="#void"
96c80 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 20 >void</a></li>.</ul>............
96ca0 20 20 20 3c 68 33 20 69 64 3d 22 63 49 6d 70 6f 72 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 ...<h3.id="cImport"><a.href="nav
96cc0 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c 2f 61 3e .xhtml#toc-cImport">@cImport</a>
96ce0 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e .<a.class="hdr".href="#cImport">
96d00 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 ..</a></h3>........<pre><code><s
96d20 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
96d40 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 3d </span>(expression).<span.class=
96d60 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
96d80 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
96da0 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 74 68 65 20 n.parses.C.code.and.imports.the.
96dc0 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 0a 20 20 20 functions,.types,.variables,....
96de0 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 6e 69 74 69 ...and.compatible.macro.definiti
96e00 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 74 79 70 65 ons.into.a.new.empty.struct.type
96e20 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 74 20 74 79 ,.and.then.......returns.that.ty
96e40 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 20 20 20 3c pe........</p>.......<p>.......<
96e60 63 6f 64 65 3e 65 78 70 72 65 73 73 69 6f 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 69 6e 74 65 72 70 code>expression</code>.is.interp
96e80 72 65 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 20 54 68 65 20 62 75 69 6c 74 reted.at.compile.time..The.built
96ea0 69 6e 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 in.functions...........<code><sp
96ec0 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 75 64 65 an.class="tok-builtin">@cInclude
96ee0 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 </span></code>,.<code><span.clas
96f00 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 3c s="tok-builtin">@cDefine</span><
96f20 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 /code>,.and.<code><span.class="t
96f40 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 55 6e 64 65 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ok-builtin">@cUndef</span></code
96f60 3e 20 77 6f 72 6b 0a 20 20 20 20 20 20 77 69 74 68 69 6e 20 74 68 69 73 20 65 78 70 72 65 73 73 >.work.......within.this.express
96f80 69 6f 6e 2c 20 61 70 70 65 6e 64 69 6e 67 20 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 ion,.appending.to.a.temporary.bu
96fa0 66 66 65 72 20 77 68 69 63 68 20 69 73 20 74 68 65 6e 20 70 61 72 73 65 64 20 61 73 20 43 20 63 ffer.which.is.then.parsed.as.C.c
96fc0 6f 64 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 ode........</p>.......<p>.......
96fe0 55 73 75 61 6c 6c 79 20 79 6f 75 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 68 61 76 65 20 6f 6e 65 Usually.you.should.only.have.one
97000 20 3c 63 6f 64 65 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 .<code><span.class="tok-builtin"
97020 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.
97040 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
97060 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
97080 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.
970a0 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
970c0 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>.....
970e0 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
97100 75 6c 74 69 70 6c 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 ultiple.<code><span.class="tok-b
97120 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 64 65 3e 20 65 uiltin">@cImport</span></code>.e
97140 78 70 72 65 73 73 69 6f 6e 73 20 77 6f 75 6c 64 20 62 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a xpressions.would.be:.......</p>.
97160 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 54 6f 20 61 76 6f 69 ......<ul>...........<li>To.avoi
97180 64 20 61 20 73 79 6d 62 6f 6c 20 63 6f 6c 6c 69 73 69 6f 6e 2c 20 66 6f 72 20 65 78 61 6d 70 6c d.a.symbol.collision,.for.exampl
971a0 65 20 69 66 20 66 6f 6f 2e 68 20 61 6e 64 20 62 61 72 2e 68 20 62 6f 74 68 20 3c 63 6f 64 65 3e e.if.foo.h.and.bar.h.both.<code>
971c0 23 64 65 66 69 6e 65 20 43 4f 4e 4e 45 43 54 49 4f 4e 5f 43 4f 55 4e 54 3c 2f 63 6f 64 65 3e 3c #define.CONNECTION_COUNT</code><
971e0 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 6f 20 61 6e 61 6c 79 7a 65 20 74 68 65 20 /li>.........<li>To.analyze.the.
97200 43 20 63 6f 64 65 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 70 72 65 70 72 6f 63 65 73 73 C.code.with.different.preprocess
97220 6f 72 20 64 65 66 69 6e 65 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 or.defines</li>.......</ul>.....
97240 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
97260 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 6c 65 22 3e ef="#Import-from-C-Header-File">
97280 49 6d 70 6f 72 74 20 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 Import.from.C.Header.File</a></l
972a0 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 63 49 6e 63 i>.<li><a.href="#cInclude">@cInc
972c0 6c 75 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 44 65 66 lude</a></li>.<li><a.href="#cDef
972e0 69 6e 65 22 3e 40 63 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 ine">@cDefine</a></li>.<li><a.hr
97300 65 66 3d 22 23 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f ef="#cUndef">@cUndef</a></li>.</
97320 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 63 49 6e 63 6c 75 ul>...............<h3.id="cInclu
97340 64 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 49 6e 63 6c de"><a.href="nav.xhtml#toc-cIncl
97360 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 68 64 72 ude">@cInclude</a>.<a.class="hdr
97380 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 33 3e 0a 0a ".href="#cInclude">..</a></h3>..
973a0 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
973c0 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 3c 73 70 61 k-builtin">@cInclude</span>(<spa
973e0 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>
97400 20 70 61 74 68 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 .path:.[]<span.class="tok-kw">co
97420 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
97440 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 79 ">u8</span>).<span.class="tok-ty
97460 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 65 3e 0a 20 20 20 pe">void</span></code></pre>....
97480 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 61 6e 20 6f ...<p>.......This.function.can.o
974a0 6e 6c 79 20 6f 63 63 75 72 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 nly.occur.inside.<code><span.cla
974c0 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 61 6e 3e ss="tok-builtin">@cImport</span>
974e0 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 20 </code>........</p>.......<p>...
97500 20 20 20 20 54 68 69 73 20 61 70 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 69 6e 63 6c 75 64 65 20 ....This.appends.<code>#include.
97520 26 6c 74 3b 24 70 61 74 68 26 67 74 3b 5c 6e 3c 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 3c 63 &lt;$path&gt;\n</code>.to.the.<c
97540 6f 64 65 3e 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 ode>c_import</code>.......tempor
97560 61 72 79 20 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 ary.buffer........</p>.......<p>
97580 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="#
975a0 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 22 3e 49 6d 70 6f 72 Import-from-C-Header-File">Impor
975c0 74 20 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 3c 6c t.from.C.Header.File</a></li>.<l
975e0 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
97600 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
97620 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
97640 6e 64 65 66 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 ndef">@cUndef</a></li>.</ul>....
97660 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 6c 7a 22 3e 3c 61 20 68 72 65 66 ............<h3.id="clz"><a.href
97680 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 6c 7a 22 3e 40 63 6c 7a 3c 2f 61 3e 20 3c 61 ="nav.xhtml#toc-clz">@clz</a>.<a
976a0 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 6c 7a 22 3e c2 a7 3c 2f 61 3e 3c .class="hdr".href="#clz">..</a><
976c0 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /h3>........<pre><code><span.cla
976e0 73 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 6f 70 65 ss="tok-builtin">@clz</span>(ope
97700 72 61 6e 64 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 74 79 rand:.<span.class="tok-kw">anyty
97720 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 6b 77 22 3e pe</span>).<span.class="tok-kw">
97740 61 6e 79 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 anytype</span></code></pre>.....
97760 20 20 3c 70 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c ..<p><code><span.class="tok-buil
97780 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6f 70 65 72 61 6e 64 29 3c 2f 63 6f tin">@TypeOf</span>(operand)</co
977a0 64 65 3e 20 6d 75 73 74 20 62 65 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 6f 72 20 61 de>.must.be.an.integer.type.or.a
977c0 6e 20 69 6e 74 65 67 65 72 20 76 65 63 74 6f 72 20 74 79 70 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 n.integer.vector.type.</p>......
977e0 20 3c 70 3e 3c 63 6f 64 65 3e 6f 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e 20 6d 61 79 20 62 65 20 .<p><code>operand</code>.may.be.
97800 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 67 65 72 3c 2f an.<a.href="#Integers">integer</
97820 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 63 74 6f 72 3c a>.or.<a.href="#Vectors">vector<
97840 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 43 6f 75 6e 74 73 20 /a>.</p>.......<p>.......Counts.
97860 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 63 61 6e 74 20 28 the.number.of.most-significant.(
97880 6c 65 61 64 69 6e 67 20 69 6e 20 61 20 62 69 67 2d 65 6e 64 69 61 6e 20 73 65 6e 73 65 29 20 7a leading.in.a.big-endian.sense).z
978a0 65 72 6f 65 73 20 69 6e 20 61 6e 20 69 6e 74 65 67 65 72 20 2d 20 22 63 6f 75 6e 74 20 6c 65 61 eroes.in.an.integer.-."count.lea
978c0 64 69 6e 67 20 7a 65 72 6f 65 73 22 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c ding.zeroes"........</p>.......<
978e0 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 6f 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e p>.......If.<code>operand</code>
97900 20 69 73 20 61 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 .is.a.<a.href="#comptime">compti
97920 6d 65 3c 2f 61 3e 2d 6b 6e 6f 77 6e 20 69 6e 74 65 67 65 72 2c 0a 20 20 20 20 20 20 74 68 65 20 me</a>-known.integer,.......the.
97940 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 return.type.is.<code><span.class
97960 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><
97980 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 72 65 74 /code>........Otherwise,.the.ret
979a0 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 65 72 20 urn.type.is.an.unsigned.integer.
979c0 6f 72 20 76 65 63 74 6f 72 20 6f 66 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 77 or.vector.of.unsigned.integers.w
979e0 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 20 6f 66 20 ith.the.minimum.number.......of.
97a00 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 62 69 74 20 bits.that.can.represent.the.bit.
97a20 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 20 20 20 20 count.of.the.integer.type.......
97a40 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 3c 63 6f 64 65 3e 6f .</p>.......<p>.......If.<code>o
97a60 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e 20 69 73 20 7a 65 72 6f 2c 20 3c 63 6f 64 65 3e 3c 73 70 perand</code>.is.zero,.<code><sp
97a80 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 6c 7a 3c 2f 73 70 61 an.class="tok-builtin">@clz</spa
97aa0 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 6e 73 20 74 68 65 20 62 69 74 20 77 69 64 74 68 0a n></code>.returns.the.bit.width.
97ac0 20 20 20 20 20 20 6f 66 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 ......of.integer.type.<code>T</c
97ae0 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 61 6c ode>........</p>.......<p>See.al
97b00 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 63 74 7a 22 3e 40 so:</p><ul>.<li><a.href="#ctz">@
97b20 63 74 7a 3c 2f 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 ctz</a></li>.<li><a.href="#popCo
97b40 75 6e 74 22 3e 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 unt">@popCount</a></li>.</ul>...
97b60 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 6d 70 78 63 68 67 53 74 72 6f .............<h3.id="cmpxchgStro
97b80 6e 67 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 6d 70 78 63 ng"><a.href="nav.xhtml#toc-cmpxc
97ba0 68 67 53 74 72 6f 6e 67 22 3e 40 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 3c 2f 61 3e 20 3c 61 20 hgStrong">@cmpxchgStrong</a>.<a.
97bc0 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 class="hdr".href="#cmpxchgStrong
97be0 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e ">..</a></h3>........<pre><code>
97c00 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 6d 70 78 63 <span.class="tok-builtin">@cmpxc
97c20 68 67 53 74 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 hgStrong</span>(<span.class="tok
97c40 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 6c -kw">comptime</span>.T:.<span.cl
97c60 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 72 3a ass="tok-type">type</span>,.ptr:
97c80 20 2a 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 .*T,.expected_value:.T,.new_valu
97ca0 65 3a 20 54 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 e:.T,.success_order:.AtomicOrder
97cc0 2c 20 66 61 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 ,.fail_order:.AtomicOrder).?T</c
97ce0 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 73 20 ode></pre>.......<p>.......This.
97d00 66 75 6e 63 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 function.performs.a.strong.atomi
97d20 63 20 63 6f 6d 70 61 72 65 2d 61 6e 64 2d 65 78 63 68 61 6e 67 65 20 6f 70 65 72 61 74 69 6f 6e c.compare-and-exchange.operation
97d40 2c 20 72 65 74 75 72 6e 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ,.returning.<code><span.class="t
97d60 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 0a 20 20 20 20 ok-null">null</span></code>.....
97d80 20 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 74 68 ..if.the.current.value.is.not.th
97da0 65 20 67 69 76 65 6e 20 65 78 70 65 63 74 65 64 20 76 61 6c 75 65 2e 20 49 74 27 73 20 74 68 65 e.given.expected.value..It's.the
97dc0 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 20 20 .equivalent.of.this.code,.......
97de0 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 20 20 except.atomic:.......</p>.......
97e00 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
97e20 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6e 6f 74 5f 61 74 6f 6d 69 ap"><cite.class="file">not_atomi
97e40 63 5f 63 6d 70 78 63 68 67 53 74 72 6f 6e 67 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 c_cmpxchgStrong.zig</cite></figc
97e60 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 aption><pre><code><span.class="t
97e80 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
97ea0 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 41 74 6f 6d 69 63 3c k-fn">cmpxchgStrongButNotAtomic<
97ec0 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
97ee0 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-
97f00 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 65 type">type</span>,.ptr:.*T,.expe
97f20 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 20 cted_value:.T,.new_value:.T).?T.
97f40 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
97f60 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 3c </span>.old_value.=.ptr.*;.....<
97f80 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 6f span.class="tok-kw">if</span>.(o
97fa0 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 29 20 7b 0a 20 20 ld_value.==.expected_value).{...
97fc0 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;........
97fe0 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
98000 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<
98020 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
98040 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
98060 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_
98080 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 3c 2f 66 69 67 value;.....}.}</code></pre></fig
980a0 75 72 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 ure>.......<p>.......If.you.are.
980c0 75 73 69 6e 67 20 63 6d 70 78 63 68 67 20 69 6e 20 61 20 72 65 74 72 79 20 6c 6f 6f 70 2c 20 3c using.cmpxchg.in.a.retry.loop,.<
980e0 61 20 68 72 65 66 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 a.href="#cmpxchgWeak">@cmpxchgWe
98100 61 6b 3c 2f 61 3e 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 63 ak</a>.is.the.better.choice,.bec
98120 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 0a 20 20 20 20 20 ause.it.can.be.implemented......
98140 20 6d 6f 72 65 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 .more.efficiently.in.machine.ins
98160 74 72 75 63 74 69 6f 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 tructions........</p>.......<p>.
98180 20 20 20 20 20 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 70 ......<code>T</code>.must.be.a.p
981a0 6f 69 6e 74 65 72 2c 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ointer,.a.<code><span.class="tok
981c0 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 2c 20 61 20 66 6c 6f -type">bool</span></code>,.a.flo
981e0 61 74 2c 0a 20 20 20 20 20 20 61 6e 20 69 6e 74 65 67 65 72 20 6f 72 20 61 6e 20 65 6e 75 6d 2e at,.......an.integer.or.an.enum.
98200 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 3e 3c 73 70 61 6e .......</p>.......<p><code><span
98220 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 6e 66 6f 3c 2f .class="tok-builtin">@typeInfo</
98240 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 3e span>(<span.class="tok-builtin">
98260 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 70 74 72 29 29 2e 50 6f 69 6e 74 65 72 2e 61 6c 69 @TypeOf</span>(ptr)).Pointer.ali
98280 67 6e 6d 65 6e 74 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 3c 63 6f 64 65 3e 26 67 74 3b gnment</code>.must.be.<code>&gt;
982a0 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 69 7a =.<span.class="tok-builtin">@siz
982c0 65 4f 66 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 eOf</span>(T).</code></p>.......
982e0 3c 70 3e 3c 63 6f 64 65 3e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 <p><code>AtomicOrder</code>.can.
98300 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d be.found.with.<code><span.class=
98320 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
98340 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
98360 74 3b 3c 2f 73 70 61 6e 3e 29 2e 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f t;</span>).builtin.AtomicOrder</
98380 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 6f 3a 3c 2f 70 code>.</p>.......<p>See.also:</p
983a0 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 53 74 6f 72 65 22 ><ul>.<li><a.href="#atomicStore"
983c0 3e 40 61 74 6f 6d 69 63 53 74 6f 72 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 >@atomicStore</a></li>.<li><a.hr
983e0 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 2f 61 3e ef="#atomicLoad">@atomicLoad</a>
98400 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 52 6d 77 22 3e 40 </li>.<li><a.href="#atomicRmw">@
98420 61 74 6f 6d 69 63 52 6d 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 atomicRmw</a></li>.<li><a.href="
98440 23 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 #fence">@fence</a></li>.<li><a.h
98460 72 65 66 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 ref="#cmpxchgWeak">@cmpxchgWeak<
98480 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 68 /a></li>.</ul>................<h
984a0 33 20 69 64 3d 22 63 6d 70 78 63 68 67 57 65 61 6b 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 3.id="cmpxchgWeak"><a.href="nav.
984c0 78 68 74 6d 6c 23 74 6f 63 2d 63 6d 70 78 63 68 67 57 65 61 6b 22 3e 40 63 6d 70 78 63 68 67 57 xhtml#toc-cmpxchgWeak">@cmpxchgW
984e0 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 65 66 3d 22 23 63 6d eak</a>.<a.class="hdr".href="#cm
98500 70 78 63 68 67 57 65 61 6b 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 pxchgWeak">..</a></h3>........<p
98520 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 re><code><span.class="tok-builti
98540 6e 22 3e 40 63 6d 70 78 63 68 67 57 65 61 6b 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 n">@cmpxchgWeak</span>(<span.cla
98560 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 3c ss="tok-kw">comptime</span>.T:.<
98580 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
985a0 3e 2c 20 70 74 72 3a 20 2a 54 2c 20 65 78 70 65 63 74 65 64 5f 76 61 6c 75 65 3a 20 54 2c 20 6e >,.ptr:.*T,.expected_value:.T,.n
985c0 65 77 5f 76 61 6c 75 65 3a 20 54 2c 20 73 75 63 63 65 73 73 5f 6f 72 64 65 72 3a 20 41 74 6f 6d ew_value:.T,.success_order:.Atom
985e0 69 63 4f 72 64 65 72 2c 20 66 61 69 6c 5f 6f 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 icOrder,.fail_order:.AtomicOrder
98600 29 20 3f 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 ).?T</code></pre>.......<p>.....
98620 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 73 20 61 20 77 65 61 6b 20 ..This.function.performs.a.weak.
98640 61 74 6f 6d 69 63 20 63 6f 6d 70 61 72 65 2d 61 6e 64 2d 65 78 63 68 61 6e 67 65 20 6f 70 65 72 atomic.compare-and-exchange.oper
98660 61 74 69 6f 6e 2c 20 72 65 74 75 72 6e 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 ation,.returning.<code><span.cla
98680 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 3c 2f 63 6f 64 65 3e ss="tok-null">null</span></code>
986a0 0a 20 20 20 20 20 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 20 69 73 20 6e .......if.the.current.value.is.n
986c0 6f 74 20 74 68 65 20 67 69 76 65 6e 20 65 78 70 65 63 74 65 64 20 76 61 6c 75 65 2e 20 49 74 27 ot.the.given.expected.value..It'
986e0 73 20 74 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 s.the.equivalent.of.this.code,..
98700 20 20 20 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 .....except.atomic:.......</p>..
98720 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
98740 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 6d 70 78 zig-cap"><cite.class="file">cmpx
98760 63 68 67 57 65 61 6b 42 75 74 4e 6f 74 41 74 6f 6d 69 63 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 chgWeakButNotAtomic</cite></figc
98780 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 aption><pre><code><span.class="t
987a0 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
987c0 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 3c 2f 73 k-fn">cmpxchgWeakButNotAtomic</s
987e0 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
98800 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 79 me</span>.T:.<span.class="tok-ty
98820 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 65 63 74 pe">type</span>,.ptr:.*T,.expect
98840 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 20 7b 0a ed_value:.T,.new_value:.T).?T.{.
98860 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</
98880 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 3c 73 70 span>.old_value.=.ptr.*;.....<sp
988a0 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 6f 6c 64 an.class="tok-kw">if</span>.(old
988c0 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 6e 20 63 _value.==.expected_value.<span.c
988e0 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 6c 6c 79 lass="tok-kw">and</span>.usually
98900 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 20 20 20 TrueButSometimesFalse()).{......
98920 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 20 3c 73 ...ptr.*.=.new_value;.........<s
98940 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>
98960 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
98980 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 77 22 3e an>;.....}.<span.class="tok-kw">
989a0 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 73 else</span>.{.........<span.clas
989c0 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 76 61 6c s="tok-kw">return</span>.old_val
989e0 75 65 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ue;.....}.}</code></pre></figure
98a00 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 69 >.......<p>.......If.you.are.usi
98a20 6e 67 20 63 6d 70 78 63 68 67 20 69 6e 20 61 20 72 65 74 72 79 20 6c 6f 6f 70 2c 20 74 68 65 20 ng.cmpxchg.in.a.retry.loop,.the.
98a40 73 70 6f 72 61 64 69 63 20 66 61 69 6c 75 72 65 20 77 69 6c 6c 20 62 65 20 6e 6f 20 70 72 6f 62 sporadic.failure.will.be.no.prob
98a60 6c 65 6d 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 63 6d 70 78 63 68 67 57 65 61 6b 3c 2f 63 6f 64 65 lem,.and.<code>cmpxchgWeak</code
98a80 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
98aa0 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
98ac0 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
98ae0 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.
98b00 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
98b20 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
98b40 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>.....
98b60 20 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 70 6f 69 6e 74 ..<code>T</code>.must.be.a.point
98b80 65 72 2c 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 er,.a.<code><span.class="tok-typ
98ba0 65 22 3e 62 6f 6f 6c 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 61 20 66 6c 6f 61 74 2c 0a e">bool</span></code>,.a.float,.
98bc0 20 20 20 20 20 20 61 6e 20 69 6e 74 65 67 65 72 20 6f 72 20 61 6e 20 65 6e 75 6d 2e 0a 20 20 20 ......an.integer.or.an.enum.....
98be0 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 ...</p>.......<p><code><span.cla
98c00 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e ss="tok-builtin">@typeInfo</span
98c20 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 54 79 70 >(<span.class="tok-builtin">@Typ
98c40 65 4f 66 3c 2f 73 70 61 6e 3e 28 70 74 72 29 29 2e 50 6f 69 6e 74 65 72 2e 61 6c 69 67 6e 6d 65 eOf</span>(ptr)).Pointer.alignme
98c60 6e 74 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 3c 63 6f 64 65 3e 26 67 74 3b 3d 20 3c 73 nt</code>.must.be.<code>&gt;=.<s
98c80 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 3c pan.class="tok-builtin">@sizeOf<
98ca0 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 3c /span>(T).</code></p>.......<p><
98cc0 63 6f 64 65 3e 41 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 code>AtomicOrder</code>.can.be.f
98ce0 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ound.with.<code><span.class="tok
98d00 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
98d20 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;</
98d40 73 70 61 6e 3e 29 2e 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 span>).builtin.AtomicOrder</code
98d60 3e 2e 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 >.</p>.......<p>See.also:</p><ul
98d80 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 53 74 6f 72 65 22 3e 40 61 74 >.<li><a.href="#atomicStore">@at
98da0 6f 6d 69 63 53 74 6f 72 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 omicStore</a></li>.<li><a.href="
98dc0 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 2f 61 3e 3c 2f 6c 69 #atomicLoad">@atomicLoad</a></li
98de0 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 52 6d 77 22 3e 40 61 74 6f 6d >.<li><a.href="#atomicRmw">@atom
98e00 69 63 52 6d 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 65 6e icRmw</a></li>.<li><a.href="#fen
98e20 63 65 22 3e 40 66 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d ce">@fence</a></li>.<li><a.href=
98e40 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 67 3c "#cmpxchgStrong">@cmpxchgStrong<
98e60 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 68 /a></li>.</ul>................<h
98e80 33 20 69 64 3d 22 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 3.id="compileError"><a.href="nav
98ea0 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e 40 63 6f 6d 70 69 6c .xhtml#toc-compileError">@compil
98ec0 65 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 eError</a>.<a.class="hdr".href="
98ee0 23 63 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 #compileError">..</a></h3>......
98f00 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ..<pre><code><span.class="tok-bu
98f20 69 6c 74 69 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 iltin">@compileError</span>(<spa
98f40 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>
98f60 20 6d 73 67 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 .msg:.[]<span.class="tok-kw">con
98f80 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"
98fa0 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 79 70 >u8</span>).<span.class="tok-typ
98fc0 65 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 70 72 65 3e 0a e">noreturn</span></code></pre>.
98fe0 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 2c 20 77 ......<p>.......This.function,.w
99000 68 65 6e 20 73 65 6d 61 6e 74 69 63 61 6c 6c 79 20 61 6e 61 6c 79 7a 65 64 2c 20 63 61 75 73 65 hen.semantically.analyzed,.cause
99020 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 s.a.compile.error.with.the......
99040 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 6d 73 67 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 .message.<code>msg</code>.......
99060 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 65 20 .</p>.......<p>.......There.are.
99080 73 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 several.ways.that.code.avoids.be
990a0 69 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 ing.semantically.checked,.such.a
990c0 73 0a 20 20 20 20 20 20 75 73 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d s.......using.<code><span.class=
990e0 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 20 6f 72 20 3c 63 6f "tok-kw">if</span></code>.or.<co
99100 64 65 3e 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 de><span.class="tok-kw">switch</
99120 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 span></code>.with.compile.time.c
99140 6f 6e 73 74 61 6e 74 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 3c 63 6f 64 onstants,...............and.<cod
99160 65 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 e><span.class="tok-kw">comptime<
99180 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 20 20 3c /span></code>.functions........<
991a0 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 6f 6d 70 69 6c /p>...............<h3.id="compil
991c0 65 4c 6f 67 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 6f 6d eLog"><a.href="nav.xhtml#toc-com
991e0 70 69 6c 65 4c 6f 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 pileLog">@compileLog</a>.<a.clas
99200 73 3d 22 68 64 72 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 s="hdr".href="#compileLog">..</a
99220 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></h3>........<pre><code><span.c
99240 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 4c 6f 67 3c 2f lass="tok-builtin">@compileLog</
99260 73 70 61 6e 3e 28 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 span>(args:....).<span.class="to
99280 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 65 3e k-type">void</span></code></pre>
992a0 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 70 .......<p>.......This.function.p
992c0 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 20 69 74 rints.the.arguments.passed.to.it
992e0 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 20 20 20 .at.compile-time........</p>....
99300 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 65 6e 74 ...<p>.......To.prevent.accident
99320 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 65 6d 65 ally.leaving.compile.log.stateme
99340 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 6d 70 69 nts.in.a.codebase,.......a.compi
99360 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 62 75 69 lation.error.is.added.to.the.bui
99380 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 20 20 20 ld,.pointing.to.the.compile.....
993a0 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 72 65 76 ..log.statement..This.error.prev
993c0 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 64 2c 20 ents.code.from.being.generated,.
993e0 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 69 6e 74 but.......does.not.otherwise.int
99400 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 2f 70 3e erfere.with.analysis........</p>
99420 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
99440 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 67 67 69 an.be.used.to.do."printf.debuggi
99460 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 63 75 74 ng".on.......compile-time.execut
99480 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 66 69 67 75 ing.code........</p>.......<figu
994a0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
994c0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 69 6c 65 4c 6f cite.class="file">test_compileLo
994e0 67 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e g_builtin.zig</cite></figcaption
99500 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
99520 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 >const</span>.print.=.<span.clas
99540 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>(<
99560 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
99580 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 0a 3c 73 70 61 6e uot;</span>).debug.print;..<span
995a0 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
995c0 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 6f 6b 2d 1.=.blk:.{.....<span.class="tok-
995e0 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 61 73 73 kw">var</span>.val1:.<span.class
99600 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 63 ="tok-type">i32</span>.=.<span.c
99620 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 20 20 20 lass="tok-number">99</span>;....
99640 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
99660 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 6b 2d 73 ileLog</span>(<span.class="tok-s
99680 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 6f 74 3b tr">&quot;comptime.val1.=.&quot;
996a0 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 6c 31 20 </span>,.val1);.....val1.=.val1.
996c0 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 2f 73 70 +.<span.class="tok-number">1</sp
996e0 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 62 72 an>;.....<span.class="tok-kw">br
99700 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 61 6e 20 eak</span>.:blk.val1;.};..<span.
99720 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
99740 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 75 6f 74 .class="tok-str">&quot;main&quot
99760 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-
99780 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 73 70 61 builtin">@compileLog</span>(<spa
997a0 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 69 6d 65 n.class="tok-str">&quot;comptime
997c0 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 70 72 69 .in.main&quot;</span>);......pri
997e0 6e 74 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 52 nt(<span.class="tok-str">&quot;R
99800 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 75 6f untime.in.main,.num1.=.{}.\n&quo
99820 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 6e 75 6d 31 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 t;</span>,..{num1});.}</code></p
99840 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 re></figure><figure><figcaption.
99860 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 class="shell-cap">Shell</figcapt
99880 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 ion><pre><samp>$.<kbd>zig.test.t
998a0 65 73 74 5f 63 6f 6d 70 69 6c 65 4c 6f 67 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e est_compileLog_builtin.zig</kbd>
998c0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 .<span.class="sgr-1m">docgen_tmp
998e0 2f 74 65 73 74 5f 63 6f 6d 70 69 6c 65 4c 6f 67 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3a 31 31 3a /test_compileLog_builtin.zig:11:
99900 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 5:.</span><span.class="sgr-31m">
99920 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 error:.</span><span.class="sgr-1
99940 6d 22 3e 66 6f 75 6e 64 20 63 6f 6d 70 69 6c 65 20 6c 6f 67 20 73 74 61 74 65 6d 65 6e 74 0a 3c m">found.compile.log.statement.<
99960 2f 73 70 61 6e 3e 20 20 20 20 40 63 6f 6d 70 69 6c 65 4c 6f 67 28 26 71 75 6f 74 3b 63 6f 6d 70 /span>....@compileLog(&quot;comp
99980 74 69 6d 65 20 69 6e 20 6d 61 69 6e 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 time.in.main&quot;);.....<span.c
999a0 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e lass="sgr-32m">^~~~~~~~~~~~~~~~~
999c0 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 ~~~~~~~~~~~~~~.</span><span.clas
999e0 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 69 s="sgr-1m">docgen_tmp/test_compi
99a00 6c 65 4c 6f 67 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3a 35 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 leLog_builtin.zig:5:5:.</span><s
99a20 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e pan.class="sgr-36m">note:.</span
99a40 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 61 6c 73 6f 20 68 65 72 65 0a ><span.class="sgr-1m">also.here.
99a60 3c 2f 73 70 61 6e 3e 20 20 20 20 40 63 6f 6d 70 69 6c 65 4c 6f 67 28 26 71 75 6f 74 3b 63 6f 6d </span>....@compileLog(&quot;com
99a80 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 29 3b 0a 20 20 20 20 ptime.val1.=.&quot;,.val1);.....
99aa0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e <span.class="sgr-32m">^~~~~~~~~~
99ac0 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 ~~~~~~~~~~~~~~~~~~~~~~~~~~~.</sp
99ae0 61 6e 3e 0a 43 6f 6d 70 69 6c 65 20 4c 6f 67 20 4f 75 74 70 75 74 3a 0a 40 61 73 28 2a 63 6f 6e an>.Compile.Log.Output:.@as(*con
99b00 73 74 20 5b 31 36 3a 30 5d 75 38 2c 20 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 69 6e 20 6d st.[16:0]u8,.&quot;comptime.in.m
99b20 61 69 6e 26 71 75 6f 74 3b 29 0a 40 61 73 28 2a 63 6f 6e 73 74 20 5b 31 36 3a 30 5d 75 38 2c 20 ain&quot;).@as(*const.[16:0]u8,.
99b40 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 6f 74 3b 29 2c 20 40 &quot;comptime.val1.=.&quot;),.@
99b60 61 73 28 69 33 32 2c 20 39 39 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 as(i32,.99).</samp></pre></figur
99b80 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 6f 6e 73 74 43 61 e>...............<h3.id="constCa
99ba0 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 6f 6e 73 74 st"><a.href="nav.xhtml#toc-const
99bc0 43 61 73 74 22 3e 40 63 6f 6e 73 74 43 61 73 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 Cast">@constCast</a>.<a.class="h
99be0 64 72 22 20 68 72 65 66 3d 22 23 63 6f 6e 73 74 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 dr".href="#constCast">..</a></h3
99c00 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d >........<pre><code><span.class=
99c20 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 6f 6e 73 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 "tok-builtin">@constCast</span>(
99c40 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 61 6e 79 74 value:.<span.class="tok-kw">anyt
99c60 79 70 65 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 ype</span>).DestType</code></pre
99c80 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 6d 6f 76 65 20 3c 63 6f 64 65 3e 3c >.......<p>.......Remove.<code><
99ca0 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>
99cc0 3c 2f 63 6f 64 65 3e 20 71 75 61 6c 69 66 69 65 72 20 66 72 6f 6d 20 61 20 70 6f 69 6e 74 65 72 </code>.qualifier.from.a.pointer
99ce0 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 68 33 20 69 ........</p>...............<h3.i
99d00 64 3d 22 63 74 7a 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 d="ctz"><a.href="nav.xhtml#toc-c
99d20 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 68 72 65 66 tz">@ctz</a>.<a.class="hdr".href
99d40 3d 22 23 63 74 7a 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e ="#ctz">..</a></h3>........<pre>
99d60 3c 63 6f 64 65 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 <code><span.class="tok-builtin">
99d80 40 63 74 7a 3c 2f 73 70 61 6e 3e 28 6f 70 65 72 61 6e 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 @ctz</span>(operand:.<span.class
99da0 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 ="tok-kw">anytype</span>).<span.
99dc0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 class="tok-kw">anytype</span></c
99de0 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 3e 3c 73 70 61 6e 20 ode></pre>.......<p><code><span.
99e00 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 4f 66 3c 2f 73 70 61 class="tok-builtin">@TypeOf</spa
99e20 6e 3e 28 6f 70 65 72 61 6e 64 29 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 6e 20 69 6e n>(operand)</code>.must.be.an.in
99e40 74 65 67 65 72 20 74 79 70 65 20 6f 72 20 61 6e 20 69 6e 74 65 67 65 72 20 76 65 63 74 6f 72 20 teger.type.or.an.integer.vector.
99e60 74 79 70 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 6f 70 65 72 61 6e 64 type.</p>.......<p><code>operand
99e80 3c 2f 63 6f 64 65 3e 20 6d 61 79 20 62 65 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 </code>.may.be.an.<a.href="#Inte
99ea0 67 65 72 73 22 3e 69 6e 74 65 67 65 72 3c 2f 61 3e 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 56 gers">integer</a>.or.<a.href="#V
99ec0 65 63 74 6f 72 73 22 3e 76 65 63 74 6f 72 3c 2f 61 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 ectors">vector</a>.</p>.......<p
99ee0 3e 0a 20 20 20 20 20 20 43 6f 75 6e 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6c 65 61 >.......Counts.the.number.of.lea
99f00 73 74 2d 73 69 67 6e 69 66 69 63 61 6e 74 20 28 74 72 61 69 6c 69 6e 67 20 69 6e 20 61 20 62 69 st-significant.(trailing.in.a.bi
99f20 67 2d 65 6e 64 69 61 6e 20 73 65 6e 73 65 29 20 7a 65 72 6f 65 73 20 69 6e 20 61 6e 20 69 6e 74 g-endian.sense).zeroes.in.an.int
99f40 65 67 65 72 20 2d 20 22 63 6f 75 6e 74 20 74 72 61 69 6c 69 6e 67 20 7a 65 72 6f 65 73 22 2e 0a eger.-."count.trailing.zeroes"..
99f60 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 20 3c 63 ......</p>.......<p>.......If.<c
99f80 6f 64 65 3e 6f 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 61 20 68 72 65 66 3d ode>operand</code>.is.a.<a.href=
99fa0 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 6e 20 69 "#comptime">comptime</a>-known.i
99fc0 6e 74 65 67 65 72 2c 0a 20 20 20 20 20 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 nteger,.......the.return.type.is
99fe0 20 3c 63 6f 64 65 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 .<code><span.class="tok-type">co
9a000 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 20 20 mptime_int</span></code>........
9a020 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 61 6e Otherwise,.the.return.type.is.an
9a040 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 6f 72 20 76 65 63 74 6f 72 20 6f 66 20 75 .unsigned.integer.or.vector.of.u
9a060 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 77 69 74 68 20 74 68 65 20 6d 69 6e 69 6d 75 nsigned.integers.with.the.minimu
9a080 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 61 6e 20 m.number.......of.bits.that.can.
9a0a0 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 65 20 69 represent.the.bit.count.of.the.i
9a0c0 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 20 3c 70 nteger.type........</p>.......<p
9a0e0 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 6f 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e 20 >.......If.<code>operand</code>.
9a100 69 73 20 7a 65 72 6f 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d is.zero,.<code><span.class="tok-
9a120 62 75 69 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 builtin">@ctz</span></code>.retu
9a140 72 6e 73 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 rns.......the.bit.width.of.integ
9a160 65 72 20 74 79 70 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f er.type.<code>T</code>........</
9a180 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
9a1a0 69 3e 3c 61 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 3c i><a.href="#clz">@clz</a></li>.<
9a1c0 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 6f 70 43 6f 75 6e 74 li><a.href="#popCount">@popCount
9a1e0 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>................<
9a200 68 33 20 69 64 3d 22 63 55 6e 64 65 66 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d h3.id="cUndef"><a.href="nav.xhtm
9a220 6c 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 l#toc-cUndef">@cUndef</a>.<a.cla
9a240 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></
9a260 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 h3>........<pre><code><span.clas
9a280 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 73 70 61 6e 3e 28 3c s="tok-builtin">@cUndef</span>(<
9a2a0 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
9a2c0 61 6e 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 an>.name:.[]<span.class="tok-kw"
9a2e0 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
9a300 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
9a320 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 65 3e 0a -type">void</span></code></pre>.
9a340 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 61 ......<p>.......This.function.ca
9a360 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 3e 3c 73 70 61 6e 20 n.only.occur.inside.<code><span.
9a380 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
9a3a0 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 3e an></code>........</p>.......<p>
9a3c0 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 75 6e 64 65 66 .......This.appends.<code>#undef
9a3e0 20 24 6e 61 6d 65 3c 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e .$name</code>.to.the.<code><span
9a400 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 3c 2f 73 .class="tok-builtin">@cImport</s
9a420 70 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 pan></code>.......temporary.buff
9a440 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 61 6c 73 6f er........</p>.......<p>See.also
9a460 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 72 74 2d 66 :</p><ul>.<li><a.href="#Import-f
9a480 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 6f 6d 20 43 rom-C-Header-File">Import.from.C
9a4a0 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 20 68 72 65 .Header.File</a></li>.<li><a.hre
9a4c0 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 69 3e 0a 3c f="#cImport">@cImport</a></li>.<
9a4e0 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 6e 65 3c 2f li><a.href="#cDefine">@cDefine</
9a500 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 63 6c 75 64 65 22 3e a></li>.<li><a.href="#cInclude">
9a520 40 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 @cInclude</a></li>.</ul>........
9a540 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 56 61 41 72 67 22 3e 3c 61 20 68 72 65 66 3d ........<h3.id="cVaArg"><a.href=
9a560 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 56 61 41 72 67 22 3e 40 63 56 61 41 72 67 3c 2f "nav.xhtml#toc-cVaArg">@cVaArg</
9a580 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 63 56 61 41 72 67 22 a>.<a.class="hdr".href="#cVaArg"
9a5a0 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c >..</a></h3>........<pre><code><
9a5c0 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 56 61 41 72 67 span.class="tok-builtin">@cVaArg
9a5e0 3c 2f 73 70 61 6e 3e 28 6f 70 65 72 61 6e 64 3a 20 2a 73 74 64 2e 62 75 69 6c 74 69 6e 2e 56 61 </span>(operand:.*std.builtin.Va
9a600 4c 69 73 74 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 List,.<span.class="tok-kw">compt
9a620 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
9a640 79 70 65 22 3e 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e ype">type</span>).T</code></pre>
9a660 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 .......<p>.......Implements.the.
9a680 43 20 6d 61 63 72 6f 20 3c 63 6f 64 65 3e 76 61 5f 61 72 67 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 C.macro.<code>va_arg</code>.....
9a6a0 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
9a6c0 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 56 61 43 6f 70 79 22 3e 40 63 56 61 43 6f l>.<li><a.href="#cVaCopy">@cVaCo
9a6e0 70 79 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 56 61 45 6e 64 py</a></li>.<li><a.href="#cVaEnd
9a700 22 3e 40 63 56 61 45 6e 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 ">@cVaEnd</a></li>.<li><a.href="
9a720 23 63 56 61 53 74 61 72 74 22 3e 40 63 56 61 53 74 61 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f #cVaStart">@cVaStart</a></li>.</
9a740 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 63 56 61 43 6f 70 ul>...............<h3.id="cVaCop
9a760 79 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 56 61 43 6f 70 y"><a.href="nav.xhtml#toc-cVaCop
9a780 79 22 3e 40 63 56 61 43 6f 70 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 y">@cVaCopy</a>.<a.class="hdr".h
9a7a0 72 65 66 3d 22 23 63 56 61 43 6f 70 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 ref="#cVaCopy">..</a></h3>......
9a7c0 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ..<pre><code><span.class="tok-bu
9a7e0 69 6c 74 69 6e 22 3e 40 63 56 61 43 6f 70 79 3c 2f 73 70 61 6e 3e 28 73 72 63 3a 20 2a 73 74 64 iltin">@cVaCopy</span>(src:.*std
9a800 2e 62 75 69 6c 74 69 6e 2e 56 61 4c 69 73 74 29 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 56 61 4c .builtin.VaList).std.builtin.VaL
9a820 69 73 74 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 ist</code></pre>.......<p>......
9a840 20 49 6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 43 20 6d 61 63 72 6f 20 3c 63 6f 64 65 3e 76 61 .Implements.the.C.macro.<code>va
9a860 5f 63 6f 70 79 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 _copy</code>........</p>.......<
9a880 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=
9a8a0 22 23 63 56 61 41 72 67 22 3e 40 63 56 61 41 72 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c "#cVaArg">@cVaArg</a></li>.<li><
9a8c0 61 20 68 72 65 66 3d 22 23 63 56 61 45 6e 64 22 3e 40 63 56 61 45 6e 64 3c 2f 61 3e 3c 2f 6c 69 a.href="#cVaEnd">@cVaEnd</a></li
9a8e0 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 56 61 53 74 61 72 74 22 3e 40 63 56 61 53 74 >.<li><a.href="#cVaStart">@cVaSt
9a900 61 72 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 20 20 20 20 20 art</a></li>.</ul>..............
9a920 20 3c 68 33 20 69 64 3d 22 63 56 61 45 6e 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 .<h3.id="cVaEnd"><a.href="nav.xh
9a940 74 6d 6c 23 74 6f 63 2d 63 56 61 45 6e 64 22 3e 40 63 56 61 45 6e 64 3c 2f 61 3e 20 3c 61 20 63 tml#toc-cVaEnd">@cVaEnd</a>.<a.c
9a960 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 56 61 45 6e 64 22 3e c2 a7 3c 2f 61 3e lass="hdr".href="#cVaEnd">..</a>
9a980 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </h3>........<pre><code><span.cl
9a9a0 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 56 61 45 6e 64 3c 2f 73 70 61 6e 3e ass="tok-builtin">@cVaEnd</span>
9a9c0 28 73 72 63 3a 20 2a 73 74 64 2e 62 75 69 6c 74 69 6e 2e 56 61 4c 69 73 74 29 20 3c 73 70 61 6e (src:.*std.builtin.VaList).<span
9a9e0 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 2f 63 .class="tok-type">void</span></c
9aa00 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 6d 70 6c 65 ode></pre>.......<p>.......Imple
9aa20 6d 65 6e 74 73 20 74 68 65 20 43 20 6d 61 63 72 6f 20 3c 63 6f 64 65 3e 76 61 5f 65 6e 64 3c 2f ments.the.C.macro.<code>va_end</
9aa40 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 61 code>........</p>.......<p>See.a
9aa60 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 63 56 61 41 72 lso:</p><ul>.<li><a.href="#cVaAr
9aa80 67 22 3e 40 63 56 61 41 72 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d g">@cVaArg</a></li>.<li><a.href=
9aaa0 22 23 63 56 61 43 6f 70 79 22 3e 40 63 56 61 43 6f 70 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 "#cVaCopy">@cVaCopy</a></li>.<li
9aac0 3e 3c 61 20 68 72 65 66 3d 22 23 63 56 61 53 74 61 72 74 22 3e 40 63 56 61 53 74 61 72 74 3c 2f ><a.href="#cVaStart">@cVaStart</
9aae0 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 33 20 a></li>.</ul>...............<h3.
9ab00 69 64 3d 22 63 56 61 53 74 61 72 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c id="cVaStart"><a.href="nav.xhtml
9ab20 23 74 6f 63 2d 63 56 61 53 74 61 72 74 22 3e 40 63 56 61 53 74 61 72 74 3c 2f 61 3e 20 3c 61 20 #toc-cVaStart">@cVaStart</a>.<a.
9ab40 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 56 61 53 74 61 72 74 22 3e c2 a7 3c class="hdr".href="#cVaStart">..<
9ab60 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e /a></h3>........<pre><code><span
9ab80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 56 61 53 74 61 72 74 3c 2f .class="tok-builtin">@cVaStart</
9aba0 73 70 61 6e 3e 28 29 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 56 61 4c 69 73 74 3c 2f 63 6f 64 65 span>().std.builtin.VaList</code
9abc0 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 6d 70 6c 65 6d 65 6e ></pre>.......<p>.......Implemen
9abe0 74 73 20 74 68 65 20 43 20 6d 61 63 72 6f 20 3c 63 6f 64 65 3e 76 61 5f 73 74 61 72 74 3c 2f 63 ts.the.C.macro.<code>va_start</c
9ac00 6f 64 65 3e 2e 20 4f 6e 6c 79 20 76 61 6c 69 64 20 69 6e 73 69 64 65 20 61 20 76 61 72 69 61 64 ode>..Only.valid.inside.a.variad
9ac20 69 63 20 66 75 6e 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 70 ic.function........</p>.......<p
9ac40 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="
9ac60 23 63 56 61 41 72 67 22 3e 40 63 56 61 41 72 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 #cVaArg">@cVaArg</a></li>.<li><a
9ac80 20 68 72 65 66 3d 22 23 63 56 61 43 6f 70 79 22 3e 40 63 56 61 43 6f 70 79 3c 2f 61 3e 3c 2f 6c .href="#cVaCopy">@cVaCopy</a></l
9aca0 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 56 61 45 6e 64 22 3e 40 63 56 61 45 6e 64 i>.<li><a.href="#cVaEnd">@cVaEnd
9acc0 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>................<
9ace0 68 33 20 69 64 3d 22 64 69 76 45 78 61 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 h3.id="divExact"><a.href="nav.xh
9ad00 74 6d 6c 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 tml#toc-divExact">@divExact</a>.
9ad20 3c 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 <a.class="hdr".href="#divExact">
9ad40 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 ..</a></h3>........<pre><code><s
9ad60 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 45 78 61 63 pan.class="tok-builtin">@divExac
9ad80 74 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 t</span>(numerator:.T,.denominat
9ada0 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 70 3e 0a or:.T).T</code></pre>.......<p>.
9adc0 20 20 20 20 20 20 45 78 61 63 74 20 64 69 76 69 73 69 6f 6e 2e 20 43 61 6c 6c 65 72 20 67 75 61 ......Exact.division..Caller.gua
9ade0 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 21 3d 20 3c 73 70 rantees.<code>denominator.!=.<sp
9ae00 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 3c 2f an.class="tok-number">0</span></
9ae20 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 code>.and...........<code><span.
9ae40 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 3c 2f 73 class="tok-builtin">@divTrunc</s
9ae60 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 2a 20 64 pan>(numerator,.denominator).*.d
9ae80 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 3e 2e 0a enominator.==.numerator</code>..
9aea0 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>...........
9aec0 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 <li><code><span.class="tok-built
9aee0 69 6e 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 in">@divExact</span>(<span.class
9af00 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 63 6c ="tok-number">6</span>,.<span.cl
9af20 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 3d 3d 20 3c 73 ass="tok-number">3</span>).==.<s
9af40 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 3c pan.class="tok-number">2</span><
9af60 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 3e /code></li>...........<li><code>
9af80 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 64 69 76 45 78 <span.class="tok-builtin">@divEx
9afa0 61 63 74 3c 2f 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 act</span>(a,.b).*.b.==.a</code>
9afc0 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 61 </li>.......</ul>.......<p>For.a
9afe0 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 6c .function.that.returns.a.possibl
9b000 65 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c e.error.code,.use.<code><span.cl
9b020 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>
9b040 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
9b060 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 61 63 74 3c 2f 63 6f &quot;</span>).math.divExact</co
9b080 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 6f 3a 3c 2f 70 3e 3c de>.</p>.......<p>See.also:</p><
9b0a0 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 63 22 3e 40 64 69 76 ul>.<li><a.href="#divTrunc">@div
9b0c0 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 66 3d 22 23 64 69 76 Trunc</a></li>.<li><a.href="#div
9b0e0 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 0a 3c 2f 75 6c 3e 0a Floor">@divFloor</a></li>.</ul>.
9b100 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 64 69 76 46 6c 6f 6f 72 22 3e ..............<h3.id="divFloor">
9b120 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 64 69 76 46 6c 6f 6f 72 22 <a.href="nav.xhtml#toc-divFloor"
9b140 3e 40 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 >@divFloor</a>.<a.class="hdr".hr
9b160 65 66 3d 22 23 64 69 76 46 6c 6f 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 ef="#divFloor">..</a></h3>......
9b180 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ..<pre><code><span.class="tok-bu
9b1a0 69 6c 74 69 6e 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 73 70 61 6e 3e 28 6e 75 6d 65 72 61 74 6f iltin">@divFloor</span>(numerato
9b1c0 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 3e 3c 2f r:.T,.denominator:.T).T</code></
9b1e0 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6c 6f 6f 72 65 64 20 64 69 76 pre>.......<p>.......Floored.div
9b200 69 73 69 6f 6e 2e 20 52 6f 75 6e 64 73 20 74 6f 77 61 72 64 20 6e 65 67 61 74 69 76 65 20 69 6e ision..Rounds.toward.negative.in
9b220 66 69 6e 69 74 79 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 69 74 finity..For.unsigned.integers.it
9b240 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 3e 6e 75 6d 65 .is.......the.same.as.<code>nume
9b260 72 61 74 6f 72 20 2f 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c rator./.denominator</code>..Call
9b280 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 er.guarantees.<code>denominator.
9b2a0 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 2f 73 !=.<span.class="tok-number">0</s
9b2c0 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 3c 63 pan></code>.and...............<c
9b2e0 6f 64 65 3e 21 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 ode>!(<span.class="tok-builtin">
9b300 40 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 54 29 20 3d 3d 20 2e 49 6e 74 20 3c 73 70 61 @typeInfo</span>(T).==..Int.<spa
9b320 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 54 2e 69 73 n.class="tok-kw">and</span>.T.is
9b340 5f 73 69 67 6e 65 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 _signed.<span.class="tok-kw">and
9b360 3c 2f 73 70 61 6e 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 </span>.numerator.==.std.math.mi
9b380 6e 49 6e 74 28 54 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 nInt(T).<span.class="tok-kw">and
9b3a0 3c 2f 73 70 61 6e 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 </span>.denominator.==.-<span.cl
9b3c0 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 3c 2f 63 6f 64 65 ass="tok-number">1</span>)</code
9b3e0 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>........
9b400 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ...<li><code><span.class="tok-bu
9b420 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 73 70 61 6e 20 63 iltin">@divFloor</span>(-<span.c
9b440 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
9b460 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 3d n.class="tok-number">3</span>).=
9b480 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 2f 73 =.-<span.class="tok-number">2</s
9b4a0 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 3c pan></code></li>...........<li><
9b4c0 63 6f 64 65 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 code>(<span.class="tok-builtin">
9b4e0 40 64 69 76 46 6c 6f 6f 72 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 20 2a 20 62 29 20 2b 20 3c 73 @divFloor</span>(a,.b).*.b).+.<s
9b500 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 2f 73 70 pan.class="tok-builtin">@mod</sp
9b520 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 3e 0a 20 20 20 20 20 an>(a,.b).==.a</code></li>......
9b540 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 74 69 6f 6e 20 74 .</ul>.......<p>For.a.function.t
9b560 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 6f 72 20 63 6f 64 hat.returns.a.possible.error.cod
9b580 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 e,.use.<code><span.class="tok-bu
9b5a0 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
9b5c0 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
9b5e0 6e 3e 29 2e 6d 61 74 68 2e 64 69 76 46 6c 6f 6f 72 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 n>).math.divFloor</code>.</p>...
9b600 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.
9b620 68 72 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 href="#divTrunc">@divTrunc</a></
9b640 6c 69 3e 0a 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 li>.<li><a.href="#divExact">@div
9b660 45 78 61 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 20 20 20 Exact</a></li>.</ul>............
9b680 20 20 20 3c 68 33 20 69 64 3d 22 64 69 76 54 72 75 6e 63 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 ...<h3.id="divTrunc"><a.href="na
9b6a0 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c v.xhtml#toc-divTrunc">@divTrunc<
9b6c0 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 64 69 76 54 72 75 /a>.<a.class="hdr".href="#divTru
9b6e0 6e 63 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 nc">..</a></h3>........<pre><cod
9b700 65 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 64 69 76 e><span.class="tok-builtin">@div
9b720 54 72 75 6e 63 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 Trunc</span>(numerator:.T,.denom
9b740 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 0a 20 20 20 20 20 20 inator:.T).T</code></pre>.......
9b760 3c 70 3e 0a 20 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 <p>.......Truncated.division..Ro
9b780 75 6e 64 73 20 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 unds.toward.zero..For.unsigned.i
9b7a0 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.
9b7c0 3c 63 6f 64 65 3e 6e 75 6d 65 72 61 74 6f 72 20 2f 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 <code>numerator./.denominator</c
9b7e0 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 6f 64 65 3e 64 65 ode>..Caller.guarantees.<code>de
9b800 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 22 74 6f 6b 2d 6e 75 nominator.!=.<span.class="tok-nu
9b820 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 0a 20 20 20 20 20 20 mber">0</span></code>.and.......
9b840 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 21 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ........<code>!(<span.class="tok
9b860 2d 62 75 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 20 3d 3d -builtin">@typeInfo</span>(T).==
9b880 20 2e 49 6e 74 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 ..Int.<span.class="tok-kw">and</
9b8a0 73 70 61 6e 3e 20 54 2e 69 73 5f 73 69 67 6e 65 64 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 span>.T.is_signed.<span.class="t
9b8c0 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 6e 75 6d 65 72 61 74 6f 72 20 3d 3d 20 73 ok-kw">and</span>.numerator.==.s
9b8e0 74 64 2e 6d 61 74 68 2e 6d 69 6e 49 6e 74 28 54 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 td.math.minInt(T).<span.class="t
9b900 6f 6b 2d 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 3d 3d ok-kw">and</span>.denominator.==
9b920 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 73 70 .-<span.class="tok-number">1</sp
9b940 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 75 an>)</code>........</p>.......<u
9b960 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 l>...........<li><code><span.cla
9b980 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 3c 2f 73 70 61 6e ss="tok-builtin">@divTrunc</span
9b9a0 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 3e 35 3c 2f 73 >(-<span.class="tok-number">5</s
9b9c0 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
9b9e0 3c 2f 73 70 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 </span>).==.-<span.class="tok-nu
9ba00 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 20 20 20 20 mber">1</span></code></li>......
9ba20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<li><code>(<span.class="tok
9ba40 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 62 29 -builtin">@divTrunc</span>(a,.b)
9ba60 20 2a 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 .*.b).+.<span.class="tok-builtin
9ba80 22 3e 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 ">@rem</span>(a,.b).==.a</code><
9baa0 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 61 20 /li>.......</ul>.......<p>For.a.
9bac0 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 6c 65 function.that.returns.a.possible
9bae0 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 .error.code,.use.<code><span.cla
9bb00 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>(
9bb20 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&
9bb40 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 64 69 76 54 72 75 6e 63 3c 2f 63 6f 64 quot;</span>).math.divTrunc</cod
9bb60 65 3e 2e 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 e>.</p>.......<p>See.also:</p><u
9bb80 6c 3e 0a 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 76 46 l>.<li><a.href="#divFloor">@divF
9bba0 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 45 loor</a></li>.<li><a.href="#divE
9bbc0 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a xact">@divExact</a></li>.</ul>..
9bbe0 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 65 6d 62 65 64 46 69 6c 65 22 ..............<h3.id="embedFile"
9bc00 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 6d 62 65 64 46 69 6c ><a.href="nav.xhtml#toc-embedFil
9bc20 65 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 e">@embedFile</a>.<a.class="hdr"
9bc40 20 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 33 3e 0a 0a .href="#embedFile">..</a></h3>..
9bc60 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
9bc80 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 k-builtin">@embedFile</span>(<sp
9bca0 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
9bcc0 3e 20 70 61 74 68 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 >.path:.[]<span.class="tok-kw">c
9bce0 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
9bd00 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d e">u8</span>).*<span.class="tok-
9bd20 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 5b 4e 3a 3c 73 70 61 6e 20 63 6c 61 73 73 3d kw">const</span>.[N:<span.class=
9bd40 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 "tok-number">0</span>]<span.clas
9bd60 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 65 3e 3c 2f 70 s="tok-type">u8</span></code></p
9bd80 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
9bda0 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 6f 6e 73 74 61 6e n.returns.a.compile.time.constan
9bdc0 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 6e 75 6c 6c 2d 74 65 72 6d 69 6e 61 74 65 64 2c 0a 20 20 t.pointer.to.null-terminated,...
9bde0 20 20 20 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 6e 67 74 68 ....fixed-size.array.with.length
9be00 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 62 79 74 65 20 63 6f 75 6e 74 20 6f 66 20 74 68 65 20 .equal.to.the.byte.count.of.the.
9be20 66 69 6c 65 20 67 69 76 65 6e 20 62 79 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 70 61 74 68 3c 2f file.given.by.......<code>path</
9be40 63 6f 64 65 3e 2e 20 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 61 72 72 61 79 code>..The.contents.of.the.array
9be60 20 61 72 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 66 69 6c 65 2e 0a 20 .are.the.contents.of.the.file...
9be80 20 20 20 20 20 54 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 61 20 3c 61 20 .....This.is.equivalent.to.a.<a.
9bea0 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 2d 55 6e 69 63 6f href="#String-Literals-and-Unico
9bec0 64 65 2d 43 6f 64 65 2d 50 6f 69 6e 74 2d 4c 69 74 65 72 61 6c 73 22 3e 73 74 72 69 6e 67 20 6c de-Code-Point-Literals">string.l
9bee0 69 74 65 72 61 6c 3c 2f 61 3e 0a 20 20 20 20 20 20 77 69 74 68 20 74 68 65 20 66 69 6c 65 20 63 iteral</a>.......with.the.file.c
9bf00 6f 6e 74 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 0a 20 20 ontents........</p>.......<p>...
9bf20 20 20 20 20 3c 63 6f 64 65 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 20 69 73 20 61 62 73 6f 6c 75 74 ....<code>path</code>.is.absolut
9bf40 65 20 6f 72 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c e.or.relative.to.the.current.fil
9bf60 65 2c 20 6a 75 73 74 20 6c 69 6b 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 e,.just.like.<code><span.class="
9bf80 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 6f 64 tok-builtin">@import</span></cod
9bfa0 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 6f e>........</p>.......<p>See.also
9bfc0 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 72 74 22 3e :</p><ul>.<li><a.href="#import">
9bfe0 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 20 20 0a 0a @import</a></li>.</ul>..........
9c000 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 65 6e 75 6d 46 72 6f 6d 49 6e 74 22 3e 3c 61 20 68 72 ......<h3.id="enumFromInt"><a.hr
9c020 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 6e 75 6d 46 72 6f 6d 49 6e 74 22 3e 40 ef="nav.xhtml#toc-enumFromInt">@
9c040 65 6e 75 6d 46 72 6f 6d 49 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 enumFromInt</a>.<a.class="hdr".h
9c060 72 65 66 3d 22 23 65 6e 75 6d 46 72 6f 6d 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a ref="#enumFromInt">..</a></h3>..
9c080 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
9c0a0 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 6e 75 6d 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 69 k-builtin">@enumFromInt</span>(i
9c0c0 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 61 6e 79 nteger:.<span.class="tok-kw">any
9c0e0 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 2d 6b 77 type</span>).<span.class="tok-kw
9c100 22 3e 61 6e 79 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 ">anytype</span></code></pre>...
9c120 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 67 65 ....<p>.......Converts.an.intege
9c140 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 3c 2f r.into.an.<a.href="#enum">enum</
9c160 61 3e 20 76 61 6c 75 65 2e 20 54 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 74 68 65 a>.value..The.return.type.is.the
9c180 20 69 6e 66 65 72 72 65 64 20 72 65 73 75 6c 74 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 .inferred.result.type........</p
9c1a0 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 20 74 6f 20 >.......<p>.......Attempting.to.
9c1c0 63 6f 6e 76 65 72 74 20 61 6e 20 69 6e 74 65 67 65 72 20 77 68 69 63 68 20 72 65 70 72 65 73 65 convert.an.integer.which.represe
9c1e0 6e 74 73 20 6e 6f 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 63 68 6f 73 65 6e 20 65 6e 75 6d 20 nts.no.value.in.the.chosen.enum.
9c200 74 79 70 65 20 69 6e 76 6f 6b 65 73 0a 20 20 20 20 20 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 type.invokes.......safety-checke
9c220 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">
9c240 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>........</
9c260 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
9c280 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 45 6e 75 6d 22 3e 40 69 6e 74 46 72 6f i><a.href="#intFromEnum">@intFro
9c2a0 6d 45 6e 75 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 mEnum</a></li>.</ul>............
9c2c0 20 20 20 20 3c 68 33 20 69 64 3d 22 65 72 72 6f 72 46 72 6f 6d 49 6e 74 22 3e 3c 61 20 68 72 65 ....<h3.id="errorFromInt"><a.hre
9c2e0 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 72 72 6f 72 46 72 6f 6d 49 6e 74 22 3e 40 f="nav.xhtml#toc-errorFromInt">@
9c300 65 72 72 6f 72 46 72 6f 6d 49 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 errorFromInt</a>.<a.class="hdr".
9c320 68 72 65 66 3d 22 23 65 72 72 6f 72 46 72 6f 6d 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e href="#errorFromInt">..</a></h3>
9c340 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ........<pre><code><span.class="
9c360 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e tok-builtin">@errorFromInt</span
9c380 3e 28 76 61 6c 75 65 3a 20 73 74 64 2e 6d 65 74 61 2e 49 6e 74 28 2e 75 6e 73 69 67 6e 65 64 2c >(value:.std.meta.Int(.unsigned,
9c3a0 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 69 74 53 .<span.class="tok-builtin">@bitS
9c3c0 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 79 izeOf</span>(<span.class="tok-ty
9c3e0 70 65 22 3e 61 6e 79 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 29 29 29 20 3c 73 70 61 6e 20 63 6c 61 pe">anyerror</span>))).<span.cla
9c400 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 2f 63 ss="tok-type">anyerror</span></c
9c420 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
9c440 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 61 74 rts.from.the.integer.representat
9c460 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 23 54 ion.of.an.error.into.<a.href="#T
9c480 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 6c 20 he-Global-Error-Set">The.Global.
9c4a0 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 0a 20 Error.Set</a>.type........</p>..
9c4c0 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 72 .....<p>.......It.is.generally.r
9c4e0 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 63 ecommended.to.avoid.this.......c
9c500 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 69 ast,.as.the.integer.representati
9c520 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 72 on.of.an.error.is.not.stable.acr
9c540 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 3c oss.source.code.changes........<
9c560 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 20 74 /p>.......<p>.......Attempting.t
9c580 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 20 6e o.convert.an.integer.that.does.n
9c5a0 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 75 6c ot.correspond.to.any.error.resul
9c5c0 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 61 20 ts.in.......safety-protected.<a.
9c5e0 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 66 href="#Undefined-Behavior">Undef
9c600 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 20 ined.Behavior</a>........</p>...
9c620 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.
9c640 68 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 45 72 72 6f 72 22 3e 40 69 6e 74 46 72 6f 6d 45 72 72 href="#intFromError">@intFromErr
9c660 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 20 20 20 or</a></li>.</ul>...............
9c680 20 3c 68 33 20 69 64 3d 22 65 72 72 6f 72 4e 61 6d 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 .<h3.id="errorName"><a.href="nav
9c6a0 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 72 72 6f 72 4e 61 6d 65 22 3e 40 65 72 72 6f 72 4e 61 6d 65 .xhtml#toc-errorName">@errorName
9c6c0 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 72 </a>.<a.class="hdr".href="#error
9c6e0 4e 61 6d 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 Name">..</a></h3>........<pre><c
9c700 6f 64 65 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 ode><span.class="tok-builtin">@e
9c720 72 72 6f 72 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 65 72 72 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 rrorName</span>(err:.<span.class
9c740 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 29 20 5b 3a 3c ="tok-type">anyerror</span>).[:<
9c760 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>
9c780 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 61 ]<span.class="tok-kw">const</spa
9c7a0 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 70 n>.<span.class="tok-type">u8</sp
9c7c0 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 20 an></code></pre>.......<p>......
9c7e0 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 20 73 74 72 69 6e .This.function.returns.the.strin
9c800 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 72 72 6f 72 2e 20 54 68 g.representation.of.an.error..Th
9c820 65 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 20 20 6f 66 e.string.representation.......of
9c840 20 3c 63 6f 64 65 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 .<code><span.class="tok-kw">erro
9c860 72 3c 2f 73 70 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 r</span>.OutOfMem</code>.is.<cod
9c880 65 3e 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 4f 75 e><span.class="tok-str">&quot;Ou
9c8a0 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 3e 2e 0a 20 20 20 20 tOfMem&quot;</span></code>......
9c8c0 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 65 20 ..</p>.......<p>.......If.there.
9c8e0 61 72 65 20 6e 6f 20 63 61 6c 6c 73 20 74 6f 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 are.no.calls.to.<code><span.clas
9c900 73 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 s="tok-builtin">@errorName</span
9c920 3e 3c 2f 63 6f 64 65 3e 20 69 6e 20 61 6e 20 65 6e 74 69 72 65 20 61 70 70 6c 69 63 61 74 69 6f ></code>.in.an.entire.applicatio
9c940 6e 2c 0a 20 20 20 20 20 20 6f 72 20 61 6c 6c 20 63 61 6c 6c 73 20 68 61 76 65 20 61 20 63 6f 6d n,.......or.all.calls.have.a.com
9c960 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 20 76 61 6c 75 65 20 66 6f 72 20 3c 63 6f 64 65 3e pile-time.known.value.for.<code>
9c980 65 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 err</code>,.then.no.......error.
9c9a0 6e 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 name.table.will.be.generated....
9c9c0 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 33 20 69 64 3d 22 65 ....</p>...............<h3.id="e
9c9e0 72 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 6e 61 76 2e 78 68 rrorReturnTrace"><a.href="nav.xh
9ca00 74 6d 6c 23 74 6f 63 2d 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 22 3e 40 65 72 72 6f 72 tml#toc-errorReturnTrace">@error
9ca20 52 65 74 75 72 6e 54 72 61 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 ReturnTrace</a>.<a.class="hdr".h
9ca40 72 65 66 3d 22 23 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f ref="#errorReturnTrace">..</a></
9ca60 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 h3>........<pre><code><span.clas
9ca80 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 61 63 s="tok-builtin">@errorReturnTrac
9caa0 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 65 3c e</span>().?*builtin.StackTrace<
9cac0 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 66 20 /code></pre>.......<p>.......If.
9cae0 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 20 72 the.binary.is.built.with.error.r
9cb00 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 6f 6e eturn.tracing,.and.this.function
9cb20 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 6e 20 .is.invoked.in.a.......function.
9cb40 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 65 72 that.calls.a.function.with.an.er
9cb60 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 2c 20 ror.or.error.union.return.type,.
9cb80 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 6a 65 returns.a.......stack.trace.obje
9cba0 63 74 2e 20 4f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 61 20 68 72 65 66 3d 22 23 ct..Otherwise.returns.<a.href="#
9cbc0 6e 75 6c 6c 22 3e 6e 75 6c 6c 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 null">null</a>........</p>......
9cbe0 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 65 72 72 6f 72 43 61 73 74 22 3e 3c 61 20 68 .........<h3.id="errorCast"><a.h
9cc00 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 72 72 6f 72 43 61 73 74 22 3e 40 65 ref="nav.xhtml#toc-errorCast">@e
9cc20 72 72 6f 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 68 72 65 66 rrorCast</a>.<a.class="hdr".href
9cc40 3d 22 23 65 72 72 6f 72 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 ="#errorCast">..</a></h3>.......
9cc60 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 .<pre><code><span.class="tok-bui
9cc80 6c 74 69 6e 22 3e 40 65 72 72 6f 72 43 61 73 74 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c ltin">@errorCast</span>(value:.<
9cca0 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 span.class="tok-kw">anytype</spa
9ccc0 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 61 6e 79 74 79 70 65 n>).<span.class="tok-kw">anytype
9cce0 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>..
9cd00 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 65 72 72 6f 72 20 73 65 74 20 6f 72 20 65 72 .....Converts.an.error.set.or.er
9cd20 72 6f 72 20 75 6e 69 6f 6e 20 76 61 6c 75 65 20 66 72 6f 6d 20 6f 6e 65 20 65 72 72 6f 72 20 73 ror.union.value.from.one.error.s
9cd40 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 54 68 65 20 72 65 74 et.to.another.error.set..The.ret
9cd60 75 72 6e 20 74 79 70 65 20 69 73 20 74 68 65 0a 09 09 09 69 6e 66 65 72 72 65 64 20 72 65 73 75 urn.type.is.the....inferred.resu
9cd80 6c 74 20 74 79 70 65 2e 20 41 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 lt.type..Attempting.to.convert.a
9cda0 6e 20 65 72 72 6f 72 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 n.error.which.is.not.in.the.dest
9cdc0 69 6e 61 74 69 6f 6e 20 65 72 72 6f 72 0a 09 09 09 73 65 74 20 72 65 73 75 6c 74 73 20 69 6e 20 ination.error....set.results.in.
9cde0 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 55 6e 64 65 66 safety-protected.<a.href="#Undef
9ce00 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
9ce20 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 20 r</a>........</p>...............
9ce40 3c 68 33 20 69 64 3d 22 65 78 70 6f 72 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 <h3.id="export"><a.href="nav.xht
9ce60 6d 6c 23 74 6f 63 2d 65 78 70 6f 72 74 22 3e 40 65 78 70 6f 72 74 3c 2f 61 3e 20 3c 61 20 63 6c ml#toc-export">@export</a>.<a.cl
9ce80 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 65 78 70 6f 72 74 22 3e c2 a7 3c 2f 61 3e 3c ass="hdr".href="#export">..</a><
9cea0 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /h3>........<pre><code><span.cla
9cec0 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 61 6e 3e 28 ss="tok-builtin">@export</span>(
9cee0 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 declaration,.<span.class="tok-kw
9cf00 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6f 70 74 69 6f 6e 73 3a 20 73 74 64 2e 62 ">comptime</span>.options:.std.b
9cf20 75 69 6c 74 69 6e 2e 45 78 70 6f 72 74 4f 70 74 69 6f 6e 73 29 20 3c 73 70 61 6e 20 63 6c 61 73 uiltin.ExportOptions).<span.clas
9cf40 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 3c s="tok-type">void</span></code><
9cf60 2f 70 72 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 /pre>.......<p>.......Creates.a.
9cf80 73 79 6d 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 symbol.in.the.output.object.file
9cfa0 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 6f ........</p>.......<p>.......<co
9cfc0 64 65 3e 64 65 63 6c 61 72 61 74 69 6f 6e 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 6f 6e de>declaration</code>.must.be.on
9cfe0 65 20 6f 66 20 74 77 6f 20 74 68 69 6e 67 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 e.of.two.things:.......</p>.....
9d000 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6e 20 69 64 65 6e 74 69 66 69 65 72 ..<ul>.........<li>An.identifier
9d020 20 28 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 29 20 69 64 65 6e 74 69 66 79 69 6e 67 20 61 20 .(<code>x</code>).identifying.a.
9d040 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e 66 75 6e 63 74 69 6f 6e 3c 2f 61 <a.href="#Functions">function</a
9d060 3e 20 6f 72 20 61 0a 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 43 6f 6e 74 61 >.or.a...........<a.href="#Conta
9d080 69 6e 65 72 2d 4c 65 76 65 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 76 61 72 69 61 62 6c 65 3c 2f iner-Level-Variables">variable</
9d0a0 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 69 65 6c 64 20 61 63 63 65 73 a>.</li>.........<li>Field.acces
9d0c0 73 20 28 3c 63 6f 64 65 3e 78 2e 79 3c 2f 63 6f 64 65 3e 29 20 6c 6f 6f 6b 69 6e 67 20 75 70 20 s.(<code>x.y</code>).looking.up.
9d0e0 61 20 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e 66 75 6e 63 74 69 6f 6e 3c a.<a.href="#Functions">function<
9d100 2f 61 3e 20 6f 72 20 61 0a 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 43 6f 6e /a>.or.a...........<a.href="#Con
9d120 74 61 69 6e 65 72 2d 4c 65 76 65 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 76 61 72 69 61 62 6c 65 tainer-Level-Variables">variable
9d140 3c 2f 61 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 3e </a>.</li>.......</ul>.......<p>
9d160 0a 20 20 20 20 20 20 54 68 69 73 20 62 75 69 6c 74 69 6e 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 .......This.builtin.can.be.calle
9d180 64 20 66 72 6f 6d 20 61 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d d.from.a.<a.href="#comptime">com
9d1a0 70 74 69 6d 65 3c 2f 61 3e 20 62 6c 6f 63 6b 20 74 6f 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 ptime</a>.block.to.conditionally
9d1c0 20 65 78 70 6f 72 74 20 73 79 6d 62 6f 6c 73 2e 0a 20 20 20 20 20 20 57 68 65 6e 20 3c 63 6f 64 .export.symbols........When.<cod
9d1e0 65 3e 64 65 63 6c 61 72 61 74 69 6f 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 66 75 6e 63 74 69 e>declaration</code>.is.a.functi
9d200 6f 6e 20 77 69 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 on.with.the.C.calling.convention
9d220 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 6f 70 74 69 6f 6e 73 2e 6c 69 6e 6b 61 67 65 .and.......<code>options.linkage
9d240 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 53 74 72 6f 6e 67 3c 2f 63 6f 64 65 3e 2c 20 </code>.is.<code>Strong</code>,.
9d260 74 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 0a 20 20 20 20 20 20 74 68 65 20 this.is.equivalent.to.......the.
9d280 3c 63 6f 64 65 3e 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 <code><span.class="tok-kw">expor
9d2a0 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 75 73 65 64 20 6f 6e 20 t</span></code>.keyword.used.on.
9d2c0 61 20 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 66 69 a.function:.......</p>.......<fi
9d2e0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 gure><figcaption.class="zig-cap"
9d300 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 65 78 70 6f 72 74 5f 62 75 69 6c 74 ><cite.class="file">export_built
9d320 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c in.zig</cite></figcaption><pre><
9d340 63 6f 64 65 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 code><span.class="tok-kw">compti
9d360 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 6b me</span>.{.....<span.class="tok
9d380 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 69 6e 74 65 72 6e 61 -builtin">@export</span>(interna
9d3a0 6c 4e 61 6d 65 2c 20 2e 7b 20 2e 6e 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 lName,..{..name.=.<span.class="t
9d3c0 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 2c 20 ok-str">&quot;foo&quot;</span>,.
9d3e0 2e 6c 69 6e 6b 61 67 65 20 3d 20 2e 73 74 72 6f 6e 67 20 7d 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 .linkage.=..strong.});.}..<span.
9d400 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
9d420 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 69 6e 74 65 72 6e 61 6c 4e 61 6d 65 3c 2f 73 70 61 6e lass="tok-fn">internalName</span
9d440 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 63 61 6c 6c 63 6f 6e >().<span.class="tok-kw">callcon
9d460 76 3c 2f 73 70 61 6e 3e 28 2e 43 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 v</span>(.C).<span.class="tok-ty
9d480 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 3e 3c pe">void</span>.{}</code></pre><
9d4a0 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 /figure><figure><figcaption.clas
9d4c0 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e s="shell-cap">Shell</figcaption>
9d4e0 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 <pre><samp>$.<kbd>zig.build-obj.
9d500 65 78 70 6f 72 74 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e export_builtin.zig</kbd>.</samp>
9d520 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 </pre></figure>.......<p>This.is
9d540 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 .equivalent.to:</p>.......<figur
9d560 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
9d580 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 65 78 70 6f 72 74 5f 62 75 69 6c 74 69 6e 5f ite.class="file">export_builtin_
9d5a0 65 71 75 69 76 61 6c 65 6e 74 5f 63 6f 64 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 equivalent_code.zig</cite></figc
9d5c0 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 aption><pre><code><span.class="t
9d5e0 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
9d600 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=
9d620 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 6c 61 73 "tok-fn">foo</span>().<span.clas
9d640 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 6f 64 s="tok-type">void</span>.{}</cod
9d660 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
9d680 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
9d6a0 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 gcaption><pre><samp>$.<kbd>zig.b
9d6c0 75 69 6c 64 2d 6f 62 6a 20 65 78 70 6f 72 74 5f 62 75 69 6c 74 69 6e 5f 65 71 75 69 76 61 6c 65 uild-obj.export_builtin_equivale
9d6e0 6e 74 5f 63 6f 64 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c nt_code.zig</kbd>.</samp></pre><
9d700 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20 65 76 65 6e /figure>.......<p>Note.that.even
9d720 20 77 68 65 6e 20 75 73 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .when.using.<code><span.class="t
9d740 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 ok-kw">export</span></code>,.the
9d760 20 3c 63 6f 64 65 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 .<code>@&quot;foo&quot;</code>.s
9d780 79 6e 74 61 78 20 66 6f 72 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 49 64 65 6e 74 69 yntax.for.......<a.href="#Identi
9d7a0 66 69 65 72 73 22 3e 69 64 65 6e 74 69 66 69 65 72 73 3c 2f 61 3e 20 63 61 6e 20 62 65 20 75 73 fiers">identifiers</a>.can.be.us
9d7c0 65 64 20 74 6f 20 63 68 6f 6f 73 65 20 61 6e 79 20 73 74 72 69 6e 67 20 66 6f 72 20 74 68 65 20 ed.to.choose.any.string.for.the.
9d7e0 73 79 6d 62 6f 6c 20 6e 61 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c symbol.name:</p>.......<figure><
9d800 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
9d820 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 65 78 70 6f 72 74 5f 61 6e 79 5f 73 79 6d 62 6f 6c 5f .class="file">export_any_symbol_
9d840 6e 61 6d 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 name.zig</cite></figcaption><pre
9d860 3e 3c 63 6f 64 65 3e 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 ><code><span.class="tok-kw">expo
9d880 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
9d8a0 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 40 26 n</span>.<span.class="tok-fn">@&
9d8c0 71 75 6f 74 3b 41 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 74 68 61 74 20 69 73 20 61 20 63 quot;A.function.name.that.is.a.c
9d8e0 6f 6d 70 6c 65 74 65 20 73 65 6e 74 65 6e 63 65 2e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 28 29 omplete.sentence.&quot;</span>()
9d900 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 70 .<span.class="tok-type">void</sp
9d920 61 6e 3e 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 an>.{}</code></pre></figure><fig
9d940 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 ure><figcaption.class="shell-cap
9d960 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 ">Shell</figcaption><pre><samp>$
9d980 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 65 78 70 6f 72 74 5f 61 6e 79 5f 73 .<kbd>zig.build-obj.export_any_s
9d9a0 79 6d 62 6f 6c 5f 6e 61 6d 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 ymbol_name.zig</kbd>.</samp></pr
9d9c0 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e e></figure>.......<p>.......When
9d9e0 20 6c 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 .looking.at.the.resulting.object
9da00 2c 20 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 ,.you.can.see.the.symbol.is.used
9da20 20 76 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 .verbatim:.......</p>.......<pre
9da40 3e 3c 63 6f 64 65 3e 30 30 30 30 30 30 30 30 30 30 30 30 30 31 66 30 20 54 20 41 20 66 75 6e 63 ><code>00000000000001f0.T.A.func
9da60 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 65 6e tion.name.that.is.a.complete.sen
9da80 74 65 6e 63 65 2e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 tence.</code></pre>.......<p>See
9daa0 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 45 78 70 .also:</p><ul>.<li><a.href="#Exp
9dac0 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 69 6e 67 20 61 20 orting-a-C-Library">Exporting.a.
9dae0 43 20 4c 69 62 72 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 C.Library</a></li>.</ul>........
9db00 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 65 78 74 65 72 6e 22 3e 3c 61 20 68 72 65 66 3d ........<h3.id="extern"><a.href=
9db20 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 78 74 65 72 6e 22 3e 40 65 78 74 65 72 6e 3c 2f "nav.xhtml#toc-extern">@extern</
9db40 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 74 65 72 6e 22 a>.<a.class="hdr".href="#extern"
9db60 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c >..</a></h3>........<pre><code><
9db80 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 78 74 65 72 6e span.class="tok-builtin">@extern
9dba0 3c 2f 73 70 61 6e 3e 28 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
9dbc0 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 2d ">type</span>,.<span.class="tok-
9dbe0 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6f 70 74 69 6f 6e 73 3a 20 73 74 64 kw">comptime</span>.options:.std
9dc00 2e 62 75 69 6c 74 69 6e 2e 45 78 74 65 72 6e 4f 70 74 69 6f 6e 73 29 20 54 3c 2f 63 6f 64 65 3e .builtin.ExternOptions).T</code>
9dc20 3c 2f 70 72 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 </pre>.......<p>.......Creates.a
9dc40 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 73 79 6d 62 6f 6c .reference.to.an.external.symbol
9dc60 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 20 20 20 .in.the.output.object.file......
9dc80 20 20 54 20 6d 75 73 74 20 62 65 20 61 20 70 6f 69 6e 74 65 72 20 74 79 70 65 2e 0a 20 20 20 20 ..T.must.be.a.pointer.type......
9dca0 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 6c ..</p>.......<p>See.also:</p><ul
9dcc0 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 78 70 6f 72 74 22 3e 40 65 78 70 6f 72 74 3c >.<li><a.href="#export">@export<
9dce0 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 68 /a></li>.</ul>................<h
9dd00 33 20 69 64 3d 22 66 65 6e 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 3.id="fence"><a.href="nav.xhtml#
9dd20 74 6f 63 2d 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 toc-fence">@fence</a>.<a.class="
9dd40 68 64 72 22 20 68 72 65 66 3d 22 23 66 65 6e 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a hdr".href="#fence">..</a></h3>..
9dd60 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
9dd80 6b 2d 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 k-builtin">@fence</span>(order:.
9dda0 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 AtomicOrder).<span.class="tok-ty
9ddc0 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 65 3e 0a 20 20 20 pe">void</span></code></pre>....
9dde0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 66 65 6e 63 65 3c 2f 63 6f ...<p>.......The.<code>fence</co
9de00 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 6e 74 72 6f 64 75 63 de>.function.is.used.to.introduc
9de20 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 74 77 65 65 6e 20 6f e.happens-before.edges.between.o
9de40 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 20 20 20 3c 70 3e 3c perations........</p>.......<p><
9de60 63 6f 64 65 3e 41 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 code>AtomicOrder</code>.can.be.f
9de80 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ound.with.<code><span.class="tok
9dea0 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
9dec0 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;</
9dee0 73 70 61 6e 3e 29 2e 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 65 span>).builtin.AtomicOrder</code
9df00 3e 2e 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 >.</p>.......<p>See.also:</p><ul
9df20 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 53 74 6f 72 65 22 3e 40 61 74 >.<li><a.href="#atomicStore">@at
9df40 6f 6d 69 63 53 74 6f 72 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 omicStore</a></li>.<li><a.href="
9df60 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 2f 61 3e 3c 2f 6c 69 #atomicLoad">@atomicLoad</a></li
9df80 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 74 6f 6d 69 63 52 6d 77 22 3e 40 61 74 6f 6d >.<li><a.href="#atomicRmw">@atom
9dfa0 69 63 52 6d 77 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 icRmw</a></li>.<li><a.href="#cmp
9dfc0 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 3c 2f 6c 69 3e 0a xchgWeak">@cmpxchgWeak</a></li>.
9dfe0 3c 6c 69 3e 3c 61 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 <li><a.href="#cmpxchgStrong">@cm
9e000 70 78 63 68 67 53 74 72 6f 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 pxchgStrong</a></li>.</ul>......
9e020 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 66 69 65 6c 64 22 3e 3c 61 20 68 72 65 66 ..........<h3.id="field"><a.href
9e040 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 66 69 65 6c 64 22 3e 40 66 69 65 6c 64 3c 2f 61 ="nav.xhtml#toc-field">@field</a
9e060 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 65 6c 64 22 3e c2 >.<a.class="hdr".href="#field">.
9e080 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 .</a></h3>........<pre><code><sp
9e0a0 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 3c 2f 73 an.class="tok-builtin">@field</s
9e0c0 70 61 6e 3e 28 6c 68 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 pan>(lhs:.<span.class="tok-kw">a
9e0e0 6e 79 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 2d nytype</span>,.<span.class="tok-
9e100 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 kw">comptime</span>.field_name:.
9e120 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
9e140 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
9e160 70 61 6e 3e 29 20 28 66 69 65 6c 64 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 pan>).(field)</code></pre>......
9e180 20 3c 70 3e 50 65 72 66 6f 72 6d 73 20 66 69 65 6c 64 20 61 63 63 65 73 73 20 62 79 20 61 20 63 .<p>Performs.field.access.by.a.c
9e1a0 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 73 74 72 69 6e 67 2e 20 57 6f 72 6b 73 20 6f 6e 20 62 6f 74 ompile-time.string..Works.on.bot
9e1c0 68 20 66 69 65 6c 64 73 20 61 6e 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 h.fields.and.declarations.......
9e1e0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 .</p>.......<figure><figcaption.
9e200 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c class="zig-cap"><cite.class="fil
9e220 65 22 3e 74 65 73 74 5f 66 69 65 6c 64 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e e">test_field_builtin.zig</cite>
9e240 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
9e260 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.=.
9e280 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
9e2a0 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">&
9e2c0 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 20 63 quot;std&quot;</span>);..<span.c
9e2e0 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
9e300 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</
9e320 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-
9e340 74 79 70 65 22 3e 75 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">u32</span>,.....y:.<span.c
9e360 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 0a 20 20 20 lass="tok-type">u32</span>,.....
9e380 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>
9e3a0 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>
9e3c0 20 7a 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 .z:.<span.class="tok-type">u32</
9e3e0 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"
9e400 3e 31 3c 2f 73 70 61 6e 3e 3b 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d >1</span>;.};..<span.class="tok-
9e420 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
9e440 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 72 69 -str">&quot;field.access.by.stri
9e460 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 73 ng&quot;</span>.{.....<span.clas
9e480 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 70 65 63 74 20 3d s="tok-kw">const</span>.expect.=
9e4a0 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 .std.testing.expect;.....<span.c
9e4c0 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
9e4e0 6e 74 7b 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 nt{..x.=.<span.class="tok-number
9e500 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
9e520 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 0a 20 20 20 20 3c 73 70 61 6e k-number">0</span>.};......<span
9e540 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
9e560 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
9e580 74 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 t;x&quot;</span>).=.<span.class=
9e5a0 22 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 "tok-number">4</span>;.....<span
9e5c0 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
9e5e0 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
9e600 74 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 t;y&quot;</span>).=.<span.class=
9e620 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 3e 28 70 2c 20 3c "tok-builtin">@field</span>(p,.<
9e640 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 78 26 71 75 6f span.class="tok-str">&quot;x&quo
9e660 74 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 t;</span>).+.<span.class="tok-nu
9e680 6d 62 65 72 22 3e 31 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 mber">1</span>;......<span.class
9e6a0 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 ="tok-kw">try</span>.expect(<spa
9e6c0 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 3c 2f 73 70 n.class="tok-builtin">@field</sp
9e6e0 61 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 an>(p,.<span.class="tok-str">&qu
9e700 6f 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 ot;x&quot;</span>).==.<span.clas
9e720 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 20 20 20 20 3c 73 s="tok-number">4</span>);.....<s
9e740 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 65 78 pan.class="tok-kw">try</span>.ex
9e760 70 65 63 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 pect(<span.class="tok-builtin">@
9e780 66 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 field</span>(p,.<span.class="tok
9e7a0 2d 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 -str">&quot;y&quot;</span>).==.<
9e7c0 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>
9e7e0 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<
9e800 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
9e820 6f 74 3b 64 65 63 6c 20 61 63 63 65 73 73 20 62 79 20 73 74 72 69 6e 67 26 71 75 6f 74 3b 3c 2f ot;decl.access.by.string&quot;</
9e840 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"
9e860 3e 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 >const</span>.expect.=.std.testi
9e880 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ng.expect;......<span.class="tok
9e8a0 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 6c 61 -kw">try</span>.expect(<span.cla
9e8c0 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 3e 28 50 ss="tok-builtin">@field</span>(P
9e8e0 6f 69 6e 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 oint,.<span.class="tok-str">&quo
9e900 74 3b 7a 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;z&quot;</span>).==.<span.class
9e920 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 0a 20 20 20 20 3c 73 ="tok-number">1</span>);......<s
9e940 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 3c 2f pan.class="tok-builtin">@field</
9e960 73 70 61 6e 3e 28 50 6f 69 6e 74 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 span>(Point,.<span.class="tok-st
9e980 72 22 3e 26 71 75 6f 74 3b 7a 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 20 3d 20 3c 73 70 61 6e r">&quot;z&quot;</span>).=.<span
9e9a0 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>;...
9e9c0 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
9e9e0 3e 20 65 78 70 65 63 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 >.expect(<span.class="tok-builti
9ea00 6e 22 3e 40 66 69 65 6c 64 3c 2f 73 70 61 6e 3e 28 50 6f 69 6e 74 2c 20 3c 73 70 61 6e 20 63 6c n">@field</span>(Point,.<span.cl
9ea20 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7a 26 71 75 6f 74 3b 3c 2f 73 70 61 ass="tok-str">&quot;z&quot;</spa
9ea40 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 3e n>).==.<span.class="tok-number">
9ea60 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 2f 66 69 67 75 72 2</span>);.}</code></pre></figur
9ea80 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
9eaa0 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
9eac0 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 66 69 65 6c 64 5f samp>$.<kbd>zig.test.test_field_
9eae0 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 32 20 74 65 73 74 5f 66 69 65 6c 64 builtin.zig</kbd>.1/2.test_field
9eb00 5f 62 75 69 6c 74 69 6e 2e 74 65 73 74 2e 66 69 65 6c 64 20 61 63 63 65 73 73 20 62 79 20 73 74 _builtin.test.field.access.by.st
9eb20 72 69 6e 67 2e 2e 2e 20 4f 4b 0a 32 2f 32 20 74 65 73 74 5f 66 69 65 6c 64 5f 62 75 69 6c 74 69 ring....OK.2/2.test_field_builti
9eb40 6e 2e 74 65 73 74 2e 64 65 63 6c 20 61 63 63 65 73 73 20 62 79 20 73 74 72 69 6e 67 2e 2e 2e 20 n.test.decl.access.by.string....
9eb60 4f 4b 0a 41 6c 6c 20 32 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f OK.All.2.tests.passed..</samp></
9eb80 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 pre></figure>................<h3
9eba0 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 6e 61 .id="fieldParentPtr"><a.href="na
9ebc0 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e 40 66 69 65 v.xhtml#toc-fieldParentPtr">@fie
9ebe0 6c 64 50 61 72 65 6e 74 50 74 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 ldParentPtr</a>.<a.class="hdr".h
9ec00 72 65 66 3d 22 23 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 ref="#fieldParentPtr">..</a></h3
9ec20 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d >........<pre><code><span.class=
9ec40 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 72 3c 2f 73 "tok-builtin">@fieldParentPtr</s
9ec60 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
9ec80 6d 65 3c 2f 73 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 me</span>.field_name:.[]<span.cl
9eca0 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.
9ecc0 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 66 69 65 6c class="tok-type">u8</span>,.fiel
9ece0 64 5f 70 74 72 3a 20 2a 54 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e d_ptr:.*T).<span.class="tok-kw">
9ed00 61 6e 79 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 anytype</span></code></pre>.....
9ed20 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 20 74 6f 20 61 ..<p>.......Given.a.pointer.to.a
9ed40 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 69 6e 74 65 72 .field,.returns.the.base.pointer
9ed60 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 20 20 20 20 0a .of.a.struct........</p>........
9ed80 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 66 6c 6f 61 74 43 61 73 74 22 3e 3c 61 20 68 72 65 .......<h3.id="floatCast"><a.hre
9eda0 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 66 6c 6f 61 74 43 61 73 74 22 3e 40 66 6c 6f f="nav.xhtml#toc-floatCast">@flo
9edc0 61 74 43 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 atCast</a>.<a.class="hdr".href="
9ede0 23 66 6c 6f 61 74 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c #floatCast">..</a></h3>........<
9ee00 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 pre><code><span.class="tok-built
9ee20 69 6e 22 3e 40 66 6c 6f 61 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 in">@floatCast</span>(value:.<sp
9ee40 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e an.class="tok-kw">anytype</span>
9ee60 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 79 74 79 70 65 3c 2f ).<span.class="tok-kw">anytype</
9ee80 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>....
9eea0 20 20 20 43 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 ...Convert.from.one.float.type.t
9eec0 6f 20 61 6e 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 o.another..This.cast.is.safe,.bu
9eee0 74 20 6d 61 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 t.may.cause.the.......numeric.va
9ef00 6c 75 65 20 74 6f 20 6c 6f 73 65 20 70 72 65 63 69 73 69 6f 6e 2e 20 54 68 65 20 72 65 74 75 72 lue.to.lose.precision..The.retur
9ef20 6e 20 74 79 70 65 20 69 73 20 74 68 65 20 69 6e 66 65 72 72 65 64 20 72 65 73 75 6c 74 20 74 79 n.type.is.the.inferred.result.ty
9ef40 70 65 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 68 33 pe........</p>...............<h3
9ef60 20 69 64 3d 22 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e .id="floatFromInt"><a.href="nav.
9ef80 78 68 74 6d 6c 23 74 6f 63 2d 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 22 3e 40 66 6c 6f 61 74 46 72 xhtml#toc-floatFromInt">@floatFr
9efa0 6f 6d 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 omInt</a>.<a.class="hdr".href="#
9efc0 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 floatFromInt">..</a></h3>.......
9efe0 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 .<pre><code><span.class="tok-bui
9f000 6c 74 69 6e 22 3e 40 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 69 6e 74 3a 20 ltin">@floatFromInt</span>(int:.
9f020 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 <span.class="tok-kw">anytype</sp
9f040 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 61 6e 79 74 79 70 an>).<span.class="tok-kw">anytyp
9f060 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>.
9f080 20 20 20 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 74 68 65 ......Converts.an.integer.to.the
9f0a0 20 63 6c 6f 73 65 73 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 72 65 70 72 65 73 65 6e .closest.floating.point.represen
9f0c0 74 61 74 69 6f 6e 2e 20 54 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 74 68 65 20 69 tation..The.return.type.is.the.i
9f0e0 6e 66 65 72 72 65 64 20 72 65 73 75 6c 74 20 74 79 70 65 2e 0a 09 09 09 54 6f 20 63 6f 6e 76 65 nferred.result.type.....To.conve
9f100 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 65 66 3d 22 23 rt.the.other.way,.use.<a.href="#
9f120 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 22 3e 40 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 3c 2f 61 3e 2e intFromFloat">@intFromFloat</a>.
9f140 20 54 68 69 73 20 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 6c 65 67 61 6c 0a 20 20 20 20 20 20 66 .This.operation.is.legal.......f
9f160 6f 72 20 61 6c 6c 20 76 61 6c 75 65 73 20 6f 66 20 61 6c 6c 20 69 6e 74 65 67 65 72 20 74 79 70 or.all.values.of.all.integer.typ
9f180 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 3c 68 33 es........</p>...............<h3
9f1a0 20 69 64 3d 22 66 72 61 6d 65 41 64 64 72 65 73 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e .id="frameAddress"><a.href="nav.
9f1c0 78 68 74 6d 6c 23 74 6f 63 2d 66 72 61 6d 65 41 64 64 72 65 73 73 22 3e 40 66 72 61 6d 65 41 64 xhtml#toc-frameAddress">@frameAd
9f1e0 64 72 65 73 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 dress</a>.<a.class="hdr".href="#
9f200 66 72 61 6d 65 41 64 64 72 65 73 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 frameAddress">..</a></h3>.......
9f220 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 .<pre><code><span.class="tok-bui
9f240 6c 74 69 6e 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 ltin">@frameAddress</span>().<sp
9f260 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>
9f280 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
9f2a0 69 73 20 66 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 is.function.returns.the.base.poi
9f2c0 6e 74 65 72 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 nter.of.the.current.stack.frame.
9f2e0 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 20 .......</p>.......<p>.......The.
9f300 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 67 65 74 2d implications.of.this.are.target-
9f320 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 61 63 72 6f specific.and.not.consistent.acro
9f340 73 73 20 61 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 ss.all.......platforms..The.fram
9f360 65 20 61 64 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 e.address.may.not.be.available.i
9f380 6e 20 72 65 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 n.release.mode.due.to.......aggr
9f3a0 65 73 73 69 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 essive.optimizations........</p>
9f3c0 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 69 .......<p>.......This.function.i
9f3e0 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 6f 6e 20 73 63 6f s.only.valid.within.function.sco
9f400 70 65 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 68 33 pe........</p>...............<h3
9f420 20 69 64 3d 22 68 61 73 44 65 63 6c 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c .id="hasDecl"><a.href="nav.xhtml
9f440 23 74 6f 63 2d 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 #toc-hasDecl">@hasDecl</a>.<a.cl
9f460 61 73 73 3d 22 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 ass="hdr".href="#hasDecl">..</a>
9f480 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </h3>........<pre><code><span.cl
9f4a0 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
9f4c0 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<
9f4e0 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 74 /span>.Container:.<span.class="t
9f500 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 73 ok-type">type</span>,.<span.clas
9f520 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 3a s="tok-kw">comptime</span>.name:
9f540 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 73 .[]<span.class="tok-kw">const</s
9f560 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</
9f580 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
9f5a0 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 3e ol</span></code></pre>.......<p>
9f5c0 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 20 6e 6f 74 20 61 20 .......Returns.whether.or.not.a.
9f5e0 3c 61 20 68 72 65 66 3d 22 23 43 6f 6e 74 61 69 6e 65 72 73 22 3e 63 6f 6e 74 61 69 6e 65 72 3c <a.href="#Containers">container<
9f600 2f 61 3e 20 68 61 73 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 /a>.has.a.declaration.......matc
9f620 68 69 6e 67 20 3c 63 6f 64 65 3e 6e 61 6d 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f hing.<code>name</code>........</
9f640 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
9f660 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
9f680 74 65 73 74 5f 68 61 73 44 65 63 6c 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c test_hasDecl_builtin.zig</cite><
9f6a0 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /figcaption><pre><code><span.cla
9f6c0 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.=.<
9f6e0 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
9f700 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
9f720 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
9f740 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 70 65 63 74 20 ss="tok-kw">const</span>.expect.
9f760 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 =.std.testing.expect;..<span.cla
9f780 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.=.<
9f7a0 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 6e span.class="tok-kw">struct</span
9f7c0 3e 20 7b 0a 20 20 20 20 6e 6f 70 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 >.{.....nope:.<span.class="tok-t
9f7e0 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 2c 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ype">i32</span>,......<span.clas
9f800 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
9f820 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 6c 61 68 20 3d 20 3c 73 70 s="tok-kw">var</span>.blah.=.<sp
9f840 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 78 78 26 71 75 6f an.class="tok-str">&quot;xxx&quo
9f860 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 73 3d 22 74 6f 6b 2d t;</span>;.....<span.class="tok-
9f880 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 69 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 kw">const</span>.hi.=.<span.clas
9f8a0 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 3b 0a 0a 3c 73 70 s="tok-number">1</span>;.};..<sp
9f8c0 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
9f8e0 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 68 61 73 44 65 pan.class="tok-str">&quot;@hasDe
9f900 63 6c 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 cl&quot;</span>.{.....<span.clas
9f920 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 3c 73 70 s="tok-kw">try</span>.expect(<sp
9f940 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 6c 3c an.class="tok-builtin">@hasDecl<
9f960 2f 73 70 61 6e 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 /span>(Foo,.<span.class="tok-str
9f980 22 3e 26 71 75 6f 74 3b 62 6c 61 68 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 0a 20 20 ">&quot;blah&quot;</span>));....
9f9a0 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 45 ..<span.class="tok-comment">//.E
9f9c0 76 65 6e 20 74 68 6f 75 67 68 20 60 68 69 60 20 69 73 20 70 72 69 76 61 74 65 2c 20 40 68 61 73 ven.though.`hi`.is.private,.@has
9f9e0 44 65 63 6c 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 62 65 63 61 75 73 65 20 74 68 69 73 20 74 Decl.returns.true.because.this.t
9fa00 65 73 74 20 69 73 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 est.is</span>.....<span.class="t
9fa20 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 69 6e 20 74 68 65 20 73 61 6d 65 20 66 69 6c 65 20 ok-comment">//.in.the.same.file.
9fa40 73 63 6f 70 65 20 61 73 20 46 6f 6f 2e 20 49 74 20 77 6f 75 6c 64 20 72 65 74 75 72 6e 20 66 61 scope.as.Foo..It.would.return.fa
9fa60 6c 73 65 20 69 66 20 46 6f 6f 20 77 61 73 20 64 65 63 6c 61 72 65 64 3c 2f 73 70 61 6e 3e 0a 20 lse.if.Foo.was.declared</span>..
9fa80 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">//.
9faa0 69 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 65 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 in.a.different.file.</span>.....
9fac0 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>.
9fae0 65 78 70 65 63 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 expect(<span.class="tok-builtin"
9fb00 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 20 63 6c 61 73 >@hasDecl</span>(Foo,.<span.clas
9fb20 73 3d 22 74 6f 6b 2d 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 s="tok-str">&quot;hi&quot;</span
9fb40 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
9fb60 6e 74 22 3e 2f 2f 20 40 68 61 73 44 65 63 6c 20 69 73 20 66 6f 72 20 64 65 63 6c 61 72 61 74 69 nt">//.@hasDecl.is.for.declarati
9fb80 6f 6e 73 3b 20 6e 6f 74 20 66 69 65 6c 64 73 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 ons;.not.fields.</span>.....<spa
9fba0 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 65 78 70 65 n.class="tok-kw">try</span>.expe
9fbc0 63 74 28 21 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 68 ct(!<span.class="tok-builtin">@h
9fbe0 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 22 asDecl</span>(Foo,.<span.class="
9fc00 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 6e 6f 70 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e tok-str">&quot;nope&quot;</span>
9fc20 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 22 3e 74 72 79 ));.....<span.class="tok-kw">try
9fc40 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 21 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>.expect(!<span.class="tok
9fc60 2d 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 -builtin">@hasDecl</span>(Foo,.<
9fc80 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 6f 70 65 31 span.class="tok-str">&quot;nope1
9fca0 32 33 34 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 72 234&quot;</span>));.}</code></pr
9fcc0 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
9fce0 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
9fd00 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
9fd20 73 74 5f 68 61 73 44 65 63 6c 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 st_hasDecl_builtin.zig</kbd>.1/1
9fd40 20 74 65 73 74 5f 68 61 73 44 65 63 6c 5f 62 75 69 6c 74 69 6e 2e 74 65 73 74 2e 40 68 61 73 44 .test_hasDecl_builtin.test.@hasD
9fd60 65 63 6c 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f ecl....OK.All.1.tests.passed..</
9fd80 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 samp></pre></figure>.......<p>Se
9fda0 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 68 61 e.also:</p><ul>.<li><a.href="#ha
9fdc0 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 0a 3c 2f 75 6c 3e sField">@hasField</a></li>.</ul>
9fde0 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 68 61 73 46 69 65 6c 64 ................<h3.id="hasField
9fe00 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 68 61 73 46 69 65 6c "><a.href="nav.xhtml#toc-hasFiel
9fe20 64 22 3e 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 d">@hasField</a>.<a.class="hdr".
9fe40 68 72 65 66 3d 22 23 68 61 73 46 69 65 6c 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 href="#hasField">..</a></h3>....
9fe60 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....<pre><code><span.class="tok-
9fe80 62 75 69 6c 74 69 6e 22 3e 40 68 61 73 46 69 65 6c 64 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 builtin">@hasField</span>(<span.
9fea0 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 43 class="tok-kw">comptime</span>.C
9fec0 6f 6e 74 61 69 6e 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 ontainer:.<span.class="tok-type"
9fee0 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 2d 6b >type</span>,.<span.class="tok-k
9ff00 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 5b 5d 3c 73 70 61 6e w">comptime</span>.name:.[]<span
9ff20 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
9ff40 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>).<
9ff60 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
9ff80 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 6e 73 20 ></code></pre>.......<p>Returns.
9ffa0 77 68 65 74 68 65 72 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 whether.the.field.name.of.a.stru
9ffc0 63 74 2c 20 75 6e 69 6f 6e 2c 20 6f 72 20 65 6e 75 6d 20 65 78 69 73 74 73 2e 3c 2f 70 3e 0a 20 ct,.union,.or.enum.exists.</p>..
9ffe0 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 .....<p>.......The.result.is.a.c
a0000 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 3e ompile.time.constant........</p>
a0020 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 .......<p>.......It.does.not.inc
a0040 6c 75 64 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 76 61 72 69 61 62 6c 65 73 2c 20 6f 72 20 63 6f lude.functions,.variables,.or.co
a0060 6e 73 74 61 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 53 65 65 nstants........</p>.......<p>See
a0080 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 68 61 73 .also:</p><ul>.<li><a.href="#has
a00a0 44 65 63 6c 22 3e 40 68 61 73 44 65 63 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 Decl">@hasDecl</a></li>.</ul>...
a00c0 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 69 6d 70 6f 72 74 22 3e 3c 61 20 .............<h3.id="import"><a.
a00e0 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 69 6d 70 6f 72 74 22 3e 40 69 6d 70 href="nav.xhtml#toc-import">@imp
a0100 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
a0120 70 6f 72 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 port">..</a></h3>........<pre><c
a0140 6f 64 65 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 ode><span.class="tok-builtin">@i
a0160 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 6b 77 mport</span>(<span.class="tok-kw
a0180 22 3e 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 ">comptime</span>.path:.[]<span.
a01a0 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 61 class="tok-kw">const</span>.<spa
a01c0 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 73 n.class="tok-type">u8</span>).<s
a01e0 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>
a0200 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
a0220 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 73 20 61 20 7a 69 67 20 66 69 6c 65 20 63 6f 72 is.function.finds.a.zig.file.cor
a0240 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 3c 63 6f 64 65 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 20 responding.to.<code>path</code>.
a0260 61 6e 64 20 61 64 64 73 20 69 74 20 74 6f 20 74 68 65 20 62 75 69 6c 64 2c 0a 20 20 20 20 20 20 and.adds.it.to.the.build,.......
a0280 69 66 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 61 64 64 65 64 2e 0a 20 20 20 20 if.it.is.not.already.added......
a02a0 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 6f 75 72 63 ..</p>.......<p>.......Zig.sourc
a02c0 65 20 66 69 6c 65 73 20 61 72 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 73 74 72 75 63 74 73 2c 20 e.files.are.implicitly.structs,.
a02e0 77 69 74 68 20 61 20 6e 61 6d 65 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 66 69 6c 65 27 73 20 with.a.name.equal.to.the.file's.
a0300 62 61 73 65 6e 61 6d 65 20 77 69 74 68 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 basename.with.the.extension.....
a0320 20 20 74 72 75 6e 63 61 74 65 64 2e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ..truncated..<code><span.class="
a0340 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 6f 64 tok-builtin">@import</span></cod
a0360 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 72 65 e>.returns.the.struct.type.corre
a0380 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 70 3e sponding.to.the.file........</p>
a03a0 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 77 68 .......<p>.......Declarations.wh
a03c0 69 63 68 20 68 61 76 65 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ich.have.the.<code><span.class="
a03e0 74 6f 6b 2d 6b 77 22 3e 70 75 62 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 tok-kw">pub</span></code>.keywor
a0400 64 20 6d 61 79 20 62 65 20 72 65 66 65 72 65 6e 63 65 64 20 66 72 6f 6d 20 61 20 64 69 66 66 65 d.may.be.referenced.from.a.diffe
a0420 72 65 6e 74 0a 20 20 20 20 20 20 73 6f 75 72 63 65 20 66 69 6c 65 20 74 68 61 6e 20 74 68 65 20 rent.......source.file.than.the.
a0440 6f 6e 65 20 74 68 65 79 20 61 72 65 20 64 65 63 6c 61 72 65 64 20 69 6e 2e 0a 20 20 20 20 20 20 one.they.are.declared.in........
a0460 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 3e 70 61 74 68 3c </p>.......<p>.......<code>path<
a0480 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 61 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 6f 72 /code>.can.be.a.relative.path.or
a04a0 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 70 61 63 6b 61 67 65 .it.can.be.the.name.of.a.package
a04c0 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 76 65 20 70 61 74 68 ........If.it.is.a.relative.path
a04e0 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 69 6c 65 20 74 68 61 ,.it.is.relative.to.the.file.tha
a0500 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 t.contains.the.<code><span.class
a0520 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
a0540 6f 64 65 3e 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0a 20 20 20 20 20 20 ode>.......function.call........
a0560 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 66 6f 6c 6c 6f 77 69 </p>.......<p>.......The.followi
a0580 6e 67 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 61 6c 77 61 79 73 20 61 76 61 69 6c 61 62 6c 65 ng.packages.are.always.available
a05a0 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 20 20 :.......</p>.......<ul>.........
a05c0 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 ..<li><code><span.class="tok-bui
a05e0 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
a0600 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
a0620 3e 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 >)</code>.-.Zig.Standard.Library
a0640 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 3e 3c 73 70 61 6e 20 </li>...........<li><code><span.
a0660 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
a0680 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 62 n>(<span.class="tok-str">&quot;b
a06a0 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 20 2d 20 54 61 uiltin&quot;</span>)</code>.-.Ta
a06c0 72 67 65 74 2d 73 70 65 63 69 66 69 63 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 rget-specific.information.......
a06e0 20 20 20 20 20 20 20 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 3c 63 6f 64 65 3e 7a 69 67 20 62 75 ........The.command.<code>zig.bu
a0700 69 6c 64 2d 65 78 65 20 2d 2d 73 68 6f 77 2d 62 75 69 6c 74 69 6e 3c 2f 63 6f 64 65 3e 20 6f 75 ild-exe.--show-builtin</code>.ou
a0720 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 66 6f 72 20 72 tputs.the.source.to.stdout.for.r
a0740 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 20 20 20 20 20 eference............</li>.......
a0760 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 ....<li><code><span.class="tok-b
a0780 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
a07a0 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 72 6f 6f 74 26 71 75 6f 74 3b 3c 2f 73 ss="tok-str">&quot;root&quot;</s
a07c0 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 20 2d 20 52 6f 6f 74 20 73 6f 75 72 63 65 20 66 69 6c 65 0a pan>)</code>.-.Root.source.file.
a07e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 20 75 73 75 61 6c 6c 79 20 3c 63 ..............This.is.usually.<c
a0800 6f 64 65 3e 73 72 63 2f 6d 61 69 6e 2e 7a 69 67 3c 2f 63 6f 64 65 3e 20 62 75 74 20 64 65 70 65 ode>src/main.zig</code>.but.depe
a0820 6e 64 73 20 6f 6e 20 77 68 61 74 20 66 69 6c 65 20 69 73 20 62 75 69 6c 74 2e 0a 20 20 20 20 20 nds.on.what.file.is.built.......
a0840 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 3c 70 3e .....</li>.......</ul>.......<p>
a0860 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="#
a0880 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
a08a0 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 65 6d 62 65 bles</a></li>.<li><a.href="#embe
a08c0 64 46 69 6c 65 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e dFile">@embedFile</a></li>.</ul>
a08e0 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 69 6e 43 6f 6d 70 74 69 ................<h3.id="inCompti
a0900 6d 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 69 6e 43 6f 6d me"><a.href="nav.xhtml#toc-inCom
a0920 70 74 69 6d 65 22 3e 40 69 6e 43 6f 6d 70 74 69 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d ptime">@inComptime</a>.<a.class=
a0940 22 68 64 72 22 20 68 72 65 66 3d 22 23 69 6e 43 6f 6d 70 74 69 6d 65 22 3e c2 a7 3c 2f 61 3e 3c "hdr".href="#inComptime">..</a><
a0960 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 /h3>........<pre><code><span.cla
a0980 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 43 6f 6d 70 74 69 6d 65 3c 2f 73 70 ss="tok-builtin">@inComptime</sp
a09a0 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 6f 6f an>().<span.class="tok-type">boo
a09c0 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 3e 0a l</span></code></pre>.......<p>.
a09e0 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 77 68 65 74 68 65 72 20 74 68 65 20 62 75 69 6c 74 69 ......Returns.whether.the.builti
a0a00 6e 20 77 61 73 20 72 75 6e 20 69 6e 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 n.was.run.in.a.<code><span.class
a0a20 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 3e ="tok-kw">comptime</span></code>
a0a40 20 63 6f 6e 74 65 78 74 2e 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6f 6d 70 69 6c .context..The.result.is.a.compil
a0a60 65 2d 74 69 6d 65 20 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 e-time.constant........</p>.....
a0a80 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 ..<p>.......This.can.be.used.to.
a0aa0 70 72 6f 76 69 64 65 20 61 6c 74 65 72 6e 61 74 69 76 65 2c 20 63 6f 6d 70 74 69 6d 65 2d 66 72 provide.alternative,.comptime-fr
a0ac0 69 65 6e 64 6c 79 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 66 75 6e 63 74 69 iendly.implementations.of.functi
a0ae0 6f 6e 73 2e 20 49 74 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 75 73 65 64 2c 20 66 6f 72 20 ons..It.should.not.be.used,.for.
a0b00 69 6e 73 74 61 6e 63 65 2c 20 74 6f 20 65 78 63 6c 75 64 65 20 63 65 72 74 61 69 6e 20 66 75 6e instance,.to.exclude.certain.fun
a0b20 63 74 69 6f 6e 73 20 66 72 6f 6d 20 62 65 69 6e 67 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 ctions.from.being.evaluated.at.c
a0b40 6f 6d 70 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 53 65 65 omptime........</p>.......<p>See
a0b60 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 63 6f 6d .also:</p><ul>.<li><a.href="#com
a0b80 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 2f 75 6c 3e 0a 0a ptime">comptime</a></li>.</ul>..
a0ba0 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 69 6e 74 43 61 73 74 22 3e 3c ..............<h3.id="intCast"><
a0bc0 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 69 6e 74 43 61 73 74 22 3e 40 a.href="nav.xhtml#toc-intCast">@
a0be0 69 6e 74 43 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 intCast</a>.<a.class="hdr".href=
a0c00 22 23 69 6e 74 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 "#intCast">..</a></h3>........<p
a0c20 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 re><code><span.class="tok-builti
a0c40 6e 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c n">@intCast</span>(int:.<span.cl
a0c60 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 ass="tok-kw">anytype</span>).<sp
a0c80 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e an.class="tok-kw">anytype</span>
a0ca0 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 6f </code></pre>.......<p>.......Co
a0cc0 6e 76 65 72 74 73 20 61 6e 20 69 6e 74 65 67 65 72 20 74 6f 20 61 6e 6f 74 68 65 72 20 69 6e 74 nverts.an.integer.to.another.int
a0ce0 65 67 65 72 20 77 68 69 6c 65 20 6b 65 65 70 69 6e 67 20 74 68 65 20 73 61 6d 65 20 6e 75 6d 65 eger.while.keeping.the.same.nume
a0d00 72 69 63 61 6c 20 76 61 6c 75 65 2e 0a 09 09 09 54 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 rical.value.....The.return.type.
a0d20 69 73 20 74 68 65 20 69 6e 66 65 72 72 65 64 20 72 65 73 75 6c 74 20 74 79 70 65 2e 0a 20 20 20 is.the.inferred.result.type.....
a0d40 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 75 6d 62 65 ...Attempting.to.convert.a.numbe
a0d60 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 68 65 20 64 r.which.is.out.of.range.of.the.d
a0d80 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 20 20 20 20 estination.type.results.in......
a0da0 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 55 6e 64 65 .safety-protected.<a.href="#Unde
a0dc0 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
a0de0 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 66 69 67 75 72 65 or</a>........</p>.......<figure
a0e00 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 ><figcaption.class="zig-cap"><ci
a0e20 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 69 6e 74 43 61 73 74 5f 62 75 69 te.class="file">test_intCast_bui
a0e40 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 ltin.zig</cite></figcaption><pre
a0e60 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">test
a0e80 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
a0ea0 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 3c 2f 73 70 uot;integer.cast.panic&quot;</sp
a0ec0 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
a0ee0 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
a0f00 70 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 pe">u16</span>.=.<span.class="to
a0f20 6b 2d 6e 75 6d 62 65 72 22 3e 30 78 61 62 63 64 3c 2f 73 70 61 6e 3e 3b 20 3c 73 70 61 6e 20 63 k-number">0xabcd</span>;.<span.c
a0f40 6c 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 72 75 6e 74 69 6d 65 2d 6b 6e lass="tok-comment">//.runtime-kn
a0f60 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 61 3b 0a 20 20 20 20 3c own</span>....._.=.&amp;a;.....<
a0f80 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>
a0fa0 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 38 3c 2f 73 .b:.<span.class="tok-type">u8</s
a0fc0 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 75 69 6c 74 69 6e 22 pan>.=.<span.class="tok-builtin"
a0fe0 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 61 29 3b 0a 20 20 20 20 5f 20 3d 20 62 3b 0a >@intCast</span>(a);....._.=.b;.
a1000 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
a1020 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
a1040 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
a1060 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 69 6e 74 43 61 73 74 5f 62 75 69 6c 74 69 6e 2e 7a >zig.test.test_intCast_builtin.z
a1080 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 69 6e 74 43 61 73 74 5f 62 75 69 6c 74 69 ig</kbd>.1/1.test_intCast_builti
a10a0 6e 2e 74 65 73 74 2e 69 6e 74 65 67 65 72 20 63 61 73 74 20 70 61 6e 69 63 2e 2e 2e 20 74 68 72 n.test.integer.cast.panic....thr
a10c0 65 61 64 20 31 34 33 35 33 33 20 70 61 6e 69 63 3a 20 69 6e 74 65 67 65 72 20 63 61 73 74 20 74 ead.143533.panic:.integer.cast.t
a10e0 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 73 67 72 2d 31 runcated.bits.<span.class="sgr-1
a1100 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 m">/home/andy/src/zig-0.12.x/doc
a1120 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 69 6e 74 43 61 73 74 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 gen_tmp/test_intCast_builtin.zig
a1140 3a 34 3a 31 39 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 :4:19</span>:.<span.class="sgr-2
a1160 6d 22 3e 30 78 31 30 33 38 66 63 32 20 69 6e 20 74 65 73 74 2e 69 6e 74 65 67 65 72 20 63 61 73 m">0x1038fc2.in.test.integer.cas
a1180 74 20 70 61 6e 69 63 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 t.panic.(test)</span>.....const.
a11a0 62 3a 20 75 38 20 3d 20 40 69 6e 74 43 61 73 74 28 61 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 b:.u8.=.@intCast(a);............
a11c0 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f .......<span.class="sgr-32m">^</
a11e0 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 span>.<span.class="sgr-1m">/home
a1200 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 /andy/src/zig-0.12.x/lib/compile
a1220 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 35 38 3a 32 35 3c 2f 73 70 61 6e 3e 3a r/test_runner.zig:158:25</span>:
a1240 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 34 34 64 64 20 .<span.class="sgr-2m">0x10444dd.
a1260 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 in.mainTerminal.(test)</span>...
a1280 20 20 20 20 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 ......if.(test_fn.func()).|_|.{.
a12a0 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 20 63 6c ........................<span.cl
a12c0 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ass="sgr-32m">^</span>.<span.cla
a12e0 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 ss="sgr-1m">/home/andy/src/zig-0
a1300 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a .12.x/lib/compiler/test_runner.z
a1320 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 ig:35:28</span>:.<span.class="sg
a1340 72 2d 32 6d 22 3e 30 78 31 30 33 61 33 61 62 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c 2f r-2m">0x103a3ab.in.main.(test)</
a1360 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 span>.........return.mainTermina
a1380 6c 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 20 20 20 20 20 20 l();............................
a13a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c <span.class="sgr-32m">^</span>.<
a13c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 span.class="sgr-1m">/home/andy/s
a13e0 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a rc/zig-0.12.x/lib/std/start.zig:
a1400 35 30 31 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 73 67 72 2d 501:22</span>:.<span.class="sgr-
a1420 32 6d 22 3e 30 78 31 30 33 39 34 65 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 2m">0x10394e9.in.posixCallMainAn
a1440 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>.............
a1460 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();....................
a1480 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e ..<span.class="sgr-32m">^</span>
a14a0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 .<span.class="sgr-1m">/home/andy
a14c0 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 /src/zig-0.12.x/lib/std/start.zi
a14e0 67 3a 32 35 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 73 67 72 g:253:5</span>:.<span.class="sgr
a1500 2d 32 6d 22 3e 30 78 31 30 33 39 30 35 31 20 69 6e 20 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c -2m">0x1039051.in._start.(test)<
a1520 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 /span>.....asm.volatile.(switch.
a1540 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d (native_arch).{.....<span.class=
a1560 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "sgr-32m">^</span>.<span.class="
a1580 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c sgr-1m">???:?:?</span>:.<span.cl
a15a0 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 ass="sgr-2m">0x0.in.???.(???)</s
a15c0 70 61 6e 3e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 pan>.error:.the.following.test.c
a15e0 6f 6d 6d 61 6e 64 20 63 72 61 73 68 65 64 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a ommand.crashed:./home/andy/src/z
a1600 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 63 33 66 62 35 61 31 66 38 61 ig-0.12.x/zig-cache/o/c3fb5a1f8a
a1620 30 36 61 32 61 35 37 37 38 31 34 62 64 38 30 65 65 30 37 31 32 65 2f 74 65 73 74 0a 3c 2f 73 61 06a2a577814bd80ee0712e/test.</sa
a1640 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 mp></pre></figure>.......<p>....
a1660 20 20 20 54 6f 20 74 72 75 6e 63 61 74 65 20 74 68 65 20 73 69 67 6e 69 66 69 63 61 6e 74 20 62 ...To.truncate.the.significant.b
a1680 69 74 73 20 6f 66 20 61 20 6e 75 6d 62 65 72 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 20 6f 66 20 its.of.a.number.out.of.range.of.
a16a0 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 2c 20 75 73 65 20 3c 61 20 68 72 65 the.destination.type,.use.<a.hre
a16c0 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 20 20 f="#truncate">@truncate</a>.....
a16e0 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 3c 63 6f 64 65 ...</p>.......<p>.......If.<code
a1700 3e 54 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 >T</code>.is.<code><span.class="
a1720 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 2f 63 tok-type">comptime_int</span></c
a1740 6f 64 65 3e 2c 0a 20 20 20 20 20 20 74 68 65 6e 20 74 68 69 73 20 69 73 20 73 65 6d 61 6e 74 69 ode>,.......then.this.is.semanti
a1760 63 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 23 54 79 cally.equivalent.to.<a.href="#Ty
a1780 70 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3c 2f 61 3e 2e 0a pe-Coercion">Type.Coercion</a>..
a17a0 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 33 20 69 64 3d ......</p>...............<h3.id=
a17c0 22 69 6e 74 46 72 6f 6d 42 6f 6f 6c 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c "intFromBool"><a.href="nav.xhtml
a17e0 23 74 6f 63 2d 69 6e 74 46 72 6f 6d 42 6f 6f 6c 22 3e 40 69 6e 74 46 72 6f 6d 42 6f 6f 6c 3c 2f #toc-intFromBool">@intFromBool</
a1800 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 46 72 6f 6d a>.<a.class="hdr".href="#intFrom
a1820 42 6f 6f 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 Bool">..</a></h3>........<pre><c
a1840 6f 64 65 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 ode><span.class="tok-builtin">@i
a1860 6e 74 46 72 6f 6d 42 6f 6f 6c 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 ntFromBool</span>(value:.<span.c
a1880 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 70 lass="tok-type">bool</span>).<sp
a18a0 61 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 3c 2f 63 an.class="tok-type">u1</span></c
a18c0 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
a18e0 72 74 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 rts.<code><span.class="tok-null"
a1900 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 3e 3c 73 70 >true</span></code>.to.<code><sp
a1920 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 73 3c 2f 73 70 61 6e an.class="tok-builtin">@as</span
a1940 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 31 3c 2f 73 70 61 >(<span.class="tok-type">u1</spa
a1960 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 31 3c 2f n>,.<span.class="tok-number">1</
a1980 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c span>)</code>.and.<code><span.cl
a19a0 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
a19c0 65 3e 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 e>.to...................<code><s
a19e0 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 73 3c 2f 73 70 61 pan.class="tok-builtin">@as</spa
a1a00 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 31 3c 2f 73 70 n>(<span.class="tok-type">u1</sp
a1a20 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 30 3c an>,.<span.class="tok-number">0<
a1a40 2f 73 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 /span>)</code>........</p>......
a1a60 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 69 6e 74 46 72 6f 6d 45 6e 75 6d 22 3e 3c 61 .........<h3.id="intFromEnum"><a
a1a80 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 69 6e 74 46 72 6f 6d 45 6e 75 6d .href="nav.xhtml#toc-intFromEnum
a1aa0 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 ">@intFromEnum</a>.<a.class="hdr
a1ac0 22 20 68 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 45 6e 75 6d 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 ".href="#intFromEnum">..</a></h3
a1ae0 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d >........<pre><code><span.class=
a1b00 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 6e 75 6d 3c 2f 73 70 61 6e "tok-builtin">@intFromEnum</span
a1b20 3e 28 65 6e 75 6d 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 >(enum_or_tagged_union:.<span.cl
a1b40 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 ass="tok-kw">anytype</span>).<sp
a1b60 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e an.class="tok-kw">anytype</span>
a1b80 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 6f </code></pre>.......<p>.......Co
a1ba0 6e 76 65 72 74 73 20 61 6e 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 76 61 6c 75 65 20 69 6e 74 6f nverts.an.enumeration.value.into
a1bc0 20 69 74 73 20 69 6e 74 65 67 65 72 20 74 61 67 20 74 79 70 65 2e 20 57 68 65 6e 20 61 20 74 61 .its.integer.tag.type..When.a.ta
a1be0 67 67 65 64 20 75 6e 69 6f 6e 20 69 73 20 70 61 73 73 65 64 2c 0a 20 20 20 20 20 20 74 68 65 20 gged.union.is.passed,.......the.
a1c00 74 61 67 20 76 61 6c 75 65 20 69 73 20 75 73 65 64 20 61 73 20 74 68 65 20 65 6e 75 6d 65 72 61 tag.value.is.used.as.the.enumera
a1c20 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 70 3e tion.value........</p>.......<p>
a1c40 0a 20 20 20 20 20 20 49 66 20 74 68 65 72 65 20 69 73 20 6f 6e 6c 79 20 6f 6e 65 20 70 6f 73 73 .......If.there.is.only.one.poss
a1c60 69 62 6c 65 20 65 6e 75 6d 20 76 61 6c 75 65 2c 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 ible.enum.value,.the.result.is.a
a1c80 20 3c 63 6f 64 65 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 .<code><span.class="tok-type">co
a1ca0 6d 70 74 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 mptime_int</span></code>.......k
a1cc0 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 6f 6d 70 nown.at.<a.href="#comptime">comp
a1ce0 74 69 6d 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 time</a>........</p>.......<p>Se
a1d00 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 65 6e e.also:</p><ul>.<li><a.href="#en
a1d20 75 6d 46 72 6f 6d 49 6e 74 22 3e 40 65 6e 75 6d 46 72 6f 6d 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e umFromInt">@enumFromInt</a></li>
a1d40 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 69 6e .</ul>................<h3.id="in
a1d60 74 46 72 6f 6d 45 72 72 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 tFromError"><a.href="nav.xhtml#t
a1d80 6f 63 2d 69 6e 74 46 72 6f 6d 45 72 72 6f 72 22 3e 40 69 6e 74 46 72 6f 6d 45 72 72 6f 72 3c 2f oc-intFromError">@intFromError</
a1da0 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 46 72 6f 6d a>.<a.class="hdr".href="#intFrom
a1dc0 45 72 72 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c Error">..</a></h3>........<pre><
a1de0 63 6f 64 65 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 code><span.class="tok-builtin">@
a1e00 69 6e 74 46 72 6f 6d 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 65 72 72 3a 20 3c 73 70 61 6e 20 63 intFromError</span>(err:.<span.c
a1e20 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 73 74 lass="tok-kw">anytype</span>).st
a1e40 64 2e 6d 65 74 61 2e 49 6e 74 28 2e 75 6e 73 69 67 6e 65 64 2c 20 3c 73 70 61 6e 20 63 6c 61 73 d.meta.Int(.unsigned,.<span.clas
a1e60 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 62 69 74 53 69 7a 65 4f 66 3c 2f 73 70 61 6e s="tok-builtin">@bitSizeOf</span
a1e80 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 61 6e 79 65 72 72 6f >(<span.class="tok-type">anyerro
a1ea0 72 3c 2f 73 70 61 6e 3e 29 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 r</span>))</code></pre>.......<p
a1ec0 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 >.......Supports.the.following.t
a1ee0 79 70 65 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 ypes:.......</p>.......<ul>.....
a1f00 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 ......<li><a.href="#The-Global-E
a1f20 72 72 6f 72 2d 53 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 rror-Set">The.Global.Error.Set</
a1f40 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 23 a></li>...........<li><a.href="#
a1f60 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</
a1f80 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 23 a></li>...........<li><a.href="#
a1fa0 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
a1fc0 70 65 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 70 pe</a></li>.......</ul>.......<p
a1fe0 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 65 72 72 6f 72 20 74 6f 20 74 68 65 >.......Converts.an.error.to.the
a2000 20 69 6e 74 65 67 65 72 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 72 .integer.representation.of.an.er
a2020 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 20 20 20 20 20 ror........</p>.......<p>.......
a2040 49 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 61 It.is.generally.recommended.to.a
a2060 76 6f 69 64 20 74 68 69 73 0a 20 20 20 20 20 20 63 61 73 74 2c 20 61 73 20 74 68 65 20 69 6e 74 void.this.......cast,.as.the.int
a2080 65 67 65 72 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 eger.representation.of.an.error.
a20a0 69 73 20 6e 6f 74 20 73 74 61 62 6c 65 20 61 63 72 6f 73 73 20 73 6f 75 72 63 65 20 63 6f 64 65 is.not.stable.across.source.code
a20c0 20 63 68 61 6e 67 65 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 .changes........</p>.......<p>Se
a20e0 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 65 72 e.also:</p><ul>.<li><a.href="#er
a2100 72 6f 72 46 72 6f 6d 49 6e 74 22 3e 40 65 72 72 6f 72 46 72 6f 6d 49 6e 74 3c 2f 61 3e 3c 2f 6c rorFromInt">@errorFromInt</a></l
a2120 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 33 20 69 64 3d 22 i>.</ul>................<h3.id="
a2140 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c intFromFloat"><a.href="nav.xhtml
a2160 23 74 6f 63 2d 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 22 3e 40 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 #toc-intFromFloat">@intFromFloat
a2180 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 46 72 </a>.<a.class="hdr".href="#intFr
a21a0 6f 6d 46 6c 6f 61 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 omFloat">..</a></h3>........<pre
a21c0 3e 3c 63 6f 64 65 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 ><code><span.class="tok-builtin"
a21e0 3e 40 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 3c 2f 73 70 61 6e 3e 28 66 6c 6f 61 74 3a 20 3c 73 70 >@intFromFloat</span>(float:.<sp
a2200 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e an.class="tok-kw">anytype</span>
a2220 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 79 74 79 70 65 3c 2f ).<span.class="tok-kw">anytype</
a2240 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>....
a2260 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 20 ...Converts.the.integer.part.of.
a2280 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 69 a.floating.point.number.to.the.i
a22a0 6e 66 65 72 72 65 64 20 72 65 73 75 6c 74 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a nferred.result.type........</p>.
a22c0 20 20 20 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 ......<p>.......If.the.integer.p
a22e0 61 72 74 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 art.of.the.floating.point.number
a2300 20 63 61 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 .cannot.fit.in.the.destination.t
a2320 79 70 65 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 ype,.......it.invokes.safety-che
a2340 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
a2360 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>.......
a2380 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 6c 3e .</p>.......<p>See.also:</p><ul>
a23a0 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6c 6f 61 74 46 72 6f 6d 49 6e 74 22 3e 40 66 6c .<li><a.href="#floatFromInt">@fl
a23c0 6f 61 74 46 72 6f 6d 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 oatFromInt</a></li>.</ul>.......
a23e0 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 69 6e 74 46 72 6f 6d 50 74 72 22 3e 3c 61 20 .........<h3.id="intFromPtr"><a.
a2400 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 69 6e 74 46 72 6f 6d 50 74 72 22 3e href="nav.xhtml#toc-intFromPtr">
a2420 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 @intFromPtr</a>.<a.class="hdr".h
a2440 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 50 74 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 ref="#intFromPtr">..</a></h3>...
a2460 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
a2480 2d 62 75 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 50 74 72 3c 2f 73 70 61 6e 3e 28 76 61 6c -builtin">@intFromPtr</span>(val
a24a0 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 61 6e 79 74 79 70 65 ue:.<span.class="tok-kw">anytype
a24c0 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">
a24e0 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 20 20 20 20 usize</span></code></pre>.......
a2500 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 3c 63 6f 64 65 3e 76 61 6c 75 65 3c 2f <p>.......Converts.<code>value</
a2520 63 6f 64 65 3e 20 74 6f 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f code>.to.a.<code><span.class="to
a2540 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 20 77 68 69 63 k-type">usize</span></code>.whic
a2560 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 6e 74 65 72 2e h.is.the.address.of.the.pointer.
a2580 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 .......<code>value</code>.can.be
a25a0 20 3c 63 6f 64 65 3e 2a 54 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 3f 2a 54 3c 2f 63 .<code>*T</code>.or.<code>?*T</c
a25c0 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 54 6f 20 63 6f 6e ode>........</p>.......<p>To.con
a25e0 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 65 66 3d vert.the.other.way,.use.<a.href=
a2600 22 23 70 74 72 46 72 6f 6d 49 6e 74 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 61 3e 3c 2f 70 "#ptrFromInt">@ptrFromInt</a></p
a2620 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6d 61 78 22 3e 3c 61 20 >...............<h3.id="max"><a.
a2640 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6d 61 78 22 3e 40 6d 61 78 3c 2f 61 href="nav.xhtml#toc-max">@max</a
a2660 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 61 78 22 3e c2 a7 3c >.<a.class="hdr".href="#max">..<
a2680 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e /a></h3>........<pre><code><span
a26a0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 61 78 3c 2f 73 70 61 6e 3e .class="tok-builtin">@max</span>
a26c0 28 61 3a 20 54 2c 20 62 3a 20 54 29 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 (a:.T,.b:.T).T</code></pre>.....
a26e0 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 ..<p>.......Returns.the.maximum.
a2700 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 value.of.<code>a</code>.and.<cod
a2720 65 3e 62 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 62 75 69 6c 74 69 6e 20 61 63 63 65 70 74 73 e>b</code>..This.builtin.accepts
a2740 20 69 6e 74 65 67 65 72 73 2c 20 66 6c 6f 61 74 73 2c 20 61 6e 64 20 76 65 63 74 6f 72 73 20 6f .integers,.floats,.and.vectors.o
a2760 66 20 65 69 74 68 65 72 2e 20 49 6e 20 74 68 65 20 6c 61 74 74 65 72 20 63 61 73 65 2c 20 74 68 f.either..In.the.latter.case,.th
a2780 65 20 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 65 6c 65 6d 65 6e 74 e.operation.is.performed.element
a27a0 20 77 69 73 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 .wise........</p>.......<p>.....
a27c0 20 20 4e 61 4e 73 20 61 72 65 20 68 61 6e 64 6c 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 20 69 ..NaNs.are.handled.as.follows:.i
a27e0 66 20 6f 6e 65 20 6f 66 20 74 68 65 20 6f 70 65 72 61 6e 64 73 20 6f 66 20 61 20 28 70 61 69 72 f.one.of.the.operands.of.a.(pair
a2800 77 69 73 65 29 20 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 4e 61 4e 2c 20 74 68 65 20 6f 74 68 65 wise).operation.is.NaN,.the.othe
a2820 72 20 6f 70 65 72 61 6e 64 20 69 73 20 72 65 74 75 72 6e 65 64 2e 20 49 66 20 62 6f 74 68 20 6f r.operand.is.returned..If.both.o
a2840 70 65 72 61 6e 64 73 20 61 72 65 20 4e 61 4e 2c 20 4e 61 4e 20 69 73 20 72 65 74 75 72 6e 65 64 perands.are.NaN,.NaN.is.returned
a2860 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 3c ........</p>.......<p>See.also:<
a2880 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 69 6e 22 3e 40 6d 69 6e 3c /p><ul>.<li><a.href="#min">@min<
a28a0 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e /a></li>.<li><a.href="#Vectors">
a28c0 56 65 63 74 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 0a 0a Vectors</a></li>.</ul>..........
a28e0 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6d 65 6d 63 70 79 22 3e 3c 61 20 68 72 65 66 3d 22 6e ......<h3.id="memcpy"><a.href="n
a2900 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6d 65 6d 63 70 79 22 3e 40 6d 65 6d 63 70 79 3c 2f 61 3e av.xhtml#toc-memcpy">@memcpy</a>
a2920 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 63 70 79 22 3e c2 .<a.class="hdr".href="#memcpy">.
a2940 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 .</a></h3>........<pre><code><sp
a2960 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 63 70 79 3c 2f an.class="tok-builtin">@memcpy</
a2980 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 6e 6f 61 6c 69 span>(<span.class="tok-kw">noali
a29a0 61 73 3c 2f 73 70 61 6e 3e 20 64 65 73 74 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b as</span>.dest,.<span.class="tok
a29c0 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 29 20 3c 73 70 61 -kw">noalias</span>.source).<spa
a29e0 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 2f n.class="tok-type">void</span></
a2a00 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 66 75 6e 63 74 69 code></pre>.......<p>This.functi
a2a20 6f 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 on.copies.bytes.from.one.region.
a2a40 6f 66 20 6d 65 6d 6f 72 79 20 74 6f 20 61 6e 6f 74 68 65 72 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 of.memory.to.another.</p>.......
a2a60 3c 70 3e 3c 63 6f 64 65 3e 64 65 73 74 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 6d <p><code>dest</code>.must.be.a.m
a2a80 75 74 61 62 6c 65 20 73 6c 69 63 65 2c 20 61 20 6d 75 74 61 62 6c 65 20 70 6f 69 6e 74 65 72 20 utable.slice,.a.mutable.pointer.
a2aa0 74 6f 20 61 6e 20 61 72 72 61 79 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 61 20 6d 75 74 61 62 6c to.an.array,.or.........a.mutabl
a2ac0 65 20 6d 61 6e 79 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 e.many-item.<a.href="#Pointers">
a2ae0 70 6f 69 6e 74 65 72 3c 2f 61 3e 2e 20 49 74 20 6d 61 79 20 68 61 76 65 20 61 6e 79 0a 20 20 20 pointer</a>..It.may.have.any....
a2b00 20 20 20 20 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 61 6e 64 20 69 74 20 6d 61 79 20 68 61 76 65 20 .....alignment,.and.it.may.have.
a2b20 61 6e 79 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c any.element.type.</p>.......<p><
a2b40 63 6f 64 65 3e 73 6f 75 72 63 65 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 73 6c 69 code>source</code>.must.be.a.sli
a2b60 63 65 2c 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 0a 20 20 20 20 20 20 20 20 61 6e 20 61 72 72 61 ce,.a.pointer.to.........an.arra
a2b80 79 2c 20 6f 72 20 61 20 6d 61 6e 79 2d 69 74 65 6d 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e y,.or.a.many-item.<a.href="#Poin
a2ba0 74 65 72 73 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 2e 20 49 74 20 6d 61 79 0a 20 20 20 20 20 20 ters">pointer</a>..It.may.......
a2bc0 20 20 68 61 76 65 20 61 6e 79 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 61 6e 64 20 69 74 20 6d 61 79 ..have.any.alignment,.and.it.may
a2be0 20 68 61 76 65 20 61 6e 79 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 2e 3c 2f 70 3e 0a 20 20 20 20 .have.any.element.type.</p>.....
a2c00 20 20 3c 70 3e 54 68 65 20 3c 63 6f 64 65 3e 73 6f 75 72 63 65 3c 2f 63 6f 64 65 3e 20 65 6c 65 ..<p>The.<code>source</code>.ele
a2c20 6d 65 6e 74 20 74 79 70 65 20 6d 75 73 74 20 73 75 70 70 6f 72 74 20 3c 61 20 68 72 65 66 3d 22 ment.type.must.support.<a.href="
a2c40 23 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3c 2f 61 #Type-Coercion">Type.Coercion</a
a2c60 3e 0a 20 20 20 20 20 20 20 20 69 6e 74 6f 20 74 68 65 20 3c 63 6f 64 65 3e 64 65 73 74 3c 2f 63 >.........into.the.<code>dest</c
a2c80 6f 64 65 3e 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 2e 20 54 68 65 20 65 6c 65 6d 65 6e 74 20 74 ode>.element.type..The.element.t
a2ca0 79 70 65 73 20 6d 61 79 20 68 61 76 65 0a 20 20 20 20 20 20 20 20 64 69 66 66 65 72 65 6e 74 20 ypes.may.have.........different.
a2cc0 41 42 49 20 73 69 7a 65 2c 20 68 6f 77 65 76 65 72 2c 20 74 68 61 74 20 6d 61 79 20 69 6e 63 75 ABI.size,.however,.that.may.incu
a2ce0 72 20 61 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 70 65 6e 61 6c 74 79 2e 3c 2f 70 3e 0a 20 20 20 r.a.performance.penalty.</p>....
a2d00 20 20 20 3c 70 3e 53 69 6d 69 6c 61 72 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 22 3e ...<p>Similar.to.<a.href="#for">
a2d20 66 6f 72 3c 2f 61 3e 20 6c 6f 6f 70 73 2c 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 6f 66 20 3c for</a>.loops,.at.least.one.of.<
a2d40 63 6f 64 65 3e 73 6f 75 72 63 65 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 20 20 3c code>source</code>.and.........<
a2d60 63 6f 64 65 3e 64 65 73 74 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 70 72 6f 76 69 64 65 20 61 20 code>dest</code>.must.provide.a.
a2d80 6c 65 6e 67 74 68 2c 20 61 6e 64 20 69 66 20 74 77 6f 20 6c 65 6e 67 74 68 73 20 61 72 65 20 70 length,.and.if.two.lengths.are.p
a2da0 72 6f 76 69 64 65 64 2c 0a 20 20 20 20 20 20 20 20 74 68 65 79 20 6d 75 73 74 20 62 65 20 65 71 rovided,.........they.must.be.eq
a2dc0 75 61 6c 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 46 69 6e 61 6c 6c 79 2c 20 74 68 65 20 74 ual.</p>.......<p>Finally,.the.t
a2de0 77 6f 20 6d 65 6d 6f 72 79 20 72 65 67 69 6f 6e 73 20 6d 75 73 74 20 6e 6f 74 20 6f 76 65 72 6c wo.memory.regions.must.not.overl
a2e00 61 70 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6d 65 ap.</p>...............<h3.id="me
a2e20 6d 73 65 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6d 65 6d mset"><a.href="nav.xhtml#toc-mem
a2e40 73 65 74 22 3e 40 6d 65 6d 73 65 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 set">@memset</a>.<a.class="hdr".
a2e60 68 72 65 66 3d 22 23 6d 65 6d 73 65 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 href="#memset">..</a></h3>......
a2e80 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ..<pre><code><span.class="tok-bu
a2ea0 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 2c 20 65 6c 65 6d iltin">@memset</span>(dest,.elem
a2ec0 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
a2ee0 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 54 68 69 73 20 pan></code></pre>.......<p>This.
a2f00 66 75 6e 63 74 69 6f 6e 20 73 65 74 73 20 61 6c 6c 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f function.sets.all.the.elements.o
a2f20 66 20 61 20 6d 65 6d 6f 72 79 20 72 65 67 69 6f 6e 20 74 6f 20 3c 63 6f 64 65 3e 65 6c 65 6d 3c f.a.memory.region.to.<code>elem<
a2f40 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 64 65 73 74 3c /code>.</p>.......<p><code>dest<
a2f60 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 20 61 20 6d 75 74 61 62 6c 65 20 73 6c 69 63 65 20 6f /code>.must.be.a.mutable.slice.o
a2f80 72 20 61 20 6d 75 74 61 62 6c 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e 20 61 72 72 61 79 2e r.a.mutable.pointer.to.an.array.
a2fa0 0a 20 20 20 20 20 20 49 74 20 6d 61 79 20 68 61 76 65 20 61 6e 79 20 61 6c 69 67 6e 6d 65 6e 74 .......It.may.have.any.alignment
a2fc0 2c 20 61 6e 64 20 69 74 20 6d 61 79 20 68 61 76 65 20 61 6e 79 20 65 6c 65 6d 65 6e 74 20 74 79 ,.and.it.may.have.any.element.ty
a2fe0 70 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 65 6c 65 6d 3c 2f 63 6f 64 pe.</p>.......<p><code>elem</cod
a3000 65 3e 20 69 73 20 63 6f 65 72 63 65 64 20 74 6f 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 74 79 70 e>.is.coerced.to.the.element.typ
a3020 65 20 6f 66 20 3c 63 6f 64 65 3e 64 65 73 74 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 e.of.<code>dest</code>.</p>.....
a3040 20 20 3c 70 3e 46 6f 72 20 73 65 63 75 72 65 6c 79 20 7a 65 72 6f 69 6e 67 20 6f 75 74 20 73 65 ..<p>For.securely.zeroing.out.se
a3060 6e 73 69 74 69 76 65 20 63 6f 6e 74 65 6e 74 73 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 2c 20 79 6f nsitive.contents.from.memory,.yo
a3080 75 20 73 68 6f 75 6c 64 20 75 73 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 74 64 2e 63 72 79 u.should.use.......<code>std.cry
a30a0 70 74 6f 2e 75 74 69 6c 73 2e 73 65 63 75 72 65 5a 65 72 6f 3c 2f 63 6f 64 65 3e 3c 2f 70 3e 0a pto.utils.secureZero</code></p>.
a30c0 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6d 69 6e 22 3e 3c 61 20 68 72 ..............<h3.id="min"><a.hr
a30e0 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6d 69 6e 22 3e 40 6d 69 6e 3c 2f 61 3e 20 ef="nav.xhtml#toc-min">@min</a>.
a3100 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6d 69 6e 22 3e c2 a7 3c 2f 61 <a.class="hdr".href="#min">..</a
a3120 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></h3>........<pre><code><span.c
a3140 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6d 69 6e 3c 2f 73 70 61 6e 3e 28 61 lass="tok-builtin">@min</span>(a
a3160 3a 20 54 2c 20 62 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 :.T,.b:.T).T</code></pre>.......
a3180 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 76 61 <p>.......Returns.the.minimum.va
a31a0 6c 75 65 20 6f 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e lue.of.<code>a</code>.and.<code>
a31c0 62 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 62 75 69 6c 74 69 6e 20 61 63 63 65 70 74 73 20 69 b</code>..This.builtin.accepts.i
a31e0 6e 74 65 67 65 72 73 2c 20 66 6c 6f 61 74 73 2c 20 61 6e 64 20 76 65 63 74 6f 72 73 20 6f 66 20 ntegers,.floats,.and.vectors.of.
a3200 65 69 74 68 65 72 2e 20 49 6e 20 74 68 65 20 6c 61 74 74 65 72 20 63 61 73 65 2c 20 74 68 65 20 either..In.the.latter.case,.the.
a3220 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 70 65 72 66 6f 72 6d 65 64 20 65 6c 65 6d 65 6e 74 20 77 operation.is.performed.element.w
a3240 69 73 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 ise........</p>.......<p>.......
a3260 4e 61 4e 73 20 61 72 65 20 68 61 6e 64 6c 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 20 69 66 20 NaNs.are.handled.as.follows:.if.
a3280 6f 6e 65 20 6f 66 20 74 68 65 20 6f 70 65 72 61 6e 64 73 20 6f 66 20 61 20 28 70 61 69 72 77 69 one.of.the.operands.of.a.(pairwi
a32a0 73 65 29 20 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 4e 61 4e 2c 20 74 68 65 20 6f 74 68 65 72 20 se).operation.is.NaN,.the.other.
a32c0 6f 70 65 72 61 6e 64 20 69 73 20 72 65 74 75 72 6e 65 64 2e 20 49 66 20 62 6f 74 68 20 6f 70 65 operand.is.returned..If.both.ope
a32e0 72 61 6e 64 73 20 61 72 65 20 4e 61 4e 2c 20 4e 61 4e 20 69 73 20 72 65 74 75 72 6e 65 64 2e 0a rands.are.NaN,.NaN.is.returned..
a3300 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 70 ......</p>.......<p>See.also:</p
a3320 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 61 78 22 3e 40 6d 61 78 3c 2f 61 ><ul>.<li><a.href="#max">@max</a
a3340 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 ></li>.<li><a.href="#Vectors">Ve
a3360 63 74 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 0a 0a 20 20 ctors</a></li>.</ul>............
a3380 20 20 20 20 3c 68 33 20 69 64 3d 22 77 61 73 6d 4d 65 6d 6f 72 79 53 69 7a 65 22 3e 3c 61 20 68 ....<h3.id="wasmMemorySize"><a.h
a33a0 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 77 61 73 6d 4d 65 6d 6f 72 79 53 69 7a ref="nav.xhtml#toc-wasmMemorySiz
a33c0 65 22 3e 40 77 61 73 6d 4d 65 6d 6f 72 79 53 69 7a 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d e">@wasmMemorySize</a>.<a.class=
a33e0 22 68 64 72 22 20 68 72 65 66 3d 22 23 77 61 73 6d 4d 65 6d 6f 72 79 53 69 7a 65 22 3e c2 a7 3c "hdr".href="#wasmMemorySize">..<
a3400 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e /a></h3>........<pre><code><span
a3420 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 77 61 73 6d 4d 65 6d 6f 72 79 .class="tok-builtin">@wasmMemory
a3440 53 69 7a 65 3c 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 Size</span>(index:.<span.class="
a3460 74 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 tok-type">u32</span>).<span.clas
a3480 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>
a34a0 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
a34c0 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 57 61 73 tion.returns.the.size.of.the.Was
a34e0 6d 20 6d 65 6d 6f 72 79 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 3c 63 6f 64 65 3e 69 6e 64 m.memory.identified.by.<code>ind
a3500 65 78 3c 2f 63 6f 64 65 3e 20 61 73 0a 20 20 20 20 20 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 76 ex</code>.as.......an.unsigned.v
a3520 61 6c 75 65 20 69 6e 20 75 6e 69 74 73 20 6f 66 20 57 61 73 6d 20 70 61 67 65 73 2e 20 4e 6f 74 alue.in.units.of.Wasm.pages..Not
a3540 65 20 74 68 61 74 20 65 61 63 68 20 57 61 73 6d 20 70 61 67 65 20 69 73 20 36 34 4b 42 20 69 6e e.that.each.Wasm.page.is.64KB.in
a3560 20 73 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 .size........</p>.......<p>.....
a3580 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
a35a0 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
a35c0 6d 73 20 75 73 75 61 6c 6c 79 20 75 73 65 66 75 6c 20 66 6f 72 20 61 6c 6c 6f 63 61 74 6f 72 0a ms.usually.useful.for.allocator.
a35e0 20 20 20 20 20 20 64 65 73 69 67 6e 65 72 73 20 74 61 72 67 65 74 69 6e 67 20 57 61 73 6d 2e 20 ......designers.targeting.Wasm..
a3600 53 6f 20 75 6e 6c 65 73 73 20 79 6f 75 20 61 72 65 20 77 72 69 74 69 6e 67 20 61 20 6e 65 77 20 So.unless.you.are.writing.a.new.
a3620 61 6c 6c 6f 63 61 74 6f 72 20 66 72 6f 6d 20 73 63 72 61 74 63 68 2c 20 79 6f 75 20 73 68 6f 75 allocator.from.scratch,.you.shou
a3640 6c 64 20 75 73 65 0a 20 20 20 20 20 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 3c 63 6f 64 ld.use.......something.like.<cod
a3660 65 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 e><span.class="tok-builtin">@imp
a3680 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"
a36a0 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 68 65 61 70 2e 57 61 >&quot;std&quot;</span>).heap.Wa
a36c0 73 6d 50 61 67 65 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f smPageAllocator</code>........</
a36e0 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
a3700 69 3e 3c 61 20 68 72 65 66 3d 22 23 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 22 3e 40 77 61 73 i><a.href="#wasmMemoryGrow">@was
a3720 6d 4d 65 6d 6f 72 79 47 72 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 mMemoryGrow</a></li>.</ul>......
a3740 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 ..........<h3.id="wasmMemoryGrow
a3760 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 77 61 73 6d 4d 65 6d "><a.href="nav.xhtml#toc-wasmMem
a3780 6f 72 79 47 72 6f 77 22 3e 40 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 3c 2f 61 3e 20 3c 61 20 oryGrow">@wasmMemoryGrow</a>.<a.
a37a0 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f class="hdr".href="#wasmMemoryGro
a37c0 77 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 w">..</a></h3>........<pre><code
a37e0 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 77 61 73 6d ><span.class="tok-builtin">@wasm
a3800 4d 65 6d 6f 72 79 47 72 6f 77 3c 2f 73 70 61 6e 3e 28 69 6e 64 65 78 3a 20 3c 73 70 61 6e 20 63 MemoryGrow</span>(index:.<span.c
a3820 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 64 65 6c 74 lass="tok-type">u32</span>,.delt
a3840 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 73 69 7a 65 3c a:.<span.class="tok-type">usize<
a3860 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 69 /span>).<span.class="tok-type">i
a3880 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 20 20 20 20 3c size</span></code></pre>.......<
a38a0 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 63 72 65 61 73 65 73 p>.......This.function.increases
a38c0 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 57 61 73 6d 20 6d 65 6d 6f 72 79 20 69 64 65 .the.size.of.the.Wasm.memory.ide
a38e0 6e 74 69 66 69 65 64 20 62 79 20 3c 63 6f 64 65 3e 69 6e 64 65 78 3c 2f 63 6f 64 65 3e 20 62 79 ntified.by.<code>index</code>.by
a3900 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 64 65 6c 74 61 3c 2f 63 6f 64 65 3e 20 69 6e 20 75 6e 69 .......<code>delta</code>.in.uni
a3920 74 73 20 6f 66 20 75 6e 73 69 67 6e 65 64 20 6e 75 6d 62 65 72 20 6f 66 20 57 61 73 6d 20 70 61 ts.of.unsigned.number.of.Wasm.pa
a3940 67 65 73 2e 20 4e 6f 74 65 20 74 68 61 74 20 65 61 63 68 20 57 61 73 6d 20 70 61 67 65 0a 20 20 ges..Note.that.each.Wasm.page...
a3960 20 20 20 20 69 73 20 36 34 4b 42 20 69 6e 20 73 69 7a 65 2e 20 4f 6e 20 73 75 63 63 65 73 73 2c ....is.64KB.in.size..On.success,
a3980 20 72 65 74 75 72 6e 73 20 70 72 65 76 69 6f 75 73 20 6d 65 6d 6f 72 79 20 73 69 7a 65 3b 20 6f .returns.previous.memory.size;.o
a39a0 6e 20 66 61 69 6c 75 72 65 2c 20 69 66 20 74 68 65 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 66 61 69 n.failure,.if.the.allocation.fai
a39c0 6c 73 2c 0a 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 2d 31 2e 0a 20 20 20 20 20 20 3c 2f 70 3e ls,.......returns.-1........</p>
a39e0 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 69 .......<p>.......This.function.i
a3a00 73 20 61 20 6c 6f 77 20 6c 65 76 65 6c 20 69 6e 74 72 69 6e 73 69 63 20 77 69 74 68 20 6e 6f 20 s.a.low.level.intrinsic.with.no.
a3a20 73 61 66 65 74 79 20 6d 65 63 68 61 6e 69 73 6d 73 20 75 73 75 61 6c 6c 79 20 75 73 65 66 75 6c safety.mechanisms.usually.useful
a3a40 20 66 6f 72 20 61 6c 6c 6f 63 61 74 6f 72 0a 20 20 20 20 20 20 64 65 73 69 67 6e 65 72 73 20 74 .for.allocator.......designers.t
a3a60 61 72 67 65 74 69 6e 67 20 57 61 73 6d 2e 20 53 6f 20 75 6e 6c 65 73 73 20 79 6f 75 20 61 72 65 argeting.Wasm..So.unless.you.are
a3a80 20 77 72 69 74 69 6e 67 20 61 20 6e 65 77 20 61 6c 6c 6f 63 61 74 6f 72 20 66 72 6f 6d 20 73 63 .writing.a.new.allocator.from.sc
a3aa0 72 61 74 63 68 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 75 73 65 0a 20 20 20 20 20 20 73 6f 6d 65 ratch,.you.should.use.......some
a3ac0 74 68 69 6e 67 20 6c 69 6b 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f thing.like.<code><span.class="to
a3ae0 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.
a3b00 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;<
a3b20 2f 73 70 61 6e 3e 29 2e 68 65 61 70 2e 57 61 73 6d 50 61 67 65 41 6c 6c 6f 63 61 74 6f 72 3c 2f /span>).heap.WasmPageAllocator</
a3b40 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 66 69 67 75 72 65 3e code>........</p>.......<figure>
a3b60 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 <figcaption.class="zig-cap"><cit
a3b80 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 77 61 73 6d 4d 65 6d 6f 72 79 47 72 e.class="file">test_wasmMemoryGr
a3ba0 6f 77 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f ow_builtin.zig</cite></figcaptio
a3bc0 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
a3be0 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
a3c00 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
a3c20 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
a3c40 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 77 ot;</span>);.<span.class="tok-kw
a3c60 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6e 61 74 69 76 65 5f 61 72 63 68 20 3d 20 3c 73 70 ">const</span>.native_arch.=.<sp
a3c80 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</
a3ca0 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
a3cc0 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 74 61 72 67 65 74 2e 63 t;builtin&quot;</span>).target.c
a3ce0 70 75 2e 61 72 63 68 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 pu.arch;.<span.class="tok-kw">co
a3d00 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 67 2e nst</span>.expect.=.std.testing.
a3d20 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 74 65 expect;..<span.class="tok-kw">te
a3d40 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">
a3d60 26 71 75 6f 74 3b 40 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 26 71 75 6f 74 3b 3c 2f 73 70 61 &quot;@wasmMemoryGrow&quot;</spa
a3d80 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 66 n>.{.....<span.class="tok-kw">if
a3da0 3c 2f 73 70 61 6e 3e 20 28 6e 61 74 69 76 65 5f 61 72 63 68 20 21 3d 20 2e 77 61 73 6d 33 32 29 </span>.(native_arch.!=..wasm32)
a3dc0 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
a3de0 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</
a3e00 73 70 61 6e 3e 2e 53 6b 69 70 5a 69 67 54 65 73 74 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c span>.SkipZigTest;......<span.cl
a3e20 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 72 65 76 20 3d ass="tok-kw">const</span>.prev.=
a3e40 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 77 61 73 6d .<span.class="tok-builtin">@wasm
a3e60 4d 65 6d 6f 72 79 53 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 MemorySize</span>(<span.class="t
a3e80 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 3c 73 70 61 6e 20 ok-number">0</span>);.....<span.
a3ea0 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 65 78 70 65 63 74 class="tok-kw">try</span>.expect
a3ec0 28 70 72 65 76 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 69 (prev.==.<span.class="tok-builti
a3ee0 6e 22 3e 40 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 n">@wasmMemoryGrow</span>(<span.
a3f00 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 20 3c 73 70 class="tok-number">0</span>,.<sp
a3f20 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 29 an.class="tok-number">1</span>))
a3f40 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 74 72 79 3c 2f ;.....<span.class="tok-kw">try</
a3f60 73 70 61 6e 3e 20 65 78 70 65 63 74 28 70 72 65 76 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d span>.expect(prev.+.<span.class=
a3f80 22 74 6f 6b 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 "tok-number">1</span>.==.<span.c
a3fa0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 77 61 73 6d 4d 65 6d 6f 72 79 53 69 lass="tok-builtin">@wasmMemorySi
a3fc0 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 75 6d 62 65 ze</span>(<span.class="tok-numbe
a3fe0 72 22 3e 30 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 2f 66 r">0</span>));.}</code></pre></f
a4000 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d igure><figure><figcaption.class=
a4020 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 "shell-cap">Shell</figcaption><p
a4040 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 77 61 re><samp>$.<kbd>zig.test.test_wa
a4060 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 smMemoryGrow_builtin.zig</kbd>.1
a4080 2f 31 20 74 65 73 74 5f 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 5f 62 75 69 6c 74 69 6e 2e 74 /1.test_wasmMemoryGrow_builtin.t
a40a0 65 73 74 2e 40 77 61 73 6d 4d 65 6d 6f 72 79 47 72 6f 77 2e 2e 2e 20 53 4b 49 50 0a 30 20 70 61 est.@wasmMemoryGrow....SKIP.0.pa
a40c0 73 73 65 64 3b 20 31 20 73 6b 69 70 70 65 64 3b 20 30 20 66 61 69 6c 65 64 2e 0a 3c 2f 73 61 6d ssed;.1.skipped;.0.failed..</sam
a40e0 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 p></pre></figure>.......<p>See.a
a4100 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 61 73 6d 4d lso:</p><ul>.<li><a.href="#wasmM
a4120 65 6d 6f 72 79 53 69 7a 65 22 3e 40 77 61 73 6d 4d 65 6d 6f 72 79 53 69 7a 65 3c 2f 61 3e 3c 2f emorySize">@wasmMemorySize</a></
a4140 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 33 20 69 64 3d li>.</ul>................<h3.id=
a4160 22 6d 6f 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6d 6f 64 "mod"><a.href="nav.xhtml#toc-mod
a4180 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 72 65 66 3d 22 ">@mod</a>.<a.class="hdr".href="
a41a0 23 6d 6f 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 #mod">..</a></h3>........<pre><c
a41c0 6f 64 65 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 ode><span.class="tok-builtin">@m
a41e0 6f 64 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 od</span>(numerator:.T,.denomina
a4200 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 70 3e tor:.T).T</code></pre>.......<p>
a4220 0a 20 20 20 20 20 20 4d 6f 64 75 6c 75 73 20 64 69 76 69 73 69 6f 6e 2e 20 46 6f 72 20 75 6e 73 .......Modulus.division..For.uns
a4240 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 61 6d 65 20 igned.integers.this.is.the.same.
a4260 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 6e 75 6d 65 72 61 74 6f 72 20 25 20 64 65 6e 6f 6d as.......<code>numerator.%.denom
a4280 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 65 65 73 inator</code>..Caller.guarantees
a42a0 20 3c 63 6f 64 65 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 .<code>denominator.&gt;.<span.cl
a42c0 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 3c 2f 63 6f 64 65 3e ass="tok-number">0</span></code>
a42e0 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 0a 20 20 20 20 20 20 6f 70 65 72 61 74 69 6f 6e 20 ,.otherwise.the.......operation.
a4300 77 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 52 65 6d 61 69 will.result.in.a.<a.href="#Remai
a4320 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 61 69 6e 64 65 72 nder-Division-by-Zero">Remainder
a4340 20 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 77 68 65 6e 20 72 75 6e 74 69 .Division.by.Zero</a>.when.runti
a4360 6d 65 20 73 61 66 65 74 79 20 63 68 65 63 6b 73 20 61 72 65 20 65 6e 61 62 6c 65 64 2e 0a 20 20 me.safety.checks.are.enabled....
a4380 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
a43a0 69 3e 3c 63 6f 64 65 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 i><code><span.class="tok-builtin
a43c0 22 3e 40 6d 6f 64 3c 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 ">@mod</span>(-<span.class="tok-
a43e0 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 22 74 number">5</span>,.<span.class="t
a4400 6f 6b 2d 6e 75 6d 62 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 ok-number">3</span>).==.<span.cl
a4420 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 3c 2f 63 6f 64 65 3e ass="tok-number">1</span></code>
a4440 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 3e 28 3c 73 70 61 6e </li>...........<li><code>(<span
a4460 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 6f 72 3c 2f .class="tok-builtin">@divFloor</
a4480 73 70 61 6e 3e 28 61 2c 20 62 29 20 2a 20 62 29 20 2b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 span>(a,.b).*.b).+.<span.class="
a44a0 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 61 2c 20 62 29 20 3d tok-builtin">@mod</span>(a,.b).=
a44c0 3d 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 =.a</code></li>.......</ul>.....
a44e0 20 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 ..<p>For.a.function.that.returns
a4500 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 73 65 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 .an.error.code,.see.<code><span.
a4520 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
a4540 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
a4560 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 6d 61 74 68 2e 6d 6f 64 3c 2f 63 6f 64 65 3e td&quot;</span>).math.mod</code>
a4580 2e 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 .</p>.......<p>See.also:</p><ul>
a45a0 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 65 6d 22 3e 40 72 65 6d 3c 2f 61 3e 3c 2f 6c 69 .<li><a.href="#rem">@rem</a></li
a45c0 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 33 20 69 64 3d 22 6d >.</ul>................<h3.id="m
a45e0 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 ulWithOverflow"><a.href="nav.xht
a4600 6d 6c 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 74 68 ml#toc-mulWithOverflow">@mulWith
a4620 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
a4640 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 33 3e 0a ="#mulWithOverflow">..</a></h3>.
a4660 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
a4680 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 77 3c 2f 73 70 ok-builtin">@mulWithOverflow</sp
a46a0 61 6e 3e 28 61 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 74 an>(a:.<span.class="tok-kw">anyt
a46c0 79 70 65 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 ype</span>,.b:.<span.class="tok-
a46e0 6b 77 22 3e 61 6e 79 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 kw">anytype</span>).<span.class=
a4700 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 "tok-kw">struct</span>.{.<span.c
a4720 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e lass="tok-builtin">@TypeOf</span
a4740 3e 28 61 2c 20 62 29 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 >(a,.b),.<span.class="tok-type">
a4760 75 31 3c 2f 73 70 61 6e 3e 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c u1</span>.}</code></pre>.......<
a4780 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 65 3e 61 20 2a 20 62 3c 2f 63 p>.......Performs.<code>a.*.b</c
a47a0 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 74 75 70 6c 65 20 77 69 74 68 20 74 68 ode>.and.returns.a.tuple.with.th
a47c0 65 20 72 65 73 75 6c 74 20 61 6e 64 20 61 20 70 6f 73 73 69 62 6c 65 20 6f 76 65 72 66 6c 6f 77 e.result.and.a.possible.overflow
a47e0 20 62 69 74 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 .bit........</p>...............<
a4800 68 33 20 69 64 3d 22 70 61 6e 69 63 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c h3.id="panic"><a.href="nav.xhtml
a4820 23 74 6f 63 2d 70 61 6e 69 63 22 3e 40 70 61 6e 69 63 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d #toc-panic">@panic</a>.<a.class=
a4840 22 68 64 72 22 20 68 72 65 66 3d 22 23 70 61 6e 69 63 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a "hdr".href="#panic">..</a></h3>.
a4860 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
a4880 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 6d 65 73 73 61 67 ok-builtin">@panic</span>(messag
a48a0 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<
a48c0 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
a48e0 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">
a4900 6e 6f 72 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 noreturn</span></code></pre>....
a4920 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 76 6f 6b 65 73 20 74 68 65 20 70 61 6e 69 63 20 68 ...<p>.......Invokes.the.panic.h
a4940 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 2e 20 42 79 20 64 65 66 61 75 6c 74 20 74 68 65 20 andler.function..By.default.the.
a4960 70 61 6e 69 63 20 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 63 61 6c panic.handler.function.......cal
a4980 6c 73 20 74 68 65 20 70 75 62 6c 69 63 20 3c 63 6f 64 65 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e ls.the.public.<code>panic</code>
a49a0 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 20 73 6f .function.exposed.in.the.root.so
a49c0 75 72 63 65 20 66 69 6c 65 2c 20 6f 72 0a 20 20 20 20 20 20 69 66 20 74 68 65 72 65 20 69 73 20 urce.file,.or.......if.there.is.
a49e0 6e 6f 74 20 6f 6e 65 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 20 3c 63 6f 64 65 3e 73 74 64 not.one.specified,.the.<code>std
a4a00 2e 62 75 69 6c 74 69 6e 2e 64 65 66 61 75 6c 74 5f 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 0a 20 20 .builtin.default_panic</code>...
a4a20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 3c 63 6f 64 65 3e 73 74 64 2f 62 75 69 6c ....function.from.<code>std/buil
a4a40 74 69 6e 2e 7a 69 67 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 tin.zig</code>........</p>......
a4a60 20 3c 70 3e 47 65 6e 65 72 61 6c 6c 79 20 69 74 20 69 73 20 62 65 74 74 65 72 20 74 6f 20 75 73 .<p>Generally.it.is.better.to.us
a4a80 65 20 3c 63 6f 64 65 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 e.<code><span.class="tok-builtin
a4aa0 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
a4ac0 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
a4ae0 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 6f 77 ebug.panic</code>............How
a4b00 65 76 65 72 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 ever,.<code><span.class="tok-bui
a4b20 6c 74 69 6e 22 3e 40 70 61 6e 69 63 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 ltin">@panic</span></code>.can.b
a4b40 65 20 75 73 65 66 75 6c 20 66 6f 72 20 32 20 73 63 65 6e 61 72 69 6f 73 3a 0a 20 20 20 20 20 20 e.useful.for.2.scenarios:.......
a4b60 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 72 6f 6d </p>.......<ul>.........<li>From
a4b80 20 6c 69 62 72 61 72 79 20 63 6f 64 65 2c 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 70 72 6f 67 72 .library.code,.calling.the.progr
a4ba0 61 6d 6d 65 72 27 73 20 70 61 6e 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 66 20 74 68 65 79 20 65 ammer's.panic.function.if.they.e
a4bc0 78 70 6f 73 65 64 20 6f 6e 65 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 73 6f 75 72 63 65 20 66 69 xposed.one.in.the.root.source.fi
a4be0 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 57 68 65 6e 20 6d 69 78 69 6e 67 le.</li>.........<li>When.mixing
a4c00 20 43 20 61 6e 64 20 5a 69 67 20 63 6f 64 65 2c 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 63 61 6e .C.and.Zig.code,.calling.the.can
a4c20 6f 6e 69 63 61 6c 20 70 61 6e 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 63 72 6f onical.panic.implementation.acro
a4c40 73 73 20 6d 75 6c 74 69 70 6c 65 20 2e 6f 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 ss.multiple..o.files.</li>......
a4c60 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 6c .</ul>.......<p>See.also:</p><ul
a4c80 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 >.<li><a.href="#Root-Source-File
a4ca0 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c ">Root.Source.File</a></li>.</ul
a4cc0 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 70 6f 70 43 6f 75 6e >................<h3.id="popCoun
a4ce0 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 70 6f 70 43 6f 75 t"><a.href="nav.xhtml#toc-popCou
a4d00 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 22 68 64 72 22 nt">@popCount</a>.<a.class="hdr"
a4d20 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 33 3e 0a 0a 20 .href="#popCount">..</a></h3>...
a4d40 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
a4d60 2d 62 75 69 6c 74 69 6e 22 3e 40 70 6f 70 43 6f 75 6e 74 3c 2f 73 70 61 6e 3e 28 6f 70 65 72 61 -builtin">@popCount</span>(opera
a4d80 6e 64 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 74 79 70 65 nd:.<span.class="tok-kw">anytype
a4da0 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 61 6e </span>).<span.class="tok-kw">an
a4dc0 79 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 ytype</span></code></pre>.......
a4de0 3c 70 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 <p><code><span.class="tok-builti
a4e00 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 6f 70 65 72 61 6e 64 29 3c 2f 63 6f 64 65 n">@TypeOf</span>(operand)</code
a4e20 3e 20 6d 75 73 74 20 62 65 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 2e 3c 2f 70 3e 0a 20 >.must.be.an.integer.type.</p>..
a4e40 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 6f 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e 20 6d 61 79 .....<p><code>operand</code>.may
a4e60 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 67 .be.an.<a.href="#Integers">integ
a4e80 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 63 er</a>.or.<a.href="#Vectors">vec
a4ea0 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 43 6f 75 tor</a>.</p>.......<p>.......Cou
a4ec0 6e 74 73 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 nts.the.number.of.bits.set.in.an
a4ee0 20 69 6e 74 65 67 65 72 20 2d 20 22 70 6f 70 75 6c 61 74 69 6f 6e 20 63 6f 75 6e 74 22 2e 0a 20 .integer.-."population.count"...
a4f00 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 20 3c 63 6f .....</p>.......<p>.......If.<co
a4f20 64 65 3e 6f 70 65 72 61 6e 64 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 61 20 68 72 65 66 3d 22 de>operand</code>.is.a.<a.href="
a4f40 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 6e 20 69 6e #comptime">comptime</a>-known.in
a4f60 74 65 67 65 72 2c 0a 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 teger,.......the.return.type.is.
a4f80 3c 63 6f 64 65 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 <code><span.class="tok-type">com
a4fa0 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 20 20 4f ptime_int</span></code>........O
a4fc0 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 61 6e 20 therwise,.the.return.type.is.an.
a4fe0 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 6f 72 20 76 65 63 74 6f 72 20 6f 66 20 75 6e unsigned.integer.or.vector.of.un
a5000 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 77 69 74 68 20 74 68 65 20 6d 69 6e 69 6d 75 6d signed.integers.with.the.minimum
a5020 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 61 6e 20 72 .number.......of.bits.that.can.r
a5040 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 65 20 69 6e epresent.the.bit.count.of.the.in
a5060 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 20 3c 70 3e teger.type........</p>.......<p>
a5080 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="#
a50a0 63 74 7a 22 3e 40 63 74 7a 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 ctz">@ctz</a></li>.<li><a.href="
a50c0 23 63 6c 7a 22 3e 40 63 6c 7a 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 #clz">@clz</a></li>.</ul>.......
a50e0 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 70 72 65 66 65 74 63 68 22 3e 3c 61 20 68 72 .........<h3.id="prefetch"><a.hr
a5100 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 70 72 65 66 65 74 63 68 22 3e 40 70 72 65 ef="nav.xhtml#toc-prefetch">@pre
a5120 66 65 74 63 68 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 fetch</a>.<a.class="hdr".href="#
a5140 70 72 65 66 65 74 63 68 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 prefetch">..</a></h3>........<pr
a5160 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-builtin
a5180 22 3e 40 70 72 65 66 65 74 63 68 3c 2f 73 70 61 6e 3e 28 70 74 72 3a 20 3c 73 70 61 6e 20 63 6c ">@prefetch</span>(ptr:.<span.cl
a51a0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 ass="tok-kw">anytype</span>,.<sp
a51c0 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
a51e0 3e 20 6f 70 74 69 6f 6e 73 3a 20 50 72 65 66 65 74 63 68 4f 70 74 69 6f 6e 73 29 20 3c 73 70 61 >.options:.PrefetchOptions).<spa
a5200 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 2f n.class="tok-type">void</span></
a5220 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 73 code></pre>.......<p>.......This
a5240 20 62 75 69 6c 74 69 6e 20 74 65 6c 6c 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 74 6f 20 65 .builtin.tells.the.compiler.to.e
a5260 6d 69 74 20 61 20 70 72 65 66 65 74 63 68 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 69 66 20 73 75 mit.a.prefetch.instruction.if.su
a5280 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 0a 20 20 20 20 20 20 74 61 72 67 65 74 20 43 50 55 2e pported.by.the.......target.CPU.
a52a0 20 49 66 20 74 68 65 20 74 61 72 67 65 74 20 43 50 55 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 .If.the.target.CPU.does.not.supp
a52c0 6f 72 74 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 70 72 65 66 65 74 63 68 20 69 6e 73 74 72 ort.the.requested.prefetch.instr
a52e0 75 63 74 69 6f 6e 2c 0a 20 20 20 20 20 20 74 68 69 73 20 62 75 69 6c 74 69 6e 20 69 73 20 61 20 uction,.......this.builtin.is.a.
a5300 6e 6f 2d 6f 70 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 6e 6f 20 65 66 66 65 no-op..This.function.has.no.effe
a5320 63 74 20 6f 6e 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 ct.on.the.behavior.of.the.progra
a5340 6d 2c 0a 20 20 20 20 20 20 6f 6e 6c 79 20 6f 6e 20 74 68 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 m,.......only.on.the.performance
a5360 20 63 68 61 72 61 63 74 65 72 69 73 74 69 63 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 .characteristics........</p>....
a5380 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 ...<p>.......The.<code>ptr</code
a53a0 3e 20 61 72 67 75 6d 65 6e 74 20 6d 61 79 20 62 65 20 61 6e 79 20 70 6f 69 6e 74 65 72 20 74 79 >.argument.may.be.any.pointer.ty
a53c0 70 65 20 61 6e 64 20 64 65 74 65 72 6d 69 6e 65 73 20 74 68 65 20 6d 65 6d 6f 72 79 0a 20 20 20 pe.and.determines.the.memory....
a53e0 20 20 20 61 64 64 72 65 73 73 20 74 6f 20 70 72 65 66 65 74 63 68 2e 20 54 68 69 73 20 66 75 6e ...address.to.prefetch..This.fun
a5400 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 64 65 72 65 66 65 72 65 6e 63 65 20 74 68 65 20 70 ction.does.not.dereference.the.p
a5420 6f 69 6e 74 65 72 2c 20 69 74 20 69 73 20 70 65 72 66 65 63 74 6c 79 20 6c 65 67 61 6c 0a 20 20 ointer,.it.is.perfectly.legal...
a5440 20 20 20 20 74 6f 20 70 61 73 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 69 6e 76 61 6c 69 64 ....to.pass.a.pointer.to.invalid
a5460 20 6d 65 6d 6f 72 79 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 6e 6f 20 .memory.to.this.function.and.no.
a5480 69 6c 6c 65 67 61 6c 20 62 65 68 61 76 69 6f 72 20 77 69 6c 6c 20 72 65 73 75 6c 74 2e 0a 20 20 illegal.behavior.will.result....
a54a0 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 50 72 65 66 65 74 63 68 ....</p>.......<p><code>Prefetch
a54c0 4f 70 74 69 6f 6e 73 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 Options</code>.can.be.found.with
a54e0 20 3c 63 6f 64 65 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 .<code><span.class="tok-builtin"
a5500 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
a5520 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 62 75 -str">&quot;std&quot;</span>).bu
a5540 69 6c 74 69 6e 2e 50 72 65 66 65 74 63 68 4f 70 74 69 6f 6e 73 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 iltin.PrefetchOptions</code>.</p
a5560 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 70 74 72 43 61 73 74 22 >...............<h3.id="ptrCast"
a5580 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 70 74 72 43 61 73 74 22 ><a.href="nav.xhtml#toc-ptrCast"
a55a0 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 68 72 65 >@ptrCast</a>.<a.class="hdr".hre
a55c0 66 3d 22 23 70 74 72 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 f="#ptrCast">..</a></h3>........
a55e0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c <pre><code><span.class="tok-buil
a5600 74 69 6e 22 3e 40 70 74 72 43 61 73 74 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 tin">@ptrCast</span>(value:.<spa
a5620 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 n.class="tok-kw">anytype</span>)
a5640 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 74 79 70 65 3c 2f 73 .<span.class="tok-kw">anytype</s
a5660 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>.....
a5680 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 79 70 65 ..Converts.a.pointer.of.one.type
a56a0 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 2e 20 54 .to.a.pointer.of.another.type..T
a56c0 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 74 68 65 20 69 6e 66 65 72 72 65 64 20 72 he.return.type.is.the.inferred.r
a56e0 65 73 75 6c 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 esult.type........</p>.......<p>
a5700 0a 20 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 .......<a.href="#Optional-Pointe
a5720 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 61 72 65 20 61 6c rs">Optional.Pointers</a>.are.al
a5740 6c 6f 77 65 64 2e 20 43 61 73 74 69 6e 67 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 lowed..Casting.an.optional.point
a5760 65 72 20 77 68 69 63 68 20 69 73 20 3c 61 20 68 72 65 66 3d 22 23 6e 75 6c 6c 22 3e 6e 75 6c 6c er.which.is.<a.href="#null">null
a5780 3c 2f 61 3e 0a 20 20 20 20 20 20 74 6f 20 61 20 6e 6f 6e 2d 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 </a>.......to.a.non-optional.poi
a57a0 6e 74 65 72 20 69 6e 76 6f 6b 65 73 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 20 3c 61 20 68 nter.invokes.safety-checked.<a.h
a57c0 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 66 69 ref="#Undefined-Behavior">Undefi
a57e0 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 20 20 ned.Behavior</a>........</p>....
a5800 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...<p>.......<code><span.class="
a5820 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 61 6e 3e 3c 2f 63 6f tok-builtin">@ptrCast</span></co
a5840 64 65 3e 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 66 6f 72 3a 0a 20 20 20 20 20 20 3c 2f de>.cannot.be.used.for:.......</
a5860 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 52 65 6d 6f p>.......<ul>...........<li>Remo
a5880 76 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e ving.<code><span.class="tok-kw">
a58a0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 71 75 61 6c 69 66 69 65 72 2c 20 75 const</span></code>.qualifier,.u
a58c0 73 65 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6e 73 74 43 61 73 74 22 3e 40 63 6f 6e 73 74 43 61 se.<a.href="#constCast">@constCa
a58e0 73 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 6d 6f 76 st</a>.</li>...........<li>Remov
a5900 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 ing.<code><span.class="tok-kw">v
a5920 6f 6c 61 74 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 71 75 61 6c 69 66 69 65 72 2c olatile</span></code>.qualifier,
a5940 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 76 6f 6c 61 74 69 6c 65 43 61 73 74 22 3e 40 76 6f .use.<a.href="#volatileCast">@vo
a5960 6c 61 74 69 6c 65 43 61 73 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c latileCast</a>.</li>...........<
a5980 6c 69 3e 43 68 61 6e 67 69 6e 67 20 70 6f 69 6e 74 65 72 20 61 64 64 72 65 73 73 20 73 70 61 63 li>Changing.pointer.address.spac
a59a0 65 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 61 64 64 72 53 70 61 63 65 43 61 73 74 22 3e e,.use.<a.href="#addrSpaceCast">
a59c0 40 61 64 64 72 53 70 61 63 65 43 61 73 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 @addrSpaceCast</a>.</li>........
a59e0 20 20 20 3c 6c 69 3e 49 6e 63 72 65 61 73 69 6e 67 20 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e 6d ...<li>Increasing.pointer.alignm
a5a00 65 6e 74 2c 20 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 ent,.use.<a.href="#alignCast">@a
a5a20 6c 69 67 6e 43 61 73 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 lignCast</a>.</li>...........<li
a5a40 3e 43 61 73 74 69 6e 67 20 61 20 6e 6f 6e 2d 73 6c 69 63 65 20 70 6f 69 6e 74 65 72 20 74 6f 20 >Casting.a.non-slice.pointer.to.
a5a60 61 20 73 6c 69 63 65 2c 20 75 73 65 20 73 6c 69 63 69 6e 67 20 73 79 6e 74 61 78 20 3c 63 6f 64 a.slice,.use.slicing.syntax.<cod
a5a80 65 3e 70 74 72 5b 73 74 61 72 74 2e 2e 65 6e 64 5d 3c 2f 63 6f 64 65 3e 2e 3c 2f 6c 69 3e 0a 20 e>ptr[start..end]</code>.</li>..
a5aa0 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 33 20 69 64 3d .....</ul>...............<h3.id=
a5ac0 22 70 74 72 46 72 6f 6d 49 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 "ptrFromInt"><a.href="nav.xhtml#
a5ae0 74 6f 63 2d 70 74 72 46 72 6f 6d 49 6e 74 22 3e 40 70 74 72 46 72 6f 6d 49 6e 74 3c 2f 61 3e 20 toc-ptrFromInt">@ptrFromInt</a>.
a5b00 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 70 74 72 46 72 6f 6d 49 6e 74 <a.class="hdr".href="#ptrFromInt
a5b20 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e ">..</a></h3>........<pre><code>
a5b40 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 46 72 <span.class="tok-builtin">@ptrFr
a5b60 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 61 64 64 72 65 73 73 3a 20 3c 73 70 61 6e 20 63 6c 61 73 omInt</span>(address:.<span.clas
a5b80 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 3c 73 70 61 6e s="tok-type">usize</span>).<span
a5ba0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f .class="tok-kw">anytype</span></
a5bc0 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 76 code></pre>.......<p>.......Conv
a5be0 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 72 65 66 3d 22 23 50 erts.an.integer.to.a.<a.href="#P
a5c00 6f 69 6e 74 65 72 73 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 2e 20 54 68 65 20 72 65 74 75 72 6e ointers">pointer</a>..The.return
a5c20 20 74 79 70 65 20 69 73 20 74 68 65 20 69 6e 66 65 72 72 65 64 20 72 65 73 75 6c 74 20 74 79 70 .type.is.the.inferred.result.typ
a5c40 65 2e 0a 09 09 09 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 e.....To.convert.the.other.way,.
a5c60 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 46 72 6f 6d 50 74 72 22 3e 40 69 6e 74 46 72 use.<a.href="#intFromPtr">@intFr
a5c80 6f 6d 50 74 72 3c 2f 61 3e 2e 20 43 61 73 74 69 6e 67 20 61 6e 20 61 64 64 72 65 73 73 20 6f 66 omPtr</a>..Casting.an.address.of
a5ca0 20 30 20 74 6f 20 61 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 0a 20 20 20 20 20 20 77 .0.to.a.destination.type.......w
a5cc0 68 69 63 68 20 69 6e 20 6e 6f 74 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 2d 50 hich.in.not.<a.href="#Optional-P
a5ce0 6f 69 6e 74 65 72 73 22 3e 6f 70 74 69 6f 6e 61 6c 3c 2f 61 3e 20 61 6e 64 20 64 6f 65 73 20 6e ointers">optional</a>.and.does.n
a5d00 6f 74 20 68 61 76 65 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ot.have.the.<code><span.class="t
a5d20 6f 6b 2d 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 ok-kw">allowzero</span></code>.a
a5d40 74 74 72 69 62 75 74 65 20 77 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 61 0a 20 20 20 20 20 20 ttribute.will.result.in.a.......
a5d60 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 2d 43 61 73 74 2d 49 6e 76 61 6c 69 64 2d 4e <a.href="#Pointer-Cast-Invalid-N
a5d80 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 3c 2f ull">Pointer.Cast.Invalid.Null</
a5da0 61 3e 20 70 61 6e 69 63 20 77 68 65 6e 20 72 75 6e 74 69 6d 65 20 73 61 66 65 74 79 20 63 68 65 a>.panic.when.runtime.safety.che
a5dc0 63 6b 73 20 61 72 65 20 65 6e 61 62 6c 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 cks.are.enabled........</p>.....
a5de0 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 70 ..<p>.......If.the.destination.p
a5e00 6f 69 6e 74 65 72 20 74 79 70 65 20 64 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 72 65 ointer.type.does.not.allow.addre
a5e20 73 73 20 7a 65 72 6f 20 61 6e 64 20 3c 63 6f 64 65 3e 61 64 64 72 65 73 73 3c 2f 63 6f 64 65 3e ss.zero.and.<code>address</code>
a5e40 0a 20 20 20 20 20 20 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 .......is.zero,.this.invokes.saf
a5e60 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 69 6e 65 64 2d ety-checked.<a.href="#Undefined-
a5e80 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 2f 61 3e Behavior">Undefined.Behavior</a>
a5ea0 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 68 33 20 69 ........</p>...............<h3.i
a5ec0 64 3d 22 72 65 6d 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 72 d="rem"><a.href="nav.xhtml#toc-r
a5ee0 65 6d 22 3e 40 72 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 em">@rem</a>.<a.class="hdr".href
a5f00 3d 22 23 72 65 6d 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e ="#rem">..</a></h3>........<pre>
a5f20 3c 63 6f 64 65 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 <code><span.class="tok-builtin">
a5f40 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
a5f60 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>.......<
a5f80 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
a5fa0 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
a5fc0 61 6d 65 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 6e 75 6d 65 72 61 74 6f 72 20 25 20 64 ame.as.......<code>numerator.%.d
a5fe0 65 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 enominator</code>..Caller.guaran
a6000 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 26 67 74 3b 20 3c 73 70 61 tees.<code>denominator.&gt;.<spa
a6020 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 3c 2f 63 n.class="tok-number">0</span></c
a6040 6f 64 65 3e 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 0a 20 20 20 20 20 20 6f 70 65 72 61 74 ode>,.otherwise.the.......operat
a6060 69 6f 6e 20 77 69 6c 6c 20 72 65 73 75 6c 74 20 69 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 52 ion.will.result.in.a.<a.href="#R
a6080 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 61 69 emainder-Division-by-Zero">Remai
a60a0 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 20 77 68 65 6e 20 72 nder.Division.by.Zero</a>.when.r
a60c0 75 6e 74 69 6d 65 20 73 61 66 65 74 79 20 63 68 65 63 6b 73 20 61 72 65 20 65 6e 61 62 6c 65 64 untime.safety.checks.are.enabled
a60e0 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 20 ........</p>.......<ul>.........
a6100 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 ..<li><code><span.class="tok-bui
a6120 6c 74 69 6e 22 3e 40 72 65 6d 3c 2f 73 70 61 6e 3e 28 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ltin">@rem</span>(-<span.class="
a6140 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
a6160 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 3d 3d 20 2d 3c 73 70 s="tok-number">3</span>).==.-<sp
a6180 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 3c 2f an.class="tok-number">2</span></
a61a0 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 3e 28 code></li>...........<li><code>(
a61c0 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 64 69 76 54 72 <span.class="tok-builtin">@divTr
a61e0 75 6e 63 3c 2f 73 70 61 6e 3e 28 61 2c 20 62 29 20 2a 20 62 29 20 2b 20 3c 73 70 61 6e 20 63 6c unc</span>(a,.b).*.b).+.<span.cl
a6200 61 73 73 3d 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 61 2c ass="tok-builtin">@rem</span>(a,
a6220 20 62 29 20 3d 3d 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 .b).==.a</code></li>.......</ul>
a6240 0a 20 20 20 20 20 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 .......<p>For.a.function.that.re
a6260 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 73 65 65 20 3c 63 6f 64 65 3e 3c turns.an.error.code,.see.<code><
a6280 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
a62a0 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
a62c0 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 72 65 6d 3c 2f uot;std&quot;</span>).math.rem</
a62e0 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 6f 3a 3c 2f 70 code>.</p>.......<p>See.also:</p
a6300 3e 3c 75 6c 3e 0a 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 ><ul>.<li><a.href="#mod">@mod</a
a6320 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 33 20 ></li>.</ul>................<h3.
a6340 69 64 3d 22 72 65 74 75 72 6e 41 64 64 72 65 73 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e id="returnAddress"><a.href="nav.
a6360 78 68 74 6d 6c 23 74 6f 63 2d 72 65 74 75 72 6e 41 64 64 72 65 73 73 22 3e 40 72 65 74 75 72 6e xhtml#toc-returnAddress">@return
a6380 41 64 64 72 65 73 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 Address</a>.<a.class="hdr".href=
a63a0 22 23 72 65 74 75 72 6e 41 64 64 72 65 73 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 "#returnAddress">..</a></h3>....
a63c0 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....<pre><code><span.class="tok-
a63e0 62 75 69 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 builtin">@returnAddress</span>()
a6400 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
a6420 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>.....
a6440 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 20 61 64 64 72 ..This.function.returns.the.addr
a6460 65 73 73 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 ess.of.the.next.machine.code.ins
a6480 74 72 75 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 truction.that.will.be.executed..
a64a0 20 20 20 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 .....when.the.current.function.r
a64c0 65 74 75 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 eturns........</p>.......<p>....
a64e0 20 20 20 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 ...The.implications.of.this.are.
a6500 74 61 72 67 65 74 2d 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 target-specific.and.not.consiste
a6520 6e 74 20 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 nt.across.......all.platforms...
a6540 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
a6560 75 6e 63 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 unction.is.only.valid.within.fun
a6580 63 74 69 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 ction.scope..If.the.function.get
a65a0 73 20 69 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 s.inlined.into.......a.calling.f
a65c0 75 6e 63 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 unction,.the.returned.address.wi
a65e0 6c 6c 20 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 ll.apply.to.the.calling.function
a6600 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 68 33 20 69 ........</p>...............<h3.i
a6620 64 3d 22 73 65 6c 65 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f d="select"><a.href="nav.xhtml#to
a6640 63 2d 73 65 6c 65 63 74 22 3e 40 73 65 6c 65 63 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 c-select">@select</a>.<a.class="
a6660 68 64 72 22 20 68 72 65 66 3d 22 23 73 65 6c 65 63 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a hdr".href="#select">..</a></h3>.
a6680 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
a66a0 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 6c 65 63 74 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e ok-builtin">@select</span>(<span
a66c0 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>.
a66e0 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 2f T:.<span.class="tok-type">type</
a6700 73 70 61 6e 3e 2c 20 70 72 65 64 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 span>,.pred:.<span.class="tok-bu
a6720 69 6c 74 69 6e 22 3e 40 56 65 63 74 6f 72 3c 2f 73 70 61 6e 3e 28 6c 65 6e 2c 20 3c 73 70 61 6e iltin">@Vector</span>(len,.<span
a6740 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 2c 20 .class="tok-type">bool</span>),.
a6760 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 40 56 65 a:.<span.class="tok-builtin">@Ve
a6780 63 74 6f 72 3c 2f 73 70 61 6e 3e 28 6c 65 6e 2c 20 54 29 2c 20 62 3a 20 3c 73 70 61 6e 20 63 6c ctor</span>(len,.T),.b:.<span.cl
a67a0 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 70 61 6e 3e ass="tok-builtin">@Vector</span>
a67c0 28 6c 65 6e 2c 20 54 29 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 (len,.T)).<span.class="tok-built
a67e0 69 6e 22 3e 40 56 65 63 74 6f 72 3c 2f 73 70 61 6e 3e 28 6c 65 6e 2c 20 54 29 3c 2f 63 6f 64 65 in">@Vector</span>(len,.T)</code
a6800 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 6c 65 63 74 73 20 ></pre>.......<p>.......Selects.
a6820 76 61 6c 75 65 73 20 65 6c 65 6d 65 6e 74 2d 77 69 73 65 20 66 72 6f 6d 20 3c 63 6f 64 65 3e 61 values.element-wise.from.<code>a
a6840 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 62 61 73 65 64 20 </code>.or.<code>b</code>.based.
a6860 6f 6e 20 3c 63 6f 64 65 3e 70 72 65 64 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 3c 63 6f 64 65 3e 70 on.<code>pred</code>..If.<code>p
a6880 72 65 64 5b 69 5d 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 red[i]</code>.is.<code><span.cla
a68a0 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>
a68c0 2c 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 ,.the.corresponding.element.in.t
a68e0 68 65 20 72 65 73 75 6c 74 20 77 69 6c 6c 20 62 65 20 3c 63 6f 64 65 3e 61 5b 69 5d 3c 2f 63 6f he.result.will.be.<code>a[i]</co
a6900 64 65 3e 20 61 6e 64 20 6f 74 68 65 72 77 69 73 65 20 3c 63 6f 64 65 3e 62 5b 69 5d 3c 2f 63 6f de>.and.otherwise.<code>b[i]</co
a6920 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
a6940 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 56 65 63 74 6f 72 73 o:</p><ul>.<li><a.href="#Vectors
a6960 22 3e 56 65 63 74 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 ">Vectors</a></li>.</ul>........
a6980 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 22 3e 3c ........<h3.id="setAlignStack"><
a69a0 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 73 65 74 41 6c 69 67 6e 53 74 a.href="nav.xhtml#toc-setAlignSt
a69c0 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 20 63 6c 61 73 73 ack">@setAlignStack</a>.<a.class
a69e0 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 6b 22 3e c2 a7 3c ="hdr".href="#setAlignStack">..<
a6a00 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e /a></h3>........<pre><code><span
a6a20 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 41 6c 69 67 6e 53 74 .class="tok-builtin">@setAlignSt
a6a40 61 63 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 ack</span>(<span.class="tok-kw">
a6a60 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 61 6c 69 67 6e 6d 65 6e 74 3a 20 3c 73 70 61 6e comptime</span>.alignment:.<span
a6a80 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 75 32 39 3c 2f 73 70 61 6e 3e 29 20 3c 73 .class="tok-type">u29</span>).<s
a6aa0 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>
a6ac0 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 45 6e </code></pre>.......<p>.......En
a6ae0 73 75 72 65 73 20 74 68 61 74 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 68 61 76 65 20 sures.that.a.function.will.have.
a6b00 61 20 73 74 61 63 6b 20 61 6c 69 67 6e 6d 65 6e 74 20 6f 66 20 61 74 20 6c 65 61 73 74 20 3c 63 a.stack.alignment.of.at.least.<c
a6b20 6f 64 65 3e 61 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 ode>alignment</code>.bytes......
a6b40 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 65 74 ..</p>...............<h3.id="set
a6b60 43 6f 6c 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 73 65 74 Cold"><a.href="nav.xhtml#toc-set
a6b80 43 6f 6c 64 22 3e 40 73 65 74 43 6f 6c 64 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 Cold">@setCold</a>.<a.class="hdr
a6ba0 22 20 68 72 65 66 3d 22 23 73 65 74 43 6f 6c 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 ".href="#setCold">..</a></h3>...
a6bc0 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
a6be0 2d 62 75 69 6c 74 69 6e 22 3e 40 73 65 74 43 6f 6c 64 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 -builtin">@setCold</span>(<span.
a6c00 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 69 class="tok-kw">comptime</span>.i
a6c20 73 5f 63 6f 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 62 s_cold:.<span.class="tok-type">b
a6c40 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 6b 2d 74 79 70 ool</span>).<span.class="tok-typ
a6c60 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 65 3e 0a 20 20 20 20 e">void</span></code></pre>.....
a6c80 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 65 6c 6c 73 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 ..<p>.......Tells.the.optimizer.
a6ca0 74 68 61 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 28 6f 72 that.the.current.function.is.(or
a6cc0 20 69 73 20 6e 6f 74 29 20 72 61 72 65 6c 79 20 63 61 6c 6c 65 64 2e 0a 0a 20 20 20 20 20 20 54 .is.not).rarely.called.........T
a6ce0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 76 61 6c 69 64 20 77 69 74 68 69 his.function.is.only.valid.withi
a6d00 6e 20 66 75 6e 63 74 69 6f 6e 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 n.function.scope........</p>....
a6d20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 65 74 45 76 61 6c 42 72 61 6e 63 68 ...........<h3.id="setEvalBranch
a6d40 51 75 6f 74 61 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 73 65 Quota"><a.href="nav.xhtml#toc-se
a6d60 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 42 72 61 6e 63 68 tEvalBranchQuota">@setEvalBranch
a6d80 51 75 6f 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 Quota</a>.<a.class="hdr".href="#
a6da0 73 65 74 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 33 3e 0a setEvalBranchQuota">..</a></h3>.
a6dc0 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
a6de0 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 61 3c ok-builtin">@setEvalBranchQuota<
a6e00 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
a6e20 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6e 65 77 5f 71 75 6f 74 61 3a 20 3c 73 70 61 6e 20 63 6c 61 time</span>.new_quota:.<span.cla
a6e40 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 3c 73 70 61 6e 20 ss="tok-type">u32</span>).<span.
a6e60 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 2f 63 6f class="tok-type">void</span></co
a6e80 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 63 72 65 61 de></pre>.......<p>.......Increa
a6ea0 73 65 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 61 72 se.the.maximum.number.of.backwar
a6ec0 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 63 6f ds.branches.that.compile-time.co
a6ee0 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 6f 72 de.......execution.can.use.befor
a6f00 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 6c 65 e.giving.up.and.making.a.compile
a6f20 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 20 20 .error........</p>.......<p>....
a6f40 20 20 20 49 66 20 74 68 65 20 3c 63 6f 64 65 3e 6e 65 77 5f 71 75 6f 74 61 3c 2f 63 6f 64 65 3e ...If.the.<code>new_quota</code>
a6f60 20 69 73 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 71 75 6f .is.smaller.than.the.default.quo
a6f80 74 61 20 28 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 ta.(<code><span.class="tok-numbe
a6fa0 72 22 3e 31 30 30 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 r">1000</span></code>).or.......
a6fc0 61 20 70 72 65 76 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 a.previously.explicitly.set.quot
a6fe0 61 2c 20 69 74 20 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 a,.it.is.ignored........</p>....
a7000 20 20 20 3c 70 3e 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 ...<p>.......Example:.......</p>
a7020 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 .......<figure><figcaption.class
a7040 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ="zig-cap"><cite.class="file">te
a7060 73 74 5f 77 69 74 68 6f 75 74 5f 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 5f 62 75 st_without_setEvalBranchQuota_bu
a7080 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 iltin.zig</cite></figcaption><pr
a70a0 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">tes
a70c0 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">&
a70e0 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 quot;foo&quot;</span>.{.....<spa
a7100 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>
a7120 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 3e .{.........<span.class="tok-kw">
a7140 76 61 72 3c 2f 73 70 61 6e 3e 20 69 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d var</span>.i.=.<span.class="tok-
a7160 6e 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 number">0</span>;.........<span.
a7180 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 28 69 20 26 class="tok-kw">while</span>.(i.&
a71a0 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 31 30 30 lt;.<span.class="tok-number">100
a71c0 31 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 74 1</span>).:.(i.+=.<span.class="t
a71e0 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 20 20 20 7d 0a 7d 3c ok-number">1</span>).{}.....}.}<
a7200 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
a7220 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
a7240 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
a7260 69 67 20 74 65 73 74 20 74 65 73 74 5f 77 69 74 68 6f 75 74 5f 73 65 74 45 76 61 6c 42 72 61 6e ig.test.test_without_setEvalBran
a7280 63 68 51 75 6f 74 61 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 chQuota_builtin.zig</kbd>.<span.
a72a0 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 77 class="sgr-1m">docgen_tmp/test_w
a72c0 69 74 68 6f 75 74 5f 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 5f 62 75 69 6c 74 69 ithout_setEvalBranchQuota_builti
a72e0 6e 2e 7a 69 67 3a 34 3a 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 n.zig:4:9:.</span><span.class="s
a7300 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 gr-31m">error:.</span><span.clas
a7320 73 3d 22 73 67 72 2d 31 6d 22 3e 65 76 61 6c 75 61 74 69 6f 6e 20 65 78 63 65 65 64 65 64 20 31 s="sgr-1m">evaluation.exceeded.1
a7340 30 30 30 20 62 61 63 6b 77 61 72 64 73 20 62 72 61 6e 63 68 65 73 0a 3c 2f 73 70 61 6e 3e 20 20 000.backwards.branches.</span>..
a7360 20 20 20 20 20 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b 20 31 30 30 31 29 20 3a 20 28 69 20 2b ......while.(i.&lt;.1001).:.(i.+
a7380 3d 20 31 29 20 7b 7d 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 =.1).{}.........<span.class="sgr
a73a0 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e -32m">^~~~~~~~~~~~~~~~~~~~~~~~~~
a73c0 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 ~~~~.</span><span.class="sgr-1m"
a73e0 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 77 69 74 68 6f 75 74 5f 73 65 74 45 76 61 6c >docgen_tmp/test_without_setEval
a7400 42 72 61 6e 63 68 51 75 6f 74 61 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3a 34 3a 39 3a 20 3c 2f 73 BranchQuota_builtin.zig:4:9:.</s
a7420 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 pan><span.class="sgr-36m">note:.
a7440 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 75 73 65 20 </span><span.class="sgr-1m">use.
a7460 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 28 29 20 74 6f 20 72 61 69 73 65 20 74 @setEvalBranchQuota().to.raise.t
a7480 68 65 20 62 72 61 6e 63 68 20 6c 69 6d 69 74 20 66 72 6f 6d 20 31 30 30 30 0a 3c 2f 73 70 61 6e he.branch.limit.from.1000.</span
a74a0 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c >.</samp></pre></figure>.......<
a74c0 70 3e 4e 6f 77 20 77 65 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 p>Now.we.use.<code><span.class="
a74e0 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 61 tok-builtin">@setEvalBranchQuota
a7500 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 66 69 67 75 72 </span></code>:</p>.......<figur
a7520 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 e><figcaption.class="zig-cap"><c
a7540 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 65 74 45 76 61 6c 42 72 61 ite.class="file">test_setEvalBra
a7560 6e 63 68 51 75 6f 74 61 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 nchQuota_builtin.zig</cite></fig
a7580 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
a75a0 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=
a75c0 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 3e "tok-str">&quot;foo&quot;</span>
a75e0 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
a7600 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 73 time</span>.{.........<span.clas
a7620 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 75 s="tok-builtin">@setEvalBranchQu
a7640 6f 74 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 ota</span>(<span.class="tok-numb
a7660 65 72 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 er">1001</span>);.........<span.
a7680 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 3d 20 3c 73 class="tok-kw">var</span>.i.=.<s
a76a0 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 3b pan.class="tok-number">0</span>;
a76c0 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 77 68 .........<span.class="tok-kw">wh
a76e0 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 61 73 73 3d 22 ile</span>.(i.&lt;.<span.class="
a7700 74 6f 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 tok-number">1001</span>).:.(i.+=
a7720 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
a7740 6e 3e 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 2f 66 69 67 n>).{}.....}.}</code></pre></fig
a7760 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 ure><figure><figcaption.class="s
a7780 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 hell-cap">Shell</figcaption><pre
a77a0 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 65 74 45 ><samp>$.<kbd>zig.test.test_setE
a77c0 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e valBranchQuota_builtin.zig</kbd>
a77e0 0a 31 2f 31 20 74 65 73 74 5f 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 5f 62 75 69 .1/1.test_setEvalBranchQuota_bui
a7800 6c 74 69 6e 2e 74 65 73 74 2e 66 6f 6f 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 ltin.test.foo....OK.All.1.tests.
a7820 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 0a passed..</samp></pre></figure>..
a7840 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><
a7860 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 61 3e 3c a.href="#comptime">comptime</a><
a7880 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 33 20 69 64 /li>.</ul>................<h3.id
a78a0 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 6e 61 76 2e 78 68 74 ="setFloatMode"><a.href="nav.xht
a78c0 6d 6c 23 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 ml#toc-setFloatMode">@setFloatMo
a78e0 64 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 73 65 74 de</a>.<a.class="hdr".href="#set
a7900 46 6c 6f 61 74 4d 6f 64 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 FloatMode">..</a></h3>........<p
a7920 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 re><code><span.class="tok-builti
a7940 6e 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c n">@setFloatMode</span>(<span.cl
a7960 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 6f 64 ass="tok-kw">comptime</span>.mod
a7980 65 3a 20 46 6c 6f 61 74 4d 6f 64 65 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 e:.FloatMode).<span.class="tok-t
a79a0 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 65 3e 0a 20 20 ype">void</span></code></pre>...
a79c0 20 20 20 20 3c 70 3e 43 68 61 6e 67 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 ....<p>Changes.the.current.scope
a79e0 27 73 20 72 75 6c 65 73 20 61 62 6f 75 74 20 68 6f 77 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 's.rules.about.how.floating.poin
a7a00 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 61 72 65 20 64 65 66 69 6e 65 64 2e 3c 2f 70 3e 0a 20 20 t.operations.are.defined.</p>...
a7a20 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 20 20 20 20 ....<ul>.........<li>...........
a7a40 20 20 3c 63 6f 64 65 3e 53 74 72 69 63 74 3c 2f 63 6f 64 65 3e 20 28 64 65 66 61 75 6c 74 29 20 ..<code>Strict</code>.(default).
a7a60 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 66 6f 6c 6c -.Floating.point.operations.foll
a7a80 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 20 20 20 20 ow.strict.IEEE.compliance.......
a7aa0 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 20 20 ...</li>.........<li>...........
a7ac0 20 20 3c 63 6f 64 65 3e 4f 70 74 69 6d 69 7a 65 64 3c 2f 63 6f 64 65 3e 20 2d 20 46 6c 6f 61 74 ..<code>Optimized</code>.-.Float
a7ae0 69 6e 67 20 70 6f 69 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 6d 61 79 20 64 6f 20 61 6c 6c 20 ing.point.operations.may.do.all.
a7b00 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e of.the.following:...........<ul>
a7b20 0a 20 20 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 .............<li>Assume.the.argu
a7b40 6d 65 6e 74 73 20 61 6e 64 20 72 65 73 75 6c 74 20 61 72 65 20 6e 6f 74 20 4e 61 4e 2e 20 4f 70 ments.and.result.are.not.NaN..Op
a7b60 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
a7b80 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 4e 61 4e 73 2c 20 62 in.defined.behavior.over.NaNs,.b
a7ba0 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 75 6e ut.the.value.of.the.result.is.un
a7bc0 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 41 73 defined.</li>.............<li>As
a7be0 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 20 61 72 sume.the.arguments.and.result.ar
a7c00 65 20 6e 6f 74 20 2b 2f 2d 49 6e 66 2e 20 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 e.not.+/-Inf..Optimizations.are.
a7c20 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
a7c40 69 6f 72 20 6f 76 65 72 20 2b 2f 2d 49 6e 66 2c 20 62 75 74 20 74 68 65 20 76 61 6c 75 65 20 6f ior.over.+/-Inf,.but.the.value.o
a7c60 66 20 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 f.the.result.is.undefined.</li>.
a7c80 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 72 65 61 74 20 74 68 65 20 73 69 67 6e 20 6f ............<li>Treat.the.sign.o
a7ca0 66 20 61 20 7a 65 72 6f 20 61 72 67 75 6d 65 6e 74 20 6f 72 20 72 65 73 75 6c 74 20 61 73 20 69 f.a.zero.argument.or.result.as.i
a7cc0 6e 73 69 67 6e 69 66 69 63 61 6e 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c nsignificant.</li>.............<
a7ce0 6c 69 3e 55 73 65 20 74 68 65 20 72 65 63 69 70 72 6f 63 61 6c 20 6f 66 20 61 6e 20 61 72 67 75 li>Use.the.reciprocal.of.an.argu
a7d00 6d 65 6e 74 20 72 61 74 68 65 72 20 74 68 61 6e 20 70 65 72 66 6f 72 6d 20 64 69 76 69 73 69 6f ment.rather.than.perform.divisio
a7d20 6e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 65 72 66 6f 72 6d 20 n.</li>.............<li>Perform.
a7d40 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63 6f 6e 74 72 61 63 74 69 6f 6e 20 28 65 2e 67 2e floating-point.contraction.(e.g.
a7d60 20 66 75 73 69 6e 67 20 61 20 6d 75 6c 74 69 70 6c 79 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 .fusing.a.multiply.followed.by.a
a7d80 6e 20 61 64 64 69 74 69 6f 6e 20 69 6e 74 6f 20 61 20 66 75 73 65 64 20 6d 75 6c 74 69 70 6c 79 n.addition.into.a.fused.multiply
a7da0 2d 61 64 64 29 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 65 72 66 -add).</li>.............<li>Perf
a7dc0 6f 72 6d 20 61 6c 67 65 62 72 61 69 63 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 72 61 orm.algebraically.equivalent.tra
a7de0 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 74 68 61 74 20 6d 61 79 20 63 68 61 6e 67 65 20 72 65 73 nsformations.that.may.change.res
a7e00 75 6c 74 73 20 69 6e 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 65 2e 67 2e 20 72 65 61 ults.in.floating.point.(e.g..rea
a7e20 73 73 6f 63 69 61 74 65 29 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a ssociate).</li>...........</ul>.
a7e40 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 ..........This.is.equivalent.to.
a7e60 3c 63 6f 64 65 3e 2d 66 66 61 73 74 2d 6d 61 74 68 3c 2f 63 6f 64 65 3e 20 69 6e 20 47 43 43 2e <code>-ffast-math</code>.in.GCC.
a7e80 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 20 20 .........</li>.......</ul>......
a7ea0 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6d 6f .<p>.......The.floating.point.mo
a7ec0 64 65 20 69 73 20 69 6e 68 65 72 69 74 65 64 20 62 79 20 63 68 69 6c 64 20 73 63 6f 70 65 73 2c de.is.inherited.by.child.scopes,
a7ee0 20 61 6e 64 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 69 6e 20 61 6e 79 20 73 63 .and.can.be.overridden.in.any.sc
a7f00 6f 70 65 2e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 73 65 74 20 74 68 65 20 66 6c 6f 61 74 ope........You.can.set.the.float
a7f20 69 6e 67 20 70 6f 69 6e 74 20 6d 6f 64 65 20 69 6e 20 61 20 73 74 72 75 63 74 20 6f 72 20 6d 6f ing.point.mode.in.a.struct.or.mo
a7f40 64 75 6c 65 20 73 63 6f 70 65 20 62 79 20 75 73 69 6e 67 20 61 20 63 6f 6d 70 74 69 6d 65 20 62 dule.scope.by.using.a.comptime.b
a7f60 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 3c 63 6f 64 65 3e lock........</p>.......<p><code>
a7f80 46 6c 6f 61 74 4d 6f 64 65 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 FloatMode</code>.can.be.found.wi
a7fa0 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 th.<code><span.class="tok-builti
a7fc0 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
a7fe0 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>).
a8000 62 75 69 6c 74 69 6e 2e 46 6c 6f 61 74 4d 6f 64 65 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 builtin.FloatMode</code>.</p>...
a8020 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.
a8040 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 72 61 74 69 6f 6e 73 href="#Floating-Point-Operations
a8060 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 2f 61 3e 3c ">Floating.Point.Operations</a><
a8080 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 33 20 69 64 /li>.</ul>................<h3.id
a80a0 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 65 66 3d 22 6e 61 76 ="setRuntimeSafety"><a.href="nav
a80c0 2e 78 68 74 6d 6c 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 .xhtml#toc-setRuntimeSafety">@se
a80e0 74 52 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 tRuntimeSafety</a>.<a.class="hdr
a8100 22 20 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 ".href="#setRuntimeSafety">..</a
a8120 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></h3>........<pre><code><span.c
a8140 6c 61 73 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 lass="tok-builtin">@setRuntimeSa
a8160 66 65 74 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 6b 77 22 fety</span>(<span.class="tok-kw"
a8180 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 73 61 66 65 74 79 5f 6f 6e 3a 20 3c 73 70 61 >comptime</span>.safety_on:.<spa
a81a0 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 20 n.class="tok-type">bool</span>).
a81c0 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
a81e0 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 20 20 n></code></pre>.......<p>.......
a8200 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 65 63 Sets.whether.runtime.safety.chec
a8220 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 68 61 ks.are.enabled.for.the.scope.tha
a8240 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 20 20 t.contains.the.function.call....
a8260 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ....</p>.......<figure><figcapti
a8280 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
a82a0 66 69 6c 65 22 3e 74 65 73 74 5f 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 5f 62 75 69 6c file">test_setRuntimeSafety_buil
a82c0 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e tin.zig</cite></figcaption><pre>
a82e0 3c 63 6f 64 65 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 <code><span.class="tok-kw">test<
a8300 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
a8320 6f 74 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 ot;@setRuntimeSafety&quot;</span
a8340 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 74 >.{.....<span.class="tok-comment
a8360 22 3e 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 ">//.The.builtin.applies.to.the.
a8380 73 63 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 scope.that.it.is.called.in..So.h
a83a0 65 72 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 ere,.integer.overflow</span>....
a83c0 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 77 69 .<span.class="tok-comment">//.wi
a83e0 6c 6c 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 ll.not.be.caught.in.ReleaseFast.
a8400 61 6e 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 and.ReleaseSmall.modes:</span>..
a8420 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">//.
a8440 76 61 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 var.x:.u8.=.255;</span>.....<spa
a8460 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 2b 3d 20 31 3b n.class="tok-comment">//.x.+=.1;
a8480 20 2f 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 .//.undefined.behavior.in.Releas
a84a0 65 46 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 eFast/ReleaseSmall.modes.</span>
a84c0 0a 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 .....{.........<span.class="tok-
a84e0 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 62 6c 6f 63 6b 20 68 comment">//.However.this.block.h
a8500 61 73 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 as.safety.enabled,.so.safety.che
a8520 63 6b 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 cks.happen.here,</span>.........
a8540 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 65 76 65 <span.class="tok-comment">//.eve
a8560 6e 20 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 n.in.ReleaseFast.and.ReleaseSmal
a8580 6c 20 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 l.modes.</span>.........<span.cl
a85a0 61 73 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 ass="tok-builtin">@setRuntimeSaf
a85c0 65 74 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 ety</span>(<span.class="tok-null
a85e0 22 3e 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 ">true</span>);.........<span.cl
a8600 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 6e ass="tok-kw">var</span>.x:.<span
a8620 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 3c 73 .class="tok-type">u8</span>.=.<s
a8640 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 73 70 61 6e pan.class="tok-number">255</span
a8660 3e 3b 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 >;.........x.+=.<span.class="tok
a8680 2d 6e 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 -number">1</span>;..........{...
a86a0 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 6d 6d 65 ..........<span.class="tok-comme
a86c0 6e 74 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 nt">//.The.value.can.be.overridd
a86e0 65 6e 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 en.at.any.scope..So.here.integer
a8700 20 6f 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 .overflow</span>.............<sp
a8720 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 6f 75 6c 64 20 an.class="tok-comment">//.would.
a8740 6e 6f 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 not.be.caught.in.any.build.mode.
a8760 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 61 73 73 3d </span>.............<span.class=
a8780 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 79 3c "tok-builtin">@setRuntimeSafety<
a87a0 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 66 61 /span>(<span.class="tok-null">fa
a87c0 6c 73 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 lse</span>);.............<span.c
a87e0 6c 61 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 lass="tok-comment">//.var.x:.u8.
a8800 3d 20 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 =.255;</span>.............<span.
a8820 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;./
a8840 2f 20 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 /.undefined.behavior.in.all.buil
a8860 64 20 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 d.modes.</span>.........}.....}.
a8880 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
a88a0 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
a88c0 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
a88e0 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 5f >zig.test.test_setRuntimeSafety_
a8900 62 75 69 6c 74 69 6e 2e 7a 69 67 20 2d 4f 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 6b 62 64 3e 0a builtin.zig.-OReleaseFast</kbd>.
a8920 31 2f 31 20 74 65 73 74 5f 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 5f 62 75 69 6c 74 69 1/1.test_setRuntimeSafety_builti
a8940 6e 2e 74 65 73 74 2e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 2e 2e 2e 20 74 68 72 65 n.test.@setRuntimeSafety....thre
a8960 61 64 20 31 34 33 37 33 30 20 70 61 6e 69 63 3a 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f ad.143730.panic:.integer.overflo
a8980 77 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 w.<span.class="sgr-1m">/home/and
a89a0 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 y/src/zig-0.12.x/docgen_tmp/test
a89c0 5f 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3a 31 31 _setRuntimeSafety_builtin.zig:11
a89e0 3a 31 31 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 :11</span>:.<span.class="sgr-2m"
a8a00 3e 30 78 31 30 30 61 31 62 34 20 69 6e 20 74 65 73 74 2e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 >0x100a1b4.in.test.@setRuntimeSa
a8a20 66 65 74 79 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 78 20 2b 3d 20 fety.(test)</span>.........x.+=.
a8a40 31 3b 0a 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 1;...........<span.class="sgr-32
a8a60 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 m">^</span>.<span.class="sgr-1m"
a8a80 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 >/home/andy/src/zig-0.12.x/lib/c
a8aa0 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 35 38 3a 32 35 3c 2f ompiler/test_runner.zig:158:25</
a8ac0 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 span>:.<span.class="sgr-2m">0x10
a8ae0 30 62 35 31 64 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 0b51d.in.main.(test)</span>.....
a8b00 20 20 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 ....if.(test_fn.func()).|_|.{...
a8b20 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 6c 61 73 ......................<span.clas
a8b40 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 s="sgr-32m">^</span>.<span.class
a8b60 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 ="sgr-1m">/home/andy/src/zig-0.1
a8b80 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 2.x/lib/std/start.zig:501:22</sp
a8ba0 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 30 61 an>:.<span.class="sgr-2m">0x100a
a8bc0 32 39 36 20 69 6e 20 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 296.in.posixCallMainAndExit.(tes
a8be0 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 61 69 6e 28 t)</span>.............root.main(
a8c00 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 6e 20 63 6c );......................<span.cl
a8c20 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ass="sgr-32m">^</span>.<span.cla
a8c40 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 ss="sgr-1m">/home/andy/src/zig-0
a8c60 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 .12.x/lib/std/start.zig:253:5</s
a8c80 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 30 pan>:.<span.class="sgr-2m">0x100
a8ca0 61 31 64 31 20 69 6e 20 5f 73 74 61 72 74 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 a1d1.in._start.(test)</span>....
a8cc0 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 .asm.volatile.(switch.(native_ar
a8ce0 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e ch).{.....<span.class="sgr-32m">
a8d00 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f ^</span>.<span.class="sgr-1m">??
a8d20 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 ?:?:?</span>:.<span.class="sgr-2
a8d40 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 65 72 72 6f 72 m">0x0.in.???.(???)</span>.error
a8d60 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 63 72 61 :.the.following.test.command.cra
a8d80 73 68 65 64 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f shed:./home/andy/src/zig-0.12.x/
a8da0 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 37 39 31 35 38 34 36 38 64 38 63 39 34 64 35 34 34 35 61 36 zig-cache/o/79158468d8c94d5445a6
a8dc0 63 38 32 38 39 63 34 37 61 61 66 65 2f 74 65 73 74 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c c8289c47aafe/test.</samp></pre><
a8de0 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 65 3a 20 69 74 20 69 73 20 3c 61 /figure>.......<p>Note:.it.is.<a
a8e00 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
a8e20 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 39 37 38 22 3e 70 6c 61 6e 6e 65 64 3c 2f 61 3e 20 74 6f g/zig/issues/978">planned</a>.to
a8e40 20 72 65 70 6c 61 63 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 .replace.......<code><span.class
a8e60 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 79 ="tok-builtin">@setRuntimeSafety
a8e80 3c 2f 73 70 61 6e 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 </span></code>.with.<code>@optim
a8ea0 69 7a 65 46 6f 72 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 izeFor</code></p>...............
a8ec0 20 3c 68 33 20 69 64 3d 22 73 68 6c 45 78 61 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e .<h3.id="shlExact"><a.href="nav.
a8ee0 78 68 74 6d 6c 23 74 6f 63 2d 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 61 xhtml#toc-shlExact">@shlExact</a
a8f00 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 6c 45 78 61 63 74 >.<a.class="hdr".href="#shlExact
a8f20 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e ">..</a></h3>........<pre><code>
a8f40 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 78 <span.class="tok-builtin">@shlEx
a8f60 61 63 74 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 act</span>(value:.T,.shift_amt:.
a8f80 4c 6f 67 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 Log2T).T</code></pre>.......<p>.
a8fa0 20 20 20 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 ......Performs.the.left.shift.op
a8fc0 65 72 61 74 69 6f 6e 20 28 3c 63 6f 64 65 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 63 6f 64 65 3e 29 2e eration.(<code>&lt;&lt;</code>).
a8fe0 0a 20 20 20 20 20 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 2c 20 74 68 .......For.unsigned.integers,.th
a9000 65 20 72 65 73 75 6c 74 20 69 73 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 64 65 66 69 6e 65 64 22 e.result.is.<a.href="#undefined"
a9020 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 61 3e 20 69 66 20 61 6e 79 20 31 20 62 69 74 73 0a 20 20 20 >undefined</a>.if.any.1.bits....
a9040 20 20 20 61 72 65 20 73 68 69 66 74 65 64 20 6f 75 74 2e 20 46 6f 72 20 73 69 67 6e 65 64 20 69 ...are.shifted.out..For.signed.i
a9060 6e 74 65 67 65 72 73 2c 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 3c 61 20 68 72 65 66 3d 22 ntegers,.the.result.is.<a.href="
a9080 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 69 66 0a 20 20 20 #undefined">undefined</a>.if....
a90a0 20 20 20 61 6e 79 20 62 69 74 73 20 74 68 61 74 20 64 69 73 61 67 72 65 65 20 77 69 74 68 20 74 ...any.bits.that.disagree.with.t
a90c0 68 65 20 72 65 73 75 6c 74 61 6e 74 20 73 69 67 6e 20 62 69 74 20 61 72 65 20 73 68 69 66 74 65 he.resultant.sign.bit.are.shifte
a90e0 64 20 6f 75 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 d.out........</p>.......<p>.....
a9100 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 3c 2f 63 ..The.type.of.<code>shift_amt</c
a9120 6f 64 65 3e 20 69 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 ode>.is.an.unsigned.integer.with
a9140 20 3c 63 6f 64 65 3e 6c 6f 67 32 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 .<code>log2(<span.class="tok-bui
a9160 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 69 ltin">@typeInfo</span>(T).Int.bi
a9180 74 73 29 3c 2f 63 6f 64 65 3e 20 62 69 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 ts)</code>.bits................T
a91a0 68 69 73 20 69 73 20 62 65 63 61 75 73 65 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 20 26 his.is.because.<code>shift_amt.&
a91c0 67 74 3b 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 gt;=.<span.class="tok-builtin">@
a91e0 74 79 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 54 29 2e 49 6e 74 2e 62 69 74 73 3c 2f 63 6f 64 typeInfo</span>(T).Int.bits</cod
a9200 65 3e 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 e>.is.undefined.behavior........
a9220 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 3e 3c 73 70 61 6e </p>.......<p>.......<code><span
a9240 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</
a9260 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 6d 6f 64 65 6c 65 64 20 61 73 20 61 6e 20 69 6e span></code>.is.modeled.as.an.in
a9280 74 65 67 65 72 20 77 69 74 68 20 61 6e 20 69 6e 66 69 6e 69 74 65 20 6e 75 6d 62 65 72 20 6f 66 teger.with.an.infinite.number.of
a92a0 20 62 69 74 73 2c 0a 20 20 20 20 20 20 6d 65 61 6e 69 6e 67 20 74 68 61 74 20 69 6e 20 73 75 63 .bits,.......meaning.that.in.suc
a92c0 68 20 63 61 73 65 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 h.case,.<code><span.class="tok-b
a92e0 75 69 6c 74 69 6e 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 uiltin">@shlExact</span></code>.
a9300 61 6c 77 61 79 73 20 70 72 6f 64 75 63 65 73 20 61 20 72 65 73 75 6c 74 20 61 6e 64 0a 20 20 20 always.produces.a.result.and....
a9320 20 20 20 63 61 6e 6e 6f 74 20 70 72 6f 64 75 63 65 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f ...cannot.produce.a.compile.erro
a9340 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:
a9360 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 72 45 78 61 63 74 22 </p><ul>.<li><a.href="#shrExact"
a9380 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d >@shrExact</a></li>.<li><a.href=
a93a0 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 72 66 "#shlWithOverflow">@shlWithOverf
a93c0 6c 6f 77 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 low</a></li>.</ul>..............
a93e0 20 20 3c 68 33 20 69 64 3d 22 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 ..<h3.id="shlWithOverflow"><a.hr
a9400 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f ef="nav.xhtml#toc-shlWithOverflo
a9420 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 63 6c 61 73 73 w">@shlWithOverflow</a>.<a.class
a9440 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 6f 77 22 3e c2 ="hdr".href="#shlWithOverflow">.
a9460 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 .</a></h3>........<pre><code><sp
a9480 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 57 69 74 68 4f an.class="tok-builtin">@shlWithO
a94a0 76 65 72 66 6c 6f 77 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 verflow</span>(a:.<span.class="t
a94c0 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 2c 20 73 68 69 66 74 5f 61 6d 74 ok-kw">anytype</span>,.shift_amt
a94e0 3a 20 4c 6f 67 32 54 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 73 74 :.Log2T).<span.class="tok-kw">st
a9500 72 75 63 74 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 62 ruct</span>.{.<span.class="tok-b
a9520 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 61 29 2c 20 3c 73 70 61 6e uiltin">@TypeOf</span>(a),.<span
a9540 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 20 7d 3c 2f 63 .class="tok-type">u1</span>.}</c
a9560 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 50 65 72 66 6f ode></pre>.......<p>.......Perfo
a9580 72 6d 73 20 3c 63 6f 64 65 3e 61 20 26 6c 74 3b 26 6c 74 3b 20 62 3c 2f 63 6f 64 65 3e 20 61 6e rms.<code>a.&lt;&lt;.b</code>.an
a95a0 64 20 72 65 74 75 72 6e 73 20 61 20 74 75 70 6c 65 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c d.returns.a.tuple.with.the.resul
a95c0 74 20 61 6e 64 20 61 20 70 6f 73 73 69 62 6c 65 20 6f 76 65 72 66 6c 6f 77 20 62 69 74 2e 0a 20 t.and.a.possible.overflow.bit...
a95e0 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 74 79 .....</p>.......<p>.......The.ty
a9600 70 65 20 6f 66 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 pe.of.<code>shift_amt</code>.is.
a9620 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 3c 63 6f 64 65 3e 6c an.unsigned.integer.with.<code>l
a9640 6f 67 32 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 og2(<span.class="tok-builtin">@t
a9660 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 74 6f 6b 2d ypeInfo</span>(<span.class="tok-
a9680 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 61 29 29 2e 49 6e 74 2e builtin">@TypeOf</span>(a)).Int.
a96a0 62 69 74 73 29 3c 2f 63 6f 64 65 3e 20 62 69 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 bits)</code>.bits...............
a96c0 20 54 68 69 73 20 69 73 20 62 65 63 61 75 73 65 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 .This.is.because.<code>shift_amt
a96e0 20 26 67 74 3b 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 .&gt;=.<span.class="tok-builtin"
a9700 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 74 >@typeInfo</span>(<span.class="t
a9720 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 61 29 29 2e 49 ok-builtin">@TypeOf</span>(a)).I
a9740 6e 74 2e 62 69 74 73 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 nt.bits</code>.is.undefined.beha
a9760 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 61 6c vior........</p>.......<p>See.al
a9780 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 78 61 so:</p><ul>.<li><a.href="#shlExa
a97a0 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 68 72 ct">@shlExact</a></li>.<li><a.hr
a97c0 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
a97e0 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 33 20 69 64 3d 22 73 >.</ul>................<h3.id="s
a9800 68 72 45 78 61 63 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d hrExact"><a.href="nav.xhtml#toc-
a9820 73 68 72 45 78 61 63 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 shrExact">@shrExact</a>.<a.class
a9840 3d 22 68 64 72 22 20 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 ="hdr".href="#shrExact">..</a></
a9860 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 h3>........<pre><code><span.clas
a9880 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 73 70 61 6e 3e s="tok-builtin">@shrExact</span>
a98a0 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 29 20 54 3c 2f (value:.T,.shift_amt:.Log2T).T</
a98c0 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 50 65 72 66 code></pre>.......<p>.......Perf
a98e0 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 69 6f 6e 20 28 orms.the.right.shift.operation.(
a9900 3c 63 6f 64 65 3e 26 67 74 3b 26 67 74 3b 3c 2f 63 6f 64 65 3e 29 2e 20 43 61 6c 6c 65 72 20 67 <code>&gt;&gt;</code>)..Caller.g
a9920 75 61 72 61 6e 74 65 65 73 0a 20 20 20 20 20 20 74 68 61 74 20 74 68 65 20 73 68 69 66 74 20 77 uarantees.......that.the.shift.w
a9940 69 6c 6c 20 6e 6f 74 20 73 68 69 66 74 20 61 6e 79 20 31 20 62 69 74 73 20 6f 75 74 2e 0a 20 20 ill.not.shift.any.1.bits.out....
a9960 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 74 79 70 ....</p>.......<p>.......The.typ
a9980 65 20 6f 66 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 e.of.<code>shift_amt</code>.is.a
a99a0 6e 20 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 3e 6c 6f n.unsigned.integer.with.<code>lo
a99c0 67 32 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 g2(<span.class="tok-builtin">@ty
a99e0 70 65 49 6e 66 6f 3c 2f 73 70 61 6e 3e 28 54 29 2e 49 6e 74 2e 62 69 74 73 29 3c 2f 63 6f 64 65 peInfo</span>(T).Int.bits)</code
a9a00 3e 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 >.bits................This.is.be
a9a20 63 61 75 73 65 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 20 26 67 74 3b 3d 20 3c 73 70 61 cause.<code>shift_amt.&gt;=.<spa
a9a40 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 6e 66 6f 3c n.class="tok-builtin">@typeInfo<
a9a60 2f 73 70 61 6e 3e 28 54 29 2e 49 6e 74 2e 62 69 74 73 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 /span>(T).Int.bits</code>.is.und
a9a80 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>.....
a9aa0 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
a9ac0 65 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 ef="#shlExact">@shlExact</a></li
a9ae0 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"
a9b00 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>
a9b20 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 68 75 66 66 6c 65 22 ................<h3.id="shuffle"
a9b40 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 73 68 75 66 66 6c 65 22 ><a.href="nav.xhtml#toc-shuffle"
a9b60 3e 40 73 68 75 66 66 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 >@shuffle</a>.<a.class="hdr".hre
a9b80 66 3d 22 23 73 68 75 66 66 6c 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 f="#shuffle">..</a></h3>........
a9ba0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c <pre><code><span.class="tok-buil
a9bc0 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 73 73 tin">@shuffle</span>(<span.class
a9be0 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 73 70 ="tok-kw">comptime</span>.E:.<sp
a9c00 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 2c an.class="tok-type">type</span>,
a9c20 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 40 56 .a:.<span.class="tok-builtin">@V
a9c40 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 61 6e ector</span>(a_len,.E),.b:.<span
a9c60 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 70 .class="tok-builtin">@Vector</sp
a9c80 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 6b 2d an>(b_len,.E),.<span.class="tok-
a9ca0 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 6e 20 kw">comptime</span>.mask:.<span.
a9cc0 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 70 61 class="tok-builtin">@Vector</spa
a9ce0 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 74 79 n>(mask_len,.<span.class="tok-ty
a9d00 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 74 6f pe">i32</span>)).<span.class="to
a9d20 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 5f 6c k-builtin">@Vector</span>(mask_l
a9d40 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 20 20 en,.E)</code></pre>.......<p>...
a9d60 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 23 56 ....Constructs.a.new.<a.href="#V
a9d80 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 67 20 ectors">vector</a>.by.selecting.
a9da0 65 6c 65 6d 65 6e 74 73 20 66 72 6f 6d 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 elements.from.<code>a</code>.and
a9dc0 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 62 61 73 65 64 20 6f 6e 20 3c .......<code>b</code>.based.on.<
a9de0 63 6f 64 65 3e 6d 61 73 6b 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 code>mask</code>........</p>....
a9e00 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 69 6e 20 3c 63 6f ...<p>.......Each.element.in.<co
a9e20 64 65 3e 6d 61 73 6b 3c 2f 63 6f 64 65 3e 20 73 65 6c 65 63 74 73 20 61 6e 20 65 6c 65 6d 65 6e de>mask</code>.selects.an.elemen
a9e40 74 20 66 72 6f 6d 20 65 69 74 68 65 72 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 6f 72 0a t.from.either.<code>a</code>.or.
a9e60 20 20 20 20 20 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 20 50 6f 73 69 74 69 76 65 20 6e ......<code>b</code>..Positive.n
a9e80 75 6d 62 65 72 73 20 73 65 6c 65 63 74 20 66 72 6f 6d 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 umbers.select.from.<code>a</code
a9ea0 3e 20 73 74 61 72 74 69 6e 67 20 61 74 20 30 2e 0a 20 20 20 20 20 20 4e 65 67 61 74 69 76 65 20 >.starting.at.0........Negative.
a9ec0 76 61 6c 75 65 73 20 73 65 6c 65 63 74 20 66 72 6f 6d 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 values.select.from.<code>b</code
a9ee0 3e 2c 20 73 74 61 72 74 69 6e 67 20 61 74 20 3c 63 6f 64 65 3e 2d 3c 73 70 61 6e 20 63 6c 61 73 >,.starting.at.<code>-<span.clas
a9f00 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 20 61 s="tok-number">1</span></code>.a
a9f20 6e 64 20 67 6f 69 6e 67 20 64 6f 77 6e 2e 0a 20 20 20 20 20 20 49 74 20 69 73 20 72 65 63 6f 6d nd.going.down........It.is.recom
a9f40 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 74 68 65 20 3c 63 6f 64 65 3e 7e 3c 2f 63 6f 64 65 3e mended.to.use.the.<code>~</code>
a9f60 20 6f 70 65 72 61 74 6f 72 20 66 6f 72 20 69 6e 64 65 78 65 73 20 66 72 6f 6d 20 3c 63 6f 64 65 .operator.for.indexes.from.<code
a9f80 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 6f 74 68 20 69 6e 64 >b</code>.......so.that.both.ind
a9fa0 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 3e 3c 73 70 61 6e 20 exes.can.start.from.<code><span.
a9fc0 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 3c 2f 63 6f 64 class="tok-number">0</span></cod
a9fe0 65 3e 20 28 69 2e 65 2e 20 3c 63 6f 64 65 3e 7e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b e>.(i.e..<code>~<span.class="tok
aa000 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 -builtin">@as</span>(<span.class
aa020 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 6e 20 63 6c ="tok-type">i32</span>,.<span.cl
aa040 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 2f 63 6f 64 65 ass="tok-number">0</span>)</code
aa060 3e 20 69 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >.is.......<code>-<span.class="t
aa080 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 2e 0a 20 20 20 ok-number">1</span></code>).....
aa0a0 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 65 61 63 68 ...</p>.......<p>.......For.each
aa0c0 20 65 6c 65 6d 65 6e 74 20 6f 66 20 3c 63 6f 64 65 3e 6d 61 73 6b 3c 2f 63 6f 64 65 3e 2c 20 69 .element.of.<code>mask</code>,.i
aa0e0 66 20 69 74 20 6f 72 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 76 61 6c 75 65 20 66 72 6f 6d 0a f.it.or.the.selected.value.from.
aa100 20 20 20 20 20 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 62 3c ......<code>a</code>.or.<code>b<
aa120 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /code>.is.<code><span.class="tok
aa140 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 63 6f 64 65 3e 2c 0a -null">undefined</span></code>,.
aa160 20 20 20 20 20 20 74 68 65 6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 65 6c 65 6d 65 6e 74 ......then.the.resulting.element
aa180 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 .is.<code><span.class="tok-null"
aa1a0 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 20 >undefined</span></code>........
aa1c0 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 3e 61 5f 6c 65 6e </p>.......<p>.......<code>a_len
aa1e0 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 5f 6c 65 6e 3c 2f 63 6f 64 65 3e 20 6d </code>.and.<code>b_len</code>.m
aa200 61 79 20 64 69 66 66 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 ay.differ.in.length..Out-of-boun
aa220 64 73 20 65 6c 65 6d 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 ds.element.......indexes.in.<cod
aa240 65 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 70 69 6c 65 20 e>mask</code>.result.in.compile.
aa260 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 3e 0a 20 20 20 errors........</p>.......<p>....
aa280 20 20 20 49 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 62 3c ...If.<code>a</code>.or.<code>b<
aa2a0 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /code>.is.<code><span.class="tok
aa2c0 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 63 6f 64 65 3e 2c 20 -null">undefined</span></code>,.
aa2e0 69 74 0a 20 20 20 20 20 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 61 20 76 65 63 74 it.......is.equivalent.to.a.vect
aa300 6f 72 20 6f 66 20 61 6c 6c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b or.of.all.<code><span.class="tok
aa320 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 63 6f 64 65 3e 20 77 -null">undefined</span></code>.w
aa340 69 74 68 20 74 68 65 20 73 61 6d 65 20 6c 65 6e 67 74 68 20 61 73 20 74 68 65 20 6f 74 68 65 72 ith.the.same.length.as.the.other
aa360 20 76 65 63 74 6f 72 2e 0a 20 20 20 20 20 20 49 66 20 62 6f 74 68 20 76 65 63 74 6f 72 73 20 61 .vector........If.both.vectors.a
aa380 72 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c 22 3e re.<code><span.class="tok-null">
aa3a0 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 3e 3c undefined</span></code>,.<code><
aa3c0 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 75 66 66 6c span.class="tok-builtin">@shuffl
aa3e0 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 20 61 20 e</span></code>.returns.......a.
aa400 76 65 63 74 6f 72 20 77 69 74 68 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 73 20 3c 63 6f 64 65 3e 3c vector.with.all.elements.<code><
aa420 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<
aa440 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 20 /span></code>........</p>.......
aa460 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 45 3c 2f 63 6f 64 65 3e 20 6d 75 73 74 20 62 65 <p>.......<code>E</code>.must.be
aa480 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 67 65 72 3c .an.<a.href="#Integers">integer<
aa4a0 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 74 3c 2f 61 3e /a>,.<a.href="#Floats">float</a>
aa4c0 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 3e 70 6f 69 6e ,.......<a.href="#Pointers">poin
aa4e0 74 65 72 3c 2f 61 3e 2c 20 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ter</a>,.or.<code><span.class="t
aa500 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 2e 20 54 68 65 ok-type">bool</span></code>..The
aa520 20 6d 61 73 6b 20 6d 61 79 20 62 65 20 61 6e 79 20 76 65 63 74 6f 72 20 6c 65 6e 67 74 68 2c 20 .mask.may.be.any.vector.length,.
aa540 61 6e 64 20 69 74 73 0a 20 20 20 20 20 20 6c 65 6e 67 74 68 20 64 65 74 65 72 6d 69 6e 65 73 20 and.its.......length.determines.
aa560 74 68 65 20 72 65 73 75 6c 74 20 6c 65 6e 67 74 68 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 the.result.length........</p>...
aa580 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
aa5a0 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f ig-cap"><cite.class="file">test_
aa5c0 73 68 75 66 66 6c 65 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 shuffle_builtin.zig</cite></figc
aa5e0 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 aption><pre><code><span.class="t
aa600 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.
aa620 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
aa640 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
aa660 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
aa680 6f 6b 2d 6b 77 22 3e 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 ok-kw">const</span>.expect.=.std
aa6a0 2e 74 65 73 74 69 6e 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 .testing.expect;..<span.class="t
aa6c0 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="
aa6e0 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 65 63 74 6f 72 20 40 73 68 75 66 66 6c 65 26 71 tok-str">&quot;vector.@shuffle&q
aa700 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
aa720 6f 6b 2d 6b 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 ok-kw">const</span>.a.=.<span.cl
aa740 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 70 61 6e 3e ass="tok-builtin">@Vector</span>
aa760 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 61 (<span.class="tok-number">7</spa
aa780 6e 3e 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 n>,.<span.class="tok-type">u8</s
aa7a0 70 61 6e 3e 29 7b 20 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 pan>){.<span.class="tok-str">'o'
aa7c0 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 3e 27 </span>,.<span.class="tok-str">'
aa7e0 6c 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 73 74 72 22 l'</span>,.<span.class="tok-str"
aa800 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 73 74 >'h'</span>,.<span.class="tok-st
aa820 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 6b 2d r">'e'</span>,.<span.class="tok-
aa840 73 74 72 22 3e 27 72 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">'r'</span>,.<span.class="to
aa860 6b 2d 73 74 72 22 3e 27 7a 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">'z'</span>,.<span.class="
aa880 74 6f 6b 2d 73 74 72 22 3e 27 77 27 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e tok-str">'w'</span>.};.....<span
aa8a0 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 20 3d .class="tok-kw">const</span>.b.=
aa8c0 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 56 65 63 74 .<span.class="tok-builtin">@Vect
aa8e0 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 6e 75 6d 62 65 or</span>(<span.class="tok-numbe
aa900 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 74 79 r">4</span>,.<span.class="tok-ty
aa920 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 29 7b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b pe">u8</span>){.<span.class="tok
aa940 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 22 74 -str">'w'</span>,.<span.class="t
aa960 6f 6b 2d 73 74 72 22 3e 27 64 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-str">'d'</span>,.<span.class=
aa980 22 74 6f 6b 2d 73 74 72 22 3e 27 21 27 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 "tok-str">'!'</span>,.<span.clas
aa9a0 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 78 27 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 0a 20 20 20 20 3c s="tok-str">'x'</span>.};......<
aa9c0 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 73 span.class="tok-comment">//.To.s
aa9e0 68 75 66 66 6c 65 20 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 20 76 65 63 74 6f 72 2c 20 70 huffle.within.a.single.vector,.p
aaa00 61 73 73 20 75 6e 64 65 66 69 6e 65 64 20 61 73 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 ass.undefined.as.the.second.argu
aaa20 6d 65 6e 74 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 ment.</span>.....<span.class="to
aaa40 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 4e 6f 74 69 63 65 20 74 68 61 74 20 77 65 20 63 61 6e k-comment">//.Notice.that.we.can
aaa60 20 72 65 2d 6f 72 64 65 72 2c 20 64 75 70 6c 69 63 61 74 65 2c 20 6f 72 20 6f 6d 69 74 20 65 6c .re-order,.duplicate,.or.omit.el
aaa80 65 6d 65 6e 74 73 20 6f 66 20 74 68 65 20 69 6e 70 75 74 20 76 65 63 74 6f 72 3c 2f 73 70 61 6e ements.of.the.input.vector</span
aaaa0 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 73 74 >.....<span.class="tok-kw">const
aaac0 3c 2f 73 70 61 6e 3e 20 6d 61 73 6b 31 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>.mask1.=.<span.class="tok
aaae0 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 20 63 -builtin">@Vector</span>(<span.c
aab00 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
aab20 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 7b 20 n.class="tok-type">i32</span>){.
aab40 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
aab60 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
aab80 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 31 pan>,.<span.class="tok-number">1
aaba0 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
aabc0 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
aabe0 62 65 72 22 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 ber">0</span>.};.....<span.class
aac00 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 31 3a 20 3c 73 70 ="tok-kw">const</span>.res1:.<sp
aac20 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</
aac40 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 35 span>(<span.class="tok-number">5
aac60 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 74 79 70 65 22 3e </span>,.<span.class="tok-type">
aac80 75 38 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 62 75 u8</span>).=.<span.class="tok-bu
aaca0 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
aacc0 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 2c 20 3c 73 70 61 ss="tok-type">u8</span>,.a,.<spa
aace0 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
aad00 61 6e 3e 2c 20 6d 61 73 6b 31 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f an>,.mask1);.....<span.class="to
aad20 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 64 2e 6d 65 6d 2e k-kw">try</span>.expect(std.mem.
aad40 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 73 eql(<span.class="tok-type">u8</s
aad60 70 61 6e 3e 2c 20 26 61 6d 70 3b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c pan>,.&amp;<span.class="tok-buil
aad80 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f tin">@as</span>([<span.class="to
aada0 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="
aadc0 74 6f 6b 2d 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 72 65 73 31 29 2c 20 3c 73 70 61 tok-type">u8</span>,.res1),.<spa
aade0 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 75 n.class="tok-str">&quot;hello&qu
aae00 6f 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 ot;</span>));......<span.class="
aae20 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 43 6f 6d 62 69 6e 69 6e 67 20 74 77 6f 20 76 65 tok-comment">//.Combining.two.ve
aae40 63 74 6f 72 73 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 ctors</span>.....<span.class="to
aae60 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 61 73 6b 32 20 3d 20 3c 73 70 61 6e k-kw">const</span>.mask2.=.<span
aae80 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 70 .class="tok-builtin">@Vector</sp
aaea0 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</
aaec0 73 70 61 6e 3e 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 69 33 span>,.<span.class="tok-type">i3
aaee0 32 3c 2f 73 70 61 6e 3e 29 7b 20 2d 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
aaf00 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 6b 2d ber">1</span>,.<span.class="tok-
aaf20 6e 75 6d 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 number">0</span>,.<span.class="t
aaf40 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
aaf60 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 2d 3c 73 70 61 6e 20 63 ="tok-number">1</span>,.-<span.c
aaf80 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 2d 3c 73 70 lass="tok-number">2</span>,.-<sp
aafa0 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 20 7d an.class="tok-number">3</span>.}
aafc0 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
aafe0 3c 2f 73 70 61 6e 3e 20 72 65 73 32 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 </span>.res2:.<span.class="tok-b
ab000 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 20 63 6c 61 uiltin">@Vector</span>(<span.cla
ab020 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.
ab040 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 3d 20 3c 73 class="tok-type">u8</span>).=.<s
ab060 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 75 66 66 6c 65 pan.class="tok-builtin">@shuffle
ab080 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 75 </span>(<span.class="tok-type">u
ab0a0 38 3c 2f 73 70 61 6e 3e 2c 20 61 2c 20 62 2c 20 6d 61 73 6b 32 29 3b 0a 20 20 20 20 3c 73 70 61 8</span>,.a,.b,.mask2);.....<spa
ab0c0 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 65 78 70 65 n.class="tok-kw">try</span>.expe
ab0e0 63 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 74 6f 6b 2d ct(std.mem.eql(<span.class="tok-
ab100 74 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 26 61 6d 70 3b 3c 73 70 61 6e 20 63 6c 61 73 type">u8</span>,.&amp;<span.clas
ab120 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 5b 3c 73 70 61 s="tok-builtin">@as</span>([<spa
ab140 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 5d 3c 73 n.class="tok-number">6</span>]<s
ab160 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>,.
ab180 72 65 73 32 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 res2),.<span.class="tok-str">&qu
ab1a0 6f 74 3b 77 6f 72 6c 64 21 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 29 3b 0a 7d 3c 2f 63 6f 64 ot;world!&quot;</span>));.}</cod
ab1c0 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
ab1e0 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
ab200 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 gcaption><pre><samp>$.<kbd>zig.t
ab220 65 73 74 20 74 65 73 74 5f 73 68 75 66 66 6c 65 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 est.test_shuffle_builtin.zig</kb
ab240 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 68 75 66 66 6c 65 5f 62 75 69 6c 74 69 6e 2e 74 65 73 74 d>.1/1.test_shuffle_builtin.test
ab260 2e 76 65 63 74 6f 72 20 40 73 68 75 66 66 6c 65 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 .vector.@shuffle....OK.All.1.tes
ab280 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 ts.passed..</samp></pre></figure
ab2a0 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
ab2c0 3e 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 3c ><a.href="#Vectors">Vectors</a><
ab2e0 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 33 20 69 64 /li>.</ul>................<h3.id
ab300 3d 22 73 69 7a 65 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 ="sizeOf"><a.href="nav.xhtml#toc
ab320 2d 73 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 -sizeOf">@sizeOf</a>.<a.class="h
ab340 64 72 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 33 3e 0a 0a dr".href="#sizeOf">..</a></h3>..
ab360 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
ab380 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 61 6e 20 k-builtin">@sizeOf</span>(<span.
ab3a0 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
ab3c0 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
ab3e0 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 63 6f 6d pan>).<span.class="tok-type">com
ab400 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 3e 0a 20 20 ptime_int</span></code></pre>...
ab420 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
ab440 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 69 74 20 74 61 6b 65 73 rns.the.number.of.bytes.it.takes
ab460 20 74 6f 20 73 74 6f 72 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 69 6e 20 6d 65 6d 6f .to.store.<code>T</code>.in.memo
ab480 72 79 2e 0a 20 20 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 ry........The.result.is.a.target
ab4a0 2d 73 70 65 63 69 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 -specific.compile.time.constant.
ab4c0 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 69 73 .......</p>.......<p>.......This
ab4e0 20 73 69 7a 65 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 70 61 64 64 69 6e 67 20 62 79 74 65 73 2e .size.may.contain.padding.bytes.
ab500 20 49 66 20 74 68 65 72 65 20 77 65 72 65 20 74 77 6f 20 63 6f 6e 73 65 63 75 74 69 76 65 20 54 .If.there.were.two.consecutive.T
ab520 20 69 6e 20 6d 65 6d 6f 72 79 2c 20 74 68 65 20 70 61 64 64 69 6e 67 20 77 6f 75 6c 64 20 62 65 .in.memory,.the.padding.would.be
ab540 20 74 68 65 20 6f 66 66 73 65 74 0a 20 20 20 20 20 20 69 6e 20 62 79 74 65 73 20 62 65 74 77 65 .the.offset.......in.bytes.betwe
ab560 65 6e 20 65 6c 65 6d 65 6e 74 20 61 74 20 69 6e 64 65 78 20 30 20 61 6e 64 20 74 68 65 20 65 6c en.element.at.index.0.and.the.el
ab580 65 6d 65 6e 74 20 61 74 20 69 6e 64 65 78 20 31 2e 20 46 6f 72 20 3c 61 20 68 72 65 66 3d 22 23 ement.at.index.1..For.<a.href="#
ab5a0 49 6e 74 65 67 65 72 73 22 3e 69 6e 74 65 67 65 72 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 63 6f 6e Integers">integer</a>,.......con
ab5c0 73 69 64 65 72 20 77 68 65 74 68 65 72 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 3c 63 sider.whether.you.want.to.use.<c
ab5e0 6f 64 65 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 ode><span.class="tok-builtin">@s
ab600 69 7a 65 4f 66 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 izeOf</span>(T)</code>.or.......
ab620 3c 63 6f 64 65 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 <code><span.class="tok-builtin">
ab640 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 69 74 73 3c 2f 63 6f @typeInfo</span>(T).Int.bits</co
ab660 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 20 de>........</p>.......<p>.......
ab680 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 65 20 73 69 7a 65 20 This.function.measures.the.size.
ab6a0 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 74 20 61 72 65 20 64 at.runtime..For.types.that.are.d
ab6c0 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 68 20 61 73 0a 20 20 isallowed.at.runtime,.such.as...
ab6e0 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 ....<code><span.class="tok-type"
ab700 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 20 61 6e 64 20 >comptime_int</span></code>.and.
ab720 3c 63 6f 64 65 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 <code><span.class="tok-type">typ
ab740 65 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 e</span></code>,.the.result.is.<
ab760 63 6f 64 65 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 30 3c code><span.class="tok-number">0<
ab780 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 20 /span></code>........</p>.......
ab7a0 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
ab7c0 3d 22 23 62 69 74 53 69 7a 65 4f 66 22 3e 40 62 69 74 53 69 7a 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 ="#bitSizeOf">@bitSizeOf</a></li
ab7e0 3e 0a 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 >.<li><a.href="#typeInfo">@typeI
ab800 6e 66 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 nfo</a></li>.</ul>..............
ab820 20 20 3c 68 33 20 69 64 3d 22 73 70 6c 61 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 ..<h3.id="splat"><a.href="nav.xh
ab840 74 6d 6c 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 tml#toc-splat">@splat</a>.<a.cla
ab860 73 73 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 ss="hdr".href="#splat">..</a></h
ab880 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3>........<pre><code><span.class
ab8a0 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 3e 28 73 63 61 ="tok-builtin">@splat</span>(sca
ab8c0 6c 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 6e 79 74 79 70 lar:.<span.class="tok-kw">anytyp
ab8e0 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 6b 77 22 3e 61 e</span>).<span.class="tok-kw">a
ab900 6e 79 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 nytype</span></code></pre>......
ab920 20 3c 70 3e 0a 20 20 20 20 20 20 50 72 6f 64 75 63 65 73 20 61 20 76 65 63 74 6f 72 20 77 68 65 .<p>.......Produces.a.vector.whe
ab940 72 65 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 3c 63 6f re.each.element.is.the.value.<co
ab960 64 65 3e 73 63 61 6c 61 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 54 68 65 20 72 65 74 75 de>scalar</code>........The.retu
ab980 72 6e 20 74 79 70 65 20 61 6e 64 20 74 68 75 73 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 rn.type.and.thus.the.length.of.t
ab9a0 68 65 20 76 65 63 74 6f 72 20 69 73 20 69 6e 66 65 72 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 he.vector.is.inferred........</p
ab9c0 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 >.......<figure><figcaption.clas
ab9e0 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 s="zig-cap"><cite.class="file">t
aba00 65 73 74 5f 73 70 6c 61 74 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 est_splat_builtin.zig</cite></fi
aba20 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
aba40 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
aba60 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
aba80 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
abaa0 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=
abac0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 20 3d 20 73 "tok-kw">const</span>.expect.=.s
abae0 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d td.testing.expect;..<span.class=
abb00 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
abb20 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 76 65 63 74 6f 72 20 40 73 70 6c 61 74 26 71 ="tok-str">&quot;vector.@splat&q
abb40 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
abb60 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 63 61 6c 61 72 3a 20 3c 73 70 61 ok-kw">const</span>.scalar:.<spa
abb80 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>.=.
abba0 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
abbc0 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
abbe0 74 3c 2f 73 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 t</span>.result:.<span.class="to
abc00 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 20 k-builtin">@Vector</span>(<span.
abc20 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 70 class="tok-number">4</span>,.<sp
abc40 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>).
abc60 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 70 6c =.<span.class="tok-builtin">@spl
abc80 61 74 3c 2f 73 70 61 6e 3e 28 73 63 61 6c 61 72 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 at</span>(scalar);.....<span.cla
abca0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 ss="tok-kw">try</span>.expect(st
abcc0 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"
abce0 3e 75 33 32 3c 2f 73 70 61 6e 3e 2c 20 26 61 6d 70 3b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >u32</span>,.&amp;<span.class="t
abd00 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 5b 3c 73 70 61 6e 20 63 6c ok-builtin">@as</span>([<span.cl
abd20 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 61 6e 20 ass="tok-number">4</span>]<span.
abd40 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 72 65 73 class="tok-type">u32</span>,.res
abd60 75 6c 74 29 2c 20 26 61 6d 70 3b 5b 5f 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 ult),.&amp;[_]<span.class="tok-t
abd80 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 74 6f ype">u32</span>{.<span.class="to
abda0 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=
abdc0 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
abde0 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 6e 20 ss="tok-number">5</span>,.<span.
abe00 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 29 3b class="tok-number">5</span>.}));
abe20 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e .}</code></pre></figure><figure>
abe40 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 <figcaption.class="shell-cap">Sh
abe60 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 ell</figcaption><pre><samp>$.<kb
abe80 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 73 70 6c 61 74 5f 62 75 69 6c 74 69 6e 2e 7a 69 d>zig.test.test_splat_builtin.zi
abea0 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 70 6c 61 74 5f 62 75 69 6c 74 69 6e 2e 74 g</kbd>.1/1.test_splat_builtin.t
abec0 65 73 74 2e 76 65 63 74 6f 72 20 40 73 70 6c 61 74 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 est.vector.@splat....OK.All.1.te
abee0 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 sts.passed..</samp></pre></figur
abf00 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 63 61 6c 61 72 3c e>.......<p>.......<code>scalar<
abf20 2f 63 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 /code>.must.be.an.<a.href="#Inte
abf40 67 65 72 73 22 3e 69 6e 74 65 67 65 72 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 50 72 69 gers">integer</a>,.<a.href="#Pri
abf60 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 3c 61 mitive-Types">bool</a>,.......<a
abf80 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 66 6c 6f 61 74 3c 2f 61 3e 2c 20 6f 72 20 3c 61 .href="#Floats">float</a>,.or.<a
abfa0 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 2e 0a 20 .href="#Pointers">pointer</a>...
abfc0 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>
abfe0 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 <ul>.<li><a.href="#Vectors">Vect
ac000 6f 72 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 73 68 75 66 66 ors</a></li>.<li><a.href="#shuff
ac020 6c 65 22 3e 40 73 68 75 66 66 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 le">@shuffle</a></li>.</ul>.....
ac040 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 72 65 64 75 63 65 22 3e 3c 61 20 68 72 ...........<h3.id="reduce"><a.hr
ac060 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 72 65 64 75 63 65 22 3e 40 72 65 64 75 63 ef="nav.xhtml#toc-reduce">@reduc
ac080 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 72 65 64 75 e</a>.<a.class="hdr".href="#redu
ac0a0 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 ce">..</a></h3>........<pre><cod
ac0c0 65 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 72 65 64 e><span.class="tok-builtin">@red
ac0e0 75 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 2d 6b 77 22 3e uce</span>(<span.class="tok-kw">
ac100 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 6f 70 3a 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e comptime</span>.op:.std.builtin.
ac120 52 65 64 75 63 65 4f 70 2c 20 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ReduceOp,.value:.<span.class="to
ac140 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 45 3c 2f 63 6f 64 65 3e 3c 2f k-kw">anytype</span>).E</code></
ac160 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 72 61 6e 73 66 6f 72 6d 73 20 pre>.......<p>.......Transforms.
ac180 61 20 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 76 65 63 74 6f 72 3c 2f 61 3e 20 a.<a.href="#Vectors">vector</a>.
ac1a0 69 6e 74 6f 20 61 20 73 63 61 6c 61 72 20 76 61 6c 75 65 20 28 6f 66 20 74 79 70 65 20 3c 63 6f into.a.scalar.value.(of.type.<co
ac1c0 64 65 3e 45 3c 2f 63 6f 64 65 3e 29 0a 20 20 20 20 20 20 62 79 20 70 65 72 66 6f 72 6d 69 6e 67 de>E</code>).......by.performing
ac1e0 20 61 20 73 65 71 75 65 6e 74 69 61 6c 20 68 6f 72 69 7a 6f 6e 74 61 6c 20 72 65 64 75 63 74 69 .a.sequential.horizontal.reducti
ac200 6f 6e 20 6f 66 20 69 74 73 20 65 6c 65 6d 65 6e 74 73 20 75 73 69 6e 67 20 74 68 65 0a 20 20 20 on.of.its.elements.using.the....
ac220 20 20 20 73 70 65 63 69 66 69 65 64 20 6f 70 65 72 61 74 6f 72 20 3c 63 6f 64 65 3e 6f 70 3c 2f ...specified.operator.<code>op</
ac240 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>.....
ac260 20 20 4e 6f 74 20 65 76 65 72 79 20 6f 70 65 72 61 74 6f 72 20 69 73 20 61 76 61 69 6c 61 62 6c ..Not.every.operator.is.availabl
ac280 65 20 66 6f 72 20 65 76 65 72 79 20 76 65 63 74 6f 72 20 65 6c 65 6d 65 6e 74 20 74 79 70 65 3a e.for.every.vector.element.type:
ac2a0 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>..........
ac2c0 20 3c 6c 69 3e 45 76 65 72 79 20 6f 70 65 72 61 74 6f 72 20 69 73 20 61 76 61 69 6c 61 62 6c 65 .<li>Every.operator.is.available
ac2e0 20 66 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
ac300 3c 2f 61 3e 20 76 65 63 74 6f 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 </a>.vectors.</li>...........<li
ac320 3e 3c 63 6f 64 65 3e 2e 41 6e 64 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 2e 4f 72 3c 2f 63 ><code>.And</code>,.<code>.Or</c
ac340 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 2e 58 6f 72 3c 2f 63 6f ode>,.............<code>.Xor</co
ac360 64 65 3e 20 61 72 65 20 61 64 64 69 74 69 6f 6e 61 6c 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 66 de>.are.additionally.available.f
ac380 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 or.............<code><span.class
ac3a0 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 20 76 ="tok-type">bool</span></code>.v
ac3c0 65 63 74 6f 72 73 2c 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 ectors,</li>...........<li><code
ac3e0 3e 2e 4d 69 6e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 2e 4d 61 78 3c 2f 63 6f 64 65 3e 2c >.Min</code>,.<code>.Max</code>,
ac400 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 2e 41 64 64 3c 2f 63 6f 64 65 3e 2c 20 .............<code>.Add</code>,.
ac420 3c 63 6f 64 65 3e 2e 4d 75 6c 3c 2f 63 6f 64 65 3e 20 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 <code>.Mul</code>.are...........
ac440 20 20 61 64 64 69 74 69 6f 6e 61 6c 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 3c 61 20 ..additionally.available.for.<a.
ac460 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 3c 2f 61 href="#Floats">floating.point</a
ac480 3e 20 76 65 63 74 6f 72 73 2c 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 >.vectors,</li>.......</ul>.....
ac4a0 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 3e 2e 41 64 64 ..<p>.......Note.that.<code>.Add
ac4c0 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 2e 4d 75 6c 3c 2f 63 6f 64 65 3e 0a 20 20 </code>.and.<code>.Mul</code>...
ac4e0 20 20 20 20 72 65 64 75 63 74 69 6f 6e 73 20 6f 6e 20 69 6e 74 65 67 72 61 6c 20 74 79 70 65 73 ....reductions.on.integral.types
ac500 20 61 72 65 20 77 72 61 70 70 69 6e 67 3b 20 77 68 65 6e 20 61 70 70 6c 69 65 64 20 6f 6e 20 66 .are.wrapping;.when.applied.on.f
ac520 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 74 79 70 65 73 20 74 68 65 20 6f 70 loating.point.......types.the.op
ac540 65 72 61 74 69 6f 6e 20 61 73 73 6f 63 69 61 74 69 76 69 74 79 20 69 73 20 70 72 65 73 65 72 76 eration.associativity.is.preserv
ac560 65 64 2c 20 75 6e 6c 65 73 73 20 74 68 65 20 66 6c 6f 61 74 20 6d 6f 64 65 20 69 73 0a 20 20 20 ed,.unless.the.float.mode.is....
ac580 20 20 20 73 65 74 20 74 6f 20 3c 63 6f 64 65 3e 4f 70 74 69 6d 69 7a 65 64 3c 2f 63 6f 64 65 3e ...set.to.<code>Optimized</code>
ac5a0 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ........</p>.......<figure><figc
ac5c0 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 aption.class="zig-cap"><cite.cla
ac5e0 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 72 65 64 75 63 65 5f 62 75 69 6c 74 69 6e 2e 7a 69 ss="file">test_reduce_builtin.zi
ac600 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
ac620 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
ac640 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 6e >.std.=.<span.class="tok-builtin
ac660 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
ac680 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 0a k-str">&quot;std&quot;</span>);.
ac6a0 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
ac6c0 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a >.expect.=.std.testing.expect;..
ac6e0 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>
ac700 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 65 63 .<span.class="tok-str">&quot;vec
ac720 74 6f 72 20 40 72 65 64 75 63 65 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c tor.@reduce&quot;</span>.{.....<
ac740 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>
ac760 20 56 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 .V.=.<span.class="tok-builtin">@
ac780 56 65 63 74 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 6e Vector</span>(<span.class="tok-n
ac7a0 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
ac7c0 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 63 k-type">i32</span>);.....<span.c
ac7e0 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 76 61 6c 75 65 lass="tok-kw">const</span>.value
ac800 20 3d 20 56 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 .=.V{.<span.class="tok-number">1
ac820 3c 2f 73 70 61 6e 3e 2c 20 2d 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
ac840 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
ac860 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 2d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f mber">1</span>,.-<span.class="to
ac880 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 k-number">1</span>.};.....<span.
ac8a0 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 65 73 75 class="tok-kw">const</span>.resu
ac8c0 6c 74 20 3d 20 76 61 6c 75 65 20 26 67 74 3b 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b lt.=.value.&gt;.<span.class="tok
ac8e0 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 56 2c 20 3c 73 70 61 6e 20 63 6c -builtin">@as</span>(V,.<span.cl
ac900 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 3e 28 ass="tok-builtin">@splat</span>(
ac920 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
ac940 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 63 6f 6d 6d 65 6e >));.....<span.class="tok-commen
ac960 74 22 3e 2f 2f 20 72 65 73 75 6c 74 20 69 73 20 7b 20 74 72 75 65 2c 20 66 61 6c 73 65 2c 20 74 t">//.result.is.{.true,.false,.t
ac980 72 75 65 2c 20 66 61 6c 73 65 20 7d 3b 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3c 73 70 61 6e 20 63 rue,.false.};</span>.....<span.c
ac9a0 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 63 lass="tok-kw">try</span>.<span.c
ac9c0 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 65 78 lass="tok-kw">comptime</span>.ex
ac9e0 70 65 63 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 pect(<span.class="tok-builtin">@
aca00 54 79 70 65 4f 66 3c 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 TypeOf</span>(result).==.<span.c
aca20 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 70 61 6e lass="tok-builtin">@Vector</span
aca40 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
aca60 61 6e 3e 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 62 6f 6f 6c an>,.<span.class="tok-type">bool
aca80 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 22 74 6f 6b 2d </span>));.....<span.class="tok-
acaa0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 73 5f 61 6c 6c 5f 74 72 75 65 20 3d 20 3c kw">const</span>.is_all_true.=.<
acac0 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 72 65 64 75 63 65 span.class="tok-builtin">@reduce
acae0 3c 2f 73 70 61 6e 3e 28 2e 41 6e 64 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e </span>(.And,.result);.....<span
acb00 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 3c 73 70 61 6e .class="tok-kw">try</span>.<span
acb20 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>.
acb40 65 78 70 65 63 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 expect(<span.class="tok-builtin"
acb60 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 69 73 5f 61 6c 6c 5f 74 72 75 65 29 20 3d 3d 20 >@TypeOf</span>(is_all_true).==.
acb80 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
acba0 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 74 72 n>);.....<span.class="tok-kw">tr
acbc0 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 69 73 5f 61 6c 6c 5f 74 72 75 65 20 3d 3d 20 3c y</span>.expect(is_all_true.==.<
acbe0 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 61 span.class="tok-null">false</spa
acc00 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 n>);.}</code></pre></figure><fig
acc20 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 ure><figcaption.class="shell-cap
acc40 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 ">Shell</figcaption><pre><samp>$
acc60 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 72 65 64 75 63 65 5f 62 75 69 6c 74 .<kbd>zig.test.test_reduce_built
acc80 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 72 65 64 75 63 65 5f 62 75 69 in.zig</kbd>.1/1.test_reduce_bui
acca0 6c 74 69 6e 2e 74 65 73 74 2e 76 65 63 74 6f 72 20 40 72 65 64 75 63 65 2e 2e 2e 20 4f 4b 0a 41 ltin.test.vector.@reduce....OK.A
accc0 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e ll.1.tests.passed..</samp></pre>
acce0 3c 2f 66 69 67 75 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 </figure>.......<p>See.also:</p>
acd00 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 <ul>.<li><a.href="#Vectors">Vect
acd20 6f 72 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 73 65 74 46 6c ors</a></li>.<li><a.href="#setFl
acd40 6f 61 74 4d 6f 64 65 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a oatMode">@setFloatMode</a></li>.
acd60 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 73 72 63 </ul>................<h3.id="src
acd80 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 73 72 63 22 3e 40 73 "><a.href="nav.xhtml#toc-src">@s
acda0 72 63 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 72 63 rc</a>.<a.class="hdr".href="#src
acdc0 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e ">..</a></h3>........<pre><code>
acde0 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 72 63 3c 2f <span.class="tok-builtin">@src</
ace00 73 70 61 6e 3e 28 29 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 53 6f 75 72 63 65 4c 6f 63 61 74 69 span>().std.builtin.SourceLocati
ace20 6f 6e 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 on</code></pre>.......<p>.......
ace40 52 65 74 75 72 6e 73 20 61 20 3c 63 6f 64 65 3e 53 6f 75 72 63 65 4c 6f 63 61 74 69 6f 6e 3c 2f Returns.a.<code>SourceLocation</
ace60 63 6f 64 65 3e 20 73 74 72 75 63 74 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 66 75 code>.struct.representing.the.fu
ace80 6e 63 74 69 6f 6e 27 73 20 6e 61 6d 65 20 61 6e 64 20 6c 6f 63 61 74 69 6f 6e 20 69 6e 20 74 68 nction's.name.and.location.in.th
acea0 65 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 20 54 68 69 73 20 6d 75 73 74 20 62 65 20 63 61 6c 6c e.source.code..This.must.be.call
acec0 65 64 20 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 ed.in.a.function........</p>....
acee0 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
acf00 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 g-cap"><cite.class="file">test_s
acf20 72 63 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f rc_builtin.zig</cite></figcaptio
acf40 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
acf60 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
acf80 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
acfa0 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
acfc0 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 77 ot;</span>);.<span.class="tok-kw
acfe0 22 3e 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 ">const</span>.expect.=.std.test
ad000 69 6e 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 ing.expect;..<span.class="tok-kw
ad020 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
ad040 74 72 22 3e 26 71 75 6f 74 3b 40 73 72 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 tr">&quot;@src&quot;</span>.{...
ad060 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
ad080 3e 20 64 6f 54 68 65 54 65 73 74 28 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >.doTheTest();.}..<span.class="t
ad0a0 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
ad0c0 6b 2d 66 6e 22 3e 64 6f 54 68 65 54 65 73 74 3c 2f 73 70 61 6e 3e 28 29 20 21 3c 73 70 61 6e 20 k-fn">doTheTest</span>().!<span.
ad0e0 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>.{..
ad100 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
ad120 70 61 6e 3e 20 73 72 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 pan>.src.=.<span.class="tok-buil
ad140 74 69 6e 22 3e 40 73 72 63 3c 2f 73 70 61 6e 3e 28 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 tin">@src</span>();......<span.c
ad160 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 65 78 70 65 63 74 28 lass="tok-kw">try</span>.expect(
ad180 73 72 63 2e 6c 69 6e 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 src.line.==.<span.class="tok-num
ad1a0 62 65 72 22 3e 39 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">9</span>);.....<span.class=
ad1c0 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 72 63 2e 63 "tok-kw">try</span>.expect(src.c
ad1e0 6f 6c 75 6d 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 olumn.==.<span.class="tok-number
ad200 22 3e 31 37 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 ">17</span>);.....<span.class="t
ad220 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 64 2e 6d 65 6d ok-kw">try</span>.expect(std.mem
ad240 2e 65 6e 64 73 57 69 74 68 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 .endsWith(<span.class="tok-type"
ad260 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 73 72 63 2e 66 6e 5f 6e 61 6d 65 2c 20 3c 73 70 61 6e 20 63 >u8</span>,.src.fn_name,.<span.c
ad280 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 64 6f 54 68 65 54 65 73 74 26 71 lass="tok-str">&quot;doTheTest&q
ad2a0 75 6f 74 3b 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 22 uot;</span>));.....<span.class="
ad2c0 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 64 2e 6d 65 tok-kw">try</span>.expect(std.me
ad2e0 6d 2e 65 6e 64 73 57 69 74 68 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 m.endsWith(<span.class="tok-type
ad300 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 73 72 63 2e 66 69 6c 65 2c 20 3c 73 70 61 6e 20 63 6c 61 ">u8</span>,.src.file,.<span.cla
ad320 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 74 65 73 74 5f 73 72 63 5f 62 75 69 6c ss="tok-str">&quot;test_src_buil
ad340 74 69 6e 2e 7a 69 67 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 tin.zig&quot;</span>));.}</code>
ad360 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 </pre></figure><figure><figcapti
ad380 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 on.class="shell-cap">Shell</figc
ad3a0 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 aption><pre><samp>$.<kbd>zig.tes
ad3c0 74 20 74 65 73 74 5f 73 72 63 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 t.test_src_builtin.zig</kbd>.1/1
ad3e0 20 74 65 73 74 5f 73 72 63 5f 62 75 69 6c 74 69 6e 2e 74 65 73 74 2e 40 73 72 63 2e 2e 2e 20 4f .test_src_builtin.test.@src....O
ad400 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 K.All.1.tests.passed..</samp></p
ad420 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 re></figure>..............<h3.id
ad440 3d 22 73 71 72 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 73 ="sqrt"><a.href="nav.xhtml#toc-s
ad460 71 72 74 22 3e 40 73 71 72 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 qrt">@sqrt</a>.<a.class="hdr".hr
ad480 65 66 3d 22 23 73 71 72 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 ef="#sqrt">..</a></h3>........<p
ad4a0 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 re><code><span.class="tok-builti
ad4c0 6e 22 3e 40 73 71 72 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 n">@sqrt</span>(value:.<span.cla
ad4e0 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 ss="tok-kw">anytype</span>).<spa
ad500 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 4f 66 3c 2f 73 n.class="tok-builtin">@TypeOf</s
ad520 70 61 6e 3e 28 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 pan>(value)</code></pre>.......<
ad540 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
ad560 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
ad580 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
ad5a0 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 0a 20 20 20 20 20 20 ion.......when.available........
ad5c0 3c 2f 70 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 20 3c 61 </p>.......<p>.......Supports.<a
ad5e0 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 61 6e 64 20 3c .href="#Floats">Floats</a>.and.<
ad600 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 a.href="#Vectors">Vectors</a>.of
ad620 20 66 6c 6f 61 74 73 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 .floats........</p>.............
ad640 20 3c 68 33 20 69 64 3d 22 73 69 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c .<h3.id="sin"><a.href="nav.xhtml
ad660 23 74 6f 63 2d 73 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 #toc-sin">@sin</a>.<a.class="hdr
ad680 22 20 68 72 65 66 3d 22 23 73 69 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 ".href="#sin">..</a></h3>.......
ad6a0 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 .<pre><code><span.class="tok-bui
ad6c0 6c 74 69 6e 22 3e 40 73 69 6e 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e 20 63 ltin">@sin</span>(value:.<span.c
ad6e0 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 lass="tok-kw">anytype</span>).<s
ad700 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 4f 66 3c pan.class="tok-builtin">@TypeOf<
ad720 2f 73 70 61 6e 3e 28 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 /span>(value)</code></pre>......
ad740 20 3c 70 3e 0a 20 20 20 20 20 20 53 69 6e 65 20 74 72 69 67 6f 6e 6f 6d 65 74 72 69 63 20 66 75 .<p>.......Sine.trigonometric.fu
ad760 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
ad780 72 20 69 6e 20 72 61 64 69 61 6e 73 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 74 65 64 20 68 r.in.radians..Uses.a.dedicated.h
ad7a0 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 6e 20 61 ardware.instruction.......when.a
ad7c0 76 61 69 6c 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 vailable........</p>.......<p>..
ad7e0 20 20 20 20 20 53 75 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 .....Supports.<a.href="#Floats">
ad800 46 6c 6f 61 74 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 73 Floats</a>.and.<a.href="#Vectors
ad820 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e 0a 20 20 20 20 20 20 3c ">Vectors</a>.of.floats........<
ad840 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 63 6f 73 22 3e 3c /p>...............<h3.id="cos"><
ad860 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 6f 73 22 3e 40 63 6f 73 3c a.href="nav.xhtml#toc-cos">@cos<
ad880 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 63 6f 73 22 3e c2 /a>.<a.class="hdr".href="#cos">.
ad8a0 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 .</a></h3>........<pre><code><sp
ad8c0 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 73 3c 2f 73 70 61 an.class="tok-builtin">@cos</spa
ad8e0 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 6b 77 22 3e 61 n>(value:.<span.class="tok-kw">a
ad900 6e 79 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 2d nytype</span>).<span.class="tok-
ad920 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3c 2f builtin">@TypeOf</span>(value)</
ad940 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 73 69 code></pre>.......<p>.......Cosi
ad960 6e 65 20 74 72 69 67 6f 6e 6f 6d 65 74 72 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 61 20 66 ne.trigonometric.function.on.a.f
ad980 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20 69 6e 20 72 61 64 69 61 6e 73 2e loating.point.number.in.radians.
ad9a0 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
ad9c0 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 0a 20 20 20 uction.......when.available.....
ad9e0 20 20 20 3c 2f 70 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 ...</p>.......<p>.......Supports
ada00 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 61 3e 20 61 6e .<a.href="#Floats">Floats</a>.an
ada20 64 20 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e d.<a.href="#Vectors">Vectors</a>
ada40 20 6f 66 20 66 6c 6f 61 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 .of.floats........</p>..........
ada60 20 20 20 20 20 3c 68 33 20 69 64 3d 22 74 61 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 .....<h3.id="tan"><a.href="nav.x
ada80 68 74 6d 6c 23 74 6f 63 2d 74 61 6e 22 3e 40 74 61 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d html#toc-tan">@tan</a>.<a.class=
adaa0 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 61 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 "hdr".href="#tan">..</a></h3>...
adac0 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
adae0 2d 62 75 69 6c 74 69 6e 22 3e 40 74 61 6e 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 -builtin">@tan</span>(value:.<sp
adb00 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e an.class="tok-kw">anytype</span>
adb20 29 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 54 79 70 ).<span.class="tok-builtin">@Typ
adb40 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 eOf</span>(value)</code></pre>..
adb60 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 61 6e 67 65 6e 74 20 74 72 69 67 6f 6e 6f 6d 65 .....<p>.......Tangent.trigonome
adb80 74 72 69 63 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 tric.function.on.a.floating.poin
adba0 74 20 6e 75 6d 62 65 72 20 69 6e 20 72 61 64 69 61 6e 73 2e 0a 20 20 20 20 20 20 55 73 65 73 20 t.number.in.radians........Uses.
adbc0 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 69 6f 6e a.dedicated.hardware.instruction
adbe0 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 .when.available........</p>.....
adc00 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 46 ..<p>.......Supports.<a.href="#F
adc20 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 loats">Floats</a>.and.<a.href="#
adc40 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e 0a Vectors">Vectors</a>.of.floats..
adc60 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 33 20 69 64 3d ......</p>...............<h3.id=
adc80 22 65 78 70 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 65 78 70 "exp"><a.href="nav.xhtml#toc-exp
adca0 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 68 72 65 66 3d 22 ">@exp</a>.<a.class="hdr".href="
adcc0 23 65 78 70 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 #exp">..</a></h3>........<pre><c
adce0 6f 64 65 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 ode><span.class="tok-builtin">@e
add00 78 70 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 74 6f xp</span>(value:.<span.class="to
add20 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 k-kw">anytype</span>).<span.clas
add40 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 s="tok-builtin">@TypeOf</span>(v
add60 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 3e 0a 20 20 20 alue)</code></pre>.......<p>....
add80 20 20 20 42 61 73 65 2d 65 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20 66 75 6e 63 74 69 6f 6e 20 6f ...Base-e.exponential.function.o
adda0 6e 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 65 73 20 n.a.floating.point.number..Uses.
addc0 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 69 6f 6e a.dedicated.hardware.instruction
adde0 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 .......when.available........</p
ade00 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 20 3c 61 20 68 72 >.......<p>.......Supports.<a.hr
ade20 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 ef="#Floats">Floats</a>.and.<a.h
ade40 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c ref="#Vectors">Vectors</a>.of.fl
ade60 6f 61 74 73 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 oats........</p>..............<h
ade80 33 20 69 64 3d 22 65 78 70 32 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 3.id="exp2"><a.href="nav.xhtml#t
adea0 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 22 68 64 72 oc-exp2">@exp2</a>.<a.class="hdr
adec0 22 20 68 72 65 66 3d 22 23 65 78 70 32 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 ".href="#exp2">..</a></h3>......
adee0 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ..<pre><code><span.class="tok-bu
adf00 69 6c 74 69 6e 22 3e 40 65 78 70 32 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e iltin">@exp2</span>(value:.<span
adf20 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 .class="tok-kw">anytype</span>).
adf40 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 4f <span.class="tok-builtin">@TypeO
adf60 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 f</span>(value)</code></pre>....
adf80 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 61 73 65 2d 32 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20 ...<p>.......Base-2.exponential.
adfa0 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 6d function.on.a.floating.point.num
adfc0 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 69 ber..Uses.a.dedicated.hardware.i
adfe0 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 2e nstruction.......when.available.
ae000 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 53 75 70 70 .......</p>.......<p>.......Supp
ae020 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 61 orts.<a.href="#Floats">Floats</a
ae040 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 >.and.<a.href="#Vectors">Vectors
ae060 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 </a>.of.floats........</p>......
ae080 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6c 6f 67 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 ........<h3.id="log"><a.href="na
ae0a0 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6c 6f 67 22 3e 40 6c 6f 67 3c 2f 61 3e 20 3c 61 20 63 6c 61 v.xhtml#toc-log">@log</a>.<a.cla
ae0c0 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6c 6f 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e ss="hdr".href="#log">..</a></h3>
ae0e0 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ........<pre><code><span.class="
ae100 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 6c 6f 67 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 tok-builtin">@log</span>(value:.
ae120 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 <span.class="tok-kw">anytype</sp
ae140 61 6e 3e 29 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">@
ae160 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 TypeOf</span>(value)</code></pre
ae180 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 6e 61 >.......<p>.......Returns.the.na
ae1a0 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 6e 67 20 70 6f tural.logarithm.of.a.floating.po
ae1c0 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 64 20 68 61 72 int.number..Uses.a.dedicated.har
ae1e0 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 6e 20 61 76 61 dware.instruction.......when.ava
ae200 69 6c 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 ilable........</p>.......<p>....
ae220 20 20 20 53 75 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 ...Supports.<a.href="#Floats">Fl
ae240 6f 61 74 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 73 22 3e oats</a>.and.<a.href="#Vectors">
ae260 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 Vectors</a>.of.floats........</p
ae280 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 6c 6f 67 32 22 3e 3c 61 20 >..............<h3.id="log2"><a.
ae2a0 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 6c 6f 67 32 22 3e 40 6c 6f 67 32 3c href="nav.xhtml#toc-log2">@log2<
ae2c0 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 6c 6f 67 32 22 3e /a>.<a.class="hdr".href="#log2">
ae2e0 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 ..</a></h3>........<pre><code><s
ae300 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 6c 6f 67 32 3c 2f 73 pan.class="tok-builtin">@log2</s
ae320 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 6b 77 22 pan>(value:.<span.class="tok-kw"
ae340 3e 61 6e 79 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 >anytype</span>).<span.class="to
ae360 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 k-builtin">@TypeOf</span>(value)
ae380 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 65 </code></pre>.......<p>.......Re
ae3a0 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 73 65 20 turns.the.logarithm.to.the.base.
ae3c0 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 20 55 73 2.of.a.floating.point.number..Us
ae3e0 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
ae400 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 0a 20 20 20 20 20 20 ion.......when.available........
ae420 3c 2f 70 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 20 3c 61 </p>.......<p>.......Supports.<a
ae440 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 61 6e 64 20 3c .href="#Floats">Floats</a>.and.<
ae460 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 a.href="#Vectors">Vectors</a>.of
ae480 20 66 6c 6f 61 74 73 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 .floats........</p>.............
ae4a0 20 3c 68 33 20 69 64 3d 22 6c 6f 67 31 30 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 .<h3.id="log10"><a.href="nav.xht
ae4c0 6d 6c 23 74 6f 63 2d 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 ml#toc-log10">@log10</a>.<a.clas
ae4e0 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 6c 6f 67 31 30 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 s="hdr".href="#log10">..</a></h3
ae500 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d >........<pre><code><span.class=
ae520 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 28 76 61 6c 75 "tok-builtin">@log10</span>(valu
ae540 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 74 79 70 65 3c e:.<span.class="tok-kw">anytype<
ae560 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 62 75 69 6c 74 69 6e /span>).<span.class="tok-builtin
ae580 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 3c 2f ">@TypeOf</span>(value)</code></
ae5a0 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 65 pre>.......<p>.......Returns.the
ae5c0 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 66 .logarithm.to.the.base.10.of.a.f
ae5e0 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 64 loating.point.number..Uses.a.ded
ae600 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 20 icated.hardware.instruction.....
ae620 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 ..when.available........</p>....
ae640 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 ...<p>.......Supports.<a.href="#
ae660 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 Floats">Floats</a>.and.<a.href="
ae680 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e #Vectors">Vectors</a>.of.floats.
ae6a0 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 33 20 69 64 3d .......</p>..............<h3.id=
ae6c0 22 61 62 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 61 62 73 "abs"><a.href="nav.xhtml#toc-abs
ae6e0 22 3e 40 61 62 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 ">@abs</a>.<a.class="hdr".href="
ae700 23 61 62 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 #abs">..</a></h3>........<pre><c
ae720 6f 64 65 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 61 ode><span.class="tok-builtin">@a
ae740 62 73 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 74 6f bs</span>(value:.<span.class="to
ae760 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e 20 63 6c 61 73 k-kw">anytype</span>).<span.clas
ae780 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e s="tok-kw">anytype</span></code>
ae7a0 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
ae7c0 68 65 20 61 62 73 6f 6c 75 74 65 20 76 61 6c 75 65 20 6f 66 20 61 6e 20 69 6e 74 65 67 65 72 20 he.absolute.value.of.an.integer.
ae7e0 6f 72 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 65 73 or.a.floating.point.number..Uses
ae800 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 69 6f .a.dedicated.hardware.instructio
ae820 6e 0a 20 20 20 20 20 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 0a 20 20 20 20 20 20 54 n.......when.available.........T
ae840 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 61 6c 77 61 79 73 20 61 6e 20 75 6e 73 69 he.return.type.is.always.an.unsi
ae860 67 6e 65 64 20 69 6e 74 65 67 65 72 20 6f 66 20 74 68 65 20 73 61 6d 65 20 62 69 74 20 77 69 64 gned.integer.of.the.same.bit.wid
ae880 74 68 20 61 73 20 74 68 65 20 6f 70 65 72 61 6e 64 20 69 66 20 74 68 65 20 6f 70 65 72 61 6e 64 th.as.the.operand.if.the.operand
ae8a0 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 2e 0a 20 20 20 20 20 20 55 6e 73 69 67 6e 65 64 20 69 .is.an.integer........Unsigned.i
ae8c0 6e 74 65 67 65 72 20 6f 70 65 72 61 6e 64 73 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 2e 20 54 nteger.operands.are.supported..T
ae8e0 68 65 20 62 75 69 6c 74 69 6e 20 63 61 6e 6e 6f 74 20 6f 76 65 72 66 6c 6f 77 20 66 6f 72 20 73 he.builtin.cannot.overflow.for.s
ae900 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 6f 70 65 72 61 6e 64 73 2e 0a 20 20 20 20 20 20 3c 2f igned.integer.operands........</
ae920 70 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 20 3c 61 20 68 p>.......<p>.......Supports.<a.h
ae940 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 ref="#Floats">Floats</a>,.<a.hre
ae960 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 20 61 6e 64 20 3c f="#Integers">Integers</a>.and.<
ae980 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 a.href="#Vectors">Vectors</a>.of
ae9a0 20 66 6c 6f 61 74 73 20 6f 72 20 69 6e 74 65 67 65 72 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a .floats.or.integers........</p>.
ae9c0 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 66 6c 6f 6f 72 22 3e 3c 61 20 68 .............<h3.id="floor"><a.h
ae9e0 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 66 6c 6f 6f 72 22 3e 40 66 6c 6f 6f 72 ref="nav.xhtml#toc-floor">@floor
aea00 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 6f 72 </a>.<a.class="hdr".href="#floor
aea20 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e ">..</a></h3>........<pre><code>
aea40 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 6c 6f 6f 72 <span.class="tok-builtin">@floor
aea60 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 74 6f 6b 2d </span>(value:.<span.class="tok-
aea80 6b 77 22 3e 61 6e 79 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 kw">anytype</span>).<span.class=
aeaa0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c "tok-builtin">@TypeOf</span>(val
aeac0 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 3e 0a 20 20 20 20 20 ue)</code></pre>.......<p>......
aeae0 20 52 65 74 75 72 6e 73 20 74 68 65 20 6c 61 72 67 65 73 74 20 69 6e 74 65 67 72 61 6c 20 76 61 .Returns.the.largest.integral.va
aeb00 6c 75 65 20 6e 6f 74 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 74 68 65 20 67 69 76 65 6e 20 66 lue.not.greater.than.the.given.f
aeb20 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 0a 20 20 20 20 20 20 55 73 65 73 loating.point.number........Uses
aeb40 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 69 6f .a.dedicated.hardware.instructio
aeb60 6e 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 n.when.available........</p>....
aeb80 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 ...<p>.......Supports.<a.href="#
aeba0 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 Floats">Floats</a>.and.<a.href="
aebc0 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e #Vectors">Vectors</a>.of.floats.
aebe0 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 33 20 69 64 3d .......</p>..............<h3.id=
aec00 22 63 65 69 6c 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 63 65 "ceil"><a.href="nav.xhtml#toc-ce
aec20 69 6c 22 3e 40 63 65 69 6c 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 il">@ceil</a>.<a.class="hdr".hre
aec40 66 3d 22 23 63 65 69 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 f="#ceil">..</a></h3>........<pr
aec60 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-builtin
aec80 22 3e 40 63 65 69 6c 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 ">@ceil</span>(value:.<span.clas
aeca0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 3c 73 70 61 6e s="tok-kw">anytype</span>).<span
aecc0 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 4f 66 3c 2f 73 70 .class="tok-builtin">@TypeOf</sp
aece0 61 6e 3e 28 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 an>(value)</code></pre>.......<p
aed00 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 69 6e 74 >.......Returns.the.smallest.int
aed20 65 67 72 61 6c 20 76 61 6c 75 65 20 6e 6f 74 20 6c 65 73 73 20 74 68 61 6e 20 74 68 65 20 67 69 egral.value.not.less.than.the.gi
aed40 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 2e 0a 20 20 20 20 20 ven.floating.point.number.......
aed60 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
aed80 75 63 74 69 6f 6e 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 uction.when.available........</p
aeda0 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 20 3c 61 20 68 72 >.......<p>.......Supports.<a.hr
aedc0 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 ef="#Floats">Floats</a>.and.<a.h
aede0 72 65 66 3d 22 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c ref="#Vectors">Vectors</a>.of.fl
aee00 6f 61 74 73 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 oats........</p>..............<h
aee20 33 20 69 64 3d 22 74 72 75 6e 63 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 3.id="trunc"><a.href="nav.xhtml#
aee40 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 61 73 73 3d 22 toc-trunc">@trunc</a>.<a.class="
aee60 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 68 33 3e 0a 0a hdr".href="#trunc">..</a></h3>..
aee80 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
aeea0 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 74 72 75 6e 63 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 k-builtin">@trunc</span>(value:.
aeec0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 <span.class="tok-kw">anytype</sp
aeee0 61 6e 3e 29 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">@
aef00 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 TypeOf</span>(value)</code></pre
aef20 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 68 65 20 67 69 76 >.......<p>.......Rounds.the.giv
aef40 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 6f 20 61 6e 20 69 en.floating.point.number.to.an.i
aef60 6e 74 65 67 65 72 2c 20 74 6f 77 61 72 64 73 20 7a 65 72 6f 2e 0a 20 20 20 20 20 20 55 73 65 73 nteger,.towards.zero........Uses
aef80 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 69 6f .a.dedicated.hardware.instructio
aefa0 6e 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 n.when.available........</p>....
aefc0 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 ...<p>.......Supports.<a.href="#
aefe0 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 Floats">Floats</a>.and.<a.href="
af000 23 56 65 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e #Vectors">Vectors</a>.of.floats.
af020 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 33 20 69 64 3d .......</p>..............<h3.id=
af040 22 72 6f 75 6e 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 72 "round"><a.href="nav.xhtml#toc-r
af060 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 72 22 20 ound">@round</a>.<a.class="hdr".
af080 68 72 65 66 3d 22 23 72 6f 75 6e 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 href="#round">..</a></h3>.......
af0a0 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 .<pre><code><span.class="tok-bui
af0c0 6c 74 69 6e 22 3e 40 72 6f 75 6e 64 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 3a 20 3c 73 70 61 6e ltin">@round</span>(value:.<span
af0e0 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 .class="tok-kw">anytype</span>).
af100 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 4f <span.class="tok-builtin">@TypeO
af120 66 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 f</span>(value)</code></pre>....
af140 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 6f 75 6e 64 73 20 74 68 65 20 67 69 76 65 6e 20 66 6c ...<p>.......Rounds.the.given.fl
af160 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20 74 6f 20 61 6e 20 69 6e 74 65 67 65 oating.point.number.to.an.intege
af180 72 2c 20 61 77 61 79 20 66 72 6f 6d 20 7a 65 72 6f 2e 20 55 73 65 73 20 61 20 64 65 64 69 63 61 r,.away.from.zero..Uses.a.dedica
af1a0 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 20 20 20 77 ted.hardware.instruction.......w
af1c0 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 hen.available........</p>.......
af1e0 3c 70 3e 0a 20 20 20 20 20 20 53 75 70 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f <p>.......Supports.<a.href="#Flo
af200 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 56 65 ats">Floats</a>.and.<a.href="#Ve
af220 63 74 6f 72 73 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 20 6f 66 20 66 6c 6f 61 74 73 2e 0a 20 20 ctors">Vectors</a>.of.floats....
af240 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 33 20 69 64 3d 22 73 ....</p>...............<h3.id="s
af260 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 ubWithOverflow"><a.href="nav.xht
af280 6d 6c 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 68 ml#toc-subWithOverflow">@subWith
af2a0 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
af2c0 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 33 3e 0a ="#subWithOverflow">..</a></h3>.
af2e0 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
af300 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 ok-builtin">@subWithOverflow</sp
af320 61 6e 3e 28 61 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 74 an>(a:.<span.class="tok-kw">anyt
af340 79 70 65 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 ype</span>,.b:.<span.class="tok-
af360 6b 77 22 3e 61 6e 79 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 kw">anytype</span>).<span.class=
af380 22 74 6f 6b 2d 6b 77 22 3e 73 74 72 75 63 74 3c 2f 73 70 61 6e 3e 20 7b 20 3c 73 70 61 6e 20 63 "tok-kw">struct</span>.{.<span.c
af3a0 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e lass="tok-builtin">@TypeOf</span
af3c0 3e 28 61 2c 20 62 29 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 >(a,.b),.<span.class="tok-type">
af3e0 75 31 3c 2f 73 70 61 6e 3e 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c u1</span>.}</code></pre>.......<
af400 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 65 3e 61 20 2d 20 62 3c 2f 63 p>.......Performs.<code>a.-.b</c
af420 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 74 75 70 6c 65 20 77 69 74 68 20 74 68 ode>.and.returns.a.tuple.with.th
af440 65 20 72 65 73 75 6c 74 20 61 6e 64 20 61 20 70 6f 73 73 69 62 6c 65 20 6f 76 65 72 66 6c 6f 77 e.result.and.a.possible.overflow
af460 20 62 69 74 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 .bit........</p>...............<
af480 68 33 20 69 64 3d 22 74 61 67 4e 61 6d 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 h3.id="tagName"><a.href="nav.xht
af4a0 6d 6c 23 74 6f 63 2d 74 61 67 4e 61 6d 65 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 61 3e 20 3c 61 20 ml#toc-tagName">@tagName</a>.<a.
af4c0 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 61 67 4e 61 6d 65 22 3e c2 a7 3c 2f class="hdr".href="#tagName">..</
af4e0 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 a></h3>........<pre><code><span.
af500 63 6c 61 73 73 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 class="tok-builtin">@tagName</sp
af520 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 6b 77 22 3e an>(value:.<span.class="tok-kw">
af540 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 29 20 5b 3a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 anytype</span>).[:<span.class="t
af560 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d ok-number">0</span>]<span.class=
af580 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
af5a0 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 65 3e 3c 2f 70 s="tok-type">u8</span></code></p
af5c0 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 20 re>.......<p>.......Converts.an.
af5e0 65 6e 75 6d 20 76 61 6c 75 65 20 6f 72 20 75 6e 69 6f 6e 20 76 61 6c 75 65 20 74 6f 20 61 20 73 enum.value.or.union.value.to.a.s
af600 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 6e tring.literal.representing.the.n
af620 61 6d 65 2e 3c 2f 70 3e 3c 70 3e 49 66 20 74 68 65 20 65 6e 75 6d 20 69 73 20 6e 6f 6e 2d 65 78 ame.</p><p>If.the.enum.is.non-ex
af640 68 61 75 73 74 69 76 65 20 61 6e 64 20 74 68 65 20 74 61 67 20 76 61 6c 75 65 20 64 6f 65 73 20 haustive.and.the.tag.value.does.
af660 6e 6f 74 20 6d 61 70 20 74 6f 20 61 20 6e 61 6d 65 2c 20 69 74 20 69 6e 76 6f 6b 65 73 20 73 61 not.map.to.a.name,.it.invokes.sa
af680 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 69 6e 65 64 fety-checked.<a.href="#Undefined
af6a0 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 2f 61 -Behavior">Undefined.Behavior</a
af6c0 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 68 33 20 >........</p>...............<h3.
af6e0 69 64 3d 22 54 68 69 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 id="This"><a.href="nav.xhtml#toc
af700 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 68 64 72 22 20 -This">@This</a>.<a.class="hdr".
af720 68 72 65 66 3d 22 23 54 68 69 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 href="#This">..</a></h3>........
af740 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c <pre><code><span.class="tok-buil
af760 74 69 6e 22 3e 40 54 68 69 73 3c 2f 73 70 61 6e 3e 28 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d tin">@This</span>().<span.class=
af780 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
af7a0 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 65 20 re>.......<p>.......Returns.the.
af7c0 69 6e 6e 65 72 6d 6f 73 74 20 73 74 72 75 63 74 2c 20 65 6e 75 6d 2c 20 6f 72 20 75 6e 69 6f 6e innermost.struct,.enum,.or.union
af7e0 20 74 68 61 74 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 69 73 20 69 6e 73 69 .that.this.function.call.is.insi
af800 64 65 2e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 66 6f 72 de........This.can.be.useful.for
af820 20 61 6e 20 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 72 75 63 74 20 74 68 61 74 20 6e 65 65 64 73 20 .an.anonymous.struct.that.needs.
af840 74 6f 20 72 65 66 65 72 20 74 6f 20 69 74 73 65 6c 66 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 to.refer.to.itself:.......</p>..
af860 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
af880 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
af8a0 5f 74 68 69 73 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 _this_builtin.zig</cite></figcap
af8c0 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
af8e0 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
af900 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>
af920 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
af940 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
af960 2d 6b 77 22 3e 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 -kw">const</span>.expect.=.std.t
af980 65 73 74 69 6e 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 esting.expect;..<span.class="tok
af9a0 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
af9c0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 40 54 68 69 73 28 29 26 71 75 6f 74 3b 3c 2f 73 70 61 6e k-str">&quot;@This()&quot;</span
af9e0 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
afa00 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 61 73 73 3d 22 </span>.items.=.[_]<span.class="
afa20 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
afa40 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
afa60 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
afa80 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>,.<
afaa0 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>
afac0 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 6f 6e .};.....<span.class="tok-kw">con
afae0 73 74 3c 2f 73 70 61 6e 3e 20 6c 69 73 74 20 3d 20 4c 69 73 74 28 3c 73 70 61 6e 20 63 6c 61 73 st</span>.list.=.List(<span.clas
afb00 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 69 33 32 3c 2f 73 70 61 6e 3e 29 7b 20 2e 69 74 65 6d 73 s="tok-type">i32</span>){..items
afb20 20 3d 20 69 74 65 6d 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 .=.items[<span.class="tok-number
afb40 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 ">0</span>..].};.....<span.class
afb60 3d 22 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 6c 69 73 74 ="tok-kw">try</span>.expect(list
afb80 2e 6c 65 6e 67 74 68 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 .length().==.<span.class="tok-nu
afba0 6d 62 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 mber">4</span>);.}..<span.class=
afbc0 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="
afbe0 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 73 3d tok-fn">List</span>(<span.class=
afc00 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
afc20 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>).
afc40 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
afc60 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 65 n>.{.....<span.class="tok-kw">re
afc80 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 22 turn</span>.<span.class="tok-kw"
afca0 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 6e 20 63 >struct</span>.{.........<span.c
afcc0 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 65 6c 66 20 lass="tok-kw">const</span>.Self.
afce0 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 54 68 69 =.<span.class="tok-builtin">@Thi
afd00 73 3c 2f 73 70 61 6e 3e 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 74 65 6d 73 3a 20 5b 5d 54 2c s</span>();..........items:.[]T,
afd20 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 6b 77 22 3e 66 ..........<span.class="tok-kw">f
afd40 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 6c 65 n</span>.<span.class="tok-fn">le
afd60 6e 67 74 68 3c 2f 73 70 61 6e 3e 28 73 65 6c 66 3a 20 53 65 6c 66 29 20 3c 73 70 61 6e 20 63 6c ngth</span>(self:.Self).<span.cl
afd80 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 20 ass="tok-type">usize</span>.{...
afda0 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 72 ..........<span.class="tok-kw">r
afdc0 65 74 75 72 6e 3c 2f 73 70 61 6e 3e 20 73 65 6c 66 2e 69 74 65 6d 73 2e 6c 65 6e 3b 0a 20 20 20 eturn</span>.self.items.len;....
afde0 20 20 20 20 20 7d 0a 20 20 20 20 7d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 .....}.....};.}</code></pre></fi
afe00 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
afe20 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
afe40 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 74 68 69 e><samp>$.<kbd>zig.test.test_thi
afe60 73 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 74 68 69 s_builtin.zig</kbd>.1/1.test_thi
afe80 73 5f 62 75 69 6c 74 69 6e 2e 74 65 73 74 2e 40 54 68 69 73 28 29 2e 2e 2e 20 4f 4b 0a 41 6c 6c s_builtin.test.@This()....OK.All
afea0 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .1.tests.passed..</samp></pre></
afec0 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 3c 63 6f figure>.......<p>.......When.<co
afee0 64 65 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 de><span.class="tok-builtin">@Th
aff00 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 66 69 is</span>()</code>.is.used.at.fi
aff20 6c 65 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 63 65 le.scope,.it.returns.a.reference
aff40 20 74 6f 20 74 68 65 0a 20 20 20 20 20 20 73 74 72 75 63 74 20 74 68 61 74 20 63 6f 72 72 65 73 .to.the.......struct.that.corres
aff60 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 2e 0a 20 20 20 20 20 ponds.to.the.current.file.......
aff80 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 74 72 61 70 .</p>...............<h3.id="trap
affa0 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 74 72 61 70 22 3e 40 "><a.href="nav.xhtml#toc-trap">@
affc0 74 72 61 70 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 trap</a>.<a.class="hdr".href="#t
affe0 72 61 70 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f rap">..</a></h3>........<pre><co
b0000 64 65 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 de><span.class="tok-builtin">@tr
b0020 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 6f 6b 2d 74 79 70 ap</span>().<span.class="tok-typ
b0040 65 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 70 72 65 3e 0a e">noreturn</span></code></pre>.
b0060 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 69 6e ......<p>.......This.function.in
b0080 73 65 72 74 73 20 61 20 70 6c 61 74 66 6f 72 6d 2d 73 70 65 63 69 66 69 63 20 74 72 61 70 2f 6a serts.a.platform-specific.trap/j
b00a0 61 6d 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 am.instruction.which.can.be.used
b00c0 20 74 6f 20 65 78 69 74 20 74 68 65 20 70 72 6f 67 72 61 6d 20 61 62 6e 6f 72 6d 61 6c 6c 79 2e .to.exit.the.program.abnormally.
b00e0 0a 20 20 20 20 20 20 54 68 69 73 20 6d 61 79 20 62 65 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 .......This.may.be.implemented.b
b0100 79 20 65 78 70 6c 69 63 69 74 6c 79 20 65 6d 69 74 74 69 6e 67 20 61 6e 20 69 6e 76 61 6c 69 64 y.explicitly.emitting.an.invalid
b0120 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 77 68 69 63 68 20 6d 61 79 20 63 61 75 73 65 20 61 6e 20 .instruction.which.may.cause.an.
b0140 69 6c 6c 65 67 61 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 65 78 63 65 70 74 69 6f 6e 20 6f 66 illegal.instruction.exception.of
b0160 20 73 6f 6d 65 20 73 6f 72 74 2e 0a 20 20 20 20 20 20 55 6e 6c 69 6b 65 20 66 6f 72 20 3c 63 6f .some.sort........Unlike.for.<co
b0180 64 65 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 72 de><span.class="tok-builtin">@br
b01a0 65 61 6b 70 6f 69 6e 74 3c 2f 73 70 61 6e 3e 28 29 3c 2f 63 6f 64 65 3e 2c 20 65 78 65 63 75 74 eakpoint</span>()</code>,.execut
b01c0 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 69 6e 75 65 20 61 66 74 65 72 20 74 68 69 73 ion.does.not.continue.after.this
b01e0 20 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 3e 0a 20 20 20 .point........</p>.......<p>....
b0200 20 20 20 4f 75 74 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 20 73 63 6f 70 65 2c 20 74 68 69 73 20 ...Outside.function.scope,.this.
b0220 62 75 69 6c 74 69 6e 20 63 61 75 73 65 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 0a builtin.causes.a.compile.error..
b0240 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 70 ......</p>.......<p>See.also:</p
b0260 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 72 65 61 6b 70 6f 69 6e 74 22 3e ><ul>.<li><a.href="#breakpoint">
b0280 40 62 72 65 61 6b 70 6f 69 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 @breakpoint</a></li>.</ul>......
b02a0 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 74 72 75 6e 63 61 74 65 22 3e 3c 61 20 68 ..........<h3.id="truncate"><a.h
b02c0 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 74 72 75 6e 63 61 74 65 22 3e 40 74 72 ref="nav.xhtml#toc-truncate">@tr
b02e0 75 6e 63 61 74 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 uncate</a>.<a.class="hdr".href="
b0300 23 74 72 75 6e 63 61 74 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 #truncate">..</a></h3>........<p
b0320 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 re><code><span.class="tok-builti
b0340 6e 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 73 70 61 6e 3e 28 69 6e 74 65 67 65 72 3a 20 3c 73 70 n">@truncate</span>(integer:.<sp
b0360 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e an.class="tok-kw">anytype</span>
b0380 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 79 74 79 70 65 3c 2f ).<span.class="tok-kw">anytype</
b03a0 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>....
b03c0 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 72 75 6e 63 61 74 65 73 20 62 69 74 73 20 ...This.function.truncates.bits.
b03e0 66 72 6f 6d 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 2c 20 72 65 73 75 6c 74 69 6e 67 20 from.an.integer.type,.resulting.
b0400 69 6e 20 61 20 73 6d 61 6c 6c 65 72 0a 20 20 20 20 20 20 6f 72 20 73 61 6d 65 2d 73 69 7a 65 64 in.a.smaller.......or.same-sized
b0420 20 69 6e 74 65 67 65 72 20 74 79 70 65 2e 20 54 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 .integer.type..The.return.type.i
b0440 73 20 74 68 65 20 69 6e 66 65 72 72 65 64 20 72 65 73 75 6c 74 20 74 79 70 65 2e 0a 20 20 20 20 s.the.inferred.result.type......
b0460 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
b0480 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 66 tion.always.truncates.the.signif
b04a0 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 72 icant.bits.of.the.integer,.regar
b04c0 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 65 dless.......of.endianness.on.the
b04e0 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 20 .target.platform........</p>....
b0500 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 61 6c 6c 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e ...<p>.......Calling.<code><span
b0520 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 6e 63 61 74 65 3c 2f .class="tok-builtin">@truncate</
b0540 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6f 6e 20 61 20 6e 75 6d 62 65 72 20 6f 75 74 20 6f 66 20 span></code>.on.a.number.out.of.
b0560 72 61 6e 67 65 20 6f 66 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 20 69 73 range.of.the.destination.type.is
b0580 20 77 65 6c 6c 20 64 65 66 69 6e 65 64 20 61 6e 64 20 77 6f 72 6b 69 6e 67 20 63 6f 64 65 3a 0a .well.defined.and.working.code:.
b05a0 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 ......</p>.......<figure><figcap
b05c0 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 tion.class="zig-cap"><cite.class
b05e0 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 74 72 75 6e 63 61 74 65 5f 62 75 69 6c 74 69 6e 2e 7a 69 ="file">test_truncate_builtin.zi
b0600 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
b0620 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
b0640 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 6e >.std.=.<span.class="tok-builtin
b0660 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
b0680 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 0a k-str">&quot;std&quot;</span>);.
b06a0 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
b06c0 3e 20 65 78 70 65 63 74 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a >.expect.=.std.testing.expect;..
b06e0 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>
b0700 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 74 .<span.class="tok-str">&quot;int
b0720 65 67 65 72 20 74 72 75 6e 63 61 74 69 6f 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7b 0a 20 eger.truncation&quot;</span>.{..
b0740 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
b0760 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 75 pan>.a:.<span.class="tok-type">u
b0780 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 75 6d 16</span>.=.<span.class="tok-num
b07a0 62 65 72 22 3e 30 78 61 62 63 64 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ber">0xabcd</span>;.....<span.cl
b07c0 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 73 70 ass="tok-kw">const</span>.b:.<sp
b07e0 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>.=.
b0800 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 6e 63 <span.class="tok-builtin">@trunc
b0820 61 74 65 3c 2f 73 70 61 6e 3e 28 61 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ate</span>(a);.....<span.class="
b0840 74 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 62 20 3d 3d 20 3c tok-kw">try</span>.expect(b.==.<
b0860 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 63 64 3c 2f 73 70 span.class="tok-number">0xcd</sp
b0880 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 an>);.}</code></pre></figure><fi
b08a0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 gure><figcaption.class="shell-ca
b08c0 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e p">Shell</figcaption><pre><samp>
b08e0 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 74 72 75 6e 63 61 74 65 5f 62 75 $.<kbd>zig.test.test_truncate_bu
b0900 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 74 72 75 6e 63 61 74 iltin.zig</kbd>.1/1.test_truncat
b0920 65 5f 62 75 69 6c 74 69 6e 2e 74 65 73 74 2e 69 6e 74 65 67 65 72 20 74 72 75 6e 63 61 74 69 6f e_builtin.test.integer.truncatio
b0940 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 n....OK.All.1.tests.passed..</sa
b0960 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 mp></pre></figure>.......<p>....
b0980 20 20 20 55 73 65 20 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 43 61 73 74 22 3e 40 69 6e 74 43 61 ...Use.<a.href="#intCast">@intCa
b09a0 73 74 3c 2f 61 3e 20 74 6f 20 63 6f 6e 76 65 72 74 20 6e 75 6d 62 65 72 73 20 67 75 61 72 61 6e st</a>.to.convert.numbers.guaran
b09c0 74 65 65 64 20 74 6f 20 66 69 74 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 74 79 70 65 teed.to.fit.the.destination.type
b09e0 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 68 33 20 69 ........</p>...............<h3.i
b0a00 64 3d 22 54 79 70 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d d="Type"><a.href="nav.xhtml#toc-
b0a20 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 22 68 64 72 22 20 68 Type">@Type</a>.<a.class="hdr".h
b0a40 72 65 66 3d 22 23 54 79 70 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c ref="#Type">..</a></h3>........<
b0a60 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 pre><code><span.class="tok-built
b0a80 69 6e 22 3e 40 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 in">@Type</span>(<span.class="to
b0aa0 6b 2d 6b 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 69 6e 66 6f 3a 20 73 74 64 2e k-kw">comptime</span>.info:.std.
b0ac0 62 75 69 6c 74 69 6e 2e 54 79 70 65 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 builtin.Type).<span.class="tok-t
b0ae0 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 20 20 ype">type</span></code></pre>...
b0b00 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 74 ....<p>.......This.function.is.t
b0b20 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 70 65 49 6e 66 6f he.inverse.of.<a.href="#typeInfo
b0b40 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 73 20 74 79 70 65 ">@typeInfo</a>..It.reifies.type
b0b60 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 3c 63 6f 64 65 3e .information.......into.a.<code>
b0b80 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
b0ba0 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 0a n></code>........</p>.......<p>.
b0bc0 20 20 20 20 20 20 49 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 74 68 65 20 66 6f ......It.is.available.for.the.fo
b0be0 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 0a 20 20 20 20 20 20 llowing.types:.......</p>.......
b0c00 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 <ul>...........<li><code><span.c
b0c20 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 6f 64 lass="tok-type">type</span></cod
b0c40 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 3e 3c 73 70 61 e></li>...........<li><code><spa
b0c60 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
b0c80 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
b0ca0 64 65 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 64 3c 2f de><span.class="tok-type">void</
b0cc0 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>
b0ce0 3c 63 6f 64 65 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 <code><span.class="tok-type">boo
b0d00 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 20 3c l</span></code></li>...........<
b0d20 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<
b0d40 2f 61 3e 20 2d 20 54 68 65 20 6d 61 78 69 6d 75 6d 20 62 69 74 20 63 6f 75 6e 74 20 66 6f 72 20 /a>.-.The.maximum.bit.count.for.
b0d60 61 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 an.integer.type.is.<code><span.c
b0d80 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 6e 3e 3c 2f lass="tok-number">65535</span></
b0da0 63 6f 64 65 3e 2e 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 code>.</li>...........<li><a.hre
b0dc0 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 20 f="#Floats">Floats</a></li>.....
b0de0 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f ......<li><a.href="#Pointers">Po
b0e00 69 6e 74 65 72 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 3c 63 inters</a></li>...........<li><c
b0e20 6f 64 65 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 ode><span.class="tok-type">compt
b0e40 69 6d 65 5f 69 6e 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 ime_int</span></code></li>......
b0e60 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .....<li><code><span.class="tok-
b0e80 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 3e 3c 2f 63 6f 64 type">comptime_float</span></cod
b0ea0 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 3e 3c 73 70 61 e></li>...........<li><code><spa
b0ec0 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 4f 66 3c 2f 73 n.class="tok-builtin">@TypeOf</s
b0ee0 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 75 6e 64 65 pan>(<span.class="tok-null">unde
b0f00 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 fined</span>)</code></li>.......
b0f20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 ....<li><code><span.class="tok-b
b0f40 75 69 6c 74 69 6e 22 3e 40 54 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
b0f60 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 3c 2f 63 6f 64 65 ss="tok-null">null</span>)</code
b0f80 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 23 41 ></li>...........<li><a.href="#A
b0fa0 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 20 20 20 20 20 20 20 rrays">Arrays</a></li>..........
b0fc0 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 6f 6e .<li><a.href="#Optionals">Option
b0fe0 61 6c 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 3c 61 20 68 72 als</a></li>...........<li><a.hr
b1000 65 66 3d 22 23 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 ef="#Error-Set-Type">Error.Set.T
b1020 79 70 65 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 ype</a></li>...........<li><a.hr
b1040 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 20 55 6e 69 ef="#Error-Union-Type">Error.Uni
b1060 6f 6e 20 54 79 70 65 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 on.Type</a></li>...........<li><
b1080 61 20 68 72 65 66 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 a.href="#Vectors">Vectors</a></l
b10a0 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 6f 70 61 71 75 i>...........<li><a.href="#opaqu
b10c0 65 22 3e 6f 70 61 71 75 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 e">opaque</a></li>...........<li
b10e0 3e 3c 63 6f 64 65 3e 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 ><code><span.class="tok-kw">anyf
b1100 72 61 6d 65 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 rame</span></code></li>.........
b1120 20 20 3c 6c 69 3e 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 ..<li><a.href="#struct">struct</
b1140 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 23 a></li>...........<li><a.href="#
b1160 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c enum">enum</a></li>...........<l
b1180 69 3e 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 45 6e 75 6d 20 i><a.href="#Enum-Literals">Enum.
b11a0 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 3c 6c 69 3e Literals</a></li>...........<li>
b11c0 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 3e 0a <a.href="#union">union</a></li>.
b11e0 20 20 20 20 20 20 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 ..........<li><a.href="#Function
b1200 73 22 3e 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c s">Functions</a></li>.......</ul
b1220 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 74 79 70 65 49 6e 66 6f 22 >..............<h3.id="typeInfo"
b1240 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 74 79 70 65 49 6e 66 6f ><a.href="nav.xhtml#toc-typeInfo
b1260 22 3e 40 74 79 70 65 49 6e 66 6f 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 ">@typeInfo</a>.<a.class="hdr".h
b1280 72 65 66 3d 22 23 74 79 70 65 49 6e 66 6f 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 ref="#typeInfo">..</a></h3>.....
b12a0 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 ...<pre><code><span.class="tok-b
b12c0 75 69 6c 74 69 6e 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 uiltin">@typeInfo</span>(<span.c
b12e0 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:
b1300 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
b1320 61 6e 3e 29 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 an>).std.builtin.Type</code></pr
b1340 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 72 6f 76 69 64 65 73 20 74 79 70 65 e>.......<p>.......Provides.type
b1360 20 72 65 66 6c 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 70 .reflection........</p>.......<p
b1380 3e 0a 20 20 20 20 20 20 54 79 70 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 66 20 3c 61 20 68 >.......Type.information.of.<a.h
b13a0 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 72 ref="#struct">structs</a>,.<a.hr
b13c0 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 3d ef="#union">unions</a>,.<a.href=
b13e0 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 20 "#enum">enums</a>,.and.......<a.
b1400 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 74 href="#Error-Set-Type">error.set
b1420 73 3c 2f 61 3e 20 68 61 73 20 66 69 65 6c 64 73 20 77 68 69 63 68 20 61 72 65 20 67 75 61 72 61 s</a>.has.fields.which.are.guara
b1440 6e 74 65 65 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 nteed.to.be.in.the.same.......or
b1460 64 65 72 20 61 73 20 61 70 70 65 61 72 61 6e 63 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 der.as.appearance.in.the.source.
b1480 66 69 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 file........</p>.......<p>......
b14a0 20 54 79 70 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 66 20 3c 61 20 68 72 65 66 3d 22 23 73 .Type.information.of.<a.href="#s
b14c0 74 72 75 63 74 22 3e 73 74 72 75 63 74 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 75 6e truct">structs</a>,.<a.href="#un
b14e0 69 6f 6e 22 3e 75 6e 69 6f 6e 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 ion">unions</a>,.<a.href="#enum"
b1500 3e 65 6e 75 6d 73 3c 2f 61 3e 2c 20 61 6e 64 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 >enums</a>,.and.......<a.href="#
b1520 6f 70 61 71 75 65 22 3e 6f 70 61 71 75 65 73 3c 2f 61 3e 20 68 61 73 20 64 65 63 6c 61 72 61 74 opaque">opaques</a>.has.declarat
b1540 69 6f 6e 73 2c 20 77 68 69 63 68 20 61 72 65 20 61 6c 73 6f 20 67 75 61 72 61 6e 74 65 65 64 20 ions,.which.are.also.guaranteed.
b1560 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 61 73 to.be.in.the.same.......order.as
b1580 20 61 70 70 65 61 72 61 6e 63 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 0a .appearance.in.the.source.file..
b15a0 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 33 20 69 64 3d ......</p>...............<h3.id=
b15c0 22 74 79 70 65 4e 61 6d 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f "typeName"><a.href="nav.xhtml#to
b15e0 63 2d 74 79 70 65 4e 61 6d 65 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 c-typeName">@typeName</a>.<a.cla
b1600 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 74 79 70 65 4e 61 6d 65 22 3e c2 a7 3c 2f 61 3e ss="hdr".href="#typeName">..</a>
b1620 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </h3>........<pre><code><span.cl
b1640 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 61 ass="tok-builtin">@typeName</spa
b1660 6e 3e 28 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
b1680 65 3c 2f 73 70 61 6e 3e 29 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e e</span>).*<span.class="tok-kw">
b16a0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 5b 4e 3a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b const</span>.[N:<span.class="tok
b16c0 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 -number">0</span>]<span.class="t
b16e0 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>.
b1700 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
b1720 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.
b1740 6f 66 20 61 20 74 79 70 65 2c 20 61 73 0a 20 20 20 20 20 20 61 6e 20 61 72 72 61 79 2e 20 49 74 of.a.type,.as.......an.array..It
b1760 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 .is.equivalent.to.a.string.liter
b1780 61 6c 20 6f 66 20 74 68 65 20 74 79 70 65 20 6e 61 6d 65 2e 0a 20 20 20 20 20 20 54 68 65 20 72 al.of.the.type.name........The.r
b17a0 65 74 75 72 6e 65 64 20 74 79 70 65 20 6e 61 6d 65 20 69 73 20 66 75 6c 6c 79 20 71 75 61 6c 69 eturned.type.name.is.fully.quali
b17c0 66 69 65 64 20 77 69 74 68 20 74 68 65 20 70 61 72 65 6e 74 20 6e 61 6d 65 73 70 61 63 65 20 69 fied.with.the.parent.namespace.i
b17e0 6e 63 6c 75 64 65 64 0a 20 20 20 20 20 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 79 70 ncluded.......as.part.of.the.typ
b1800 65 20 6e 61 6d 65 20 77 69 74 68 20 61 20 73 65 72 69 65 73 20 6f 66 20 64 6f 74 73 2e 0a 20 20 e.name.with.a.series.of.dots....
b1820 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 33 20 69 64 3d 22 54 ....</p>...............<h3.id="T
b1840 79 70 65 4f 66 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 79 ypeOf"><a.href="nav.xhtml#toc-Ty
b1860 70 65 4f 66 22 3e 40 54 79 70 65 4f 66 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 peOf">@TypeOf</a>.<a.class="hdr"
b1880 20 68 72 65 66 3d 22 23 54 79 70 65 4f 66 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 .href="#TypeOf">..</a></h3>.....
b18a0 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 ...<pre><code><span.class="tok-b
b18c0 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 2e 2e 2e 29 20 3c 73 70 61 uiltin">@TypeOf</span>(...).<spa
b18e0 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 3c 2f n.class="tok-type">type</span></
b1900 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
b1920 65 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 e><span.class="tok-builtin">@Typ
b1940 65 4f 66 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 73 70 65 63 69 61 6c 20 62 eOf</span></code>.is.a.special.b
b1960 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 6e 79 20 28 uiltin.function.that.takes.any.(
b1980 6e 6f 6e 7a 65 72 6f 29 20 6e 75 6d 62 65 72 20 6f 66 20 65 78 70 72 65 73 73 69 6f 6e 73 0a 20 nonzero).number.of.expressions..
b19a0 20 20 20 20 20 61 73 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 .....as.parameters.and.returns.t
b19c0 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 2c 20 75 73 69 6e 67 20 3c 61 20 he.type.of.the.result,.using.<a.
b19e0 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
b1a00 72 20 54 79 70 65 20 52 65 73 6f 6c 75 74 69 6f 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 r.Type.Resolution</a>........</p
b1a20 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 65 78 70 72 65 73 73 69 6f 6e >.......<p>.......The.expression
b1a40 73 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 2c 20 68 6f 77 65 76 65 72 20 74 68 65 79 20 61 72 s.are.evaluated,.however.they.ar
b1a60 65 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 6e 6f 20 3c 65 6d 3e 72 75 6e 74 e.guaranteed.to.have.no.<em>runt
b1a80 69 6d 65 3c 2f 65 6d 3e 20 73 69 64 65 2d 65 66 66 65 63 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 ime</em>.side-effects:.......</p
b1aa0 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 >.......<figure><figcaption.clas
b1ac0 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 s="zig-cap"><cite.class="file">t
b1ae0 65 73 74 5f 54 79 70 65 4f 66 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 est_TypeOf_builtin.zig</cite></f
b1b00 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
b1b20 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
b1b40 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</
b1b60 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
b1b80 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
b1ba0 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 70 65 63 74 20 3d 20 ="tok-kw">const</span>.expect.=.
b1bc0 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 std.testing.expect;..<span.class
b1be0 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
b1c00 73 3d 22 74 6f 6b 2d 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 s="tok-str">&quot;no.runtime.sid
b1c20 65 20 65 66 66 65 63 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 e.effects&quot;</span>.{.....<sp
b1c40 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 61 74 an.class="tok-kw">var</span>.dat
b1c60 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 3c 2f 73 a:.<span.class="tok-type">i32</s
b1c80 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">
b1ca0 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
b1cc0 77 22 3e 63 6f 6e 73 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 w">const</span>.T.=.<span.class=
b1ce0 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 54 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 66 6f 6f "tok-builtin">@TypeOf</span>(foo
b1d00 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 70 61 (<span.class="tok-type">i32</spa
b1d20 6e 3e 2c 20 26 61 6d 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 n>,.&amp;data));.....<span.class
b1d40 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 63 6c 61 73 73 ="tok-kw">try</span>.<span.class
b1d60 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 65 78 70 65 63 74 ="tok-kw">comptime</span>.expect
b1d80 28 54 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 69 33 32 (T.==.<span.class="tok-type">i32
b1da0 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 6b </span>);.....<span.class="tok-k
b1dc0 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 64 61 74 61 20 3d 3d 20 3c 73 70 w">try</span>.expect(data.==.<sp
b1de0 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 3b an.class="tok-number">0</span>);
b1e00 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
b1e20 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
b1e40 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
b1e60 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
b1e80 22 3e 74 79 70 65 3c 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 ">type</span>,.ptr:.*T).T.{.....
b1ea0 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 6d 62 65 72 ptr.*.+=.<span.class="tok-number
b1ec0 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
b1ee0 2d 6b 77 22 3e 72 65 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 -kw">return</span>.ptr.*;.}</cod
b1f00 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
b1f20 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
b1f40 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 gcaption><pre><samp>$.<kbd>zig.t
b1f60 65 73 74 20 74 65 73 74 5f 54 79 70 65 4f 66 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 est.test_TypeOf_builtin.zig</kbd
b1f80 3e 0a 31 2f 31 20 74 65 73 74 5f 54 79 70 65 4f 66 5f 62 75 69 6c 74 69 6e 2e 74 65 73 74 2e 6e >.1/1.test_TypeOf_builtin.test.n
b1fa0 6f 20 72 75 6e 74 69 6d 65 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 2e 2e 20 4f 4b 0a 41 6c 6c o.runtime.side.effects....OK.All
b1fc0 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .1.tests.passed..</samp></pre></
b1fe0 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 75 6e figure>...............<h3.id="un
b2000 69 6f 6e 49 6e 69 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d ionInit"><a.href="nav.xhtml#toc-
b2020 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 20 3c 61 20 63 6c 61 unionInit">@unionInit</a>.<a.cla
b2040 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 49 6e 69 74 22 3e c2 a7 3c 2f 61 ss="hdr".href="#unionInit">..</a
b2060 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></h3>........<pre><code><span.c
b2080 6c 61 73 73 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 lass="tok-builtin">@unionInit</s
b20a0 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
b20c0 6d 65 3c 2f 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 me</span>.Union:.<span.class="to
b20e0 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 73 73 k-type">type</span>,.<span.class
b2100 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 63 74 69 76 65 ="tok-kw">comptime</span>.active
b2120 5f 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 6b 2d _field_name:.[]<span.class="tok-
b2140 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
b2160 6b 2d 74 79 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 k-type">u8</span>,.init_expr).Un
b2180 69 6f 6e 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 ion</code></pre>.......<p>......
b21a0 20 54 68 69 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 .This.is.the.same.thing.as.<a.hr
b21c0 65 66 3d 22 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 ef="#union">union</a>.initializa
b21e0 74 69 6f 6e 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 tion.syntax,.except.that.the.fie
b2200 6c 64 20 6e 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 ld.name.is.a.......<a.href="#com
b2220 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 20 76 61 6c 75 65 20 ptime">comptime</a>-known.value.
b2240 72 61 74 68 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 rather.than.an.identifier.token.
b2260 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 6f 64 .......</p>.......<p>.......<cod
b2280 65 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 75 6e 69 e><span.class="tok-builtin">@uni
b22a0 6f 6e 49 6e 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 66 6f 72 77 61 72 64 73 20 69 74 onInit</span></code>.forwards.it
b22c0 73 20 3c 61 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 s.<a.href="#Result-Location-Sema
b22e0 6e 74 69 63 73 22 3e 72 65 73 75 6c 74 20 6c 6f 63 61 74 69 6f 6e 3c 2f 61 3e 20 74 6f 20 3c 63 ntics">result.location</a>.to.<c
b2300 6f 64 65 3e 69 6e 69 74 5f 65 78 70 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e ode>init_expr</code>........</p>
b2320 0a 20 20 20 20 20 20 0a 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 56 65 63 74 6f 72 22 3e ................<h3.id="Vector">
b2340 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 56 65 63 74 6f 72 22 3e 40 <a.href="nav.xhtml#toc-Vector">@
b2360 56 65 63 74 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 Vector</a>.<a.class="hdr".href="
b2380 23 56 65 63 74 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 #Vector">..</a></h3>........<pre
b23a0 3e 3c 63 6f 64 65 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 ><code><span.class="tok-builtin"
b23c0 3e 40 56 65 63 74 6f 72 3c 2f 73 70 61 6e 3e 28 6c 65 6e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 >@Vector</span>(len:.<span.class
b23e0 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>,
b2400 20 45 6c 65 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 .Element:.<span.class="tok-type"
b2420 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 2d 74 >type</span>).<span.class="tok-t
b2440 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 20 20 ype">type</span></code></pre>...
b2460 20 20 20 20 3c 70 3e 43 72 65 61 74 65 73 20 3c 61 20 68 72 65 66 3d 22 23 56 65 63 74 6f 72 73 ....<p>Creates.<a.href="#Vectors
b2480 22 3e 56 65 63 74 6f 72 73 3c 2f 61 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 ">Vectors</a>.</p>..............
b24a0 20 3c 68 33 20 69 64 3d 22 76 6f 6c 61 74 69 6c 65 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 .<h3.id="volatileCast"><a.href="
b24c0 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 76 6f 6c 61 74 69 6c 65 43 61 73 74 22 3e 40 76 6f 6c nav.xhtml#toc-volatileCast">@vol
b24e0 61 74 69 6c 65 43 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 atileCast</a>.<a.class="hdr".hre
b2500 66 3d 22 23 76 6f 6c 61 74 69 6c 65 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 f="#volatileCast">..</a></h3>...
b2520 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
b2540 2d 62 75 69 6c 74 69 6e 22 3e 40 76 6f 6c 61 74 69 6c 65 43 61 73 74 3c 2f 73 70 61 6e 3e 28 76 -builtin">@volatileCast</span>(v
b2560 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 61 6e 79 74 79 alue:.<span.class="tok-kw">anyty
b2580 70 65 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 3e pe</span>).DestType</code></pre>
b25a0 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 6d 6f 76 65 20 3c 63 6f 64 65 3e 3c 73 .......<p>.......Remove.<code><s
b25c0 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 61 pan.class="tok-kw">volatile</spa
b25e0 6e 3e 3c 2f 63 6f 64 65 3e 20 71 75 61 6c 69 66 69 65 72 20 66 72 6f 6d 20 61 20 70 6f 69 6e 74 n></code>.qualifier.from.a.point
b2600 65 72 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 68 33 er........</p>...............<h3
b2620 20 69 64 3d 22 77 6f 72 6b 47 72 6f 75 70 49 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 .id="workGroupId"><a.href="nav.x
b2640 68 74 6d 6c 23 74 6f 63 2d 77 6f 72 6b 47 72 6f 75 70 49 64 22 3e 40 77 6f 72 6b 47 72 6f 75 70 html#toc-workGroupId">@workGroup
b2660 49 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 77 6f 72 Id</a>.<a.class="hdr".href="#wor
b2680 6b 47 72 6f 75 70 49 64 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 kGroupId">..</a></h3>........<pr
b26a0 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-builtin
b26c0 22 3e 40 77 6f 72 6b 47 72 6f 75 70 49 64 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 ">@workGroupId</span>(<span.clas
b26e0 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 64 69 6d 65 6e s="tok-kw">comptime</span>.dimen
b2700 73 69 6f 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 33 32 sion:.<span.class="tok-type">u32
b2720 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">
b2740 75 33 32 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 u32</span></code></pre>.......<p
b2760 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 >.......Returns.the.index.of.the
b2780 20 77 6f 72 6b 20 67 72 6f 75 70 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6b 65 72 6e 65 .work.group.in.the.current.kerne
b27a0 6c 20 69 6e 76 6f 63 61 74 69 6f 6e 20 69 6e 20 64 69 6d 65 6e 73 69 6f 6e 20 3c 63 6f 64 65 3e l.invocation.in.dimension.<code>
b27c0 64 69 6d 65 6e 73 69 6f 6e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 dimension</code>........</p>....
b27e0 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 77 6f 72 6b 47 72 6f 75 70 53 69 7a 65 ...........<h3.id="workGroupSize
b2800 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 77 6f 72 6b 47 72 6f "><a.href="nav.xhtml#toc-workGro
b2820 75 70 53 69 7a 65 22 3e 40 77 6f 72 6b 47 72 6f 75 70 53 69 7a 65 3c 2f 61 3e 20 3c 61 20 63 6c upSize">@workGroupSize</a>.<a.cl
b2840 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 77 6f 72 6b 47 72 6f 75 70 53 69 7a 65 22 3e ass="hdr".href="#workGroupSize">
b2860 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 ..</a></h3>........<pre><code><s
b2880 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 77 6f 72 6b 47 72 6f pan.class="tok-builtin">@workGro
b28a0 75 70 53 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 6b upSize</span>(<span.class="tok-k
b28c0 77 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 64 69 6d 65 6e 73 69 6f 6e 3a 20 3c 73 w">comptime</span>.dimension:.<s
b28e0 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>)
b2900 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
b2920 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 20 20 n></code></pre>.......<p>.......
b2940 52 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 77 6f 72 6b 20 69 74 65 6d 73 Returns.the.number.of.work.items
b2960 20 74 68 61 74 20 61 20 77 6f 72 6b 20 67 72 6f 75 70 20 68 61 73 20 69 6e 20 64 69 6d 65 6e 73 .that.a.work.group.has.in.dimens
b2980 69 6f 6e 20 3c 63 6f 64 65 3e 64 69 6d 65 6e 73 69 6f 6e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 ion.<code>dimension</code>......
b29a0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 77 6f 72 ..</p>...............<h3.id="wor
b29c0 6b 49 74 65 6d 49 64 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d kItemId"><a.href="nav.xhtml#toc-
b29e0 77 6f 72 6b 49 74 65 6d 49 64 22 3e 40 77 6f 72 6b 49 74 65 6d 49 64 3c 2f 61 3e 20 3c 61 20 63 workItemId">@workItemId</a>.<a.c
b2a00 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 77 6f 72 6b 49 74 65 6d 49 64 22 3e c2 a7 lass="hdr".href="#workItemId">..
b2a20 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 </a></h3>........<pre><code><spa
b2a40 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 77 6f 72 6b 49 74 65 6d 49 n.class="tok-builtin">@workItemI
b2a60 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
b2a80 6d 70 74 69 6d 65 3c 2f 73 70 61 6e 3e 20 64 69 6d 65 6e 73 69 6f 6e 3a 20 3c 73 70 61 6e 20 63 mptime</span>.dimension:.<span.c
b2aa0 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 3c 73 70 61 lass="tok-type">u32</span>).<spa
b2ac0 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 3c 2f 63 n.class="tok-type">u32</span></c
b2ae0 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 75 72 ode></pre>.......<p>.......Retur
b2b00 6e 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 69 74 65 6d 20 69 6e ns.the.index.of.the.work.item.in
b2b20 20 74 68 65 20 77 6f 72 6b 20 67 72 6f 75 70 20 69 6e 20 64 69 6d 65 6e 73 69 6f 6e 20 3c 63 6f .the.work.group.in.dimension.<co
b2b40 64 65 3e 64 69 6d 65 6e 73 69 6f 6e 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 66 75 6e 63 74 69 de>dimension</code>..This.functi
b2b60 6f 6e 20 72 65 74 75 72 6e 73 20 76 61 6c 75 65 73 20 62 65 74 77 65 65 6e 20 3c 63 6f 64 65 3e on.returns.values.between.<code>
b2b80 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
b2ba0 3e 3c 2f 63 6f 64 65 3e 20 28 69 6e 63 6c 75 73 69 76 65 29 20 61 6e 64 20 3c 63 6f 64 65 3e 3c ></code>.(inclusive).and.<code><
b2bc0 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 77 6f 72 6b 47 72 span.class="tok-builtin">@workGr
b2be0 6f 75 70 53 69 7a 65 3c 2f 73 70 61 6e 3e 28 64 69 6d 65 6e 73 69 6f 6e 29 3c 2f 63 6f 64 65 3e oupSize</span>(dimension)</code>
b2c00 20 28 65 78 63 6c 75 73 69 76 65 29 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a .(exclusive)........</p>........
b2c20 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 42 75 69 6c 64 2d 4d 6f 64 ...............<h2.id="Build-Mod
b2c40 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 42 75 69 6c 64 2d e"><a.href="nav.xhtml#toc-Build-
b2c60 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 73 3d 22 68 Mode">Build.Mode</a>.<a.class="h
b2c80 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 3e 3c 2f 68 dr".href="#Build-Mode">..</a></h
b2ca0 32 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 66 6f 75 72 2>........<p>.......Zig.has.four
b2cc0 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 20 20 20 3c .build.modes:.......</p>.......<
b2ce0 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 62 75 67 22 ul>.........<li><a.href="#Debug"
b2d00 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 20 20 20 20 >Debug</a>.(default)</li>.......
b2d20 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 3e 52 65 6c ..<li><a.href="#ReleaseFast">Rel
b2d40 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 69 3e 3c 61 easeFast</a></li>.........<li><a
b2d60 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 53 61 66 65 .href="#ReleaseSafe">ReleaseSafe
b2d80 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 66 3d 22 23 </a></li>.........<li><a.href="#
b2da0 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 3c 2f ReleaseSmall">ReleaseSmall</a></
b2dc0 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>.......
b2de0 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 73 20 74 6f To.add.standard.build.options.to
b2e00 20 61 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 62 75 69 6c 64 2e 7a 69 67 3c .a.<code.class="file">build.zig<
b2e20 2f 63 6f 64 65 3e 20 66 69 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 /code>.file:.......</p>.......<f
b2e40 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
b2e60 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 62 75 69 6c 64 2e 7a 69 67 3c 2f "><cite.class="file">build.zig</
b2e80 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
b2ea0 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
b2ec0 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">@
b2ee0 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
b2f00 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 3c 73 tr">&quot;std&quot;</span>);..<s
b2f20 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
b2f40 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
b2f60 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 62 an.class="tok-fn">build</span>(b
b2f80 3a 20 2a 73 74 64 2e 42 75 69 6c 64 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 :.*std.Build).<span.class="tok-t
b2fa0 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
b2fc0 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 70 74 69 6d 69 7a ss="tok-kw">const</span>.optimiz
b2fe0 65 20 3d 20 62 2e 73 74 61 6e 64 61 72 64 4f 70 74 69 6d 69 7a 65 4f 70 74 69 6f 6e 28 2e 7b 7d e.=.b.standardOptimizeOption(.{}
b3000 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
b3020 74 3c 2f 73 70 61 6e 3e 20 65 78 65 20 3d 20 62 2e 61 64 64 45 78 65 63 75 74 61 62 6c 65 28 2e t</span>.exe.=.b.addExecutable(.
b3040 7b 0a 20 20 20 20 20 20 20 20 2e 6e 61 6d 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 {..........name.=.<span.class="t
b3060 6f 6b 2d 73 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 ok-str">&quot;example&quot;</spa
b3080 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 72 6f 6f 74 5f 73 6f 75 72 63 65 5f 66 69 6c 65 20 3d 20 n>,..........root_source_file.=.
b30a0 2e 7b 20 2e 70 61 74 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 .{..path.=.<span.class="tok-str"
b30c0 3e 26 71 75 6f 74 3b 65 78 61 6d 70 6c 65 2e 7a 69 67 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 >&quot;example.zig&quot;</span>.
b30e0 7d 2c 0a 20 20 20 20 20 20 20 20 2e 6f 70 74 69 6d 69 7a 65 20 3d 20 6f 70 74 69 6d 69 7a 65 2c },..........optimize.=.optimize,
b3100 0a 20 20 20 20 7d 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 .....});.....b.default_step.depe
b3120 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
b3140 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 re></figure>.......<p>.......Thi
b3160 73 20 63 61 75 73 65 73 20 74 68 65 73 65 20 6f 70 74 69 6f 6e 73 20 74 6f 20 62 65 20 61 76 61 s.causes.these.options.to.be.ava
b3180 69 6c 61 62 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 64 6c 3e 0a 20 20 ilable:.......</p>.......<dl>...
b31a0 20 20 20 20 20 20 3c 64 74 3e 3c 6b 62 64 3e 2d 44 6f 70 74 69 6d 69 7a 65 3d 44 65 62 75 67 3c ......<dt><kbd>-Doptimize=Debug<
b31c0 2f 6b 62 64 3e 3c 2f 64 74 3e 3c 64 64 3e 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 6f 66 66 20 /kbd></dt><dd>Optimizations.off.
b31e0 61 6e 64 20 73 61 66 65 74 79 20 6f 6e 20 28 64 65 66 61 75 6c 74 29 3c 2f 64 64 3e 0a 20 20 20 and.safety.on.(default)</dd>....
b3200 20 20 20 20 20 3c 64 74 3e 3c 6b 62 64 3e 2d 44 6f 70 74 69 6d 69 7a 65 3d 52 65 6c 65 61 73 65 .....<dt><kbd>-Doptimize=Release
b3220 53 61 66 65 3c 2f 6b 62 64 3e 3c 2f 64 74 3e 3c 64 64 3e 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 Safe</kbd></dt><dd>Optimizations
b3240 20 6f 6e 20 61 6e 64 20 73 61 66 65 74 79 20 6f 6e 3c 2f 64 64 3e 0a 20 20 20 20 20 20 20 20 3c .on.and.safety.on</dd>.........<
b3260 64 74 3e 3c 6b 62 64 3e 2d 44 6f 70 74 69 6d 69 7a 65 3d 52 65 6c 65 61 73 65 46 61 73 74 3c 2f dt><kbd>-Doptimize=ReleaseFast</
b3280 6b 62 64 3e 3c 2f 64 74 3e 3c 64 64 3e 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 6f 6e 20 61 6e kbd></dt><dd>Optimizations.on.an
b32a0 64 20 73 61 66 65 74 79 20 6f 66 66 3c 2f 64 64 3e 0a 20 20 20 20 20 20 20 20 3c 64 74 3e 3c 6b d.safety.off</dd>.........<dt><k
b32c0 62 64 3e 2d 44 6f 70 74 69 6d 69 7a 65 3d 52 65 6c 65 61 73 65 53 6d 61 6c 6c 3c 2f 6b 62 64 3e bd>-Doptimize=ReleaseSmall</kbd>
b32e0 3c 2f 64 74 3e 3c 64 64 3e 53 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 6f 6e 20 61 </dt><dd>Size.optimizations.on.a
b3300 6e 64 20 73 61 66 65 74 79 20 6f 66 66 3c 2f 64 64 3e 0a 20 20 20 20 20 20 3c 2f 64 6c 3e 0a 20 nd.safety.off</dd>.......</dl>..
b3320 20 20 20 20 20 3c 68 33 20 69 64 3d 22 44 65 62 75 67 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 .....<h3.id="Debug"><a.href="nav
b3340 2e 78 68 74 6d 6c 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 .xhtml#toc-Debug">Debug</a>.<a.c
b3360 6c 61 73 73 3d 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 lass="hdr".href="#Debug">..</a><
b3380 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 /h3>........<figure><figcaption.
b33a0 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 class="shell-cap">Shell</figcapt
b33c0 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d ion><pre><samp>$.<kbd>zig.build-
b33e0 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 exe.example.zig</kbd>.</samp></p
b3400 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 re></figure>.......<ul>.........
b3420 3c 6c 69 3e 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 <li>Fast.compilation.speed</li>.
b3440 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 65 6e 61 62 6c 65 ........<li>Safety.checks.enable
b3460 64 3c 2f 6c 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 d</li>.........<li>Slow.runtime.
b3480 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 3c 6c 69 3e 4c 61 72 performance</li>.........<li>Lar
b34a0 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 3c 6c 69 3e ge.binary.size</li>.........<li>
b34c0 4e 6f 20 72 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 No.reproducible.build.requiremen
b34e0 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 0a 20 20 20 20 20 20 t</li>.......</ul>..............
b3500 3c 68 33 20 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 6e 61 <h3.id="ReleaseFast"><a.href="na
b3520 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 65 6c 65 61 73 65 46 61 73 74 22 3e 52 65 6c 65 61 73 65 v.xhtml#toc-ReleaseFast">Release
b3540 46 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 52 Fast</a>.<a.class="hdr".href="#R
b3560 65 6c 65 61 73 65 46 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c eleaseFast">..</a></h3>........<
b3580 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d figure><figcaption.class="shell-
b35a0 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d cap">Shell</figcaption><pre><sam
b35c0 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a p>$.<kbd>zig.build-exe.example.z
b35e0 69 67 20 2d 4f 20 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c ig.-O.ReleaseFast</kbd>.</samp><
b3600 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 /pre></figure>.......<ul>.......
b3620 20 20 3c 6c 69 3e 46 61 73 74 20 72 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 3c 2f ..<li>Fast.runtime.performance</
b3640 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 64 69 li>.........<li>Safety.checks.di
b3660 73 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 6d sabled</li>.........<li>Slow.com
b3680 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 3e pilation.speed</li>.........<li>
b36a0 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 3c Large.binary.size</li>.........<
b36c0 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 20 li>Reproducible.build</li>......
b36e0 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 52 65 6c 65 .</ul>..............<h3.id="Rele
b3700 61 73 65 53 61 66 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d aseSafe"><a.href="nav.xhtml#toc-
b3720 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 2f 61 3e 20 3c 61 20 ReleaseSafe">ReleaseSafe</a>.<a.
b3740 63 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 53 61 66 65 22 3e class="hdr".href="#ReleaseSafe">
b3760 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ..</a></h3>........<figure><figc
b3780 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
b37a0 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
b37c0 20 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 20 2d 4f 20 52 65 6c 65 61 73 .build-exe.example.zig.-O.Releas
b37e0 65 53 61 66 65 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 eSafe</kbd>.</samp></pre></figur
b3800 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 4d 65 64 69 75 6d e>.......<ul>.........<li>Medium
b3820 20 72 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 .runtime.performance</li>.......
b3840 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 69 3e ..<li>Safety.checks.enabled</li>
b3860 0a 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 .........<li>Slow.compilation.sp
b3880 65 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 eed</li>.........<li>Large.binar
b38a0 79 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 y.size</li>.........<li>Reproduc
b38c0 69 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 ible.build</li>.......</ul>.....
b38e0 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 52 65 6c 65 61 73 65 53 6d 61 6c 6c 22 3e 3c .........<h3.id="ReleaseSmall"><
b3900 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 65 6c 65 61 73 65 53 6d 61 a.href="nav.xhtml#toc-ReleaseSma
b3920 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 3d 22 68 ll">ReleaseSmall</a>.<a.class="h
b3940 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 61 3e 3c dr".href="#ReleaseSmall">..</a><
b3960 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 /h3>........<figure><figcaption.
b3980 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 class="shell-cap">Shell</figcapt
b39a0 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d ion><pre><samp>$.<kbd>zig.build-
b39c0 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 20 2d 4f 20 52 65 6c 65 61 73 65 53 6d 61 6c 6c 3c exe.example.zig.-O.ReleaseSmall<
b39e0 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 /kbd>.</samp></pre></figure>....
b3a00 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 75 6e 74 69 ...<ul>.........<li>Medium.runti
b3a20 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 3c 6c 69 3e me.performance</li>.........<li>
b3a40 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 20 20 20 20 Safety.checks.disabled</li>.....
b3a60 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 65 64 3c 2f ....<li>Slow.compilation.speed</
b3a80 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 20 73 69 7a li>.........<li>Small.binary.siz
b3aa0 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 62 6c 65 20 e</li>.........<li>Reproducible.
b3ac0 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 20 0a 20 20 build</li>.......</ul>..........
b3ae0 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.
b3b00 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
b3b20 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 68 72 65 66 e.Variables</a></li>.<li><a.href
b3b40 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 6c 64 20 53 ="#Zig-Build-System">Zig.Build.S
b3b60 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 23 55 6e 64 ystem</a></li>.<li><a.href="#Und
b3b80 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 76 efined-Behavior">Undefined.Behav
b3ba0 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 20 20 20 20 ior</a></li>.</ul>..............
b3bc0 20 20 3c 68 32 20 69 64 3d 22 53 69 6e 67 6c 65 2d 54 68 72 65 61 64 65 64 2d 42 75 69 6c 64 73 ..<h2.id="Single-Threaded-Builds
b3be0 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 69 6e 67 6c 65 2d "><a.href="nav.xhtml#toc-Single-
b3c00 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 61 64 65 64 Threaded-Builds">Single.Threaded
b3c20 20 42 75 69 6c 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 .Builds</a>.<a.class="hdr".href=
b3c40 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 c2 a7 3c 2f 61 3e "#Single-Threaded-Builds">..</a>
b3c60 3c 2f 68 32 3e 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 </h2>........<p>Zig.has.a.compil
b3c80 65 20 6f 70 74 69 6f 6e 20 3c 6b 62 64 3e 2d 66 73 69 6e 67 6c 65 2d 74 68 72 65 61 64 65 64 3c e.option.<kbd>-fsingle-threaded<
b3ca0 2f 6b 62 64 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 /kbd>.which.has.the.following.ef
b3cc0 66 65 63 74 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 fects:</p>.......<ul>.........<l
b3ce0 69 3e 41 6c 6c 20 3c 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 i>All.<a.href="#Thread-Local-Var
b3d00 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</
b3d20 61 3e 20 61 72 65 20 74 72 65 61 74 65 64 20 61 73 20 72 65 67 75 6c 61 72 20 3c 61 20 68 72 65 a>.are.treated.as.regular.<a.hre
b3d40 66 3d 22 23 43 6f 6e 74 61 69 6e 65 72 2d 4c 65 76 65 6c 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 f="#Container-Level-Variables">C
b3d60 6f 6e 74 61 69 6e 65 72 20 4c 65 76 65 6c 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 2e 3c 2f 6c ontainer.Level.Variables</a>.</l
b3d80 69 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 i>.........<li>The.overhead.of.<
b3da0 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 41 73 79 6e 63 20 a.href="#Async-Functions">Async.
b3dc0 46 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 Functions</a>.becomes.equivalent
b3de0 20 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 .to.function.call.overhead.</li>
b3e00 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 .........<li>The.<code><span.cla
b3e20 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>(
b3e40 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 6c <span.class="tok-str">&quot;buil
b3e60 74 69 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 73 69 6e 67 6c 65 5f 74 68 72 65 61 64 65 tin&quot;</span>).single_threade
b3e80 64 3c 2f 63 6f 64 65 3e 20 62 65 63 6f 6d 65 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 d</code>.becomes.<code><span.cla
b3ea0 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>
b3ec0 0a 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 76 61 72 69 6f 75 73 ...........and.therefore.various
b3ee0 20 75 73 65 72 6c 61 6e 64 20 41 50 49 73 20 77 68 69 63 68 20 72 65 61 64 20 74 68 69 73 20 76 .userland.APIs.which.read.this.v
b3f00 61 72 69 61 62 6c 65 20 62 65 63 6f 6d 65 20 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 2e 0a 20 ariable.become.more.efficient...
b3f20 20 20 20 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 20 3c 63 6f 64 65 3e 73 74 64 2e 4d .........For.example.<code>std.M
b3f40 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 20 61 6e utex</code>.becomes...........an
b3f60 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 20 6f 66 .empty.data.structure.and.all.of
b3f80 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 3c 2f 6c .its.functions.become.no-ops.</l
b3fa0 69 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 i>.......</ul>...............<h2
b3fc0 20 69 64 3d 22 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 3c 61 20 68 72 65 66 .id="Undefined-Behavior"><a.href
b3fe0 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 ="nav.xhtml#toc-Undefined-Behavi
b4000 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 3c 61 20 63 6c or">Undefined.Behavior</a>.<a.cl
b4020 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 42 65 68 61 76 ass="hdr".href="#Undefined-Behav
b4040 69 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 20 20 ior">..</a></h2>........<p>.....
b4060 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 20 75 6e 64 65 ..Zig.has.many.instances.of.unde
b4080 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 64 20 62 65 68 fined.behavior..If.undefined.beh
b40a0 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 63 6f 6d 70 69 avior.is.......detected.at.compi
b40c0 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 65 20 65 72 72 le-time,.Zig.emits.a.compile.err
b40e0 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 0a 20 20 20 20 or.and.refuses.to.continue......
b4100 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 68 61 74 20 63 ..Most.undefined.behavior.that.c
b4120 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 65 2d 74 69 6d annot.be.detected.at.compile-tim
b4140 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 72 75 6e 74 69 e.can.be.detected.......at.runti
b4160 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 20 73 61 66 65 me..In.these.cases,.Zig.has.safe
b4180 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 6e 20 62 65 20 ty.checks..Safety.checks.can.be.
b41a0 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 63 6b 20 62 61 disabled.......on.a.per-block.ba
b41c0 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 6d 65 53 61 66 sis.with.<a.href="#setRuntimeSaf
b41e0 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 20 54 68 65 20 ety">@setRuntimeSafety</a>..The.
b4200 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 61 73 65 46 61 <a.href="#ReleaseFast">ReleaseFa
b4220 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 52 65 6c 65 61 st</a>.......and.<a.href="#Relea
b4240 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 75 69 6c 64 20 seSmall">ReleaseSmall</a>.build.
b4260 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 65 63 6b 73 20 modes.disable.all.safety.checks.
b4280 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 20 20 20 20 62 (except.where.overridden.......b
b42a0 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 79 22 3e 40 73 y.<a.href="#setRuntimeSafety">@s
b42c0 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 65 72 20 74 6f etRuntimeSafety</a>).in.order.to
b42e0 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 20 20 20 20 20 .facilitate.optimizations.......
b4300 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 61 20 73 61 66 .</p>.......<p>.......When.a.saf
b4320 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 73 20 77 69 74 ety.check.fails,.Zig.crashes.wit
b4340 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 0a 20 20 20 20 h.a.stack.trace,.like.this:.....
b4360 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e ..</p>.......<figure><figcaption
b4380 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 .class="zig-cap"><cite.class="fi
b43a0 6c 65 22 3e 74 65 73 74 5f 75 6e 64 65 66 69 6e 65 64 5f 62 65 68 61 76 69 6f 72 2e 7a 69 67 3c le">test_undefined_behavior.zig<
b43c0 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
b43e0 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>.<
b4400 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 61 66 65 74 span.class="tok-str">&quot;safet
b4420 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 20 20 3c 73 70 61 6e y.check&quot;</span>.{.....<span
b4440 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
b4460 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 n>;.}</code></pre></figure><figu
b4480 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 re><figcaption.class="shell-cap"
b44a0 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 >Shell</figcaption><pre><samp>$.
b44c0 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 75 6e 64 65 66 69 6e 65 64 5f 62 65 68 <kbd>zig.test.test_undefined_beh
b44e0 61 76 69 6f 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 75 6e 64 65 66 69 6e avior.zig</kbd>.1/1.test_undefin
b4500 65 64 5f 62 65 68 61 76 69 6f 72 2e 74 65 73 74 2e 73 61 66 65 74 79 20 63 68 65 63 6b 2e 2e 2e ed_behavior.test.safety.check...
b4520 20 74 68 72 65 61 64 20 31 34 34 31 39 38 20 70 61 6e 69 63 3a 20 72 65 61 63 68 65 64 20 75 6e .thread.144198.panic:.reached.un
b4540 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d reachable.code.<span.class="sgr-
b4560 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 1m">/home/andy/src/zig-0.12.x/do
b4580 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 75 6e 64 65 66 69 6e 65 64 5f 62 65 68 61 76 69 6f 72 cgen_tmp/test_undefined_behavior
b45a0 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 61 73 73 3d 22 73 67 .zig:2:5</span>:.<span.class="sg
b45c0 72 2d 32 6d 22 3e 30 78 31 30 33 38 66 39 30 20 69 6e 20 74 65 73 74 2e 73 61 66 65 74 79 20 63 r-2m">0x1038f90.in.test.safety.c
b45e0 68 65 63 6b 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 61 62 heck.(test)</span>.....unreachab
b4600 6c 65 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c le;.....<span.class="sgr-32m">^<
b4620 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d /span>.<span.class="sgr-1m">/hom
b4640 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c e/andy/src/zig-0.12.x/lib/compil
b4660 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 35 38 3a 32 35 3c 2f 73 70 61 6e 3e er/test_runner.zig:158:25</span>
b4680 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 34 34 34 61 64 :.<span.class="sgr-2m">0x10444ad
b46a0 20 69 6e 20 6d 61 69 6e 54 65 72 6d 69 6e 61 6c 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 .in.mainTerminal.(test)</span>..
b46c0 20 20 20 20 20 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 .......if.(test_fn.func()).|_|.{
b46e0 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 70 61 6e 20 63 .........................<span.c
b4700 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c lass="sgr-32m">^</span>.<span.cl
b4720 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d ass="sgr-1m">/home/andy/src/zig-
b4740 30 2e 31 32 2e 78 2f 6c 69 62 2f 63 6f 6d 70 69 6c 65 72 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 0.12.x/lib/compiler/test_runner.
b4760 7a 69 67 3a 33 35 3a 32 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 zig:35:28</span>:.<span.class="s
b4780 67 72 2d 32 6d 22 3e 30 78 31 30 33 61 33 37 62 20 69 6e 20 6d 61 69 6e 20 28 74 65 73 74 29 3c gr-2m">0x103a37b.in.main.(test)<
b47a0 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 61 69 6e 54 65 72 6d 69 6e /span>.........return.mainTermin
b47c0 61 6c 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 20 20 20 20 20 al();...........................
b47e0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a .<span.class="sgr-32m">^</span>.
b4800 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f <span.class="sgr-1m">/home/andy/
b4820 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 src/zig-0.12.x/lib/std/start.zig
b4840 3a 35 30 31 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 73 67 72 :501:22</span>:.<span.class="sgr
b4860 2d 32 6d 22 3e 30 78 31 30 33 39 34 62 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 -2m">0x10394b9.in.posixCallMainA
b4880 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>............
b48a0 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();...................
b48c0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e ...<span.class="sgr-32m">^</span
b48e0 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 >.<span.class="sgr-1m">/home/and
b4900 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a y/src/zig-0.12.x/lib/std/start.z
b4920 69 67 3a 32 35 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 73 67 ig:253:5</span>:.<span.class="sg
b4940 72 2d 32 6d 22 3e 30 78 31 30 33 39 30 32 31 20 69 6e 20 5f 73 74 61 72 74 20 28 74 65 73 74 29 r-2m">0x1039021.in._start.(test)
b4960 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 </span>.....asm.volatile.(switch
b4980 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 .(native_arch).{.....<span.class
b49a0 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="sgr-32m">^</span>.<span.class=
b49c0 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 "sgr-1m">???:?:?</span>:.<span.c
b49e0 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f lass="sgr-2m">0x0.in.???.(???)</
b4a00 73 70 61 6e 3e 0a 65 72 72 6f 72 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 73 74 20 span>.error:.the.following.test.
b4a20 63 6f 6d 6d 61 6e 64 20 63 72 61 73 68 65 64 3a 0a 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f command.crashed:./home/andy/src/
b4a40 7a 69 67 2d 30 2e 31 32 2e 78 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f 33 37 34 64 37 36 30 34 38 zig-0.12.x/zig-cache/o/374d76048
b4a60 64 36 66 38 38 65 63 32 32 63 61 37 66 34 31 35 39 63 33 38 66 37 31 2f 74 65 73 74 0a 3c 2f 73 d6f88ec22ca7f4159c38f71/test.</s
b4a80 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 amp></pre></figure>.......<h3.id
b4aa0 3d 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 ="Reaching-Unreachable-Code"><a.
b4ac0 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 65 61 63 68 69 6e 67 2d 55 6e 72 href="nav.xhtml#toc-Reaching-Unr
b4ae0 65 61 63 68 61 62 6c 65 2d 43 6f 64 65 22 3e 52 65 61 63 68 69 6e 67 20 55 6e 72 65 61 63 68 61 eachable-Code">Reaching.Unreacha
b4b00 62 6c 65 20 43 6f 64 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 ble.Code</a>.<a.class="hdr".href
b4b20 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 c2 a7 ="#Reaching-Unreachable-Code">..
b4b40 3c 2f 61 3e 3c 2f 68 33 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></h3>........<p>At.compile-t
b4b60 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ime:</p>.......<figure><figcapti
b4b80 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
b4ba0 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 file">test_comptime_reaching_unr
b4bc0 65 61 63 68 61 62 6c 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e eachable.zig</cite></figcaption>
b4be0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
b4c00 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 3c 73 70 comptime</span>.{.....assert(<sp
b4c20 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>
b4c40 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
b4c60 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 73 73 65 72 74 3c an>.<span.class="tok-fn">assert<
b4c80 2f 73 70 61 6e 3e 28 6f 6b 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 /span>(ok:.<span.class="tok-type
b4ca0 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 6b 2d ">bool</span>).<span.class="tok-
b4cc0 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
b4ce0 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 6f 6b 29 20 3c 73 70 ass="tok-kw">if</span>.(!ok).<sp
b4d00 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 2f 73 an.class="tok-kw">unreachable</s
b4d20 70 61 6e 3e 3b 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 pan>;.<span.class="tok-comment">
b4d40 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 3c 2f 73 70 61 6e 3e 0a 7d 3c 2f 63 //.assertion.failure</span>.}</c
b4d60 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ode></pre></figure><figure><figc
b4d80 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
b4da0 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
b4dc0 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 .test.test_comptime_reaching_unr
b4de0 65 61 63 68 61 62 6c 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 eachable.zig</kbd>.<span.class="
b4e00 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 sgr-1m">docgen_tmp/test_comptime
b4e20 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3a 35 3a 31 34 3a 20 _reaching_unreachable.zig:5:14:.
b4e40 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 </span><span.class="sgr-31m">err
b4e60 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e or:.</span><span.class="sgr-1m">
b4e80 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 0a 3c 2f 73 70 61 6e 3e reached.unreachable.code.</span>
b4ea0 20 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 ....if.(!ok).unreachable;.//.ass
b4ec0 65 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 ertion.failure..............<spa
b4ee0 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f n.class="sgr-32m">^~~~~~~~~~~.</
b4f00 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e span><span.class="sgr-1m">docgen
b4f20 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 65 _tmp/test_comptime_reaching_unre
b4f40 61 63 68 61 62 6c 65 2e 7a 69 67 3a 32 3a 31 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 achable.zig:2:11:.</span><span.c
b4f60 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 lass="sgr-36m">note:.</span><spa
b4f80 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 n.class="sgr-1m">called.from.her
b4fa0 65 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 e.</span>....assert(false);.....
b4fc0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e 7e 7e 7e 7e 5e 7e 7e 7e <span.class="sgr-32m">~~~~~~^~~~
b4fe0 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 ~~~.</span>.</samp></pre></figur
b5000 65 3e 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 20 e>.......<p>At.runtime:</p>.....
b5020 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
b5040 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 -cap"><cite.class="file">runtime
b5060 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3c 2f 63 69 74 65 3e _reaching_unreachable.zig</cite>
b5080 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
b50a0 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.=.
b50c0 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
b50e0 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">&
b5100 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 20 63 quot;std&quot;</span>);..<span.c
b5120 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
b5140 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
b5160 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 6e ass="tok-fn">main</span>().<span
b5180 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>.{.
b51a0 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 ....std.debug.assert(<span.class
b51c0 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 3b 0a 7d 3c 2f 63 6f ="tok-null">false</span>);.}</co
b51e0 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 de></pre></figure><figure><figca
b5200 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 ption.class="shell-cap">Shell</f
b5220 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 igcaption><pre><samp>$.<kbd>zig.
b5240 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 65 61 build-exe.runtime_reaching_unrea
b5260 63 68 61 62 6c 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d chable.zig</kbd>.$.<kbd>./runtim
b5280 65 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 6b 62 64 3e 0a 74 68 72 e_reaching_unreachable</kbd>.thr
b52a0 65 61 64 20 31 34 34 32 39 31 20 70 61 6e 69 63 3a 20 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 ead.144291.panic:.reached.unreac
b52c0 68 61 62 6c 65 20 63 6f 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e hable.code.<span.class="sgr-1m">
b52e0 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 /home/andy/src/zig-0.12.x/lib/st
b5300 64 2f 64 65 62 75 67 2e 7a 69 67 3a 34 30 33 3a 31 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e d/debug.zig:403:14</span>:.<span
b5320 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 35 39 35 64 20 69 6e 20 61 73 73 .class="sgr-2m">0x103595d.in.ass
b5340 65 72 74 20 28 72 75 6e 74 69 6d 65 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 65 61 63 68 61 62 6c ert.(runtime_reaching_unreachabl
b5360 65 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 65 61 63 68 61 62 e)</span>.....if.(!ok).unreachab
b5380 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 20 20 20 20 le;.//.assertion.failure........
b53a0 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 ......<span.class="sgr-32m">^</s
b53c0 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f pan>.<span.class="sgr-1m">/home/
b53e0 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 andy/src/zig-0.12.x/docgen_tmp/r
b5400 75 6e 74 69 6d 65 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 65 61 63 68 61 62 6c 65 2e 7a 69 67 3a untime_reaching_unreachable.zig:
b5420 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 73 67 72 2d 32 6d 4:21</span>:.<span.class="sgr-2m
b5440 22 3e 30 78 31 30 33 33 64 31 61 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 72 65 61 ">0x1033d1a.in.main.(runtime_rea
b5460 63 68 69 6e 67 5f 75 6e 72 65 61 63 68 61 62 6c 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 74 ching_unreachable)</span>.....st
b5480 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 20 d.debug.assert(false);..........
b54a0 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 ...........<span.class="sgr-32m"
b54c0 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f >^</span>.<span.class="sgr-1m">/
b54e0 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 home/andy/src/zig-0.12.x/lib/std
b5500 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 /start.zig:501:22</span>:.<span.
b5520 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 35 63 39 20 69 6e 20 70 6f 73 69 class="sgr-2m">0x10335c9.in.posi
b5540 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 72 65 61 63 68 69 xCallMainAndExit.(runtime_reachi
b5560 6e 67 5f 75 6e 72 65 61 63 68 61 62 6c 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 ng_unreachable)</span>..........
b5580 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();.................
b55a0 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 .....<span.class="sgr-32m">^</sp
b55c0 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 an>.<span.class="sgr-1m">/home/a
b55e0 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 ndy/src/zig-0.12.x/lib/std/start
b5600 2e 7a 69 67 3a 32 35 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 .zig:253:5</span>:.<span.class="
b5620 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 31 33 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e sgr-2m">0x1033131.in._start.(run
b5640 74 69 6d 65 5f 72 65 61 63 68 69 6e 67 5f 75 6e 72 65 61 63 68 61 62 6c 65 29 3c 2f 73 70 61 6e time_reaching_unreachable)</span
b5660 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 >.....asm.volatile.(switch.(nati
b5680 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d ve_arch).{.....<span.class="sgr-
b56a0 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 32m">^</span>.<span.class="sgr-1
b56c0 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 m">???:?:?</span>:.<span.class="
b56e0 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a sgr-2m">0x0.in.???.(???)</span>.
b5700 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 0a 3c (process.terminated.by.signal).<
b5720 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 /samp></pre></figure>...........
b5740 20 20 20 3c 68 33 20 69 64 3d 22 49 6e 64 65 78 2d 6f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 22 3e ...<h3.id="Index-out-of-Bounds">
b5760 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6e 64 65 78 2d 6f 75 74 <a.href="nav.xhtml#toc-Index-out
b5780 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 3c -of-Bounds">Index.out.of.Bounds<
b57a0 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 2d /a>.<a.class="hdr".href="#Index-
b57c0 6f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 out-of-Bounds">..</a></h3>......
b57e0 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>.......
b5800 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
b5820 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 ap"><cite.class="file">test_comp
b5840 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 2e 7a 69 67 3c 2f 63 69 time_index_out_of_bounds.zig</ci
b5860 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
b5880 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>.
b58a0 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
b58c0 3c 2f 73 70 61 6e 3e 20 61 72 72 61 79 3a 20 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b </span>.array:.[<span.class="tok
b58e0 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 74 -number">5</span>]<span.class="t
b5900 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 73 ok-type">u8</span>.=.<span.class
b5920 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
b5940 61 6e 3e 2e 2a 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 an>.*;.....<span.class="tok-kw">
b5960 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 67 61 72 62 61 67 65 20 3d 20 61 72 72 61 79 5b 3c 73 70 const</span>.garbage.=.array[<sp
b5980 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 5d 3b an.class="tok-number">5</span>];
b59a0 0a 20 20 20 20 5f 20 3d 20 67 61 72 62 61 67 65 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e ....._.=.garbage;.}</code></pre>
b59c0 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
b59e0 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
b5a00 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 ><pre><samp>$.<kbd>zig.test.test
b5a20 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 2e 7a 69 _comptime_index_out_of_bounds.zi
b5a40 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 g</kbd>.<span.class="sgr-1m">doc
b5a60 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f gen_tmp/test_comptime_index_out_
b5a80 6f 66 5f 62 6f 75 6e 64 73 2e 7a 69 67 3a 33 3a 32 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e of_bounds.zig:3:27:.</span><span
b5aa0 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c .class="sgr-31m">error:.</span><
b5ac0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 69 6e 64 65 78 20 35 20 6f 75 74 73 span.class="sgr-1m">index.5.outs
b5ae0 69 64 65 20 61 72 72 61 79 20 6f 66 20 6c 65 6e 67 74 68 20 35 0a 3c 2f 73 70 61 6e 3e 20 20 20 ide.array.of.length.5.</span>...
b5b00 20 63 6f 6e 73 74 20 67 61 72 62 61 67 65 20 3d 20 61 72 72 61 79 5b 35 5d 3b 0a 20 20 20 20 20 .const.garbage.=.array[5];......
b5b20 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
b5b40 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 ="sgr-32m">^.</span>.</samp></pr
b5b60 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a e></figure>.......<p>At.runtime:
b5b80 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
b5ba0 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
b5bc0 22 3e 72 75 6e 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 2e 7a 69 ">runtime_index_out_of_bounds.zi
b5be0 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
b5c00 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>.
b5c20 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>.<
b5c40 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>(
b5c60 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
b5c80 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">
b5ca0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 78 20 3d 20 66 6f 6f 28 3c 73 70 61 6e 20 63 6c 61 73 73 const</span>.x.=.foo(<span.class
b5cc0 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
b5ce0 61 6e 3e 29 3b 0a 20 20 20 20 5f 20 3d 20 78 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d an>);....._.=.x;.}..<span.class=
b5d00 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="
b5d20 74 6f 6b 2d 66 6e 22 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 tok-fn">foo</span>(x:.[]<span.cl
b5d40 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.
b5d60 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 73 70 61 class="tok-type">u8</span>).<spa
b5d80 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 7b 0a 20 n.class="tok-type">u8</span>.{..
b5da0 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</
b5dc0 73 70 61 6e 3e 20 78 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 span>.x[<span.class="tok-number"
b5de0 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 3e 3c 2f 66 69 67 75 >5</span>];.}</code></pre></figu
b5e00 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 re><figure><figcaption.class="sh
b5e20 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ell-cap">Shell</figcaption><pre>
b5e40 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 <samp>$.<kbd>zig.build-exe.runti
b5e60 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 2e 7a 69 67 3c 2f 6b 62 64 3e me_index_out_of_bounds.zig</kbd>
b5e80 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f 66 5f 62 .$.<kbd>./runtime_index_out_of_b
b5ea0 6f 75 6e 64 73 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 34 33 38 37 20 70 61 6e 69 63 3a ounds</kbd>.thread.144387.panic:
b5ec0 20 69 6e 64 65 78 20 6f 75 74 20 6f 66 20 62 6f 75 6e 64 73 3a 20 69 6e 64 65 78 20 35 2c 20 6c .index.out.of.bounds:.index.5,.l
b5ee0 65 6e 20 35 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f en.5.<span.class="sgr-1m">/home/
b5f00 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 andy/src/zig-0.12.x/docgen_tmp/r
b5f20 75 6e 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 2e 7a 69 67 3a 37 untime_index_out_of_bounds.zig:7
b5f40 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 73 67 72 2d 32 6d 22 :13</span>:.<span.class="sgr-2m"
b5f60 3e 30 78 31 30 33 35 64 64 39 20 69 6e 20 66 6f 6f 20 28 72 75 6e 74 69 6d 65 5f 69 6e 64 65 78 >0x1035dd9.in.foo.(runtime_index
b5f80 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 _out_of_bounds)</span>.....retur
b5fa0 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 61 73 73 3d n.x[5];.............<span.class=
b5fc0 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "sgr-32m">^</span>.<span.class="
b5fe0 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e sgr-1m">/home/andy/src/zig-0.12.
b6000 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f x/docgen_tmp/runtime_index_out_o
b6020 66 5f 62 6f 75 6e 64 73 2e 7a 69 67 3a 32 3a 31 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 f_bounds.zig:2:18</span>:.<span.
b6040 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 64 34 36 20 69 6e 20 6d 61 69 6e class="sgr-2m">0x1033d46.in.main
b6060 20 28 72 75 6e 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 29 3c 2f .(runtime_index_out_of_bounds)</
b6080 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 66 6f 6f 28 26 71 75 6f 74 3b 68 65 span>.....const.x.=.foo(&quot;he
b60a0 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 20 20 20 20 3c 73 70 llo&quot;);..................<sp
b60c0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 an.class="sgr-32m">^</span>.<spa
b60e0 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f n.class="sgr-1m">/home/andy/src/
b6100 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 zig-0.12.x/lib/std/start.zig:501
b6120 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 73 67 72 2d 32 6d 22 :22</span>:.<span.class="sgr-2m"
b6140 3e 30 78 31 30 33 33 35 65 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 >0x10335e9.in.posixCallMainAndEx
b6160 69 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 29 it.(runtime_index_out_of_bounds)
b6180 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();
b61a0 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
b61c0 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 s="sgr-32m">^</span>.<span.class
b61e0 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 ="sgr-1m">/home/andy/src/zig-0.1
b6200 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 2.x/lib/std/start.zig:253:5</spa
b6220 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 31 n>:.<span.class="sgr-2m">0x10331
b6240 35 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e 64 65 78 5f 6f 75 74 5f 51.in._start.(runtime_index_out_
b6260 6f 66 5f 62 6f 75 6e 64 73 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 of_bounds)</span>.....asm.volati
b6280 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c le.(switch.(native_arch).{.....<
b62a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 span.class="sgr-32m">^</span>.<s
b62c0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e pan.class="sgr-1m">???:?:?</span
b62e0 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f >:.<span.class="sgr-2m">0x0.in.?
b6300 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 ??.(???)</span>.(process.termina
b6320 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 ted.by.signal).</samp></pre></fi
b6340 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 61 73 74 2d gure>..............<h3.id="Cast-
b6360 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
b6380 67 65 72 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 61 73 74 ger"><a.href="nav.xhtml#toc-Cast
b63a0 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 6e 65 64 2d 49 6e 74 -Negative-Number-to-Unsigned-Int
b63c0 65 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 eger">Cast.Negative.Number.to.Un
b63e0 73 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 signed.Integer</a>.<a.class="hdr
b6400 22 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 ".href="#Cast-Negative-Number-to
b6420 2d 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 33 3e 0a 0a -Unsigned-Integer">..</a></h3>..
b6440 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 20 ......<p>At.compile-time:</p>...
b6460 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
b6480 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f ig-cap"><cite.class="file">test_
b64a0 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e comptime_invalid_cast.zig</cite>
b64c0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
b64e0 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>.{..
b6500 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
b6520 70 61 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 pan>.value:.<span.class="tok-typ
b6540 65 22 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 e">i32</span>.=.-<span.class="to
b6560 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
b6580 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 75 6e 73 69 67 6e ass="tok-kw">const</span>.unsign
b65a0 65 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 75 33 32 3c 2f ed:.<span.class="tok-type">u32</
b65c0 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 75 69 6c 74 69 6e span>.=.<span.class="tok-builtin
b65e0 22 3e 40 69 6e 74 43 61 73 74 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 5f 20 ">@intCast</span>(value);....._.
b6600 3d 20 75 6e 73 69 67 6e 65 64 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 =.unsigned;.}</code></pre></figu
b6620 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 re><figure><figcaption.class="sh
b6640 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ell-cap">Shell</figcaption><pre>
b6660 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 <samp>$.<kbd>zig.test.test_compt
b6680 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e ime_invalid_cast.zig</kbd>.<span
b66a0 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f .class="sgr-1m">docgen_tmp/test_
b66c0 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 2e 7a 69 67 3a 33 3a 33 36 3a 20 comptime_invalid_cast.zig:3:36:.
b66e0 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 </span><span.class="sgr-31m">err
b6700 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e or:.</span><span.class="sgr-1m">
b6720 74 79 70 65 20 27 75 33 32 27 20 63 61 6e 6e 6f 74 20 72 65 70 72 65 73 65 6e 74 20 69 6e 74 65 type.'u32'.cannot.represent.inte
b6740 67 65 72 20 76 61 6c 75 65 20 27 2d 31 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 ger.value.'-1'.</span>....const.
b6760 75 6e 73 69 67 6e 65 64 3a 20 75 33 32 20 3d 20 40 69 6e 74 43 61 73 74 28 76 61 6c 75 65 29 3b unsigned:.u32.=.@intCast(value);
b6780 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 20 20 ................................
b67a0 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 0a ....<span.class="sgr-32m">^~~~~.
b67c0 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 </span>.</samp></pre></figure>..
b67e0 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 66 .....<p>At.runtime:</p>.......<f
b6800 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
b6820 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 69 6e 76 "><cite.class="file">runtime_inv
b6840 61 6c 69 64 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e alid_cast.zig</cite></figcaption
b6860 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ><pre><code><span.class="tok-kw"
b6880 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=
b68a0 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
b68c0 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
b68e0 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 77 t;</span>);..<span.class="tok-kw
b6900 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
b6920 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"
b6940 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-
b6960 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
b6980 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 20 3c ass="tok-kw">var</span>.value:.<
b69a0 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>
b69c0 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 3c 2f .=.-<span.class="tok-number">1</
b69e0 73 70 61 6e 3e 3b 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>;.<span.class="tok-comment"
b6a00 3e 2f 2f 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 3d >//.runtime-known</span>....._.=
b6a20 20 26 61 6d 70 3b 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 .&amp;value;.....<span.class="to
b6a40 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 3a 20 3c 73 70 k-kw">const</span>.unsigned:.<sp
b6a60 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>.=
b6a80 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 43 .<span.class="tok-builtin">@intC
b6aa0 61 73 74 3c 2f 73 70 61 6e 3e 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 ast</span>(value);.....std.debug
b6ac0 2e 70 72 69 6e 74 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 .print(<span.class="tok-str">&qu
b6ae0 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 2c 20 2e 7b 75 ot;value:.{}\n&quot;</span>,..{u
b6b00 6e 73 69 67 6e 65 64 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 nsigned});.}</code></pre></figur
b6b20 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
b6b40 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
b6b60 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d samp>$.<kbd>zig.build-exe.runtim
b6b80 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e e_invalid_cast.zig</kbd>.$.<kbd>
b6ba0 2e 2f 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 3c 2f 6b 62 64 3e 0a 74 68 72 ./runtime_invalid_cast</kbd>.thr
b6bc0 65 61 64 20 31 34 34 34 38 30 20 70 61 6e 69 63 3a 20 61 74 74 65 6d 70 74 20 74 6f 20 63 61 73 ead.144480.panic:.attempt.to.cas
b6be0 74 20 6e 65 67 61 74 69 76 65 20 76 61 6c 75 65 20 74 6f 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 t.negative.value.to.unsigned.int
b6c00 65 67 65 72 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f eger.<span.class="sgr-1m">/home/
b6c20 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 andy/src/zig-0.12.x/docgen_tmp/r
b6c40 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 2e 7a 69 67 3a 36 3a 32 37 3c 2f 73 70 untime_invalid_cast.zig:6:27</sp
b6c60 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 an>:.<span.class="sgr-2m">0x1033
b6c80 65 38 32 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 e82.in.main.(runtime_invalid_cas
b6ca0 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 3a 20 75 33 t)</span>.....const.unsigned:.u3
b6cc0 32 20 3d 20 40 69 6e 74 43 61 73 74 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 2.=.@intCast(value);............
b6ce0 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 73 67 72 2d ...............<span.class="sgr-
b6d00 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 32m">^</span>.<span.class="sgr-1
b6d20 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 m">/home/andy/src/zig-0.12.x/lib
b6d40 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 /std/start.zig:501:22</span>:.<s
b6d60 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 36 65 39 20 69 6e 20 pan.class="sgr-2m">0x10336e9.in.
b6d80 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e posixCallMainAndExit.(runtime_in
b6da0 76 61 6c 69 64 5f 63 61 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 valid_cast)</span>.............r
b6dc0 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 20 oot.main();.....................
b6de0 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a .<span.class="sgr-32m">^</span>.
b6e00 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f <span.class="sgr-1m">/home/andy/
b6e20 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 src/zig-0.12.x/lib/std/start.zig
b6e40 3a 32 35 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 73 67 72 2d :253:5</span>:.<span.class="sgr-
b6e60 32 6d 22 3e 30 78 31 30 33 33 32 35 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 2m">0x1033251.in._start.(runtime
b6e80 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f _invalid_cast)</span>.....asm.vo
b6ea0 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 latile.(switch.(native_arch).{..
b6ec0 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e ...<span.class="sgr-32m">^</span
b6ee0 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f >.<span.class="sgr-1m">???:?:?</
b6f00 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 span>:.<span.class="sgr-2m">0x0.
b6f20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 in.???.(???)</span>.(process.ter
b6f40 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e minated.by.signal).</samp></pre>
b6f60 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 6f 62 74 </figure>.......<p>.......To.obt
b6f80 61 69 6e 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 61 6e 20 75 6e 73 69 ain.the.maximum.value.of.an.unsi
b6fa0 67 6e 65 64 20 69 6e 74 65 67 65 72 2c 20 75 73 65 20 3c 63 6f 64 65 3e 73 74 64 2e 6d 61 74 68 gned.integer,.use.<code>std.math
b6fc0 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 20 .maxInt</code>........</p>......
b6fe0 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 61 73 74 2d 54 72 75 6e 63 61 74 65 73 2d 44 ........<h3.id="Cast-Truncates-D
b7000 61 74 61 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 61 73 74 ata"><a.href="nav.xhtml#toc-Cast
b7020 2d 54 72 75 6e 63 61 74 65 73 2d 44 61 74 61 22 3e 43 61 73 74 20 54 72 75 6e 63 61 74 65 73 20 -Truncates-Data">Cast.Truncates.
b7040 44 61 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 43 Data</a>.<a.class="hdr".href="#C
b7060 61 73 74 2d 54 72 75 6e 63 61 74 65 73 2d 44 61 74 61 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a ast-Truncates-Data">..</a></h3>.
b7080 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>..
b70a0 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
b70c0 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
b70e0 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 5f 74 72 75 6e 63 61 74 65 2e _comptime_invalid_cast_truncate.
b7100 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 zig</cite></figcaption><pre><cod
b7120 65 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 e><span.class="tok-kw">comptime<
b7140 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
b7160 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 3a 20 3c 73 ">const</span>.spartan_count:.<s
b7180 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 20 pan.class="tok-type">u16</span>.
b71a0 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 30 30 3c 2f =.<span.class="tok-number">300</
b71c0 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">
b71e0 63 6f 6e 73 74 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 const</span>.byte:.<span.class="
b7200 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
b7220 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 3e 28 s="tok-builtin">@intCast</span>(
b7240 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 29 3b 0a 20 20 20 20 5f 20 3d 20 62 79 74 65 3b 0a 7d 3c spartan_count);....._.=.byte;.}<
b7260 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
b7280 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
b72a0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
b72c0 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 ig.test.test_comptime_invalid_ca
b72e0 73 74 5f 74 72 75 6e 63 61 74 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 st_truncate.zig</kbd>.<span.clas
b7300 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 s="sgr-1m">docgen_tmp/test_compt
b7320 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 5f 74 72 75 6e 63 61 74 65 2e 7a 69 67 3a 33 3a ime_invalid_cast_truncate.zig:3:
b7340 33 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 31:.</span><span.class="sgr-31m"
b7360 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d >error:.</span><span.class="sgr-
b7380 31 6d 22 3e 74 79 70 65 20 27 75 38 27 20 63 61 6e 6e 6f 74 20 72 65 70 72 65 73 65 6e 74 20 69 1m">type.'u8'.cannot.represent.i
b73a0 6e 74 65 67 65 72 20 76 61 6c 75 65 20 27 33 30 30 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f nteger.value.'300'.</span>....co
b73c0 6e 73 74 20 62 79 74 65 3a 20 75 38 20 3d 20 40 69 6e 74 43 61 73 74 28 73 70 61 72 74 61 6e 5f nst.byte:.u8.=.@intCast(spartan_
b73e0 63 6f 75 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 count);.........................
b7400 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e ......<span.class="sgr-32m">^~~~
b7420 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c ~~~~~~~~~.</span>.</samp></pre><
b7440 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 /figure>.......<p>At.runtime:</p
b7460 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 >.......<figure><figcaption.clas
b7480 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 s="zig-cap"><cite.class="file">r
b74a0 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 5f 74 72 75 6e 63 61 74 65 2e 7a 69 67 untime_invalid_cast_truncate.zig
b74c0 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c </cite></figcaption><pre><code><
b74e0 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>
b7500 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"
b7520 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
b7540 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>);..
b7560 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>.
b7580 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>.<
b75a0 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>(
b75c0 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
b75e0 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">
b7600 76 61 72 3c 2f 73 70 61 6e 3e 20 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 3a 20 3c 73 70 61 6e 20 var</span>.spartan_count:.<span.
b7620 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 20 3c 73 class="tok-type">u16</span>.=.<s
b7640 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 30 30 3c 2f 73 70 61 6e pan.class="tok-number">300</span
b7660 3e 3b 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">//.
b7680 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 3d 20 26 61 6d runtime-known</span>....._.=.&am
b76a0 70 3b 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 p;spartan_count;.....<span.class
b76c0 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 3a 20 3c 73 70 ="tok-kw">const</span>.byte:.<sp
b76e0 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>.=.
b7700 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
b7720 73 74 3c 2f 73 70 61 6e 3e 28 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 29 3b 0a 20 20 20 20 73 74 st</span>(spartan_count);.....st
b7740 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 d.debug.print(<span.class="tok-s
b7760 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 61 tr">&quot;value:.{}\n&quot;</spa
b7780 6e 3e 2c 20 2e 7b 62 79 74 65 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 n>,..{byte});.}</code></pre></fi
b77a0 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 gure><figure><figcaption.class="
b77c0 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
b77e0 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e e><samp>$.<kbd>zig.build-exe.run
b7800 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 5f 74 72 75 6e 63 61 74 65 2e 7a 69 67 3c 2f time_invalid_cast_truncate.zig</
b7820 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 kbd>.$.<kbd>./runtime_invalid_ca
b7840 73 74 5f 74 72 75 6e 63 61 74 65 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 34 35 37 33 20 st_truncate</kbd>.thread.144573.
b7860 70 61 6e 69 63 3a 20 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 panic:.integer.cast.truncated.bi
b7880 74 73 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e ts.<span.class="sgr-1m">/home/an
b78a0 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e dy/src/zig-0.12.x/docgen_tmp/run
b78c0 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 5f 74 72 75 6e 63 61 74 65 2e 7a 69 67 3a 36 time_invalid_cast_truncate.zig:6
b78e0 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 73 67 72 2d 32 6d 22 :22</span>:.<span.class="sgr-2m"
b7900 3e 30 78 31 30 33 33 66 31 63 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 >0x1033f1c.in.main.(runtime_inva
b7920 6c 69 64 5f 63 61 73 74 5f 74 72 75 6e 63 61 74 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f lid_cast_truncate)</span>.....co
b7940 6e 73 74 20 62 79 74 65 3a 20 75 38 20 3d 20 40 69 6e 74 43 61 73 74 28 73 70 61 72 74 61 6e 5f nst.byte:.u8.=.@intCast(spartan_
b7960 63 6f 75 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 3c 73 70 count);......................<sp
b7980 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 an.class="sgr-32m">^</span>.<spa
b79a0 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f n.class="sgr-1m">/home/andy/src/
b79c0 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 zig-0.12.x/lib/std/start.zig:501
b79e0 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 73 67 72 2d 32 6d 22 :22</span>:.<span.class="sgr-2m"
b7a00 3e 30 78 31 30 33 33 37 37 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 >0x1033779.in.posixCallMainAndEx
b7a20 69 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 63 61 73 74 5f 74 72 75 6e 63 61 74 it.(runtime_invalid_cast_truncat
b7a40 65 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 61 69 6e 28 e)</span>.............root.main(
b7a60 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 6e 20 63 6c );......................<span.cl
b7a80 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ass="sgr-32m">^</span>.<span.cla
b7aa0 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 ss="sgr-1m">/home/andy/src/zig-0
b7ac0 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 .12.x/lib/std/start.zig:253:5</s
b7ae0 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 pan>:.<span.class="sgr-2m">0x103
b7b00 33 32 65 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 32e1.in._start.(runtime_invalid_
b7b20 63 61 73 74 5f 74 72 75 6e 63 61 74 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f cast_truncate)</span>.....asm.vo
b7b40 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 latile.(switch.(native_arch).{..
b7b60 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e ...<span.class="sgr-32m">^</span
b7b80 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f >.<span.class="sgr-1m">???:?:?</
b7ba0 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 span>:.<span.class="sgr-2m">0x0.
b7bc0 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 in.???.(???)</span>.(process.ter
b7be0 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e minated.by.signal).</samp></pre>
b7c00 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 74 72 75 </figure>.......<p>.......To.tru
b7c20 6e 63 61 74 65 20 62 69 74 73 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 74 72 75 6e 63 61 ncate.bits,.use.<a.href="#trunca
b7c40 74 65 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 te">@truncate</a>........</p>...
b7c60 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6e 74 65 67 65 72 2d 4f 76 65 72 66 ...........<h3.id="Integer-Overf
b7c80 6c 6f 77 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6e 74 65 low"><a.href="nav.xhtml#toc-Inte
b7ca0 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 77 3c 2f ger-Overflow">Integer.Overflow</
b7cc0 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 67 65 72 a>.<a.class="hdr".href="#Integer
b7ce0 2d 4f 76 65 72 66 6c 6f 77 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 68 -Overflow">..</a></h3>........<h
b7d00 34 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 68 72 65 4.id="Default-Operations"><a.hre
b7d20 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 f="nav.xhtml#toc-Default-Operati
b7d40 6f 6e 73 22 3e 44 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 ons">Default.Operations</a>.<a.c
b7d60 6c 61 73 73 3d 22 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 lass="hdr".href="#Default-Operat
b7d80 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 20 ions">..</a></h4>........<p>The.
b7da0 66 6f 6c 6c 6f 77 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 following.operators.can.cause.in
b7dc0 74 65 67 65 72 20 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 teger.overflow:</p>.......<ul>..
b7de0 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2b 3c 2f 63 6f 64 65 3e 20 28 61 64 64 .........<li><code>+</code>.(add
b7e00 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 3c 63 6f 64 65 3e ition)</li>...........<li><code>
b7e20 2d 3c 2f 63 6f 64 65 3e 20 28 73 75 62 74 72 61 63 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 -</code>.(subtraction)</li>.....
b7e40 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2d 3c 2f 63 6f 64 65 3e 20 28 6e 65 67 61 74 69 ......<li><code>-</code>.(negati
b7e60 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 65 3e 2a 3c 2f on)</li>...........<li><code>*</
b7e80 63 6f 64 65 3e 20 28 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 code>.(multiplication)</li>.....
b7ea0 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2f 3c 2f 63 6f 64 65 3e 20 28 64 69 76 69 73 69 ......<li><code>/</code>.(divisi
b7ec0 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 on)</li>.........<li><a.href="#d
b7ee0 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 20 28 64 69 76 69 73 69 6f 6e ivTrunc">@divTrunc</a>.(division
b7f00 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 )</li>.........<li><a.href="#div
b7f20 46 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c Floor">@divFloor</a>.(division)<
b7f40 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 45 78 /li>.........<li><a.href="#divEx
b7f60 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c act">@divExact</a>.(division)</l
b7f80 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 78 61 6d 70 6c 65 20 i>.......</ul>.......<p>Example.
b7fa0 77 69 74 68 20 61 64 64 69 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f with.addition.at.compile-time:</
b7fc0 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 p>.......<figure><figcaption.cla
b7fe0 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e ss="zig-cap"><cite.class="file">
b8000 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3c 2f 63 69 74 65 test_comptime_overflow.zig</cite
b8020 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></figcaption><pre><code><span.c
b8040 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 0a lass="tok-kw">comptime</span>.{.
b8060 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
b8080 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 79 70 65 22 an>.byte:.<span.class="tok-type"
b80a0 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
b80c0 6d 62 65 72 22 3e 32 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 mber">255</span>;.....byte.+=.<s
b80e0 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>;
b8100 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e .}</code></pre></figure><figure>
b8120 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 <figcaption.class="shell-cap">Sh
b8140 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 ell</figcaption><pre><samp>$.<kb
b8160 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6f 76 65 72 66 6c 6f d>zig.test.test_comptime_overflo
b8180 77 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 w.zig</kbd>.<span.class="sgr-1m"
b81a0 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6f 76 65 72 66 6c >docgen_tmp/test_comptime_overfl
b81c0 6f 77 2e 7a 69 67 3a 33 3a 31 30 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ow.zig:3:10:.</span><span.class=
b81e0 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c "sgr-31m">error:.</span><span.cl
b8200 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 6f 76 65 72 66 6c 6f 77 20 6f 66 20 69 6e 74 65 67 65 72 ass="sgr-1m">overflow.of.integer
b8220 20 74 79 70 65 20 27 75 38 27 20 77 69 74 68 20 76 61 6c 75 65 20 27 32 35 36 27 0a 3c 2f 73 70 .type.'u8'.with.value.'256'.</sp
b8240 61 6e 3e 20 20 20 20 62 79 74 65 20 2b 3d 20 31 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 an>....byte.+=.1;.....<span.clas
b8260 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e 7e 7e 7e 5e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f s="sgr-32m">~~~~~^~~~.</span>.</
b8280 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 samp></pre></figure>.......<p>At
b82a0 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 .runtime:</p>.......<figure><fig
b82c0 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c caption.class="zig-cap"><cite.cl
b82e0 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3c ass="file">runtime_overflow.zig<
b8300 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
b8320 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>.
b8340 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">
b8360 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-
b8380 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 3c str">&quot;std&quot;</span>);..<
b83a0 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>.<
b83c0 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
b83e0 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 29 pan.class="tok-fn">main</span>()
b8400 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 70 .<span.class="tok-type">void</sp
b8420 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
b8440 61 72 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 ar</span>.byte:.<span.class="tok
b8460 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="
b8480 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 32 35 35 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 62 79 74 65 tok-number">255</span>;.....byte
b84a0 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 2f .+=.<span.class="tok-number">1</
b84c0 73 70 61 6e 3e 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e span>;.....std.debug.print(<span
b84e0 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 3a 20 7b 7d .class="tok-str">&quot;value:.{}
b8500 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 62 79 74 65 7d 29 3b 0a 7d 3c 2f 63 6f \n&quot;</span>,..{byte});.}</co
b8520 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 de></pre></figure><figure><figca
b8540 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 ption.class="shell-cap">Shell</f
b8560 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 igcaption><pre><samp>$.<kbd>zig.
b8580 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3c 2f build-exe.runtime_overflow.zig</
b85a0 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 3c 2f kbd>.$.<kbd>./runtime_overflow</
b85c0 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 34 36 36 36 20 70 61 6e 69 63 3a 20 69 6e 74 65 67 65 kbd>.thread.144666.panic:.intege
b85e0 72 20 6f 76 65 72 66 6c 6f 77 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e r.overflow.<span.class="sgr-1m">
b8600 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e /home/andy/src/zig-0.12.x/docgen
b8620 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3a 35 3a 31 30 3c 2f _tmp/runtime_overflow.zig:5:10</
b8640 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 span>:.<span.class="sgr-2m">0x10
b8660 33 33 65 66 65 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 29 33efe.in.main.(runtime_overflow)
b8680 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 62 79 74 65 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 </span>.....byte.+=.1;..........
b86a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c <span.class="sgr-32m">^</span>.<
b86c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 span.class="sgr-1m">/home/andy/s
b86e0 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a rc/zig-0.12.x/lib/std/start.zig:
b8700 35 30 31 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 73 67 72 2d 501:22</span>:.<span.class="sgr-
b8720 32 6d 22 3e 30 78 31 30 33 33 37 37 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 2m">0x1033779.in.posixCallMainAn
b8740 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 29 3c 2f 73 70 61 6e 3e 0a dExit.(runtime_overflow)</span>.
b8760 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 20 ............root.main();........
b8780 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 73 67 72 2d 33 ..............<span.class="sgr-3
b87a0 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
b87c0 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f ">/home/andy/src/zig-0.12.x/lib/
b87e0 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 std/start.zig:253:5</span>:.<spa
b8800 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 32 65 31 20 69 6e 20 5f 73 n.class="sgr-2m">0x10332e1.in._s
b8820 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 6f 76 65 72 66 6c 6f 77 29 3c 2f 73 70 61 6e 3e 0a 20 tart.(runtime_overflow)</span>..
b8840 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f ...asm.volatile.(switch.(native_
b8860 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d arch).{.....<span.class="sgr-32m
b8880 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e ">^</span>.<span.class="sgr-1m">
b88a0 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 ???:?:?</span>:.<span.class="sgr
b88c0 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 -2m">0x0.in.???.(???)</span>.(pr
b88e0 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 0a 3c 2f 73 61 ocess.terminated.by.signal).</sa
b8900 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 mp></pre></figure>..............
b8920 3c 68 34 20 69 64 3d 22 53 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 72 79 2d 4d 61 74 68 2d 46 75 <h4.id="Standard-Library-Math-Fu
b8940 6e 63 74 69 6f 6e 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d nctions"><a.href="nav.xhtml#toc-
b8960 53 74 61 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 Standard-Library-Math-Functions"
b8980 3e 53 74 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 >Standard.Library.Math.Functions
b89a0 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 74 61 6e 64 </a>.<a.class="hdr".href="#Stand
b89c0 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 c2 a7 3c 2f ard-Library-Math-Functions">..</
b89e0 61 3e 3c 2f 68 34 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 a></h4>........<p>These.function
b8a00 73 20 70 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 s.provided.by.the.standard.libra
b8a20 72 79 20 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 ry.return.possible.errors.</p>..
b8a40 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 3e 3c 73 .....<ul>...........<li><code><s
b8a60 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<
b8a80 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
b8aa0 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 61 64 64 3c 2f 63 ot;std&quot;</span>).math.add</c
b8ac0 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 3e 3c 73 ode></li>...........<li><code><s
b8ae0 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<
b8b00 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
b8b20 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 75 62 3c 2f 63 ot;std&quot;</span>).math.sub</c
b8b40 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 3e 3c 73 ode></li>...........<li><code><s
b8b60 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<
b8b80 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
b8ba0 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 63 ot;std&quot;</span>).math.mul</c
b8bc0 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 3e 3c 73 ode></li>...........<li><code><s
b8be0 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<
b8c00 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
b8c20 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 72 75 ot;std&quot;</span>).math.divTru
b8c40 6e 63 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 nc</code></li>...........<li><co
b8c60 64 65 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 de><span.class="tok-builtin">@im
b8c80 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
b8ca0 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 2e 64 ">&quot;std&quot;</span>).math.d
b8cc0 69 76 46 6c 6f 6f 72 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 ivFloor</code></li>...........<l
b8ce0 69 3e 3c 63 6f 64 65 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 i><code><span.class="tok-builtin
b8d00 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
b8d20 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 6d k-str">&quot;std&quot;</span>).m
b8d40 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 20 20 20 20 20 ath.divExact</code></li>........
b8d60 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 ...<li><code><span.class="tok-bu
b8d80 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
b8da0 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
b8dc0 6e 3e 29 2e 6d 61 74 68 2e 73 68 6c 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c n>).math.shl</code></li>.......<
b8de0 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 45 78 61 6d 70 6c 65 20 6f 66 20 63 61 74 63 68 69 6e /ul>.......<p>Example.of.catchin
b8e00 67 20 61 6e 20 6f 76 65 72 66 6c 6f 77 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 3a 3c 2f 70 3e 0a g.an.overflow.for.addition:</p>.
b8e20 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d ......<figure><figcaption.class=
b8e40 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6d 61 74 "zig-cap"><cite.class="file">mat
b8e60 68 5f 61 64 64 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 h_add.zig</cite></figcaption><pr
b8e80 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
b8ea0 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 74 6f st</span>.math.=.<span.class="to
b8ec0 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.
b8ee0 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;<
b8f00 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 2d 6b /span>).math;.<span.class="tok-k
b8f20 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e 20 63 6c w">const</span>.print.=.<span.cl
b8f40 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>
b8f60 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
b8f80 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 3c 73 70 61 &quot;</span>).debug.print;.<spa
b8fa0 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
b8fc0 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
b8fe0 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>().!<
b9000 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
b9020 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
b9040 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
b9060 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
b9080 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.
b90a0 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>
b90c0 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
b90e0 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="
b9100 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|.
b9120 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
b9140 3c 2f 73 70 61 6e 3e 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 3c 73 </span>.|err|.{.........print(<s
b9160 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 61 62 6c 65 pan.class="tok-str">&quot;unable
b9180 20 74 6f 20 61 64 64 20 6f 6e 65 3a 20 7b 73 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c .to.add.one:.{s}\n&quot;</span>,
b91a0 20 2e 7b 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 ..{<span.class="tok-builtin">@er
b91c0 72 6f 72 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 65 72 72 29 7d 29 3b 0a 20 20 20 20 20 20 20 20 3c rorName</span>(err)});.........<
b91e0 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
b9200 3e 20 65 72 72 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 >.err;.....};......print(<span.c
b9220 6c 61 73 73 3d 22 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 lass="tok-str">&quot;result:.{}\
b9240 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 62 79 74 65 7d 29 3b 0a 7d 3c 2f 63 6f 64 n&quot;</span>,..{byte});.}</cod
b9260 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
b9280 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
b92a0 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 gcaption><pre><samp>$.<kbd>zig.b
b92c0 75 69 6c 64 2d 65 78 65 20 6d 61 74 68 5f 61 64 64 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b uild-exe.math_add.zig</kbd>.$.<k
b92e0 62 64 3e 2e 2f 6d 61 74 68 5f 61 64 64 3c 2f 6b 62 64 3e 0a 75 6e 61 62 6c 65 20 74 6f 20 61 64 bd>./math_add</kbd>.unable.to.ad
b9300 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 72 66 6c 6f 77 0a d.one:.Overflow.error:.Overflow.
b9320 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f <span.class="sgr-1m">/home/andy/
b9340 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 6d 61 74 68 2e 7a 69 67 3a src/zig-0.12.x/lib/std/math.zig:
b9360 36 32 30 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 73 67 72 2d 620:21</span>:.<span.class="sgr-
b9380 32 6d 22 3e 30 78 31 30 33 33 66 32 35 20 69 6e 20 61 64 64 5f 5f 61 6e 6f 6e 5f 32 36 35 31 20 2m">0x1033f25.in.add__anon_2651.
b93a0 28 6d 61 74 68 5f 61 64 64 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 69 66 20 28 6f 76 5b 31 5d 20 (math_add)</span>.....if.(ov[1].
b93c0 21 3d 20 30 29 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 4f 76 65 72 66 6c 6f 77 3b 0a 20 20 20 !=.0).return.error.Overflow;....
b93e0 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 73 67 .................<span.class="sg
b9400 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 r-32m">^</span>.<span.class="sgr
b9420 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 -1m">/home/andy/src/zig-0.12.x/d
b9440 6f 63 67 65 6e 5f 74 6d 70 2f 6d 61 74 68 5f 61 64 64 2e 7a 69 67 3a 38 3a 39 3c 2f 73 70 61 6e ocgen_tmp/math_add.zig:8:9</span
b9460 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 65 63 >:.<span.class="sgr-2m">0x1033ec
b9480 33 20 69 6e 20 6d 61 69 6e 20 28 6d 61 74 68 5f 61 64 64 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 3.in.main.(math_add)</span>.....
b94a0 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c ....return.err;.........<span.cl
b94c0 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f ass="sgr-32m">^</span>.</samp></
b94e0 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 pre></figure>..............<h4.i
b9500 64 3d 22 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 3e 3c d="Builtin-Overflow-Functions"><
b9520 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 42 75 69 6c 74 69 6e 2d 4f 76 a.href="nav.xhtml#toc-Builtin-Ov
b9540 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 65 72 66 6c erflow-Functions">Builtin.Overfl
b9560 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 64 72 22 20 ow.Functions</a>.<a.class="hdr".
b9580 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 74 69 6f 6e href="#Builtin-Overflow-Function
b95a0 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 s">..</a></h4>........<p>.......
b95c0 54 68 65 73 65 20 62 75 69 6c 74 69 6e 73 20 72 65 74 75 72 6e 20 61 20 74 75 70 6c 65 20 63 6f These.builtins.return.a.tuple.co
b95e0 6e 74 61 69 6e 69 6e 67 20 77 68 65 74 68 65 72 20 74 68 65 72 65 20 77 61 73 20 61 6e 20 6f 76 ntaining.whether.there.was.an.ov
b9600 65 72 66 6c 6f 77 0a 20 20 20 20 20 20 28 61 73 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 erflow.......(as.a.<code><span.c
b9620 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 3c 2f 63 6f 64 65 3e lass="tok-type">u1</span></code>
b9640 29 20 61 6e 64 20 74 68 65 20 70 6f 73 73 69 62 6c 79 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 ).and.the.possibly.overflowed.bi
b9660 74 73 20 6f 66 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ts.of.the.operation:.......</p>.
b9680 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 66 ......<ul>...........<li><a.href
b96a0 3d 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 ="#addWithOverflow">@addWithOver
b96c0 66 6c 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 flow</a></li>...........<li><a.h
b96e0 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 4f ref="#subWithOverflow">@subWithO
b9700 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 3c 6c 69 3e 3c verflow</a></li>...........<li><
b9720 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 6c 57 69 a.href="#mulWithOverflow">@mulWi
b9740 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 3c 6c thOverflow</a></li>...........<l
b9760 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 40 73 68 i><a.href="#shlWithOverflow">@sh
b9780 6c 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 3c 2f 75 lWithOverflow</a></li>.......</u
b97a0 6c 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 20 3c 61 l>.......<p>.......Example.of.<a
b97c0 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 57 69 74 .href="#addWithOverflow">@addWit
b97e0 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 hOverflow</a>:.......</p>.......
b9800 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
b9820 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 61 64 64 57 69 74 68 4f 76 ap"><cite.class="file">addWithOv
b9840 65 72 66 6c 6f 77 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 erflow_builtin.zig</cite></figca
b9860 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
b9880 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 70 72 69 6e 74 20 3d 20 3c 73 70 61 6e k-kw">const</span>.print.=.<span
b98a0 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
b98c0 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;
b98e0 73 74 64 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 3c std&quot;</span>).debug.print;.<
b9900 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>.<
b9920 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
b9940 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 29 pan.class="tok-fn">main</span>()
b9960 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 70 .<span.class="tok-type">void</sp
b9980 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
b99a0 6f 6e 73 74 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 onst</span>.byte:.<span.class="t
b99c0 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 73 ok-type">u8</span>.=.<span.class
b99e0 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 0a 0a 20 20 20 20 3c ="tok-number">255</span>;......<
b9a00 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>
b9a20 20 6f 76 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 .ov.=.<span.class="tok-builtin">
b9a40 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 28 62 79 74 65 2c 20 3c 73 @addWithOverflow</span>(byte,.<s
b9a60 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>
b9a80 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 2f );.....<span.class="tok-kw">if</
b9aa0 73 70 61 6e 3e 20 28 6f 76 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 span>.(ov[<span.class="tok-numbe
b9ac0 72 22 3e 31 3c 2f 73 70 61 6e 3e 5d 20 21 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b r">1</span>].!=.<span.class="tok
b9ae0 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 -number">0</span>).{.........pri
b9b00 6e 74 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 6f nt(<span.class="tok-str">&quot;o
b9b20 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 3b 3c 2f 73 70 verflowed.result:.{}\n&quot;</sp
b9b40 61 6e 3e 2c 20 2e 7b 6f 76 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d 62 65 an>,..{ov[<span.class="tok-numbe
b9b60 72 22 3e 30 3c 2f 73 70 61 6e 3e 5d 7d 29 3b 0a 20 20 20 20 7d 20 3c 73 70 61 6e 20 63 6c 61 73 r">0</span>]});.....}.<span.clas
b9b80 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 20 20 20 s="tok-kw">else</span>.{........
b9ba0 20 70 72 69 6e 74 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 .print(<span.class="tok-str">&qu
b9bc0 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 2e 7b ot;result:.{}\n&quot;</span>,..{
b9be0 6f 76 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 ov[<span.class="tok-number">0</s
b9c00 70 61 6e 3e 5d 7d 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 pan>]});.....}.}</code></pre></f
b9c20 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d igure><figure><figcaption.class=
b9c40 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 "shell-cap">Shell</figcaption><p
b9c60 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 61 64 re><samp>$.<kbd>zig.build-exe.ad
b9c80 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a dWithOverflow_builtin.zig</kbd>.
b9ca0 24 20 3c 6b 62 64 3e 2e 2f 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 5f 62 75 69 6c 74 69 6e $.<kbd>./addWithOverflow_builtin
b9cc0 3c 2f 6b 62 64 3e 0a 6f 76 65 72 66 6c 6f 77 65 64 20 72 65 73 75 6c 74 3a 20 39 0a 3c 2f 73 61 </kbd>.overflowed.result:.9.</sa
b9ce0 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 mp></pre></figure>..............
b9d00 3c 68 34 20 69 64 3d 22 57 72 61 70 70 69 6e 67 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 3c 61 20 <h4.id="Wrapping-Operations"><a.
b9d20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 57 72 61 70 70 69 6e 67 2d 4f 70 65 href="nav.xhtml#toc-Wrapping-Ope
b9d40 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>
b9d60 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-
b9d80 4f 70 65 72 61 74 69 6f 6e 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c Operations">..</a></h4>........<
b9da0 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
b9dc0 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..
b9de0 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>...........
b9e00 3c 6c 69 3e 3c 63 6f 64 65 3e 2b 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 <li><code>+%</code>.(wraparound.
b9e20 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 3c 63 6f addition)</li>...........<li><co
b9e40 64 65 3e 2d 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 73 75 62 74 72 61 63 de>-%</code>.(wraparound.subtrac
b9e60 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 65 3e 2d tion)</li>...........<li><code>-
b9e80 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 6e 29 3c 2f %</code>.(wraparound.negation)</
b9ea0 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2a 25 3c 2f 63 6f 64 65 li>...........<li><code>*%</code
b9ec0 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 29 3c 2f 6c >.(wraparound.multiplication)</l
b9ee0 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 i>.......</ul>.......<figure><fi
b9f00 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
b9f20 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 77 72 61 70 61 72 6f 75 6e 64 5f 73 65 6d 61 lass="file">test_wraparound_sema
b9f40 6e 74 69 63 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 ntics.zig</cite></figcaption><pr
b9f60 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
b9f80 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
b9fa0 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
b9fc0 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;</
b9fe0 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
ba000 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 67 2e 65 st</span>.expect.=.std.testing.e
ba020 78 70 65 63 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 6e 73 xpect;.<span.class="tok-kw">cons
ba040 74 3c 2f 73 70 61 6e 3e 20 6d 69 6e 49 6e 74 20 3d 20 73 74 64 2e 6d 61 74 68 2e 6d 69 6e 49 6e t</span>.minInt.=.std.math.minIn
ba060 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 6e 73 74 3c 2f 73 t;.<span.class="tok-kw">const</s
ba080 70 61 6e 3e 20 6d 61 78 49 6e 74 20 3d 20 73 74 64 2e 6d 61 74 68 2e 6d 61 78 49 6e 74 3b 0a 0a pan>.maxInt.=.std.math.maxInt;..
ba0a0 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>
ba0c0 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 61 .<span.class="tok-str">&quot;wra
ba0e0 70 61 72 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 paround.addition.and.subtraction
ba100 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=
ba120 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
ba140 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 6d 61 78 lass="tok-type">i32</span>.=.max
ba160 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 69 33 32 3c 2f Int(<span.class="tok-type">i32</
ba180 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 6b 77 22 span>);.....<span.class="tok-kw"
ba1a0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6d 69 6e 5f 76 61 6c 20 3d 20 78 20 2b 25 20 3c 73 70 >const</span>.min_val.=.x.+%.<sp
ba1c0 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 0a an.class="tok-number">1</span>;.
ba1e0 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
ba200 61 6e 3e 20 65 78 70 65 63 74 28 6d 69 6e 5f 76 61 6c 20 3d 3d 20 6d 69 6e 49 6e 74 28 3c 73 70 an>.expect(min_val.==.minInt(<sp
ba220 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 29 an.class="tok-type">i32</span>))
ba240 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
ba260 3c 2f 73 70 61 6e 3e 20 6d 61 78 5f 76 61 6c 20 3d 20 6d 69 6e 5f 76 61 6c 20 2d 25 20 3c 73 70 </span>.max_val.=.min_val.-%.<sp
ba280 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 0a an.class="tok-number">1</span>;.
ba2a0 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
ba2c0 61 6e 3e 20 65 78 70 65 63 74 28 6d 61 78 5f 76 61 6c 20 3d 3d 20 6d 61 78 49 6e 74 28 3c 73 70 an>.expect(max_val.==.maxInt(<sp
ba2e0 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 29 an.class="tok-type">i32</span>))
ba300 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 ;.}</code></pre></figure><figure
ba320 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 ><figcaption.class="shell-cap">S
ba340 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b hell</figcaption><pre><samp>$.<k
ba360 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 77 72 61 70 61 72 6f 75 6e 64 5f 73 65 6d 61 bd>zig.test.test_wraparound_sema
ba380 6e 74 69 63 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 77 72 61 70 61 72 6f ntics.zig</kbd>.1/1.test_wraparo
ba3a0 75 6e 64 5f 73 65 6d 61 6e 74 69 63 73 2e 74 65 73 74 2e 77 72 61 70 61 72 6f 75 6e 64 20 61 64 und_semantics.test.wraparound.ad
ba3c0 64 69 74 69 6f 6e 20 61 6e 64 20 73 75 62 74 72 61 63 74 69 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c dition.and.subtraction....OK.All
ba3e0 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .1.tests.passed..</samp></pre></
ba400 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 figure>.....................<h3.
ba420 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 3e 3c id="Exact-Left-Shift-Overflow"><
ba440 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 45 78 61 63 74 2d 4c 65 66 74 a.href="nav.xhtml#toc-Exact-Left
ba460 2d 53 68 69 66 74 2d 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 -Shift-Overflow">Exact.Left.Shif
ba480 74 20 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 t.Overflow</a>.<a.class="hdr".hr
ba4a0 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 22 3e ef="#Exact-Left-Shift-Overflow">
ba4c0 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 ..</a></h3>........<p>At.compile
ba4e0 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 -time:</p>.......<figure><figcap
ba500 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 tion.class="zig-cap"><cite.class
ba520 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 73 68 6c 45 78 61 63 74 5f 6f ="file">test_comptime_shlExact_o
ba540 76 65 72 77 6c 6f 77 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c verwlow.zig</cite></figcaption><
ba560 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pre><code><span.class="tok-kw">c
ba580 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 20 63 6c 61 73 73 omptime</span>.{.....<span.class
ba5a0 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 6e ="tok-kw">const</span>.x.=.<span
ba5c0 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 3c 2f .class="tok-builtin">@shlExact</
ba5e0 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 3e span>(<span.class="tok-builtin">
ba600 40 61 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 74 79 70 65 @as</span>(<span.class="tok-type
ba620 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 2d 6e 75 ">u8</span>,.<span.class="tok-nu
ba640 6d 62 65 72 22 3e 30 62 30 31 30 31 30 31 30 31 3c 2f 73 70 61 6e 3e 29 2c 20 3c 73 70 61 6e 20 mber">0b01010101</span>),.<span.
ba660 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>);...
ba680 20 20 5f 20 3d 20 78 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e .._.=.x;.}</code></pre></figure>
ba6a0 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c <figure><figcaption.class="shell
ba6c0 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 -cap">Shell</figcaption><pre><sa
ba6e0 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 mp>$.<kbd>zig.test.test_comptime
ba700 5f 73 68 6c 45 78 61 63 74 5f 6f 76 65 72 77 6c 6f 77 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 _shlExact_overwlow.zig</kbd>.<sp
ba720 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 an.class="sgr-1m">docgen_tmp/tes
ba740 74 5f 63 6f 6d 70 74 69 6d 65 5f 73 68 6c 45 78 61 63 74 5f 6f 76 65 72 77 6c 6f 77 2e 7a 69 67 t_comptime_shlExact_overwlow.zig
ba760 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 73 67 72 2d 33 :2:15:.</span><span.class="sgr-3
ba780 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 1m">error:.</span><span.class="s
ba7a0 67 72 2d 31 6d 22 3e 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 gr-1m">operation.caused.overflow
ba7c0 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 6c 45 78 61 63 74 28 .</span>....const.x.=.@shlExact(
ba7e0 40 61 73 28 75 38 2c 20 30 62 30 31 30 31 30 31 30 31 29 2c 20 32 29 3b 0a 20 20 20 20 20 20 20 @as(u8,.0b01010101),.2);........
ba800 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e .......<span.class="sgr-32m">^~~
ba820 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.<
ba840 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 /span>.</samp></pre></figure>...
ba860 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 66 69 ....<p>At.runtime:</p>.......<fi
ba880 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 gure><figcaption.class="zig-cap"
ba8a0 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 73 68 6c 45 ><cite.class="file">runtime_shlE
ba8c0 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 xact_overflow.zig</cite></figcap
ba8e0 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
ba900 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
ba920 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>
ba940 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
ba960 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
ba980 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
ba9a0 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
ba9c0 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 22 -fn">main</span>().<span.class="
ba9e0 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 61 tok-type">void</span>.{.....<spa
baa00 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:.<
baa20 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>.
baa40 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 30 31 30 =.<span.class="tok-number">0b010
baa60 31 30 31 30 31 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 2d 63 10101</span>;.<span.class="tok-c
baa80 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a omment">//.runtime-known</span>.
baaa0 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 78 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d ...._.=.&amp;x;.....<span.class=
baac0 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 70 61 6e 20 "tok-kw">const</span>.y.=.<span.
baae0 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 3c 2f 73 class="tok-builtin">@shlExact</s
bab00 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 6e 75 6d 62 65 72 22 pan>(x,.<span.class="tok-number"
bab20 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 2e 70 72 69 6e 74 28 >2</span>);.....std.debug.print(
bab40 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
bab60 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 79 7d 29 3b 0a 7d 3c 2f e:.{}\n&quot;</span>,..{y});.}</
bab80 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
baba0 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
babc0 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
babe0 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 73 68 6c 45 78 61 63 74 5f 6f 76 65 g.build-exe.runtime_shlExact_ove
bac00 72 66 6c 6f 77 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 rflow.zig</kbd>.$.<kbd>./runtime
bac20 5f 73 68 6c 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 _shlExact_overflow</kbd>.thread.
bac40 31 34 34 39 31 32 20 70 61 6e 69 63 3a 20 6c 65 66 74 20 73 68 69 66 74 20 6f 76 65 72 66 6c 6f 144912.panic:.left.shift.overflo
bac60 77 65 64 20 62 69 74 73 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 wed.bits.<span.class="sgr-1m">/h
bac80 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 ome/andy/src/zig-0.12.x/docgen_t
baca0 6d 70 2f 72 75 6e 74 69 6d 65 5f 73 68 6c 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 mp/runtime_shlExact_overflow.zig
bacc0 3a 36 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d :6:5</span>:.<span.class="sgr-2m
bace0 22 3e 30 78 31 30 33 33 66 31 64 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 73 68 6c ">0x1033f1d.in.main.(runtime_shl
bad00 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 Exact_overflow)</span>.....const
bad20 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 3c 73 70 61 6e 20 .y.=.@shlExact(x,.2);.....<span.
bad40 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 class="sgr-32m">^</span>.<span.c
bad60 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 lass="sgr-1m">/home/andy/src/zig
bad80 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 -0.12.x/lib/std/start.zig:501:22
bada0 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 </span>:.<span.class="sgr-2m">0x
badc0 31 30 33 33 37 37 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 1033779.in.posixCallMainAndExit.
bade0 28 72 75 6e 74 69 6d 65 5f 73 68 6c 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 29 3c 2f 73 70 61 (runtime_shlExact_overflow)</spa
bae00 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 20 20 n>.............root.main();.....
bae20 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 73 67 .................<span.class="sg
bae40 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 r-32m">^</span>.<span.class="sgr
bae60 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c -1m">/home/andy/src/zig-0.12.x/l
bae80 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c ib/std/start.zig:253:5</span>:.<
baea0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 32 65 31 20 69 6e span.class="sgr-2m">0x10332e1.in
baec0 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 73 68 6c 45 78 61 63 74 5f 6f 76 65 72 66 6c ._start.(runtime_shlExact_overfl
baee0 6f 77 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 ow)</span>.....asm.volatile.(swi
baf00 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c tch.(native_arch).{.....<span.cl
baf20 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ass="sgr-32m">^</span>.<span.cla
baf40 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 ss="sgr-1m">???:?:?</span>:.<spa
baf60 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f n.class="sgr-2m">0x0.in.???.(???
baf80 29 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.
bafa0 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 signal).</samp></pre></figure>..
bafc0 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 78 61 63 74 2d 52 69 67 68 74 2d ............<h3.id="Exact-Right-
bafe0 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 Shift-Overflow"><a.href="nav.xht
bb000 6d 6c 23 74 6f 63 2d 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 ml#toc-Exact-Right-Shift-Overflo
bb020 77 22 3e 45 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 w">Exact.Right.Shift.Overflow</a
bb040 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 61 63 74 2d 52 69 >.<a.class="hdr".href="#Exact-Ri
bb060 67 68 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 2f 68 33 3e 0a ght-Shift-Overflow">..</a></h3>.
bb080 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>..
bb0a0 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
bb0c0 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 zig-cap"><cite.class="file">test
bb0e0 5f 63 6f 6d 70 74 69 6d 65 5f 73 68 72 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3c _comptime_shrExact_overflow.zig<
bb100 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
bb120 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
bb140 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
bb160 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 22 74 6f 6b 2d nst</span>.x.=.<span.class="tok-
bb180 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 73 70 61 6e 20 builtin">@shrExact</span>(<span.
bb1a0 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c class="tok-builtin">@as</span>(<
bb1c0 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>,
bb1e0 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 30 31 30 .<span.class="tok-number">0b1010
bb200 31 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 1010</span>),.<span.class="tok-n
bb220 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 5f 20 3d 20 78 3b 0a 7d 3c 2f umber">2</span>);....._.=.x;.}</
bb240 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
bb260 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
bb280 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
bb2a0 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 73 68 72 45 78 61 63 74 5f 6f 76 g.test.test_comptime_shrExact_ov
bb2c0 65 72 66 6c 6f 77 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 erflow.zig</kbd>.<span.class="sg
bb2e0 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 73 r-1m">docgen_tmp/test_comptime_s
bb300 68 72 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3a 32 3a 31 35 3a 20 3c 2f 73 70 61 hrExact_overflow.zig:2:15:.</spa
bb320 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c n><span.class="sgr-31m">error:.<
bb340 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 65 78 61 63 74 /span><span.class="sgr-1m">exact
bb360 20 73 68 69 66 74 20 73 68 69 66 74 65 64 20 6f 75 74 20 31 20 62 69 74 73 0a 3c 2f 73 70 61 6e .shift.shifted.out.1.bits.</span
bb380 3e 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 72 45 78 61 63 74 28 40 61 73 28 75 38 2c >....const.x.=.@shrExact(@as(u8,
bb3a0 20 30 62 31 30 31 30 31 30 31 30 29 2c 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .0b10101010),.2);...............
bb3c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e <span.class="sgr-32m">^~~~~~~~~~
bb3e0 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a ~~~~~~~~~~~~~~~~~~~~~~~.</span>.
bb400 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e </samp></pre></figure>.......<p>
bb420 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 At.runtime:</p>.......<figure><f
bb440 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 igcaption.class="zig-cap"><cite.
bb460 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 73 68 72 45 78 61 63 74 5f 6f 76 class="file">runtime_shrExact_ov
bb480 65 72 66 6c 6f 77 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 erflow.zig</cite></figcaption><p
bb4a0 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f re><code><span.class="tok-kw">co
bb4c0 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
bb4e0 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.
bb500 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;<
bb520 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
bb540 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
bb560 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
bb580 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
bb5a0 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
bb5c0 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 6c ="tok-kw">var</span>.x:.<span.cl
bb5e0 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
bb600 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 30 31 30 3c 2f .class="tok-number">0b10101010</
bb620 73 70 61 6e 3e 3b 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>;.<span.class="tok-comment"
bb640 3e 2f 2f 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f 77 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 3d >//.runtime-known</span>....._.=
bb660 20 26 61 6d 70 3b 78 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;x;.....<span.class="tok-kw
bb680 22 3e 63 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 ">const</span>.y.=.<span.class="
bb6a0 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 78 2c tok-builtin">@shrExact</span>(x,
bb6c0 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
bb6e0 6e 3e 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 n>);.....std.debug.print(<span.c
bb700 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
bb720 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 79 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f &quot;</span>,..{y});.}</code></
bb740 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e pre></figure><figure><figcaption
bb760 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 .class="shell-cap">Shell</figcap
bb780 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 tion><pre><samp>$.<kbd>zig.build
bb7a0 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 73 68 72 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 2e 7a -exe.runtime_shrExact_overflow.z
bb7c0 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 73 68 72 45 78 61 ig</kbd>.$.<kbd>./runtime_shrExa
bb7e0 63 74 5f 6f 76 65 72 66 6c 6f 77 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 35 30 30 35 20 ct_overflow</kbd>.thread.145005.
bb800 70 61 6e 69 63 3a 20 72 69 67 68 74 20 73 68 69 66 74 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 panic:.right.shift.overflowed.bi
bb820 74 73 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e ts.<span.class="sgr-1m">/home/an
bb840 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e dy/src/zig-0.12.x/docgen_tmp/run
bb860 74 69 6d 65 5f 73 68 72 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 2e 7a 69 67 3a 36 3a 35 3c 2f time_shrExact_overflow.zig:6:5</
bb880 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 span>:.<span.class="sgr-2m">0x10
bb8a0 33 33 66 31 39 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 73 68 72 45 78 61 63 74 5f 33f19.in.main.(runtime_shrExact_
bb8c0 6f 76 65 72 66 6c 6f 77 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 79 20 3d 20 40 overflow)</span>.....const.y.=.@
bb8e0 73 68 72 45 78 61 63 74 28 78 2c 20 32 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d shrExact(x,.2);.....<span.class=
bb900 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 "sgr-32m">^</span>.<span.class="
bb920 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e sgr-1m">/home/andy/src/zig-0.12.
bb940 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e x/lib/std/start.zig:501:22</span
bb960 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 37 37 >:.<span.class="sgr-2m">0x103377
bb980 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 9.in.posixCallMainAndExit.(runti
bb9a0 6d 65 5f 73 68 72 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 me_shrExact_overflow)</span>....
bb9c0 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();...........
bb9e0 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 ...........<span.class="sgr-32m"
bba00 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f >^</span>.<span.class="sgr-1m">/
bba20 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 home/andy/src/zig-0.12.x/lib/std
bba40 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 /start.zig:253:5</span>:.<span.c
bba60 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 32 65 31 20 69 6e 20 5f 73 74 61 72 lass="sgr-2m">0x10332e1.in._star
bba80 74 20 28 72 75 6e 74 69 6d 65 5f 73 68 72 45 78 61 63 74 5f 6f 76 65 72 66 6c 6f 77 29 3c 2f 73 t.(runtime_shrExact_overflow)</s
bbaa0 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e pan>.....asm.volatile.(switch.(n
bbac0 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 ative_arch).{.....<span.class="s
bbae0 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 gr-32m">^</span>.<span.class="sg
bbb00 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 r-1m">???:?:?</span>:.<span.clas
bbb20 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 s="sgr-2m">0x0.in.???.(???)</spa
bbb40 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 61 6c n>.(process.terminated.by.signal
bbb60 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a ).</samp></pre></figure>........
bbb80 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e ......<h3.id="Division-by-Zero">
bbba0 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 44 69 76 69 73 69 6f 6e 2d <a.href="nav.xhtml#toc-Division-
bbbc0 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 3c 61 by-Zero">Division.by.Zero</a>.<a
bbbe0 20 63 6c 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 .class="hdr".href="#Division-by-
bbc00 5a 65 72 6f 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 Zero">..</a></h3>........<p>At.c
bbc20 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c ompile-time:</p>.......<figure><
bbc40 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
bbc60 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 64 69 76 69 .class="file">test_comptime_divi
bbc80 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 sion_by_zero.zig</cite></figcapt
bbca0 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ion><pre><code><span.class="tok-
bbcc0 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 20 kw">comptime</span>.{.....<span.
bbce0 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:.<
bbd00 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>
bbd20 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
bbd40 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
bbd60 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 22 74 6f 6b 2d onst</span>.b:.<span.class="tok-
bbd80 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="
bbda0 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 20 tok-number">0</span>;.....<span.
bbdc0 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 20 3d 20 class="tok-kw">const</span>.c.=.
bbde0 61 20 2f 20 62 3b 0a 20 20 20 20 5f 20 3d 20 63 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e a./.b;....._.=.c;.}</code></pre>
bbe00 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
bbe20 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
bbe40 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 ><pre><samp>$.<kbd>zig.test.test
bbe60 5f 63 6f 6d 70 74 69 6d 65 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3c 2f _comptime_division_by_zero.zig</
bbe80 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e kbd>.<span.class="sgr-1m">docgen
bbea0 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a _tmp/test_comptime_division_by_z
bbec0 65 72 6f 2e 7a 69 67 3a 34 3a 31 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 ero.zig:4:19:.</span><span.class
bbee0 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 ="sgr-31m">error:.</span><span.c
bbf00 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 20 68 lass="sgr-1m">division.by.zero.h
bbf20 65 72 65 20 63 61 75 73 65 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 0a 3c 2f ere.causes.undefined.behavior.</
bbf40 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 2f 20 62 3b 0a 20 20 20 20 20 20 span>....const.c.=.a./.b;.......
bbf60 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 73 67 72 2d 33 32 6d ............<span.class="sgr-32m
bbf80 22 3e 5e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 ">^.</span>.</samp></pre></figur
bbfa0 65 3e 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 20 e>.......<p>At.runtime:</p>.....
bbfc0 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 ..<figure><figcaption.class="zig
bbfe0 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 -cap"><cite.class="file">runtime
bc000 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 _division_by_zero.zig</cite></fi
bc020 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
bc040 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
bc060 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
bc080 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
bc0a0 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
bc0c0 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
bc0e0 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=
bc100 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 61 "tok-fn">main</span>().<span.cla
bc120 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>.{.....
bc140 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>.
bc160 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
bc180 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">
bc1a0 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 2d 6b 1</span>;.....<span.class="tok-k
bc1c0 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 61 73 73 3d 22 74 6f w">var</span>.b:.<span.class="to
bc1e0 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
bc200 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 5f 20 3d 20 ="tok-number">0</span>;....._.=.
bc220 2e 7b 20 26 61 6d 70 3b 61 2c 20 26 61 6d 70 3b 62 20 7d 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 .{.&amp;a,.&amp;b.};.....<span.c
bc240 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 20 3d 20 61 lass="tok-kw">const</span>.c.=.a
bc260 20 2f 20 62 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 ./.b;.....std.debug.print(<span.
bc280 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 3a 20 7b 7d 5c class="tok-str">&quot;value:.{}\
bc2a0 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 63 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c n&quot;</span>,..{c});.}</code><
bc2c0 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f /pre></figure><figure><figcaptio
bc2e0 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 n.class="shell-cap">Shell</figca
bc300 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c ption><pre><samp>$.<kbd>zig.buil
bc320 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a d-exe.runtime_division_by_zero.z
bc340 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 64 69 76 69 73 69 ig</kbd>.$.<kbd>./runtime_divisi
bc360 6f 6e 5f 62 79 5f 7a 65 72 6f 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 35 30 39 39 20 70 on_by_zero</kbd>.thread.145099.p
bc380 61 6e 69 63 3a 20 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 0a 3c 73 70 61 6e 20 63 6c 61 anic:.division.by.zero.<span.cla
bc3a0 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 ss="sgr-1m">/home/andy/src/zig-0
bc3c0 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 64 69 76 69 73 69 6f .12.x/docgen_tmp/runtime_divisio
bc3e0 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3a 37 3a 31 37 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e n_by_zero.zig:7:17</span>:.<span
bc400 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 65 39 36 20 69 6e 20 6d 61 69 .class="sgr-2m">0x1033e96.in.mai
bc420 6e 20 28 72 75 6e 74 69 6d 65 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 29 3c 2f 73 70 n.(runtime_division_by_zero)</sp
bc440 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 2f 20 62 3b 0a 20 20 20 20 20 20 20 an>.....const.c.=.a./.b;........
bc460 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e .........<span.class="sgr-32m">^
bc480 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f </span>.<span.class="sgr-1m">/ho
bc4a0 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 me/andy/src/zig-0.12.x/lib/std/s
bc4c0 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c tart.zig:501:22</span>:.<span.cl
bc4e0 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 36 65 39 20 69 6e 20 70 6f 73 69 78 43 ass="sgr-2m">0x10336e9.in.posixC
bc500 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 64 69 76 69 73 69 6f 6e allMainAndExit.(runtime_division
bc520 5f 62 79 5f 7a 65 72 6f 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f _by_zero)</span>.............roo
bc540 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 3c t.main();......................<
bc560 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 span.class="sgr-32m">^</span>.<s
bc580 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 pan.class="sgr-1m">/home/andy/sr
bc5a0 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 c/zig-0.12.x/lib/std/start.zig:2
bc5c0 35 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 73 67 72 2d 32 6d 53:5</span>:.<span.class="sgr-2m
bc5e0 22 3e 30 78 31 30 33 33 32 35 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 64 ">0x1033251.in._start.(runtime_d
bc600 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 ivision_by_zero)</span>.....asm.
bc620 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b volatile.(switch.(native_arch).{
bc640 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 .....<span.class="sgr-32m">^</sp
bc660 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f an>.<span.class="sgr-1m">???:?:?
bc680 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 </span>:.<span.class="sgr-2m">0x
bc6a0 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 0.in.???.(???)</span>.(process.t
bc6c0 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 erminated.by.signal).</samp></pr
bc6e0 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d e></figure>..............<h3.id=
bc700 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 6f 22 3e 3c 61 20 "Remainder-Division-by-Zero"><a.
bc720 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 65 6d 61 69 6e 64 65 72 2d 44 69 href="nav.xhtml#toc-Remainder-Di
bc740 76 69 73 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 vision-by-Zero">Remainder.Divisi
bc760 6f 6e 20 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 on.by.Zero</a>.<a.class="hdr".hr
bc780 65 66 3d 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 ef="#Remainder-Division-by-Zero"
bc7a0 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c >..</a></h3>........<p>At.compil
bc7c0 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 e-time:</p>.......<figure><figca
bc7e0 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
bc800 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 72 65 6d 61 69 6e 64 65 72 s="file">test_comptime_remainder
bc820 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 _division_by_zero.zig</cite></fi
bc840 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
bc860 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>.{.....<
bc880 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>
bc8a0 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 3c 2f .a:.<span.class="tok-type">i32</
bc8c0 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"
bc8e0 3e 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 >10</span>;.....<span.class="tok
bc900 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
bc920 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 63 ="tok-type">i32</span>.=.<span.c
bc940 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>;.....
bc960 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
bc980 3e 20 63 20 3d 20 61 20 25 20 62 3b 0a 20 20 20 20 5f 20 3d 20 63 3b 0a 7d 3c 2f 63 6f 64 65 3e >.c.=.a.%.b;....._.=.c;.}</code>
bc9a0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 </pre></figure><figure><figcapti
bc9c0 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 on.class="shell-cap">Shell</figc
bc9e0 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 aption><pre><samp>$.<kbd>zig.tes
bca00 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 72 65 6d 61 69 6e 64 65 72 5f 64 69 76 69 73 69 t.test_comptime_remainder_divisi
bca20 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 on_by_zero.zig</kbd>.<span.class
bca40 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 ="sgr-1m">docgen_tmp/test_compti
bca60 6d 65 5f 72 65 6d 61 69 6e 64 65 72 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 me_remainder_division_by_zero.zi
bca80 67 3a 34 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 73 67 72 2d g:4:19:.</span><span.class="sgr-
bcaa0 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 31m">error:.</span><span.class="
bcac0 73 67 72 2d 31 6d 22 3e 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 20 68 65 72 65 20 63 61 sgr-1m">division.by.zero.here.ca
bcae0 75 73 65 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 0a 3c 2f 73 70 61 6e 3e 20 uses.undefined.behavior.</span>.
bcb00 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 25 20 62 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...const.c.=.a.%.b;.............
bcb20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 0a 3c 2f ......<span.class="sgr-32m">^.</
bcb40 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 span>.</samp></pre></figure>....
bcb60 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 66 69 67 ...<p>At.runtime:</p>.......<fig
bcb80 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
bcba0 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 72 65 6d 61 69 <cite.class="file">runtime_remai
bcbc0 6e 64 65 72 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3c 2f 63 69 74 65 3e nder_division_by_zero.zig</cite>
bcbe0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
bcc00 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.=.
bcc20 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
bcc40 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">&
bcc60 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 20 63 quot;std&quot;</span>);..<span.c
bcc80 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
bcca0 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
bccc0 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 6e ass="tok-fn">main</span>().<span
bcce0 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>.{.
bcd00 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
bcd20 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 75 33 an>.a:.<span.class="tok-type">u3
bcd40 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
bcd60 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 6c 61 73 73 3d 22 er">10</span>;.....<span.class="
bcd80 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 61 73 tok-kw">var</span>.b:.<span.clas
bcda0 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 20 s="tok-type">u32</span>.=.<span.
bcdc0 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 20 class="tok-number">0</span>;....
bcde0 20 5f 20 3d 20 2e 7b 20 26 61 6d 70 3b 61 2c 20 26 61 6d 70 3b 62 20 7d 3b 0a 20 20 20 20 3c 73 ._.=..{.&amp;a,.&amp;b.};.....<s
bce00 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>.
bce20 63 20 3d 20 61 20 25 20 62 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c c.=.a.%.b;.....std.debug.print(<
bce40 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
bce60 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 63 7d 29 3b 0a 7d 3c 2f 63 :.{}\n&quot;</span>,..{c});.}</c
bce80 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ode></pre></figure><figure><figc
bcea0 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
bcec0 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
bcee0 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 72 65 6d 61 69 6e 64 65 72 5f 64 69 76 .build-exe.runtime_remainder_div
bcf00 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e ision_by_zero.zig</kbd>.$.<kbd>.
bcf20 2f 72 75 6e 74 69 6d 65 5f 72 65 6d 61 69 6e 64 65 72 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a /runtime_remainder_division_by_z
bcf40 65 72 6f 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 35 31 39 33 20 70 61 6e 69 63 3a 20 64 ero</kbd>.thread.145193.panic:.d
bcf60 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 ivision.by.zero.<span.class="sgr
bcf80 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 -1m">/home/andy/src/zig-0.12.x/d
bcfa0 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 72 65 6d 61 69 6e 64 65 72 5f 64 69 76 69 ocgen_tmp/runtime_remainder_divi
bcfc0 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 2e 7a 69 67 3a 37 3a 31 37 3c 2f 73 70 61 6e 3e 3a 20 3c 73 sion_by_zero.zig:7:17</span>:.<s
bcfe0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 65 39 36 20 69 6e 20 pan.class="sgr-2m">0x1033e96.in.
bd000 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 72 65 6d 61 69 6e 64 65 72 5f 64 69 76 69 73 69 6f 6e main.(runtime_remainder_division
bd020 5f 62 79 5f 7a 65 72 6f 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 _by_zero)</span>.....const.c.=.a
bd040 20 25 20 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 .%.b;.................<span.clas
bd060 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 s="sgr-32m">^</span>.<span.class
bd080 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 ="sgr-1m">/home/andy/src/zig-0.1
bd0a0 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 2.x/lib/std/start.zig:501:22</sp
bd0c0 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 an>:.<span.class="sgr-2m">0x1033
bd0e0 36 65 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 6e9.in.posixCallMainAndExit.(run
bd100 74 69 6d 65 5f 72 65 6d 61 69 6e 64 65 72 5f 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 29 time_remainder_division_by_zero)
bd120 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();
bd140 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
bd160 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 s="sgr-32m">^</span>.<span.class
bd180 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 ="sgr-1m">/home/andy/src/zig-0.1
bd1a0 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 2.x/lib/std/start.zig:253:5</spa
bd1c0 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 32 n>:.<span.class="sgr-2m">0x10332
bd1e0 35 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 72 65 6d 61 69 6e 64 65 72 5f 51.in._start.(runtime_remainder_
bd200 64 69 76 69 73 69 6f 6e 5f 62 79 5f 7a 65 72 6f 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d division_by_zero)</span>.....asm
bd220 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 .volatile.(switch.(native_arch).
bd240 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 {.....<span.class="sgr-32m">^</s
bd260 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a pan>.<span.class="sgr-1m">???:?:
bd280 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 ?</span>:.<span.class="sgr-2m">0
bd2a0 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 x0.in.???.(???)</span>.(process.
bd2c0 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 terminated.by.signal).</samp></p
bd2e0 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 re></figure>..............<h3.id
bd300 3d 22 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 ="Exact-Division-Remainder"><a.h
bd320 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 45 78 61 63 74 2d 44 69 76 69 73 69 6f ref="nav.xhtml#toc-Exact-Divisio
bd340 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e 45 78 61 63 74 20 44 69 76 69 73 69 6f 6e 20 52 65 6d 61 n-Remainder">Exact.Division.Rema
bd360 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 72 65 66 3d 22 23 inder</a>.<a.class="hdr".href="#
bd380 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 c2 a7 3c 2f 61 3e Exact-Division-Remainder">..</a>
bd3a0 3c 2f 68 33 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 </h3>........<p>At.compile-time:
bd3c0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
bd3e0 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
bd400 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 64 69 76 45 78 61 63 74 5f 72 65 6d 61 69 6e 64 ">test_comptime_divExact_remaind
bd420 65 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c er.zig</cite></figcaption><pre><
bd440 63 6f 64 65 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 code><span.class="tok-kw">compti
bd460 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 6b me</span>.{.....<span.class="tok
bd480 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 73 73 -kw">const</span>.a:.<span.class
bd4a0 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 20 63 ="tok-type">u32</span>.=.<span.c
bd4c0 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 3b 0a 20 20 20 lass="tok-number">10</span>;....
bd4e0 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
bd500 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 75 33 32 n>.b:.<span.class="tok-type">u32
bd520 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
bd540 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 74 6f r">3</span>;.....<span.class="to
bd560 6b 2d 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 k-kw">const</span>.c.=.<span.cla
bd580 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 61 6e ss="tok-builtin">@divExact</span
bd5a0 3e 28 61 2c 20 62 29 3b 0a 20 20 20 20 5f 20 3d 20 63 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 >(a,.b);....._.=.c;.}</code></pr
bd5c0 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
bd5e0 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
bd600 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
bd620 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 64 69 76 45 78 61 63 74 5f 72 65 6d 61 69 6e 64 65 72 2e 7a st_comptime_divExact_remainder.z
bd640 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f ig</kbd>.<span.class="sgr-1m">do
bd660 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 64 69 76 45 78 61 63 74 5f cgen_tmp/test_comptime_divExact_
bd680 72 65 6d 61 69 6e 64 65 72 2e 7a 69 67 3a 34 3a 31 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e remainder.zig:4:15:.</span><span
bd6a0 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c .class="sgr-31m">error:.</span><
bd6c0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 65 78 61 63 74 20 64 69 76 69 73 69 span.class="sgr-1m">exact.divisi
bd6e0 6f 6e 20 70 72 6f 64 75 63 65 64 20 72 65 6d 61 69 6e 64 65 72 0a 3c 2f 73 70 61 6e 3e 20 20 20 on.produced.remainder.</span>...
bd700 20 63 6f 6e 73 74 20 63 20 3d 20 40 64 69 76 45 78 61 63 74 28 61 2c 20 62 29 3b 0a 20 20 20 20 .const.c.=.@divExact(a,.b);.....
bd720 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e ..........<span.class="sgr-32m">
bd740 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c ^~~~~~~~~~~~~~~.</span>.</samp><
bd760 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 /pre></figure>.......<p>At.runti
bd780 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f me:</p>.......<figure><figcaptio
bd7a0 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 n.class="zig-cap"><cite.class="f
bd7c0 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 64 69 76 45 78 61 63 74 5f 72 65 6d 61 69 6e 64 65 72 2e ile">runtime_divExact_remainder.
bd7e0 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 zig</cite></figcaption><pre><cod
bd800 65 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 e><span.class="tok-kw">const</sp
bd820 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
bd840 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="
bd860 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>)
bd880 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
bd8a0 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
bd8c0 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
bd8e0 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
bd900 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
bd920 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 3d 22 74 6f w">var</span>.a:.<span.class="to
bd940 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
bd960 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 70 ="tok-number">10</span>;.....<sp
bd980 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 3a 20 an.class="tok-kw">var</span>.b:.
bd9a0 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
bd9c0 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 33 3c 2f >.=.<span.class="tok-number">3</
bd9e0 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 2e 7b 20 26 61 6d 70 3b 61 2c 20 26 61 6d 70 3b 62 span>;....._.=..{.&amp;a,.&amp;b
bda00 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 6f 6e .};.....<span.class="tok-kw">con
bda20 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 3d 22 74 6f 6b 2d 62 st</span>.c.=.<span.class="tok-b
bda40 75 69 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 uiltin">@divExact</span>(a,.b);.
bda60 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d ....std.debug.print(<span.class=
bda80 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
bdaa0 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 63 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c ;</span>,..{c});.}</code></pre><
bdac0 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 /figure><figure><figcaption.clas
bdae0 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e s="shell-cap">Shell</figcaption>
bdb00 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 <pre><samp>$.<kbd>zig.build-exe.
bdb20 72 75 6e 74 69 6d 65 5f 64 69 76 45 78 61 63 74 5f 72 65 6d 61 69 6e 64 65 72 2e 7a 69 67 3c 2f runtime_divExact_remainder.zig</
bdb40 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 64 69 76 45 78 61 63 74 5f 72 kbd>.$.<kbd>./runtime_divExact_r
bdb60 65 6d 61 69 6e 64 65 72 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 35 32 38 36 20 70 61 6e emainder</kbd>.thread.145286.pan
bdb80 69 63 3a 20 65 78 61 63 74 20 64 69 76 69 73 69 6f 6e 20 70 72 6f 64 75 63 65 64 20 72 65 6d 61 ic:.exact.division.produced.rema
bdba0 69 6e 64 65 72 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 inder.<span.class="sgr-1m">/home
bdbc0 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f /andy/src/zig-0.12.x/docgen_tmp/
bdbe0 72 75 6e 74 69 6d 65 5f 64 69 76 45 78 61 63 74 5f 72 65 6d 61 69 6e 64 65 72 2e 7a 69 67 3a 37 runtime_divExact_remainder.zig:7
bdc00 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 73 67 72 2d 32 6d 22 :15</span>:.<span.class="sgr-2m"
bdc20 3e 30 78 31 30 33 33 65 63 62 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 64 69 76 45 >0x1033ecb.in.main.(runtime_divE
bdc40 78 61 63 74 5f 72 65 6d 61 69 6e 64 65 72 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 xact_remainder)</span>.....const
bdc60 20 63 20 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 .c.=.@divExact(a,.b);...........
bdc80 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 ....<span.class="sgr-32m">^</spa
bdca0 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e n>.<span.class="sgr-1m">/home/an
bdcc0 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e dy/src/zig-0.12.x/lib/std/start.
bdce0 7a 69 67 3a 35 30 31 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:501:22</span>:.<span.class="
bdd00 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 36 65 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 sgr-2m">0x10336e9.in.posixCallMa
bdd20 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 64 69 76 45 78 61 63 74 5f 72 65 6d 61 inAndExit.(runtime_divExact_rema
bdd40 69 6e 64 65 72 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 inder)</span>.............root.m
bdd60 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
bdd80 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e n.class="sgr-32m">^</span>.<span
bdda0 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a .class="sgr-1m">/home/andy/src/z
bddc0 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a ig-0.12.x/lib/std/start.zig:253:
bdde0 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 5</span>:.<span.class="sgr-2m">0
bde00 78 31 30 33 33 32 35 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 64 69 76 45 x1033251.in._start.(runtime_divE
bde20 78 61 63 74 5f 72 65 6d 61 69 6e 64 65 72 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 xact_remainder)</span>.....asm.v
bde40 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a olatile.(switch.(native_arch).{.
bde60 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 ....<span.class="sgr-32m">^</spa
bde80 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c n>.<span.class="sgr-1m">???:?:?<
bdea0 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 /span>:.<span.class="sgr-2m">0x0
bdec0 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 .in.???.(???)</span>.(process.te
bdee0 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 rminated.by.signal).</samp></pre
bdf00 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 ></figure>..............<h3.id="
bdf20 41 74 74 65 6d 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 Attempt-to-Unwrap-Null"><a.href=
bdf40 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 72 61 70 "nav.xhtml#toc-Attempt-to-Unwrap
bdf60 2d 4e 75 6c 6c 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 20 4e 75 6c 6c 3c 2f 61 -Null">Attempt.to.Unwrap.Null</a
bdf80 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 74 74 65 6d 70 74 2d >.<a.class="hdr".href="#Attempt-
bdfa0 74 6f 2d 55 6e 77 72 61 70 2d 4e 75 6c 6c 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 to-Unwrap-Null">..</a></h3>.....
bdfc0 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>......
bdfe0 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d .<figure><figcaption.class="zig-
be000 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d cap"><cite.class="file">test_com
be020 70 74 69 6d 65 5f 75 6e 77 72 61 70 5f 6e 75 6c 6c 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 ptime_unwrap_null.zig</cite></fi
be040 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
be060 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>.{.....<
be080 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>
be0a0 20 6f 70 74 69 6f 6e 61 6c 5f 6e 75 6d 62 65 72 3a 20 3f 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .optional_number:.?<span.class="
be0c0 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
be0e0 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 20 20 20 3c ss="tok-null">null</span>;.....<
be100 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>
be120 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 20 20 .number.=.optional_number.?;....
be140 20 5f 20 3d 20 6e 75 6d 62 65 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 ._.=.number;.}</code></pre></fig
be160 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 ure><figure><figcaption.class="s
be180 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 hell-cap">Shell</figcaption><pre
be1a0 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 ><samp>$.<kbd>zig.test.test_comp
be1c0 74 69 6d 65 5f 75 6e 77 72 61 70 5f 6e 75 6c 6c 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e time_unwrap_null.zig</kbd>.<span
be1e0 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f .class="sgr-1m">docgen_tmp/test_
be200 63 6f 6d 70 74 69 6d 65 5f 75 6e 77 72 61 70 5f 6e 75 6c 6c 2e 7a 69 67 3a 33 3a 33 35 3a 20 3c comptime_unwrap_null.zig:3:35:.<
be220 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f /span><span.class="sgr-31m">erro
be240 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 75 r:.</span><span.class="sgr-1m">u
be260 6e 61 62 6c 65 20 74 6f 20 75 6e 77 72 61 70 20 6e 75 6c 6c 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 nable.to.unwrap.null.</span>....
be280 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 75 6d 62 65 72 2e 3f const.number.=.optional_number.?
be2a0 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 6e 20 63 6c 61 73 73 ;....................<span.class
be2c0 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 5e 7e 0a 3c 2f 73 ="sgr-32m">~~~~~~~~~~~~~~~^~.</s
be2e0 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 pan>.</samp></pre></figure>.....
be300 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 66 69 67 75 ..<p>At.runtime:</p>.......<figu
be320 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
be340 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 75 6e 77 72 61 70 cite.class="file">runtime_unwrap
be360 5f 6e 75 6c 6c 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 _null.zig</cite></figcaption><pr
be380 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
be3a0 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
be3c0 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
be3e0 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;</
be400 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
be420 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
be440 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
be460 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
be480 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=
be4a0 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 6d "tok-kw">var</span>.optional_num
be4c0 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 32 ber:.?<span.class="tok-type">i32
be4e0 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 22 </span>.=.<span.class="tok-null"
be500 3e 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 6f 70 74 69 6f >null</span>;....._.=.&amp;optio
be520 6e 61 6c 5f 6e 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 nal_number;.....<span.class="tok
be540 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 6f -kw">const</span>.number.=.optio
be560 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 70 72 69 6e nal_number.?;.....std.debug.prin
be580 74 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 t(<span.class="tok-str">&quot;va
be5a0 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 6e 75 6d 62 65 72 lue:.{}\n&quot;</span>,..{number
be5c0 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 });.}</code></pre></figure><figu
be5e0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 re><figcaption.class="shell-cap"
be600 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 >Shell</figcaption><pre><samp>$.
be620 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 75 6e 77 72 61 <kbd>zig.build-exe.runtime_unwra
be640 70 5f 6e 75 6c 6c 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d p_null.zig</kbd>.$.<kbd>./runtim
be660 65 5f 75 6e 77 72 61 70 5f 6e 75 6c 6c 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 35 33 37 e_unwrap_null</kbd>.thread.14537
be680 39 20 70 61 6e 69 63 3a 20 61 74 74 65 6d 70 74 20 74 6f 20 75 73 65 20 6e 75 6c 6c 20 76 61 6c 9.panic:.attempt.to.use.null.val
be6a0 75 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e ue.<span.class="sgr-1m">/home/an
be6c0 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e dy/src/zig-0.12.x/docgen_tmp/run
be6e0 74 69 6d 65 5f 75 6e 77 72 61 70 5f 6e 75 6c 6c 2e 7a 69 67 3a 36 3a 33 35 3c 2f 73 70 61 6e 3e time_unwrap_null.zig:6:35</span>
be700 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 66 31 32 :.<span.class="sgr-2m">0x1033f12
be720 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 75 6e 77 72 61 70 5f 6e 75 6c 6c 29 3c 2f .in.main.(runtime_unwrap_null)</
be740 73 70 61 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 span>.....const.number.=.optiona
be760 6c 5f 6e 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 l_number.?;.....................
be780 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 73 67 72 2d 33 ..............<span.class="sgr-3
be7a0 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
be7c0 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f ">/home/andy/src/zig-0.12.x/lib/
be7e0 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 std/start.zig:501:22</span>:.<sp
be800 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 37 37 39 20 69 6e 20 70 an.class="sgr-2m">0x1033779.in.p
be820 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 75 6e 77 osixCallMainAndExit.(runtime_unw
be840 72 61 70 5f 6e 75 6c 6c 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f rap_null)</span>.............roo
be860 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 3c t.main();......................<
be880 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 span.class="sgr-32m">^</span>.<s
be8a0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 pan.class="sgr-1m">/home/andy/sr
be8c0 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 c/zig-0.12.x/lib/std/start.zig:2
be8e0 35 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 73 67 72 2d 32 6d 53:5</span>:.<span.class="sgr-2m
be900 22 3e 30 78 31 30 33 33 32 65 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 75 ">0x10332e1.in._start.(runtime_u
be920 6e 77 72 61 70 5f 6e 75 6c 6c 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 nwrap_null)</span>.....asm.volat
be940 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 ile.(switch.(native_arch).{.....
be960 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c <span.class="sgr-32m">^</span>.<
be980 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 span.class="sgr-1m">???:?:?</spa
be9a0 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 n>:.<span.class="sgr-2m">0x0.in.
be9c0 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e ???.(???)</span>.(process.termin
be9e0 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 ated.by.signal).</samp></pre></f
bea00 69 67 75 72 65 3e 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 64 igure>.......<p>One.way.to.avoid
bea20 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 75 6c 6c 20 .this.crash.is.to.test.for.null.
bea40 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 2c 20 77 69 instead.of.assuming.non-null,.wi
bea60 74 68 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 th.......the.<code><span.class="
bea80 74 6f 6b 2d 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 tok-kw">if</span></code>.express
beaa0 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ion:</p>.......<figure><figcapti
beac0 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
beae0 66 69 6c 65 22 3e 74 65 73 74 69 6e 67 5f 6e 75 6c 6c 5f 77 69 74 68 5f 69 66 2e 7a 69 67 3c 2f file">testing_null_with_if.zig</
beb00 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 cite></figcaption><pre><code><sp
beb20 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
beb40 72 69 6e 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 rint.=.<span.class="tok-builtin"
beb60 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
beb80 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
beba0 62 75 67 2e 70 72 69 6e 74 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e bug.print;.<span.class="tok-kw">
bebc0 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">
bebe0 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
bec00 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
bec20 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
bec40 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
bec60 5f 6e 75 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 _number:.?<span.class="tok-type"
bec80 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
beca0 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 6e 20 63 6c 61 ull">null</span>;......<span.cla
becc0 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 6f 6e 61 6c 5f ss="tok-kw">if</span>.(optional_
bece0 6e 75 6d 62 65 72 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 number).|number|.{.........print
bed00 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 67 6f 74 (<span.class="tok-str">&quot;got
bed20 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 20 2e 7b 6e 75 .number:.{}\n&quot;</span>,..{nu
bed40 6d 62 65 72 7d 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 mber});.....}.<span.class="tok-k
bed60 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 70 72 69 6e 74 28 3c w">else</span>.{.........print(<
bed80 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 27 73 20 span.class="tok-str">&quot;it's.
beda0 6e 75 6c 6c 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 7d 29 3b 0a 20 20 20 20 7d null\n&quot;</span>,..{});.....}
bedc0 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e .}</code></pre></figure><figure>
bede0 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 <figcaption.class="shell-cap">Sh
bee00 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 ell</figcaption><pre><samp>$.<kb
bee20 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 69 6e 67 5f 6e 75 6c 6c 5f 77 69 74 d>zig.build-exe.testing_null_wit
bee40 68 5f 69 66 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 74 65 73 74 69 6e 67 5f h_if.zig</kbd>.$.<kbd>./testing_
bee60 6e 75 6c 6c 5f 77 69 74 68 5f 69 66 3c 2f 6b 62 64 3e 0a 69 74 27 73 20 6e 75 6c 6c 0a 3c 2f 73 null_with_if</kbd>.it's.null.</s
bee80 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 amp></pre></figure>.......<p>See
beea0 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 4f 70 74 .also:</p><ul>.<li><a.href="#Opt
beec0 69 6f 6e 61 6c 73 22 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e ionals">Optionals</a></li>.</ul>
beee0 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 41 74 74 65 6d 70 74 2d 74 ...............<h3.id="Attempt-t
bef00 6f 2d 55 6e 77 72 61 70 2d 45 72 72 6f 72 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 o-Unwrap-Error"><a.href="nav.xht
bef20 6d 6c 23 74 6f 63 2d 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 ml#toc-Attempt-to-Unwrap-Error">
bef40 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 20 45 72 72 6f 72 3c 2f 61 3e 20 3c 61 20 63 Attempt.to.Unwrap.Error</a>.<a.c
bef60 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 lass="hdr".href="#Attempt-to-Unw
bef80 72 61 70 2d 45 72 72 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 rap-Error">..</a></h3>........<p
befa0 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 66 69 67 >At.compile-time:</p>.......<fig
befc0 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
befe0 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 <cite.class="file">test_comptime
bf000 5f 75 6e 77 72 61 70 5f 65 72 72 6f 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 _unwrap_error.zig</cite></figcap
bf020 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
bf040 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
bf060 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
bf080 62 65 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 ber.=.getNumberOrFail().<span.cl
bf0a0 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 73 70 61 6e 20 ass="tok-kw">catch</span>.<span.
bf0c0 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
bf0e0 3e 3b 0a 20 20 20 20 5f 20 3d 20 6e 75 6d 62 65 72 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 >;....._.=.number;.}..<span.clas
bf100 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
bf120 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>
bf140 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</
bf160 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"
bf180 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-
bf1a0 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
bf1c0 75 6d 62 65 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 umber;.}</code></pre></figure><f
bf1e0 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 igure><figcaption.class="shell-c
bf200 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 ap">Shell</figcaption><pre><samp
bf220 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 75 >$.<kbd>zig.test.test_comptime_u
bf240 6e 77 72 61 70 5f 65 72 72 6f 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 nwrap_error.zig</kbd>.<span.clas
bf260 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 s="sgr-1m">docgen_tmp/test_compt
bf280 69 6d 65 5f 75 6e 77 72 61 70 5f 65 72 72 6f 72 2e 7a 69 67 3a 32 3a 34 34 3a 20 3c 2f 73 70 61 ime_unwrap_error.zig:2:44:.</spa
bf2a0 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c n><span.class="sgr-31m">error:.<
bf2c0 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 63 61 75 67 68 /span><span.class="sgr-1m">caugh
bf2e0 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 75 t.unexpected.error.'UnableToRetu
bf300 72 6e 4e 75 6d 62 65 72 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 rnNumber'.</span>....const.numbe
bf320 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 65 r.=.getNumberOrFail().catch.unre
bf340 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 20 achable;........................
bf360 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=
bf380 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 "sgr-32m">^~~~~~~~~~~.</span><sp
bf3a0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 an.class="sgr-1m">docgen_tmp/tes
bf3c0 74 5f 63 6f 6d 70 74 69 6d 65 5f 75 6e 77 72 61 70 5f 65 72 72 6f 72 2e 7a 69 67 3a 37 3a 31 38 t_comptime_unwrap_error.zig:7:18
bf3e0 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e :.</span><span.class="sgr-36m">n
bf400 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 ote:.</span><span.class="sgr-1m"
bf420 3e 65 72 72 6f 72 20 72 65 74 75 72 6e 65 64 20 68 65 72 65 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 >error.returned.here.</span>....
bf440 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 6e 4e 75 6d 62 65 return.error.UnableToReturnNumbe
bf460 72 3b 0a 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 r;..................<span.class=
bf480 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c "sgr-32m">^~~~~~~~~~~~~~~~~~~~.<
bf4a0 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 /span>.</samp></pre></figure>...
bf4c0 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 66 69 ....<p>At.runtime:</p>.......<fi
bf4e0 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 gure><figcaption.class="zig-cap"
bf500 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 75 6e 77 72 ><cite.class="file">runtime_unwr
bf520 61 70 5f 65 72 72 6f 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e ap_error.zig</cite></figcaption>
bf540 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
bf560 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="
bf580 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
bf5a0 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
bf5c0 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"
bf5e0 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"
bf600 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">
bf620 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
bf640 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
bf660 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 72 20 ss="tok-kw">const</span>.number.
bf680 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 73 3d =.getNumberOrFail().<span.class=
bf6a0 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 61 73 "tok-kw">catch</span>.<span.clas
bf6c0 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 0a 20 s="tok-kw">unreachable</span>;..
bf6e0 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...std.debug.print(<span.class="
bf700 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 3b tok-str">&quot;value:.{}\n&quot;
bf720 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 6e 75 6d 62 65 72 7d 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c </span>,..{number});.}..<span.cl
bf740 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
bf760 73 73 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 ss="tok-fn">getNumberOrFail</spa
bf780 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 69 33 32 n>().!<span.class="tok-type">i32
bf7a0 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
bf7c0 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 6f w">return</span>.<span.class="to
bf7e0 6b 2d 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 k-kw">error</span>.UnableToRetur
bf800 6e 4e 75 6d 62 65 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e nNumber;.}</code></pre></figure>
bf820 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c <figure><figcaption.class="shell
bf840 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 -cap">Shell</figcaption><pre><sa
bf860 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f mp>$.<kbd>zig.build-exe.runtime_
bf880 75 6e 77 72 61 70 5f 65 72 72 6f 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f unwrap_error.zig</kbd>.$.<kbd>./
bf8a0 72 75 6e 74 69 6d 65 5f 75 6e 77 72 61 70 5f 65 72 72 6f 72 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 runtime_unwrap_error</kbd>.threa
bf8c0 64 20 31 34 35 35 32 33 20 70 61 6e 69 63 3a 20 61 74 74 65 6d 70 74 20 74 6f 20 75 6e 77 72 61 d.145523.panic:.attempt.to.unwra
bf8e0 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
bf900 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 pan.class="sgr-1m">/home/andy/sr
bf920 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f c/zig-0.12.x/docgen_tmp/runtime_
bf940 75 6e 77 72 61 70 5f 65 72 72 6f 72 2e 7a 69 67 3a 39 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 unwrap_error.zig:9:5</span>:.<sp
bf960 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 35 66 62 66 20 69 6e 20 67 an.class="sgr-2m">0x1035fbf.in.g
bf980 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 20 28 72 75 6e 74 69 6d 65 5f 75 6e 77 72 61 70 5f 65 etNumberOrFail.(runtime_unwrap_e
bf9a0 72 72 6f 72 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 55 6e rror)</span>.....return.error.Un
bf9c0 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c ableToReturnNumber;.....<span.cl
bf9e0 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 ass="sgr-32m">^</span>.<span.cla
bfa00 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 ss="sgr-1m">/home/andy/src/zig-0
bfa20 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 75 6e 77 72 61 70 5f .12.x/docgen_tmp/runtime_unwrap_
bfa40 65 72 72 6f 72 2e 7a 69 67 3a 34 3a 34 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 error.zig:4:44</span>:.<span.cla
bfa60 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 66 35 31 20 69 6e 20 6d 61 69 6e 20 28 72 ss="sgr-2m">0x1033f51.in.main.(r
bfa80 75 6e 74 69 6d 65 5f 75 6e 77 72 61 70 5f 65 72 72 6f 72 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 untime_unwrap_error)</span>.....
bfaa0 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 6c 28 29 const.number.=.getNumberOrFail()
bfac0 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 20 20 20 .catch.unreachable;.............
bfae0 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 ...............................<
bfb00 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 span.class="sgr-32m">^</span>.<s
bfb20 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 pan.class="sgr-1m">/home/andy/sr
bfb40 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 c/zig-0.12.x/lib/std/start.zig:5
bfb60 30 31 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 73 67 72 2d 32 01:22</span>:.<span.class="sgr-2
bfb80 6d 22 3e 30 78 31 30 33 33 37 39 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 m">0x1033799.in.posixCallMainAnd
bfba0 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 75 6e 77 72 61 70 5f 65 72 72 6f 72 29 3c 2f 73 70 61 Exit.(runtime_unwrap_error)</spa
bfbc0 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 20 20 n>.............root.main();.....
bfbe0 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 73 67 .................<span.class="sg
bfc00 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 r-32m">^</span>.<span.class="sgr
bfc20 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c -1m">/home/andy/src/zig-0.12.x/l
bfc40 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c ib/std/start.zig:253:5</span>:.<
bfc60 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 33 30 31 20 69 6e span.class="sgr-2m">0x1033301.in
bfc80 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 75 6e 77 72 61 70 5f 65 72 72 6f 72 29 3c 2f ._start.(runtime_unwrap_error)</
bfca0 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 span>.....asm.volatile.(switch.(
bfcc0 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 native_arch).{.....<span.class="
bfce0 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 sgr-32m">^</span>.<span.class="s
bfd00 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 gr-1m">???:?:?</span>:.<span.cla
bfd20 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 ss="sgr-2m">0x0.in.???.(???)</sp
bfd40 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 61 an>.(process.terminated.by.signa
bfd60 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 l).</samp></pre></figure>.......
bfd80 3c 70 3e 4f 6e 65 20 77 61 79 20 74 6f 20 61 76 6f 69 64 20 74 68 69 73 20 63 72 61 73 68 20 69 <p>One.way.to.avoid.this.crash.i
bfda0 73 20 74 6f 20 74 65 73 74 20 66 6f 72 20 61 6e 20 65 72 72 6f 72 20 69 6e 73 74 65 61 64 20 6f s.to.test.for.an.error.instead.o
bfdc0 66 20 61 73 73 75 6d 69 6e 67 20 61 20 73 75 63 63 65 73 73 66 75 6c 20 72 65 73 75 6c 74 2c 20 f.assuming.a.successful.result,.
bfde0 77 69 74 68 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 with.......the.<code><span.class
bfe00 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 20 65 78 70 72 65 ="tok-kw">if</span></code>.expre
bfe20 73 73 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 ssion:</p>.......<figure><figcap
bfe40 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 tion.class="zig-cap"><cite.class
bfe60 3d 22 66 69 6c 65 22 3e 74 65 73 74 69 6e 67 5f 65 72 72 6f 72 5f 77 69 74 68 5f 69 66 2e 7a 69 ="file">testing_error_with_if.zi
bfe80 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
bfea0 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
bfec0 3e 20 70 72 69 6e 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 >.print.=.<span.class="tok-built
bfee0 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="
bff00 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>)
bff20 2e 64 65 62 75 67 2e 70 72 69 6e 74 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .debug.print;..<span.class="tok-
bff40 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-
bff60 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
bff80 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
bffa0 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.
bffc0 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 65 73 75 class="tok-kw">const</span>.resu
bffe0 6c 74 20 3d 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 lt.=.getNumberOrFail();......<sp
c0000 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 72 65 73 an.class="tok-kw">if</span>.(res
c0020 75 6c 74 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 3c 73 ult).|number|.{.........print(<s
c0040 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 6f 74 20 6e 75 pan.class="tok-str">&quot;got.nu
c0060 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 6e 75 6d 62 65 mber:.{}\n&quot;</span>,..{numbe
c0080 72 7d 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 r});.....}.<span.class="tok-kw">
c00a0 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 70 72 69 6e else</span>.|err|.{.........prin
c00c0 74 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 67 6f t(<span.class="tok-str">&quot;go
c00e0 74 20 65 72 72 6f 72 3a 20 7b 73 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 3c t.error:.{s}\n&quot;</span>,..{<
c0100 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
c0120 61 6d 65 3c 2f 73 70 61 6e 3e 28 65 72 72 29 7d 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 3c 73 70 61 ame</span>(err)});.....}.}..<spa
c0140 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
c0160 20 63 6c 61 73 73 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 .class="tok-fn">getNumberOrFail<
c0180 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 22 /span>().!<span.class="tok-type"
c01a0 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 74 >i32</span>.{.....<span.class="t
c01c0 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 73 ok-kw">return</span>.<span.class
c01e0 3d 22 74 6f 6b 2d 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 ="tok-kw">error</span>.UnableToR
c0200 65 74 75 72 6e 4e 75 6d 62 65 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 eturnNumber;.}</code></pre></fig
c0220 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 ure><figure><figcaption.class="s
c0240 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 hell-cap">Shell</figcaption><pre
c0260 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 ><samp>$.<kbd>zig.build-exe.test
c0280 69 6e 67 5f 65 72 72 6f 72 5f 77 69 74 68 5f 69 66 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b ing_error_with_if.zig</kbd>.$.<k
c02a0 62 64 3e 2e 2f 74 65 73 74 69 6e 67 5f 65 72 72 6f 72 5f 77 69 74 68 5f 69 66 3c 2f 6b 62 64 3e bd>./testing_error_with_if</kbd>
c02c0 0a 67 6f 74 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 .got.error:.UnableToReturnNumber
c02e0 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 .</samp></pre></figure>.......<p
c0300 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="
c0320 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>..
c0340 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6e 76 61 6c 69 64 2d 45 72 72 .............<h3.id="Invalid-Err
c0360 6f 72 2d 43 6f 64 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d or-Code"><a.href="nav.xhtml#toc-
c0380 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 20 45 72 72 6f Invalid-Error-Code">Invalid.Erro
c03a0 72 20 43 6f 64 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 r.Code</a>.<a.class="hdr".href="
c03c0 23 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 43 6f 64 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e #Invalid-Error-Code">..</a></h3>
c03e0 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 0a ........<p>At.compile-time:</p>.
c0400 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d ......<figure><figcaption.class=
c0420 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 "zig-cap"><cite.class="file">tes
c0440 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 63 6f 64 65 2e 7a 69 t_comptime_invalid_error_code.zi
c0460 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e g</cite></figcaption><pre><code>
c0480 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
c04a0 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">
c04c0 63 6f 6e 73 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 const</span>.err.=.<span.class="
c04e0 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 3b 0a 20 20 tok-kw">error</span>.AnError;...
c0500 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
c0520 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 62 75 an>.number.=.<span.class="tok-bu
c0540 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 65 72 72 29 iltin">@intFromError</span>(err)
c0560 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 30 3c 2f .+.<span.class="tok-number">10</
c0580 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">
c05a0 63 6f 6e 73 74 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 const</span>.invalid_err.=.<span
c05c0 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 46 72 6f 6d 49 .class="tok-builtin">@errorFromI
c05e0 6e 74 3c 2f 73 70 61 6e 3e 28 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 5f 20 3d 20 69 6e 76 61 6c nt</span>(number);....._.=.inval
c0600 69 64 5f 65 72 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c id_err;.}</code></pre></figure><
c0620 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d figure><figcaption.class="shell-
c0640 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d cap">Shell</figcaption><pre><sam
c0660 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f p>$.<kbd>zig.test.test_comptime_
c0680 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 63 6f 64 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 invalid_error_code.zig</kbd>.<sp
c06a0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 an.class="sgr-1m">docgen_tmp/tes
c06c0 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 63 6f 64 65 2e 7a 69 t_comptime_invalid_error_code.zi
c06e0 67 3a 34 3a 33 39 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d g:4:39:.</span><span.class="sgr-
c0700 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 31m">error:.</span><span.class="
c0720 73 67 72 2d 31 6d 22 3e 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 27 31 31 27 20 72 65 70 72 65 sgr-1m">integer.value.'11'.repre
c0740 73 65 6e 74 73 20 6e 6f 20 65 72 72 6f 72 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 sents.no.error.</span>....const.
c0760 69 6e 76 61 6c 69 64 5f 65 72 72 20 3d 20 40 65 72 72 6f 72 46 72 6f 6d 49 6e 74 28 6e 75 6d 62 invalid_err.=.@errorFromInt(numb
c0780 65 72 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 er);............................
c07a0 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 ...........<span.class="sgr-32m"
c07c0 3e 5e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 >^~~~~~.</span>.</samp></pre></f
c07e0 69 67 75 72 65 3e 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 igure>.......<p>At.runtime:</p>.
c0800 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d ......<figure><figcaption.class=
c0820 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e "zig-cap"><cite.class="file">run
c0840 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 63 6f 64 65 2e 7a 69 67 3c 2f 63 69 74 time_invalid_error_code.zig</cit
c0860 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
c0880 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.
c08a0 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
c08c0 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"
c08e0 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
c0900 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
c0920 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.
c0940 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
c0960 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>.
c0980 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
c09a0 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 6b </span>.err.=.<span.class="tok-k
c09c0 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 41 6e 45 72 72 6f 72 3b 0a 20 20 20 20 3c 73 70 w">error</span>.AnError;.....<sp
c09e0 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 6e 75 6d an.class="tok-kw">var</span>.num
c0a00 62 65 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 3e ber.=.<span.class="tok-builtin">
c0a20 40 69 6e 74 46 72 6f 6d 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 28 65 72 72 29 20 2b 20 3c 73 70 61 @intFromError</span>(err).+.<spa
c0a40 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 2f 73 70 61 6e 3e 3b n.class="tok-number">500</span>;
c0a60 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 6e 75 6d 62 65 72 3b 0a 20 20 20 20 3c 73 70 61 6e 20 ....._.=.&amp;number;.....<span.
c0a80 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 69 6e 76 61 class="tok-kw">const</span>.inva
c0aa0 6c 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 lid_err.=.<span.class="tok-built
c0ac0 69 6e 22 3e 40 65 72 72 6f 72 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 6e 75 6d 62 65 72 29 in">@errorFromInt</span>(number)
c0ae0 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 ;.....std.debug.print(<span.clas
c0b00 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 75 s="tok-str">&quot;value:.{}\n&qu
c0b20 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 69 6e 76 61 6c 69 64 5f 65 72 72 7d 29 3b 0a 7d 3c 2f ot;</span>,..{invalid_err});.}</
c0b40 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
c0b60 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
c0b80 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
c0ba0 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f g.build-exe.runtime_invalid_erro
c0bc0 72 5f 63 6f 64 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d r_code.zig</kbd>.$.<kbd>./runtim
c0be0 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 63 6f 64 65 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 e_invalid_error_code</kbd>.threa
c0c00 64 20 31 34 35 36 36 37 20 70 61 6e 69 63 3a 20 69 6e 76 61 6c 69 64 20 65 72 72 6f 72 20 63 6f d.145667.panic:.invalid.error.co
c0c20 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e de.<span.class="sgr-1m">/home/an
c0c40 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e dy/src/zig-0.12.x/docgen_tmp/run
c0c60 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 63 6f 64 65 2e 7a 69 67 3a 37 3a 35 3c time_invalid_error_code.zig:7:5<
c0c80 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 /span>:.<span.class="sgr-2m">0x1
c0ca0 30 33 33 66 30 30 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 033f00.in.main.(runtime_invalid_
c0cc0 65 72 72 6f 72 5f 63 6f 64 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 69 6e 76 error_code)</span>.....const.inv
c0ce0 61 6c 69 64 5f 65 72 72 20 3d 20 40 65 72 72 6f 72 46 72 6f 6d 49 6e 74 28 6e 75 6d 62 65 72 29 alid_err.=.@errorFromInt(number)
c0d00 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 ;.....<span.class="sgr-32m">^</s
c0d20 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f pan>.<span.class="sgr-1m">/home/
c0d40 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 andy/src/zig-0.12.x/lib/std/star
c0d60 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 t.zig:501:22</span>:.<span.class
c0d80 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 37 34 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c ="sgr-2m">0x1033749.in.posixCall
c0da0 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 MainAndExit.(runtime_invalid_err
c0dc0 6f 72 5f 63 6f 64 65 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 or_code)</span>.............root
c0de0 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 3c 73 .main();......................<s
c0e00 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 pan.class="sgr-32m">^</span>.<sp
c0e20 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 an.class="sgr-1m">/home/andy/src
c0e40 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 /zig-0.12.x/lib/std/start.zig:25
c0e60 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 73 67 72 2d 32 6d 22 3:5</span>:.<span.class="sgr-2m"
c0e80 3e 30 78 31 30 33 33 32 62 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e >0x10332b1.in._start.(runtime_in
c0ea0 76 61 6c 69 64 5f 65 72 72 6f 72 5f 63 6f 64 65 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d valid_error_code)</span>.....asm
c0ec0 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 .volatile.(switch.(native_arch).
c0ee0 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 {.....<span.class="sgr-32m">^</s
c0f00 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a pan>.<span.class="sgr-1m">???:?:
c0f20 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 ?</span>:.<span.class="sgr-2m">0
c0f40 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 65 73 73 20 x0.in.???.(???)</span>.(process.
c0f60 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 terminated.by.signal).</samp></p
c0f80 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 re></figure>..............<h3.id
c0fa0 3d 22 49 6e 76 61 6c 69 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 ="Invalid-Enum-Cast"><a.href="na
c0fc0 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6e 76 61 6c 69 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e 49 v.xhtml#toc-Invalid-Enum-Cast">I
c0fe0 6e 76 61 6c 69 64 20 45 6e 75 6d 20 43 61 73 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 nvalid.Enum.Cast</a>.<a.class="h
c1000 64 72 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 c2 a7 dr".href="#Invalid-Enum-Cast">..
c1020 3c 2f 61 3e 3c 2f 68 33 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></h3>........<p>At.compile-t
c1040 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ime:</p>.......<figure><figcapti
c1060 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
c1080 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d file">test_comptime_invalid_enum
c10a0 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 _cast.zig</cite></figcaption><pr
c10c0 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
c10e0 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 6f 6b st</span>.Foo.=.<span.class="tok
c1100 2d 6b 77 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 61 2c 0a 20 20 20 20 62 2c -kw">enum</span>.{.....a,.....b,
c1120 0a 20 20 20 20 63 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 .....c,.};.<span.class="tok-kw">
c1140 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 20 63 6c 61 73 comptime</span>.{.....<span.clas
c1160 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 73 70 61 6e s="tok-kw">const</span>.a:.<span
c1180 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 20 3d 20 3c 73 .class="tok-type">u2</span>.=.<s
c11a0 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>;
c11c0 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<
c11e0 2f 73 70 61 6e 3e 20 62 3a 20 46 6f 6f 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b /span>.b:.Foo.=.<span.class="tok
c1200 2d 62 75 69 6c 74 69 6e 22 3e 40 65 6e 75 6d 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 61 29 -builtin">@enumFromInt</span>(a)
c1220 3b 0a 20 20 20 20 5f 20 3d 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 ;....._.=.b;.}</code></pre></fig
c1240 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 ure><figure><figcaption.class="s
c1260 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 hell-cap">Shell</figcaption><pre
c1280 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 ><samp>$.<kbd>zig.test.test_comp
c12a0 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d 5f 63 61 73 74 2e 7a 69 67 3c 2f 6b 62 64 3e time_invalid_enum_cast.zig</kbd>
c12c0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 .<span.class="sgr-1m">docgen_tmp
c12e0 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d 5f 63 61 73 74 /test_comptime_invalid_enum_cast
c1300 2e 7a 69 67 3a 38 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 73 .zig:8:20:.</span><span.class="s
c1320 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 gr-31m">error:.</span><span.clas
c1340 73 3d 22 73 67 72 2d 31 6d 22 3e 65 6e 75 6d 20 27 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 s="sgr-1m">enum.'test_comptime_i
c1360 6e 76 61 6c 69 64 5f 65 6e 75 6d 5f 63 61 73 74 2e 46 6f 6f 27 20 68 61 73 20 6e 6f 20 74 61 67 nvalid_enum_cast.Foo'.has.no.tag
c1380 20 77 69 74 68 20 76 61 6c 75 65 20 27 33 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 .with.value.'3'.</span>....const
c13a0 20 62 3a 20 46 6f 6f 20 3d 20 40 65 6e 75 6d 46 72 6f 6d 49 6e 74 28 61 29 3b 0a 20 20 20 20 20 .b:.Foo.=.@enumFromInt(a);......
c13c0 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 73 67 72 2d 33 ..............<span.class="sgr-3
c13e0 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 2m">^~~~~~~~~~~~~~~.</span><span
c1400 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f .class="sgr-1m">docgen_tmp/test_
c1420 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d 5f 63 61 73 74 2e 7a 69 67 3a 31 comptime_invalid_enum_cast.zig:1
c1440 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d :13:.</span><span.class="sgr-36m
c1460 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d ">note:.</span><span.class="sgr-
c1480 31 6d 22 3e 65 6e 75 6d 20 64 65 63 6c 61 72 65 64 20 68 65 72 65 0a 3c 2f 73 70 61 6e 3e 63 6f 1m">enum.declared.here.</span>co
c14a0 6e 73 74 20 46 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 nst.Foo.=.enum.{.............<sp
c14c0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a an.class="sgr-32m">^~~~.</span>.
c14e0 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e </samp></pre></figure>.......<p>
c1500 41 74 20 72 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 At.runtime:</p>.......<figure><f
c1520 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 igcaption.class="zig-cap"><cite.
c1540 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 class="file">runtime_invalid_enu
c1560 6d 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 m_cast.zig</cite></figcaption><p
c1580 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f re><code><span.class="tok-kw">co
c15a0 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
c15c0 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.
c15e0 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;<
c1600 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
c1620 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
c1640 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 61 2c 0a 20 20 20 20 ok-kw">enum</span>.{.....a,.....
c1660 62 2c 0a 20 20 20 20 63 2c 0a 7d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b b,.....c,.};..<span.class="tok-k
c1680 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
c16a0 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
c16c0 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
c16e0 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
c1700 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
c1720 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 20 3d 20 3c n.class="tok-type">u2</span>.=.<
c1740 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>
c1760 3b 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 61 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 ;....._.=.&amp;a;.....<span.clas
c1780 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 46 6f 6f 20 3d s="tok-kw">const</span>.b:.Foo.=
c17a0 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 65 6e 75 6d .<span.class="tok-builtin">@enum
c17c0 46 72 6f 6d 49 6e 74 3c 2f 73 70 61 6e 3e 28 61 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 FromInt</span>(a);.....std.debug
c17e0 2e 70 72 69 6e 74 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 .print(<span.class="tok-str">&qu
c1800 6f 74 3b 76 61 6c 75 65 3a 20 7b 73 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b ot;value:.{s}\n&quot;</span>,..{
c1820 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 61 67 4e 61 <span.class="tok-builtin">@tagNa
c1840 6d 65 3c 2f 73 70 61 6e 3e 28 62 29 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f me</span>(b)});.}</code></pre></
c1860 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 figure><figure><figcaption.class
c1880 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c ="shell-cap">Shell</figcaption><
c18a0 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 72 pre><samp>$.<kbd>zig.build-exe.r
c18c0 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d 5f 63 61 73 74 2e 7a 69 67 3c 2f 6b 62 untime_invalid_enum_cast.zig</kb
c18e0 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d d>.$.<kbd>./runtime_invalid_enum
c1900 5f 63 61 73 74 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 35 37 36 31 20 70 61 6e 69 63 3a _cast</kbd>.thread.145761.panic:
c1920 20 69 6e 76 61 6c 69 64 20 65 6e 75 6d 20 76 61 6c 75 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d .invalid.enum.value.<span.class=
c1940 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 "sgr-1m">/home/andy/src/zig-0.12
c1960 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e .x/docgen_tmp/runtime_invalid_en
c1980 75 6d 5f 63 61 73 74 2e 7a 69 67 3a 31 32 3a 32 30 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 um_cast.zig:12:20</span>:.<span.
c19a0 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 65 66 37 20 69 6e 20 6d 61 69 6e class="sgr-2m">0x1033ef7.in.main
c19c0 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d 5f 63 61 73 74 29 3c 2f 73 70 .(runtime_invalid_enum_cast)</sp
c19e0 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 62 3a 20 46 6f 6f 20 3d 20 40 65 6e 75 6d 46 72 6f 6d an>.....const.b:.Foo.=.@enumFrom
c1a00 49 6e 74 28 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 6e Int(a);....................<span
c1a20 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 .class="sgr-32m">^</span>.<span.
c1a40 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 class="sgr-1m">/home/andy/src/zi
c1a60 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 g-0.12.x/lib/std/start.zig:501:2
c1a80 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 2</span>:.<span.class="sgr-2m">0
c1aa0 78 31 30 33 33 37 35 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 x1033759.in.posixCallMainAndExit
c1ac0 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d 5f 63 61 73 74 29 3c 2f 73 70 .(runtime_invalid_enum_cast)</sp
c1ae0 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 20 an>.............root.main();....
c1b00 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 73 ..................<span.class="s
c1b20 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 gr-32m">^</span>.<span.class="sg
c1b40 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f r-1m">/home/andy/src/zig-0.12.x/
c1b60 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 lib/std/start.zig:253:5</span>:.
c1b80 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 32 63 31 20 69 <span.class="sgr-2m">0x10332c1.i
c1ba0 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 6e 75 6d 5f 63 n._start.(runtime_invalid_enum_c
c1bc0 61 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 ast)</span>.....asm.volatile.(sw
c1be0 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 itch.(native_arch).{.....<span.c
c1c00 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c lass="sgr-32m">^</span>.<span.cl
c1c20 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 ass="sgr-1m">???:?:?</span>:.<sp
c1c40 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f an.class="sgr-2m">0x0.in.???.(??
c1c60 3f 29 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 ?)</span>.(process.terminated.by
c1c80 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a .signal).</samp></pre></figure>.
c1ca0 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 49 6e 76 61 6c 69 64 2d 45 72 ..............<h3.id="Invalid-Er
c1cc0 72 6f 72 2d 53 65 74 2d 43 61 73 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c ror-Set-Cast"><a.href="nav.xhtml
c1ce0 23 74 6f 63 2d 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 53 65 74 2d 43 61 73 74 22 3e 49 6e 76 #toc-Invalid-Error-Set-Cast">Inv
c1d00 61 6c 69 64 20 45 72 72 6f 72 20 53 65 74 20 43 61 73 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 alid.Error.Set.Cast</a>.<a.class
c1d20 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 53 65 74 2d ="hdr".href="#Invalid-Error-Set-
c1d40 43 61 73 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 Cast">..</a></h3>........<p>At.c
c1d60 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c ompile-time:</p>.......<figure><
c1d80 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 figcaption.class="zig-cap"><cite
c1da0 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 .class="file">test_comptime_inva
c1dc0 6c 69 64 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 lid_error_set_cast.zig</cite></f
c1de0 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
c1e00 3d 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 ="tok-kw">const</span>.Set1.=.<s
c1e20 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 7b pan.class="tok-kw">error</span>{
c1e40 0a 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 .....A,.....B,.};.<span.class="t
c1e60 6f 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 ok-kw">const</span>.Set2.=.<span
c1e80 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 20 20 .class="tok-kw">error</span>{...
c1ea0 20 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 ..A,.....C,.};.<span.class="tok-
c1ec0 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 5f 20 3d 20 3c 73 kw">comptime</span>.{....._.=.<s
c1ee0 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 73 3c 2f 73 70 61 pan.class="tok-builtin">@as</spa
c1f00 6e 3e 28 53 65 74 32 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 n>(Set2,.<span.class="tok-builti
c1f20 6e 22 3e 40 65 72 72 6f 72 43 61 73 74 3c 2f 73 70 61 6e 3e 28 53 65 74 31 2e 42 29 29 3b 0a 7d n">@errorCast</span>(Set1.B));.}
c1f40 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 </code></pre></figure><figure><f
c1f60 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c igcaption.class="shell-cap">Shel
c1f80 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e l</figcaption><pre><samp>$.<kbd>
c1fa0 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 zig.test.test_comptime_invalid_e
c1fc0 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c rror_set_cast.zig</kbd>.<span.cl
c1fe0 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d ass="sgr-1m">docgen_tmp/test_com
c2000 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 2e 7a 69 67 ptime_invalid_error_set_cast.zig
c2020 3a 31 30 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 73 67 72 2d :10:19:.</span><span.class="sgr-
c2040 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 31m">error:.</span><span.class="
c2060 73 67 72 2d 31 6d 22 3e 27 65 72 72 6f 72 2e 42 27 20 6e 6f 74 20 61 20 6d 65 6d 62 65 72 20 6f sgr-1m">'error.B'.not.a.member.o
c2080 66 20 65 72 72 6f 72 20 73 65 74 20 27 65 72 72 6f 72 7b 41 2c 43 7d 27 0a 3c 2f 73 70 61 6e 3e f.error.set.'error{A,C}'.</span>
c20a0 20 20 20 20 5f 20 3d 20 40 61 73 28 53 65 74 32 2c 20 40 65 72 72 6f 72 43 61 73 74 28 53 65 74 ...._.=.@as(Set2,.@errorCast(Set
c20c0 31 2e 42 29 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 1.B));...................<span.c
c20e0 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e lass="sgr-32m">^~~~~~~~~~~~~~~~~
c2100 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e ~.</span>.</samp></pre></figure>
c2120 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 20 20 20 .......<p>At.runtime:</p>.......
c2140 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
c2160 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 69 ap"><cite.class="file">runtime_i
c2180 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e nvalid_error_set_cast.zig</cite>
c21a0 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c </figcaption><pre><code><span.cl
c21c0 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.=.
c21e0 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
c2200 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">&
c2220 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 20 63 quot;std&quot;</span>);..<span.c
c2240 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 65 74 31 20 lass="tok-kw">const</span>.Set1.
c2260 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
c2280 61 6e 3e 7b 0a 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 an>{.....A,.....B,.};.<span.clas
c22a0 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 65 74 32 20 3d 20 3c s="tok-kw">const</span>.Set2.=.<
c22c0 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>
c22e0 7b 0a 20 20 20 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 {.....A,.....C,.};.<span.class="
c2300 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="
c2320 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
c2340 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
c2360 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 66 6f ="tok-type">void</span>.{.....fo
c2380 6f 28 53 65 74 31 2e 42 29 3b 0a 7d 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 o(Set1.B);.}.<span.class="tok-kw
c23a0 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"
c23c0 3e 66 6f 6f 3c 2f 73 70 61 6e 3e 28 73 65 74 31 3a 20 53 65 74 31 29 20 3c 73 70 61 6e 20 63 6c >foo</span>(set1:.Set1).<span.cl
c23e0 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>.{....
c2400 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
c2420 6e 3e 20 78 3a 20 53 65 74 32 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 n>.x:.Set2.=.<span.class="tok-bu
c2440 69 6c 74 69 6e 22 3e 40 65 72 72 6f 72 43 61 73 74 3c 2f 73 70 61 6e 3e 28 73 65 74 31 29 3b 0a iltin">@errorCast</span>(set1);.
c2460 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d ....std.debug.print(<span.class=
c2480 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
c24a0 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 78 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c ;</span>,..{x});.}</code></pre><
c24c0 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 /figure><figure><figcaption.clas
c24e0 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e s="shell-cap">Shell</figcaption>
c2500 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 <pre><samp>$.<kbd>zig.build-exe.
c2520 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 2e 7a runtime_invalid_error_set_cast.z
c2540 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 ig</kbd>.$.<kbd>./runtime_invali
c2560 64 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 d_error_set_cast</kbd>.thread.14
c2580 35 38 35 34 20 70 61 6e 69 63 3a 20 69 6e 76 61 6c 69 64 20 65 72 72 6f 72 20 63 6f 64 65 0a 3c 5854.panic:.invalid.error.code.<
c25a0 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 span.class="sgr-1m">/home/andy/s
c25c0 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 rc/zig-0.12.x/docgen_tmp/runtime
c25e0 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 2e 7a 69 67 3a 31 35 3a 32 _invalid_error_set_cast.zig:15:2
c2600 31 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 1</span>:.<span.class="sgr-2m">0
c2620 78 31 30 33 35 66 39 37 20 69 6e 20 66 6f 6f 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 x1035f97.in.foo.(runtime_invalid
c2640 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 _error_set_cast)</span>.....cons
c2660 74 20 78 3a 20 53 65 74 32 20 3d 20 40 65 72 72 6f 72 43 61 73 74 28 73 65 74 31 29 3b 0a 20 20 t.x:.Set2.=.@errorCast(set1);...
c2680 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 73 ..................<span.class="s
c26a0 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 gr-32m">^</span>.<span.class="sg
c26c0 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f r-1m">/home/andy/src/zig-0.12.x/
c26e0 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 docgen_tmp/runtime_invalid_error
c2700 5f 73 65 74 5f 63 61 73 74 2e 7a 69 67 3a 31 32 3a 38 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e _set_cast.zig:12:8</span>:.<span
c2720 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 65 64 64 20 69 6e 20 6d 61 69 .class="sgr-2m">0x1033edd.in.mai
c2740 6e 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 n.(runtime_invalid_error_set_cas
c2760 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 6f 6f 28 53 65 74 31 2e 42 29 3b 0a 20 20 20 20 20 t)</span>.....foo(Set1.B);......
c2780 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e ..<span.class="sgr-32m">^</span>
c27a0 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 .<span.class="sgr-1m">/home/andy
c27c0 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 /src/zig-0.12.x/lib/std/start.zi
c27e0 67 3a 35 30 31 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 73 67 g:501:22</span>:.<span.class="sg
c2800 72 2d 32 6d 22 3e 30 78 31 30 33 33 37 38 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e r-2m">0x1033789.in.posixCallMain
c2820 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 65 72 72 6f 72 5f 73 AndExit.(runtime_invalid_error_s
c2840 65 74 5f 63 61 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 et_cast)</span>.............root
c2860 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 3c 73 .main();......................<s
c2880 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 pan.class="sgr-32m">^</span>.<sp
c28a0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 an.class="sgr-1m">/home/andy/src
c28c0 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 /zig-0.12.x/lib/std/start.zig:25
c28e0 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 73 67 72 2d 32 6d 22 3:5</span>:.<span.class="sgr-2m"
c2900 3e 30 78 31 30 33 33 32 66 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e >0x10332f1.in._start.(runtime_in
c2920 76 61 6c 69 64 5f 65 72 72 6f 72 5f 73 65 74 5f 63 61 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 valid_error_set_cast)</span>....
c2940 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 .asm.volatile.(switch.(native_ar
c2960 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e ch).{.....<span.class="sgr-32m">
c2980 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f ^</span>.<span.class="sgr-1m">??
c29a0 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 ?:?:?</span>:.<span.class="sgr-2
c29c0 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 6f 63 m">0x0.in.???.(???)</span>.(proc
c29e0 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 0a 3c 2f 73 61 6d 70 ess.terminated.by.signal).</samp
c2a00 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c ></pre></figure>...............<
c2a20 68 33 20 69 64 3d 22 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 h3.id="Incorrect-Pointer-Alignme
c2a40 6e 74 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6e 63 6f 72 nt"><a.href="nav.xhtml#toc-Incor
c2a60 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e 49 6e 63 6f 72 72 65 63 rect-Pointer-Alignment">Incorrec
c2a80 74 20 50 6f 69 6e 74 65 72 20 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 t.Pointer.Alignment</a>.<a.class
c2aa0 3d 22 68 64 72 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 ="hdr".href="#Incorrect-Pointer-
c2ac0 41 6c 69 67 6e 6d 65 6e 74 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 Alignment">..</a></h3>........<p
c2ae0 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 66 69 67 >At.compile-time:</p>.......<fig
c2b00 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
c2b20 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 <cite.class="file">test_comptime
c2b40 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 _incorrect_pointer_alignment.zig
c2b60 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c </cite></figcaption><pre><code><
c2b80 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
c2ba0 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
c2bc0 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 73 73 3d 22 74 onst</span>.ptr:.*<span.class="t
c2be0 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=
c2c00 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 70 61 6e 20 63 6c 61 "tok-number">1</span>).<span.cla
c2c20 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
c2c40 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 46 72 6f 6d 49 6e 74 .class="tok-builtin">@ptrFromInt
c2c60 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"
c2c80 3e 30 78 31 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 >0x1</span>);.....<span.class="t
c2ca0 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 65 64 3a 20 2a 3c 73 ok-kw">const</span>.aligned:.*<s
c2cc0 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 28 pan.class="tok-kw">align</span>(
c2ce0 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
c2d00 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 3c 2f 73 >).<span.class="tok-type">i32</s
c2d20 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 75 69 6c 74 69 6e 22 pan>.=.<span.class="tok-builtin"
c2d40 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 73 70 61 6e 3e 28 70 74 72 29 3b 0a 20 20 20 20 5f 20 3d >@alignCast</span>(ptr);....._.=
c2d60 20 61 6c 69 67 6e 65 64 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 .aligned;.}</code></pre></figure
c2d80 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c ><figure><figcaption.class="shel
c2da0 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
c2dc0 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d amp>$.<kbd>zig.test.test_comptim
c2de0 65 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 e_incorrect_pointer_alignment.zi
c2e00 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 g</kbd>.<span.class="sgr-1m">doc
c2e20 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 63 6f 72 72 65 63 74 5f gen_tmp/test_comptime_incorrect_
c2e40 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 3a 33 3a 34 37 3a 20 3c 2f 73 70 pointer_alignment.zig:3:47:.</sp
c2e60 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 an><span.class="sgr-31m">error:.
c2e80 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 70 6f 69 6e </span><span.class="sgr-1m">poin
c2ea0 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 20 74 ter.address.0x1.is.not.aligned.t
c2ec0 6f 20 34 20 62 79 74 65 73 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 61 6c 69 67 6e o.4.bytes.</span>....const.align
c2ee0 65 64 3a 20 2a 61 6c 69 67 6e 28 34 29 20 69 33 32 20 3d 20 40 61 6c 69 67 6e 43 61 73 74 28 70 ed:.*align(4).i32.=.@alignCast(p
c2f00 74 72 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 tr);............................
c2f20 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="
c2f40 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 sgr-32m">^~~.</span>.</samp></pr
c2f60 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a e></figure>.......<p>At.runtime:
c2f80 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 </p>.......<figure><figcaption.c
c2fa0 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 lass="zig-cap"><cite.class="file
c2fc0 22 3e 72 75 6e 74 69 6d 65 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 ">runtime_incorrect_pointer_alig
c2fe0 6e 6d 65 6e 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 nment.zig</cite></figcaption><pr
c3000 65 3e 3c 63 6f 64 65 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 e><code><span.class="tok-kw">con
c3020 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 6b st</span>.mem.=.<span.class="tok
c3040 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
c3060 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;</
c3080 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 6f 6b 2d 6b 77 22 span>).mem;.<span.class="tok-kw"
c30a0 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"
c30c0 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">
c30e0 6d 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 main</span>().!<span.class="tok-
c3100 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
c3120 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 20 3c 73 ass="tok-kw">var</span>.array.<s
c3140 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 28 pan.class="tok-kw">align</span>(
c3160 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
c3180 3e 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 70 65 22 3e 75 >).=.[_]<span.class="tok-type">u
c31a0 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 75 6d 62 32</span>{.<span.class="tok-numb
c31c0 65 72 22 3e 30 78 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 er">0x11111111</span>,.<span.cla
c31e0 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 6e ss="tok-number">0x11111111</span
c3200 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 22 3e 63 6f >.};.....<span.class="tok-kw">co
c3220 6e 73 74 3c 2f 73 70 61 6e 3e 20 62 79 74 65 73 20 3d 20 6d 65 6d 2e 73 6c 69 63 65 41 73 42 79 nst</span>.bytes.=.mem.sliceAsBy
c3240 74 65 73 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 65 tes(array[<span.class="tok-numbe
c3260 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 5d 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 r">0</span>..]);.....<span.class
c3280 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 62 79 74 65 73 29 20 ="tok-kw">if</span>.(foo(bytes).
c32a0 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 78 31 31 !=.<span.class="tok-number">0x11
c32c0 31 31 31 31 31 31 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 111111</span>).<span.class="tok-
c32e0 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
c3300 6f 6b 2d 6b 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 57 72 6f 6e 67 3b 0a 7d 0a 3c 73 70 ok-kw">error</span>.Wrong;.}.<sp
c3320 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
c3340 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 62 79 74 65 n.class="tok-fn">foo</span>(byte
c3360 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 22 3e 75 38 3c 2f s:.[]<span.class="tok-type">u8</
c3380 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 75 33 span>).<span.class="tok-type">u3
c33a0 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-
c33c0 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 6c 69 63 65 34 20 3d 20 62 79 74 65 73 5b kw">const</span>.slice4.=.bytes[
c33e0 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
c3400 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 35 3c 2f 73 >..<span.class="tok-number">5</s
c3420 70 61 6e 3e 5d 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">
c3440 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 6d 65 6d 2e 62 79 74 const</span>.int_slice.=.mem.byt
c3460 65 73 41 73 53 6c 69 63 65 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 esAsSlice(<span.class="tok-type"
c3480 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 74 6f 6b 2d 62 75 >u32</span>,.<span.class="tok-bu
c34a0 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 5b 5d 3c 73 70 61 6e 20 63 6c 61 73 73 3d iltin">@as</span>([]<span.class=
c34c0 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
c34e0 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 20 63 s="tok-number">4</span>).<span.c
c3500 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 3c 73 70 61 6e lass="tok-type">u8</span>,.<span
c3520 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 43 61 73 74 3c .class="tok-builtin">@alignCast<
c3540 2f 73 70 61 6e 3e 28 73 6c 69 63 65 34 29 29 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 /span>(slice4)));.....<span.clas
c3560 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 74 5f 73 6c 69 s="tok-kw">return</span>.int_sli
c3580 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 30 3c 2f 73 ce[<span.class="tok-number">0</s
c35a0 70 61 6e 3e 5d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 pan>];.}</code></pre></figure><f
c35c0 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 igure><figcaption.class="shell-c
c35e0 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 ap">Shell</figcaption><pre><samp
c3600 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 69 6e >$.<kbd>zig.build-exe.runtime_in
c3620 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 3c 2f 6b correct_pointer_alignment.zig</k
c3640 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 69 6e 63 6f 72 72 65 63 74 5f 70 bd>.$.<kbd>./runtime_incorrect_p
c3660 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 ointer_alignment</kbd>.thread.14
c3680 35 39 34 38 20 70 61 6e 69 63 3a 20 69 6e 63 6f 72 72 65 63 74 20 61 6c 69 67 6e 6d 65 6e 74 0a 5948.panic:.incorrect.alignment.
c36a0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f <span.class="sgr-1m">/home/andy/
c36c0 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d src/zig-0.12.x/docgen_tmp/runtim
c36e0 65 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 e_incorrect_pointer_alignment.zi
c3700 67 3a 39 3a 36 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d g:9:64</span>:.<span.class="sgr-
c3720 32 6d 22 3e 30 78 31 30 33 33 62 38 61 20 69 6e 20 66 6f 6f 20 28 72 75 6e 74 69 6d 65 5f 69 6e 2m">0x1033b8a.in.foo.(runtime_in
c3740 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 29 3c 2f 73 70 61 6e correct_pointer_alignment)</span
c3760 3e 0a 20 20 20 20 63 6f 6e 73 74 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 6d 65 6d 2e 62 79 74 65 >.....const.int_slice.=.mem.byte
c3780 73 41 73 53 6c 69 63 65 28 75 33 32 2c 20 40 61 73 28 5b 5d 61 6c 69 67 6e 28 34 29 20 75 38 2c sAsSlice(u32,.@as([]align(4).u8,
c37a0 20 40 61 6c 69 67 6e 43 61 73 74 28 73 6c 69 63 65 34 29 29 29 3b 0a 20 20 20 20 20 20 20 20 20 .@alignCast(slice4)));..........
c37c0 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 ................................
c37e0 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 6c 61 73 ......................<span.clas
c3800 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 s="sgr-32m">^</span>.<span.class
c3820 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 ="sgr-1m">/home/andy/src/zig-0.1
c3840 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 69 6e 63 6f 72 72 65 63 74 2.x/docgen_tmp/runtime_incorrect
c3860 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 2e 7a 69 67 3a 35 3a 31 32 3c 2f 73 70 61 _pointer_alignment.zig:5:12</spa
c3880 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 61 n>:.<span.class="sgr-2m">0x1033a
c38a0 34 37 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 47.in.main.(runtime_incorrect_po
c38c0 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 69 66 20 28 inter_alignment)</span>.....if.(
c38e0 66 6f 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 foo(bytes).!=.0x11111111).return
c3900 20 65 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 .error.Wrong;............<span.c
c3920 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c lass="sgr-32m">^</span>.<span.cl
c3940 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d ass="sgr-1m">/home/andy/src/zig-
c3960 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 31 31 3a 33 37 3c 0.12.x/lib/std/start.zig:511:37<
c3980 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 /span>:.<span.class="sgr-2m">0x1
c39a0 30 33 33 39 34 35 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 033945.in.posixCallMainAndExit.(
c39c0 72 75 6e 74 69 6d 65 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d runtime_incorrect_pointer_alignm
c39e0 65 6e 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 72 65 ent)</span>.............const.re
c3a00 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 20 7b sult.=.root.main().catch.|err|.{
c3a20 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 20 20 ................................
c3a40 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 .....<span.class="sgr-32m">^</sp
c3a60 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 an>.<span.class="sgr-1m">/home/a
c3a80 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 ndy/src/zig-0.12.x/lib/std/start
c3aa0 2e 7a 69 67 3a 32 35 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 .zig:253:5</span>:.<span.class="
c3ac0 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 34 36 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e sgr-2m">0x1033461.in._start.(run
c3ae0 74 69 6d 65 5f 69 6e 63 6f 72 72 65 63 74 5f 70 6f 69 6e 74 65 72 5f 61 6c 69 67 6e 6d 65 6e 74 time_incorrect_pointer_alignment
c3b00 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 )</span>.....asm.volatile.(switc
c3b20 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 h.(native_arch).{.....<span.clas
c3b40 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 s="sgr-32m">^</span>.<span.class
c3b60 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 ="sgr-1m">???:?:?</span>:.<span.
c3b80 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c class="sgr-2m">0x0.in.???.(???)<
c3ba0 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 73 69 /span>.(process.terminated.by.si
c3bc0 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 gnal).</samp></pre></figure>....
c3be0 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 ..........<h3.id="Wrong-Union-Fi
c3c00 65 6c 64 2d 41 63 63 65 73 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 eld-Access"><a.href="nav.xhtml#t
c3c20 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 3e 57 72 6f oc-Wrong-Union-Field-Access">Wro
c3c40 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 20 3c 61 20 63 6c 61 ng.Union.Field.Access</a>.<a.cla
c3c60 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c ss="hdr".href="#Wrong-Union-Fiel
c3c80 64 2d 41 63 63 65 73 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 d-Access">..</a></h3>........<p>
c3ca0 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 66 69 67 75 At.compile-time:</p>.......<figu
c3cc0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
c3ce0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f cite.class="file">test_comptime_
c3d00 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 5f 61 63 63 65 73 73 2e 7a 69 67 3c 2f 63 69 wrong_union_field_access.zig</ci
c3d20 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
c3d40 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>.
c3d60 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</
c3d80 73 70 61 6e 3e 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 span>.f.=.Foo{..int.=.<span.clas
c3da0 73 3d 22 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 s="tok-number">42</span>.};.....
c3dc0 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 2d 6e 75 6d 62 65 f.float.=.<span.class="tok-numbe
c3de0 72 22 3e 31 32 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 r">12.34</span>;.}..<span.class=
c3e00 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 73 70 61 "tok-kw">const</span>.Foo.=.<spa
c3e20 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 20 7b 0a n.class="tok-kw">union</span>.{.
c3e40 20 20 20 20 66 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 ....float:.<span.class="tok-type
c3e60 22 3e 66 33 32 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 ">f32</span>,.....int:.<span.cla
c3e80 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 3c 2f 63 6f ss="tok-type">u32</span>,.};</co
c3ea0 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 de></pre></figure><figure><figca
c3ec0 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 ption.class="shell-cap">Shell</f
c3ee0 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 igcaption><pre><samp>$.<kbd>zig.
c3f00 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 test.test_comptime_wrong_union_f
c3f20 69 65 6c 64 5f 61 63 63 65 73 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 ield_access.zig</kbd>.<span.clas
c3f40 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 s="sgr-1m">docgen_tmp/test_compt
c3f60 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 5f 61 63 63 65 73 73 2e 7a 69 67 ime_wrong_union_field_access.zig
c3f80 3a 33 3a 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 :3:6:.</span><span.class="sgr-31
c3fa0 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 m">error:.</span><span.class="sg
c3fc0 72 2d 31 6d 22 3e 61 63 63 65 73 73 20 6f 66 20 75 6e 69 6f 6e 20 66 69 65 6c 64 20 27 66 6c 6f r-1m">access.of.union.field.'flo
c3fe0 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 61 63 74 69 76 65 0a at'.while.field.'int'.is.active.
c4000 3c 2f 73 70 61 6e 3e 20 20 20 20 66 2e 66 6c 6f 61 74 20 3d 20 31 32 2e 33 34 3b 0a 20 20 20 20 </span>....f.float.=.12.34;.....
c4020 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 7e 5e 7e 7e 7e 7e 7e 0a 3c 2f <span.class="sgr-32m">~^~~~~~.</
c4040 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e span><span.class="sgr-1m">docgen
c4060 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 _tmp/test_comptime_wrong_union_f
c4080 69 65 6c 64 5f 61 63 63 65 73 73 2e 7a 69 67 3a 36 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 ield_access.zig:6:13:.</span><sp
c40a0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e an.class="sgr-36m">note:.</span>
c40c0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 75 6e 69 6f 6e 20 64 65 63 6c 61 <span.class="sgr-1m">union.decla
c40e0 72 65 64 20 68 65 72 65 0a 3c 2f 73 70 61 6e 3e 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 75 6e 69 6f red.here.</span>const.Foo.=.unio
c4100 6e 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 73 67 72 n.{.............<span.class="sgr
c4120 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 -32m">^~~~~.</span>.</samp></pre
c4140 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 3a 3c ></figure>.......<p>At.runtime:<
c4160 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c /p>.......<figure><figcaption.cl
c4180 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
c41a0 3e 72 75 6e 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 5f 61 63 63 65 73 >runtime_wrong_union_field_acces
c41c0 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 s.zig</cite></figcaption><pre><c
c41e0 6f 64 65 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 ode><span.class="tok-kw">const</
c4200 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
c4220 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
c4240 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
c4260 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 6f 6e 73 74 3c >);..<span.class="tok-kw">const<
c4280 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 6f 6b 2d 6b 77 /span>.Foo.=.<span.class="tok-kw
c42a0 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 74 3a 20 3c 73 70 61 ">union</span>.{.....float:.<spa
c42c0 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 20 n.class="tok-type">f32</span>,..
c42e0 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 74 79 70 65 22 3e 75 ...int:.<span.class="tok-type">u
c4300 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 73 3d 22 74 6f 6b 2d 32</span>,.};..<span.class="tok-
c4320 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-
c4340 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
c4360 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
c4380 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.
c43a0 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 20 3d 20 46 6f class="tok-kw">var</span>.f.=.Fo
c43c0 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 6b 2d 6e 75 6d 62 65 o{..int.=.<span.class="tok-numbe
c43e0 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 61 6d 70 3b 66 29 3b r">42</span>.};.....bar(&amp;f);
c4400 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
c4420 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 72 3c 2f 73 70 61 n>.<span.class="tok-fn">bar</spa
c4440 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 74 6f 6b 2d 74 79 70 n>(f:.*Foo).<span.class="tok-typ
c4460 65 22 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 e">void</span>.{.....f.float.=.<
c4480 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 73 span.class="tok-number">12.34</s
c44a0 70 61 6e 3e 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 pan>;.....std.debug.print(<span.
c44c0 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 3a 20 7b 7d 5c class="tok-str">&quot;value:.{}\
c44e0 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 66 2e 66 6c 6f 61 74 7d 29 3b 0a 7d 3c 2f n&quot;</span>,..{f.float});.}</
c4500 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
c4520 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
c4540 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
c4560 67 20 62 75 69 6c 64 2d 65 78 65 20 72 75 6e 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f g.build-exe.runtime_wrong_union_
c4580 66 69 65 6c 64 5f 61 63 63 65 73 73 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f field_access.zig</kbd>.$.<kbd>./
c45a0 72 75 6e 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 5f 61 63 63 65 73 73 runtime_wrong_union_field_access
c45c0 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 36 30 34 32 20 70 61 6e 69 63 3a 20 61 63 63 65 </kbd>.thread.146042.panic:.acce
c45e0 73 73 20 6f 66 20 75 6e 69 6f 6e 20 66 69 65 6c 64 20 27 66 6c 6f 61 74 27 20 77 68 69 6c 65 20 ss.of.union.field.'float'.while.
c4600 66 69 65 6c 64 20 27 69 6e 74 27 20 69 73 20 61 63 74 69 76 65 0a 3c 73 70 61 6e 20 63 6c 61 73 field.'int'.is.active.<span.clas
c4620 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e s="sgr-1m">/home/andy/src/zig-0.
c4640 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 12.x/docgen_tmp/runtime_wrong_un
c4660 69 6f 6e 5f 66 69 65 6c 64 5f 61 63 63 65 73 73 2e 7a 69 67 3a 31 34 3a 36 3c 2f 73 70 61 6e 3e ion_field_access.zig:14:6</span>
c4680 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 62 39 36 30 :.<span.class="sgr-2m">0x103b960
c46a0 20 69 6e 20 62 61 72 20 28 72 75 6e 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 .in.bar.(runtime_wrong_union_fie
c46c0 6c 64 5f 61 63 63 65 73 73 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 66 2e 66 6c 6f 61 74 20 3d 20 ld_access)</span>.....f.float.=.
c46e0 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 73 67 72 2d 33 32 6d 12.34;......<span.class="sgr-32m
c4700 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e ">^</span>.<span.class="sgr-1m">
c4720 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e /home/andy/src/zig-0.12.x/docgen
c4740 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 5f 61 _tmp/runtime_wrong_union_field_a
c4760 63 63 65 73 73 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 ccess.zig:10:8</span>:.<span.cla
c4780 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 39 38 62 63 20 69 6e 20 6d 61 69 6e 20 28 72 ss="sgr-2m">0x10398bc.in.main.(r
c47a0 75 6e 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 5f 61 63 63 65 73 73 29 untime_wrong_union_field_access)
c47c0 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 20 </span>.....bar(&amp;f);........
c47e0 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c <span.class="sgr-32m">^</span>.<
c4800 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 span.class="sgr-1m">/home/andy/s
c4820 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a rc/zig-0.12.x/lib/std/start.zig:
c4840 35 30 31 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 73 67 72 2d 501:22</span>:.<span.class="sgr-
c4860 32 6d 22 3e 30 78 31 30 33 39 31 35 39 20 69 6e 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 2m">0x1039159.in.posixCallMainAn
c4880 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 77 72 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 dExit.(runtime_wrong_union_field
c48a0 5f 61 63 63 65 73 73 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 _access)</span>.............root
c48c0 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 3c 73 .main();......................<s
c48e0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 pan.class="sgr-32m">^</span>.<sp
c4900 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 an.class="sgr-1m">/home/andy/src
c4920 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 /zig-0.12.x/lib/std/start.zig:25
c4940 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 73 67 72 2d 32 6d 22 3:5</span>:.<span.class="sgr-2m"
c4960 3e 30 78 31 30 33 38 63 63 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 77 72 >0x1038cc1.in._start.(runtime_wr
c4980 6f 6e 67 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 5f 61 63 63 65 73 73 29 3c 2f 73 70 61 6e 3e 0a 20 ong_union_field_access)</span>..
c49a0 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f ...asm.volatile.(switch.(native_
c49c0 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d arch).{.....<span.class="sgr-32m
c49e0 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e ">^</span>.<span.class="sgr-1m">
c4a00 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 ???:?:?</span>:.<span.class="sgr
c4a20 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 70 72 -2m">0x0.in.???.(???)</span>.(pr
c4a40 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 0a 3c 2f 73 61 ocess.terminated.by.signal).</sa
c4a60 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 mp></pre></figure>.......<p>....
c4a80 20 20 20 54 68 69 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 ...This.safety.is.not.available.
c4aa0 66 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 for.<code><span.class="tok-kw">e
c4ac0 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 64 65 3e 3c 73 70 xtern</span></code>.or.<code><sp
c4ae0 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 3c an.class="tok-kw">packed</span><
c4b00 2f 63 6f 64 65 3e 20 75 6e 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 /code>.unions........</p>.......
c4b20 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
c4b40 69 65 6c 64 20 6f 66 20 61 20 75 6e 69 6f 6e 2c 20 61 73 73 69 67 6e 20 74 68 65 20 65 6e 74 69 ield.of.a.union,.assign.the.enti
c4b60 72 65 20 75 6e 69 6f 6e 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a re.union,.like.this:.......</p>.
c4b80 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d ......<figure><figcaption.class=
c4ba0 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 68 61 "zig-cap"><cite.class="file">cha
c4bc0 6e 67 65 5f 61 63 74 69 76 65 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 2e 7a 69 67 3c 2f 63 69 74 65 nge_active_union_field.zig</cite
c4be0 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 ></figcaption><pre><code><span.c
c4c00 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.=
c4c20 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
c4c40 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">
c4c60 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 20 &quot;std&quot;</span>);..<span.
c4c80 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.
c4ca0 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
c4cc0 61 6e 3e 20 7b 0a 20 20 20 20 66 6c 6f 61 74 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f an>.{.....float:.<span.class="to
c4ce0 6b 2d 74 79 70 65 22 3e 66 33 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 69 6e 74 3a 20 3c 73 70 k-type">f32</span>,.....int:.<sp
c4d00 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 0a an.class="tok-type">u32</span>,.
c4d20 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
c4d40 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
c4d60 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
c4d80 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
c4da0 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 2d d</span>.{.....<span.class="tok-
c4dc0 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 20 3d 20 46 6f 6f 7b 20 2e 69 6e 74 20 3d 20 3c kw">var</span>.f.=.Foo{..int.=.<
c4de0 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 6e span.class="tok-number">42</span
c4e00 3e 20 7d 3b 0a 20 20 20 20 62 61 72 28 26 61 6d 70 3b 66 29 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 >.};.....bar(&amp;f);.}..<span.c
c4e20 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
c4e40 61 73 73 3d 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 ass="tok-fn">bar</span>(f:.*Foo)
c4e60 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 70 .<span.class="tok-type">void</sp
c4e80 61 6e 3e 20 7b 0a 20 20 20 20 66 2e 2a 20 3d 20 46 6f 6f 7b 20 2e 66 6c 6f 61 74 20 3d 20 3c 73 an>.{.....f.*.=.Foo{..float.=.<s
c4ea0 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 73 70 pan.class="tok-number">12.34</sp
c4ec0 61 6e 3e 20 7d 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e an>.};.....std.debug.print(<span
c4ee0 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 3a 20 7b 7d .class="tok-str">&quot;value:.{}
c4f00 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 66 2e 66 6c 6f 61 74 7d 29 3b 0a 7d 3c \n&quot;</span>,..{f.float});.}<
c4f20 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 /code></pre></figure><figure><fi
c4f40 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c gcaption.class="shell-cap">Shell
c4f60 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a </figcaption><pre><samp>$.<kbd>z
c4f80 69 67 20 62 75 69 6c 64 2d 65 78 65 20 63 68 61 6e 67 65 5f 61 63 74 69 76 65 5f 75 6e 69 6f 6e ig.build-exe.change_active_union
c4fa0 5f 66 69 65 6c 64 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 63 68 61 6e 67 65 _field.zig</kbd>.$.<kbd>./change
c4fc0 5f 61 63 74 69 76 65 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 3c 2f 6b 62 64 3e 0a 76 61 6c 75 65 3a _active_union_field</kbd>.value:
c4fe0 20 31 2e 32 33 34 65 31 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a .1.234e1.</samp></pre></figure>.
c5000 20 20 20 20 20 20 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 ......<p>.......To.change.the.ac
c5020 74 69 76 65 20 66 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 tive.field.of.a.union.when.a.mea
c5040 6e 69 6e 67 66 75 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 ningful.value.for.the.field.is.n
c5060 6f 74 20 6b 6e 6f 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 ot.known,.......use.<a.href="#un
c5080 64 65 66 69 6e 65 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 defined">undefined</a>,.like.thi
c50a0 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 s:.......</p>.......<figure><fig
c50c0 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c caption.class="zig-cap"><cite.cl
c50e0 61 73 73 3d 22 66 69 6c 65 22 3e 75 6e 64 65 66 69 6e 65 64 5f 61 63 74 69 76 65 5f 75 6e 69 6f ass="file">undefined_active_unio
c5100 6e 5f 66 69 65 6c 64 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c n_field.zig</cite></figcaption><
c5120 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 pre><code><span.class="tok-kw">c
c5140 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
c5160 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
c5180 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;
c51a0 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">
c51c0 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 22 const</span>.Foo.=.<span.class="
c51e0 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 74 tok-kw">union</span>.{.....float
c5200 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 70 :.<span.class="tok-type">f32</sp
c5220 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 74 an>,.....int:.<span.class="tok-t
c5240 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 73 ype">u32</span>,.};..<span.class
c5260 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
c5280 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=
c52a0 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 61 "tok-fn">main</span>().<span.cla
c52c0 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>.{.....
c52e0 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>.
c5300 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 6b f.=.Foo{..int.=.<span.class="tok
c5320 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 20 3d 20 46 6f -number">42</span>.};.....f.=.Fo
c5340 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 2d 6e 75 6c o{..float.=.<span.class="tok-nul
c5360 6c 22 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 73 70 61 6e 3e 20 7d 3b 0a 20 20 20 20 62 61 72 28 26 l">undefined</span>.};.....bar(&
c5380 61 6d 70 3b 66 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 amp;f);.....std.debug.print(<spa
c53a0 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 3a 20 7b n.class="tok-str">&quot;value:.{
c53c0 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 2e 7b 66 2e 66 6c 6f 61 74 7d 29 3b 0a 7d }\n&quot;</span>,..{f.float});.}
c53e0 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>
c5400 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>
c5420 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"
c5440 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
c5460 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
c5480 6e 3e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 n>;.}</code></pre></figure><figu
c54a0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 re><figcaption.class="shell-cap"
c54c0 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 >Shell</figcaption><pre><samp>$.
c54e0 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 75 6e 64 65 66 69 6e 65 64 5f 61 63 74 <kbd>zig.build-exe.undefined_act
c5500 69 76 65 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 ive_union_field.zig</kbd>.$.<kbd
c5520 3e 2e 2f 75 6e 64 65 66 69 6e 65 64 5f 61 63 74 69 76 65 5f 75 6e 69 6f 6e 5f 66 69 65 6c 64 3c >./undefined_active_union_field<
c5540 2f 6b 62 64 3e 0a 76 61 6c 75 65 3a 20 31 2e 32 33 34 65 31 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 /kbd>.value:.1.234e1.</samp></pr
c5560 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f e></figure>.......<p>See.also:</
c5580 70 3e 3c 75 6c 3e 0a 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 p><ul>.<li><a.href="#union">unio
c55a0 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 78 74 65 72 6e 2d n</a></li>.<li><a.href="#extern-
c55c0 75 6e 69 6f 6e 22 3e 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 union">extern.union</a></li>.</u
c55e0 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4f 75 74 2d 6f 66 l>................<h3.id="Out-of
c5600 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 74 22 3e 3c -Bounds-Float-to-Integer-Cast"><
c5620 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 4f 75 74 2d 6f 66 2d 42 6f 75 a.href="nav.xhtml#toc-Out-of-Bou
c5640 6e 64 73 2d 46 6c 6f 61 74 2d 74 6f 2d 49 6e 74 65 67 65 72 2d 43 61 73 74 22 3e 4f 75 74 20 6f nds-Float-to-Integer-Cast">Out.o
c5660 66 20 42 6f 75 6e 64 73 20 46 6c 6f 61 74 20 74 6f 20 49 6e 74 65 67 65 72 20 43 61 73 74 3c 2f f.Bounds.Float.to.Integer.Cast</
c5680 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 75 74 2d 6f 66 2d a>.<a.class="hdr".href="#Out-of-
c56a0 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 74 22 3e c2 a7 Bounds-Float-to-Integer-Cast">..
c56c0 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 69 73 20 </a></h3>........<p>.......This.
c56e0 68 61 70 70 65 6e 73 20 77 68 65 6e 20 63 61 73 74 69 6e 67 20 61 20 66 6c 6f 61 74 20 74 6f 20 happens.when.casting.a.float.to.
c5700 61 6e 20 69 6e 74 65 67 65 72 20 77 68 65 72 65 20 74 68 65 20 66 6c 6f 61 74 20 68 61 73 20 61 an.integer.where.the.float.has.a
c5720 20 76 61 6c 75 65 20 6f 75 74 73 69 64 65 20 74 68 65 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 .value.outside.the.......integer
c5740 20 74 79 70 65 27 73 20 72 61 6e 67 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 .type's.range........</p>.......
c5760 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 66 <p>At.compile-time:</p>.......<f
c5780 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
c57a0 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 63 6f 6d 70 74 69 "><cite.class="file">test_compti
c57c0 6d 65 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 6e 74 65 67 65 me_out_of_bounds_float_to_intege
c57e0 72 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 r_cast.zig</cite></figcaption><p
c5800 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 6f re><code><span.class="tok-kw">co
c5820 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 20 63 6c 61 73 73 3d mptime</span>.{.....<span.class=
c5840 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 66 6c 6f 61 74 3a 20 3c 73 70 "tok-kw">const</span>.float:.<sp
c5860 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 3d an.class="tok-type">f32</span>.=
c5880 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 32 39 34 39 36 .<span.class="tok-number">429496
c58a0 37 32 39 36 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 7296</span>;.....<span.class="to
c58c0 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 69 6e 74 3a 20 3c 73 70 61 6e 20 63 6c k-kw">const</span>.int:.<span.cl
c58e0 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
c5900 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 46 72 6f 6d 46 6c n.class="tok-builtin">@intFromFl
c5920 6f 61 74 3c 2f 73 70 61 6e 3e 28 66 6c 6f 61 74 29 3b 0a 20 20 20 20 5f 20 3d 20 69 6e 74 3b 0a oat</span>(float);....._.=.int;.
c5940 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c }</code></pre></figure><figure><
c5960 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
c5980 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
c59a0 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6f 75 74 5f 6f 66 5f 62 >zig.test.test_comptime_out_of_b
c59c0 6f 75 6e 64 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 6e 74 65 67 65 72 5f 63 61 73 74 2e 7a 69 67 3c ounds_float_to_integer_cast.zig<
c59e0 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 /kbd>.<span.class="sgr-1m">docge
c5a00 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 n_tmp/test_comptime_out_of_bound
c5a20 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 6e 74 65 67 65 72 5f 63 61 73 74 2e 7a 69 67 3a 33 3a 33 36 s_float_to_integer_cast.zig:3:36
c5a40 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 3e 65 :.</span><span.class="sgr-31m">e
c5a60 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d rror:.</span><span.class="sgr-1m
c5a80 22 3e 66 6c 6f 61 74 20 76 61 6c 75 65 20 27 34 32 39 34 39 36 37 32 39 36 27 20 63 61 6e 6e 6f ">float.value.'4294967296'.canno
c5aa0 74 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 27 69 33 32 t.be.stored.in.integer.type.'i32
c5ac0 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 69 6e 74 3a 20 69 33 32 20 3d 20 40 69 '.</span>....const.int:.i32.=.@i
c5ae0 6e 74 46 72 6f 6d 46 6c 6f 61 74 28 66 6c 6f 61 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ntFromFloat(float);.............
c5b00 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 20 63 6c 61 .......................<span.cla
c5b20 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 6d ss="sgr-32m">^~~~~.</span>.</sam
c5b40 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 p></pre></figure>.......<p>At.ru
c5b60 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 ntime:</p>.......<figure><figcap
c5b80 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 tion.class="zig-cap"><cite.class
c5ba0 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 5f 66 6c ="file">runtime_out_of_bounds_fl
c5bc0 6f 61 74 5f 74 6f 5f 69 6e 74 65 67 65 72 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f oat_to_integer_cast.zig</cite></
c5be0 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 figcaption><pre><code><span.clas
c5c00 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
c5c20 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
c5c40 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
c5c60 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>.{....
c5c80 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>
c5ca0 20 66 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 .float:.<span.class="tok-type">f
c5cc0 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
c5ce0 62 65 72 22 3e 34 32 39 34 39 36 37 32 39 36 3c 2f 73 70 61 6e 3e 3b 20 3c 73 70 61 6e 20 63 6c ber">4294967296</span>;.<span.cl
c5d00 61 73 73 3d 22 74 6f 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 20 72 75 6e 74 69 6d 65 2d 6b 6e 6f ass="tok-comment">//.runtime-kno
c5d20 77 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 66 6c 6f 61 74 3b 0a 20 20 wn</span>....._.=.&amp;float;...
c5d40 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
c5d60 61 6e 3e 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 an>.int:.<span.class="tok-type">
c5d80 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 62 75 i32</span>.=.<span.class="tok-bu
c5da0 69 6c 74 69 6e 22 3e 40 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 3c 2f 73 70 61 6e 3e 28 66 6c 6f 61 iltin">@intFromFloat</span>(floa
c5dc0 74 29 3b 0a 20 20 20 20 5f 20 3d 20 69 6e 74 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c t);....._.=.int;.}</code></pre><
c5de0 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 /figure><figure><figcaption.clas
c5e00 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e s="shell-cap">Shell</figcaption>
c5e20 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 <pre><samp>$.<kbd>zig.build-exe.
c5e40 72 75 6e 74 69 6d 65 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 runtime_out_of_bounds_float_to_i
c5e60 6e 74 65 67 65 72 5f 63 61 73 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 nteger_cast.zig</kbd>.$.<kbd>./r
c5e80 75 6e 74 69 6d 65 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 6e untime_out_of_bounds_float_to_in
c5ea0 74 65 67 65 72 5f 63 61 73 74 3c 2f 6b 62 64 3e 0a 74 68 72 65 61 64 20 31 34 36 32 33 37 20 70 teger_cast</kbd>.thread.146237.p
c5ec0 61 6e 69 63 3a 20 69 6e 74 65 67 65 72 20 70 61 72 74 20 6f 66 20 66 6c 6f 61 74 69 6e 67 20 70 anic:.integer.part.of.floating.p
c5ee0 6f 69 6e 74 20 76 61 6c 75 65 20 6f 75 74 20 6f 66 20 62 6f 75 6e 64 73 0a 3c 73 70 61 6e 20 63 oint.value.out.of.bounds.<span.c
c5f00 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 lass="sgr-1m">/home/andy/src/zig
c5f20 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 6f 75 74 5f 6f -0.12.x/docgen_tmp/runtime_out_o
c5f40 66 5f 62 6f 75 6e 64 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 6e 74 65 67 65 72 5f 63 61 73 74 2e 7a f_bounds_float_to_integer_cast.z
c5f60 69 67 3a 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 73 67 72 ig:4:22</span>:.<span.class="sgr
c5f80 2d 32 6d 22 3e 30 78 31 30 33 33 64 38 39 20 69 6e 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f -2m">0x1033d89.in.main.(runtime_
c5fa0 6f 75 74 5f 6f 66 5f 62 6f 75 6e 64 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 6e 74 65 67 65 72 5f 63 out_of_bounds_float_to_integer_c
c5fc0 61 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 69 6e 74 3a 20 69 33 32 20 3d ast)</span>.....const.int:.i32.=
c5fe0 20 40 69 6e 74 46 72 6f 6d 46 6c 6f 61 74 28 66 6c 6f 61 74 29 3b 0a 20 20 20 20 20 20 20 20 20 .@intFromFloat(float);..........
c6000 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 73 67 72 2d 33 32 6d ............<span.class="sgr-32m
c6020 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e ">^</span>.<span.class="sgr-1m">
c6040 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 2f 73 74 /home/andy/src/zig-0.12.x/lib/st
c6060 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e d/start.zig:501:22</span>:.<span
c6080 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 35 63 39 20 69 6e 20 70 6f 73 .class="sgr-2m">0x10335c9.in.pos
c60a0 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 6f 75 74 5f 6f ixCallMainAndExit.(runtime_out_o
c60c0 66 5f 62 6f 75 6e 64 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 6e 74 65 67 65 72 5f 63 61 73 74 29 3c f_bounds_float_to_integer_cast)<
c60e0 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 0a /span>.............root.main();.
c6100 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
c6120 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d ="sgr-32m">^</span>.<span.class=
c6140 22 73 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 "sgr-1m">/home/andy/src/zig-0.12
c6160 2e 78 2f 6c 69 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e .x/lib/std/start.zig:253:5</span
c6180 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 31 33 >:.<span.class="sgr-2m">0x103313
c61a0 31 20 69 6e 20 5f 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 6f 75 74 5f 6f 66 5f 62 6f 75 6e 1.in._start.(runtime_out_of_boun
c61c0 64 73 5f 66 6c 6f 61 74 5f 74 6f 5f 69 6e 74 65 67 65 72 5f 63 61 73 74 29 3c 2f 73 70 61 6e 3e ds_float_to_integer_cast)</span>
c61e0 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 .....asm.volatile.(switch.(nativ
c6200 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 e_arch).{.....<span.class="sgr-3
c6220 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 2m">^</span>.<span.class="sgr-1m
c6240 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 ">???:?:?</span>:.<span.class="s
c6260 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f 3f 20 28 3f 3f 3f 29 3c 2f 73 70 61 6e 3e 0a 28 gr-2m">0x0.in.???.(???)</span>.(
c6280 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 0a 3c 2f process.terminated.by.signal).</
c62a0 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 samp></pre></figure>............
c62c0 20 20 20 3c 68 33 20 69 64 3d 22 50 6f 69 6e 74 65 72 2d 43 61 73 74 2d 49 6e 76 61 6c 69 64 2d ...<h3.id="Pointer-Cast-Invalid-
c62e0 4e 75 6c 6c 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 50 6f 69 Null"><a.href="nav.xhtml#toc-Poi
c6300 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 74 65 72 20 nter-Cast-Invalid-Null">Pointer.
c6320 43 61 73 74 20 49 6e 76 61 6c 69 64 20 4e 75 6c 6c 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 Cast.Invalid.Null</a>.<a.class="
c6340 68 64 72 22 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 2d 43 61 73 74 2d 49 6e 76 61 6c 69 64 hdr".href="#Pointer-Cast-Invalid
c6360 2d 4e 75 6c 6c 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 -Null">..</a></h3>........<p>...
c6380 20 20 20 20 54 68 69 73 20 68 61 70 70 65 6e 73 20 77 68 65 6e 20 63 61 73 74 69 6e 67 20 61 20 ....This.happens.when.casting.a.
c63a0 70 6f 69 6e 74 65 72 20 77 69 74 68 20 74 68 65 20 61 64 64 72 65 73 73 20 30 20 74 6f 20 61 20 pointer.with.the.address.0.to.a.
c63c0 70 6f 69 6e 74 65 72 20 77 68 69 63 68 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 74 68 65 20 61 pointer.which.may.not.have.the.a
c63e0 64 64 72 65 73 73 20 30 2e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 3c 61 20 ddress.0........For.example,.<a.
c6400 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 3c 2f 61 href="#C-Pointers">C.Pointers</a
c6420 3e 2c 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 >,.<a.href="#Optional-Pointers">
c6440 4f 70 74 69 6f 6e 61 6c 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 2c 20 61 6e 64 20 3c 61 20 68 72 Optional.Pointers</a>,.and.<a.hr
c6460 65 66 3d 22 23 61 6c 6c 6f 77 7a 65 72 6f 22 3e 61 6c 6c 6f 77 7a 65 72 6f 3c 2f 61 3e 20 70 6f ef="#allowzero">allowzero</a>.po
c6480 69 6e 74 65 72 73 0a 20 20 20 20 20 20 61 6c 6c 6f 77 20 61 64 64 72 65 73 73 20 7a 65 72 6f 2c inters.......allow.address.zero,
c64a0 20 62 75 74 20 6e 6f 72 6d 61 6c 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e .but.normal.<a.href="#Pointers">
c64c0 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 64 6f 20 6e 6f 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a Pointers</a>.do.not........</p>.
c64e0 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 20 ......<p>At.compile-time:</p>...
c6500 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a ....<figure><figcaption.class="z
c6520 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f ig-cap"><cite.class="file">test_
c6540 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f 69 6e 74 65 72 5f 63 61 comptime_invalid_null_pointer_ca
c6560 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c st.zig</cite></figcaption><pre><
c6580 63 6f 64 65 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 code><span.class="tok-kw">compti
c65a0 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 6b me</span>.{.....<span.class="tok
c65c0 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 70 -kw">const</span>.opt_ptr:.?*<sp
c65e0 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>.=
c6600 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
c6620 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
c6640 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 73 73 3d 22 74 6f nst</span>.ptr:.*<span.class="to
c6660 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
c6680 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 61 6e 3e 28 6f ="tok-builtin">@ptrCast</span>(o
c66a0 70 74 5f 70 74 72 29 3b 0a 20 20 20 20 5f 20 3d 20 70 74 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f pt_ptr);....._.=.ptr;.}</code></
c66c0 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e pre></figure><figure><figcaption
c66e0 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 .class="shell-cap">Shell</figcap
c6700 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 tion><pre><samp>$.<kbd>zig.test.
c6720 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f 69 6e 74 test_comptime_invalid_null_point
c6740 65 72 5f 63 61 73 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 er_cast.zig</kbd>.<span.class="s
c6760 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 63 6f 6d 70 74 69 6d 65 5f gr-1m">docgen_tmp/test_comptime_
c6780 69 6e 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f 69 6e 74 65 72 5f 63 61 73 74 2e 7a 69 67 3a 33 3a invalid_null_pointer_cast.zig:3:
c67a0 33 32 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 31 6d 22 32:.</span><span.class="sgr-31m"
c67c0 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d >error:.</span><span.class="sgr-
c67e0 31 6d 22 3e 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 1m">null.pointer.casted.to.type.
c6800 27 2a 69 33 32 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 20 63 6f 6e 73 74 20 70 74 72 3a 20 2a 69 33 '*i32'.</span>....const.ptr:.*i3
c6820 32 20 3d 20 40 70 74 72 43 61 73 74 28 6f 70 74 5f 70 74 72 29 3b 0a 20 20 20 20 20 20 20 20 20 2.=.@ptrCast(opt_ptr);..........
c6840 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 6c 61 73 ......................<span.clas
c6860 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f 73 61 s="sgr-32m">^~~~~~~.</span>.</sa
c6880 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 mp></pre></figure>.......<p>At.r
c68a0 75 6e 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 untime:</p>.......<figure><figca
c68c0 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
c68e0 73 3d 22 66 69 6c 65 22 3e 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f s="file">runtime_invalid_null_po
c6900 69 6e 74 65 72 5f 63 61 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f inter_cast.zig</cite></figcaptio
c6920 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 n><pre><code><span.class="tok-kw
c6940 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
c6960 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"
c6980 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-
c69a0 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
c69c0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 6f 70 74 5f 70 74 72 3a ass="tok-kw">var</span>.opt_ptr:
c69e0 20 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 3c 2f 73 .?*<span.class="tok-type">i32</s
c6a00 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 6e 75 pan>.=.<span.class="tok-null">nu
c6a20 6c 6c 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 6f 70 74 5f 70 74 72 3b ll</span>;....._.=.&amp;opt_ptr;
c6a40 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<
c6a60 2f 73 70 61 6e 3e 20 70 74 72 3a 20 2a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 /span>.ptr:.*<span.class="tok-ty
c6a80 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 6f pe">i32</span>.=.<span.class="to
c6aa0 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 6f 70 74 5f 70 k-builtin">@ptrCast</span>(opt_p
c6ac0 74 72 29 3b 0a 20 20 20 20 5f 20 3d 20 70 74 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e tr);....._.=.ptr;.}</code></pre>
c6ae0 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
c6b00 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
c6b20 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 ><pre><samp>$.<kbd>zig.build-exe
c6b40 20 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f 69 6e 74 65 72 5f 63 61 .runtime_invalid_null_pointer_ca
c6b60 73 74 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 75 6e 74 69 6d 65 5f 69 6e st.zig</kbd>.$.<kbd>./runtime_in
c6b80 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f 69 6e 74 65 72 5f 63 61 73 74 3c 2f 6b 62 64 3e 0a 74 68 valid_null_pointer_cast</kbd>.th
c6ba0 72 65 61 64 20 31 34 36 33 33 31 20 70 61 6e 69 63 3a 20 63 61 73 74 20 63 61 75 73 65 73 20 70 read.146331.panic:.cast.causes.p
c6bc0 6f 69 6e 74 65 72 20 74 6f 20 62 65 20 6e 75 6c 6c 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 ointer.to.be.null.<span.class="s
c6be0 67 72 2d 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 gr-1m">/home/andy/src/zig-0.12.x
c6c00 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 6e 75 6c 6c /docgen_tmp/runtime_invalid_null
c6c20 5f 70 6f 69 6e 74 65 72 5f 63 61 73 74 2e 7a 69 67 3a 34 3a 32 33 3c 2f 73 70 61 6e 3e 3a 20 3c _pointer_cast.zig:4:23</span>:.<
c6c40 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 64 35 63 20 69 6e span.class="sgr-2m">0x1033d5c.in
c6c60 20 6d 61 69 6e 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f 69 6e .main.(runtime_invalid_null_poin
c6c80 74 65 72 5f 63 61 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 3a 20 ter_cast)</span>.....const.ptr:.
c6ca0 2a 69 33 32 20 3d 20 40 70 74 72 43 61 73 74 28 6f 70 74 5f 70 74 72 29 3b 0a 20 20 20 20 20 20 *i32.=.@ptrCast(opt_ptr);.......
c6cc0 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 73 67 72 ................<span.class="sgr
c6ce0 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d -32m">^</span>.<span.class="sgr-
c6d00 31 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 1m">/home/andy/src/zig-0.12.x/li
c6d20 62 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 35 30 31 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c b/std/start.zig:501:22</span>:.<
c6d40 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 35 63 39 20 69 6e span.class="sgr-2m">0x10335c9.in
c6d60 20 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 20 28 72 75 6e 74 69 6d 65 5f 69 .posixCallMainAndExit.(runtime_i
c6d80 6e 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f 69 6e 74 65 72 5f 63 61 73 74 29 3c 2f 73 70 61 6e 3e nvalid_null_pointer_cast)</span>
c6da0 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();.......
c6dc0 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 73 67 72 2d ...............<span.class="sgr-
c6de0 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 32m">^</span>.<span.class="sgr-1
c6e00 6d 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 6c 69 62 m">/home/andy/src/zig-0.12.x/lib
c6e20 2f 73 74 64 2f 73 74 61 72 74 2e 7a 69 67 3a 32 35 33 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 /std/start.zig:253:5</span>:.<sp
c6e40 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 31 30 33 33 31 33 31 20 69 6e 20 5f an.class="sgr-2m">0x1033131.in._
c6e60 73 74 61 72 74 20 28 72 75 6e 74 69 6d 65 5f 69 6e 76 61 6c 69 64 5f 6e 75 6c 6c 5f 70 6f 69 6e start.(runtime_invalid_null_poin
c6e80 74 65 72 5f 63 61 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 6d 20 76 6f 6c 61 74 69 6c ter_cast)</span>.....asm.volatil
c6ea0 65 20 28 73 77 69 74 63 68 20 28 6e 61 74 69 76 65 5f 61 72 63 68 29 20 7b 0a 20 20 20 20 3c 73 e.(switch.(native_arch).{.....<s
c6ec0 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 pan.class="sgr-32m">^</span>.<sp
c6ee0 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 3f 3f 3f 3a 3f 3a 3f 3c 2f 73 70 61 6e 3e an.class="sgr-1m">???:?:?</span>
c6f00 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 32 6d 22 3e 30 78 30 20 69 6e 20 3f 3f :.<span.class="sgr-2m">0x0.in.??
c6f20 3f 20 28 3f 3f 3f 29 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 ?.(???)</span>.(process.terminat
c6f40 65 64 20 62 79 20 73 69 67 6e 61 6c 29 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 ed.by.signal).</samp></pre></fig
c6f60 75 72 65 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 ure>......................<h2.id
c6f80 3d 22 4d 65 6d 6f 72 79 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 ="Memory"><a.href="nav.xhtml#toc
c6fa0 2d 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 79 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 -Memory">Memory</a>.<a.class="hd
c6fc0 72 22 20 68 72 65 66 3d 22 23 4d 65 6d 6f 72 79 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 r".href="#Memory">..</a></h2>...
c6fe0 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 5a 69 67 20 6c 61 6e 67 75 61 67 65 20 .....<p>.......The.Zig.language.
c7000 70 65 72 66 6f 72 6d 73 20 6e 6f 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 20 6f 6e performs.no.memory.management.on
c7020 20 62 65 68 61 6c 66 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 54 68 69 73 20 .behalf.of.the.programmer..This.
c7040 69 73 0a 20 20 20 20 20 20 77 68 79 20 5a 69 67 20 68 61 73 20 6e 6f 20 72 75 6e 74 69 6d 65 2c is.......why.Zig.has.no.runtime,
c7060 20 61 6e 64 20 77 68 79 20 5a 69 67 20 63 6f 64 65 20 77 6f 72 6b 73 20 73 65 61 6d 6c 65 73 73 .and.why.Zig.code.works.seamless
c7080 6c 79 20 69 6e 20 73 6f 20 6d 61 6e 79 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 73 2c 0a 20 20 20 20 ly.in.so.many.environments,.....
c70a0 20 20 69 6e 63 6c 75 64 69 6e 67 20 72 65 61 6c 2d 74 69 6d 65 20 73 6f 66 74 77 61 72 65 2c 20 ..including.real-time.software,.
c70c0 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 6b 65 72 6e 65 6c 73 2c 20 65 6d 62 65 64 64 operating.system.kernels,.embedd
c70e0 65 64 20 64 65 76 69 63 65 73 2c 20 61 6e 64 0a 20 20 20 20 20 20 6c 6f 77 20 6c 61 74 65 6e 63 ed.devices,.and.......low.latenc
c7100 79 20 73 65 72 76 65 72 73 2e 20 41 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 2c 20 5a 69 67 y.servers..As.a.consequence,.Zig
c7120 20 70 72 6f 67 72 61 6d 6d 65 72 73 20 6d 75 73 74 20 61 6c 77 61 79 73 20 62 65 20 61 62 6c 65 .programmers.must.always.be.able
c7140 20 74 6f 20 61 6e 73 77 65 72 0a 20 20 20 20 20 20 74 68 65 20 71 75 65 73 74 69 6f 6e 3a 0a 20 .to.answer.......the.question:..
c7160 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 61 20 68 72 65 66 3d 22 23 57 68 65 .....</p>.......<p><a.href="#Whe
c7180 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 74 68 65 20 re-are-the-bytes">Where.are.the.
c71a0 62 79 74 65 73 3f 3c 2f 61 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c bytes?</a></p>.......<p>.......L
c71c0 69 6b 65 20 5a 69 67 2c 20 74 68 65 20 43 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 ike.Zig,.the.C.programming.langu
c71e0 61 67 65 20 68 61 73 20 6d 61 6e 75 61 6c 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 age.has.manual.memory.management
c7200 2e 20 48 6f 77 65 76 65 72 2c 20 75 6e 6c 69 6b 65 20 5a 69 67 2c 0a 20 20 20 20 20 20 43 20 68 ..However,.unlike.Zig,.......C.h
c7220 61 73 20 61 20 64 65 66 61 75 6c 74 20 61 6c 6c 6f 63 61 74 6f 72 20 2d 20 3c 63 6f 64 65 3e 6d as.a.default.allocator.-.<code>m
c7240 61 6c 6c 6f 63 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 72 65 61 6c 6c 6f 63 3c 2f 63 6f 64 alloc</code>,.<code>realloc</cod
c7260 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 66 72 65 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 e>,.and.<code>free</code>.......
c7280 20 57 68 65 6e 20 6c 69 6e 6b 69 6e 67 20 61 67 61 69 6e 73 74 20 6c 69 62 63 2c 20 5a 69 67 20 .When.linking.against.libc,.Zig.
c72a0 65 78 70 6f 73 65 73 20 74 68 69 73 20 61 6c 6c 6f 63 61 74 6f 72 20 77 69 74 68 20 3c 63 6f 64 exposes.this.allocator.with.<cod
c72c0 65 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 2e 0a 20 e>std.heap.c_allocator</code>...
c72e0 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 74 68 65 .....However,.by.convention,.the
c7300 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 20 5a 69 re.is.no.default.allocator.in.Zi
c7320 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 65 65 64 g..Instead,.functions.which.need
c7340 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 3c 63 6f .to.......allocate.accept.an.<co
c7360 64 65 3e 41 6c 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 20 4c de>Allocator</code>.parameter..L
c7380 69 6b 65 77 69 73 65 2c 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 20 73 75 63 68 20 61 73 ikewise,.data.structures.such.as
c73a0 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 74 64 2e 41 72 72 61 79 4c 69 73 74 3c 2f 63 6f 64 65 .......<code>std.ArrayList</code
c73c0 3e 20 61 63 63 65 70 74 20 61 6e 20 3c 63 6f 64 65 3e 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 >.accept.an.<code>Allocator</cod
c73e0 65 3e 20 70 61 72 61 6d 65 74 65 72 20 69 6e 0a 20 20 20 20 20 20 74 68 65 69 72 20 69 6e 69 74 e>.parameter.in.......their.init
c7400 69 61 6c 69 7a 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e ialization.functions:.......</p>
c7420 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 .......<figure><figcaption.class
c7440 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 ="zig-cap"><cite.class="file">te
c7460 73 74 5f 61 6c 6c 6f 63 61 74 6f 72 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 st_allocator.zig</cite></figcapt
c7480 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ion><pre><code><span.class="tok-
c74a0 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
c74c0 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>(
c74e0 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&
c7500 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 2d quot;</span>);.<span.class="tok-
c7520 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 74 64 kw">const</span>.Allocator.=.std
c7540 2e 6d 65 6d 2e 41 6c 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 .mem.Allocator;.<span.class="tok
c7560 2d 6b 77 22 3e 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 -kw">const</span>.expect.=.std.t
c7580 65 73 74 69 6e 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 esting.expect;..<span.class="tok
c75a0 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
c75c0 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 75 73 69 6e 67 20 61 6e 20 61 6c 6c 6f 63 61 74 6f 72 26 k-str">&quot;using.an.allocator&
c75e0 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="
c7600 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 62 75 66 66 65 72 3a 20 5b 3c 73 70 61 tok-kw">var</span>.buffer:.[<spa
c7620 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 70 61 6e 3e 5d n.class="tok-number">100</span>]
c7640 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>
c7660 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
c7680 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 6b ned</span>;.....<span.class="tok
c76a0 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 66 62 61 20 3d 20 73 74 64 2e 68 65 61 70 2e 46 -kw">var</span>.fba.=.std.heap.F
c76c0 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 70 3b 62 75 ixedBufferAllocator.init(&amp;bu
c76e0 66 66 65 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 3e ffer);.....<span.class="tok-kw">
c7700 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 20 3d 20 66 62 61 2e 61 6c 6c const</span>.allocator.=.fba.all
c7720 6f 63 61 74 6f 72 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 6b ocator();.....<span.class="tok-k
c7740 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 63 w">const</span>.result.=.<span.c
c7760 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 63 6f 6e 63 61 74 28 lass="tok-kw">try</span>.concat(
c7780 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"
c77a0 3e 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 >&quot;foo&quot;</span>,.<span.c
c77c0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 62 61 72 26 71 75 6f 74 3b 3c 2f lass="tok-str">&quot;bar&quot;</
c77e0 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 6b 77 22 span>);.....<span.class="tok-kw"
c7800 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 65 78 70 65 63 74 28 73 74 64 2e 6d 65 6d 2e 65 71 6c 28 3c >try</span>.expect(std.mem.eql(<
c7820 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>,
c7840 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 6f .<span.class="tok-str">&quot;foo
c7860 62 61 72 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 72 65 73 75 6c 74 29 29 3b 0a 7d 0a 0a 3c bar&quot;</span>,.result));.}..<
c7880 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
c78a0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 63 6f 6e 63 61 74 3c 2f 73 70 61 6e 3e pan.class="tok-fn">concat</span>
c78c0 28 61 6c 6c 6f 63 61 74 6f 72 3a 20 41 6c 6c 6f 63 61 74 6f 72 2c 20 61 3a 20 5b 5d 3c 73 70 61 (allocator:.Allocator,.a:.[]<spa
c78e0 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
c7900 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>,.
c7920 62 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 b:.[]<span.class="tok-kw">const<
c7940 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
c7960 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 79 70 </span>).![]<span.class="tok-typ
c7980 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 3d 22 e">u8</span>.{.....<span.class="
c79a0 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 3c 73 tok-kw">const</span>.result.=.<s
c79c0 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 61 6c pan.class="tok-kw">try</span>.al
c79e0 6c 6f 63 61 74 6f 72 2e 61 6c 6c 6f 63 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 locator.alloc(<span.class="tok-t
c7a00 79 70 65 22 3e 75 38 3c 2f 73 70 61 6e 3e 2c 20 61 2e 6c 65 6e 20 2b 20 62 2e 6c 65 6e 29 3b 0a ype">u8</span>,.a.len.+.b.len);.
c7a20 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 6d ....<span.class="tok-builtin">@m
c7a40 65 6d 63 70 79 3c 2f 73 70 61 6e 3e 28 72 65 73 75 6c 74 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d emcpy</span>(result[<span.class=
c7a60 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 61 2e 6c 65 6e 5d 2c 20 61 "tok-number">0</span>..a.len],.a
c7a80 29 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 );.....<span.class="tok-builtin"
c7aa0 3e 40 6d 65 6d 63 70 79 3c 2f 73 70 61 6e 3e 28 72 65 73 75 6c 74 5b 61 2e 6c 65 6e 2e 2e 5d 2c >@memcpy</span>(result[a.len..],
c7ac0 20 62 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 .b);.....<span.class="tok-kw">re
c7ae0 74 75 72 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 turn</span>.result;.}</code></pr
c7b00 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 e></figure><figure><figcaption.c
c7b20 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 lass="shell-cap">Shell</figcapti
c7b40 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 on><pre><samp>$.<kbd>zig.test.te
c7b60 73 74 5f 61 6c 6c 6f 63 61 74 6f 72 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f st_allocator.zig</kbd>.1/1.test_
c7b80 61 6c 6c 6f 63 61 74 6f 72 2e 74 65 73 74 2e 75 73 69 6e 67 20 61 6e 20 61 6c 6c 6f 63 61 74 6f allocator.test.using.an.allocato
c7ba0 72 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 r....OK.All.1.tests.passed..</sa
c7bc0 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 mp></pre></figure>.......<p>....
c7be0 20 20 20 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 ...In.the.above.example,.100.byt
c7c00 65 73 20 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 es.of.stack.memory.are.used.to.i
c7c20 6e 69 74 69 61 6c 69 7a 65 20 61 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 46 69 78 65 64 42 75 66 nitialize.a.......<code>FixedBuf
c7c40 66 65 72 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2c 20 77 68 69 63 68 20 69 73 20 74 68 ferAllocator</code>,.which.is.th
c7c60 65 6e 20 70 61 73 73 65 64 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 41 en.passed.to.a.function........A
c7c80 73 20 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 74 68 65 72 65 20 69 73 20 61 20 67 6c 6f 62 61 s.a.convenience.there.is.a.globa
c7ca0 6c 20 3c 63 6f 64 65 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 l.<code>FixedBufferAllocator</co
c7cc0 64 65 3e 0a 20 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 71 75 69 63 6b 20 74 65 de>.......available.for.quick.te
c7ce0 73 74 73 20 61 74 20 3c 63 6f 64 65 3e 73 74 64 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 sts.at.<code>std.testing.allocat
c7d00 6f 72 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 77 69 6c 6c 20 61 6c 73 6f or</code>,.......which.will.also
c7d20 20 70 65 72 66 6f 72 6d 20 62 61 73 69 63 20 6c 65 61 6b 20 64 65 74 65 63 74 69 6f 6e 2e 0a 20 .perform.basic.leak.detection...
c7d40 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 68 61 .....</p>.......<p>.......Zig.ha
c7d60 73 20 61 20 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 20 61 76 s.a.general.purpose.allocator.av
c7d80 61 69 6c 61 62 6c 65 20 74 6f 20 62 65 20 69 6d 70 6f 72 74 65 64 0a 20 20 20 20 20 20 77 69 74 ailable.to.be.imported.......wit
c7da0 68 20 3c 63 6f 64 65 3e 73 74 64 2e 68 65 61 70 2e 47 65 6e 65 72 61 6c 50 75 72 70 6f 73 65 41 h.<code>std.heap.GeneralPurposeA
c7dc0 6c 6c 6f 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 69 73 20 llocator</code>..However,.it.is.
c7de0 73 74 69 6c 6c 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 6c 6f still.recommended.to.......follo
c7e00 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 6c 6f w.the.<a.href="#Choosing-an-Allo
c7e20 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 61 3e cator">Choosing.an.Allocator</a>
c7e40 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 33 20 69 64 .guide........</p>........<h3.id
c7e60 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 65 66 ="Choosing-an-Allocator"><a.href
c7e80 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 68 6f 6f 73 69 6e 67 2d 61 6e 2d 41 6c 6c 6f ="nav.xhtml#toc-Choosing-an-Allo
c7ea0 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 61 3e cator">Choosing.an.Allocator</a>
c7ec0 20 3c 61 20 63 6c 61 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 .<a.class="hdr".href="#Choosing-
c7ee0 61 6e 2d 41 6c 6c 6f 63 61 74 6f 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 an-Allocator">..</a></h3>.......
c7f00 20 3c 70 3e 57 68 61 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 .<p>What.allocator.to.use.depend
c7f20 73 20 6f 6e 20 61 20 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 s.on.a.number.of.factors..Here.i
c7f40 73 20 61 20 66 6c 6f 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 s.a.flow.chart.to.help.you.decid
c7f60 65 3a 0a 20 20 20 20 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 e:.......</p>.......<ol>........
c7f80 20 20 20 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 6d 61 ...<li>...............Are.you.ma
c7fa0 6b 69 6e 67 20 61 20 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 king.a.library?.In.this.case,.be
c7fc0 73 74 20 74 6f 20 61 63 63 65 70 74 20 61 6e 20 3c 63 6f 64 65 3e 41 6c 6c 6f 63 61 74 6f 72 3c st.to.accept.an.<code>Allocator<
c7fe0 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 70 61 72 61 6d 65 /code>...............as.a.parame
c8000 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 27 73 20 75 73 65 ter.and.allow.your.library's.use
c8020 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 72 20 74 6f 20 75 rs.to.decide.what.allocator.to.u
c8040 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 20 20 20 20 3c 6c se............</li>...........<l
c8060 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 20 74 68 69 73 20 i>Are.you.linking.libc?.In.this.
c8080 63 61 73 65 2c 20 3c 63 6f 64 65 3e 73 74 64 2e 68 65 61 70 2e 63 5f 61 6c 6c 6f 63 61 74 6f 72 case,.<code>std.heap.c_allocator
c80a0 3c 2f 63 6f 64 65 3e 20 69 73 20 6c 69 6b 65 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 </code>.is.likely...............
c80c0 74 68 65 20 72 69 67 68 74 20 63 68 6f 69 63 65 2c 20 61 74 20 6c 65 61 73 74 20 66 6f 72 20 79 the.right.choice,.at.least.for.y
c80e0 6f 75 72 20 6d 61 69 6e 20 61 6c 6c 6f 63 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 our.main.allocator.</li>........
c8100 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 73 20 74 68 65 20 6d 61 78 ...<li>...............Is.the.max
c8120 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 74 68 61 74 20 79 6f 75 20 77 69 imum.number.of.bytes.that.you.wi
c8140 6c 6c 20 6e 65 65 64 20 62 6f 75 6e 64 65 64 20 62 79 20 61 20 6e 75 6d 62 65 72 20 6b 6e 6f 77 ll.need.bounded.by.a.number.know
c8160 6e 20 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d n.at...............<a.href="#com
c8180 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3f 20 49 6e 20 74 68 69 73 20 63 61 73 ptime">comptime</a>?.In.this.cas
c81a0 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 73 74 64 2e 68 65 61 70 2e 46 69 78 65 64 42 75 66 66 65 e,.use.<code>std.heap.FixedBuffe
c81c0 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 20 rAllocator</code>.or............
c81e0 20 20 20 3c 63 6f 64 65 3e 73 74 64 2e 68 65 61 70 2e 54 68 72 65 61 64 53 61 66 65 46 69 78 65 ...<code>std.heap.ThreadSafeFixe
c8200 64 42 75 66 66 65 72 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 64 65 70 65 6e 64 69 6e dBufferAllocator</code>.dependin
c8220 67 20 6f 6e 20 77 68 65 74 68 65 72 20 79 6f 75 20 6e 65 65 64 0a 20 20 20 20 20 20 20 20 20 20 g.on.whether.you.need...........
c8240 20 20 20 20 74 68 72 65 61 64 2d 73 61 66 65 74 79 20 6f 72 20 6e 6f 74 2e 0a 20 20 20 20 20 20 ....thread-safety.or.not........
c8260 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>........
c8280 20 20 20 20 20 20 20 49 73 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 20 61 20 63 6f 6d 6d 61 6e 64 .......Is.your.program.a.command
c82a0 20 6c 69 6e 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 77 68 69 63 68 20 72 75 6e 73 20 66 72 6f .line.application.which.runs.fro
c82c0 6d 20 73 74 61 72 74 20 74 6f 20 65 6e 64 20 77 69 74 68 6f 75 74 20 61 6e 79 20 66 75 6e 64 61 m.start.to.end.without.any.funda
c82e0 6d 65 6e 74 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 63 6c 69 63 61 6c 20 70 61 mental...............cyclical.pa
c8300 74 74 65 72 6e 20 28 73 75 63 68 20 61 73 20 61 20 76 69 64 65 6f 20 67 61 6d 65 20 6d 61 69 6e ttern.(such.as.a.video.game.main
c8320 20 6c 6f 6f 70 2c 20 6f 72 20 61 20 77 65 62 20 73 65 72 76 65 72 20 72 65 71 75 65 73 74 20 68 .loop,.or.a.web.server.request.h
c8340 61 6e 64 6c 65 72 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 75 63 68 20 74 68 61 74 andler),...............such.that
c8360 20 69 74 20 77 6f 75 6c 64 20 6d 61 6b 65 20 73 65 6e 73 65 20 74 6f 20 66 72 65 65 20 65 76 65 .it.would.make.sense.to.free.eve
c8380 72 79 74 68 69 6e 67 20 61 74 20 6f 6e 63 65 20 61 74 20 74 68 65 20 65 6e 64 3f 0a 20 20 20 20 rything.at.once.at.the.end?.....
c83a0 20 20 20 20 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 69 74 20 69 73 20 72 65 ..........In.this.case,.it.is.re
c83c0 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 66 6f 6c 6c 6f 77 20 74 68 69 73 20 70 61 74 74 65 72 6e commended.to.follow.this.pattern
c83e0 3a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 :.......<figure><figcaption.clas
c8400 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 s="zig-cap"><cite.class="file">c
c8420 6c 69 5f 61 6c 6c 6f 63 61 74 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 li_allocation.zig</cite></figcap
c8440 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b tion><pre><code><span.class="tok
c8460 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
c8480 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>
c84a0 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
c84c0 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
c84e0 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
c8500 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
c8520 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 6c 61 73 73 3d -fn">main</span>().!<span.class=
c8540 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
c8560 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 72 65 an.class="tok-kw">var</span>.are
c8580 6e 61 20 3d 20 73 74 64 2e 68 65 61 70 2e 41 72 65 6e 61 41 6c 6c 6f 63 61 74 6f 72 2e 69 6e 69 na.=.std.heap.ArenaAllocator.ini
c85a0 74 28 73 74 64 2e 68 65 61 70 2e 70 61 67 65 5f 61 6c 6c 6f 63 61 74 6f 72 29 3b 0a 20 20 20 20 t(std.heap.page_allocator);.....
c85c0 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 2f 73 70 61 6e <span.class="tok-kw">defer</span
c85e0 3e 20 61 72 65 6e 61 2e 64 65 69 6e 69 74 28 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 >.arena.deinit();......<span.cla
c8600 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
c8620 6f 72 20 3d 20 61 72 65 6e 61 2e 61 6c 6c 6f 63 61 74 6f 72 28 29 3b 0a 0a 20 20 20 20 3c 73 70 or.=.arena.allocator();......<sp
c8640 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
c8660 74 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 3c 2f 73 tr.=.<span.class="tok-kw">try</s
c8680 70 61 6e 3e 20 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 65 61 74 65 28 3c 73 70 61 6e 20 63 6c 61 73 pan>.allocator.create(<span.clas
c86a0 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 73 74 s="tok-type">i32</span>);.....st
c86c0 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 d.debug.print(<span.class="tok-s
c86e0 74 72 22 3e 26 71 75 6f 74 3b 70 74 72 3d 7b 2a 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e tr">&quot;ptr={*}\n&quot;</span>
c8700 2c 20 2e 7b 70 74 72 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 ,..{ptr});.}</code></pre></figur
c8720 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
c8740 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
c8760 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 63 6c 69 5f 61 6c samp>$.<kbd>zig.build-exe.cli_al
c8780 6c 6f 63 61 74 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 63 6c 69 5f location.zig</kbd>.$.<kbd>./cli_
c87a0 61 6c 6c 6f 63 61 74 69 6f 6e 3c 2f 6b 62 64 3e 0a 70 74 72 3d 69 33 32 40 37 66 62 37 39 66 63 allocation</kbd>.ptr=i32@7fb79fc
c87c0 37 32 30 31 30 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 72010.</samp></pre></figure>....
c87e0 20 20 20 20 20 20 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 ...........When.using.this.kind.
c8800 6f 66 20 61 6c 6c 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 of.allocator,.there.is.no.need.t
c8820 6f 20 66 72 65 65 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 o.free.anything.manually..Everyt
c8840 68 69 6e 67 0a 20 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 hing...............gets.freed.at
c8860 20 6f 6e 63 65 20 77 69 74 68 20 74 68 65 20 63 61 6c 6c 20 74 6f 20 3c 63 6f 64 65 3e 61 72 65 .once.with.the.call.to.<code>are
c8880 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 20 20 20 20 3c 2f na.deinit()</code>............</
c88a0 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 20 20 20 li>...........<li>..............
c88c0 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 6f 66 20 61 20 63 .Are.the.allocations.part.of.a.c
c88e0 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 76 69 64 65 6f 20 yclical.pattern.such.as.a.video.
c8900 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 20 20 20 20 20 20 game.main.loop,.or.a.web........
c8920 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 6c 65 72 3f 20 49 .......server.request.handler?.I
c8940 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 62 65 20 66 72 65 f.the.allocations.can.all.be.fre
c8960 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 74 68 65 20 63 79 ed.at.once,.at.the.end.of.the.cy
c8980 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 6d 70 6c 65 20 6f cle,...............for.example.o
c89a0 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 61 73 20 62 65 65 nce.the.video.game.frame.has.bee
c89c0 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 65 62 20 73 65 72 n.fully.rendered,.or.the.web.ser
c89e0 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 20 20 20 20 62 65 ver.request.has...............be
c8a00 65 6e 20 73 65 72 76 65 64 2c 20 74 68 65 6e 20 3c 63 6f 64 65 3e 73 74 64 2e 68 65 61 70 2e 41 en.served,.then.<code>std.heap.A
c8a20 72 65 6e 61 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 67 72 65 61 74 20 renaAllocator</code>.is.a.great.
c8a40 63 61 6e 64 69 64 61 74 65 2e 20 41 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6d 6f candidate..As...............demo
c8a60 6e 73 74 72 61 74 65 64 20 69 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 62 75 6c 6c 65 74 20 nstrated.in.the.previous.bullet.
c8a80 70 6f 69 6e 74 2c 20 74 68 69 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 66 72 65 65 20 65 point,.this.allows.you.to.free.e
c8aa0 6e 74 69 72 65 20 61 72 65 6e 61 73 20 61 74 20 6f 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 ntire.arenas.at.once............
c8ac0 20 20 20 20 4e 6f 74 65 20 61 6c 73 6f 20 74 68 61 74 20 69 66 20 61 6e 20 75 70 70 65 72 20 62 ....Note.also.that.if.an.upper.b
c8ae0 6f 75 6e 64 20 6f 66 20 6d 65 6d 6f 72 79 20 63 61 6e 20 62 65 20 65 73 74 61 62 6c 69 73 68 65 ound.of.memory.can.be.establishe
c8b00 64 2c 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 74 64 2e d,.then...............<code>std.
c8b20 68 65 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 heap.FixedBufferAllocator</code>
c8b40 20 63 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 .can.be.used.as.a.further.optimi
c8b60 7a 61 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 zation............</li>.........
c8b80 20 20 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 ..<li>...............Are.you.wri
c8ba0 74 69 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 ting.a.test,.and.you.want.to.mak
c8bc0 65 20 73 75 72 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 e.sure.<code><span.class="tok-kw
c8be0 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 3c 2f 63 6f 64 65 ">error</span>.OutOfMemory</code
c8c00 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 68 61 6e 64 6c 65 64 20 63 6f 72 72 65 >...............is.handled.corre
c8c20 63 74 6c 79 3f 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 73 74 ctly?.In.this.case,.use.<code>st
c8c40 64 2e 74 65 73 74 69 6e 67 2e 46 61 69 6c 69 6e 67 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 d.testing.FailingAllocator</code
c8c60 3e 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 3c 6c 69 >............</li>...........<li
c8c80 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 6e 67 20 >...............Are.you.writing.
c8ca0 61 20 74 65 73 74 3f 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e a.test?.In.this.case,.use.<code>
c8cc0 73 74 64 2e 74 65 73 74 69 6e 67 2e 61 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 std.testing.allocator</code>....
c8ce0 20 20 20 20 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 ........</li>...........<li>....
c8d00 20 20 20 20 20 20 20 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 ...........Finally,.if.none.of.t
c8d20 68 65 20 61 62 6f 76 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 he.above.apply,.you.need.a.gener
c8d40 61 6c 20 70 75 72 70 6f 73 65 20 61 6c 6c 6f 63 61 74 6f 72 2e 0a 20 20 20 20 20 20 20 20 20 20 al.purpose.allocator............
c8d60 20 20 20 20 5a 69 67 27 73 20 67 65 6e 65 72 61 6c 20 70 75 72 70 6f 73 65 20 61 6c 6c 6f 63 61 ....Zig's.general.purpose.alloca
c8d80 74 6f 72 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 tor.is.available.as.a.function.t
c8da0 68 61 74 20 74 61 6b 65 73 20 61 20 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e hat.takes.a.<a.href="#comptime">
c8dc0 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 comptime</a>...............<a.hr
c8de0 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 20 6f 66 20 63 6f 6e 66 69 ef="#struct">struct</a>.of.confi
c8e00 67 75 72 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 74 guration.options.and.returns.a.t
c8e20 79 70 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 65 6e 65 72 61 6c 6c 79 2c 20 79 6f ype................Generally,.yo
c8e40 75 20 77 69 6c 6c 20 73 65 74 20 75 70 20 6f 6e 65 20 3c 63 6f 64 65 3e 73 74 64 2e 68 65 61 70 u.will.set.up.one.<code>std.heap
c8e60 2e 47 65 6e 65 72 61 6c 50 75 72 70 6f 73 65 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 20 .GeneralPurposeAllocator</code>.
c8e80 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 6f 75 72 20 6d 61 69 6e 20 66 75 6e 63 74 in...............your.main.funct
c8ea0 69 6f 6e 2c 20 61 6e 64 20 74 68 65 6e 20 70 61 73 73 20 69 74 20 6f 72 20 73 75 62 2d 61 6c 6c ion,.and.then.pass.it.or.sub-all
c8ec0 6f 63 61 74 6f 72 73 20 61 72 6f 75 6e 64 20 74 6f 20 76 61 72 69 6f 75 73 20 70 61 72 74 73 20 ocators.around.to.various.parts.
c8ee0 6f 66 20 79 6f 75 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f of.your...............applicatio
c8f00 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 3c 6c 69 n............</li>...........<li
c8f20 3e 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 6f 6e >...............You.can.also.con
c8f40 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 6e 2d sider.<a.href="#Implementing-an-
c8f60 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 6f 63 Allocator">Implementing.an.Alloc
c8f80 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 20 20 ator</a>............</li>.......
c8fa0 3c 2f 6f 6c 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 57 68 65 72 </ol>...............<h3.id="Wher
c8fc0 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 6e 61 76 2e 78 68 e-are-the-bytes"><a.href="nav.xh
c8fe0 74 6d 6c 23 74 6f 63 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 tml#toc-Where-are-the-bytes">Whe
c9000 72 65 20 61 72 65 20 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 re.are.the.bytes?</a>.<a.class="
c9020 68 64 72 22 20 68 72 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 hdr".href="#Where-are-the-bytes"
c9040 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 74 72 69 6e 67 20 6c 69 >..</a></h3>........<p>String.li
c9060 74 65 72 61 6c 73 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 terals.such.as.<code><span.class
c9080 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
c90a0 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 63 6f 6e an></code>.are.in.the.global.con
c90c0 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 73 20 69 stant.data.section........This.i
c90e0 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 61 20 73 s.why.it.is.an.error.to.pass.a.s
c9100 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 69 63 65 tring.literal.to.a.mutable.slice
c9120 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 20 3c 66 ,.like.this:.......</p>.......<f
c9140 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 igure><figcaption.class="zig-cap
c9160 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 74 72 69 6e 67 "><cite.class="file">test_string
c9180 5f 6c 69 74 65 72 61 6c 5f 74 6f 5f 73 6c 69 63 65 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 _literal_to_slice.zig</cite></fi
c91a0 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
c91c0 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="
c91e0 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
c9200 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.
c9220 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>.{..
c9240 20 20 20 5f 20 3d 20 73 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ..._.=.s;.}..<span.class="tok-kw
c9260 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
c9280 74 72 22 3e 26 71 75 6f 74 3b 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 74 6f 20 6d 75 74 61 tr">&quot;string.literal.to.muta
c92a0 62 6c 65 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 20 66 6f 6f ble.slice&quot;</span>.{.....foo
c92c0 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 68 65 6c (<span.class="tok-str">&quot;hel
c92e0 6c 6f 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 70 72 65 3e lo&quot;</span>);.}</code></pre>
c9300 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 </figure><figure><figcaption.cla
c9320 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e ss="shell-cap">Shell</figcaption
c9340 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 ><pre><samp>$.<kbd>zig.test.test
c9360 5f 73 74 72 69 6e 67 5f 6c 69 74 65 72 61 6c 5f 74 6f 5f 73 6c 69 63 65 2e 7a 69 67 3c 2f 6b 62 _string_literal_to_slice.zig</kb
c9380 64 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 d>.<span.class="sgr-1m">docgen_t
c93a0 6d 70 2f 74 65 73 74 5f 73 74 72 69 6e 67 5f 6c 69 74 65 72 61 6c 5f 74 6f 5f 73 6c 69 63 65 2e mp/test_string_literal_to_slice.
c93c0 7a 69 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 73 67 72 zig:6:9:.</span><span.class="sgr
c93e0 2d 33 31 6d 22 3e 65 72 72 6f 72 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d -31m">error:.</span><span.class=
c9400 22 73 67 72 2d 31 6d 22 3e 65 78 70 65 63 74 65 64 20 74 79 70 65 20 27 5b 5d 75 38 27 2c 20 66 "sgr-1m">expected.type.'[]u8',.f
c9420 6f 75 6e 64 20 27 2a 63 6f 6e 73 74 20 5b 35 3a 30 5d 75 38 27 0a 3c 2f 73 70 61 6e 3e 20 20 20 ound.'*const.[5:0]u8'.</span>...
c9440 20 66 6f 6f 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 .foo(&quot;hello&quot;);........
c9460 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 7e 7e 7e 0a 3c .<span.class="sgr-32m">^~~~~~~.<
c9480 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 64 6f 63 67 65 /span><span.class="sgr-1m">docge
c94a0 6e 5f 74 6d 70 2f 74 65 73 74 5f 73 74 72 69 6e 67 5f 6c 69 74 65 72 61 6c 5f 74 6f 5f 73 6c 69 n_tmp/test_string_literal_to_sli
c94c0 63 65 2e 7a 69 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 ce.zig:6:9:.</span><span.class="
c94e0 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 sgr-36m">note:.</span><span.clas
c9500 73 3d 22 73 67 72 2d 31 6d 22 3e 63 61 73 74 20 64 69 73 63 61 72 64 73 20 63 6f 6e 73 74 20 71 s="sgr-1m">cast.discards.const.q
c9520 75 61 6c 69 66 69 65 72 0a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 ualifier.</span><span.class="sgr
c9540 2d 31 6d 22 3e 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 5f 73 74 72 69 6e 67 5f 6c 69 74 65 -1m">docgen_tmp/test_string_lite
c9560 72 61 6c 5f 74 6f 5f 73 6c 69 63 65 2e 7a 69 67 3a 31 3a 31 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 ral_to_slice.zig:1:11:.</span><s
c9580 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 36 6d 22 3e 6e 6f 74 65 3a 20 3c 2f 73 70 61 6e pan.class="sgr-36m">note:.</span
c95a0 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 73 67 72 2d 31 6d 22 3e 70 61 72 61 6d 65 74 65 72 20 ><span.class="sgr-1m">parameter.
c95c0 74 79 70 65 20 64 65 63 6c 61 72 65 64 20 68 65 72 65 0a 3c 2f 73 70 61 6e 3e 66 6e 20 66 6f 6f type.declared.here.</span>fn.foo
c95e0 28 73 3a 20 5b 5d 75 38 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e (s:.[]u8).void.{...........<span
c9600 20 63 6c 61 73 73 3d 22 73 67 72 2d 33 32 6d 22 3e 5e 7e 7e 7e 0a 3c 2f 73 70 61 6e 3e 0a 3c 2f .class="sgr-32m">^~~~.</span>.</
c9620 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 48 6f samp></pre></figure>.......<p>Ho
c9640 77 65 76 65 72 20 69 66 20 79 6f 75 20 6d 61 6b 65 20 74 68 65 20 73 6c 69 63 65 20 63 6f 6e 73 wever.if.you.make.the.slice.cons
c9660 74 61 6e 74 2c 20 74 68 65 6e 20 69 74 20 77 6f 72 6b 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c tant,.then.it.works:</p>.......<
c9680 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 figure><figcaption.class="zig-ca
c96a0 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 73 74 72 69 6e p"><cite.class="file">test_strin
c96c0 67 5f 6c 69 74 65 72 61 6c 5f 74 6f 5f 63 6f 6e 73 74 5f 73 6c 69 63 65 2e 7a 69 67 3c 2f 63 69 g_literal_to_const_slice.zig</ci
c96e0 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
c9700 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.
c9720 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 3a 20 5b 5d 3c class="tok-fn">foo</span>(s:.[]<
c9740 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>
c9760 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
c9780 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</
c97a0 73 70 61 6e 3e 20 7b 0a 20 20 20 20 5f 20 3d 20 73 3b 0a 7d 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 span>.{....._.=.s;.}..<span.clas
c97c0 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
c97e0 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
c9800 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>
c9820 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"
c9840 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
c9860 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ode></pre></figure><figure><figc
c9880 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
c98a0 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
c98c0 20 74 65 73 74 20 74 65 73 74 5f 73 74 72 69 6e 67 5f 6c 69 74 65 72 61 6c 5f 74 6f 5f 63 6f 6e .test.test_string_literal_to_con
c98e0 73 74 5f 73 6c 69 63 65 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 73 74 72 69 st_slice.zig</kbd>.1/1.test_stri
c9900 6e 67 5f 6c 69 74 65 72 61 6c 5f 74 6f 5f 63 6f 6e 73 74 5f 73 6c 69 63 65 2e 74 65 73 74 2e 73 ng_literal_to_const_slice.test.s
c9920 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 74 6f 20 63 6f 6e 73 74 61 6e 74 20 73 6c 69 63 65 2e tring.literal.to.constant.slice.
c9940 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 ...OK.All.1.tests.passed..</samp
c9960 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 ></pre></figure>.......<p>......
c9980 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 3c 63 6f 64 .Just.like.string.literals,.<cod
c99a0 65 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 e><span.class="tok-kw">const</sp
c99c0 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 77 68 65 6e 20 74 68 an></code>.declarations,.when.th
c99e0 65 20 76 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 e.value.is.known.at.<a.href="#co
c9a00 6d 70 74 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 mptime">comptime</a>,.......are.
c9a20 73 74 6f 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 stored.in.the.global.constant.da
c9a40 74 61 20 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 ta.section..Also.<a.href="#Compi
c9a60 6c 65 2d 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 le-Time-Variables">Compile.Time.
c9a80 56 61 72 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 Variables</a>.are.stored.......i
c9aa0 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 73 65 63 74 69 n.the.global.constant.data.secti
c9ac0 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 20 20 3c on........</p>.......<p>.......<
c9ae0 63 6f 64 65 3e 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 code><span.class="tok-kw">var</s
c9b00 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 69 6e 73 69 64 65 20 pan></code>.declarations.inside.
c9b20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 66 75 6e 63 functions.are.stored.in.the.func
c9b40 74 69 6f 6e 27 73 20 73 74 61 63 6b 20 66 72 61 6d 65 2e 20 4f 6e 63 65 20 61 20 66 75 6e 63 74 tion's.stack.frame..Once.a.funct
c9b60 69 6f 6e 20 72 65 74 75 72 6e 73 2c 0a 20 20 20 20 20 20 61 6e 79 20 3c 61 20 68 72 65 66 3d 22 ion.returns,.......any.<a.href="
c9b80 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 74 6f 20 76 61 72 69 61 #Pointers">Pointers</a>.to.varia
c9ba0 62 6c 65 73 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 27 73 20 73 74 61 63 6b 20 66 72 61 bles.in.the.function's.stack.fra
c9bc0 6d 65 20 62 65 63 6f 6d 65 20 69 6e 76 61 6c 69 64 20 72 65 66 65 72 65 6e 63 65 73 2c 20 61 6e me.become.invalid.references,.an
c9be0 64 0a 20 20 20 20 20 20 64 65 72 65 66 65 72 65 6e 63 69 6e 67 20 74 68 65 6d 20 62 65 63 6f 6d d.......dereferencing.them.becom
c9c00 65 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 66 69 6e 65 64 es.unchecked.<a.href="#Undefined
c9c20 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 2f 61 -Behavior">Undefined.Behavior</a
c9c40 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 3c 63 >........</p>.......<p>.......<c
c9c60 6f 64 65 3e 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 ode><span.class="tok-kw">var</sp
c9c80 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 74 20 74 68 65 20 74 an></code>.declarations.at.the.t
c9ca0 6f 70 20 6c 65 76 65 6c 20 6f 72 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 op.level.or.in.<a.href="#struct"
c9cc0 3e 73 74 72 75 63 74 3c 2f 61 3e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 72 65 20 73 74 6f >struct</a>.declarations.are.sto
c9ce0 72 65 64 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 0a 20 20 20 20 20 20 64 61 74 61 20 73 65 63 red.in.the.global.......data.sec
c9d00 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 20 tion........</p>.......<p>......
c9d20 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 65 .The.location.of.memory.allocate
c9d40 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 61 6c 6c 6f 63 61 74 6f 72 2e 61 6c 6c 6f 63 3c 2f 63 6f d.with.<code>allocator.alloc</co
c9d60 64 65 3e 20 6f 72 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 61 6c 6c 6f 63 61 74 6f 72 2e 63 72 65 de>.or.......<code>allocator.cre
c9d80 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 62 79 20 74 68 65 20 ate</code>.is.determined.by.the.
c9da0 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 6e 2e 0a 20 20 20 20 allocator's.implementation......
c9dc0 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 74 68 72 65 61 64 20 6c 6f 63 ..</p>.......<p>TODO:.thread.loc
c9de0 61 6c 20 76 61 72 69 61 62 6c 65 73 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c al.variables</p>...............<
c9e00 68 33 20 69 64 3d 22 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 h3.id="Implementing-an-Allocator
c9e20 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6d 70 6c 65 6d 65 "><a.href="nav.xhtml#toc-Impleme
c9e40 6e 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 nting-an-Allocator">Implementing
c9e60 20 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 .an.Allocator</a>.<a.class="hdr"
c9e80 20 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 .href="#Implementing-an-Allocato
c9ea0 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 70 72 6f r">..</a></h3>........<p>Zig.pro
c9ec0 67 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 grammers.can.implement.their.own
c9ee0 20 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 .allocators.by.fulfilling.the.Al
c9f00 6c 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 locator.interface........In.orde
c9f20 72 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 r.to.do.this.one.must.read.caref
c9f40 75 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 ully.the.documentation.comments.
c9f60 69 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 in.std/mem.zig.and.......then.su
c9f80 70 70 6c 79 20 61 20 3c 63 6f 64 65 3e 61 6c 6c 6f 63 46 6e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 pply.a.<code>allocFn</code>.and.
c9fa0 61 20 3c 63 6f 64 65 3e 72 65 73 69 7a 65 46 6e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c a.<code>resizeFn</code>........<
c9fc0 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 6d 61 /p>.......<p>.......There.are.ma
c9fe0 6e 79 20 65 78 61 6d 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 ny.example.allocators.to.look.at
ca000 20 66 6f 72 20 69 6e 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 .for.inspiration..Look.at.std/he
ca020 61 70 2e 7a 69 67 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 74 64 2e 68 65 61 70 2e ap.zig.and.......<code>std.heap.
ca040 47 65 6e 65 72 61 6c 50 75 72 70 6f 73 65 41 6c 6c 6f 63 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 0a GeneralPurposeAllocator</code>..
ca060 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 33 20 69 64 3d ......</p>...............<h3.id=
ca080 22 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 "Heap-Allocation-Failure"><a.hre
ca0a0 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 48 65 61 70 2d 41 6c 6c 6f 63 61 74 69 6f 6e f="nav.xhtml#toc-Heap-Allocation
ca0c0 2d 46 61 69 6c 75 72 65 22 3e 48 65 61 70 20 41 6c 6c 6f 63 61 74 69 6f 6e 20 46 61 69 6c 75 72 -Failure">Heap.Allocation.Failur
ca0e0 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 48 65 61 70 e</a>.<a.class="hdr".href="#Heap
ca100 2d 41 6c 6c 6f 63 61 74 69 6f 6e 2d 46 61 69 6c 75 72 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e -Allocation-Failure">..</a></h3>
ca120 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4d 61 6e 79 20 70 72 6f 67 72 61 6d 6d 69 ........<p>.......Many.programmi
ca140 6e 67 20 6c 61 6e 67 75 61 67 65 73 20 63 68 6f 6f 73 65 20 74 6f 20 68 61 6e 64 6c 65 20 74 68 ng.languages.choose.to.handle.th
ca160 65 20 70 6f 73 73 69 62 69 6c 69 74 79 20 6f 66 20 68 65 61 70 20 61 6c 6c 6f 63 61 74 69 6f 6e e.possibility.of.heap.allocation
ca180 20 66 61 69 6c 75 72 65 20 62 79 0a 20 20 20 20 20 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c .failure.by.......unconditionall
ca1a0 79 20 63 72 61 73 68 69 6e 67 2e 20 42 79 20 63 6f 6e 76 65 6e 74 69 6f 6e 2c 20 5a 69 67 20 70 y.crashing..By.convention,.Zig.p
ca1c0 72 6f 67 72 61 6d 6d 65 72 73 20 64 6f 20 6e 6f 74 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 20 rogrammers.do.not.consider.this.
ca1e0 74 6f 20 62 65 20 61 0a 20 20 20 20 20 20 73 61 74 69 73 66 61 63 74 6f 72 79 20 73 6f 6c 75 74 to.be.a.......satisfactory.solut
ca200 69 6f 6e 2e 20 49 6e 73 74 65 61 64 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ion..Instead,.<code><span.class=
ca220 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 6f 72 "tok-kw">error</span>.OutOfMemor
ca240 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 20 61 y</code>.represents.......heap.a
ca260 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 72 61 llocation.failure,.and.Zig.libra
ca280 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 65 6e ries.return.this.error.code.when
ca2a0 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 6c 75 ever.heap.allocation.......failu
ca2c0 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 20 63 re.prevented.an.operation.from.c
ca2e0 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 3c 2f ompleting.successfully........</
ca300 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 72 67 p>.......<p>.......Some.have.arg
ca320 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 67 20 ued.that.because.some.operating.
ca340 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 6f 72 systems.such.as.Linux.have.memor
ca360 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 64 65 y.overcommit.enabled.by.......de
ca380 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 6c 65 fault,.it.is.pointless.to.handle
ca3a0 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 65 20 .heap.allocation.failure..There.
ca3c0 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 61 73 are.many.problems.with.this.reas
ca3e0 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 20 20 oning:.......</p>.......<ul>....
ca400 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 20 73 .......<li>Only.some.operating.s
ca420 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 75 72 ystems.have.an.overcommit.featur
ca440 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 20 20 e................<ul>...........
ca460 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 65 64 ........<li>Linux.has.it.enabled
ca480 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 72 61 .by.default,.but.it.is.configura
ca4a0 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 69 3e ble.</li>...................<li>
ca4c0 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 6c 69 Windows.does.not.overcommit.</li
ca4e0 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 65 64 >...................<li>Embedded
ca500 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 74 2e .systems.do.not.have.overcommit.
ca520 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 62 62 </li>...................<li>Hobb
ca540 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 20 6e y.operating.systems.may.or.may.n
ca560 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 20 20 ot.have.overcommit.</li>........
ca580 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 20 20 .......</ul>...........</li>....
ca5a0 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 72 65 .......<li>...............For.re
ca5c0 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 68 65 al-time.systems,.not.only.is.the
ca5e0 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 79 20 re.no.overcommit,.but.typically.
ca600 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 20 20 the.maximum.amount..............
ca620 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 64 65 .of.memory.per.application.is.de
ca640 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 20 20 termined.ahead.of.time..........
ca660 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 20 20 ..</li>...........<li>..........
ca680 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 6e 65 .....When.writing.a.library,.one
ca6a0 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 73 65 .of.the.main.goals.is.code.reuse
ca6c0 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 20 20 ..By.making.code.handle.........
ca6e0 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 63 74 ......allocation.failure.correct
ca700 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 20 74 ly,.a.library.becomes.eligible.t
ca720 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 6f 72 o.be.reused.in...............mor
ca740 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 20 20 e.contexts............</li>.....
ca760 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 75 67 ......<li>...............Althoug
ca780 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 65 70 h.some.software.has.grown.to.dep
ca7a0 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 64 2c end.on.overcommit.being.enabled,
ca7c0 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 73 20 .its.existence...............is.
ca7e0 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 78 70 the.source.of.countless.user.exp
ca800 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 65 6d erience.disasters..When.a.system
ca820 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 20 20 .with.overcommit.enabled,.......
ca840 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 6c 74 ........such.as.Linux.on.default
ca860 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 72 79 .settings,.comes.close.to.memory
ca880 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 75 70 .exhaustion,.the.system.locks.up
ca8a0 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 73 61 ...............and.becomes.unusa
ca8c0 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 6c 6c ble..At.this.point,.the.OOM.Kill
ca8e0 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 69 6c er.selects.an.application.to.kil
ca900 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 73 74 l...............based.on.heurist
ca920 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 63 69 ics..This.non-deterministic.deci
ca940 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 74 61 sion.often.results.in.an.importa
ca960 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 20 6b nt.process...............being.k
ca980 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 72 6e illed,.and.often.fails.to.return
ca9a0 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 64 65 .the.system.back.to.working.orde
ca9c0 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 0a 20 r............</li>.......</ul>..
ca9e0 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 52 65 63 75 72 73 69 6f 6e 22 3e .............<h3.id="Recursion">
caa00 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 65 63 75 72 73 69 6f 6e <a.href="nav.xhtml#toc-Recursion
caa20 22 3e 52 65 63 75 72 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 ">Recursion</a>.<a.class="hdr".h
caa40 72 65 66 3d 22 23 52 65 63 75 72 73 69 6f 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 ref="#Recursion">..</a></h3>....
caa60 20 20 20 20 3c 70 3e 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 ....<p>.......Recursion.is.a.fun
caa80 64 61 6d 65 6e 74 61 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 damental.tool.in.modeling.softwa
caaa0 72 65 2e 20 48 6f 77 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 re..However.it.has.an.often-over
caac0 6c 6f 6f 6b 65 64 20 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 looked.problem:.......unbounded.
caae0 6d 65 6d 6f 72 79 20 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 memory.allocation........</p>...
cab00 20 20 20 20 3c 70 3e 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 ....<p>.......Recursion.is.an.ar
cab20 65 61 20 6f 66 20 61 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 ea.of.active.experimentation.in.
cab40 5a 69 67 20 61 6e 64 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 Zig.and.so.the.documentation.her
cab60 65 20 69 73 20 6e 6f 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 e.is.not.final........You.can.re
cab80 61 64 20 61 0a 20 20 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 ad.a.......<a.href="https://zigl
caba0 61 6e 67 2e 6f 72 67 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 ang.org/download/0.3.0/release-n
cabc0 6f 74 65 73 2e 68 74 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 otes.html#recursion">summary.of.
cabe0 72 65 63 75 72 73 69 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 recursion.status.in.the.0.3.0.re
cac00 6c 65 61 73 65 20 6e 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 lease.notes</a>........</p>.....
cac20 20 20 3c 70 3e 0a 20 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 ..<p>.......The.short.summary.is
cac40 20 74 68 61 74 20 63 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 .that.currently.recursion.works.
cac60 6e 6f 72 6d 61 6c 6c 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 normally.as.you.would.expect..Al
cac80 74 68 6f 75 67 68 20 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 though.Zig.code.......is.not.yet
caca0 20 70 72 6f 74 65 63 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 .protected.from.stack.overflow,.
cacc0 69 74 20 69 73 20 70 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 it.is.planned.that.a.future.vers
cace0 69 6f 6e 20 6f 66 20 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 ion.of.Zig.will.provide.......su
cad00 63 68 20 70 72 6f 74 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 ch.protection,.with.some.degree.
cad20 6f 66 20 63 6f 6f 70 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 of.cooperation.from.Zig.code.req
cad40 75 69 72 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 20 20 20 uired........</p>...............
cad60 3c 68 33 20 69 64 3d 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 <h3.id="Lifetime-and-Ownership">
cad80 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 4c 69 66 65 74 69 6d 65 2d <a.href="nav.xhtml#toc-Lifetime-
cada0 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 6e 64 20 4f 77 6e 65 and-Ownership">Lifetime.and.Owne
cadc0 72 73 68 69 70 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 rship</a>.<a.class="hdr".href="#
cade0 4c 69 66 65 74 69 6d 65 2d 61 6e 64 2d 4f 77 6e 65 72 73 68 69 70 22 3e c2 a7 3c 2f 61 3e 3c 2f Lifetime-and-Ownership">..</a></
cae00 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 69 73 20 74 68 65 20 5a h3>........<p>.......It.is.the.Z
cae20 69 67 20 70 72 6f 67 72 61 6d 6d 65 72 27 73 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 79 20 74 ig.programmer's.responsibility.t
cae40 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 61 20 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 o.ensure.that.a.<a.href="#Pointe
cae60 72 73 22 3e 70 6f 69 6e 74 65 72 3c 2f 61 3e 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 61 63 63 rs">pointer</a>.is.not.......acc
cae80 65 73 73 65 64 20 77 68 65 6e 20 74 68 65 20 6d 65 6d 6f 72 79 20 70 6f 69 6e 74 65 64 20 74 6f essed.when.the.memory.pointed.to
caea0 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 76 61 69 6c 61 62 6c 65 2e 20 4e 6f 74 65 20 74 68 .is.no.longer.available..Note.th
caec0 61 74 20 61 20 3c 61 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e 73 6c 69 63 65 3c 2f 61 3e at.a.<a.href="#Slices">slice</a>
caee0 0a 20 20 20 20 20 20 69 73 20 61 20 66 6f 72 6d 20 6f 66 20 70 6f 69 6e 74 65 72 2c 20 69 6e 20 .......is.a.form.of.pointer,.in.
caf00 74 68 61 74 20 69 74 20 72 65 66 65 72 65 6e 63 65 73 20 6f 74 68 65 72 20 6d 65 6d 6f 72 79 2e that.it.references.other.memory.
caf20 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 6e 20 6f .......</p>.......<p>.......In.o
caf40 72 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 62 75 67 73 2c 20 74 68 65 72 65 20 61 72 65 20 rder.to.prevent.bugs,.there.are.
caf60 73 6f 6d 65 20 68 65 6c 70 66 75 6c 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 74 6f 20 66 6f 6c 6c some.helpful.conventions.to.foll
caf80 6f 77 20 77 68 65 6e 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 70 6f 69 6e 74 65 72 73 2e 0a 20 ow.when.dealing.with.pointers...
cafa0 20 20 20 20 20 49 6e 20 67 65 6e 65 72 61 6c 2c 20 77 68 65 6e 20 61 20 66 75 6e 63 74 69 6f 6e .....In.general,.when.a.function
cafc0 20 72 65 74 75 72 6e 73 20 61 20 70 6f 69 6e 74 65 72 2c 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 .returns.a.pointer,.the.document
cafe0 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 65 78 ation.for.the.function.should.ex
cb000 70 6c 61 69 6e 0a 20 20 20 20 20 20 77 68 6f 20 22 6f 77 6e 73 22 20 74 68 65 20 70 6f 69 6e 74 plain.......who."owns".the.point
cb020 65 72 2e 20 54 68 69 73 20 63 6f 6e 63 65 70 74 20 68 65 6c 70 73 20 74 68 65 20 70 72 6f 67 72 er..This.concept.helps.the.progr
cb040 61 6d 6d 65 72 20 64 65 63 69 64 65 20 77 68 65 6e 20 69 74 20 69 73 20 61 70 70 72 6f 70 72 69 ammer.decide.when.it.is.appropri
cb060 61 74 65 2c 20 69 66 20 65 76 65 72 2c 0a 20 20 20 20 20 20 74 6f 20 66 72 65 65 20 74 68 65 20 ate,.if.ever,.......to.free.the.
cb080 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 20 3c 70 3e 0a 20 20 pointer........</p>.......<p>...
cb0a0 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 27 73 20 ....For.example,.the.function's.
cb0c0 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6d 61 79 20 73 61 79 20 22 63 61 6c 6c 65 72 20 6f 77 documentation.may.say."caller.ow
cb0e0 6e 73 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 6d 65 6d 6f 72 79 22 2c 20 69 6e 20 77 68 69 63 ns.the.returned.memory",.in.whic
cb100 68 20 63 61 73 65 0a 20 20 20 20 20 20 74 68 65 20 63 6f 64 65 20 74 68 61 74 20 63 61 6c 6c 73 h.case.......the.code.that.calls
cb120 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 20 68 61 76 65 20 61 20 70 6c 61 6e 20 66 .the.function.must.have.a.plan.f
cb140 6f 72 20 77 68 65 6e 20 74 6f 20 66 72 65 65 20 74 68 61 74 20 6d 65 6d 6f 72 79 2e 20 50 72 6f or.when.to.free.that.memory..Pro
cb160 62 61 62 6c 79 20 69 6e 20 74 68 69 73 20 73 69 74 75 61 74 69 6f 6e 2c 0a 20 20 20 20 20 20 74 bably.in.this.situation,.......t
cb180 68 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 61 63 63 65 70 74 20 61 6e 20 3c 63 6f 64 65 he.function.will.accept.an.<code
cb1a0 3e 41 6c 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 >Allocator</code>.parameter.....
cb1c0 20 20 20 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 ...</p>.......<p>.......Sometime
cb1e0 73 20 74 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 s.the.lifetime.of.a.pointer.may.
cb200 62 65 20 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 be.more.complicated..For.example
cb220 2c 20 74 68 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 74 64 2e 41 72 72 61 79 4c 69 73 74 28 ,.the.......<code>std.ArrayList(
cb240 54 29 2e 69 74 65 6d 73 3c 2f 63 6f 64 65 3e 20 73 6c 69 63 65 20 68 61 73 20 61 20 6c 69 66 65 T).items</code>.slice.has.a.life
cb260 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 75 6e time.that.remains.......valid.un
cb280 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 72 65 til.the.next.time.the.list.is.re
cb2a0 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 77 20 sized,.such.as.by.appending.new.
cb2c0 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 0a 20 elements........</p>.......<p>..
cb2e0 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 20 66 .....The.API.documentation.for.f
cb300 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 68 6f unctions.and.data.structures.sho
cb320 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 0a 20 uld.take.great.care.to.explain..
cb340 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 65 20 .....the.ownership.and.lifetime.
cb360 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 69 70 semantics.of.pointers..Ownership
cb380 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 74 79 .determines.whose.responsibility
cb3a0 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 79 20 .it.......is.to.free.the.memory.
cb3c0 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 20 6c referenced.by.the.pointer,.and.l
cb3e0 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 74 20 ifetime.determines.the.point.at.
cb400 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 20 69 which.......the.memory.becomes.i
cb420 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 64 65 naccessible.(lest.<a.href="#Unde
cb440 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
cb460 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 20 20 or</a>.occur)........</p>.......
cb480 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 6f 6d 70 69 6c 65 2d 56 ...............<h2.id="Compile-V
cb4a0 61 72 69 61 62 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 ariables"><a.href="nav.xhtml#toc
cb4c0 2d 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 -Compile-Variables">Compile.Vari
cb4e0 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 23 ables</a>.<a.class="hdr".href="#
cb500 43 6f 6d 70 69 6c 65 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 Compile-Variables">..</a></h2>..
cb520 20 20 20 20 20 20 3c 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 ......<p>.......Compile.variable
cb540 73 20 61 72 65 20 61 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 s.are.accessible.by.importing.th
cb560 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 e.<code><span.class="tok-str">&q
cb580 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 6f 64 65 3e 20 uot;builtin&quot;</span></code>.
cb5a0 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 6d 70 69 6c 65 package,.......which.the.compile
cb5c0 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 5a 69 67 20 73 r.makes.available.to.every.Zig.s
cb5e0 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 20 20 20 63 6f ource.file..It.contains.......co
cb600 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 73 20 74 68 65 mpile-time.constants.such.as.the
cb620 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 2c 20 61 6e 64 .current.target,.endianness,.and
cb640 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 20 20 20 20 20 .release.mode........</p>.......
cb660 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 <figure><figcaption.class="zig-c
cb680 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 6f 6d 70 69 6c 65 5f 76 ap"><cite.class="file">compile_v
cb6a0 61 72 69 61 62 6c 65 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e ariables.zig</cite></figcaption>
cb6c0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
cb6e0 63 6f 6e 73 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 const</span>.builtin.=.<span.cla
cb700 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>(
cb720 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 6c <span.class="tok-str">&quot;buil
cb740 74 69 6e 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 tin&quot;</span>);.<span.class="
cb760 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 65 70 61 72 61 74 6f 72 20 3d tok-kw">const</span>.separator.=
cb780 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>.
cb7a0 28 62 75 69 6c 74 69 6e 2e 6f 73 2e 74 61 67 20 3d 3d 20 2e 77 69 6e 64 6f 77 73 29 20 3c 73 70 (builtin.os.tag.==..windows).<sp
cb7c0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 5c 5c 27 3c 2f 73 70 61 6e 3e 20 3c an.class="tok-str">'\\'</span>.<
cb7e0 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>.
cb800 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 2f 27 3c 2f 73 70 61 6e 3e <span.class="tok-str">'/'</span>
cb820 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 ;</code></pre></figure>.......<p
cb840 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 20 6f 66 20 77 68 61 74 20 69 73 20 69 6d 70 6f 72 >.......Example.of.what.is.impor
cb860 74 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ted.with.<code><span.class="tok-
cb880 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
cb8a0 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
cb8c0 3b 3c 2f 73 70 61 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 ;</span>)</code>:.......</p>....
cb8e0 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 ...<figure><figcaption.class="zi
cb900 67 2d 63 61 70 22 3e 3c 63 69 74 65 3e 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 3c g-cap"><cite>@import("builtin")<
cb920 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 /cite></figcaption><pre><code><s
cb940 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>.
cb960 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">
cb980 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-
cb9a0 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
cb9c0 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 20 5a 69 67 20 pan.class="tok-comment">///.Zig.
cb9e0 76 65 72 73 69 6f 6e 2e 20 57 68 65 6e 20 77 72 69 74 69 6e 67 20 63 6f 64 65 20 74 68 61 74 20 version..When.writing.code.that.
cba00 73 75 70 70 6f 72 74 73 20 6d 75 6c 74 69 70 6c 65 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 5a 69 supports.multiple.versions.of.Zi
cba20 67 2c 20 70 72 65 66 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 g,.prefer</span>.<span.class="to
cba40 6b 2d 63 6f 6d 6d 65 6e 74 22 3e 2f 2f 2f 20 66 65 61 74 75 72 65 20 64 65 74 65 63 74 69 6f 6e k-comment">///.feature.detection
cba60 20 28 69 2e 65 2e 20 77 69 74 68 20 60 40 68 61 73 44 65 63 6c 60 20 6f 72 20 60 40 68 61 73 46 .(i.e..with.`@hasDecl`.or.`@hasF
cba80 69 65 6c 64 60 29 20 6f 76 65 72 20 76 65 72 73 69 6f 6e 20 63 68 65 63 6b 73 2e 3c 2f 73 70 61 ield`).over.version.checks.</spa
cbaa0 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 70 61 n>.<span.class="tok-kw">pub</spa
cbac0 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
cbae0 70 61 6e 3e 20 7a 69 67 5f 76 65 72 73 69 6f 6e 20 3d 20 73 74 64 2e 53 65 6d 61 6e 74 69 63 56 pan>.zig_version.=.std.SemanticV
cbb00 65 72 73 69 6f 6e 2e 70 61 72 73 65 28 7a 69 67 5f 76 65 72 73 69 6f 6e 5f 73 74 72 69 6e 67 29 ersion.parse(zig_version_string)
cbb20 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 61 .<span.class="tok-kw">catch</spa
cbb40 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 61 n>.<span.class="tok-kw">unreacha
cbb60 62 6c 65 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 ble</span>;.<span.class="tok-kw"
cbb80 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"
cbba0 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 7a 69 67 5f 76 65 72 73 69 6f 6e 5f 73 74 72 69 6e 67 >const</span>.zig_version_string
cbbc0 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 30 .=.<span.class="tok-str">&quot;0
cbbe0 2e 31 32 2e 31 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d .12.1&quot;</span>;.<span.class=
cbc00 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=
cbc20 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 7a 69 67 5f 62 61 63 6b 65 6e "tok-kw">const</span>.zig_backen
cbc40 64 20 3d 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 43 6f 6d 70 69 6c 65 72 42 61 63 6b 65 6e 64 2e d.=.std.builtin.CompilerBackend.
cbc60 73 74 61 67 65 32 5f 6c 6c 76 6d 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b stage2_llvm;..<span.class="tok-k
cbc80 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
cbca0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6f 75 74 70 75 74 5f 6d 6f 64 65 20 3d 20 73 74 w">const</span>.output_mode.=.st
cbcc0 64 2e 62 75 69 6c 74 69 6e 2e 4f 75 74 70 75 74 4d 6f 64 65 2e 4f 62 6a 3b 0a 3c 73 70 61 6e 20 d.builtin.OutputMode.Obj;.<span.
cbce0 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.
cbd00 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 6e 6b class="tok-kw">const</span>.link
cbd20 5f 6d 6f 64 65 20 3d 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 4c 69 6e 6b 4d 6f 64 65 2e 73 74 61 _mode.=.std.builtin.LinkMode.sta
cbd40 74 69 63 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 tic;.<span.class="tok-kw">pub</s
cbd60 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<
cbd80 2f 73 70 61 6e 3e 20 69 73 5f 74 65 73 74 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f /span>.is_test.=.<span.class="to
cbda0 6b 2d 6e 75 6c 6c 22 3e 66 61 6c 73 65 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 k-null">false</span>;.<span.clas
cbdc0 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
cbde0 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 69 6e 67 6c 65 5f 74 s="tok-kw">const</span>.single_t
cbe00 68 72 65 61 64 65 64 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 hreaded.=.<span.class="tok-null"
cbe20 3e 66 61 6c 73 65 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 >false</span>;.<span.class="tok-
cbe40 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-
cbe60 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 61 62 69 20 3d 20 73 74 64 2e 54 61 72 67 65 kw">const</span>.abi.=.std.Targe
cbe80 74 2e 41 62 69 2e 67 6e 75 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e t.Abi.gnu;.<span.class="tok-kw">
cbea0 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">
cbec0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 70 75 3a 20 73 74 64 2e 54 61 72 67 65 74 2e 43 70 75 const</span>.cpu:.std.Target.Cpu
cbee0 20 3d 20 2e 7b 0a 20 20 20 20 2e 61 72 63 68 20 3d 20 2e 78 38 36 5f 36 34 2c 0a 20 20 20 20 2e .=..{......arch.=..x86_64,......
cbf00 6d 6f 64 65 6c 20 3d 20 26 61 6d 70 3b 73 74 64 2e 54 61 72 67 65 74 2e 78 38 36 2e 63 70 75 2e model.=.&amp;std.Target.x86.cpu.
cbf20 7a 6e 76 65 72 33 2c 0a 20 20 20 20 2e 66 65 61 74 75 72 65 73 20 3d 20 73 74 64 2e 54 61 72 67 znver3,......features.=.std.Targ
cbf40 65 74 2e 78 38 36 2e 66 65 61 74 75 72 65 53 65 74 28 26 61 6d 70 3b 5b 5f 5d 73 74 64 2e 54 61 et.x86.featureSet(&amp;[_]std.Ta
cbf60 72 67 65 74 2e 78 38 36 2e 46 65 61 74 75 72 65 7b 0a 20 20 20 20 20 20 20 20 2e 40 26 71 75 6f rget.x86.Feature{..........@&quo
cbf80 74 3b 36 34 62 69 74 26 71 75 6f 74 3b 2c 0a 20 20 20 20 20 20 20 20 2e 61 64 78 2c 0a 20 20 20 t;64bit&quot;,..........adx,....
cbfa0 20 20 20 20 20 2e 61 65 73 2c 0a 20 20 20 20 20 20 20 20 2e 61 6c 6c 6f 77 5f 6c 69 67 68 74 5f ......aes,..........allow_light_
cbfc0 32 35 36 5f 62 69 74 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 2c 0a 20 20 20 20 20 20 20 20 2e 256_bit,..........avx,..........
cbfe0 61 76 78 32 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 35 31 32 62 66 31 36 2c 0a 20 20 20 20 20 avx2,..........avx512bf16,......
cc000 20 20 20 2e 61 76 78 35 31 32 62 69 74 61 6c 67 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 35 31 ....avx512bitalg,..........avx51
cc020 32 62 77 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 35 31 32 63 64 2c 0a 20 20 20 20 20 20 20 20 2bw,..........avx512cd,.........
cc040 2e 61 76 78 35 31 32 64 71 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 35 31 32 66 2c 0a 20 20 20 .avx512dq,..........avx512f,....
cc060 20 20 20 20 20 2e 61 76 78 35 31 32 69 66 6d 61 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 35 31 ......avx512ifma,..........avx51
cc080 32 76 62 6d 69 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 35 31 32 76 62 6d 69 32 2c 0a 20 20 20 2vbmi,..........avx512vbmi2,....
cc0a0 20 20 20 20 20 2e 61 76 78 35 31 32 76 6c 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 35 31 32 76 ......avx512vl,..........avx512v
cc0c0 6e 6e 69 2c 0a 20 20 20 20 20 20 20 20 2e 61 76 78 35 31 32 76 70 6f 70 63 6e 74 64 71 2c 0a 20 nni,..........avx512vpopcntdq,..
cc0e0 20 20 20 20 20 20 20 2e 62 6d 69 2c 0a 20 20 20 20 20 20 20 20 2e 62 6d 69 32 2c 0a 20 20 20 20 ........bmi,..........bmi2,.....
cc100 20 20 20 20 2e 62 72 61 6e 63 68 66 75 73 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 2e 63 6c 66 6c .....branchfusion,..........clfl
cc120 75 73 68 6f 70 74 2c 0a 20 20 20 20 20 20 20 20 2e 63 6c 77 62 2c 0a 20 20 20 20 20 20 20 20 2e ushopt,..........clwb,..........
cc140 63 6c 7a 65 72 6f 2c 0a 20 20 20 20 20 20 20 20 2e 63 6d 6f 76 2c 0a 20 20 20 20 20 20 20 20 2e clzero,..........cmov,..........
cc160 63 72 63 33 32 2c 0a 20 20 20 20 20 20 20 20 2e 63 78 31 36 2c 0a 20 20 20 20 20 20 20 20 2e 63 crc32,..........cx16,..........c
cc180 78 38 2c 0a 20 20 20 20 20 20 20 20 2e 66 31 36 63 2c 0a 20 20 20 20 20 20 20 20 2e 66 61 73 74 x8,..........f16c,..........fast
cc1a0 5f 31 35 62 79 74 65 6e 6f 70 2c 0a 20 20 20 20 20 20 20 20 2e 66 61 73 74 5f 62 65 78 74 72 2c _15bytenop,..........fast_bextr,
cc1c0 0a 20 20 20 20 20 20 20 20 2e 66 61 73 74 5f 6c 7a 63 6e 74 2c 0a 20 20 20 20 20 20 20 20 2e 66 ..........fast_lzcnt,..........f
cc1e0 61 73 74 5f 6d 6f 76 62 65 2c 0a 20 20 20 20 20 20 20 20 2e 66 61 73 74 5f 73 63 61 6c 61 72 5f ast_movbe,..........fast_scalar_
cc200 66 73 71 72 74 2c 0a 20 20 20 20 20 20 20 20 2e 66 61 73 74 5f 73 63 61 6c 61 72 5f 73 68 69 66 fsqrt,..........fast_scalar_shif
cc220 74 5f 6d 61 73 6b 73 2c 0a 20 20 20 20 20 20 20 20 2e 66 61 73 74 5f 76 61 72 69 61 62 6c 65 5f t_masks,..........fast_variable_
cc240 70 65 72 6c 61 6e 65 5f 73 68 75 66 66 6c 65 2c 0a 20 20 20 20 20 20 20 20 2e 66 61 73 74 5f 76 perlane_shuffle,..........fast_v
cc260 65 63 74 6f 72 5f 66 73 71 72 74 2c 0a 20 20 20 20 20 20 20 20 2e 66 6d 61 2c 0a 20 20 20 20 20 ector_fsqrt,..........fma,......
cc280 20 20 20 2e 66 73 67 73 62 61 73 65 2c 0a 20 20 20 20 20 20 20 20 2e 66 73 72 6d 2c 0a 20 20 20 ....fsgsbase,..........fsrm,....
cc2a0 20 20 20 20 20 2e 66 78 73 72 2c 0a 20 20 20 20 20 20 20 20 2e 67 66 6e 69 2c 0a 20 20 20 20 20 ......fxsr,..........gfni,......
cc2c0 20 20 20 2e 69 6e 76 70 63 69 64 2c 0a 20 20 20 20 20 20 20 20 2e 6c 7a 63 6e 74 2c 0a 20 20 20 ....invpcid,..........lzcnt,....
cc2e0 20 20 20 20 20 2e 6d 61 63 72 6f 66 75 73 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 2e 6d 6d 78 2c ......macrofusion,..........mmx,
cc300 0a 20 20 20 20 20 20 20 20 2e 6d 6f 76 62 65 2c 0a 20 20 20 20 20 20 20 20 2e 6d 77 61 69 74 78 ..........movbe,..........mwaitx
cc320 2c 0a 20 20 20 20 20 20 20 20 2e 6e 6f 70 6c 2c 0a 20 20 20 20 20 20 20 20 2e 70 63 6c 6d 75 6c ,..........nopl,..........pclmul
cc340 2c 0a 20 20 20 20 20 20 20 20 2e 70 6b 75 2c 0a 20 20 20 20 20 20 20 20 2e 70 6f 70 63 6e 74 2c ,..........pku,..........popcnt,
cc360 0a 20 20 20 20 20 20 20 20 2e 70 72 66 63 68 77 2c 0a 20 20 20 20 20 20 20 20 2e 72 64 70 69 64 ..........prfchw,..........rdpid
cc380 2c 0a 20 20 20 20 20 20 20 20 2e 72 64 70 72 75 2c 0a 20 20 20 20 20 20 20 20 2e 72 64 72 6e 64 ,..........rdpru,..........rdrnd
cc3a0 2c 0a 20 20 20 20 20 20 20 20 2e 72 64 73 65 65 64 2c 0a 20 20 20 20 20 20 20 20 2e 73 61 68 66 ,..........rdseed,..........sahf
cc3c0 2c 0a 20 20 20 20 20 20 20 20 2e 73 62 62 5f 64 65 70 5f 62 72 65 61 6b 69 6e 67 2c 0a 20 20 20 ,..........sbb_dep_breaking,....
cc3e0 20 20 20 20 20 2e 73 68 61 2c 0a 20 20 20 20 20 20 20 20 2e 73 68 73 74 6b 2c 0a 20 20 20 20 20 ......sha,..........shstk,......
cc400 20 20 20 2e 73 6c 6f 77 5f 73 68 6c 64 2c 0a 20 20 20 20 20 20 20 20 2e 73 73 65 2c 0a 20 20 20 ....slow_shld,..........sse,....
cc420 20 20 20 20 20 2e 73 73 65 32 2c 0a 20 20 20 20 20 20 20 20 2e 73 73 65 33 2c 0a 20 20 20 20 20 ......sse2,..........sse3,......
cc440 20 20 20 2e 73 73 65 34 5f 31 2c 0a 20 20 20 20 20 20 20 20 2e 73 73 65 34 5f 32 2c 0a 20 20 20 ....sse4_1,..........sse4_2,....
cc460 20 20 20 20 20 2e 73 73 65 34 61 2c 0a 20 20 20 20 20 20 20 20 2e 73 73 73 65 33 2c 0a 20 20 20 ......sse4a,..........ssse3,....
cc480 20 20 20 20 20 2e 76 61 65 73 2c 0a 20 20 20 20 20 20 20 20 2e 76 70 63 6c 6d 75 6c 71 64 71 2c ......vaes,..........vpclmulqdq,
cc4a0 0a 20 20 20 20 20 20 20 20 2e 76 7a 65 72 6f 75 70 70 65 72 2c 0a 20 20 20 20 20 20 20 20 2e 77 ..........vzeroupper,..........w
cc4c0 62 6e 6f 69 6e 76 64 2c 0a 20 20 20 20 20 20 20 20 2e 78 38 37 2c 0a 20 20 20 20 20 20 20 20 2e bnoinvd,..........x87,..........
cc4e0 78 73 61 76 65 2c 0a 20 20 20 20 20 20 20 20 2e 78 73 61 76 65 63 2c 0a 20 20 20 20 20 20 20 20 xsave,..........xsavec,.........
cc500 2e 78 73 61 76 65 6f 70 74 2c 0a 20 20 20 20 20 20 20 20 2e 78 73 61 76 65 73 2c 0a 20 20 20 20 .xsaveopt,..........xsaves,.....
cc520 7d 29 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 70 75 62 3c }),.};.<span.class="tok-kw">pub<
cc540 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
cc560 74 3c 2f 73 70 61 6e 3e 20 6f 73 20 3d 20 73 74 64 2e 54 61 72 67 65 74 2e 4f 73 7b 0a 20 20 20 t</span>.os.=.std.Target.Os{....
cc580 20 2e 74 61 67 20 3d 20 2e 6c 69 6e 75 78 2c 0a 20 20 20 20 2e 76 65 72 73 69 6f 6e 5f 72 61 6e ..tag.=..linux,......version_ran
cc5a0 67 65 20 3d 20 2e 7b 20 2e 6c 69 6e 75 78 20 3d 20 2e 7b 0a 20 20 20 20 20 20 20 20 2e 72 61 6e ge.=..{..linux.=..{..........ran
cc5c0 67 65 20 3d 20 2e 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 6d 69 6e 20 3d 20 2e 7b 0a 20 20 ge.=..{..............min.=..{...
cc5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 6d 61 6a 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 ...............major.=.<span.cla
cc600 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 0a 20 20 20 20 20 20 ss="tok-number">6</span>,.......
cc620 20 20 20 20 20 20 20 20 20 20 2e 6d 69 6e 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ...........minor.=.<span.class="
cc640 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 39 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 tok-number">9</span>,...........
cc660 20 20 20 20 20 20 2e 70 61 74 63 68 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .......patch.=.<span.class="tok-
cc680 6e 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c number">2</span>,.............},
cc6a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 6d 61 78 20 3d 20 2e 7b 0a 20 20 20 20 20 20 20 20 20 ..............max.=..{..........
cc6c0 20 20 20 20 20 20 20 2e 6d 61 6a 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ........major.=.<span.class="tok
cc6e0 2d 6e 75 6d 62 65 72 22 3e 36 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -number">6</span>,..............
cc700 20 20 20 2e 6d 69 6e 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 ....minor.=.<span.class="tok-num
cc720 62 65 72 22 3e 39 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 2e ber">9</span>,..................
cc740 70 61 74 63 68 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 patch.=.<span.class="tok-number"
cc760 3e 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 >2</span>,.............},.......
cc780 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 2e 67 6c 69 62 63 20 3d 20 2e 7b 0a 20 20 20 20 20 20 20 ..},..........glibc.=..{........
cc7a0 20 20 20 20 20 2e 6d 61 6a 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e ......major.=.<span.class="tok-n
cc7c0 75 6d 62 65 72 22 3e 32 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 6d 69 umber">2</span>,..............mi
cc7e0 6e 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 62 65 72 22 3e 33 nor.=.<span.class="tok-number">3
cc800 39 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 70 61 74 63 68 20 3d 20 3c 9</span>,..............patch.=.<
cc820 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>
cc840 2c 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 7d 7d 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c ,.........},.....}},.};.<span.cl
cc860 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
cc880 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 61 72 67 65 74 ass="tok-kw">const</span>.target
cc8a0 3a 20 73 74 64 2e 54 61 72 67 65 74 20 3d 20 2e 7b 0a 20 20 20 20 2e 63 70 75 20 3d 20 63 70 75 :.std.Target.=..{......cpu.=.cpu
cc8c0 2c 0a 20 20 20 20 2e 6f 73 20 3d 20 6f 73 2c 0a 20 20 20 20 2e 61 62 69 20 3d 20 61 62 69 2c 0a ,......os.=.os,......abi.=.abi,.
cc8e0 20 20 20 20 2e 6f 66 6d 74 20 3d 20 6f 62 6a 65 63 74 5f 66 6f 72 6d 61 74 2c 0a 20 20 20 20 2e .....ofmt.=.object_format,......
cc900 64 79 6e 61 6d 69 63 5f 6c 69 6e 6b 65 72 20 3d 20 73 74 64 2e 54 61 72 67 65 74 2e 44 79 6e 61 dynamic_linker.=.std.Target.Dyna
cc920 6d 69 63 4c 69 6e 6b 65 72 2e 69 6e 69 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d micLinker.init(<span.class="tok-
cc940 73 74 72 22 3e 26 71 75 6f 74 3b 2f 6e 69 78 2f 73 74 6f 72 65 2f 6b 37 7a 67 76 7a 70 32 72 33 str">&quot;/nix/store/k7zgvzp2r3
cc960 31 7a 6b 67 39 78 71 67 6a 69 6d 37 6d 62 6b 6e 72 79 76 36 62 73 2d 67 6c 69 62 63 2d 32 2e 33 1zkg9xqgjim7mbknryv6bs-glibc-2.3
cc980 39 2d 35 32 2f 6c 69 62 2f 6c 64 2d 6c 69 6e 75 78 2d 78 38 36 2d 36 34 2e 73 6f 2e 32 26 71 75 9-52/lib/ld-linux-x86-64.so.2&qu
cc9a0 6f 74 3b 3c 2f 73 70 61 6e 3e 29 2c 0a 7d 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ot;</span>),.};.<span.class="tok
cc9c0 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
cc9e0 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 66 6f 72 6d 61 74 20 -kw">const</span>.object_format.
cca00 3d 20 73 74 64 2e 54 61 72 67 65 74 2e 4f 62 6a 65 63 74 46 6f 72 6d 61 74 2e 65 6c 66 3b 0a 3c =.std.Target.ObjectFormat.elf;.<
cca20 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>.<
cca40 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>
cca60 20 6d 6f 64 65 20 3d 20 73 74 64 2e 62 75 69 6c 74 69 6e 2e 4f 70 74 69 6d 69 7a 65 4d 6f 64 65 .mode.=.std.builtin.OptimizeMode
cca80 2e 44 65 62 75 67 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 .Debug;.<span.class="tok-kw">pub
ccaa0 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
ccac0 73 74 3c 2f 73 70 61 6e 3e 20 6c 69 6e 6b 5f 6c 69 62 63 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 st</span>.link_libc.=.<span.clas
ccae0 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 73 70 61 6e s="tok-null">false</span>;.<span
ccb00 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
ccb20 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 6c 69 6e .class="tok-kw">const</span>.lin
ccb40 6b 5f 6c 69 62 63 70 70 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6c 6c k_libcpp.=.<span.class="tok-null
ccb60 22 3e 66 61 6c 73 65 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 ">false</span>;.<span.class="tok
ccb80 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
ccba0 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 68 61 76 65 5f 65 72 72 6f 72 5f 72 65 74 -kw">const</span>.have_error_ret
ccbc0 75 72 6e 5f 74 72 61 63 69 6e 67 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e urn_tracing.=.<span.class="tok-n
ccbe0 75 6c 6c 22 3e 74 72 75 65 3c 2f 73 70 61 6e 3e 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ull">true</span>;.<span.class="t
ccc00 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
ccc20 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 76 61 6c 67 72 69 6e 64 5f 73 75 70 ok-kw">const</span>.valgrind_sup
ccc40 70 6f 72 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 74 72 port.=.<span.class="tok-null">tr
ccc60 75 65 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 ue</span>;.<span.class="tok-kw">
ccc80 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">
ccca0 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 61 6e 69 74 69 7a 65 5f 74 68 72 65 61 64 20 3d 20 3c const</span>.sanitize_thread.=.<
cccc0 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 61 span.class="tok-null">false</spa
ccce0 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 70 n>;.<span.class="tok-kw">pub</sp
ccd00 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</
ccd20 73 70 61 6e 3e 20 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 span>.position_independent_code.
ccd40 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 65 3c 2f =.<span.class="tok-null">false</
ccd60 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 70 75 62 3c span>;.<span.class="tok-kw">pub<
ccd80 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
ccda0 74 3c 2f 73 70 61 6e 3e 20 70 6f 73 69 74 69 6f 6e 5f 69 6e 64 65 70 65 6e 64 65 6e 74 5f 65 78 t</span>.position_independent_ex
ccdc0 65 63 75 74 61 62 6c 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 ecutable.=.<span.class="tok-null
ccde0 22 3e 66 61 6c 73 65 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 ">false</span>;.<span.class="tok
cce00 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
cce20 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 73 74 72 69 70 5f 64 65 62 75 67 5f 69 6e -kw">const</span>.strip_debug_in
cce40 66 6f 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 fo.=.<span.class="tok-null">fals
cce60 65 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 70 e</span>;.<span.class="tok-kw">p
cce80 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
ccea0 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 63 6f 64 65 5f 6d 6f 64 65 6c 20 3d 20 73 74 64 2e 62 75 69 onst</span>.code_model.=.std.bui
ccec0 6c 74 69 6e 2e 43 6f 64 65 4d 6f 64 65 6c 2e 64 65 66 61 75 6c 74 3b 0a 3c 73 70 61 6e 20 63 6c ltin.CodeModel.default;.<span.cl
ccee0 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
ccf00 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 6d 69 74 5f 66 ass="tok-kw">const</span>.omit_f
ccf20 72 61 6d 65 5f 70 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 rame_pointer.=.<span.class="tok-
ccf40 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 3e 3c 2f 70 72 65 3e null">false</span>;</code></pre>
ccf60 3c 2f 66 69 67 75 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 </figure>.......<p>See.also:</p>
ccf80 3c 75 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 <ul>.<li><a.href="#Build-Mode">B
ccfa0 75 69 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 uild.Mode</a></li>.</ul>........
ccfc0 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 .......<h2.id="Root-Source-File"
ccfe0 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 52 6f 6f 74 2d 53 6f 75 ><a.href="nav.xhtml#toc-Root-Sou
cd000 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 20 3c rce-File">Root.Source.File</a>.<
cd020 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 52 6f 6f 74 2d 53 6f 75 72 63 65 a.class="hdr".href="#Root-Source
cd040 2d 46 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 54 4f 44 -File">..</a></h2>........<p>TOD
cd060 4f 3a 20 65 78 70 6c 61 69 6e 20 68 6f 77 20 72 6f 6f 74 20 73 6f 75 72 63 65 20 66 69 6c 65 20 O:.explain.how.root.source.file.
cd080 66 69 6e 64 73 20 6f 74 68 65 72 20 66 69 6c 65 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 finds.other.files</p>.......<p>T
cd0a0 4f 44 4f 3a 20 70 75 62 20 66 6e 20 6d 61 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f ODO:.pub.fn.main</p>.......<p>TO
cd0c0 44 4f 3a 20 70 75 62 20 66 6e 20 70 61 6e 69 63 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f DO:.pub.fn.panic</p>.......<p>TO
cd0e0 44 4f 3a 20 69 66 20 6c 69 6e 6b 69 6e 67 20 77 69 74 68 20 6c 69 62 63 20 79 6f 75 20 63 61 6e DO:.if.linking.with.libc.you.can
cd100 20 75 73 65 20 65 78 70 6f 72 74 20 66 6e 20 6d 61 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 .use.export.fn.main</p>.......<p
cd120 3e 54 4f 44 4f 3a 20 6f 72 64 65 72 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 74 6f 70 20 6c 65 76 >TODO:.order.independent.top.lev
cd140 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 el.declarations</p>.......<p>TOD
cd160 4f 3a 20 6c 61 7a 79 20 61 6e 61 6c 79 73 69 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f O:.lazy.analysis</p>.......<p>TO
cd180 44 4f 3a 20 75 73 69 6e 67 20 63 6f 6d 70 74 69 6d 65 20 7b 20 5f 20 3d 20 40 69 6d 70 6f 72 74 DO:.using.comptime.{._.=.@import
cd1a0 28 29 20 7d 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 5a 69 ().}</p>..............<h2.id="Zi
cd1c0 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 6e 61 76 2e 78 68 74 g-Build-System"><a.href="nav.xht
cd1e0 6d 6c 23 74 6f 63 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 ml#toc-Zig-Build-System">Zig.Bui
cd200 6c 64 20 53 79 73 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 ld.System</a>.<a.class="hdr".hre
cd220 66 3d 22 23 5a 69 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 32 f="#Zig-Build-System">..</a></h2
cd240 3e 0a 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 42 75 69 6c 64 >........<p>.......The.Zig.Build
cd260 20 53 79 73 74 65 6d 20 70 72 6f 76 69 64 65 73 20 61 20 63 72 6f 73 73 2d 70 6c 61 74 66 6f 72 .System.provides.a.cross-platfor
cd280 6d 2c 20 64 65 70 65 6e 64 65 6e 63 79 2d 66 72 65 65 20 77 61 79 20 74 6f 20 64 65 63 6c 61 72 m,.dependency-free.way.to.declar
cd2a0 65 0a 20 20 20 20 20 20 74 68 65 20 6c 6f 67 69 63 20 72 65 71 75 69 72 65 64 20 74 6f 20 62 75 e.......the.logic.required.to.bu
cd2c0 69 6c 64 20 61 20 70 72 6f 6a 65 63 74 2e 20 57 69 74 68 20 74 68 69 73 20 73 79 73 74 65 6d 2c ild.a.project..With.this.system,
cd2e0 20 74 68 65 20 6c 6f 67 69 63 20 74 6f 20 62 75 69 6c 64 0a 20 20 20 20 20 20 61 20 70 72 6f 6a .the.logic.to.build.......a.proj
cd300 65 63 74 20 69 73 20 77 72 69 74 74 65 6e 20 69 6e 20 61 20 62 75 69 6c 64 2e 7a 69 67 20 66 69 ect.is.written.in.a.build.zig.fi
cd320 6c 65 2c 20 75 73 69 6e 67 20 74 68 65 20 5a 69 67 20 42 75 69 6c 64 20 53 79 73 74 65 6d 20 41 le,.using.the.Zig.Build.System.A
cd340 50 49 20 74 6f 0a 20 20 20 20 20 20 64 65 63 6c 61 72 65 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 PI.to.......declare.and.configur
cd360 65 20 62 75 69 6c 64 20 61 72 74 69 66 61 63 74 73 20 61 6e 64 20 6f 74 68 65 72 20 74 61 73 6b e.build.artifacts.and.other.task
cd380 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 53 6f s........</p>.......<p>.......So
cd3a0 6d 65 20 65 78 61 6d 70 6c 65 73 20 6f 66 20 74 61 73 6b 73 20 74 68 65 20 62 75 69 6c 64 20 73 me.examples.of.tasks.the.build.s
cd3c0 79 73 74 65 6d 20 63 61 6e 20 68 65 6c 70 20 77 69 74 68 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ystem.can.help.with:.......</p>.
cd3e0 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 65 72 66 6f 72 6d 69 6e ......<ul>.........<li>Performin
cd400 67 20 74 61 73 6b 73 20 69 6e 20 70 61 72 61 6c 6c 65 6c 20 61 6e 64 20 63 61 63 68 69 6e 67 20 g.tasks.in.parallel.and.caching.
cd420 74 68 65 20 72 65 73 75 6c 74 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 44 65 the.results.</li>.........<li>De
cd440 70 65 6e 64 69 6e 67 20 6f 6e 20 6f 74 68 65 72 20 70 72 6f 6a 65 63 74 73 2e 3c 2f 6c 69 3e 0a pending.on.other.projects.</li>.
cd460 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 72 6f 76 69 64 69 6e 67 20 61 20 70 61 63 6b 61 67 65 20 ........<li>Providing.a.package.
cd480 66 6f 72 20 6f 74 68 65 72 20 70 72 6f 6a 65 63 74 73 20 74 6f 20 64 65 70 65 6e 64 20 6f 6e 2e for.other.projects.to.depend.on.
cd4a0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 72 65 61 74 69 6e 67 20 62 75 69 6c 64 </li>.........<li>Creating.build
cd4c0 20 61 72 74 69 66 61 63 74 73 20 62 79 20 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 5a 69 67 20 .artifacts.by.executing.the.Zig.
cd4e0 63 6f 6d 70 69 6c 65 72 2e 20 54 68 69 73 20 69 6e 63 6c 75 64 65 73 0a 20 20 20 20 20 20 20 20 compiler..This.includes.........
cd500 20 20 62 75 69 6c 64 69 6e 67 20 5a 69 67 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 73 20 77 65 ..building.Zig.source.code.as.we
cd520 6c 6c 20 61 73 20 43 20 61 6e 64 20 43 2b 2b 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 3c 2f 6c 69 ll.as.C.and.C++.source.code.</li
cd540 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 70 74 75 72 69 6e 67 20 75 73 65 72 2d 63 6f 6e >.........<li>Capturing.user-con
cd560 66 69 67 75 72 65 64 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 75 73 69 6e 67 20 74 68 6f 73 65 20 figured.options.and.using.those.
cd580 6f 70 74 69 6f 6e 73 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 74 options.to.configure...........t
cd5a0 68 65 20 62 75 69 6c 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 75 72 66 61 he.build.</li>.........<li>Surfa
cd5c0 63 69 6e 67 20 62 75 69 6c 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 3c 61 20 68 cing.build.configuration.as.<a.h
cd5e0 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 76 61 6c ref="#comptime">comptime</a>.val
cd600 75 65 73 20 62 79 20 70 72 6f 76 69 64 69 6e 67 20 61 0a 20 20 20 20 20 20 20 20 20 20 66 69 6c ues.by.providing.a...........fil
cd620 65 20 74 68 61 74 20 63 61 6e 20 62 65 20 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e e.that.can.be.<a.href="#import">
cd640 69 6d 70 6f 72 74 65 64 3c 2f 61 3e 20 62 79 20 5a 69 67 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 20 imported</a>.by.Zig.code.</li>..
cd660 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 63 68 69 6e 67 20 62 75 69 6c 64 20 61 72 74 69 66 61 63 .......<li>Caching.build.artifac
cd680 74 73 20 74 6f 20 61 76 6f 69 64 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 20 72 65 70 65 61 74 ts.to.avoid.unnecessarily.repeat
cd6a0 69 6e 67 20 73 74 65 70 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 78 65 63 ing.steps.</li>.........<li>Exec
cd6c0 75 74 69 6e 67 20 62 75 69 6c 64 20 61 72 74 69 66 61 63 74 73 20 6f 72 20 73 79 73 74 65 6d 2d uting.build.artifacts.or.system-
cd6e0 69 6e 73 74 61 6c 6c 65 64 20 74 6f 6f 6c 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c installed.tools.</li>.........<l
cd700 69 3e 52 75 6e 6e 69 6e 67 20 74 65 73 74 73 20 61 6e 64 20 76 65 72 69 66 79 69 6e 67 20 74 68 i>Running.tests.and.verifying.th
cd720 65 20 6f 75 74 70 75 74 20 6f 66 20 65 78 65 63 75 74 69 6e 67 20 61 20 62 75 69 6c 64 20 61 72 e.output.of.executing.a.build.ar
cd740 74 69 66 61 63 74 20 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 20 20 74 68 65 20 65 78 70 65 63 tifact.matches.........the.expec
cd760 74 65 64 20 76 61 6c 75 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 75 6e 6e ted.value.</li>.........<li>Runn
cd780 69 6e 67 20 3c 63 6f 64 65 3e 7a 69 67 20 66 6d 74 3c 2f 63 6f 64 65 3e 20 6f 6e 20 61 20 63 6f ing.<code>zig.fmt</code>.on.a.co
cd7a0 64 65 62 61 73 65 20 6f 72 20 61 20 73 75 62 73 65 74 20 6f 66 20 69 74 2e 3c 2f 6c 69 3e 0a 20 debase.or.a.subset.of.it.</li>..
cd7c0 20 20 20 20 20 20 20 3c 6c 69 3e 43 75 73 74 6f 6d 20 74 61 73 6b 73 2e 3c 2f 6c 69 3e 0a 20 20 .......<li>Custom.tasks.</li>...
cd7e0 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 6f 20 75 73 65 ....</ul>.......<p>.......To.use
cd800 20 74 68 65 20 62 75 69 6c 64 20 73 79 73 74 65 6d 2c 20 72 75 6e 20 3c 6b 62 64 3e 7a 69 67 20 .the.build.system,.run.<kbd>zig.
cd820 62 75 69 6c 64 20 2d 2d 68 65 6c 70 3c 2f 6b 62 64 3e 0a 20 20 20 20 20 20 74 6f 20 73 65 65 20 build.--help</kbd>.......to.see.
cd840 61 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 75 73 61 67 65 20 68 65 6c 70 20 6d 65 6e 75 2e 20 a.command-line.usage.help.menu..
cd860 54 68 69 73 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 70 72 6f 6a 65 63 74 2d 73 70 65 63 69 66 This.will.include.project-specif
cd880 69 63 0a 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 77 65 72 65 20 64 65 63 6c 61 ic.......options.that.were.decla
cd8a0 72 65 64 20 69 6e 20 74 68 65 20 62 75 69 6c 64 2e 7a 69 67 20 73 63 72 69 70 74 2e 0a 20 20 20 red.in.the.build.zig.script.....
cd8c0 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 74 68 65 20 ...</p>.......<p>.......For.the.
cd8e0 74 69 6d 65 20 62 65 69 6e 67 2c 20 74 68 65 20 62 75 69 6c 64 20 73 79 73 74 65 6d 20 64 6f 63 time.being,.the.build.system.doc
cd900 75 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 68 6f 73 74 65 64 20 65 78 74 65 72 6e 61 6c 6c 79 3a umentation.is.hosted.externally:
cd920 0a 20 20 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 .......<a.href="https://ziglang.
cd940 6f 72 67 2f 6c 65 61 72 6e 2f 62 75 69 6c 64 2d 73 79 73 74 65 6d 2f 22 3e 42 75 69 6c 64 20 53 org/learn/build-system/">Build.S
cd960 79 73 74 65 6d 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 61 3e 0a 20 20 20 20 20 20 3c 2f ystem.Documentation</a>.......</
cd980 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 22 3e 3c 61 20 68 72 p>..............<h2.id="C"><a.hr
cd9a0 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 22 3e 43 3c 2f 61 3e 20 3c 61 20 63 6c ef="nav.xhtml#toc-C">C</a>.<a.cl
cd9c0 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 68 32 3e 0a ass="hdr".href="#C">..</a></h2>.
cd9e0 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 67 20 69 73 .......<p>.......Although.Zig.is
cda00 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 6b 65 20 6d .independent.of.C,.and,.unlike.m
cda20 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 74 20 64 65 ost.other.languages,.does.not.de
cda40 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 6f 77 6c 65 pend.on.libc,.......Zig.acknowle
cda60 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 61 63 74 69 dges.the.importance.of.interacti
cda80 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 20 20 20 3c ng.with.existing.C.code........<
cdaa0 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 20 /p>.......<p>.......There.are.a.
cdac0 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 73 20 43 20 few.ways.that.Zig.facilitates.C.
cdae0 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 33 20 69 64 interop........</p>.......<h3.id
cdb00 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 3d 22 6e 61 ="C-Type-Primitives"><a.href="na
cdb20 76 2e 78 68 74 6d 6c 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 v.xhtml#toc-C-Type-Primitives">C
cdb40 20 54 79 70 65 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 .Type.Primitives</a>.<a.class="h
cdb60 64 72 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 73 22 3e c2 a7 dr".href="#C-Type-Primitives">..
cdb80 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 73 65 </a></h3>........<p>.......These
cdba0 20 68 61 76 65 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 .have.guaranteed.C.ABI.compatibi
cdbc0 6c 69 74 79 20 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 lity.and.can.be.used.like.any.ot
cdbe0 68 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 20 3c 75 6c 3e 0a her.type........</p>.......<ul>.
cdc00 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..........<li><code><span.class=
cdc20 22 74 6f 6b 2d 74 79 70 65 22 3e 63 5f 63 68 61 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c "tok-type">c_char</span></code><
cdc40 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 /li>...........<li><code><span.c
cdc60 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 3c 2f lass="tok-type">c_short</span></
cdc80 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 3e 3c code></li>...........<li><code><
cdca0 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 2f span.class="tok-type">c_ushort</
cdcc0 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>
cdce0 3c 63 6f 64 65 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 69 <code><span.class="tok-type">c_i
cdd00 6e 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 nt</span></code></li>...........
cdd20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 <li><code><span.class="tok-type"
cdd40 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 0a 20 20 20 20 20 >c_uint</span></code></li>......
cdd60 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d .....<li><code><span.class="tok-
cdd80 74 79 70 65 22 3e 63 5f 6c 6f 6e 67 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a type">c_long</span></code></li>.
cdda0 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d ..........<li><code><span.class=
cddc0 22 74 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 "tok-type">c_ulong</span></code>
cdde0 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 3e 3c 73 70 61 6e 20 </li>...........<li><code><span.
cde00 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 73 70 61 class="tok-type">c_longlong</spa
cde20 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
cde40 64 65 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 6c 6f 6e de><span.class="tok-type">c_ulon
cde60 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>........
cde80 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 ...<li><code><span.class="tok-ty
cdea0 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 3c 2f pe">c_longdouble</span></code></
cdec0 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>.......
cdee0 54 6f 20 69 6e 74 65 72 6f 70 20 77 69 74 68 20 74 68 65 20 43 20 3c 63 6f 64 65 3e 3c 73 70 61 To.interop.with.the.C.<code><spa
cdf00 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 2f n.class="tok-type">void</span></
cdf20 63 6f 64 65 3e 20 74 79 70 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 code>.type,.use.<code><span.clas
cdf40 73 3d 22 74 6f 6b 2d 74 79 70 65 22 3e 61 6e 79 6f 70 61 71 75 65 3c 2f 73 70 61 6e 3e 3c 2f 63 s="tok-type">anyopaque</span></c
cdf60 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 61 6c ode>........</p>.......<p>See.al
cdf80 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 72 69 6d 69 74 so:</p><ul>.<li><a.href="#Primit
cdfa0 69 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 ive-Types">Primitive.Types</a></
cdfc0 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="
cdfe0 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 22 3e 3c 61 20 68 72 Import-from-C-Header-File"><a.hr
ce000 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d ef="nav.xhtml#toc-Import-from-C-
ce020 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 61 64 65 Header-File">Import.from.C.Heade
ce040 72 20 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 r.File</a>.<a.class="hdr".href="
ce060 23 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 22 3e c2 a7 3c 2f #Import-from-C-Header-File">..</
ce080 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 3c 63 6f a></h3>........<p>.......The.<co
ce0a0 64 65 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 de><span.class="tok-builtin">@cI
ce0c0 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 75 69 6c 74 69 6e 20 66 75 6e 63 mport</span></code>.builtin.func
ce0e0 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 0a 20 20 20 20 20 20 74 6f 20 64 69 72 65 63 74 tion.can.be.used.......to.direct
ce100 6c 79 20 69 6d 70 6f 72 74 20 73 79 6d 62 6f 6c 73 20 66 72 6f 6d 20 3c 63 6f 64 65 20 63 6c 61 ly.import.symbols.from.<code.cla
ce120 73 73 3d 22 66 69 6c 65 22 3e 2e 68 3c 2f 63 6f 64 65 3e 20 66 69 6c 65 73 3a 0a 20 20 20 20 20 ss="file">.h</code>.files:......
ce140 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 .</p>.......<figure><figcaption.
ce160 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c class="zig-cap"><cite.class="fil
ce180 65 22 3e 63 49 6d 70 6f 72 74 5f 62 75 69 6c 74 69 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 e">cImport_builtin.zig</cite></f
ce1a0 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 igcaption><pre><code><span.class
ce1c0 3d 22 74 6f 6b 2d 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 ="tok-kw">const</span>.c.=.<span
ce1e0 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 3c 2f 73 .class="tok-builtin">@cImport</s
ce200 70 61 6e 3e 28 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
ce220 65 6e 74 22 3e 2f 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 ent">//.See.https://github.com/z
ce240 69 67 6c 61 6e 67 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 iglang/zig/issues/515</span>....
ce260 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 66 .<span.class="tok-builtin">@cDef
ce280 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 22 ine</span>(<span.class="tok-str"
ce2a0 3e 26 71 75 6f 74 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 >&quot;_NO_CRT_STDIO_INLINE&quot
ce2c0 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 22 3e ;</span>,.<span.class="tok-str">
ce2e0 26 71 75 6f 74 3b 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 &quot;1&quot;</span>);.....<span
ce300 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</
ce320 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
ce340 74 3b 73 74 64 69 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 t;stdio.h&quot;</span>);.});.<sp
ce360 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
ce380 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
ce3a0 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>().<
ce3c0 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
ce3e0 3e 20 7b 0a 20 20 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 >.{....._.=.c.printf(<span.class
ce400 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 68 65 6c 6c 6f 5c 6e 26 71 75 6f 74 3b 3c 2f ="tok-str">&quot;hello\n&quot;</
ce420 73 70 61 6e 3e 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c span>);.}</code></pre></figure><
ce440 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d figure><figcaption.class="shell-
ce460 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d cap">Shell</figcaption><pre><sam
ce480 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 63 49 6d 70 6f 72 74 5f 62 p>$.<kbd>zig.build-exe.cImport_b
ce4a0 75 69 6c 74 69 6e 2e 7a 69 67 20 2d 6c 63 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 63 49 uiltin.zig.-lc</kbd>.$.<kbd>./cI
ce4c0 6d 70 6f 72 74 5f 62 75 69 6c 74 69 6e 3c 2f 6b 62 64 3e 0a 68 65 6c 6c 6f 0a 3c 2f 73 61 6d 70 mport_builtin</kbd>.hello.</samp
ce4e0 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 ></pre></figure>.......<p>......
ce500 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c .The.<code><span.class="tok-buil
ce520 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
ce540 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
ce560 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
ce580 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.
ce5a0 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
ce5c0 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
ce5e0 74 69 70 6c 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 2e 68 3c 2f 63 6f 64 tiple.<code.class="file">.h</cod
ce600 65 3e 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 66 69 67 75 e>.files:.......</p>.......<figu
ce620 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
ce640 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 40 63 49 6d 70 6f 72 74 20 45 78 70 72 65 cite.class="file">@cImport.Expre
ce660 73 73 69 6f 6e 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 ssion</cite></figcaption><pre><c
ce680 6f 64 65 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 ode><span.class="tok-kw">const</
ce6a0 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 74 6f 6b span>.builtin.=.<span.class="tok
ce6c0 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
ce6e0 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 71 75 6f lass="tok-str">&quot;builtin&quo
ce700 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 77 t;</span>);..<span.class="tok-kw
ce720 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 3d 22 ">const</span>.c.=.<span.class="
ce740 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 0a 20 tok-builtin">@cImport</span>({..
ce760 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 44 ...<span.class="tok-builtin">@cD
ce780 65 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 efine</span>(<span.class="tok-st
ce7a0 72 22 3e 26 71 75 6f 74 3b 4e 44 45 42 55 47 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 20 62 75 r">&quot;NDEBUG&quot;</span>,.bu
ce7c0 69 6c 74 69 6e 2e 6d 6f 64 65 20 3d 3d 20 2e 52 65 6c 65 61 73 65 46 61 73 74 29 3b 0a 20 20 20 iltin.mode.==..ReleaseFast);....
ce7e0 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>.
ce800 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
ce820 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>(
ce840 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
ce860 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>,.{});.....}
ce880 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">@
ce8a0 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
ce8c0 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
ce8e0 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<
ce900 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
ce920 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</
ce940 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
ce960 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>);....
ce980 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"
ce9a0 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
ce9c0 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
ce9e0 70 61 6e 3e 29 3b 0a 7d 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e pan>);.});</code></pre></figure>
cea00 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 3e .......<p>See.also:</p><ul>.<li>
cea20 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 3e 3c <a.href="#cImport">@cImport</a><
cea40 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 63 49 /li>.<li><a.href="#cInclude">@cI
cea60 6e 63 6c 75 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 44 nclude</a></li>.<li><a.href="#cD
cea80 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 efine">@cDefine</a></li>.<li><a.
ceaa0 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 3e 3c 2f 6c 69 3e 0a href="#cUndef">@cUndef</a></li>.
ceac0 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 2f 61 <li><a.href="#import">@import</a
ceae0 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 33 20 ></li>.</ul>................<h3.
ceb00 69 64 3d 22 43 2d 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 43 4c 49 22 3e 3c 61 20 68 72 65 66 3d 22 id="C-Translation-CLI"><a.href="
ceb20 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 2d 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 43 4c 49 22 nav.xhtml#toc-C-Translation-CLI"
ceb40 3e 43 20 54 72 61 6e 73 6c 61 74 69 6f 6e 20 43 4c 49 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d >C.Translation.CLI</a>.<a.class=
ceb60 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 2d 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 43 4c 49 22 3e "hdr".href="#C-Translation-CLI">
ceb80 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 5a 69 67 ..</a></h3>........<p>.......Zig
ceba0 27 73 20 43 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 63 61 70 61 62 69 6c 69 74 79 20 69 73 20 61 's.C.translation.capability.is.a
cebc0 76 61 69 6c 61 62 6c 65 20 61 73 20 61 20 43 4c 49 20 74 6f 6f 6c 20 76 69 61 20 3c 6b 62 64 3e vailable.as.a.CLI.tool.via.<kbd>
cebe0 7a 69 67 20 74 72 61 6e 73 6c 61 74 65 2d 63 3c 2f 6b 62 64 3e 2e 0a 20 20 20 20 20 20 49 74 20 zig.translate-c</kbd>........It.
cec00 72 65 71 75 69 72 65 73 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 6e 61 6d 65 20 61 73 20 61 6e requires.a.single.filename.as.an
cec20 20 61 72 67 75 6d 65 6e 74 2e 20 49 74 20 6d 61 79 20 61 6c 73 6f 20 74 61 6b 65 20 61 20 73 65 .argument..It.may.also.take.a.se
cec40 74 20 6f 66 20 6f 70 74 69 6f 6e 61 6c 20 66 6c 61 67 73 20 74 68 61 74 20 61 72 65 0a 20 20 20 t.of.optional.flags.that.are....
cec60 20 20 20 66 6f 72 77 61 72 64 65 64 20 74 6f 20 63 6c 61 6e 67 2e 20 49 74 20 77 72 69 74 65 73 ...forwarded.to.clang..It.writes
cec80 20 74 68 65 20 74 72 61 6e 73 6c 61 74 65 64 20 66 69 6c 65 20 74 6f 20 73 74 64 6f 75 74 2e 0a .the.translated.file.to.stdout..
ceca0 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 43 6f 6d 6d 61 6e 64 ......</p>.......<h4.id="Command
cecc0 2d 6c 69 6e 65 2d 66 6c 61 67 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 -line-flags"><a.href="nav.xhtml#
cece0 74 6f 63 2d 43 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 2d 66 6c 61 67 73 22 3e 43 6f 6d 6d 61 6e 64 20 toc-Command-line-flags">Command.
ced00 6c 69 6e 65 20 66 6c 61 67 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 line.flags</a>.<a.class="hdr".hr
ced20 65 66 3d 22 23 43 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 2d 66 6c 61 67 73 22 3e c2 a7 3c 2f 61 3e 3c ef="#Command-line-flags">..</a><
ced40 2f 68 34 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 20 /h4>........<ul>.........<li>...
ced60 20 20 20 20 20 20 20 20 3c 6b 62 64 3e 2d 49 3c 2f 6b 62 64 3e 3a 0a 20 20 20 20 20 20 20 20 20 ........<kbd>-I</kbd>:..........
ced80 20 53 70 65 63 69 66 79 20 61 20 73 65 61 72 63 68 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72 20 .Specify.a.search.directory.for.
ceda0 69 6e 63 6c 75 64 65 20 66 69 6c 65 73 2e 20 4d 61 79 20 62 65 20 75 73 65 64 20 6d 75 6c 74 69 include.files..May.be.used.multi
cedc0 70 6c 65 20 74 69 6d 65 73 2e 20 45 71 75 69 76 61 6c 65 6e 74 20 74 6f 0a 20 20 20 20 20 20 20 ple.times..Equivalent.to........
cede0 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 72 65 6c 65 61 73 65 73 2e 6c 6c 76 ...<a.href="https://releases.llv
cee00 6d 2e 6f 72 67 2f 31 32 2e 30 2e 30 2f 74 6f 6f 6c 73 2f 63 6c 61 6e 67 2f 64 6f 63 73 2f 43 6c m.org/12.0.0/tools/clang/docs/Cl
cee20 61 6e 67 43 6f 6d 6d 61 6e 64 4c 69 6e 65 52 65 66 65 72 65 6e 63 65 2e 68 74 6d 6c 23 63 6d 64 angCommandLineReference.html#cmd
cee40 6f 70 74 69 6f 6e 2d 63 6c 61 6e 67 2d 69 2d 64 69 72 22 3e 0a 20 20 20 20 20 20 20 20 20 20 63 option-clang-i-dir">...........c
cee60 6c 61 6e 67 27 73 20 3c 6b 62 64 3e 2d 49 3c 2f 6b 62 64 3e 20 66 6c 61 67 3c 2f 61 3e 2e 20 54 lang's.<kbd>-I</kbd>.flag</a>..T
cee80 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 3c 65 6d 3e 6e 6f 74 3c he.current.directory.is.<em>not<
ceea0 2f 65 6d 3e 20 69 6e 63 6c 75 64 65 64 20 62 79 20 64 65 66 61 75 6c 74 3b 0a 20 20 20 20 20 20 /em>.included.by.default;.......
ceec0 20 20 20 20 75 73 65 20 3c 6b 62 64 3e 2d 49 2e 3c 2f 6b 62 64 3e 20 74 6f 20 69 6e 63 6c 75 64 ....use.<kbd>-I.</kbd>.to.includ
ceee0 65 20 69 74 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 e.it..........</li>.........<li>
cef00 0a 20 20 20 20 20 20 20 20 20 20 3c 6b 62 64 3e 2d 44 3c 2f 6b 62 64 3e 3a 20 44 65 66 69 6e 65 ...........<kbd>-D</kbd>:.Define
cef20 20 61 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 6d 61 63 72 6f 2e 20 45 71 75 69 76 61 6c 65 6e .a.preprocessor.macro..Equivalen
cef40 74 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f t.to...........<a.href="https://
cef60 72 65 6c 65 61 73 65 73 2e 6c 6c 76 6d 2e 6f 72 67 2f 31 32 2e 30 2e 30 2f 74 6f 6f 6c 73 2f 63 releases.llvm.org/12.0.0/tools/c
cef80 6c 61 6e 67 2f 64 6f 63 73 2f 43 6c 61 6e 67 43 6f 6d 6d 61 6e 64 4c 69 6e 65 52 65 66 65 72 65 lang/docs/ClangCommandLineRefere
cefa0 6e 63 65 2e 68 74 6d 6c 23 63 6d 64 6f 70 74 69 6f 6e 2d 63 6c 61 6e 67 2d 64 2d 6d 61 63 72 6f nce.html#cmdoption-clang-d-macro
cefc0 22 3e 0a 20 20 20 20 20 20 20 20 20 20 63 6c 61 6e 67 27 73 20 3c 6b 62 64 3e 2d 44 3c 2f 6b 62 ">...........clang's.<kbd>-D</kb
cefe0 64 3e 20 66 6c 61 67 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 d>.flag</a>..........</li>......
cf000 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6b 62 64 3e 2d 63 66 6c 61 67 73 20 5b ...<li>...........<kbd>-cflags.[
cf020 66 6c 61 67 73 5d 20 2d 2d 3c 2f 6b 62 64 3e 3a 20 50 61 73 73 20 61 72 62 69 74 72 61 72 79 20 flags].--</kbd>:.Pass.arbitrary.
cf040 61 64 64 69 74 69 6f 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 additional...........<a.href="ht
cf060 74 70 73 3a 2f 2f 72 65 6c 65 61 73 65 73 2e 6c 6c 76 6d 2e 6f 72 67 2f 31 32 2e 30 2e 30 2f 74 tps://releases.llvm.org/12.0.0/t
cf080 6f 6f 6c 73 2f 63 6c 61 6e 67 2f 64 6f 63 73 2f 43 6c 61 6e 67 43 6f 6d 6d 61 6e 64 4c 69 6e 65 ools/clang/docs/ClangCommandLine
cf0a0 52 65 66 65 72 65 6e 63 65 2e 68 74 6d 6c 22 3e 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 0a 20 20 20 Reference.html">command.line....
cf0c0 20 20 20 20 20 20 20 66 6c 61 67 73 3c 2f 61 3e 20 74 6f 20 63 6c 61 6e 67 2e 20 4e 6f 74 65 3a .......flags</a>.to.clang..Note:
cf0e0 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 6c 61 67 73 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 .the.list.of.flags.must.end.with
cf100 20 3c 6b 62 64 3e 2d 2d 3c 2f 6b 62 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 .<kbd>--</kbd>.........</li>....
cf120 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6b 62 64 3e 2d 74 61 72 67 65 74 .....<li>...........<kbd>-target
cf140 3c 2f 6b 62 64 3e 3a 20 54 68 65 20 3c 61 20 68 72 65 66 3d 22 23 54 61 72 67 65 74 73 22 3e 74 </kbd>:.The.<a.href="#Targets">t
cf160 61 72 67 65 74 20 74 72 69 70 6c 65 3c 2f 61 3e 20 66 6f 72 20 74 68 65 20 74 72 61 6e 73 6c 61 arget.triple</a>.for.the.transla
cf180 74 65 64 20 5a 69 67 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 6e 6f 20 74 61 ted.Zig.code............If.no.ta
cf1a0 72 67 65 74 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 68 rget.is.specified,.the.current.h
cf1c0 6f 73 74 20 74 61 72 67 65 74 20 77 69 6c 6c 20 62 65 20 75 73 65 64 2e 0a 20 20 20 20 20 20 20 ost.target.will.be.used.........
cf1e0 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 20 20 20 20 .</li>.......</ul>..............
cf200 3c 68 34 20 69 64 3d 22 55 73 69 6e 67 2d 2d 74 61 72 67 65 74 2d 61 6e 64 2d 2d 63 66 6c 61 67 <h4.id="Using--target-and--cflag
cf220 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 55 73 69 6e 67 2d s"><a.href="nav.xhtml#toc-Using-
cf240 2d 74 61 72 67 65 74 2d 61 6e 64 2d 2d 63 66 6c 61 67 73 22 3e 55 73 69 6e 67 20 2d 74 61 72 67 -target-and--cflags">Using.-targ
cf260 65 74 20 61 6e 64 20 2d 63 66 6c 61 67 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 et.and.-cflags</a>.<a.class="hdr
cf280 22 20 68 72 65 66 3d 22 23 55 73 69 6e 67 2d 2d 74 61 72 67 65 74 2d 61 6e 64 2d 2d 63 66 6c 61 ".href="#Using--target-and--cfla
cf2a0 67 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 gs">..</a></h4>........<p>......
cf2c0 20 20 20 3c 73 74 72 6f 6e 67 3e 49 6d 70 6f 72 74 61 6e 74 21 3c 2f 73 74 72 6f 6e 67 3e 20 57 ...<strong>Important!</strong>.W
cf2e0 68 65 6e 20 74 72 61 6e 73 6c 61 74 69 6e 67 20 43 20 63 6f 64 65 20 77 69 74 68 20 3c 6b 62 64 hen.translating.C.code.with.<kbd
cf300 3e 7a 69 67 20 74 72 61 6e 73 6c 61 74 65 2d 63 3c 2f 6b 62 64 3e 2c 0a 20 20 20 20 20 20 20 20 >zig.translate-c</kbd>,.........
cf320 79 6f 75 20 3c 73 74 72 6f 6e 67 3e 6d 75 73 74 3c 2f 73 74 72 6f 6e 67 3e 20 75 73 65 20 74 68 you.<strong>must</strong>.use.th
cf340 65 20 73 61 6d 65 20 3c 6b 62 64 3e 2d 74 61 72 67 65 74 3c 2f 6b 62 64 3e 20 74 72 69 70 6c 65 e.same.<kbd>-target</kbd>.triple
cf360 20 74 68 61 74 20 79 6f 75 20 77 69 6c 6c 20 75 73 65 20 77 68 65 6e 20 63 6f 6d 70 69 6c 69 6e .that.you.will.use.when.compilin
cf380 67 0a 20 20 20 20 20 20 20 20 74 68 65 20 74 72 61 6e 73 6c 61 74 65 64 20 63 6f 64 65 2e 20 49 g.........the.translated.code..I
cf3a0 6e 20 61 64 64 69 74 69 6f 6e 2c 20 79 6f 75 20 3c 73 74 72 6f 6e 67 3e 6d 75 73 74 3c 2f 73 74 n.addition,.you.<strong>must</st
cf3c0 72 6f 6e 67 3e 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 65 20 3c 6b 62 64 3e 2d 63 66 6c 61 rong>.ensure.that.the.<kbd>-cfla
cf3e0 67 73 3c 2f 6b 62 64 3e 20 75 73 65 64 2c 0a 20 20 20 20 20 20 20 20 69 66 20 61 6e 79 2c 20 6d gs</kbd>.used,.........if.any,.m
cf400 61 74 63 68 20 74 68 65 20 63 66 6c 61 67 73 20 75 73 65 64 20 62 79 20 63 6f 64 65 20 6f 6e 20 atch.the.cflags.used.by.code.on.
cf420 74 68 65 20 74 61 72 67 65 74 20 73 79 73 74 65 6d 2e 20 55 73 69 6e 67 20 74 68 65 20 69 6e 63 the.target.system..Using.the.inc
cf440 6f 72 72 65 63 74 20 3c 6b 62 64 3e 2d 74 61 72 67 65 74 3c 2f 6b 62 64 3e 0a 20 20 20 20 20 20 orrect.<kbd>-target</kbd>.......
cf460 20 20 6f 72 20 3c 6b 62 64 3e 2d 63 66 6c 61 67 73 3c 2f 6b 62 64 3e 20 63 6f 75 6c 64 20 72 65 ..or.<kbd>-cflags</kbd>.could.re
cf480 73 75 6c 74 20 69 6e 20 63 6c 61 6e 67 20 6f 72 20 5a 69 67 20 70 61 72 73 65 20 66 61 69 6c 75 sult.in.clang.or.Zig.parse.failu
cf4a0 72 65 73 2c 20 6f 72 20 73 75 62 74 6c 65 20 41 42 49 20 69 6e 63 6f 6d 70 61 74 69 62 69 6c 69 res,.or.subtle.ABI.incompatibili
cf4c0 74 69 65 73 0a 20 20 20 20 20 20 20 20 77 68 65 6e 20 6c 69 6e 6b 69 6e 67 20 77 69 74 68 20 43 ties.........when.linking.with.C
cf4e0 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 66 69 67 75 72 65 3e .code........</p>.......<figure>
cf500 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 63 2d 63 61 70 22 3e 3c 63 69 74 65 20 <figcaption.class="c-cap"><cite.
cf520 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 76 61 72 79 74 61 72 67 65 74 2e 68 3c 2f 63 69 74 65 3e class="file">varytarget.h</cite>
cf540 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 6c 6f 6e 67 20 46 4f 4f </figcaption><pre><code>long.FOO
cf560 20 3d 20 5f 5f 4c 4f 4e 47 5f 4d 41 58 5f 5f 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 .=.__LONG_MAX__;</code></pre></f
cf580 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e igure>.......<figure><figcaption
cf5a0 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 .class="shell-cap">Shell</figcap
cf5c0 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 72 61 6e 73 tion><pre><samp>$.<kbd>zig.trans
cf5e0 6c 61 74 65 2d 63 20 2d 74 61 72 67 65 74 20 74 68 75 6d 62 2d 66 72 65 65 73 74 61 6e 64 69 6e late-c.-target.thumb-freestandin
cf600 67 2d 67 6e 75 65 61 62 69 68 66 20 76 61 72 79 74 61 72 67 65 74 2e 68 7c 67 72 65 70 20 46 4f g-gnueabihf.varytarget.h|grep.FO
cf620 4f 3c 2f 6b 62 64 3e 0a 70 75 62 20 65 78 70 6f 72 74 20 76 61 72 20 46 4f 4f 3a 20 63 5f 6c 6f O</kbd>.pub.export.var.FOO:.c_lo
cf640 6e 67 20 3d 20 32 31 34 37 34 38 33 36 34 37 3b 0a 24 20 3c 6b 62 64 3e 7a 69 67 20 74 72 61 6e ng.=.2147483647;.$.<kbd>zig.tran
cf660 73 6c 61 74 65 2d 63 20 2d 74 61 72 67 65 74 20 78 38 36 5f 36 34 2d 6d 61 63 6f 73 2d 67 6e 75 slate-c.-target.x86_64-macos-gnu
cf680 20 76 61 72 79 74 61 72 67 65 74 2e 68 7c 67 72 65 70 20 46 4f 4f 3c 2f 6b 62 64 3e 0a 70 75 62 .varytarget.h|grep.FOO</kbd>.pub
cf6a0 20 65 78 70 6f 72 74 20 76 61 72 20 46 4f 4f 3a 20 63 5f 6c 6f 6e 67 20 3d 20 39 32 32 33 33 37 .export.var.FOO:.c_long.=.922337
cf6c0 32 30 33 36 38 35 34 37 37 35 38 30 37 3b 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 2036854775807;.</samp></pre></fi
cf6e0 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 gure>.......<figure><figcaption.
cf700 63 6c 61 73 73 3d 22 63 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 class="c-cap"><cite.class="file"
cf720 3e 76 61 72 79 63 66 6c 61 67 73 2e 68 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e >varycflags.h</cite></figcaption
cf740 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 65 6e 75 6d 20 46 4f 4f 20 7b 20 42 41 52 20 7d 3b 0a 69 6e ><pre><code>enum.FOO.{.BAR.};.in
cf760 74 20 64 6f 5f 73 6f 6d 65 74 68 69 6e 67 28 65 6e 75 6d 20 46 4f 4f 20 66 6f 6f 29 3b 3c 2f 63 t.do_something(enum.FOO.foo);</c
cf780 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 ode></pre></figure>.......<figur
cf7a0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e e><figcaption.class="shell-cap">
cf7c0 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c Shell</figcaption><pre><samp>$.<
cf7e0 6b 62 64 3e 7a 69 67 20 74 72 61 6e 73 6c 61 74 65 2d 63 20 76 61 72 79 63 66 6c 61 67 73 2e 68 kbd>zig.translate-c.varycflags.h
cf800 7c 67 72 65 70 20 2d 42 31 20 64 6f 5f 73 6f 6d 65 74 68 69 6e 67 3c 2f 6b 62 64 3e 0a 70 75 62 |grep.-B1.do_something</kbd>.pub
cf820 20 63 6f 6e 73 74 20 65 6e 75 6d 5f 46 4f 4f 20 3d 20 63 5f 75 69 6e 74 3b 0a 70 75 62 20 65 78 .const.enum_FOO.=.c_uint;.pub.ex
cf840 74 65 72 6e 20 66 6e 20 64 6f 5f 73 6f 6d 65 74 68 69 6e 67 28 66 6f 6f 3a 20 65 6e 75 6d 5f 46 tern.fn.do_something(foo:.enum_F
cf860 4f 4f 29 20 63 5f 69 6e 74 3b 0a 24 20 3c 6b 62 64 3e 7a 69 67 20 74 72 61 6e 73 6c 61 74 65 2d OO).c_int;.$.<kbd>zig.translate-
cf880 63 20 2d 63 66 6c 61 67 73 20 2d 66 73 68 6f 72 74 2d 65 6e 75 6d 73 20 2d 2d 20 76 61 72 79 63 c.-cflags.-fshort-enums.--.varyc
cf8a0 66 6c 61 67 73 2e 68 7c 67 72 65 70 20 2d 42 31 20 64 6f 5f 73 6f 6d 65 74 68 69 6e 67 3c 2f 6b flags.h|grep.-B1.do_something</k
cf8c0 62 64 3e 0a 70 75 62 20 63 6f 6e 73 74 20 65 6e 75 6d 5f 46 4f 4f 20 3d 20 75 38 3b 0a 70 75 62 bd>.pub.const.enum_FOO.=.u8;.pub
cf8e0 20 65 78 74 65 72 6e 20 66 6e 20 64 6f 5f 73 6f 6d 65 74 68 69 6e 67 28 66 6f 6f 3a 20 65 6e 75 .extern.fn.do_something(foo:.enu
cf900 6d 5f 46 4f 4f 29 20 63 5f 69 6e 74 3b 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 m_FOO).c_int;.</samp></pre></fig
cf920 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 34 20 69 64 3d 22 63 49 6d 70 6f 72 ure>..............<h4.id="cImpor
cf940 74 2d 76 73 2d 74 72 61 6e 73 6c 61 74 65 2d 63 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 t-vs-translate-c"><a.href="nav.x
cf960 68 74 6d 6c 23 74 6f 63 2d 63 49 6d 70 6f 72 74 2d 76 73 2d 74 72 61 6e 73 6c 61 74 65 2d 63 22 html#toc-cImport-vs-translate-c"
cf980 3e 40 63 49 6d 70 6f 72 74 20 76 73 20 74 72 61 6e 73 6c 61 74 65 2d 63 3c 2f 61 3e 20 3c 61 20 >@cImport.vs.translate-c</a>.<a.
cf9a0 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 2d 76 73 2d 74 72 class="hdr".href="#cImport-vs-tr
cf9c0 61 6e 73 6c 61 74 65 2d 63 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 34 3e 0a 0a 20 20 20 20 20 20 3c 70 anslate-c">..</a></h4>........<p
cf9e0 3e 3c 63 6f 64 65 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 ><code><span.class="tok-builtin"
cfa00 3e 40 63 49 6d 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 6b 62 64 >@cImport</span></code>.and.<kbd
cfa20 3e 7a 69 67 20 74 72 61 6e 73 6c 61 74 65 2d 63 3c 2f 6b 62 64 3e 20 75 73 65 20 74 68 65 20 73 >zig.translate-c</kbd>.use.the.s
cfa40 61 6d 65 20 75 6e 64 65 72 6c 79 69 6e 67 0a 20 20 20 20 20 20 43 20 74 72 61 6e 73 6c 61 74 69 ame.underlying.......C.translati
cfa60 6f 6e 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2c 20 73 6f 20 6f 6e 20 61 20 74 65 63 68 6e 69 on.functionality,.so.on.a.techni
cfa80 63 61 6c 20 6c 65 76 65 6c 20 74 68 65 79 20 61 72 65 20 65 71 75 69 76 61 6c 65 6e 74 2e 20 49 cal.level.they.are.equivalent..I
cfaa0 6e 20 70 72 61 63 74 69 63 65 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c n.practice,.......<code><span.cl
cfac0 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 61 6e ass="tok-builtin">@cImport</span
cfae0 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 75 73 65 66 75 6c 20 61 73 20 61 20 77 61 79 20 74 6f 20 71 ></code>.is.useful.as.a.way.to.q
cfb00 75 69 63 6b 6c 79 20 61 6e 64 20 65 61 73 69 6c 79 20 61 63 63 65 73 73 20 6e 75 6d 65 72 69 63 uickly.and.easily.access.numeric
cfb20 20 63 6f 6e 73 74 61 6e 74 73 2c 20 74 79 70 65 64 65 66 73 2c 0a 20 20 20 20 20 20 61 6e 64 20 .constants,.typedefs,.......and.
cfb40 72 65 63 6f 72 64 20 74 79 70 65 73 20 77 69 74 68 6f 75 74 20 6e 65 65 64 69 6e 67 20 61 6e 79 record.types.without.needing.any
cfb60 20 65 78 74 72 61 20 73 65 74 75 70 2e 20 49 66 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 70 61 73 .extra.setup..If.you.need.to.pas
cfb80 73 20 3c 61 20 68 72 65 66 3d 22 23 55 73 69 6e 67 2d 2d 74 61 72 67 65 74 2d 61 6e 64 2d 2d 63 s.<a.href="#Using--target-and--c
cfba0 66 6c 61 67 73 22 3e 63 66 6c 61 67 73 3c 2f 61 3e 0a 20 20 20 20 20 20 74 6f 20 63 6c 61 6e 67 flags">cflags</a>.......to.clang
cfbc0 2c 20 6f 72 20 69 66 20 79 6f 75 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 65 64 69 74 20 74 ,.or.if.you.would.like.to.edit.t
cfbe0 68 65 20 74 72 61 6e 73 6c 61 74 65 64 20 63 6f 64 65 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d he.translated.code,.it.is.recomm
cfc00 65 6e 64 65 64 20 74 6f 20 75 73 65 0a 20 20 20 20 20 20 3c 6b 62 64 3e 7a 69 67 20 74 72 61 6e ended.to.use.......<kbd>zig.tran
cfc20 73 6c 61 74 65 2d 63 3c 2f 6b 62 64 3e 20 61 6e 64 20 73 61 76 65 20 74 68 65 20 72 65 73 75 6c slate-c</kbd>.and.save.the.resul
cfc40 74 73 20 74 6f 20 61 20 66 69 6c 65 2e 20 43 6f 6d 6d 6f 6e 20 72 65 61 73 6f 6e 73 20 66 6f 72 ts.to.a.file..Common.reasons.for
cfc60 20 65 64 69 74 69 6e 67 0a 20 20 20 20 20 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 63 6f 64 .editing.......the.generated.cod
cfc80 65 20 69 6e 63 6c 75 64 65 3a 20 63 68 61 6e 67 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e.include:.changing.<code><span.
cfca0 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 class="tok-kw">anytype</span></c
cfcc0 6f 64 65 3e 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 ode>.parameters.in.function-like
cfce0 20 6d 61 63 72 6f 73 20 74 6f 20 6d 6f 72 65 0a 20 20 20 20 20 20 73 70 65 63 69 66 69 63 20 74 .macros.to.more.......specific.t
cfd00 79 70 65 73 3b 20 63 68 61 6e 67 69 6e 67 20 3c 63 6f 64 65 3e 5b 2a 63 5d 54 3c 2f 63 6f 64 65 ypes;.changing.<code>[*c]T</code
cfd20 3e 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 3c 63 6f 64 65 3e 5b 2a 5d 54 3c 2f 63 6f 64 65 3e 20 >.pointers.to.<code>[*]T</code>.
cfd40 6f 72 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 2a 54 3c 2f 63 6f 64 65 3e 20 70 6f 69 6e 74 65 72 or.......<code>*T</code>.pointer
cfd60 73 20 66 6f 72 20 69 6d 70 72 6f 76 65 64 20 74 79 70 65 20 73 61 66 65 74 79 3b 20 61 6e 64 0a s.for.improved.type.safety;.and.
cfd80 20 20 20 20 20 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 79 ......<a.href="#setRuntimeSafety
cfda0 22 3e 65 6e 61 62 6c 69 6e 67 20 6f 72 20 64 69 73 61 62 6c 69 6e 67 20 72 75 6e 74 69 6d 65 20 ">enabling.or.disabling.runtime.
cfdc0 73 61 66 65 74 79 3c 2f 61 3e 20 77 69 74 68 69 6e 20 73 70 65 63 69 66 69 63 20 66 75 6e 63 74 safety</a>.within.specific.funct
cfde0 69 6f 6e 73 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 70 ions........</p>..............<p
cfe00 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="
cfe20 23 54 61 72 67 65 74 73 22 3e 54 61 72 67 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c #Targets">Targets</a></li>.<li><
cfe40 61 20 68 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 43 20 54 79 a.href="#C-Type-Primitives">C.Ty
cfe60 70 65 20 50 72 69 6d 69 74 69 76 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 pe.Primitives</a></li>.<li><a.hr
cfe80 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 3c 2f 6c 69 3e ef="#Pointers">Pointers</a></li>
cfea0 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 22 3e 43 20 50 6f 69 .<li><a.href="#C-Pointers">C.Poi
cfec0 6e 74 65 72 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 49 6d 70 nters</a></li>.<li><a.href="#Imp
cfee0 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 66 ort-from-C-Header-File">Import.f
cff00 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 3c 6c 69 3e 3c rom.C.Header.File</a></li>.<li><
cff20 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 3e a.href="#cInclude">@cInclude</a>
cff40 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 </li>.<li><a.href="#cImport">@cI
cff60 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 73 65 74 mport</a></li>.<li><a.href="#set
cff80 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 79 RuntimeSafety">@setRuntimeSafety
cffa0 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
cffc0 33 20 69 64 3d 22 43 2d 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 43 61 63 68 69 6e 67 22 3e 3c 61 20 3.id="C-Translation-Caching"><a.
cffe0 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 2d 54 72 61 6e 73 6c 61 74 69 6f href="nav.xhtml#toc-C-Translatio
d0000 6e 2d 43 61 63 68 69 6e 67 22 3e 43 20 54 72 61 6e 73 6c 61 74 69 6f 6e 20 43 61 63 68 69 6e 67 n-Caching">C.Translation.Caching
d0020 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 2d 54 72 61 </a>.<a.class="hdr".href="#C-Tra
d0040 6e 73 6c 61 74 69 6f 6e 2d 43 61 63 68 69 6e 67 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 nslation-Caching">..</a></h3>...
d0060 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 68 65 20 43 20 74 72 61 6e 73 6c 61 74 69 .....<p>.........The.C.translati
d0080 6f 6e 20 66 65 61 74 75 72 65 20 28 77 68 65 74 68 65 72 20 75 73 65 64 20 76 69 61 20 3c 6b 62 on.feature.(whether.used.via.<kb
d00a0 64 3e 7a 69 67 20 74 72 61 6e 73 6c 61 74 65 2d 63 3c 2f 6b 62 64 3e 20 6f 72 0a 20 20 20 20 20 d>zig.translate-c</kbd>.or......
d00c0 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ...<code><span.class="tok-builti
d00e0 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 29 20 69 6e 74 65 67 n">@cImport</span></code>).integ
d0100 72 61 74 65 73 20 77 69 74 68 20 74 68 65 20 5a 69 67 20 63 61 63 68 69 6e 67 20 73 79 73 74 65 rates.with.the.Zig.caching.syste
d0120 6d 2e 20 53 75 62 73 65 71 75 65 6e 74 20 72 75 6e 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 m..Subsequent.runs.with.........
d0140 74 68 65 20 73 61 6d 65 20 73 6f 75 72 63 65 20 66 69 6c 65 2c 20 74 61 72 67 65 74 2c 20 61 6e the.same.source.file,.target,.an
d0160 64 20 63 66 6c 61 67 73 20 77 69 6c 6c 20 75 73 65 20 74 68 65 20 63 61 63 68 65 20 69 6e 73 74 d.cflags.will.use.the.cache.inst
d0180 65 61 64 20 6f 66 20 72 65 70 65 61 74 65 64 6c 79 20 74 72 61 6e 73 6c 61 74 69 6e 67 0a 20 20 ead.of.repeatedly.translating...
d01a0 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ......the.same.code........</p>.
d01c0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 6f 20 73 65 65 20 77 68 65 72 65 20 74 ......<p>.........To.see.where.t
d01e0 68 65 20 63 61 63 68 65 64 20 66 69 6c 65 73 20 61 72 65 20 73 74 6f 72 65 64 20 77 68 65 6e 20 he.cached.files.are.stored.when.
d0200 63 6f 6d 70 69 6c 69 6e 67 20 63 6f 64 65 20 74 68 61 74 20 75 73 65 73 20 3c 63 6f 64 65 3e 3c compiling.code.that.uses.<code><
d0220 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 70 6f 72 span.class="tok-builtin">@cImpor
d0240 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 75 73 65 20 74 68 65 t</span></code>,.........use.the
d0260 20 3c 6b 62 64 3e 2d 2d 76 65 72 62 6f 73 65 2d 63 69 6d 70 6f 72 74 3c 2f 6b 62 64 3e 20 66 6c .<kbd>--verbose-cimport</kbd>.fl
d0280 61 67 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 ag:.......</p>.......<figure><fi
d02a0 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 gcaption.class="zig-cap"><cite.c
d02c0 6c 61 73 73 3d 22 66 69 6c 65 22 3e 76 65 72 62 6f 73 65 5f 63 69 6d 70 6f 72 74 5f 66 6c 61 67 lass="file">verbose_cimport_flag
d02e0 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f .zig</cite></figcaption><pre><co
d0300 64 65 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 de><span.class="tok-kw">const</s
d0320 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 6c 74 69 pan>.c.=.<span.class="tok-builti
d0340 6e 22 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 n">@cImport</span>({.....<span.c
d0360 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 70 61 lass="tok-builtin">@cDefine</spa
d0380 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 5f n>(<span.class="tok-str">&quot;_
d03a0 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 6e 3e NO_CRT_STDIO_INLINE&quot;</span>
d03c0 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 31 26 ,.<span.class="tok-str">&quot;1&
d03e0 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 22 quot;</span>);.....<span.class="
d0400 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 3c 73 tok-builtin">@cInclude</span>(<s
d0420 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 6f 2e pan.class="tok-str">&quot;stdio.
d0440 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 73 73 h&quot;</span>);.});.<span.class
d0460 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
d0480 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=
d04a0 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 61 "tok-fn">main</span>().<span.cla
d04c0 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>.{.....
d04e0 5f 20 3d 20 63 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 _.=.c;.}</code></pre></figure><f
d0500 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 igure><figcaption.class="shell-c
d0520 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 ap">Shell</figcaption><pre><samp
d0540 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 76 65 72 62 6f 73 65 5f 63 69 >$.<kbd>zig.build-exe.verbose_ci
d0560 6d 70 6f 72 74 5f 66 6c 61 67 2e 7a 69 67 20 2d 6c 63 20 2d 2d 76 65 72 62 6f 73 65 2d 63 69 6d mport_flag.zig.-lc.--verbose-cim
d0580 70 6f 72 74 3c 2f 6b 62 64 3e 0a 69 6e 66 6f 28 63 6f 6d 70 69 6c 61 74 69 6f 6e 29 3a 20 43 20 port</kbd>.info(compilation):.C.
d05a0 69 6d 70 6f 72 74 20 73 6f 75 72 63 65 3a 20 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a 69 import.source:./home/andy/src/zi
d05c0 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 7a 69 67 2d 63 61 63 68 65 2f 6f 2f g-0.12.x/docgen_tmp/zig-cache/o/
d05e0 62 61 63 34 62 34 33 66 65 39 33 61 33 32 33 66 33 61 32 39 65 63 39 39 65 38 61 35 63 35 39 32 bac4b43fe93a323f3a29ec99e8a5c592
d0600 2f 63 69 6d 70 6f 72 74 2e 68 0a 69 6e 66 6f 28 63 6f 6d 70 69 6c 61 74 69 6f 6e 29 3a 20 43 20 /cimport.h.info(compilation):.C.
d0620 69 6d 70 6f 72 74 20 2e 64 20 66 69 6c 65 3a 20 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 2f 7a import..d.file:./home/andy/src/z
d0640 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 7a 69 67 2d 63 61 63 68 65 2f 6f ig-0.12.x/docgen_tmp/zig-cache/o
d0660 2f 62 61 63 34 62 34 33 66 65 39 33 61 33 32 33 66 33 61 32 39 65 63 39 39 65 38 61 35 63 35 39 /bac4b43fe93a323f3a29ec99e8a5c59
d0680 32 2f 63 69 6d 70 6f 72 74 2e 68 2e 64 0a 69 6e 66 6f 28 63 6f 6d 70 69 6c 61 74 69 6f 6e 29 3a 2/cimport.h.d.info(compilation):
d06a0 20 43 20 69 6d 70 6f 72 74 20 6f 75 74 70 75 74 3a 20 2f 68 6f 6d 65 2f 61 6e 64 79 2f 73 72 63 .C.import.output:./home/andy/src
d06c0 2f 7a 69 67 2d 30 2e 31 32 2e 78 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 7a 69 67 2d 63 61 63 68 65 /zig-0.12.x/docgen_tmp/zig-cache
d06e0 2f 6f 2f 38 64 31 32 32 66 35 65 34 63 61 38 35 65 61 36 38 39 66 66 34 37 65 61 66 64 31 32 61 /o/8d122f5e4ca85ea689ff47eafd12a
d0700 34 39 37 2f 63 69 6d 70 6f 72 74 2e 7a 69 67 0a 4c 4c 56 4d 20 45 6d 69 74 20 4f 62 6a 65 63 74 497/cimport.zig.LLVM.Emit.Object
d0720 2e 2e 2e 20 5b 32 30 44 5b 30 4b 4c 4c 56 4d 20 45 6d 69 74 20 4f 62 6a 65 63 74 2e 2e 2e 20 5b ....[20D[0KLLVM.Emit.Object....[
d0740 32 30 44 5b 30 4b 4c 4c 44 20 4c 69 6e 6b 2e 2e 2e 20 5b 31 32 44 5b 30 4b 24 20 2e 2f 76 65 72 20D[0KLLD.Link....[12D[0K$../ver
d0760 62 6f 73 65 5f 63 69 6d 70 6f 72 74 5f 66 6c 61 67 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c bose_cimport_flag.</samp></pre><
d0780 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 3c 63 6f 64 65 /figure>.......<p>.........<code
d07a0 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 69 6d 70 6f 72 74 2e 68 3c 2f 63 6f 64 65 3e 20 63 .class="file">cimport.h</code>.c
d07c0 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 69 6c 65 20 74 6f 20 74 72 61 6e 73 6c 61 74 65 20 28 63 ontains.the.file.to.translate.(c
d07e0 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 63 61 6c 6c 73 20 74 6f 0a 20 20 20 20 20 20 20 onstructed.from.calls.to........
d0800 20 3c 63 6f 64 65 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 .<code><span.class="tok-builtin"
d0820 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e >@cInclude</span></code>,.<code>
d0840 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 66 69 <span.class="tok-builtin">@cDefi
d0860 6e 65 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 3e 3c 73 70 61 ne</span></code>,.and.<code><spa
d0880 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 73 n.class="tok-builtin">@cUndef</s
d08a0 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 2c 0a 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 pan></code>),.........<code.clas
d08c0 73 3d 22 66 69 6c 65 22 3e 63 69 6d 70 6f 72 74 2e 68 2e 64 3c 2f 63 6f 64 65 3e 20 69 73 20 74 s="file">cimport.h.d</code>.is.t
d08e0 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 20 61 6e he.list.of.file.dependencies,.an
d0900 64 0a 20 20 20 20 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 63 69 6d d.........<code.class="file">cim
d0920 70 6f 72 74 2e 7a 69 67 3c 2f 63 6f 64 65 3e 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 74 72 61 port.zig</code>.contains.the.tra
d0940 6e 73 6c 61 74 65 64 20 6f 75 74 70 75 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 nslated.output........</p>......
d0960 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
d0980 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 6c 65 22 3e 49 f="#Import-from-C-Header-File">I
d09a0 6d 70 6f 72 74 20 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 mport.from.C.Header.File</a></li
d09c0 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 2d 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 43 4c >.<li><a.href="#C-Translation-CL
d09e0 49 22 3e 43 20 54 72 61 6e 73 6c 61 74 69 6f 6e 20 43 4c 49 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c I">C.Translation.CLI</a></li>.<l
d0a00 69 3e 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 i><a.href="#cInclude">@cInclude<
d0a20 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 6d 70 6f 72 74 22 3e /a></li>.<li><a.href="#cImport">
d0a40 40 63 49 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 20 20 0a @cImport</a></li>.</ul>.........
d0a60 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 66 61 69 6c 75 72 ......<h3.id="Translation-failur
d0a80 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 72 61 6e 73 es"><a.href="nav.xhtml#toc-Trans
d0aa0 6c 61 74 69 6f 6e 2d 66 61 69 6c 75 72 65 73 22 3e 54 72 61 6e 73 6c 61 74 69 6f 6e 20 66 61 69 lation-failures">Translation.fai
d0ac0 6c 75 72 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 lures</a>.<a.class="hdr".href="#
d0ae0 54 72 61 6e 73 6c 61 74 69 6f 6e 2d 66 61 69 6c 75 72 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 Translation-failures">..</a></h3
d0b00 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 53 6f 6d 65 20 43 20 63 6f 6e 73 >........<p>.........Some.C.cons
d0b20 74 72 75 63 74 73 20 63 61 6e 6e 6f 74 20 62 65 20 74 72 61 6e 73 6c 61 74 65 64 20 74 6f 20 5a tructs.cannot.be.translated.to.Z
d0b40 69 67 20 2d 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 3c 65 6d 3e 67 6f 74 6f 3c 2f 65 6d 3e 2c ig.-.for.example,.<em>goto</em>,
d0b60 0a 20 20 20 20 20 20 20 20 73 74 72 75 63 74 73 20 77 69 74 68 20 62 69 74 66 69 65 6c 64 73 2c .........structs.with.bitfields,
d0b80 20 61 6e 64 20 74 6f 6b 65 6e 2d 70 61 73 74 69 6e 67 20 6d 61 63 72 6f 73 2e 20 5a 69 67 20 65 .and.token-pasting.macros..Zig.e
d0ba0 6d 70 6c 6f 79 73 20 3c 65 6d 3e 64 65 6d 6f 74 69 6f 6e 3c 2f 65 6d 3e 20 74 6f 20 61 6c 6c 6f mploys.<em>demotion</em>.to.allo
d0bc0 77 20 74 72 61 6e 73 6c 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 74 6f 20 63 6f 6e 74 69 6e 75 w.translation.........to.continu
d0be0 65 20 69 6e 20 74 68 65 20 66 61 63 65 20 6f 66 20 6e 6f 6e 2d 74 72 61 6e 73 6c 61 74 61 62 6c e.in.the.face.of.non-translatabl
d0c00 65 20 65 6e 74 69 74 69 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e e.entities........</p>.......<p>
d0c20 0a 20 20 20 20 20 20 20 20 44 65 6d 6f 74 69 6f 6e 20 63 6f 6d 65 73 20 69 6e 20 74 68 72 65 65 .........Demotion.comes.in.three
d0c40 20 76 61 72 69 65 74 69 65 73 20 2d 20 3c 61 20 68 72 65 66 3d 22 23 6f 70 61 71 75 65 22 3e 6f .varieties.-.<a.href="#opaque">o
d0c60 70 61 71 75 65 3c 2f 61 3e 2c 20 3c 65 6d 3e 65 78 74 65 72 6e 3c 2f 65 6d 3e 2c 20 61 6e 64 0a paque</a>,.<em>extern</em>,.and.
d0c80 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 ........<code><span.class="tok-b
d0ca0 75 69 6c 74 69 6e 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f uiltin">@compileError</span></co
d0cc0 64 65 3e 2e 0a 0a 20 20 20 20 20 20 20 20 43 20 73 74 72 75 63 74 73 20 61 6e 64 20 75 6e 69 6f de>...........C.structs.and.unio
d0ce0 6e 73 20 74 68 61 74 20 63 61 6e 6e 6f 74 20 62 65 20 74 72 61 6e 73 6c 61 74 65 64 20 63 6f 72 ns.that.cannot.be.translated.cor
d0d00 72 65 63 74 6c 79 20 77 69 6c 6c 20 62 65 20 74 72 61 6e 73 6c 61 74 65 64 20 61 73 20 3c 63 6f rectly.will.be.translated.as.<co
d0d20 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 70 61 71 75 65 3c 2f de><span.class="tok-kw">opaque</
d0d40 73 70 61 6e 3e 7b 7d 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e span>{}</code>..........Function
d0d60 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 6f 70 61 71 75 65 20 74 79 70 65 73 20 6f 72 20 63 s.that.contain.opaque.types.or.c
d0d80 6f 64 65 20 63 6f 6e 73 74 72 75 63 74 73 20 74 68 61 74 20 63 61 6e 6e 6f 74 20 62 65 20 74 72 ode.constructs.that.cannot.be.tr
d0da0 61 6e 73 6c 61 74 65 64 20 77 69 6c 6c 20 62 65 20 64 65 6d 6f 74 65 64 0a 20 20 20 20 20 20 20 anslated.will.be.demoted........
d0dc0 20 74 6f 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 65 .to.<code><span.class="tok-kw">e
d0de0 78 74 65 72 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 xtern</span></code>.declarations
d0e00 2e 0a 0a 20 20 20 20 20 20 20 20 54 68 75 73 2c 20 6e 6f 6e 2d 74 72 61 6e 73 6c 61 74 61 62 6c ...........Thus,.non-translatabl
d0e20 65 20 74 79 70 65 73 20 63 61 6e 20 73 74 69 6c 6c 20 62 65 20 75 73 65 64 20 61 73 20 70 6f 69 e.types.can.still.be.used.as.poi
d0e40 6e 74 65 72 73 2c 20 61 6e 64 20 6e 6f 6e 2d 74 72 61 6e 73 6c 61 74 61 62 6c 65 20 66 75 6e 63 nters,.and.non-translatable.func
d0e60 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 73 6f 20 6c tions.........can.be.called.so.l
d0e80 6f 6e 67 20 61 73 20 74 68 65 20 6c 69 6e 6b 65 72 20 69 73 20 61 77 61 72 65 20 6f 66 20 74 68 ong.as.the.linker.is.aware.of.th
d0ea0 65 20 63 6f 6d 70 69 6c 65 64 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a e.compiled.function........</p>.
d0ec0 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c ......<p>.........<code><span.cl
d0ee0 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 3c ass="tok-builtin">@compileError<
d0f00 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 69 73 20 75 73 65 64 20 77 68 65 6e 20 74 6f 70 2d 6c /span></code>.is.used.when.top-l
d0f20 65 76 65 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 28 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c evel.definitions.(global.variabl
d0f40 65 73 2c 0a 20 20 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 74 6f 74 79 70 65 73 2c es,.........function.prototypes,
d0f60 20 6d 61 63 72 6f 73 29 20 63 61 6e 6e 6f 74 20 62 65 20 74 72 61 6e 73 6c 61 74 65 64 20 6f 72 .macros).cannot.be.translated.or
d0f80 20 64 65 6d 6f 74 65 64 2e 20 53 69 6e 63 65 20 5a 69 67 20 75 73 65 73 20 6c 61 7a 79 20 61 6e .demoted..Since.Zig.uses.lazy.an
d0fa0 61 6c 79 73 69 73 20 66 6f 72 0a 20 20 20 20 20 20 20 20 74 6f 70 2d 6c 65 76 65 6c 20 64 65 63 alysis.for.........top-level.dec
d0fc0 6c 61 72 61 74 69 6f 6e 73 2c 20 75 6e 74 72 61 6e 73 6c 61 74 61 62 6c 65 20 65 6e 74 69 74 69 larations,.untranslatable.entiti
d0fe0 65 73 20 77 69 6c 6c 20 6e 6f 74 20 63 61 75 73 65 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f es.will.not.cause.a.compile.erro
d1000 72 20 69 6e 20 79 6f 75 72 20 63 6f 64 65 20 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 79 6f r.in.your.code.unless.........yo
d1020 75 20 61 63 74 75 61 6c 6c 79 20 75 73 65 20 74 68 65 6d 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a u.actually.use.them........</p>.
d1040 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><
d1060 61 20 68 72 65 66 3d 22 23 6f 70 61 71 75 65 22 3e 6f 70 61 71 75 65 3c 2f 61 3e 3c 2f 6c 69 3e a.href="#opaque">opaque</a></li>
d1080 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 22 3e 65 78 74 65 72 6e 3c 2f 61 .<li><a.href="#extern">extern</a
d10a0 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 69 6c 65 45 72 72 6f ></li>.<li><a.href="#compileErro
d10c0 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 3c 2f 75 6c 3e 0a r">@compileError</a></li>.</ul>.
d10e0 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 2d 4d 61 63 72 6f 73 22 3e ..............<h3.id="C-Macros">
d1100 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 2d 4d 61 63 72 6f 73 22 <a.href="nav.xhtml#toc-C-Macros"
d1120 3e 43 20 4d 61 63 72 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 >C.Macros</a>.<a.class="hdr".hre
d1140 66 3d 22 23 43 2d 4d 61 63 72 6f 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 f="#C-Macros">..</a></h3>.......
d1160 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 43 20 54 72 61 6e 73 6c 61 74 69 6f 6e 20 6d 61 6b 65 73 .<p>.........C.Translation.makes
d1180 20 61 20 62 65 73 74 2d 65 66 66 6f 72 74 20 61 74 74 65 6d 70 74 20 74 6f 20 74 72 61 6e 73 6c .a.best-effort.attempt.to.transl
d11a0 61 74 65 20 66 75 6e 63 74 69 6f 6e 2d 6c 69 6b 65 20 6d 61 63 72 6f 73 20 69 6e 74 6f 20 65 71 ate.function-like.macros.into.eq
d11c0 75 69 76 61 6c 65 6e 74 0a 20 20 20 20 20 20 20 20 5a 69 67 20 66 75 6e 63 74 69 6f 6e 73 2e 20 uivalent.........Zig.functions..
d11e0 53 69 6e 63 65 20 43 20 6d 61 63 72 6f 73 20 6f 70 65 72 61 74 65 20 61 74 20 74 68 65 20 6c 65 Since.C.macros.operate.at.the.le
d1200 76 65 6c 20 6f 66 20 6c 65 78 69 63 61 6c 20 74 6f 6b 65 6e 73 2c 20 6e 6f 74 20 61 6c 6c 20 43 vel.of.lexical.tokens,.not.all.C
d1220 20 6d 61 63 72 6f 73 0a 20 20 20 20 20 20 20 20 63 61 6e 20 62 65 20 74 72 61 6e 73 6c 61 74 65 .macros.........can.be.translate
d1240 64 20 74 6f 20 5a 69 67 2e 20 4d 61 63 72 6f 73 20 74 68 61 74 20 63 61 6e 6e 6f 74 20 62 65 20 d.to.Zig..Macros.that.cannot.be.
d1260 74 72 61 6e 73 6c 61 74 65 64 20 77 69 6c 6c 20 62 65 20 64 65 6d 6f 74 65 64 20 74 6f 0a 20 20 translated.will.be.demoted.to...
d1280 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 ......<code><span.class="tok-bui
d12a0 6c 74 69 6e 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 ltin">@compileError</span></code
d12c0 3e 2e 20 4e 6f 74 65 20 74 68 61 74 20 43 20 63 6f 64 65 20 77 68 69 63 68 20 3c 65 6d 3e 75 73 >..Note.that.C.code.which.<em>us
d12e0 65 73 3c 2f 65 6d 3e 20 6d 61 63 72 6f 73 20 77 69 6c 6c 20 62 65 0a 20 20 20 20 20 20 20 20 74 es</em>.macros.will.be.........t
d1300 72 61 6e 73 6c 61 74 65 64 20 77 69 74 68 6f 75 74 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c ranslated.without.any.additional
d1320 20 69 73 73 75 65 73 20 28 73 69 6e 63 65 20 5a 69 67 20 6f 70 65 72 61 74 65 73 20 6f 6e 20 74 .issues.(since.Zig.operates.on.t
d1340 68 65 20 70 72 65 2d 70 72 6f 63 65 73 73 65 64 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 he.pre-processed.source.........
d1360 77 69 74 68 20 6d 61 63 72 6f 73 20 65 78 70 61 6e 64 65 64 29 2e 20 49 74 20 69 73 20 6d 65 72 with.macros.expanded)..It.is.mer
d1380 65 6c 79 20 74 68 65 20 6d 61 63 72 6f 73 20 74 68 65 6d 73 65 6c 76 65 73 20 77 68 69 63 68 20 ely.the.macros.themselves.which.
d13a0 6d 61 79 20 6e 6f 74 20 62 65 20 74 72 61 6e 73 6c 61 74 61 62 6c 65 20 74 6f 0a 20 20 20 20 20 may.not.be.translatable.to......
d13c0 20 20 20 5a 69 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 43 6f 6e 73 ...Zig........</p>.......<p>Cons
d13e0 69 64 65 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 61 6d 70 6c 65 3a 3c 2f 70 3e 0a ider.the.following.example:</p>.
d1400 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d ......<figure><figcaption.class=
d1420 22 63 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6d 61 63 72 6f "c-cap"><cite.class="file">macro
d1440 2e 63 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 .c</cite></figcaption><pre><code
d1460 3e 23 64 65 66 69 6e 65 20 4d 41 4b 45 4c 4f 43 41 4c 28 4e 41 4d 45 2c 20 49 4e 49 54 29 20 69 >#define.MAKELOCAL(NAME,.INIT).i
d1480 6e 74 20 4e 41 4d 45 20 3d 20 49 4e 49 54 0a 69 6e 74 20 66 6f 6f 28 76 6f 69 64 29 20 7b 0a 20 nt.NAME.=.INIT.int.foo(void).{..
d14a0 20 20 4d 41 4b 45 4c 4f 43 41 4c 28 61 2c 20 31 29 3b 0a 20 20 20 4d 41 4b 45 4c 4f 43 41 4c 28 ..MAKELOCAL(a,.1);....MAKELOCAL(
d14c0 62 2c 20 32 29 3b 0a 20 20 20 72 65 74 75 72 6e 20 61 20 2b 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e b,.2);....return.a.+.b;.}</code>
d14e0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 </pre></figure>.......<figure><f
d1500 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c igcaption.class="shell-cap">Shel
d1520 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e l</figcaption><pre><samp>$.<kbd>
d1540 7a 69 67 20 74 72 61 6e 73 6c 61 74 65 2d 63 20 6d 61 63 72 6f 2e 63 20 26 67 74 3b 20 6d 61 63 zig.translate-c.macro.c.&gt;.mac
d1560 72 6f 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 ro.zig</kbd>.</samp></pre></figu
d1580 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c re>.......<figure><figcaption.cl
d15a0 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 ass="zig-cap"><cite.class="file"
d15c0 3e 6d 61 63 72 6f 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 >macro.zig</cite></figcaption><p
d15e0 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 70 75 re><code><span.class="tok-kw">pu
d1600 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 65 78 b</span>.<span.class="tok-kw">ex
d1620 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 74 6f 6b 2d 6b 77 22 port</span>.<span.class="tok-kw"
d1640 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">
d1660 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 6b 2d 74 79 foo</span>().<span.class="tok-ty
d1680 70 65 22 3e 63 5f 69 6e 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 pe">c_int</span>.{.....<span.cla
d16a0 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 6e 20 ss="tok-kw">var</span>.a:.<span.
d16c0 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 61 6e 3e 20 3d 20 class="tok-type">c_int</span>.=.
d16e0 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
d1700 3e 3b 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 61 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 >;....._.=.&amp;a;.....<span.cla
d1720 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 61 6e 20 ss="tok-kw">var</span>.b:.<span.
d1740 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 61 6e 3e 20 3d 20 class="tok-type">c_int</span>.=.
d1760 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
d1780 3e 3b 0a 20 20 20 20 5f 20 3d 20 26 61 6d 70 3b 62 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 >;....._.=.&amp;b;.....<span.cla
d17a0 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 2b 20 62 3b ss="tok-kw">return</span>.a.+.b;
d17c0 0a 7d 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
d17e0 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
d1800 70 61 6e 3e 20 4d 41 4b 45 4c 4f 43 41 4c 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f pan>.MAKELOCAL.=.<span.class="to
d1820 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 70 61 6e 3e 28 k-builtin">@compileError</span>(
d1840 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 61 62 <span.class="tok-str">&quot;unab
d1860 6c 65 20 74 6f 20 74 72 61 6e 73 6c 61 74 65 20 43 20 65 78 70 72 3a 20 75 6e 65 78 70 65 63 74 le.to.translate.C.expr:.unexpect
d1880 65 64 20 74 6f 6b 65 6e 20 2e 45 71 75 61 6c 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 20 3c ed.token..Equal&quot;</span>);.<
d18a0 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 6d 61 63 72 span.class="tok-comment">//.macr
d18c0 6f 2e 63 3a 31 3a 39 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 o.c:1:9</span></code></pre></fig
d18e0 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 3e 66 6f ure>.......<p>Note.that.<code>fo
d1900 6f 3c 2f 63 6f 64 65 3e 20 77 61 73 20 74 72 61 6e 73 6c 61 74 65 64 20 63 6f 72 72 65 63 74 6c o</code>.was.translated.correctl
d1920 79 20 64 65 73 70 69 74 65 20 75 73 69 6e 67 20 61 20 6e 6f 6e 2d 74 72 61 6e 73 6c 61 74 61 62 y.despite.using.a.non-translatab
d1940 6c 65 0a 20 20 20 20 20 20 20 20 6d 61 63 72 6f 2e 20 3c 63 6f 64 65 3e 4d 41 4b 45 4c 4f 43 41 le.........macro..<code>MAKELOCA
d1960 4c 3c 2f 63 6f 64 65 3e 20 77 61 73 20 64 65 6d 6f 74 65 64 20 74 6f 20 3c 63 6f 64 65 3e 3c 73 L</code>.was.demoted.to.<code><s
d1980 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 65 pan.class="tok-builtin">@compile
d19a0 45 72 72 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 73 69 6e 63 65 0a 20 20 20 20 20 20 Error</span></code>.since.......
d19c0 20 20 69 74 20 63 61 6e 6e 6f 74 20 62 65 20 65 78 70 72 65 73 73 65 64 20 61 73 20 61 20 5a 69 ..it.cannot.be.expressed.as.a.Zi
d19e0 67 20 66 75 6e 63 74 69 6f 6e 3b 20 74 68 69 73 20 73 69 6d 70 6c 79 20 6d 65 61 6e 73 20 74 68 g.function;.this.simply.means.th
d1a00 61 74 20 79 6f 75 20 63 61 6e 6e 6f 74 20 64 69 72 65 63 74 6c 79 20 75 73 65 0a 20 20 20 20 20 at.you.cannot.directly.use......
d1a20 20 20 20 3c 63 6f 64 65 3e 4d 41 4b 45 4c 4f 43 41 4c 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d 20 5a ...<code>MAKELOCAL</code>.from.Z
d1a40 69 67 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 ig........</p>.......<p>See.also
d1a60 3a 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 69 6c 65 45 :</p><ul>.<li><a.href="#compileE
d1a80 72 72 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 3c 2f 75 rror">@compileError</a></li>.</u
d1aa0 6c 3e 0a 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 2d 50 6f 69 6e l>................<h3.id="C-Poin
d1ac0 74 65 72 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 2d 50 ters"><a.href="nav.xhtml#toc-C-P
d1ae0 6f 69 6e 74 65 72 73 22 3e 43 20 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 ointers">C.Pointers</a>.<a.class
d1b00 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 43 2d 50 6f 69 6e 74 65 72 73 22 3e c2 a7 3c 2f 61 3e ="hdr".href="#C-Pointers">..</a>
d1b20 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 69 73 20 74 79 70 65 </h3>........<p>.......This.type
d1b40 20 69 73 20 74 6f 20 62 65 20 61 76 6f 69 64 65 64 20 77 68 65 6e 65 76 65 72 20 70 6f 73 73 69 .is.to.be.avoided.whenever.possi
d1b60 62 6c 65 2e 20 54 68 65 20 6f 6e 6c 79 20 76 61 6c 69 64 20 72 65 61 73 6f 6e 20 66 6f 72 20 75 ble..The.only.valid.reason.for.u
d1b80 73 69 6e 67 20 61 20 43 20 70 6f 69 6e 74 65 72 20 69 73 20 69 6e 0a 20 20 20 20 20 20 61 75 74 sing.a.C.pointer.is.in.......aut
d1ba0 6f 2d 67 65 6e 65 72 61 74 65 64 20 63 6f 64 65 20 66 72 6f 6d 20 74 72 61 6e 73 6c 61 74 69 6e o-generated.code.from.translatin
d1bc0 67 20 43 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 3e 0a 20 g.C.code........</p>.......<p>..
d1be0 20 20 20 20 20 57 68 65 6e 20 69 6d 70 6f 72 74 69 6e 67 20 43 20 68 65 61 64 65 72 20 66 69 6c .....When.importing.C.header.fil
d1c00 65 73 2c 20 69 74 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 77 68 65 74 68 65 72 20 70 6f 69 6e es,.it.is.ambiguous.whether.poin
d1c20 74 65 72 73 20 73 68 6f 75 6c 64 20 62 65 20 74 72 61 6e 73 6c 61 74 65 64 20 61 73 0a 20 20 20 ters.should.be.translated.as....
d1c40 20 20 20 73 69 6e 67 6c 65 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 73 20 28 3c 63 6f 64 65 3e 2a ...single-item.pointers.(<code>*
d1c60 54 3c 2f 63 6f 64 65 3e 29 20 6f 72 20 6d 61 6e 79 2d 69 74 65 6d 20 70 6f 69 6e 74 65 72 73 20 T</code>).or.many-item.pointers.
d1c80 28 3c 63 6f 64 65 3e 5b 2a 5d 54 3c 2f 63 6f 64 65 3e 29 2e 0a 20 20 20 20 20 20 43 20 70 6f 69 (<code>[*]T</code>)........C.poi
d1ca0 6e 74 65 72 73 20 61 72 65 20 61 20 63 6f 6d 70 72 6f 6d 69 73 65 20 73 6f 20 74 68 61 74 20 5a nters.are.a.compromise.so.that.Z
d1cc0 69 67 20 63 6f 64 65 20 63 61 6e 20 75 74 69 6c 69 7a 65 20 74 72 61 6e 73 6c 61 74 65 64 20 68 ig.code.can.utilize.translated.h
d1ce0 65 61 64 65 72 20 66 69 6c 65 73 20 64 69 72 65 63 74 6c 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e eader.files.directly........</p>
d1d00 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 5b 2a 63 5d 54 3c 2f 63 6f 64 65 3e 20 2d 20 43 .......<p><code>[*c]T</code>.-.C
d1d20 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 20 .pointer.</p>.......<ul>........
d1d40 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 20 .<li>Supports.all.the.syntax.of.
d1d60 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 20 28 3c 63 6f the.other.two.pointer.types.(<co
d1d80 64 65 3e 2a 54 3c 2f 63 6f 64 65 3e 29 20 61 6e 64 20 28 3c 63 6f 64 65 3e 5b 2a 5d 54 3c 2f 63 de>*T</code>).and.(<code>[*]T</c
d1da0 6f 64 65 3e 29 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 6f 65 72 63 65 73 20 ode>).</li>.........<li>Coerces.
d1dc0 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.
d1de0 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">
d1e00 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>...........
d1e20 20 20 20 57 68 65 6e 20 61 20 43 20 70 6f 69 6e 74 65 72 20 69 73 20 63 6f 65 72 63 65 64 20 74 ...When.a.C.pointer.is.coerced.t
d1e40 6f 20 61 20 6e 6f 6e 2d 6f 70 74 69 6f 6e 61 6c 20 70 6f 69 6e 74 65 72 2c 20 73 61 66 65 74 79 o.a.non-optional.pointer,.safety
d1e60 2d 63 68 65 63 6b 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 -checked.............<a.href="#U
d1e80 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 68 ndefined-Behavior">Undefined.Beh
d1ea0 61 76 69 6f 72 3c 2f 61 3e 20 6f 63 63 75 72 73 20 69 66 20 74 68 65 20 61 64 64 72 65 73 73 20 avior</a>.occurs.if.the.address.
d1ec0 69 73 20 30 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 is.0..........</li>.........<li>
d1ee0 41 6c 6c 6f 77 73 20 61 64 64 72 65 73 73 20 30 2e 20 4f 6e 20 6e 6f 6e 2d 66 72 65 65 73 74 61 Allows.address.0..On.non-freesta
d1f00 6e 64 69 6e 67 20 74 61 72 67 65 74 73 2c 20 64 65 72 65 66 65 72 65 6e 63 69 6e 67 20 61 64 64 nding.targets,.dereferencing.add
d1f20 72 65 73 73 20 30 20 69 73 20 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 0a 20 20 20 20 20 20 20 ress.0.is.safety-checked........
d1f40 20 20 20 20 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 .....<a.href="#Undefined-Behavio
d1f60 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 20 4f 70 74 69 6f r">Undefined.Behavior</a>..Optio
d1f80 6e 61 6c 20 43 20 70 6f 69 6e 74 65 72 73 20 69 6e 74 72 6f 64 75 63 65 20 61 6e 6f 74 68 65 72 nal.C.pointers.introduce.another
d1fa0 20 62 69 74 20 74 6f 20 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 .bit.to.keep.track.of...........
d1fc0 20 20 6e 75 6c 6c 2c 20 6a 75 73 74 20 6c 69 6b 65 20 3c 63 6f 64 65 3e 3f 3c 73 70 61 6e 20 63 ..null,.just.like.<code>?<span.c
d1fe0 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
d2000 64 65 3e 2e 20 4e 6f 74 65 20 74 68 61 74 20 63 72 65 61 74 69 6e 67 20 61 6e 20 6f 70 74 69 6f de>..Note.that.creating.an.optio
d2020 6e 61 6c 20 43 20 70 6f 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 75 6e 6e nal.C.pointer.............is.unn
d2040 65 63 65 73 73 61 72 79 20 61 73 20 6f 6e 65 20 63 61 6e 20 75 73 65 20 6e 6f 72 6d 61 6c 20 3c ecessary.as.one.can.use.normal.<
d2060 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 4f 70 74 69 a.href="#Optional-Pointers">Opti
d2080 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 3c 2f 6c 69 3e onal.Pointers</a>..........</li>
d20a0 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 75 70 70 6f 72 74 73 20 3c 61 20 68 72 65 66 3d 22 23 .........<li>Supports.<a.href="#
d20c0 54 79 70 65 2d 43 6f 65 72 63 69 6f 6e 22 3e 54 79 70 65 20 43 6f 65 72 63 69 6f 6e 3c 2f 61 3e Type-Coercion">Type.Coercion</a>
d20e0 20 74 6f 20 61 6e 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 .to.and.from.integers.</li>.....
d2100 20 20 20 20 3c 6c 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 ....<li>Supports.comparison.with
d2120 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 69 3e 44 6f 65 73 .integers.</li>.........<li>Does
d2140 20 6e 6f 74 20 73 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 .not.support.Zig-only.pointer.at
d2160 74 72 69 62 75 74 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 tributes.such.as.alignment..Use.
d2180 6e 6f 72 6d 61 6c 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 normal.<a.href="#Pointers">Point
d21a0 65 72 73 3c 2f 61 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 ers</a>.........please!</li>....
d21c0 20 20 20 3c 2f 75 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 ...</ul>.......<p>When.a.C.point
d21e0 65 72 20 69 73 20 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 er.is.pointing.to.a.single.struc
d2200 74 20 28 6e 6f 74 20 61 6e 20 61 72 72 61 79 29 2c 20 64 65 72 65 66 65 72 65 6e 63 65 20 74 68 t.(not.an.array),.dereference.th
d2220 65 20 43 20 70 6f 69 6e 74 65 72 20 74 6f 0a 20 20 20 20 20 20 20 20 61 63 63 65 73 73 20 74 68 e.C.pointer.to.........access.th
d2240 65 20 73 74 72 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 e.struct's.fields.or.member.data
d2260 2e 20 54 68 61 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 ..That.syntax.looks.like........
d2280 20 74 68 69 73 3a 20 3c 2f 70 3e 0a 20 20 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 70 74 72 .this:.</p>.........<p><code>ptr
d22a0 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 72 3c 2f 63 6f 64 65 _to_struct.*.struct_member</code
d22c0 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 63 6f 6d 70 61 72 61 ></p>.........<p>This.is.compara
d22e0 62 6c 65 20 74 6f 20 64 6f 69 6e 67 20 3c 63 6f 64 65 3e 2d 26 67 74 3b 3c 2f 63 6f 64 65 3e 20 ble.to.doing.<code>-&gt;</code>.
d2300 69 6e 20 43 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 20 20 3c 70 3e 20 57 68 65 6e 20 61 20 43 20 70 in.C.</p>.........<p>.When.a.C.p
d2320 6f 69 6e 74 65 72 20 69 73 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 61 6e 20 61 72 72 61 79 20 6f ointer.is.pointing.to.an.array.o
d2340 66 20 73 74 72 75 63 74 73 2c 20 74 68 65 20 73 79 6e 74 61 78 20 72 65 76 65 72 74 73 20 74 6f f.structs,.the.syntax.reverts.to
d2360 20 74 68 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 20 20 3c 70 3e 3c 63 6f 64 65 3e 70 74 72 5f .this:</p>.........<p><code>ptr_
d2380 74 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 to_struct_array[index].struct_me
d23a0 6d 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 mber</code></p>...............<h
d23c0 33 20 69 64 3d 22 43 2d 56 61 72 69 61 64 69 63 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 3c 61 20 68 3.id="C-Variadic-Functions"><a.h
d23e0 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 2d 56 61 72 69 61 64 69 63 2d 46 75 ref="nav.xhtml#toc-C-Variadic-Fu
d2400 6e 63 74 69 6f 6e 73 22 3e 43 20 56 61 72 69 61 64 69 63 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 nctions">C.Variadic.Functions</a
d2420 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 2d 56 61 72 69 61 64 >.<a.class="hdr".href="#C-Variad
d2440 69 63 2d 46 75 6e 63 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 ic-Functions">..</a></h3>.......
d2460 20 3c 70 3e 5a 69 67 20 73 75 70 70 6f 72 74 73 20 65 78 74 65 72 6e 20 76 61 72 69 61 64 69 63 .<p>Zig.supports.extern.variadic
d2480 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 .functions.</p>.......<figure><f
d24a0 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 igcaption.class="zig-cap"><cite.
d24c0 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 76 61 72 69 61 64 69 63 5f 66 75 6e 63 74 class="file">test_variadic_funct
d24e0 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ion.zig</cite></figcaption><pre>
d2500 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
d2520 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
d2540 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
d2560 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
d2580 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
d25a0 3c 2f 73 70 61 6e 3e 20 74 65 73 74 69 6e 67 20 3d 20 73 74 64 2e 74 65 73 74 69 6e 67 3b 0a 0a </span>.testing.=.std.testing;..
d25c0 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>.
d25e0 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 61 <span.class="tok-kw">extern</spa
d2600 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 63 n>.<span.class="tok-str">&quot;c
d2620 26 71 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 &quot;</span>.<span.class="tok-k
d2640 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
d2660 22 3e 70 72 69 6e 74 66 3c 2f 73 70 61 6e 3e 28 66 6f 72 6d 61 74 3a 20 5b 2a 3a 3c 73 70 61 6e ">printf</span>(format:.[*:<span
d2680 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 3c 73 70 .class="tok-number">0</span>]<sp
d26a0 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>.<
d26c0 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>,
d26e0 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 3e 63 5f 69 ....).<span.class="tok-type">c_i
d2700 6e 74 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 nt</span>;..<span.class="tok-kw"
d2720 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
d2740 72 22 3e 26 71 75 6f 74 3b 76 61 72 69 61 64 69 63 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b r">&quot;variadic.function&quot;
d2760 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
d2780 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 70 72 69 w">try</span>.testing.expect(pri
d27a0 6e 74 66 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 ntf(<span.class="tok-str">&quot;
d27c0 48 65 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 20 3d 3d Hello,.world!\n&quot;</span>).==
d27e0 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 34 3c 2f 73 70 .<span.class="tok-number">14</sp
d2800 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 74 an>);.....<span.class="tok-kw">t
d2820 72 79 3c 2f 73 70 61 6e 3e 20 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 28 3c 73 70 61 6e 20 63 ry</span>.testing.expect(<span.c
d2840 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 6e 66 6f 3c 2f 73 70 lass="tok-builtin">@typeInfo</sp
d2860 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 54 an>(<span.class="tok-builtin">@T
d2880 79 70 65 4f 66 3c 2f 73 70 61 6e 3e 28 70 72 69 6e 74 66 29 29 2e 46 6e 2e 69 73 5f 76 61 72 5f ypeOf</span>(printf)).Fn.is_var_
d28a0 61 72 67 73 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 args);.}</code></pre></figure><f
d28c0 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 igure><figcaption.class="shell-c
d28e0 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 ap">Shell</figcaption><pre><samp
d2900 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 20 74 65 73 74 5f 76 61 72 69 61 64 69 63 5f 66 >$.<kbd>zig.test.test_variadic_f
d2920 75 6e 63 74 69 6f 6e 2e 7a 69 67 20 2d 6c 63 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 76 unction.zig.-lc</kbd>.1/1.test_v
d2940 61 72 69 61 64 69 63 5f 66 75 6e 63 74 69 6f 6e 2e 74 65 73 74 2e 76 61 72 69 61 64 69 63 20 66 ariadic_function.test.variadic.f
d2960 75 6e 63 74 69 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 unction....OK.All.1.tests.passed
d2980 2e 0a 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 ..Hello,.world!.</samp></pre></f
d29a0 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 56 61 72 69 61 64 69 igure>.......<p>.........Variadi
d29c0 63 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 75 c.functions.can.be.implemented.u
d29e0 73 69 6e 67 20 3c 61 20 68 72 65 66 3d 22 23 63 56 61 53 74 61 72 74 22 3e 40 63 56 61 53 74 61 sing.<a.href="#cVaStart">@cVaSta
d2a00 72 74 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 63 56 61 45 6e 64 22 3e 40 63 56 61 45 6e rt</a>,.<a.href="#cVaEnd">@cVaEn
d2a20 64 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 63 56 61 41 72 67 22 3e 40 63 56 61 41 72 67 d</a>,.<a.href="#cVaArg">@cVaArg
d2a40 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 72 65 66 3d 22 23 63 56 61 43 6f 70 79 22 3e 40 63 56 61 </a>.and.<a.href="#cVaCopy">@cVa
d2a60 43 6f 70 79 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 Copy</a>........</p>.......<figu
d2a80 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
d2aa0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 5f 64 65 66 69 6e 69 6e 67 5f cite.class="file">test_defining_
d2ac0 76 61 72 69 61 64 69 63 5f 66 75 6e 63 74 69 6f 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 variadic_function.zig</cite></fi
d2ae0 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d gcaption><pre><code><span.class=
d2b00 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
d2b20 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
d2b40 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
d2b60 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=
d2b80 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 69 6e 67 20 3d 20 "tok-kw">const</span>.testing.=.
d2ba0 73 74 64 2e 74 65 73 74 69 6e 67 3b 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 std.testing;.<span.class="tok-kw
d2bc0 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 73 70 61 6e 20 63 ">const</span>.builtin.=.<span.c
d2be0 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
d2c00 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 62 75 >(<span.class="tok-str">&quot;bu
d2c20 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 6e 20 63 6c 61 73 iltin&quot;</span>);..<span.clas
d2c40 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
d2c60 3d 22 74 6f 6b 2d 66 6e 22 3e 61 64 64 3c 2f 73 70 61 6e 3e 28 63 6f 75 6e 74 3a 20 3c 73 70 61 ="tok-fn">add</span>(count:.<spa
d2c80 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 61 6e 3e 2c n.class="tok-type">c_int</span>,
d2ca0 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 22 3e 63 61 6c 6c 63 ....).<span.class="tok-kw">callc
d2cc0 6f 6e 76 3c 2f 73 70 61 6e 3e 28 2e 43 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d onv</span>(.C).<span.class="tok-
d2ce0 74 79 70 65 22 3e 63 5f 69 6e 74 3c 2f 73 70 61 6e 3e 20 7b 0a 20 20 20 20 3c 73 70 61 6e 20 63 type">c_int</span>.{.....<span.c
d2d00 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 70 20 3d 20 3c 73 lass="tok-kw">var</span>.ap.=.<s
d2d20 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 56 61 53 74 61 72 pan.class="tok-builtin">@cVaStar
d2d40 74 3c 2f 73 70 61 6e 3e 28 29 3b 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
d2d60 2d 6b 77 22 3e 64 65 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 -kw">defer</span>.<span.class="t
d2d80 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 56 61 45 6e 64 3c 2f 73 70 61 6e 3e 28 26 61 6d 70 3b ok-builtin">@cVaEnd</span>(&amp;
d2da0 61 70 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 ap);.....<span.class="tok-kw">va
d2dc0 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
d2de0 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
d2e00 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
d2e20 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 6d 3a 20 3c 73 lass="tok-kw">var</span>.sum:.<s
d2e40 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 61 6e pan.class="tok-type">c_int</span
d2e60 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 30 3c 2f >.=.<span.class="tok-number">0</
d2e80 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">
d2ea0 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 20 28 69 20 26 6c 74 3b 20 63 6f 75 6e 74 29 20 3a 20 28 69 while</span>.(i.&lt;.count).:.(i
d2ec0 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 2f .+=.<span.class="tok-number">1</
d2ee0 73 70 61 6e 3e 29 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 3c 73 70 61 6e 20 63 6c span>).{.........sum.+=.<span.cl
d2f00 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 63 56 61 41 72 67 3c 2f 73 70 61 6e 3e ass="tok-builtin">@cVaArg</span>
d2f20 28 26 61 6d 70 3b 61 70 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 74 79 70 65 22 (&amp;ap,.<span.class="tok-type"
d2f40 3e 63 5f 69 6e 74 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 >c_int</span>);.....}.....<span.
d2f60 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 75 6d class="tok-kw">return</span>.sum
d2f80 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</
d2fa0 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
d2fc0 74 3b 64 65 66 69 6e 69 6e 67 20 61 20 76 61 72 69 61 64 69 63 20 66 75 6e 63 74 69 6f 6e 26 71 t;defining.a.variadic.function&q
d2fe0 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
d3000 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 63 70 75 2e 61 72 ok-kw">if</span>.(builtin.cpu.ar
d3020 63 68 20 3d 3d 20 2e 61 61 72 63 68 36 34 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ch.==..aarch64.<span.class="tok-
d3040 6b 77 22 3e 61 6e 64 3c 2f 73 70 61 6e 3e 20 62 75 69 6c 74 69 6e 2e 6f 73 2e 74 61 67 20 21 3d kw">and</span>.builtin.os.tag.!=
d3060 20 2e 6d 61 63 6f 73 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 ..macos).{.........<span.class="
d3080 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 2e 63 tok-comment">//.https://github.c
d30a0 6f 6d 2f 7a 69 67 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 31 34 30 39 36 3c 2f 73 70 61 om/ziglang/zig/issues/14096</spa
d30c0 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 6b 77 22 3e n>.........<span.class="tok-kw">
d30e0 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
d3100 77 22 3e 65 72 72 6f 72 3c 2f 73 70 61 6e 3e 2e 53 6b 69 70 5a 69 67 54 65 73 74 3b 0a 20 20 20 w">error</span>.SkipZigTest;....
d3120 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 69 66 3c 2f .}.....<span.class="tok-kw">if</
d3140 73 70 61 6e 3e 20 28 62 75 69 6c 74 69 6e 2e 63 70 75 2e 61 72 63 68 20 3d 3d 20 2e 78 38 36 5f span>.(builtin.cpu.arch.==..x86_
d3160 36 34 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 64.<span.class="tok-kw">and</spa
d3180 6e 3e 20 62 75 69 6c 74 69 6e 2e 6f 73 2e 74 61 67 20 3d 3d 20 2e 77 69 6e 64 6f 77 73 29 20 7b n>.builtin.os.tag.==..windows).{
d31a0 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 6e .........<span.class="tok-commen
d31c0 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
d31e0 2f 7a 69 67 2f 69 73 73 75 65 73 2f 31 36 39 36 31 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 /zig/issues/16961</span>........
d3200 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
d3220 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</
d3240 73 70 61 6e 3e 2e 53 6b 69 70 5a 69 67 54 65 73 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 3c 73 span>.SkipZigTest;.....}......<s
d3260 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 73 74 pan.class="tok-kw">try</span>.st
d3280 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 65 63 74 45 71 75 61 6c 28 3c 73 70 61 6e 20 63 6c 61 73 d.testing.expectEqual(<span.clas
d32a0 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e s="tok-builtin">@as</span>(<span
d32c0 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 61 6e 3e 2c 20 .class="tok-type">c_int</span>,.
d32e0 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
d3300 3e 29 2c 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 22 >),.add(<span.class="tok-number"
d3320 3e 30 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 22 74 6f >0</span>));.....<span.class="to
d3340 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 70 k-kw">try</span>.std.testing.exp
d3360 65 63 74 45 71 75 61 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 69 ectEqual(<span.class="tok-builti
d3380 6e 22 3e 40 61 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 74 n">@as</span>(<span.class="tok-t
d33a0 79 70 65 22 3e 63 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ype">c_int</span>,.<span.class="
d33c0 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 29 2c 20 61 64 64 28 3c 73 70 61 6e tok-number">1</span>),.add(<span
d33e0 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 73 .class="tok-number">1</span>,.<s
d3400 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 73 3c 2f 73 70 61 pan.class="tok-builtin">@as</spa
d3420 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 63 5f 69 6e 74 3c n>(<span.class="tok-type">c_int<
d3440 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"
d3460 3e 31 3c 2f 73 70 61 6e 3e 29 29 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 >1</span>)));.....<span.class="t
d3480 6f 6b 2d 6b 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 73 74 64 2e 74 65 73 74 69 6e 67 2e 65 78 ok-kw">try</span>.std.testing.ex
d34a0 70 65 63 74 45 71 75 61 6c 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 pectEqual(<span.class="tok-built
d34c0 69 6e 22 3e 40 61 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 in">@as</span>(<span.class="tok-
d34e0 74 79 70 65 22 3e 63 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d type">c_int</span>,.<span.class=
d3500 22 74 6f 6b 2d 6e 75 6d 62 65 72 22 3e 33 3c 2f 73 70 61 6e 3e 29 2c 20 61 64 64 28 3c 73 70 61 "tok-number">3</span>),.add(<spa
d3520 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>,.<
d3540 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 73 3c 2f 73 70 span.class="tok-builtin">@as</sp
d3560 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 63 5f 69 6e 74 an>(<span.class="tok-type">c_int
d3580 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
d35a0 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 62 75 ">1</span>),.<span.class="tok-bu
d35c0 69 6c 74 69 6e 22 3e 40 61 73 3c 2f 73 70 61 6e 3e 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 iltin">@as</span>(<span.class="t
d35e0 6f 6b 2d 74 79 70 65 22 3e 63 5f 69 6e 74 3c 2f 73 70 61 6e 3e 2c 20 3c 73 70 61 6e 20 63 6c 61 ok-type">c_int</span>,.<span.cla
d3600 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 29 29 3b 0a 7d 3c 2f ss="tok-number">2</span>)));.}</
d3620 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 code></pre></figure><figure><fig
d3640 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c caption.class="shell-cap">Shell<
d3660 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 /figcaption><pre><samp>$.<kbd>zi
d3680 67 20 74 65 73 74 20 74 65 73 74 5f 64 65 66 69 6e 69 6e 67 5f 76 61 72 69 61 64 69 63 5f 66 75 g.test.test_defining_variadic_fu
d36a0 6e 63 74 69 6f 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 31 2f 31 20 74 65 73 74 5f 64 65 66 69 6e 69 nction.zig</kbd>.1/1.test_defini
d36c0 6e 67 5f 76 61 72 69 61 64 69 63 5f 66 75 6e 63 74 69 6f 6e 2e 74 65 73 74 2e 64 65 66 69 6e 69 ng_variadic_function.test.defini
d36e0 6e 67 20 61 20 76 61 72 69 61 64 69 63 20 66 75 6e 63 74 69 6f 6e 2e 2e 2e 20 4f 4b 0a 41 6c 6c ng.a.variadic.function....OK.All
d3700 20 31 20 74 65 73 74 73 20 70 61 73 73 65 64 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .1.tests.passed..</samp></pre></
d3720 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 78 70 figure>..............<h3.id="Exp
d3740 6f 72 74 69 6e 67 2d 61 2d 43 2d 4c 69 62 72 61 72 79 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 orting-a-C-Library"><a.href="nav
d3760 2e 78 68 74 6d 6c 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 .xhtml#toc-Exporting-a-C-Library
d3780 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 20 3c 61 20 63 ">Exporting.a.C.Library</a>.<a.c
d37a0 6c 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 lass="hdr".href="#Exporting-a-C-
d37c0 4c 69 62 72 61 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 0a Library">..</a></h3>........<p>.
d37e0 20 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 ......One.of.the.primary.use.cas
d3800 65 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 es.for.Zig.is.exporting.a.librar
d3820 79 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 y.with.the.C.ABI.for.other.progr
d3840 61 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 amming.languages.......to.call.i
d3860 6e 74 6f 2e 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d nto..The.<code><span.class="tok-
d3880 6b 77 22 3e 65 78 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 kw">export</span></code>.keyword
d38a0 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 2c 20 76 61 72 69 61 62 6c 65 .in.front.of.functions,.variable
d38c0 73 2c 20 61 6e 64 20 74 79 70 65 73 20 63 61 75 73 65 73 20 74 68 65 6d 20 74 6f 0a 20 20 20 20 s,.and.types.causes.them.to.....
d38e0 20 20 62 65 20 70 61 72 74 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72 79 20 41 50 49 3a 0a 20 20 ..be.part.of.the.library.API:...
d3900 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 ....</p>.......<figure><figcapti
d3920 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 on.class="zig-cap"><cite.class="
d3940 66 69 6c 65 22 3e 6d 61 74 68 74 65 73 74 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 file">mathtest.zig</cite></figca
d3960 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ption><pre><code><span.class="to
d3980 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 3d k-kw">export</span>.<span.class=
d39a0 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="
d39c0 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 20 63 6c 61 73 tok-fn">add</span>(a:.<span.clas
d39e0 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 73 70 61 s="tok-type">i32</span>,.b:.<spa
d3a00 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 20 3c n.class="tok-type">i32</span>).<
d3a20 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>
d3a40 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
d3a60 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 3c 2f 70 72 65 3e 3c rn</span>.a.+.b;.}</code></pre><
d3a80 2f 66 69 67 75 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 /figure>.......<p>To.make.a.stat
d3aa0 69 63 20 6c 69 62 72 61 72 79 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 ic.library:</p>.......<figure><f
d3ac0 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c igcaption.class="shell-cap">Shel
d3ae0 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e l</figcaption><pre><samp>$.<kbd>
d3b00 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 3c 2f 6b 62 64 3e zig.build-lib.mathtest.zig</kbd>
d3b20 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 .</samp></pre></figure>.......<p
d3b40 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>..
d3b60 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 .....<figure><figcaption.class="
d3b80 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 shell-cap">Shell</figcaption><pr
d3ba0 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 6c 69 62 20 6d 61 74 e><samp>$.<kbd>zig.build-lib.mat
d3bc0 68 74 65 73 74 2e 7a 69 67 20 2d 64 79 6e 61 6d 69 63 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e htest.zig.-dynamic</kbd>.</samp>
d3be0 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 48 65 72 65 20 69 73 </pre></figure>.......<p>Here.is
d3c00 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 23 5a .an.example.with.the.<a.href="#Z
d3c20 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 74 65 ig-Build-System">Zig.Build.Syste
d3c40 6d 3c 2f 61 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 m</a>:</p>.......<figure><figcap
d3c60 74 69 6f 6e 20 63 6c 61 73 73 3d 22 63 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 tion.class="c-cap"><cite.class="
d3c80 66 69 6c 65 22 3e 74 65 73 74 2e 63 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e file">test.c</cite></figcaption>
d3ca0 3c 70 72 65 3e 3c 63 6f 64 65 3e 2f 2f 20 54 68 69 73 20 68 65 61 64 65 72 20 69 73 20 67 65 6e <pre><code>//.This.header.is.gen
d3cc0 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.
d3ce0 23 69 6e 63 6c 75 64 65 20 26 71 75 6f 74 3b 6d 61 74 68 74 65 73 74 2e 68 26 71 75 6f 74 3b 0a #include.&quot;mathtest.h&quot;.
d3d00 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 0a 69 6e 74 20 6d 61 #include.&lt;stdio.h&gt;..int.ma
d3d20 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 20 20 20 in(int.argc,.char.**argv).{.....
d3d40 69 6e 74 33 32 5f 74 20 72 65 73 75 6c 74 20 3d 20 61 64 64 28 34 32 2c 20 31 33 33 37 29 3b 0a int32_t.result.=.add(42,.1337);.
d3d60 20 20 20 20 70 72 69 6e 74 66 28 26 71 75 6f 74 3b 25 64 5c 6e 26 71 75 6f 74 3b 2c 20 72 65 73 ....printf(&quot;%d\n&quot;,.res
d3d80 75 6c 74 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 ult);.....return.0;.}</code></pr
d3da0 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 e></figure>.......<figure><figca
d3dc0 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 ption.class="zig-cap"><cite.clas
d3de0 73 3d 22 66 69 6c 65 22 3e 62 75 69 6c 64 5f 63 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 s="file">build_c.zig</cite></fig
d3e00 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
d3e20 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 6e tok-kw">const</span>.std.=.<span
d3e40 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
d3e60 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;
d3e80 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 3d std&quot;</span>);..<span.class=
d3ea0 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=
d3ec0 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="
d3ee0 74 6f 6b 2d 66 6e 22 3e 62 75 69 6c 64 3c 2f 73 70 61 6e 3e 28 62 3a 20 2a 73 74 64 2e 42 75 69 tok-fn">build</span>(b:.*std.Bui
d3f00 6c 64 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 ld).<span.class="tok-type">void<
d3f20 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
d3f40 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6c 69 62 20 3d 20 62 2e 61 64 64 53 68 61 72 65 64 ">const</span>.lib.=.b.addShared
d3f60 4c 69 62 72 61 72 79 28 2e 7b 0a 20 20 20 20 20 20 20 20 2e 6e 61 6d 65 20 3d 20 3c 73 70 61 6e Library(.{..........name.=.<span
d3f80 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 74 68 74 65 73 74 26 .class="tok-str">&quot;mathtest&
d3fa0 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 72 6f 6f 74 5f 73 6f 75 72 quot;</span>,..........root_sour
d3fc0 63 65 5f 66 69 6c 65 20 3d 20 2e 7b 20 2e 70 61 74 68 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 ce_file.=..{..path.=.<span.class
d3fe0 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 2e 7a 69 67 26 71 75 ="tok-str">&quot;mathtest.zig&qu
d4000 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7d 2c 0a 20 20 20 20 20 20 20 20 2e 76 65 72 73 69 6f 6e 20 3d ot;</span>.},..........version.=
d4020 20 2e 7b 20 2e 6d 61 6a 6f 72 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 ..{..major.=.<span.class="tok-nu
d4040 6d 62 65 72 22 3e 31 3c 2f 73 70 61 6e 3e 2c 20 2e 6d 69 6e 6f 72 20 3d 20 3c 73 70 61 6e 20 63 mber">1</span>,..minor.=.<span.c
d4060 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 20 2e 70 61 74 lass="tok-number">0</span>,..pat
d4080 63 68 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 ch.=.<span.class="tok-number">0<
d40a0 2f 73 70 61 6e 3e 20 7d 2c 0a 20 20 20 20 7d 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 /span>.},.....});.....<span.clas
d40c0 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.
d40e0 61 64 64 45 78 65 63 75 74 61 62 6c 65 28 2e 7b 0a 20 20 20 20 20 20 20 20 2e 6e 61 6d 65 20 3d addExecutable(.{..........name.=
d4100 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 65 73 .<span.class="tok-str">&quot;tes
d4120 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 29 3b 0a 20 20 20 20 65 78 65 2e t&quot;</span>,.....});.....exe.
d4140 61 64 64 43 53 6f 75 72 63 65 46 69 6c 65 28 2e 7b 20 2e 66 69 6c 65 20 3d 20 2e 7b 20 2e 70 61 addCSourceFile(.{..file.=..{..pa
d4160 74 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 th.=.<span.class="tok-str">&quot
d4180 3b 74 65 73 74 2e 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7d 2c 20 2e 66 6c 61 67 73 20 3d ;test.c&quot;</span>.},..flags.=
d41a0 20 26 61 6d 70 3b 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 .&amp;.{<span.class="tok-str">&q
d41c0 75 6f 74 3b 2d 73 74 64 3d 63 39 39 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 7d 20 7d 29 3b 0a 20 uot;-std=c99&quot;</span>}.});..
d41e0 20 20 20 65 78 65 2e 6c 69 6e 6b 4c 69 62 72 61 72 79 28 6c 69 62 29 3b 0a 20 20 20 20 65 78 65 ...exe.linkLibrary(lib);.....exe
d4200 2e 6c 69 6e 6b 53 79 73 74 65 6d 4c 69 62 72 61 72 79 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .linkSystemLibrary(<span.class="
d4220 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a tok-str">&quot;c&quot;</span>);.
d4240 0a 20 20 20 20 62 2e 64 65 66 61 75 6c 74 5f 73 74 65 70 2e 64 65 70 65 6e 64 4f 6e 28 26 61 6d .....b.default_step.dependOn(&am
d4260 70 3b 65 78 65 2e 73 74 65 70 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 p;exe.step);......<span.class="t
d4280 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 72 75 6e 5f 63 6d 64 20 3d 20 65 78 ok-kw">const</span>.run_cmd.=.ex
d42a0 65 2e 72 75 6e 28 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 e.run();......<span.class="tok-k
d42c0 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 74 65 73 74 5f 73 74 65 70 20 3d 20 62 2e 73 74 w">const</span>.test_step.=.b.st
d42e0 65 70 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 74 ep(<span.class="tok-str">&quot;t
d4300 65 73 74 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 est&quot;</span>,.<span.class="t
d4320 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 54 65 73 74 20 74 68 65 20 70 72 6f 67 72 61 6d 26 71 ok-str">&quot;Test.the.program&q
d4340 75 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3b 0a 20 20 20 20 74 65 73 74 5f 73 74 65 70 2e 64 65 70 65 uot;</span>);.....test_step.depe
d4360 6e 64 4f 6e 28 26 61 6d 70 3b 72 75 6e 5f 63 6d 64 2e 73 74 65 70 29 3b 0a 7d 3c 2f 63 6f 64 65 ndOn(&amp;run_cmd.step);.}</code
d4380 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c ></pre></figure>.......<figure><
d43a0 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 figcaption.class="shell-cap">She
d43c0 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 ll</figcaption><pre><samp>$.<kbd
d43e0 3e 7a 69 67 20 62 75 69 6c 64 20 74 65 73 74 3c 2f 6b 62 64 3e 0a 31 33 37 39 0a 3c 2f 73 61 6d >zig.build.test</kbd>.1379.</sam
d4400 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 p></pre></figure>.......<p>See.a
d4420 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 65 78 70 6f 72 lso:</p><ul>.<li><a.href="#expor
d4440 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 0a 20 20 20 20 20 20 t">export</a></li>.</ul>........
d4460 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4d 69 78 69 6e 67 2d 4f 62 6a 65 63 74 2d 46 69 6c .......<h3.id="Mixing-Object-Fil
d4480 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 4d 69 78 69 6e es"><a.href="nav.xhtml#toc-Mixin
d44a0 67 2d 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 g-Object-Files">Mixing.Object.Fi
d44c0 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 4d 69 les</a>.<a.class="hdr".href="#Mi
d44e0 78 69 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 33 3e 0a 0a xing-Object-Files">..</a></h3>..
d4500 20 20 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 ......<p>.......You.can.mix.Zig.
d4520 6f 62 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 object.files.with.any.other.obje
d4540 63 74 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 ct.files.that.respect.the.C.ABI.
d4560 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 20 3c 66 69 67 75 .Example:.......</p>.......<figu
d4580 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
d45a0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 62 61 73 65 36 34 2e 7a 69 67 3c 2f 63 69 cite.class="file">base64.zig</ci
d45c0 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e te></figcaption><pre><code><span
d45e0 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 61 73 .class="tok-kw">const</span>.bas
d4600 65 36 34 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 e64.=.<span.class="tok-builtin">
d4620 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-
d4640 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 62 61 73 str">&quot;std&quot;</span>).bas
d4660 65 36 34 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 70 6f 72 e64;..<span.class="tok-kw">expor
d4680 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 6e t</span>.<span.class="tok-kw">fn
d46a0 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 65 63 </span>.<span.class="tok-fn">dec
d46c0 6f 64 65 5f 62 61 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 ode_base_64</span>(.....dest_ptr
d46e0 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 22 3e 75 38 3c 2f :.[*]<span.class="tok-type">u8</
d4700 73 70 61 6e 3e 2c 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 span>,.....dest_len:.<span.class
d4720 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 20 20 20 20 73 6f ="tok-type">usize</span>,.....so
d4740 75 72 63 65 5f 70 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 urce_ptr:.[*]<span.class="tok-kw
d4760 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-
d4780 74 79 70 65 22 3e 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 type">u8</span>,.....source_len:
d47a0 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
d47c0 70 61 6e 3e 2c 0a 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 pan>,.).<span.class="tok-type">u
d47e0 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 74 size</span>.{.....<span.class="t
d4800 6f 6b 2d 6b 77 22 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 ok-kw">const</span>.src.=.source
d4820 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<
d4840 2f 73 70 61 6e 3e 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 /span>..source_len];.....<span.c
d4860 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 73 74 20 lass="tok-kw">const</span>.dest.
d4880 3d 20 64 65 73 74 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 =.dest_ptr[<span.class="tok-numb
d48a0 65 72 22 3e 30 3c 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 er">0</span>..dest_len];.....<sp
d48c0 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 62 an.class="tok-kw">const</span>.b
d48e0 61 73 65 36 34 5f 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 2e ase64_decoder.=.base64.standard.
d4900 44 65 63 6f 64 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 77 Decoder;.....<span.class="tok-kw
d4920 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 61 ">const</span>.decoded_size.=.ba
d4940 73 65 36 34 5f 64 65 63 6f 64 65 72 2e 63 61 6c 63 53 69 7a 65 46 6f 72 53 6c 69 63 65 28 73 72 se64_decoder.calcSizeForSlice(sr
d4960 63 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 c).<span.class="tok-kw">catch</s
d4980 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
d49a0 68 61 62 6c 65 3c 2f 73 70 61 6e 3e 3b 0a 20 20 20 20 62 61 73 65 36 34 5f 64 65 63 6f 64 65 72 hable</span>;.....base64_decoder
d49c0 2e 64 65 63 6f 64 65 28 64 65 73 74 5b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 .decode(dest[<span.class="tok-nu
d49e0 6d 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 64 65 63 6f 64 65 64 5f 73 69 7a 65 5d 2c 20 73 mber">0</span>..decoded_size],.s
d4a00 72 63 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 rc).<span.class="tok-kw">catch</
d4a20 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 65 61 span>.<span.class="tok-kw">unrea
d4a40 63 68 61 62 6c 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 chable</span>;.....<span.class="
d4a60 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 65 64 5f 73 69 tok-kw">return</span>.decoded_si
d4a80 7a 65 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 ze;.}</code></pre></figure>.....
d4aa0 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 63 2d 63 ..<figure><figcaption.class="c-c
d4ac0 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 63 3c 2f 63 ap"><cite.class="file">test.c</c
d4ae0 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 2f 2f 20 54 ite></figcaption><pre><code>//.T
d4b00 68 69 73 20 68 65 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 his.header.is.generated.by.zig.f
d4b20 72 6f 6d 20 62 61 73 65 36 34 2e 7a 69 67 0a 23 69 6e 63 6c 75 64 65 20 26 71 75 6f 74 3b 62 61 rom.base64.zig.#include.&quot;ba
d4b40 73 65 36 34 2e 68 26 71 75 6f 74 3b 0a 0a 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b 73 74 72 69 6e se64.h&quot;..#include.&lt;strin
d4b60 67 2e 68 26 67 74 3b 0a 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b g.h&gt;.#include.&lt;stdio.h&gt;
d4b80 0a 0a 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 ..int.main(int.argc,.char.**argv
d4ba0 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 65 6e 63 6f 64 65 64 20 3d 20 26 71 ).{.....const.char.*encoded.=.&q
d4bc0 75 6f 74 3b 59 57 78 73 49 48 6c 76 64 58 49 67 59 6d 46 7a 5a 53 42 68 63 6d 55 67 59 6d 56 73 uot;YWxsIHlvdXIgYmFzZSBhcmUgYmVs
d4be0 62 32 35 6e 49 48 52 76 49 48 56 7a 26 71 75 6f 74 3b 3b 0a 20 20 20 20 63 68 61 72 20 62 75 66 b25nIHRvIHVz&quot;;.....char.buf
d4c00 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 65 63 6f 64 65 5f [200];......size_t.len.=.decode_
d4c20 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 20 73 74 72 6c 65 base_64(buf,.200,.encoded,.strle
d4c40 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 3d 20 30 3b 0a 20 n(encoded));.....buf[len].=.0;..
d4c60 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 30 3b 0a 7d 3c 2f ...puts(buf);......return.0;.}</
d4c80 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 code></pre></figure>.......<figu
d4ca0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c re><figcaption.class="zig-cap"><
d4cc0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 62 75 69 6c 64 5f 6f 62 6a 65 63 74 2e 7a cite.class="file">build_object.z
d4ce0 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 ig</cite></figcaption><pre><code
d4d00 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
d4d20 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
d4d40 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
d4d60 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>);
d4d80 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 6e ..<span.class="tok-kw">pub</span
d4da0 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>
d4dc0 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 61 .<span.class="tok-fn">build</spa
d4de0 6e 3e 28 62 3a 20 2a 73 74 64 2e 42 75 69 6c 64 29 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 n>(b:.*std.Build).<span.class="t
d4e00 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
d4e20 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 62 6a .class="tok-kw">const</span>.obj
d4e40 20 3d 20 62 2e 61 64 64 4f 62 6a 65 63 74 28 2e 7b 0a 20 20 20 20 20 20 20 20 2e 6e 61 6d 65 20 .=.b.addObject(.{..........name.
d4e60 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 62 61 =.<span.class="tok-str">&quot;ba
d4e80 73 65 36 34 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 2e 72 6f 6f 74 se64&quot;</span>,..........root
d4ea0 5f 73 6f 75 72 63 65 5f 66 69 6c 65 20 3d 20 2e 7b 20 2e 70 61 74 68 20 3d 20 3c 73 70 61 6e 20 _source_file.=..{..path.=.<span.
d4ec0 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 65 36 34 2e 7a 69 67 class="tok-str">&quot;base64.zig
d4ee0 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7d 2c 0a 20 20 20 20 7d 29 3b 0a 0a 20 20 20 20 3c 73 &quot;</span>.},.....});......<s
d4f00 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>.
d4f20 65 78 65 20 3d 20 62 2e 61 64 64 45 78 65 63 75 74 61 62 6c 65 28 2e 7b 0a 20 20 20 20 20 20 20 exe.=.b.addExecutable(.{........
d4f40 20 2e 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 ..name.=.<span.class="tok-str">&
d4f60 71 75 6f 74 3b 74 65 73 74 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 7d 29 3b 0a quot;test&quot;</span>,.....});.
d4f80 20 20 20 20 65 78 65 2e 61 64 64 43 53 6f 75 72 63 65 46 69 6c 65 28 2e 7b 20 2e 66 69 6c 65 20 ....exe.addCSourceFile(.{..file.
d4fa0 3d 20 2e 7b 20 2e 70 61 74 68 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 =..{..path.=.<span.class="tok-st
d4fc0 72 22 3e 26 71 75 6f 74 3b 74 65 73 74 2e 63 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e 20 7d 2c 20 r">&quot;test.c&quot;</span>.},.
d4fe0 2e 66 6c 61 67 73 20 3d 20 26 61 6d 70 3b 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .flags.=.&amp;.{<span.class="tok
d5000 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 2f 73 70 61 6e -str">&quot;-std=c99&quot;</span
d5020 3e 2c 7d 20 7d 29 3b 0a 20 20 20 20 65 78 65 2e 61 64 64 4f 62 6a 65 63 74 28 6f 62 6a 29 3b 0a >,}.});.....exe.addObject(obj);.
d5040 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 70 61 6e 20 ....exe.linkSystemLibrary(<span.
d5060 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 73 class="tok-str">&quot;c&quot;</s
d5080 70 61 6e 3e 29 3b 0a 20 20 20 20 62 2e 69 6e 73 74 61 6c 6c 41 72 74 69 66 61 63 74 28 65 78 65 pan>);.....b.installArtifact(exe
d50a0 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 );.}</code></pre></figure>......
d50c0 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c .<figure><figcaption.class="shel
d50e0 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 l-cap">Shell</figcaption><pre><s
d5100 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 amp>$.<kbd>zig.build</kbd>.$.<kb
d5120 64 3e 2e 2f 7a 69 67 2d 6f 75 74 2f 62 69 6e 2f 74 65 73 74 3c 2f 6b 62 64 3e 0a 61 6c 6c 20 79 d>./zig-out/bin/test</kbd>.all.y
d5140 6f 75 72 20 62 61 73 65 20 61 72 65 20 62 65 6c 6f 6e 67 20 74 6f 20 75 73 0a 3c 2f 73 61 6d 70 our.base.are.belong.to.us.</samp
d5160 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c ></pre></figure>.......<p>See.al
d5180 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 54 61 72 67 65 74 so:</p><ul>.<li><a.href="#Target
d51a0 73 22 3e 54 61 72 67 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d s">Targets</a></li>.<li><a.href=
d51c0 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 6c 64 20 53 79 "#Zig-Build-System">Zig.Build.Sy
d51e0 73 74 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 20 20 20 20 stem</a></li>.</ul>.............
d5200 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 57 65 62 41 73 73 65 6d 62 6c 79 22 3e 3c 61 .........<h2.id="WebAssembly"><a
d5220 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 57 65 62 41 73 73 65 6d 62 6c 79 .href="nav.xhtml#toc-WebAssembly
d5240 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 3d 22 68 64 72 22 ">WebAssembly</a>.<a.class="hdr"
d5260 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 3e 3c 2f 68 32 3e .href="#WebAssembly">..</a></h2>
d5280 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 69 6c 64 69 6e 67 ........<p>Zig.supports.building
d52a0 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 65 20 62 6f 78 2e .for.WebAssembly.out.of.the.box.
d52c0 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 46 72 65 65 73 74 61 6e 64 69 6e 67 22 </p>.......<h3.id="Freestanding"
d52e0 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 46 72 65 65 73 74 61 6e ><a.href="nav.xhtml#toc-Freestan
d5300 64 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 ding">Freestanding</a>.<a.class=
d5320 22 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 "hdr".href="#Freestanding">..</a
d5340 3e 3c 2f 68 33 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 ></h3>........<p>For.host.enviro
d5360 6e 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 nments.like.the.web.browser.and.
d5380 6e 6f 64 65 6a 73 2c 20 62 75 69 6c 64 20 61 73 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 75 nodejs,.build.as.an.executable.u
d53a0 73 69 6e 67 20 74 68 65 20 66 72 65 65 73 74 61 6e 64 69 6e 67 0a 20 20 20 20 20 20 4f 53 20 74 sing.the.freestanding.......OS.t
d53c0 61 72 67 65 74 2e 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 arget..Here's.an.example.of.runn
d53e0 69 6e 67 20 5a 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 ing.Zig.code.compiled.to.WebAsse
d5400 6d 62 6c 79 20 77 69 74 68 20 6e 6f 64 65 6a 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 mbly.with.nodejs.</p>.......<fig
d5420 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e ure><figcaption.class="zig-cap">
d5440 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 6d 61 74 68 2e 7a 69 67 3c 2f 63 69 74 <cite.class="file">math.zig</cit
d5460 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
d5480 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 20 3c 73 70 class="tok-kw">extern</span>.<sp
d54a0 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
d54c0 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 66 6e 22 3e 70 72 69 6e 74 3c 2f 73 70 61 6e 3e 28 3c 73 n.class="tok-fn">print</span>(<s
d54e0 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 29 pan.class="tok-type">i32</span>)
d5500 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 70 .<span.class="tok-type">void</sp
d5520 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 65 78 70 6f 72 an>;..<span.class="tok-kw">expor
d5540 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 6e t</span>.<span.class="tok-kw">fn
d5560 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 64 64 </span>.<span.class="tok-fn">add
d5580 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
d55a0 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 73 3d 22 74 6f ">i32</span>,.b:.<span.class="to
d55c0 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 73 73 3d k-type">i32</span>).<span.class=
d55e0 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 70 72 69 "tok-type">void</span>.{.....pri
d5600 6e 74 28 61 20 2b 20 62 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 nt(a.+.b);.}</code></pre></figur
d5620 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 e><figure><figcaption.class="she
d5640 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c ll-cap">Shell</figcaption><pre><
d5660 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 6d 61 74 68 2e 7a samp>$.<kbd>zig.build-exe.math.z
d5680 69 67 20 2d 74 61 72 67 65 74 20 77 61 73 6d 33 32 2d 66 72 65 65 73 74 61 6e 64 69 6e 67 20 2d ig.-target.wasm32-freestanding.-
d56a0 66 6e 6f 2d 65 6e 74 72 79 20 2d 2d 65 78 70 6f 72 74 3d 61 64 64 3c 2f 6b 62 64 3e 0a 3c 2f 73 fno-entry.--export=add</kbd>.</s
d56c0 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 amp></pre></figure>.......<figur
d56e0 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 6a 61 76 61 73 63 72 69 70 74 2d e><figcaption.class="javascript-
d5700 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 6a 73 3c cap"><cite.class="file">test.js<
d5720 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 63 6f /cite></figcaption><pre><code>co
d5740 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
d5760 75 72 63 65 20 3d 20 66 73 2e 72 65 61 64 46 69 6c 65 53 79 6e 63 28 26 71 75 6f 74 3b 2e 2f 6d urce.=.fs.readFileSync(&quot;./m
d5780 61 74 68 2e 77 61 73 6d 26 71 75 6f 74 3b 29 3b 0a 63 6f 6e 73 74 20 74 79 70 65 64 41 72 72 61 ath.wasm&quot;);.const.typedArra
d57a0 79 20 3d 20 6e 65 77 20 55 69 6e 74 38 41 72 72 61 79 28 73 6f 75 72 63 65 29 3b 0a 0a 57 65 62 y.=.new.Uint8Array(source);..Web
d57c0 41 73 73 65 6d 62 6c 79 2e 69 6e 73 74 61 6e 74 69 61 74 65 28 74 79 70 65 64 41 72 72 61 79 2c Assembly.instantiate(typedArray,
d57e0 20 7b 0a 20 20 65 6e 76 3a 20 7b 0a 20 20 20 20 70 72 69 6e 74 3a 20 28 72 65 73 75 6c 74 29 20 .{...env:.{.....print:.(result).
d5800 3d 26 67 74 3b 20 7b 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 60 54 68 65 20 72 65 73 75 6c 74 20 =&gt;.{.console.log(`The.result.
d5820 69 73 20 24 7b 72 65 73 75 6c 74 7d 60 29 3b 20 7d 0a 20 20 7d 7d 29 2e 74 68 65 6e 28 72 65 73 is.${result}`);.}...}}).then(res
d5840 75 6c 74 20 3d 26 67 74 3b 20 7b 0a 20 20 63 6f 6e 73 74 20 61 64 64 20 3d 20 72 65 73 75 6c 74 ult.=&gt;.{...const.add.=.result
d5860 2e 69 6e 73 74 61 6e 63 65 2e 65 78 70 6f 72 74 73 2e 61 64 64 3b 0a 20 20 61 64 64 28 31 2c 20 .instance.exports.add;...add(1,.
d5880 32 29 3b 0a 7d 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 2);.});</code></pre></figure>...
d58a0 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 ....<figure><figcaption.class="s
d58c0 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 hell-cap">Shell</figcaption><pre
d58e0 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 6e 6f 64 65 20 74 65 73 74 2e 6a 73 3c 2f 6b 62 64 3e ><samp>$.<kbd>node.test.js</kbd>
d5900 0a 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 33 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f .The.result.is.3.</samp></pre></
d5920 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 57 41 53 figure>..............<h3.id="WAS
d5940 49 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 57 41 53 49 22 3e I"><a.href="nav.xhtml#toc-WASI">
d5960 57 41 53 49 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 57 WASI</a>.<a.class="hdr".href="#W
d5980 41 53 49 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 27 73 ASI">..</a></h3>........<p>Zig's
d59a0 20 73 75 70 70 6f 72 74 20 66 6f 72 20 57 65 62 41 73 73 65 6d 62 6c 79 20 53 79 73 74 65 6d 20 .support.for.WebAssembly.System.
d59c0 49 6e 74 65 72 66 61 63 65 20 28 57 41 53 49 29 20 69 73 20 75 6e 64 65 72 20 61 63 74 69 76 65 Interface.(WASI).is.under.active
d59e0 20 64 65 76 65 6c 6f 70 6d 65 6e 74 2e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 20 6f 66 20 75 .development........Example.of.u
d5a00 73 69 6e 67 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 61 6e 64 20 72 65 sing.the.standard.library.and.re
d5a20 61 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 73 3a 3c 2f 70 ading.command.line.arguments:</p
d5a40 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 >.......<figure><figcaption.clas
d5a60 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 77 s="zig-cap"><cite.class="file">w
d5a80 61 73 69 5f 61 72 67 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e asi_args.zig</cite></figcaption>
d5aa0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
d5ac0 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="
d5ae0 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
d5b00 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
d5b20 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"
d5b40 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"
d5b60 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">
d5b80 6d 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 main</span>().!<span.class="tok-
d5ba0 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
d5bc0 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 3c 2f 73 70 61 6e 3e 20 67 65 6e 65 72 61 6c 5f ass="tok-kw">var</span>.general_
d5be0 70 75 72 70 6f 73 65 5f 61 6c 6c 6f 63 61 74 6f 72 20 3d 20 73 74 64 2e 68 65 61 70 2e 47 65 6e purpose_allocator.=.std.heap.Gen
d5c00 65 72 61 6c 50 75 72 70 6f 73 65 41 6c 6c 6f 63 61 74 6f 72 28 2e 7b 7d 29 7b 7d 3b 0a 20 20 20 eralPurposeAllocator(.{}){};....
d5c20 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
d5c40 6e 3e 20 67 70 61 20 3d 20 67 65 6e 65 72 61 6c 5f 70 75 72 70 6f 73 65 5f 61 6c 6c 6f 63 61 74 n>.gpa.=.general_purpose_allocat
d5c60 6f 72 2e 61 6c 6c 6f 63 61 74 6f 72 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d or.allocator();.....<span.class=
d5c80 22 74 6f 6b 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 "tok-kw">const</span>.args.=.<sp
d5ca0 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 74 64 an.class="tok-kw">try</span>.std
d5cc0 2e 70 72 6f 63 65 73 73 2e 61 72 67 73 41 6c 6c 6f 63 28 67 70 61 29 3b 0a 20 20 20 20 3c 73 70 .process.argsAlloc(gpa);.....<sp
d5ce0 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 20 73 an.class="tok-kw">defer</span>.s
d5d00 74 64 2e 70 72 6f 63 65 73 73 2e 61 72 67 73 46 72 65 65 28 67 70 61 2c 20 61 72 67 73 29 3b 0a td.process.argsFree(gpa,.args);.
d5d20 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 2f 73 .....<span.class="tok-kw">for</s
d5d40 70 61 6e 3e 20 28 61 72 67 73 2c 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6e 75 6d pan>.(args,.<span.class="tok-num
d5d60 62 65 72 22 3e 30 3c 2f 73 70 61 6e 3e 2e 2e 29 20 7c 61 72 67 2c 20 69 7c 20 7b 0a 20 20 20 20 ber">0</span>..).|arg,.i|.{.....
d5d80 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d ....std.debug.print(<span.class=
d5da0 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 7d 3a 20 7b 73 7d 5c 6e 26 71 75 6f 74 3b 3c "tok-str">&quot;{}:.{s}\n&quot;<
d5dc0 2f 73 70 61 6e 3e 2c 20 2e 7b 20 69 2c 20 61 72 67 20 7d 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 /span>,..{.i,.arg.});.....}.}</c
d5de0 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ode></pre></figure><figure><figc
d5e00 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f aption.class="shell-cap">Shell</
d5e20 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 figcaption><pre><samp>$.<kbd>zig
d5e40 20 62 75 69 6c 64 2d 65 78 65 20 77 61 73 69 5f 61 72 67 73 2e 7a 69 67 20 2d 74 61 72 67 65 74 .build-exe.wasi_args.zig.-target
d5e60 20 77 61 73 6d 33 32 2d 77 61 73 69 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e .wasm32-wasi</kbd>.</samp></pre>
d5e80 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 </figure>.......<figure><figcapt
d5ea0 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 ion.class="shell-cap">Shell</fig
d5ec0 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 77 61 73 6d 74 69 caption><pre><samp>$.<kbd>wasmti
d5ee0 6d 65 20 77 61 73 69 5f 61 72 67 73 2e 77 61 73 6d 20 31 32 33 20 68 65 6c 6c 6f 3c 2f 6b 62 64 me.wasi_args.wasm.123.hello</kbd
d5f00 3e 0a 30 3a 20 77 61 73 69 5f 61 72 67 73 2e 77 61 73 6d 0a 31 3a 20 31 32 33 0a 32 3a 20 68 65 >.0:.wasi_args.wasm.1:.123.2:.he
d5f20 6c 6c 6f 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 llo.</samp></pre></figure>......
d5f40 20 3c 70 3e 41 20 6d 6f 72 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 65 78 61 6d 70 6c 65 20 77 .<p>A.more.interesting.example.w
d5f60 6f 75 6c 64 20 62 65 20 65 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 6c 69 73 74 20 6f 66 20 70 ould.be.extracting.the.list.of.p
d5f80 72 65 6f 70 65 6e 73 20 66 72 6f 6d 20 74 68 65 20 72 75 6e 74 69 6d 65 2e 0a 20 20 20 20 20 20 reopens.from.the.runtime........
d5fa0 54 68 69 73 20 69 73 20 6e 6f 77 20 73 75 70 70 6f 72 74 65 64 20 69 6e 20 74 68 65 20 73 74 61 This.is.now.supported.in.the.sta
d5fc0 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 76 69 61 20 3c 63 6f 64 65 3e 73 74 64 2e 66 73 2e 77 ndard.library.via.<code>std.fs.w
d5fe0 61 73 69 2e 50 72 65 6f 70 65 6e 73 3c 2f 63 6f 64 65 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c asi.Preopens</code>:</p>.......<
d6000 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 figure><figcaption.class="zig-ca
d6020 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 77 61 73 69 5f 70 72 65 6f 70 p"><cite.class="file">wasi_preop
d6040 65 6e 73 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e ens.zig</cite></figcaption><pre>
d6060 3c 63 6f 64 65 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 <code><span.class="tok-kw">const
d6080 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
d60a0 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
d60c0 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
d60e0 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
d6100 3c 2f 73 70 61 6e 3e 20 66 73 20 3d 20 73 74 64 2e 66 73 3b 0a 0a 3c 73 70 61 6e 20 63 6c 61 73 </span>.fs.=.std.fs;..<span.clas
d6120 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
d6140 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
d6160 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
d6180 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>.{...
d61a0 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
d61c0 3e 20 67 65 6e 65 72 61 6c 5f 70 75 72 70 6f 73 65 5f 61 6c 6c 6f 63 61 74 6f 72 20 3d 20 73 74 >.general_purpose_allocator.=.st
d61e0 64 2e 68 65 61 70 2e 47 65 6e 65 72 61 6c 50 75 72 70 6f 73 65 41 6c 6c 6f 63 61 74 6f 72 28 2e d.heap.GeneralPurposeAllocator(.
d6200 7b 7d 29 7b 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 {}){};.....<span.class="tok-kw">
d6220 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 67 70 61 20 3d 20 67 65 6e 65 72 61 6c 5f 70 75 72 70 6f const</span>.gpa.=.general_purpo
d6240 73 65 5f 61 6c 6c 6f 63 61 74 6f 72 2e 61 6c 6c 6f 63 61 74 6f 72 28 29 3b 0a 0a 20 20 20 20 3c se_allocator.allocator();......<
d6260 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 61 span.class="tok-kw">var</span>.a
d6280 72 65 6e 61 5f 69 6e 73 74 61 6e 63 65 20 3d 20 73 74 64 2e 68 65 61 70 2e 41 72 65 6e 61 41 6c rena_instance.=.std.heap.ArenaAl
d62a0 6c 6f 63 61 74 6f 72 2e 69 6e 69 74 28 67 70 61 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 locator.init(gpa);.....<span.cla
d62c0 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 72 65 6e 61 5f 69 ss="tok-kw">defer</span>.arena_i
d62e0 6e 73 74 61 6e 63 65 2e 64 65 69 6e 69 74 28 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 nstance.deinit();.....<span.clas
d6300 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 72 65 6e 61 20 3d 20 s="tok-kw">const</span>.arena.=.
d6320 61 72 65 6e 61 5f 69 6e 73 74 61 6e 63 65 2e 61 6c 6c 6f 63 61 74 6f 72 28 29 3b 0a 0a 20 20 20 arena_instance.allocator();.....
d6340 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
d6360 6e 3e 20 70 72 65 6f 70 65 6e 73 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b n>.preopens.=.<span.class="tok-k
d6380 77 22 3e 74 72 79 3c 2f 73 70 61 6e 3e 20 66 73 2e 77 61 73 69 2e 70 72 65 6f 70 65 6e 73 41 6c w">try</span>.fs.wasi.preopensAl
d63a0 6c 6f 63 28 61 72 65 6e 61 29 3b 0a 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f loc(arena);......<span.class="to
d63c0 6b 2d 6b 77 22 3e 66 6f 72 3c 2f 73 70 61 6e 3e 20 28 70 72 65 6f 70 65 6e 73 2e 6e 61 6d 65 73 k-kw">for</span>.(preopens.names
d63e0 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 3c 2f 73 70 ,.<span.class="tok-number">0</sp
d6400 61 6e 3e 2e 2e 29 20 7c 70 72 65 6f 70 65 6e 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 74 an>..).|preopen,.i|.{.........st
d6420 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 73 d.debug.print(<span.class="tok-s
d6440 74 72 22 3e 26 71 75 6f 74 3b 7b 7d 3a 20 7b 73 7d 5c 6e 26 71 75 6f 74 3b 3c 2f 73 70 61 6e 3e tr">&quot;{}:.{s}\n&quot;</span>
d6460 2c 20 2e 7b 20 69 2c 20 70 72 65 6f 70 65 6e 20 7d 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 ,..{.i,.preopen.});.....}.}</cod
d6480 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 e></pre></figure><figure><figcap
d64a0 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 tion.class="shell-cap">Shell</fi
d64c0 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 gcaption><pre><samp>$.<kbd>zig.b
d64e0 75 69 6c 64 2d 65 78 65 20 77 61 73 69 5f 70 72 65 6f 70 65 6e 73 2e 7a 69 67 20 2d 74 61 72 67 uild-exe.wasi_preopens.zig.-targ
d6500 65 74 20 77 61 73 6d 33 32 2d 77 61 73 69 3c 2f 6b 62 64 3e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 et.wasm32-wasi</kbd>.</samp></pr
d6520 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 e></figure>.......<figure><figca
d6540 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 ption.class="shell-cap">Shell</f
d6560 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d 70 3e 24 20 3c 6b 62 64 3e 77 61 73 6d igcaption><pre><samp>$.<kbd>wasm
d6580 74 69 6d 65 20 2d 2d 64 69 72 3d 2e 20 77 61 73 69 5f 70 72 65 6f 70 65 6e 73 2e 77 61 73 6d 3c time.--dir=..wasi_preopens.wasm<
d65a0 2f 6b 62 64 3e 0a 30 3a 20 73 74 64 69 6e 0a 31 3a 20 73 74 64 6f 75 74 0a 32 3a 20 73 74 64 65 /kbd>.0:.stdin.1:.stdout.2:.stde
d65c0 72 72 0a 33 3a 20 2e 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 rr.3:...</samp></pre></figure>..
d65e0 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 3d 22 54 61 72 67 65 ...................<h2.id="Targe
d6600 74 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 54 61 72 67 65 ts"><a.href="nav.xhtml#toc-Targe
d6620 74 73 22 3e 54 61 72 67 65 74 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 ts">Targets</a>.<a.class="hdr".h
d6640 72 65 66 3d 22 23 54 61 72 67 65 74 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a 0a 20 20 20 20 ref="#Targets">..</a></h2>......
d6660 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 73 74 72 6f 6e 67 3e 54 61 72 67 65 74 3c 2f 73 74 72 6f ..<p>.......<strong>Target</stro
d6680 6e 67 3e 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 63 6f 6d 70 75 74 65 72 20 74 68 61 74 20 ng>.refers.to.the.computer.that.
d66a0 77 69 6c 6c 20 62 65 20 75 73 65 64 20 74 6f 20 72 75 6e 20 61 6e 20 65 78 65 63 75 74 61 62 6c will.be.used.to.run.an.executabl
d66c0 65 2e 0a 20 20 20 20 20 20 49 74 20 69 73 20 63 6f 6d 70 6f 73 65 64 20 6f 66 20 74 68 65 20 43 e........It.is.composed.of.the.C
d66e0 50 55 20 61 72 63 68 69 74 65 63 74 75 72 65 2c 20 74 68 65 20 73 65 74 20 6f 66 20 65 6e 61 62 PU.architecture,.the.set.of.enab
d6700 6c 65 64 20 43 50 55 20 66 65 61 74 75 72 65 73 2c 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 led.CPU.features,.operating.syst
d6720 65 6d 2c 0a 20 20 20 20 20 20 6d 69 6e 69 6d 75 6d 20 61 6e 64 20 6d 61 78 69 6d 75 6d 20 6f 70 em,.......minimum.and.maximum.op
d6740 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 76 65 72 73 69 6f 6e 2c 20 41 42 49 2c 20 61 6e 64 erating.system.version,.ABI,.and
d6760 20 41 42 49 20 76 65 72 73 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c .ABI.version........</p>.......<
d6780 70 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 p>.......Zig.is.a.general-purpos
d67a0 65 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 77 68 69 63 68 20 6d 65 61 e.programming.language.which.mea
d67c0 6e 73 20 74 68 61 74 20 69 74 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 0a 20 20 20 20 20 20 ns.that.it.is.designed.to.......
d67e0 67 65 6e 65 72 61 74 65 20 6f 70 74 69 6d 61 6c 20 63 6f 64 65 20 66 6f 72 20 61 20 6c 61 72 67 generate.optimal.code.for.a.larg
d6800 65 20 73 65 74 20 6f 66 20 74 61 72 67 65 74 73 2e 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 3c 63 e.set.of.targets..The.command.<c
d6820 6f 64 65 3e 7a 69 67 20 74 61 72 67 65 74 73 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 70 72 6f ode>zig.targets</code>.......pro
d6840 76 69 64 65 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 6c 6c 20 6f 66 20 74 vides.information.about.all.of.t
d6860 68 65 20 74 61 72 67 65 74 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 69 73 20 61 77 61 72 65 he.targets.the.compiler.is.aware
d6880 20 6f 66 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 57 68 65 6e 20 6e 6f 20 74 61 72 67 65 74 .of.</p>.......<p>When.no.target
d68a0 20 6f 70 74 69 6f 6e 20 69 73 20 70 72 6f 76 69 64 65 64 20 74 6f 20 74 68 65 20 63 6f 6d 70 69 .option.is.provided.to.the.compi
d68c0 6c 65 72 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 68 6f 69 63 65 0a 20 20 20 20 20 20 69 73 ler,.the.default.choice.......is
d68e0 20 74 6f 20 74 61 72 67 65 74 20 74 68 65 20 3c 73 74 72 6f 6e 67 3e 68 6f 73 74 20 63 6f 6d 70 .to.target.the.<strong>host.comp
d6900 75 74 65 72 3c 2f 73 74 72 6f 6e 67 3e 2c 20 6d 65 61 6e 69 6e 67 20 74 68 61 74 20 74 68 65 0a uter</strong>,.meaning.that.the.
d6920 20 20 20 20 20 20 72 65 73 75 6c 74 69 6e 67 20 65 78 65 63 75 74 61 62 6c 65 20 77 69 6c 6c 20 ......resulting.executable.will.
d6940 62 65 20 3c 65 6d 3e 75 6e 73 75 69 74 61 62 6c 65 20 66 6f 72 20 63 6f 70 79 69 6e 67 20 74 6f be.<em>unsuitable.for.copying.to
d6960 20 61 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 63 6f 6d 70 75 74 65 72 3c 2f 65 6d 3e .a.different.......computer</em>
d6980 2e 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 63 6f 70 79 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 ..In.order.to.copy.an.executable
d69a0 20 74 6f 20 61 6e 6f 74 68 65 72 20 63 6f 6d 70 75 74 65 72 2c 20 74 68 65 20 63 6f 6d 70 69 6c .to.another.computer,.the.compil
d69c0 65 72 0a 20 20 20 20 20 20 6e 65 65 64 73 20 74 6f 20 6b 6e 6f 77 20 61 62 6f 75 74 20 74 68 65 er.......needs.to.know.about.the
d69e0 20 74 61 72 67 65 74 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 76 69 61 20 74 68 65 20 3c 63 6f .target.requirements.via.the.<co
d6a00 64 65 3e 2d 74 61 72 67 65 74 3c 2f 63 6f 64 65 3e 20 6f 70 74 69 6f 6e 2e 0a 20 20 20 20 20 20 de>-target</code>.option........
d6a20 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 5a 69 67 20 53 74 61 </p>.......<p>.......The.Zig.Sta
d6a40 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 28 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 ndard.Library.(<code><span.class
d6a60 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
d6a80 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
d6aa0 6f 74 3b 3c 2f 73 70 61 6e 3e 29 3c 2f 63 6f 64 65 3e 29 20 68 61 73 0a 20 20 20 20 20 20 63 72 ot;</span>)</code>).has.......cr
d6ac0 6f 73 73 2d 70 6c 61 74 66 6f 72 6d 20 61 62 73 74 72 61 63 74 69 6f 6e 73 2c 20 6d 61 6b 69 6e oss-platform.abstractions,.makin
d6ae0 67 20 74 68 65 20 73 61 6d 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 76 69 61 62 6c 65 20 6f 6e g.the.same.source.code.viable.on
d6b00 20 6d 61 6e 79 20 74 61 72 67 65 74 73 2e 0a 20 20 20 20 20 20 53 6f 6d 65 20 63 6f 64 65 20 69 .many.targets........Some.code.i
d6b20 73 20 6d 6f 72 65 20 70 6f 72 74 61 62 6c 65 20 74 68 61 6e 20 6f 74 68 65 72 20 63 6f 64 65 2e s.more.portable.than.other.code.
d6b40 20 49 6e 20 67 65 6e 65 72 61 6c 2c 20 5a 69 67 20 63 6f 64 65 20 69 73 20 65 78 74 72 65 6d 65 .In.general,.Zig.code.is.extreme
d6b60 6c 79 0a 20 20 20 20 20 20 70 6f 72 74 61 62 6c 65 20 63 6f 6d 70 61 72 65 64 20 74 6f 20 6f 74 ly.......portable.compared.to.ot
d6b80 68 65 72 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 73 2e 0a 20 20 20 20 20 her.programming.languages.......
d6ba0 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 61 63 68 20 70 6c 61 74 66 .</p>.......<p>.......Each.platf
d6bc0 6f 72 6d 20 72 65 71 75 69 72 65 73 20 69 74 73 20 6f 77 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 orm.requires.its.own.implementat
d6be0 69 6f 6e 73 20 74 6f 20 6d 61 6b 65 20 5a 69 67 27 73 0a 20 20 20 20 20 20 63 72 6f 73 73 2d 70 ions.to.make.Zig's.......cross-p
d6c00 6c 61 74 66 6f 72 6d 20 61 62 73 74 72 61 63 74 69 6f 6e 73 20 77 6f 72 6b 2e 20 54 68 65 73 65 latform.abstractions.work..These
d6c20 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 61 72 65 20 61 74 20 76 61 72 69 6f 75 73 0a .implementations.are.at.various.
d6c40 20 20 20 20 20 20 64 65 67 72 65 65 73 20 6f 66 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 20 45 61 63 ......degrees.of.completion..Eac
d6c60 68 20 74 61 67 67 65 64 20 72 65 6c 65 61 73 65 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 h.tagged.release.of.the.compiler
d6c80 20 63 6f 6d 65 73 20 77 69 74 68 0a 20 20 20 20 20 20 72 65 6c 65 61 73 65 20 6e 6f 74 65 73 20 .comes.with.......release.notes.
d6ca0 74 68 61 74 20 70 72 6f 76 69 64 65 20 74 68 65 20 66 75 6c 6c 20 73 75 70 70 6f 72 74 20 74 61 that.provide.the.full.support.ta
d6cc0 62 6c 65 20 66 6f 72 20 65 61 63 68 20 74 61 72 67 65 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a ble.for.each.target........</p>.
d6ce0 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 53 74 79 6c 65 2d 47 75 69 64 65 .............<h2.id="Style-Guide
d6d00 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 74 79 6c 65 2d 47 "><a.href="nav.xhtml#toc-Style-G
d6d20 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 61 73 73 3d 22 uide">Style.Guide</a>.<a.class="
d6d40 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 3c 2f 61 3e 3c hdr".href="#Style-Guide">..</a><
d6d60 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 54 68 65 73 65 20 63 6f 64 69 6e 67 20 63 6f 6e /h2>........<p>.These.coding.con
d6d80 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 79 20 74 68 65 ventions.are.not.enforced.by.the
d6da0 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 70 70 65 64 20 .compiler,.but.they.are.shipped.
d6dc0 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 20 77 69 74 68 in.this.documentation.along.with
d6de0 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 72 6f 76 69 64 .the.compiler.in.order.to.provid
d6e00 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 75 6c 64 20 61 e.a.point.of.reference,.should.a
d6e20 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 75 74 68 6f 72 nyone.wish.to.point.to.an.author
d6e40 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 6e 67 20 73 74 ity.on.agreed.upon.Zig.coding.st
d6e60 79 6c 65 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 41 76 yle........</p>.......<h3.id="Av
d6e80 6f 69 64 2d 52 65 64 75 6e 64 61 6e 63 79 2d 69 6e 2d 4e 61 6d 65 73 22 3e 3c 61 20 68 72 65 66 oid-Redundancy-in-Names"><a.href
d6ea0 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 41 76 6f 69 64 2d 52 65 64 75 6e 64 61 6e 63 79 ="nav.xhtml#toc-Avoid-Redundancy
d6ec0 2d 69 6e 2d 4e 61 6d 65 73 22 3e 41 76 6f 69 64 20 52 65 64 75 6e 64 61 6e 63 79 20 69 6e 20 4e -in-Names">Avoid.Redundancy.in.N
d6ee0 61 6d 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 41 ames</a>.<a.class="hdr".href="#A
d6f00 76 6f 69 64 2d 52 65 64 75 6e 64 61 6e 63 79 2d 69 6e 2d 4e 61 6d 65 73 22 3e c2 a7 3c 2f 61 3e void-Redundancy-in-Names">..</a>
d6f20 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 76 6f 69 64 20 74 68 65 73 65 20 77 6f 72 64 </h3>........<p>Avoid.these.word
d6f40 73 20 69 6e 20 74 79 70 65 20 6e 61 6d 65 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a s.in.type.names:</p>.......<ul>.
d6f60 20 20 20 20 20 20 20 20 3c 6c 69 3e 56 61 6c 75 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c ........<li>Value</li>.........<
d6f80 6c 69 3e 44 61 74 61 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6e 74 65 78 74 li>Data</li>.........<li>Context
d6fa0 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4d 61 6e 61 67 65 72 3c 2f 6c 69 3e 0a 20 </li>.........<li>Manager</li>..
d6fc0 20 20 20 20 20 20 20 3c 6c 69 3e 75 74 69 6c 73 2c 20 6d 69 73 63 2c 20 6f 72 20 73 6f 6d 65 62 .......<li>utils,.misc,.or.someb
d6fe0 6f 64 79 27 73 20 69 6e 69 74 69 61 6c 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a ody's.initials</li>.......</ul>.
d7000 20 20 20 20 20 20 3c 70 3e 45 76 65 72 79 74 68 69 6e 67 20 69 73 20 61 20 76 61 6c 75 65 2c 20 ......<p>Everything.is.a.value,.
d7020 61 6c 6c 20 74 79 70 65 73 20 61 72 65 20 64 61 74 61 2c 20 65 76 65 72 79 74 68 69 6e 67 20 69 all.types.are.data,.everything.i
d7040 73 20 63 6f 6e 74 65 78 74 2c 20 61 6c 6c 20 6c 6f 67 69 63 20 6d 61 6e 61 67 65 73 20 73 74 61 s.context,.all.logic.manages.sta
d7060 74 65 2e 0a 20 20 20 20 20 20 4e 6f 74 68 69 6e 67 20 69 73 20 63 6f 6d 6d 75 6e 69 63 61 74 65 te........Nothing.is.communicate
d7080 64 20 62 79 20 75 73 69 6e 67 20 61 20 77 6f 72 64 20 74 68 61 74 20 61 70 70 6c 69 65 73 20 74 d.by.using.a.word.that.applies.t
d70a0 6f 20 61 6c 6c 20 74 79 70 65 73 2e 3c 2f 70 3e 20 0a 20 20 20 20 20 20 3c 70 3e 54 65 6d 70 74 o.all.types.</p>........<p>Tempt
d70c0 61 74 69 6f 6e 20 74 6f 20 75 73 65 20 22 75 74 69 6c 69 74 69 65 73 22 2c 20 22 6d 69 73 63 65 ation.to.use."utilities",."misce
d70e0 6c 6c 61 6e 65 6f 75 73 22 2c 20 6f 72 20 73 6f 6d 65 62 6f 64 79 27 73 20 69 6e 69 74 69 61 6c llaneous",.or.somebody's.initial
d7100 73 0a 20 20 20 20 20 20 69 73 20 61 20 66 61 69 6c 75 72 65 20 74 6f 20 63 61 74 65 67 6f 72 69 s.......is.a.failure.to.categori
d7120 7a 65 2c 20 6f 72 20 6d 6f 72 65 20 63 6f 6d 6d 6f 6e 6c 79 2c 20 6f 76 65 72 63 61 74 65 67 6f ze,.or.more.commonly,.overcatego
d7140 72 69 7a 61 74 69 6f 6e 2e 20 53 75 63 68 0a 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69 6f 6e rization..Such.......declaration
d7160 73 20 63 61 6e 20 6c 69 76 65 20 61 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 61 20 6d 6f 64 75 s.can.live.at.the.root.of.a.modu
d7180 6c 65 20 74 68 61 74 20 6e 65 65 64 73 20 74 68 65 6d 20 77 69 74 68 20 6e 6f 0a 20 20 20 20 20 le.that.needs.them.with.no......
d71a0 20 6e 61 6d 65 73 70 61 63 65 20 6e 65 65 64 65 64 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 .namespace.needed.</p>..........
d71c0 20 20 20 20 20 3c 68 33 20 69 64 3d 22 41 76 6f 69 64 2d 52 65 64 75 6e 64 61 6e 74 2d 4e 61 6d .....<h3.id="Avoid-Redundant-Nam
d71e0 65 73 2d 69 6e 2d 46 75 6c 6c 79 2d 51 75 61 6c 69 66 69 65 64 2d 4e 61 6d 65 73 70 61 63 65 73 es-in-Fully-Qualified-Namespaces
d7200 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 41 76 6f 69 64 2d 52 "><a.href="nav.xhtml#toc-Avoid-R
d7220 65 64 75 6e 64 61 6e 74 2d 4e 61 6d 65 73 2d 69 6e 2d 46 75 6c 6c 79 2d 51 75 61 6c 69 66 69 65 edundant-Names-in-Fully-Qualifie
d7240 64 2d 4e 61 6d 65 73 70 61 63 65 73 22 3e 41 76 6f 69 64 20 52 65 64 75 6e 64 61 6e 74 20 4e 61 d-Namespaces">Avoid.Redundant.Na
d7260 6d 65 73 20 69 6e 20 46 75 6c 6c 79 2d 51 75 61 6c 69 66 69 65 64 20 4e 61 6d 65 73 70 61 63 65 mes.in.Fully-Qualified.Namespace
d7280 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 41 76 6f 69 s</a>.<a.class="hdr".href="#Avoi
d72a0 64 2d 52 65 64 75 6e 64 61 6e 74 2d 4e 61 6d 65 73 2d 69 6e 2d 46 75 6c 6c 79 2d 51 75 61 6c 69 d-Redundant-Names-in-Fully-Quali
d72c0 66 69 65 64 2d 4e 61 6d 65 73 70 61 63 65 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 fied-Namespaces">..</a></h3>....
d72e0 20 20 20 20 3c 70 3e 45 76 65 72 79 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 73 20 61 73 73 69 ....<p>Every.declaration.is.assi
d7300 67 6e 65 64 20 61 20 3c 73 74 72 6f 6e 67 3e 66 75 6c 6c 79 20 71 75 61 6c 69 66 69 65 64 0a 20 gned.a.<strong>fully.qualified..
d7320 20 20 20 20 20 6e 61 6d 65 73 70 61 63 65 3c 2f 73 74 72 6f 6e 67 3e 20 62 79 20 74 68 65 20 63 .....namespace</strong>.by.the.c
d7340 6f 6d 70 69 6c 65 72 2c 20 63 72 65 61 74 69 6e 67 20 61 20 74 72 65 65 20 73 74 72 75 63 74 75 ompiler,.creating.a.tree.structu
d7360 72 65 2e 20 43 68 6f 6f 73 65 20 6e 61 6d 65 73 20 62 61 73 65 64 0a 20 20 20 20 20 20 6f 6e 20 re..Choose.names.based.......on.
d7380 74 68 65 20 66 75 6c 6c 79 2d 71 75 61 6c 69 66 69 65 64 20 6e 61 6d 65 73 70 61 63 65 2c 20 61 the.fully-qualified.namespace,.a
d73a0 6e 64 20 61 76 6f 69 64 20 72 65 64 75 6e 64 61 6e 74 20 6e 61 6d 65 20 73 65 67 6d 65 6e 74 73 nd.avoid.redundant.name.segments
d73c0 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 .</p>.......<figure><figcaption.
d73e0 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c class="zig-cap"><cite.class="fil
d7400 65 22 3e 72 65 64 75 6e 64 61 6e 74 5f 66 71 6e 2e 7a 69 67 3c 2f 63 69 74 65 3e 3c 2f 66 69 67 e">redundant_fqn.zig</cite></fig
d7420 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 caption><pre><code><span.class="
d7440 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 6e tok-kw">const</span>.std.=.<span
d7460 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
d7480 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;
d74a0 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 3d std&quot;</span>);..<span.class=
d74c0 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=
d74e0 22 74 6f 6b 2d 6b 77 22 3e 63 6f 6e 73 74 3c 2f 73 70 61 6e 3e 20 6a 73 6f 6e 20 3d 20 3c 73 70 "tok-kw">const</span>.json.=.<sp
d7500 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>.
d7520 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 70 75 62 3c 2f {.....<span.class="tok-kw">pub</
d7540 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
d7560 3c 2f 73 70 61 6e 3e 20 4a 73 6f 6e 56 61 6c 75 65 20 3d 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d </span>.JsonValue.=.<span.class=
d7580 22 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 "tok-kw">union</span>(<span.clas
d75a0 73 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 s="tok-kw">enum</span>).{.......
d75c0 20 20 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 ..number:.<span.class="tok-type"
d75e0 3e 66 36 34 3c 2f 73 70 61 6e 3e 2c 0a 20 20 20 20 20 20 20 20 62 6f 6f 6c 65 61 6e 3a 20 3c 73 >f64</span>,.........boolean:.<s
d7600 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>
d7620 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 63 6f 6d 6d 65 ,.........<span.class="tok-comme
d7640 6e 74 22 3e 2f 2f 20 2e 2e 2e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 7d 3b 0a 7d 3b 0a 0a 3c 73 70 nt">//....</span>.....};.};..<sp
d7660 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
d7680 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
d76a0 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>().<
d76c0 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
d76e0 3e 20 7b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 67 2e 70 72 69 6e 74 28 3c 73 70 61 6e 20 63 6c >.{.....std.debug.print(<span.cl
d7700 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 26 71 75 6f 74 3b 7b 73 7d 5c 6e 26 71 75 6f 74 3b 3c ass="tok-str">&quot;{s}\n&quot;<
d7720 2f 73 70 61 6e 3e 2c 20 2e 7b 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 62 75 69 6c 74 /span>,..{<span.class="tok-built
d7740 69 6e 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 73 70 61 6e 3e 28 6a 73 6f 6e 2e 4a 73 6f 6e 56 61 in">@typeName</span>(json.JsonVa
d7760 6c 75 65 29 7d 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 3c lue)});.}</code></pre></figure><
d7780 66 69 67 75 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 2d figure><figcaption.class="shell-
d77a0 63 61 70 22 3e 53 68 65 6c 6c 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 73 61 6d cap">Shell</figcaption><pre><sam
d77c0 70 3e 24 20 3c 6b 62 64 3e 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 72 65 64 75 6e 64 61 6e 74 p>$.<kbd>zig.build-exe.redundant
d77e0 5f 66 71 6e 2e 7a 69 67 3c 2f 6b 62 64 3e 0a 24 20 3c 6b 62 64 3e 2e 2f 72 65 64 75 6e 64 61 6e _fqn.zig</kbd>.$.<kbd>./redundan
d7800 74 5f 66 71 6e 3c 2f 6b 62 64 3e 0a 72 65 64 75 6e 64 61 6e 74 5f 66 71 6e 2e 6a 73 6f 6e 2e 4a t_fqn</kbd>.redundant_fqn.json.J
d7820 73 6f 6e 56 61 6c 75 65 0a 3c 2f 73 61 6d 70 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a sonValue.</samp></pre></figure>.
d7840 20 20 20 20 20 20 3c 70 3e 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 22 6a 73 6f 6e 22 ......<p>In.this.example,."json"
d7860 20 69 73 20 72 65 70 65 61 74 65 64 20 69 6e 20 74 68 65 20 66 75 6c 6c 79 2d 71 75 61 6c 69 66 .is.repeated.in.the.fully-qualif
d7880 69 65 64 20 6e 61 6d 65 73 70 61 63 65 2e 20 54 68 65 20 73 6f 6c 75 74 69 6f 6e 0a 20 20 20 20 ied.namespace..The.solution.....
d78a0 20 20 69 73 20 74 6f 20 64 65 6c 65 74 65 20 3c 63 6f 64 65 3e 4a 73 6f 6e 3c 2f 63 6f 64 65 3e ..is.to.delete.<code>Json</code>
d78c0 20 66 72 6f 6d 20 3c 63 6f 64 65 3e 4a 73 6f 6e 56 61 6c 75 65 3c 2f 63 6f 64 65 3e 2e 20 49 6e .from.<code>JsonValue</code>..In
d78e0 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 77 65 20 68 61 76 65 0a 20 20 20 20 20 20 61 6e 20 65 .this.example.we.have.......an.e
d7900 6d 70 74 79 20 73 74 72 75 63 74 20 6e 61 6d 65 64 20 3c 63 6f 64 65 3e 6a 73 6f 6e 3c 2f 63 6f mpty.struct.named.<code>json</co
d7920 64 65 3e 20 62 75 74 20 72 65 6d 65 6d 62 65 72 20 74 68 61 74 20 66 69 6c 65 73 20 61 6c 73 6f de>.but.remember.that.files.also
d7940 20 61 63 74 0a 20 20 20 20 20 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 66 75 6c 6c 79 2d .act.......as.part.of.the.fully-
d7960 71 75 61 6c 69 66 69 65 64 20 6e 61 6d 65 73 70 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c qualified.namespace.</p>.......<
d7980 70 3e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 74 p>This.example.is.an.exception.t
d79a0 6f 20 74 68 65 20 72 75 6c 65 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 3c 61 20 68 72 65 66 3d o.the.rule.specified.in.<a.href=
d79c0 22 23 41 76 6f 69 64 2d 52 65 64 75 6e 64 61 6e 63 79 2d 69 6e 2d 4e 61 6d 65 73 22 3e 41 76 6f "#Avoid-Redundancy-in-Names">Avo
d79e0 69 64 20 52 65 64 75 6e 64 61 6e 63 79 20 69 6e 20 4e 61 6d 65 73 3c 2f 61 3e 2e 0a 20 20 20 20 id.Redundancy.in.Names</a>......
d7a00 20 20 54 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 20 74 68 65 20 74 79 70 65 20 68 61 73 20 62 65 ..The.meaning.of.the.type.has.be
d7a20 65 6e 20 72 65 64 75 63 65 64 20 74 6f 20 69 74 73 20 63 6f 72 65 3a 20 69 74 20 69 73 20 61 20 en.reduced.to.its.core:.it.is.a.
d7a40 6a 73 6f 6e 20 76 61 6c 75 65 2e 20 54 68 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 63 61 6e 6e 6f json.value..The.name.......canno
d7a60 74 20 62 65 20 61 6e 79 20 6d 6f 72 65 20 73 70 65 63 69 66 69 63 20 77 69 74 68 6f 75 74 20 62 t.be.any.more.specific.without.b
d7a80 65 69 6e 67 20 69 6e 63 6f 72 72 65 63 74 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 eing.incorrect.</p>.............
d7aa0 20 20 3c 68 33 20 69 64 3d 22 57 68 69 74 65 73 70 61 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e ..<h3.id="Whitespace"><a.href="n
d7ac0 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 57 68 69 74 65 73 70 61 63 65 22 3e 57 68 69 74 65 73 70 av.xhtml#toc-Whitespace">Whitesp
d7ae0 61 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 57 68 ace</a>.<a.class="hdr".href="#Wh
d7b00 69 74 65 73 70 61 63 65 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 75 6c itespace">..</a></h3>........<ul
d7b20 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 34 20 73 70 61 63 65 >.........<li>...........4.space
d7b40 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 .indentation.........</li>......
d7b60 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 4f 70 65 6e 20 62 72 61 63 65 73 20 6f 6e ...<li>...........Open.braces.on
d7b80 20 73 61 6d 65 20 6c 69 6e 65 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 77 .same.line,.unless.you.need.to.w
d7ba0 72 61 70 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 49 rap..........</li>.........<li>I
d7bc0 66 20 61 20 6c 69 73 74 20 6f 66 20 74 68 69 6e 67 73 20 69 73 20 6c 6f 6e 67 65 72 20 74 68 61 f.a.list.of.things.is.longer.tha
d7be0 6e 20 32 2c 20 70 75 74 20 65 61 63 68 20 69 74 65 6d 20 6f 6e 20 69 74 73 20 6f 77 6e 20 6c 69 n.2,.put.each.item.on.its.own.li
d7c00 6e 65 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 65 78 65 72 63 69 73 65 20 74 68 65 20 61 62 ne.and...........exercise.the.ab
d7c20 69 6c 69 74 79 20 74 6f 20 70 75 74 20 61 6e 20 65 78 74 72 61 20 63 6f 6d 6d 61 20 61 74 20 74 ility.to.put.an.extra.comma.at.t
d7c40 68 65 20 65 6e 64 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 he.end..........</li>.........<l
d7c60 69 3e 0a 20 20 20 20 20 20 20 20 20 20 4c 69 6e 65 20 6c 65 6e 67 74 68 3a 20 61 69 6d 20 66 6f i>...........Line.length:.aim.fo
d7c80 72 20 31 30 30 3b 20 75 73 65 20 63 6f 6d 6d 6f 6e 20 73 65 6e 73 65 2e 0a 20 20 20 20 20 20 20 r.100;.use.common.sense.........
d7ca0 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 20 20 20 20 .</li>.......</ul>..............
d7cc0 3c 68 33 20 69 64 3d 22 4e 61 6d 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d <h3.id="Names"><a.href="nav.xhtm
d7ce0 6c 23 74 6f 63 2d 4e 61 6d 65 73 22 3e 4e 61 6d 65 73 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d l#toc-Names">Names</a>.<a.class=
d7d00 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 3e 3c 2f 68 33 3e 0a "hdr".href="#Names">..</a></h3>.
d7d20 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 73 70 65 61 6b 69 6e .......<p>.......Roughly.speakin
d7d40 67 3a 20 3c 63 6f 64 65 3e 63 61 6d 65 6c 43 61 73 65 46 75 6e 63 74 69 6f 6e 4e 61 6d 65 3c 2f g:.<code>camelCaseFunctionName</
d7d60 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 54 69 74 6c 65 43 61 73 65 54 79 70 65 4e 61 6d 65 3c 2f code>,.<code>TitleCaseTypeName</
d7d80 63 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 3e 73 6e 61 6b 65 code>,...............<code>snake
d7da0 5f 63 61 73 65 5f 76 61 72 69 61 62 6c 65 5f 6e 61 6d 65 3c 2f 63 6f 64 65 3e 2e 20 4d 6f 72 65 _case_variable_name</code>..More
d7dc0 20 70 72 65 63 69 73 65 6c 79 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c .precisely:.......</p>.......<ul
d7de0 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 66 20 3c 63 >.........<li>.............If.<c
d7e00 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c ode>x</code>.is.a.<code><span.cl
d7e20 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
d7e40 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 >.............then.<code>x</code
d7e60 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c 63 6f 64 65 3e 54 69 74 6c 65 43 61 73 65 3c 2f 63 6f 64 >.should.be.<code>TitleCase</cod
d7e80 65 3e 2c 20 75 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 e>,.unless.it.............is.a.<
d7ea0 63 6f 64 65 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 74 code><span.class="tok-kw">struct
d7ec0 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 6c 64 73 20 61 6e 64 </span></code>.with.0.fields.and
d7ee0 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 74 61 6e 74 69 61 74 .is.never.meant.to.be.instantiat
d7f00 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 63 61 73 65 20 69 74 ed,.............in.which.case.it
d7f20 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 61 6d 65 73 70 61 63 .is.considered.to.be.a."namespac
d7f40 65 22 20 61 6e 64 20 75 73 65 73 20 3c 63 6f 64 65 3e 73 6e 61 6b 65 5f 63 61 73 65 3c 2f 63 6f e".and.uses.<code>snake_case</co
d7f60 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 3e 0a de>..........</li>.........<li>.
d7f80 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 ............If.<code>x</code>.is
d7fa0 20 63 61 6c 6c 61 62 6c 65 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 27 73 20 .callable,.and.<code>x</code>'s.
d7fc0 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 return.type.is.............<code
d7fe0 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 3c 2f 73 70 ><span.class="tok-type">type</sp
d8000 61 6e 3e 3c 2f 63 6f 64 65 3e 2c 20 74 68 65 6e 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 an></code>,.then.<code>x</code>.
d8020 73 68 6f 75 6c 64 20 62 65 20 3c 63 6f 64 65 3e 54 69 74 6c 65 43 61 73 65 3c 2f 63 6f 64 65 3e should.be.<code>TitleCase</code>
d8040 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 20 ..........</li>.........<li>....
d8060 20 20 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 6f 74 .........If.<code>x</code>.is.ot
d8080 68 65 72 77 69 73 65 20 63 61 6c 6c 61 62 6c 65 2c 20 74 68 65 6e 20 3c 63 6f 64 65 3e 78 3c 2f herwise.callable,.then.<code>x</
d80a0 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 62 65 20 3c 63 6f 64 code>.should.............be.<cod
d80c0 65 3e 63 61 6d 65 6c 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 e>camelCase</code>..........</li
d80e0 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 4f 74 68 65 72 >.........<li>.............Other
d8100 77 69 73 65 2c 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 3c wise,.<code>x</code>.should.be.<
d8120 63 6f 64 65 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 code>snake_case</code>..........
d8140 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>.....
d8160 20 20 41 63 72 6f 6e 79 6d 73 2c 20 69 6e 69 74 69 61 6c 69 73 6d 73 2c 20 70 72 6f 70 65 72 20 ..Acronyms,.initialisms,.proper.
d8180 6e 6f 75 6e 73 2c 20 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 77 6f 72 64 20 74 68 61 74 20 68 61 nouns,.or.any.other.word.that.ha
d81a0 73 20 63 61 70 69 74 61 6c 69 7a 61 74 69 6f 6e 0a 20 20 20 20 20 20 72 75 6c 65 73 20 69 6e 20 s.capitalization.......rules.in.
d81c0 77 72 69 74 74 65 6e 20 45 6e 67 6c 69 73 68 20 61 72 65 20 73 75 62 6a 65 63 74 20 74 6f 20 6e written.English.are.subject.to.n
d81e0 61 6d 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 6a 75 73 74 20 6c 69 6b 65 20 61 6e 79 20 aming.conventions.just.like.any.
d8200 6f 74 68 65 72 0a 20 20 20 20 20 20 77 6f 72 64 2e 20 45 76 65 6e 20 61 63 72 6f 6e 79 6d 73 20 other.......word..Even.acronyms.
d8220 74 68 61 74 20 61 72 65 20 6f 6e 6c 79 20 32 20 6c 65 74 74 65 72 73 20 6c 6f 6e 67 20 61 72 65 that.are.only.2.letters.long.are
d8240 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 73 65 0a 20 20 20 20 20 20 63 6f 6e 76 65 6e 74 69 .subject.to.these.......conventi
d8260 6f 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 ons........</p>.......<p>.......
d8280 46 69 6c 65 20 6e 61 6d 65 73 20 66 61 6c 6c 20 69 6e 74 6f 20 74 77 6f 20 63 61 74 65 67 6f 72 File.names.fall.into.two.categor
d82a0 69 65 73 3a 20 74 79 70 65 73 20 61 6e 64 20 6e 61 6d 65 73 70 61 63 65 73 2e 20 49 66 20 74 68 ies:.types.and.namespaces..If.th
d82c0 65 20 66 69 6c 65 0a 20 20 20 20 20 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 61 20 73 74 72 75 63 e.file.......(implicitly.a.struc
d82e0 74 29 20 68 61 73 20 74 6f 70 20 6c 65 76 65 6c 20 66 69 65 6c 64 73 2c 20 69 74 20 73 68 6f 75 t).has.top.level.fields,.it.shou
d8300 6c 64 20 62 65 20 6e 61 6d 65 64 20 6c 69 6b 65 20 61 6e 79 0a 20 20 20 20 20 20 6f 74 68 65 72 ld.be.named.like.any.......other
d8320 20 73 74 72 75 63 74 20 77 69 74 68 20 66 69 65 6c 64 73 20 75 73 69 6e 67 20 3c 63 6f 64 65 20 .struct.with.fields.using.<code.
d8340 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 54 69 74 6c 65 43 61 73 65 3c 2f 63 6f 64 65 3e 2e 20 4f class="file">TitleCase</code>..O
d8360 74 68 65 72 77 69 73 65 2c 0a 20 20 20 20 20 20 69 74 20 73 68 6f 75 6c 64 20 75 73 65 20 3c 63 therwise,.......it.should.use.<c
d8380 6f 64 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 6e 61 6b 65 5f 63 61 73 65 3c 2f 63 6f 64 ode.class="file">snake_case</cod
d83a0 65 3e 2e 20 44 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 20 73 68 6f 75 6c 64 20 62 65 0a 20 20 e>..Directory.names.should.be...
d83c0 20 20 20 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 6e 61 6b 65 5f 63 61 73 ....<code.class="file">snake_cas
d83e0 65 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 e</code>........</p>.......<p>..
d8400 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 65 73 20 6f 66 20 .....These.are.general.rules.of.
d8420 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 6f 20 64 6f 20 73 thumb;.if.it.makes.sense.to.do.s
d8440 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 64 6f 20 77 68 61 omething.different,.......do.wha
d8460 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 2c 20 69 66 20 74 t.makes.sense..For.example,.if.t
d8480 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 76 65 6e 74 69 6f here.is.an.established.conventio
d84a0 6e 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 45 4e 4f 45 4e 54 3c 2f 63 6f n.such.as.......<code>ENOENT</co
d84c0 64 65 3e 2c 20 66 6f 6c 6c 6f 77 20 74 68 65 20 65 73 74 61 62 6c 69 73 68 65 64 20 63 6f 6e 76 de>,.follow.the.established.conv
d84e0 65 6e 74 69 6f 6e 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 ention........</p>..............
d8500 3c 68 33 20 69 64 3d 22 45 78 61 6d 70 6c 65 73 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 <h3.id="Examples"><a.href="nav.x
d8520 68 74 6d 6c 23 74 6f 63 2d 45 78 61 6d 70 6c 65 73 22 3e 45 78 61 6d 70 6c 65 73 3c 2f 61 3e 20 html#toc-Examples">Examples</a>.
d8540 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 20 68 72 65 66 3d 22 23 45 78 61 6d 70 6c 65 73 22 3e <a.class="hdr".href="#Examples">
d8560 c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 72 65 3e 3c 66 69 67 63 ..</a></h3>........<figure><figc
d8580 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 7a 69 67 2d 63 61 70 22 3e 3c 63 69 74 65 20 63 6c 61 aption.class="zig-cap"><cite.cla
d85a0 73 73 3d 22 66 69 6c 65 22 3e 73 74 79 6c 65 5f 65 78 61 6d 70 6c 65 2e 7a 69 67 3c 2f 63 69 74 ss="file">style_example.zig</cit
d85c0 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 e></figcaption><pre><code><span.
d85e0 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 61 6d 65 class="tok-kw">const</span>.name
d8600 73 70 61 63 65 5f 6e 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 space_name.=.<span.class="tok-bu
d8620 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
d8640 73 3d 22 74 6f 6b 2d 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 s="tok-str">&quot;dir_name/file_
d8660 6e 61 6d 65 2e 7a 69 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 name.zig&quot;</span>);.<span.cl
d8680 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 65 4e 61 ass="tok-kw">const</span>.TypeNa
d86a0 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 40 me.=.<span.class="tok-builtin">@
d86c0 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
d86e0 74 72 22 3e 26 71 75 6f 74 3b 64 69 72 5f 6e 61 6d 65 2f 54 79 70 65 4e 61 6d 65 2e 7a 69 67 26 tr">&quot;dir_name/TypeName.zig&
d8700 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 2d quot;</span>);.<span.class="tok-
d8720 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 61 6e kw">var</span>.global_var:.<span
d8740 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>.=.<
d8760 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<
d8780 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 6f 6e /span>;.<span.class="tok-kw">con
d87a0 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 6c 61 st</span>.const_name.=.<span.cla
d87c0 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 61 6e ss="tok-number">42</span>;.<span
d87e0 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 72 69 .class="tok-kw">const</span>.pri
d8800 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 73 3d mitive_type_alias.=.<span.class=
d8820 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 6c 61 "tok-type">f32</span>;.<span.cla
d8840 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 67 5f ss="tok-kw">const</span>.string_
d8860 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 65 22 alias.=.[]<span.class="tok-type"
d8880 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 77 >u8</span>;..<span.class="tok-kw
d88a0 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 70 61 ">const</span>.StructName.=.<spa
d88c0 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>.{
d88e0 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 79 70 .....field:.<span.class="tok-typ
d8900 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 22 74 e">i32</span>,.};.<span.class="t
d8920 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 73 20 ok-kw">const</span>.StructAlias.
d8940 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 6b 2d =.StructName;..<span.class="tok-
d8960 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
d8980 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 61 6d n">functionName</span>(param_nam
d89a0 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 74 79 e:.TypeName).<span.class="tok-ty
d89c0 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
d89e0 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 50 6f s="tok-kw">var</span>.functionPo
d8a00 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 74 69 inter.=.functionName;.....functi
d8a20 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 65 72 onPointer();.....functionPointer
d8a40 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 50 6f .=.otherFunction;.....functionPo
d8a60 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 22 3e inter();.}.<span.class="tok-kw">
d8a80 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 75 6e const</span>.functionAlias.=.fun
d8aa0 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 77 22 ctionName;..<span.class="tok-kw"
d8ac0 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">
d8ae0 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 70 61 ListTemplateFunction</span>(<spa
d8b00 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>
d8b20 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 79 70 .ChildType:.<span.class="tok-typ
d8b40 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
d8b60 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 65 3a -kw">comptime</span>.fixed_size:
d8b80 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
d8ba0 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
d8bc0 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 6b 2d e</span>.{.....<span.class="tok-
d8be0 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 70 65 kw">return</span>.List(ChildType
d8c00 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 22 74 ,.fixed_size);.}..<span.class="t
d8c20 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
d8c40 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 6c 61 k-fn">ShortList</span>(<span.cla
d8c60 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 3c ss="tok-kw">comptime</span>.T:.<
d8c80 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
d8ca0 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 6d 65 >,.<span.class="tok-kw">comptime
d8cc0 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 70 65 </span>.n:.<span.class="tok-type
d8ce0 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 6f 6b ">usize</span>).<span.class="tok
d8d00 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
d8d20 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
d8d40 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>.{
d8d60 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 20 20 .........field_name:.[n]T,......
d8d80 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 61 6e ...<span.class="tok-kw">fn</span
d8da0 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 61 6d >.<span.class="tok-fn">methodNam
d8dc0 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
d8de0 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 61 6e ">void</span>.{}.....};.}..<span
d8e00 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 72 64 .class="tok-comment">//.The.word
d8e20 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 64 20 .XML.loses.its.casing.when.used.
d8e40 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 61 6e in.Zig.identifiers.</span>.<span
d8e60 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 6d 6c .class="tok-kw">const</span>.xml
d8e80 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 6f 6b _document.=.....<span.class="tok
d8ea0 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 3b 31 -str">\\&lt;?xml.version=&quot;1
d8ec0 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 71 75 .0&quot;.encoding=&quot;UTF-8&qu
d8ee0 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 73 3d ot;?&gt;.</span>....<span.class=
d8f00 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 2f 73 "tok-str">\\&lt;document&gt;.</s
d8f20 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 5c 5c pan>....<span.class="tok-str">\\
d8f40 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 61 6e &lt;/document&gt;.</span>;.<span
d8f60 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 6d 6c .class="tok-kw">const</span>.Xml
d8f80 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 73 74 Parser.=.<span.class="tok-kw">st
d8fa0 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 20 63 ruct</span>.{.....field:.<span.c
d8fc0 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>,.};..
d8fe0 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 65 <span.class="tok-comment">//.The
d9000 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 6a 75 .initials.BE.(Big.Endian).are.ju
d9020 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 69 65 st.another.word.in.Zig.identifie
d9040 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 6f 6b r.names.</span>.<span.class="tok
d9060 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-
d9080 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 6c 61 fn">readU32Be</span>().<span.cla
d90a0 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 6f 64 ss="tok-type">u32</span>.{}</cod
d90c0 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 e></pre></figure>.......<p>.....
d90e0 20 20 53 65 65 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23 5a 69 67 2d 53 74 61 6e 64 61 72 64 ..See.the.<a.href="#Zig-Standard
d9100 2d 4c 69 62 72 61 72 79 22 3e 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c 2f -Library">Zig.Standard.Library</
d9120 61 3e 20 66 6f 72 20 6d 6f 72 65 20 65 78 61 6d 70 6c 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e a>.for.more.examples........</p>
d9140 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 44 6f 63 2d 43 6f 6d 6d 65 6e ..............<h3.id="Doc-Commen
d9160 74 2d 47 75 69 64 61 6e 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 t-Guidance"><a.href="nav.xhtml#t
d9180 6f 63 2d 44 6f 63 2d 43 6f 6d 6d 65 6e 74 2d 47 75 69 64 61 6e 63 65 22 3e 44 6f 63 20 43 6f 6d oc-Doc-Comment-Guidance">Doc.Com
d91a0 6d 65 6e 74 20 47 75 69 64 61 6e 63 65 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 72 22 ment.Guidance</a>.<a.class="hdr"
d91c0 20 68 72 65 66 3d 22 23 44 6f 63 2d 43 6f 6d 6d 65 6e 74 2d 47 75 69 64 61 6e 63 65 22 3e c2 a7 .href="#Doc-Comment-Guidance">..
d91e0 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c </a></h3>........<ul>.........<l
d9200 69 3e 4f 6d 69 74 20 61 6e 79 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 68 61 74 20 69 73 20 72 i>Omit.any.information.that.is.r
d9220 65 64 75 6e 64 61 6e 74 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 edundant.based.on.the.name.of.th
d9240 65 20 74 68 69 6e 67 20 62 65 69 6e 67 20 64 6f 63 75 6d 65 6e 74 65 64 2e 3c 2f 6c 69 3e 0a 20 e.thing.being.documented.</li>..
d9260 20 20 20 20 20 20 20 3c 6c 69 3e 44 75 70 6c 69 63 61 74 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 .......<li>Duplicating.informati
d9280 6f 6e 20 6f 6e 74 6f 20 6d 75 6c 74 69 70 6c 65 20 73 69 6d 69 6c 61 72 20 66 75 6e 63 74 69 6f on.onto.multiple.similar.functio
d92a0 6e 73 20 69 73 20 65 6e 63 6f 75 72 61 67 65 64 20 62 65 63 61 75 73 65 20 69 74 20 68 65 6c 70 ns.is.encouraged.because.it.help
d92c0 73 20 49 44 45 73 20 61 6e 64 20 6f 74 68 65 72 20 74 6f 6f 6c 73 20 70 72 6f 76 69 64 65 20 62 s.IDEs.and.other.tools.provide.b
d92e0 65 74 74 65 72 20 68 65 6c 70 20 74 65 78 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c etter.help.text.</li>.........<l
d9300 69 3e 55 73 65 20 74 68 65 20 77 6f 72 64 20 3c 73 74 72 6f 6e 67 3e 61 73 73 75 6d 65 3c 2f 73 i>Use.the.word.<strong>assume</s
d9320 74 72 6f 6e 67 3e 20 74 6f 20 69 6e 64 69 63 61 74 65 20 69 6e 76 61 72 69 61 6e 74 73 20 74 68 trong>.to.indicate.invariants.th
d9340 61 74 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 at.cause.<a.href="#Undefined-Beh
d9360 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 77 68 avior">Undefined.Behavior</a>.wh
d9380 65 6e 20 76 69 6f 6c 61 74 65 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 55 73 en.violated.</li>.........<li>Us
d93a0 65 20 74 68 65 20 77 6f 72 64 20 3c 73 74 72 6f 6e 67 3e 61 73 73 65 72 74 3c 2f 73 74 72 6f 6e e.the.word.<strong>assert</stron
d93c0 67 3e 20 74 6f 20 69 6e 64 69 63 61 74 65 20 69 6e 76 61 72 69 61 6e 74 73 20 74 68 61 74 20 63 g>.to.indicate.invariants.that.c
d93e0 61 75 73 65 20 3c 65 6d 3e 73 61 66 65 74 79 2d 63 68 65 63 6b 65 64 3c 2f 65 6d 3e 20 3c 61 20 ause.<em>safety-checked</em>.<a.
d9400 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 66 href="#Undefined-Behavior">Undef
d9420 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 61 3e 20 77 68 65 6e 20 76 69 6f 6c 61 74 65 64 2e ined.Behavior</a>.when.violated.
d9440 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 20 20 20 20 0a </li>.......</ul>...............
d9460 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 53 6f 75 72 63 65 2d 45 6e 63 6f 64 69 6e 67 22 3e 3c ......<h2.id="Source-Encoding"><
d9480 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 53 6f 75 72 63 65 2d 45 6e 63 a.href="nav.xhtml#toc-Source-Enc
d94a0 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 20 3c 61 20 63 6c oding">Source.Encoding</a>.<a.cl
d94c0 61 73 73 3d 22 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 ass="hdr".href="#Source-Encoding
d94e0 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 73 6f 75 72 ">..</a></h2>........<p>Zig.sour
d9500 63 65 20 63 6f 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 ce.code.is.encoded.in.UTF-8..An.
d9520 69 6e 76 61 6c 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 invalid.UTF-8.byte.sequence.resu
d9540 6c 74 73 20 69 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 lts.in.a.compile.error.</p>.....
d9560 20 20 3c 70 3e 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 ..<p>Throughout.all.zig.source.c
d9580 6f 64 65 20 28 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 ode.(including.in.comments),.som
d95a0 65 20 63 6f 64 65 20 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 e.code.points.are.never.allowed:
d95c0 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 41 73 63 69 </p>.......<ul>.........<li>Asci
d95e0 69 20 63 6f 6e 74 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 i.control.characters,.except.for
d9600 20 55 2b 30 30 30 61 20 28 4c 46 29 2c 20 55 2b 30 30 30 64 20 28 43 52 29 2c 20 61 6e 64 20 55 .U+000a.(LF),.U+000d.(CR),.and.U
d9620 2b 30 30 30 39 20 28 48 54 29 3a 20 55 2b 30 30 30 30 20 2d 20 55 2b 30 30 30 38 2c 20 55 2b 30 +0009.(HT):.U+0000.-.U+0008,.U+0
d9640 30 30 62 20 2d 20 55 2b 30 30 30 63 2c 20 55 2b 30 30 30 65 20 2d 20 55 2b 30 30 30 31 66 2c 20 00b.-.U+000c,.U+000e.-.U+0001f,.
d9660 55 2b 30 30 37 66 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4e 6f 6e 2d 41 73 63 U+007f.</li>.........<li>Non-Asc
d9680 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 38 35 20 ii.Unicode.line.endings:.U+0085.
d96a0 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 53 29 2e (NEL),.U+2028.(LS),.U+2029.(PS).
d96c0 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>.....
d96e0 20 20 4c 46 20 28 62 79 74 65 20 76 61 6c 75 65 20 30 78 30 61 2c 20 63 6f 64 65 20 70 6f 69 6e ..LF.(byte.value.0x0a,.code.poin
d9700 74 20 55 2b 30 30 30 61 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b t.U+000a,.<code><span.class="tok
d9720 2d 73 74 72 22 3e 27 5c 6e 27 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 20 69 73 20 74 68 65 -str">'\n'</span></code>).is.the
d9740 20 6c 69 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 69 6e 20 5a 69 67 20 73 6f 75 72 63 65 20 63 .line.terminator.in.Zig.source.c
d9760 6f 64 65 2e 0a 20 20 20 20 20 20 54 68 69 73 20 62 79 74 65 20 76 61 6c 75 65 20 74 65 72 6d 69 ode........This.byte.value.termi
d9780 6e 61 74 65 73 20 65 76 65 72 79 20 6c 69 6e 65 20 6f 66 20 7a 69 67 20 73 6f 75 72 63 65 20 63 nates.every.line.of.zig.source.c
d97a0 6f 64 65 20 65 78 63 65 70 74 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 ode.except.the.last.line.of.the.
d97c0 66 69 6c 65 2e 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 68 file........It.is.recommended.th
d97e0 61 74 20 6e 6f 6e 2d 65 6d 70 74 79 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 65 6e 64 20 77 69 at.non-empty.source.files.end.wi
d9800 74 68 20 61 6e 20 65 6d 70 74 79 20 6c 69 6e 65 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 th.an.empty.line,.which.means.th
d9820 65 20 6c 61 73 74 20 62 79 74 65 20 77 6f 75 6c 64 20 62 65 20 30 78 30 61 20 28 4c 46 29 2e 0a e.last.byte.would.be.0x0a.(LF)..
d9840 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 45 61 63 68 20 ......</p>.......<p>.......Each.
d9860 4c 46 20 6d 61 79 20 62 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 70 72 65 63 65 64 65 64 20 62 LF.may.be.immediately.preceded.b
d9880 79 20 61 20 73 69 6e 67 6c 65 20 43 52 20 28 62 79 74 65 20 76 61 6c 75 65 20 30 78 30 64 2c 20 y.a.single.CR.(byte.value.0x0d,.
d98a0 63 6f 64 65 20 70 6f 69 6e 74 20 55 2b 30 30 30 64 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 code.point.U+000d,.<code><span.c
d98c0 6c 61 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 5c 72 27 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 lass="tok-str">'\r'</span></code
d98e0 3e 29 0a 20 20 20 20 20 20 74 6f 20 66 6f 72 6d 20 61 20 57 69 6e 64 6f 77 73 20 73 74 79 6c 65 >).......to.form.a.Windows.style
d9900 20 6c 69 6e 65 20 65 6e 64 69 6e 67 2c 20 62 75 74 20 74 68 69 73 20 69 73 20 64 69 73 63 6f 75 .line.ending,.but.this.is.discou
d9920 72 61 67 65 64 2e 20 4e 6f 74 65 20 74 68 61 74 20 69 6e 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 raged..Note.that.in.multiline.st
d9940 72 69 6e 67 73 2c 20 43 52 4c 46 20 73 65 71 75 65 6e 63 65 73 20 77 69 6c 6c 0a 20 20 20 20 20 rings,.CRLF.sequences.will......
d9960 20 62 65 20 65 6e 63 6f 64 65 64 20 61 73 20 4c 46 20 77 68 65 6e 20 63 6f 6d 70 69 6c 65 64 20 .be.encoded.as.LF.when.compiled.
d9980 69 6e 74 6f 20 61 20 7a 69 67 20 70 72 6f 67 72 61 6d 2e 0a 20 20 20 20 20 20 41 20 43 52 20 69 into.a.zig.program........A.CR.i
d99a0 6e 20 61 6e 79 20 6f 74 68 65 72 20 63 6f 6e 74 65 78 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 n.any.other.context.is.not.allow
d99c0 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 20 20 20 20 48 ed........</p>.......<p>.......H
d99e0 54 20 68 61 72 64 20 74 61 62 73 20 28 62 79 74 65 20 76 61 6c 75 65 20 30 78 30 39 2c 20 63 6f T.hard.tabs.(byte.value.0x09,.co
d9a00 64 65 20 70 6f 69 6e 74 20 55 2b 30 30 30 39 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 de.point.U+0009,.<code><span.cla
d9a20 73 73 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 5c 74 27 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 ss="tok-str">'\t'</span></code>)
d9a40 20 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 61 62 6c 65 20 77 69 74 68 0a 20 20 20 20 20 20 .are.interchangeable.with.......
d9a60 53 50 20 73 70 61 63 65 73 20 28 62 79 74 65 20 76 61 6c 75 65 20 30 78 32 30 2c 20 63 6f 64 65 SP.spaces.(byte.value.0x20,.code
d9a80 20 70 6f 69 6e 74 20 55 2b 30 30 32 30 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 .point.U+0020,.<code><span.class
d9aa0 3d 22 74 6f 6b 2d 73 74 72 22 3e 27 20 27 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 29 20 61 73 ="tok-str">'.'</span></code>).as
d9ac0 20 61 20 74 6f 6b 65 6e 20 73 65 70 61 72 61 74 6f 72 2c 0a 20 20 20 20 20 20 62 75 74 20 75 73 .a.token.separator,.......but.us
d9ae0 65 20 6f 66 20 68 61 72 64 20 74 61 62 73 20 69 73 20 64 69 73 63 6f 75 72 61 67 65 64 2e 20 53 e.of.hard.tabs.is.discouraged..S
d9b00 65 65 20 3c 61 20 68 72 65 66 3d 22 23 47 72 61 6d 6d 61 72 22 3e 47 72 61 6d 6d 61 72 3c 2f 61 ee.<a.href="#Grammar">Grammar</a
d9b20 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 46 6f >........</p>.......<p>.......Fo
d9b40 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f 74 68 65 72 20 74 6f 6f 6c 73 r.compatibility.with.other.tools
d9b60 2c 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 69 67 6e 6f 72 65 73 20 61 20 55 54 46 2d 38 2d 65 ,.the.compiler.ignores.a.UTF-8-e
d9b80 6e 63 6f 64 65 64 20 62 79 74 65 20 6f 72 64 65 72 20 6d 61 72 6b 20 28 55 2b 46 45 46 46 29 0a ncoded.byte.order.mark.(U+FEFF).
d9ba0 20 20 20 20 20 20 69 66 20 69 74 20 69 73 20 74 68 65 20 66 69 72 73 74 20 55 6e 69 63 6f 64 65 ......if.it.is.the.first.Unicode
d9bc0 20 63 6f 64 65 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 74 65 78 74 2e 20 .code.point.in.the.source.text..
d9be0 41 20 62 79 74 65 20 6f 72 64 65 72 20 6d 61 72 6b 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 A.byte.order.mark.is.not.allowed
d9c00 20 61 6e 79 77 68 65 72 65 20 65 6c 73 65 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 2e 0a 20 20 .anywhere.else.in.the.source....
d9c20 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
d9c40 61 74 20 72 75 6e 6e 69 6e 67 20 3c 6b 62 64 3e 7a 69 67 20 66 6d 74 3c 2f 6b 62 64 3e 20 6f 6e at.running.<kbd>zig.fmt</kbd>.on
d9c60 20 61 20 73 6f 75 72 63 65 20 66 69 6c 65 20 77 69 6c 6c 20 69 6d 70 6c 65 6d 65 6e 74 20 61 6c .a.source.file.will.implement.al
d9c80 6c 20 72 65 63 6f 6d 6d 65 6e 64 61 74 69 6f 6e 73 20 6d 65 6e 74 69 6f 6e 65 64 20 68 65 72 65 l.recommendations.mentioned.here
d9ca0 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 4e 6f 74 ........</p>.......<p>.......Not
d9cc0 65 20 74 68 61 74 20 61 20 74 6f 6f 6c 20 72 65 61 64 69 6e 67 20 5a 69 67 20 73 6f 75 72 63 65 e.that.a.tool.reading.Zig.source
d9ce0 20 63 6f 64 65 20 63 61 6e 20 6d 61 6b 65 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 69 66 20 74 68 .code.can.make.assumptions.if.th
d9d00 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 63 e.source.code.is.assumed.to.be.c
d9d20 6f 72 72 65 63 74 20 5a 69 67 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 orrect.Zig.code........For.examp
d9d40 6c 65 2c 20 77 68 65 6e 20 69 64 65 6e 74 69 66 79 69 6e 67 20 74 68 65 20 65 6e 64 73 20 6f 66 le,.when.identifying.the.ends.of
d9d60 20 6c 69 6e 65 73 2c 20 61 20 74 6f 6f 6c 20 63 61 6e 20 75 73 65 20 61 20 6e 61 69 76 65 20 73 .lines,.a.tool.can.use.a.naive.s
d9d80 65 61 72 63 68 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 2f 5c 6e 2f 3c 2f 63 6f 64 65 3e 2c earch.such.as.<code>/\n/</code>,
d9da0 0a 20 20 20 20 20 20 6f 72 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 6d 73 .......or.an.<a.href="https://ms
d9dc0 64 6e 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 65 6e 2d 75 73 2f 6c 69 62 72 61 72 79 2f 64 dn.microsoft.com/en-us/library/d
d9de0 64 34 30 39 37 39 37 2e 61 73 70 78 22 3e 61 64 76 61 6e 63 65 64 3c 2f 61 3e 0a 20 20 20 20 20 d409797.aspx">advanced</a>......
d9e00 20 73 65 61 72 63 68 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 2f 5c 72 5c 6e 3f 7c 5b 5c 6e .search.such.as.<code>/\r\n?|[\n
d9e20 5c 75 30 30 38 35 5c 75 32 30 32 38 5c 75 32 30 32 39 5d 2f 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 \u0085\u2028\u2029]/</code>,.and
d9e40 20 69 6e 20 65 69 74 68 65 72 20 63 61 73 65 20 6c 69 6e 65 20 65 6e 64 69 6e 67 73 20 77 69 6c .in.either.case.line.endings.wil
d9e60 6c 20 62 65 20 63 6f 72 72 65 63 74 6c 79 20 69 64 65 6e 74 69 66 69 65 64 2e 0a 20 20 20 20 20 l.be.correctly.identified.......
d9e80 20 46 6f 72 20 61 6e 6f 74 68 65 72 20 65 78 61 6d 70 6c 65 2c 20 77 68 65 6e 20 69 64 65 6e 74 .For.another.example,.when.ident
d9ea0 69 66 79 69 6e 67 20 74 68 65 20 77 68 69 74 65 73 70 61 63 65 20 62 65 66 6f 72 65 20 74 68 65 ifying.the.whitespace.before.the
d9ec0 20 66 69 72 73 74 20 74 6f 6b 65 6e 20 6f 6e 20 61 20 6c 69 6e 65 2c 0a 20 20 20 20 20 20 61 20 .first.token.on.a.line,.......a.
d9ee0 74 6f 6f 6c 20 63 61 6e 20 65 69 74 68 65 72 20 75 73 65 20 61 20 6e 61 69 76 65 20 73 65 61 72 tool.can.either.use.a.naive.sear
d9f00 63 68 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 2f 5b 20 5c 74 5d 2f 3c 2f 63 6f 64 65 3e 2c ch.such.as.<code>/[.\t]/</code>,
d9f20 0a 20 20 20 20 20 20 6f 72 20 61 6e 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 74 63 .......or.an.<a.href="https://tc
d9f40 33 39 2e 65 73 2f 65 63 6d 61 32 36 32 2f 23 73 65 63 2d 63 68 61 72 61 63 74 65 72 63 6c 61 73 39.es/ecma262/#sec-characterclas
d9f60 73 65 73 63 61 70 65 22 3e 61 64 76 61 6e 63 65 64 3c 2f 61 3e 20 73 65 61 72 63 68 20 73 75 63 sescape">advanced</a>.search.suc
d9f80 68 20 61 73 20 3c 63 6f 64 65 3e 2f 5c 73 2f 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 61 6e h.as.<code>/\s/</code>,.......an
d9fa0 64 20 69 6e 20 65 69 74 68 65 72 20 63 61 73 65 20 77 68 69 74 65 73 70 61 63 65 20 77 69 6c 6c d.in.either.case.whitespace.will
d9fc0 20 62 65 20 63 6f 72 72 65 63 74 6c 79 20 69 64 65 6e 74 69 66 69 65 64 2e 0a 20 20 20 20 20 20 .be.correctly.identified........
d9fe0 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 4b 65 79 77 6f </p>...............<h2.id="Keywo
da000 72 64 2d 52 65 66 65 72 65 6e 63 65 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c rd-Reference"><a.href="nav.xhtml
da020 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.
da040 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
da060 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
da080 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 65 2d 77 72 61 70 2>........<div.class="table-wrap
da0a0 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 20 20 3c 74 68 65 per">.......<table>.........<the
da0c0 61 64 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 68 20 73 ad>.........<tr>...........<th.s
da0e0 63 6f 70 65 3d 22 63 6f 6c 22 3e 4b 65 79 77 6f 72 64 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 cope="col">Keyword</th>.........
da100 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 63 6f 6c 22 3e 44 65 73 63 72 69 70 74 69 6f 6e 3c 2f 74 ..<th.scope="col">Description</t
da120 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 2f 74 68 65 61 64 h>.........</tr>.........</thead
da140 3e 0a 20 20 20 20 20 20 20 20 3c 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 >.........<tbody>.........<tr>..
da160 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 .........<th.scope="row">.......
da180 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f ......<pre><code><span.class="to
da1a0 6b 2d 6b 77 22 3e 61 64 64 72 73 70 61 63 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 k-kw">addrspace</span></code></p
da1c0 72 65 3e 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 74 re>...........</th>...........<t
da1e0 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 d>.............The.<code><span.c
da200 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 64 64 72 73 70 61 63 65 3c 2f 73 70 61 6e 3e 3c 2f lass="tok-kw">addrspace</span></
da220 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a code>.keyword..............<ul>.
da240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 4f 44 4f 20 61 64 64 20 64 6f 63 75 6d ..............<li>TODO.add.docum
da260 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 61 64 64 72 73 70 61 63 65 3c 2f 6c 69 3e 0a 20 20 20 20 entation.for.addrspace</li>.....
da280 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 20 ........</ul>...........</td>...
da2a0 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>........
da2c0 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...<th.scope="row">.............
da2e0 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
da300 61 6c 69 67 6e 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 align</span></code></pre>.......
da320 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 ....</th>...........<td>........
da340 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e .....<code><span.class="tok-kw">
da360 61 6c 69 67 6e 3c 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 20 align</span></code>.can.be.used.
da380 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 20 6f 66 20 61 20 70 6f to.specify.the.alignment.of.a.po
da3a0 69 6e 74 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 inter..............It.can.also.b
da3c0 65 20 75 73 65 64 20 61 66 74 65 72 20 61 20 76 61 72 69 61 62 6c 65 20 6f 72 20 66 75 6e 63 74 e.used.after.a.variable.or.funct
da3e0 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 61 ion.declaration.to.specify.the.a
da400 6c 69 67 6e 6d 65 6e 74 20 6f 66 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 74 68 61 74 20 76 61 72 lignment.of.pointers.to.that.var
da420 69 61 62 6c 65 20 6f 72 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c iable.or.function..............<
da440 75 6c 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 ul>...............<li>See.also.<
da460 61 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 2f 61 a.href="#Alignment">Alignment</a
da480 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>........
da4a0 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 3c ...</td>.........</tr>.........<
da4c0 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 tr>...........<th.scope="row">..
da4e0 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 ...........<pre><code><span.clas
da500 73 3d 22 74 6f 6b 2d 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 s="tok-kw">allowzero</span></cod
da520 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 e></pre>...........</th>........
da540 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 70 6f 69 6e 74 65 72 20 ...<td>.............The.pointer.
da560 61 74 74 72 69 62 75 74 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b attribute.<code><span.class="tok
da580 2d 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 6c 6c -kw">allowzero</span></code>.all
da5a0 6f 77 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 68 61 76 65 20 61 64 64 72 65 73 73 20 7a 65 ows.a.pointer.to.have.address.ze
da5c0 72 6f 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 20 20 ro..............<ul>............
da5e0 20 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 61 6c 6c 6f 77 7a ...<li>See.also.<a.href="#allowz
da600 65 72 6f 22 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 ero">allowzero</a></li>.........
da620 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>.......
da640 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 3c ..</tr>.........<tr>...........<
da660 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 th.scope="row">.............<pre
da680 3e 3c 63 6f 64 65 3e 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 ><code><span.class="tok-kw">and<
da6a0 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>...........</
da6c0 74 68 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 54 th>...........<td>.............T
da6e0 68 65 20 62 6f 6f 6c 65 61 6e 20 6f 70 65 72 61 74 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 he.boolean.operator.<code><span.
da700 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 3c 2f 63 6f 64 65 3e class="tok-kw">and</span></code>
da720 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 20 20 20 20 ..............<ul>..............
da740 20 3c 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 65 72 61 74 6f 72 .<li>See.also.<a.href="#Operator
da760 73 22 3e 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 s">Operators</a></li>...........
da780 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>.........
da7a0 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 68 </tr>.........<tr>...........<th
da7c0 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c .scope="row">.............<pre><
da7e0 63 6f 64 65 3e 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 code><span.class="tok-kw">anyfra
da800 6d 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 me</span></code></pre>..........
da820 20 3c 2f 74 68 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 .</th>...........<td>...........
da840 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 ..<code><span.class="tok-kw">any
da860 66 72 61 6d 65 3c 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 20 frame</span></code>.can.be.used.
da880 61 73 20 61 20 74 79 70 65 20 66 6f 72 20 76 61 72 69 61 62 6c 65 73 20 77 68 69 63 68 20 68 6f as.a.type.for.variables.which.ho
da8a0 6c 64 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 66 75 6e 63 74 69 6f 6e 20 66 72 61 6d 65 73 2e 0a ld.pointers.to.function.frames..
da8c0 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>...............<
da8e0 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 41 73 79 6e 63 2d 46 75 6e 63 li>See.also.<a.href="#Async-Func
da900 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 3c 2f 6c 69 3e 0a tions">Async.Functions</a></li>.
da920 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
da940 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>....
da960 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 .......<th.scope="row">.........
da980 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d ....<pre><code><span.class="tok-
da9a0 6b 77 22 3e 61 6e 79 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 kw">anytype</span></code></pre>.
da9c0 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 64 3e 0a 20 ..........</th>...........<td>..
da9e0 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 20 63 ...........Function.parameters.c
daa00 61 6e 20 62 65 20 64 65 63 6c 61 72 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 an.be.declared.with.<code><span.
daa20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 61 6e 79 74 79 70 65 3c 2f 73 70 61 6e 3e 3c 2f 63 class="tok-kw">anytype</span></c
daa40 6f 64 65 3e 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 74 68 65 20 74 79 70 65 2e 0a 20 20 20 20 20 ode>.in.place.of.the.type.......
daa60 20 20 20 20 20 20 20 54 68 65 20 74 79 70 65 20 77 69 6c 6c 20 62 65 20 69 6e 66 65 72 72 65 64 .......The.type.will.be.inferred
daa80 20 77 68 65 72 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 2e 0a 20 .where.the.function.is.called...
daaa0 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
daac0 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 2d 50 61 i>See.also.<a.href="#Function-Pa
daae0 72 61 6d 65 74 65 72 2d 54 79 70 65 2d 49 6e 66 65 72 65 6e 63 65 22 3e 46 75 6e 63 74 69 6f 6e rameter-Type-Inference">Function
dab00 20 50 61 72 61 6d 65 74 65 72 20 54 79 70 65 20 49 6e 66 65 72 65 6e 63 65 3c 2f 61 3e 3c 2f 6c .Parameter.Type.Inference</a></l
dab20 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>...........<
dab40 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>.
dab60 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 ..........<th.scope="row">......
dab80 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
daba0 6f 6b 2d 6b 77 22 3e 61 73 6d 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 ok-kw">asm</span></code></pre>..
dabc0 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 64 3e 0a 20 20 .........</th>...........<td>...
dabe0 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ..........<code><span.class="tok
dac00 2d 6b 77 22 3e 61 73 6d 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 62 65 67 69 6e 73 20 61 6e -kw">asm</span></code>.begins.an
dac20 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 2e 20 54 68 69 .inline.assembly.expression..Thi
dac40 73 20 61 6c 6c 6f 77 73 20 66 6f 72 20 64 69 72 65 63 74 6c 79 20 63 6f 6e 74 72 6f 6c 6c 69 6e s.allows.for.directly.controllin
dac60 67 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 20 6f 6e 20 g.the.machine.code.generated.on.
dac80 63 6f 6d 70 69 6c 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 compilation..............<ul>...
daca0 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 68 72 65 66 ............<li>See.also.<a.href
dacc0 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 3c 2f 6c 69 3e 0a 20 ="#Assembly">Assembly</a></li>..
dace0 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>
dad00 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 20 .........</tr>.........<tr>.....
dad20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 ......<th.scope="row">..........
dad40 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ...<pre><code><span.class="tok-k
dad60 77 22 3e 61 73 79 6e 63 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 w">async</span></code></pre>....
dad80 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 64 3e 0a 20 20 20 20 .......</th>...........<td>.....
dada0 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ........<code><span.class="tok-k
dadc0 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 6e 20 62 65 20 75 73 w">async</span></code>.can.be.us
dade0 65 64 20 62 65 66 6f 72 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 74 6f 20 67 65 74 ed.before.a.function.call.to.get
dae00 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 27 73 20 66 72 61 .a.pointer.to.the.function's.fra
dae20 6d 65 20 77 68 65 6e 20 69 74 20 73 75 73 70 65 6e 64 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 me.when.it.suspends.............
dae40 20 3c 75 6c 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 .<ul>...............<li>See.also
dae60 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 41 73 79 6e .<a.href="#Async-Functions">Asyn
dae80 63 20 46 75 6e 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 20 c.Functions</a></li>............
daea0 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 3c .</ul>...........</td>.........<
daec0 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 68 20 /tr>.........<tr>...........<th.
daee0 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 scope="row">.............<pre><c
daf00 6f 64 65 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 ode><span.class="tok-kw">await</
daf20 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 74 span></code></pre>...........</t
daf40 68 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 63 h>...........<td>.............<c
daf60 6f 64 65 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 ode><span.class="tok-kw">await</
daf80 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 75 73 70 span></code>.can.be.used.to.susp
dafa0 65 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 20 75 6e 74 69 6c 20 74 end.the.current.function.until.t
dafc0 68 65 20 66 72 61 6d 65 20 70 72 6f 76 69 64 65 64 20 61 66 74 65 72 20 74 68 65 20 3c 63 6f 64 he.frame.provided.after.the.<cod
dafe0 65 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 e><span.class="tok-kw">await</sp
db000 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 6f 6d 70 6c 65 74 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 an></code>.completes............
db020 20 20 3c 63 6f 64 65 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 ..<code><span.class="tok-kw">awa
db040 69 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 6f 70 69 65 73 20 74 68 65 20 76 61 6c 75 it</span></code>.copies.the.valu
db060 65 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 74 61 72 67 65 74 20 66 75 6e 63 74 e.returned.from.the.target.funct
db080 69 6f 6e 27 73 20 66 72 61 6d 65 20 74 6f 20 74 68 65 20 63 61 6c 6c 65 72 2e 0a 20 20 20 20 20 ion's.frame.to.the.caller.......
db0a0 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 53 65 .......<ul>...............<li>Se
db0c0 65 20 61 6c 73 6f 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 e.also.<a.href="#Async-Functions
db0e0 22 3e 41 73 79 6e 63 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 ">Async.Functions</a></li>......
db100 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>....
db120 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>.........
db140 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c ..<th.scope="row">.............<
db160 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 pre><code><span.class="tok-kw">b
db180 72 65 61 6b 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 reak</span></code></pre>........
db1a0 20 20 20 3c 2f 74 68 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 ...</th>...........<td>.........
db1c0 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 62 ....<code><span.class="tok-kw">b
db1e0 72 65 61 6b 3c 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 20 77 reak</span></code>.can.be.used.w
db200 69 74 68 20 61 20 62 6c 6f 63 6b 20 6c 61 62 65 6c 20 74 6f 20 72 65 74 75 72 6e 20 61 20 76 61 ith.a.block.label.to.return.a.va
db220 6c 75 65 20 66 72 6f 6d 20 74 68 65 20 62 6c 6f 63 6b 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 lue.from.the.block..............
db240 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 74 6f 20 65 78 69 74 20 61 20 6c 6f It.can.also.be.used.to.exit.a.lo
db260 6f 70 20 62 65 66 6f 72 65 20 69 74 65 72 61 74 69 6f 6e 20 63 6f 6d 70 6c 65 74 65 73 20 6e 61 op.before.iteration.completes.na
db280 74 75 72 61 6c 6c 79 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 turally..............<ul>.......
db2a0 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 22 23 42 ........<li>See.also.<a.href="#B
db2c0 6c 6f 63 6b 73 22 3e 42 6c 6f 63 6b 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 77 68 69 locks">Blocks</a>,.<a.href="#whi
db2e0 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 22 3e 66 6f le">while</a>,.<a.href="#for">fo
db300 72 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 20 r</a></li>.............</ul>....
db320 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 20 20 .......</td>.........</tr>......
db340 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 ...<tr>...........<th.scope="row
db360 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 ">.............<pre><code><span.
db380 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 6c 6c 63 6f 6e 76 3c 2f 73 70 61 6e 3e 3c 2f class="tok-kw">callconv</span></
db3a0 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 68 3e 0a 20 20 20 20 code></pre>...........</th>.....
db3c0 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 ......<td>.............<code><sp
db3e0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 63 61 6c 6c 63 6f 6e 76 3c 2f 73 70 61 6e an.class="tok-kw">callconv</span
db400 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 ></code>.can.be.used.to.specify.
db420 74 68 65 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 69 6e 20 61 20 66 75 6e 63 the.calling.convention.in.a.func
db440 74 69 6f 6e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 tion.type..............<ul>.....
db460 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 22 ..........<li>See.also.<a.href="
db480 23 46 75 6e 63 74 69 6f 6e 73 22 3e 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 #Functions">Functions</a></li>..
db4a0 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>
db4c0 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 20 .........</tr>.........<tr>.....
db4e0 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 ......<th.scope="row">..........
db500 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ...<pre><code><span.class="tok-k
db520 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 w">catch</span></code></pre>....
db540 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 64 3e 0a 20 20 20 20 .......</th>...........<td>.....
db560 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ........<code><span.class="tok-k
db580 77 22 3e 63 61 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 w">catch</span></code>.can.be.us
db5a0 65 64 20 74 6f 20 65 76 61 6c 75 61 74 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 66 20 ed.to.evaluate.an.expression.if.
db5c0 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 62 65 66 6f 72 65 20 69 74 20 65 76 61 6c 75 61 74 the.expression.before.it.evaluat
db5e0 65 73 20 74 6f 20 61 6e 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 es.to.an.error..............The.
db600 65 78 70 72 65 73 73 69 6f 6e 20 61 66 74 65 72 20 74 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e expression.after.the.<code><span
db620 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 3c 2f 63 6f .class="tok-kw">catch</span></co
db640 64 65 3e 20 63 61 6e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 63 61 70 74 75 72 65 20 74 68 65 20 65 de>.can.optionally.capture.the.e
db660 72 72 6f 72 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 rror.value..............<ul>....
db680 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=
db6a0 22 23 63 61 74 63 68 22 3e 63 61 74 63 68 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 "#catch">catch</a>,.<a.href="#Op
db6c0 65 72 61 74 6f 72 73 22 3e 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 erators">Operators</a></li>.....
db6e0 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 20 ........</ul>...........</td>...
db700 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>........
db720 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...<th.scope="row">.............
db740 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e <pre><code><span.class="tok-kw">
db760 63 6f 6d 70 74 69 6d 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 comptime</span></code></pre>....
db780 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 64 3e 0a 20 20 20 20 .......</th>...........<td>.....
db7a0 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ........<code><span.class="tok-k
db7c0 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 62 65 66 6f 72 65 w">comptime</span></code>.before
db7e0 20 61 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 6c 61 .a.declaration.can.be.used.to.la
db800 62 65 6c 20 76 61 72 69 61 62 6c 65 73 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 bel.variables.or.function.parame
db820 74 65 72 73 20 61 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 0a 20 ters.as.known.at.compile.time...
db840 20 20 20 20 20 20 20 20 20 20 20 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 74 ...........It.can.also.be.used.t
db860 6f 20 67 75 61 72 61 6e 74 65 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 72 75 6e o.guarantee.an.expression.is.run
db880 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 .at.compile.time..............<u
db8a0 6c 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 l>...............<li>See.also.<a
db8c0 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></
db8e0 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>...........
db900 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>
db920 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 ...........<th.scope="row">.....
db940 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ........<pre><code><span.class="
db960 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 3c 2f 70 72 65 tok-kw">const</span></code></pre
db980 3e 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 74 64 3e >...........</th>...........<td>
db9a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .............<code><span.class="
db9c0 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 20 64 65 63 6c tok-kw">const</span></code>.decl
db9e0 61 72 65 73 20 61 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20 63 61 6e 20 6e 6f 74 20 62 65 20 ares.a.variable.that.can.not.be.
dba00 6d 6f 64 69 66 69 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65 64 20 61 73 20 61 20 modified..............Used.as.a.
dba20 70 6f 69 6e 74 65 72 20 61 74 74 72 69 62 75 74 65 2c 20 69 74 20 64 65 6e 6f 74 65 73 20 74 68 pointer.attribute,.it.denotes.th
dba40 65 20 76 61 6c 75 65 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 e.value.referenced.by.the.pointe
dba60 72 20 63 61 6e 6e 6f 74 20 62 65 20 6d 6f 64 69 66 69 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 r.cannot.be.modified............
dba80 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 53 65 65 20 61 6c 73 ..<ul>...............<li>See.als
dbaa0 6f 20 3c 61 20 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 o.<a.href="#Variables">Variables
dbac0 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 20 20 </a></li>.............</ul>.....
dbae0 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 20 20 20 ......</td>.........</tr>.......
dbb00 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 ..<tr>...........<th.scope="row"
dbb20 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 >.............<pre><code><span.c
dbb40 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 63 lass="tok-kw">continue</span></c
dbb60 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 ode></pre>...........</th>......
dbb80 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 .....<td>.............<code><spa
dbba0 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 70 61 6e 3e n.class="tok-kw">continue</span>
dbbc0 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 69 6e 20 61 20 6c 6f 6f 70 20 74 6f </code>.can.be.used.in.a.loop.to
dbbe0 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 6f 66 20 74 .jump.back.to.the.beginning.of.t
dbc00 68 65 20 6c 6f 6f 70 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 he.loop..............<ul>.......
dbc20 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 22 23 77 ........<li>See.also.<a.href="#w
dbc40 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 22 3e hile">while</a>,.<a.href="#for">
dbc60 66 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 2f 75 6c 3e 0a 20 for</a></li>.............</ul>..
dbc80 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>....
dbca0 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 .....<tr>...........<th.scope="r
dbcc0 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ow">.............<pre><code><spa
dbce0 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 3c 2f 63 n.class="tok-kw">defer</span></c
dbd00 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 ode></pre>...........</th>......
dbd20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 .....<td>.............<code><spa
dbd40 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 3c 2f 63 n.class="tok-kw">defer</span></c
dbd60 6f 64 65 3e 20 77 69 6c 6c 20 65 78 65 63 75 74 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 ode>.will.execute.an.expression.
dbd80 77 68 65 6e 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 6c 65 61 76 65 73 20 74 68 65 20 63 75 72 when.control.flow.leaves.the.cur
dbda0 72 65 6e 74 20 62 6c 6f 63 6b 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 rent.block..............<ul>....
dbdc0 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=
dbde0 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>.........
dbe00 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>.......
dbe20 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 3c ..</tr>.........<tr>...........<
dbe40 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 th.scope="row">.............<pre
dbe60 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">else
dbe80 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>...........<
dbea0 2f 74 68 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 /th>...........<td>.............
dbec0 3c 63 6f 64 65 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 3c <code><span.class="tok-kw">else<
dbee0 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 20 74 6f 20 70 72 6f /span></code>.can.be.used.to.pro
dbf00 76 69 64 65 20 61 6e 20 61 6c 74 65 72 6e 61 74 65 20 62 72 61 6e 63 68 20 66 6f 72 20 3c 63 6f vide.an.alternate.branch.for.<co
dbf20 64 65 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 de><span.class="tok-kw">if</span
dbf40 3e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ></code>,.<code><span.class="tok
dbf60 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 2c 0a 20 20 20 20 20 -kw">switch</span></code>,......
dbf80 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .......<code><span.class="tok-kw
dbfa0 22 3e 77 68 69 6c 65 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 ">while</span></code>,.and.<code
dbfc0 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 6e 3e ><span.class="tok-kw">for</span>
dbfe0 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 </code>.expressions.............
dc000 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 75 73 65 64 20 .<ul>...............<li>If.used.
dc020 61 66 74 65 72 20 61 6e 20 69 66 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 74 68 65 20 65 6c 73 65 after.an.if.expression,.the.else
dc040 20 62 72 61 6e 63 68 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 20 69 66 20 74 68 65 20 .branch.will.be.executed.if.the.
dc060 74 65 73 74 20 76 61 6c 75 65 20 72 65 74 75 72 6e 73 20 66 61 6c 73 65 2c 20 6e 75 6c 6c 2c 20 test.value.returns.false,.null,.
dc080 6f 72 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or.an.error.</li>...............
dc0a0 3c 6c 69 3e 49 66 20 75 73 65 64 20 77 69 74 68 69 6e 20 61 20 73 77 69 74 63 68 20 65 78 70 72 <li>If.used.within.a.switch.expr
dc0c0 65 73 73 69 6f 6e 2c 20 74 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 77 69 6c 6c 20 62 65 20 ession,.the.else.branch.will.be.
dc0e0 65 78 65 63 75 74 65 64 20 69 66 20 74 68 65 20 74 65 73 74 20 76 61 6c 75 65 20 6d 61 74 63 68 executed.if.the.test.value.match
dc100 65 73 20 6e 6f 20 6f 74 68 65 72 20 63 61 73 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 es.no.other.cases.</li>.........
dc120 20 20 20 20 20 20 3c 6c 69 3e 49 66 20 75 73 65 64 20 61 66 74 65 72 20 61 20 6c 6f 6f 70 20 65 ......<li>If.used.after.a.loop.e
dc140 78 70 72 65 73 73 69 6f 6e 2c 20 74 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 77 69 6c 6c 20 xpression,.the.else.branch.will.
dc160 62 65 20 65 78 65 63 75 74 65 64 20 69 66 20 74 68 65 20 6c 6f 6f 70 20 66 69 6e 69 73 68 65 73 be.executed.if.the.loop.finishes
dc180 20 77 69 74 68 6f 75 74 20 62 72 65 61 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 .without.breaking.</li>.........
dc1a0 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 22 23 69 66 22 ......<li>See.also.<a.href="#if"
dc1c0 3e 69 66 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 >if</a>,.<a.href="#switch">switc
dc1e0 68 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 h</a>,.<a.href="#while">while</a
dc200 3e 2c 20 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 20 >,.<a.href="#for">for</a></li>..
dc220 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>
dc240 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 20 .........</tr>.........<tr>.....
dc260 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 ......<th.scope="row">..........
dc280 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ...<pre><code><span.class="tok-k
dc2a0 77 22 3e 65 6e 75 6d 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 w">enum</span></code></pre>.....
dc2c0 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 ......</th>...........<td>......
dc2e0 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 .......<code><span.class="tok-kw
dc300 22 3e 65 6e 75 6d 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 66 69 6e 65 73 20 61 6e 20 ">enum</span></code>.defines.an.
dc320 65 6e 75 6d 20 74 79 70 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 enum.type..............<ul>.....
dc340 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 22 ..........<li>See.also.<a.href="
dc360 23 65 6e 75 6d 22 3e 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 #enum">enum</a></li>............
dc380 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 3c .</ul>...........</td>.........<
dc3a0 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 68 20 /tr>.........<tr>...........<th.
dc3c0 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 scope="row">.............<pre><c
dc3e0 6f 64 65 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 64 65 66 65 ode><span.class="tok-kw">errdefe
dc400 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 20 20 20 20 r</span></code></pre>...........
dc420 3c 2f 74 68 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 </th>...........<td>............
dc440 20 3c 63 6f 64 65 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 64 .<code><span.class="tok-kw">errd
dc460 65 66 65 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 69 6c 6c 20 65 78 65 63 75 74 65 20 efer</span></code>.will.execute.
dc480 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 77 68 65 6e 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 an.expression.when.control.flow.
dc4a0 6c 65 61 76 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 6c 6f 63 6b 20 69 66 20 74 68 65 20 leaves.the.current.block.if.the.
dc4c0 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 2c 20 74 68 65 20 65 function.returns.an.error,.the.e
dc4e0 72 72 64 65 66 65 72 20 65 78 70 72 65 73 73 69 6f 6e 20 63 61 6e 20 63 61 70 74 75 72 65 20 74 rrdefer.expression.can.capture.t
dc500 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 20 20 20 20 20 20 he.unwrapped.value..............
dc520 3c 75 6c 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 <ul>...............<li>See.also.
dc540 3c 61 20 68 72 65 66 3d 22 23 65 72 72 64 65 66 65 72 22 3e 65 72 72 64 65 66 65 72 3c 2f 61 3e <a.href="#errdefer">errdefer</a>
dc560 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>.........
dc580 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 3c 74 ..</td>.........</tr>.........<t
dc5a0 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 r>...........<th.scope="row">...
dc5c0 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 ..........<pre><code><span.class
dc5e0 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 6f 64 65 3e 3c 2f 70 ="tok-kw">error</span></code></p
dc600 72 65 3e 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 74 re>...........</th>...........<t
dc620 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 d>.............<code><span.class
dc640 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 6f 64 65 3e 20 64 65 ="tok-kw">error</span></code>.de
dc660 66 69 6e 65 73 20 61 6e 20 65 72 72 6f 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 fines.an.error.type.............
dc680 20 3c 75 6c 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 .<ul>...............<li>See.also
dc6a0 20 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 2f 61 3e 3c 2f 6c .<a.href="#Errors">Errors</a></l
dc6c0 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>...........<
dc6e0 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>.
dc700 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 ..........<th.scope="row">......
dc720 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
dc740 6f 6b 2d 6b 77 22 3e 65 78 70 6f 72 74 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 ok-kw">export</span></code></pre
dc760 3e 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 74 64 3e >...........</th>...........<td>
dc780 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .............<code><span.class="
dc7a0 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 64 65 3e 20 6d 61 6b tok-kw">export</span></code>.mak
dc7c0 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 76 61 72 69 61 62 6c 65 20 65 78 74 65 72 6e es.a.function.or.variable.extern
dc7e0 61 6c 6c 79 20 76 69 73 69 62 6c 65 20 69 6e 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 6f 62 ally.visible.in.the.generated.ob
dc800 6a 65 63 74 20 66 69 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 78 70 6f 72 74 65 64 20 ject.file..............Exported.
dc820 66 75 6e 63 74 69 6f 6e 73 20 64 65 66 61 75 6c 74 20 74 6f 20 74 68 65 20 43 20 63 61 6c 6c 69 functions.default.to.the.C.calli
dc840 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a ng.convention..............<ul>.
dc860 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 68 72 ..............<li>See.also.<a.hr
dc880 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 3c 2f 61 3e 3c 2f 6c ef="#Functions">Functions</a></l
dc8a0 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>...........<
dc8c0 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>.
dc8e0 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 ..........<th.scope="row">......
dc900 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
dc920 6f 6b 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 3c 2f 70 72 65 ok-kw">extern</span></code></pre
dc940 3e 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 74 64 3e >...........</th>...........<td>
dc960 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 .............<code><span.class="
dc980 74 6f 6b 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 63 61 6e tok-kw">extern</span></code>.can
dc9a0 20 62 65 20 75 73 65 64 20 74 6f 20 64 65 63 6c 61 72 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f .be.used.to.declare.a.function.o
dc9c0 72 20 76 61 72 69 61 62 6c 65 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 72 65 73 6f 6c 76 65 64 r.variable.that.will.be.resolved
dc9e0 20 61 74 20 6c 69 6e 6b 20 74 69 6d 65 2c 20 77 68 65 6e 20 6c 69 6e 6b 69 6e 67 20 73 74 61 74 .at.link.time,.when.linking.stat
dca00 69 63 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 61 74 20 72 75 6e 74 69 6d 65 ically.............or.at.runtime
dca20 2c 20 77 68 65 6e 20 6c 69 6e 6b 69 6e 67 20 64 79 6e 61 6d 69 63 61 6c 6c 79 2e 0a 20 20 20 20 ,.when.linking.dynamically......
dca40 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 53 ........<ul>...............<li>S
dca60 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e 46 75 6e ee.also.<a.href="#Functions">Fun
dca80 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 20 20 3c 2f 75 6c ctions</a></li>.............</ul
dcaa0 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>.
dcac0 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 20 73 63 6f 70 65 ........<tr>...........<th.scope
dcae0 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c ="row">.............<pre><code><
dcb00 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 3c 2f 63 span.class="tok-kw">fn</span></c
dcb20 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 ode></pre>...........</th>......
dcb40 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 .....<td>.............<code><spa
dcb60 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 3c 2f 63 6f 64 65 n.class="tok-kw">fn</span></code
dcb80 3e 20 64 65 63 6c 61 72 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 >.declares.a.function...........
dcba0 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 53 65 65 20 61 6c ...<ul>...............<li>See.al
dcbc0 73 6f 20 3c 61 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 so.<a.href="#Functions">Function
dcbe0 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 20 s</a></li>.............</ul>....
dcc00 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 20 20 .......</td>.........</tr>......
dcc20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 ...<tr>...........<th.scope="row
dcc40 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 ">.............<pre><code><span.
dcc60 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 3c 2f 63 6f 64 65 3e class="tok-kw">for</span></code>
dcc80 3c 2f 70 72 65 3e 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 </pre>...........</th>..........
dcca0 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 .<td>.............A.<code><span.
dccc0 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 3c 2f 63 6f 64 65 3e class="tok-kw">for</span></code>
dcce0 20 65 78 70 72 65 73 73 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 69 74 65 72 61 .expression.can.be.used.to.itera
dcd00 74 65 20 6f 76 65 72 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 61 20 73 6c 69 63 65 2c te.over.the.elements.of.a.slice,
dcd20 20 61 72 72 61 79 2c 20 6f 72 20 74 75 70 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 .array,.or.tuple..............<u
dcd40 6c 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 l>...............<li>See.also.<a
dcd60 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 20 20 20 20 20 20 .href="#for">for</a></li>.......
dcd80 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>.....
dcda0 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>..........
dcdc0 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 .<th.scope="row">.............<p
dcde0 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 re><code><span.class="tok-kw">if
dce00 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>...........<
dce20 2f 74 68 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 /th>...........<td>.............
dce40 41 6e 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 69 66 An.<code><span.class="tok-kw">if
dce60 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 63 61 6e 20 74 65 </span></code>.expression.can.te
dce80 73 74 20 62 6f 6f 6c 65 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 6f 70 74 69 6f 6e 61 6c st.boolean.expressions,.optional
dcea0 20 76 61 6c 75 65 73 2c 20 6f 72 20 65 72 72 6f 72 20 75 6e 69 6f 6e 73 2e 0a 20 20 20 20 20 20 .values,.or.error.unions........
dcec0 20 20 20 20 20 20 46 6f 72 20 6f 70 74 69 6f 6e 61 6c 20 76 61 6c 75 65 73 20 6f 72 20 65 72 72 ......For.optional.values.or.err
dcee0 6f 72 20 75 6e 69 6f 6e 73 2c 20 74 68 65 20 69 66 20 65 78 70 72 65 73 73 69 6f 6e 20 63 61 6e or.unions,.the.if.expression.can
dcf00 20 63 61 70 74 75 72 65 20 74 68 65 20 75 6e 77 72 61 70 70 65 64 20 76 61 6c 75 65 2e 0a 20 20 .capture.the.unwrapped.value....
dcf20 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
dcf40 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 3c 2f >See.also.<a.href="#if">if</a></
dcf60 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>...........
dcf80 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>
dcfa0 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 ...........<th.scope="row">.....
dcfc0 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 ........<pre><code><span.class="
dcfe0 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 3c 2f 70 72 tok-kw">inline</span></code></pr
dd000 65 3e 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 74 64 e>...........</th>...........<td
dd020 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d >.............<code><span.class=
dd040 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 63 61 "tok-kw">inline</span></code>.ca
dd060 6e 20 62 65 20 75 73 65 64 20 74 6f 20 6c 61 62 65 6c 20 61 20 6c 6f 6f 70 20 65 78 70 72 65 73 n.be.used.to.label.a.loop.expres
dd080 73 69 6f 6e 20 73 75 63 68 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 6e 72 6f 6c 6c sion.such.that.it.will.be.unroll
dd0a0 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ed.at.compile.time..............
dd0c0 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 74 6f 20 66 6f 72 63 65 20 61 20 66 It.can.also.be.used.to.force.a.f
dd0e0 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 20 69 6e 6c 69 6e 65 64 20 61 74 20 61 6c 6c 20 63 61 6c unction.to.be.inlined.at.all.cal
dd100 6c 20 73 69 74 65 73 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 l.sites..............<ul>.......
dd120 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 22 23 69 ........<li>See.also.<a.href="#i
dd140 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 3e 2c 20 3c nline-while">inline.while</a>,.<
dd160 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 2d 66 6f 72 22 3e 69 6e 6c 69 6e 65 20 66 6f 72 3c a.href="#inline-for">inline.for<
dd180 2f 61 3e 2c 20 3c 61 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 /a>,.<a.href="#Functions">Functi
dd1a0 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 2f 75 6c 3e 0a 20 ons</a></li>.............</ul>..
dd1c0 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>....
dd1e0 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 .....<tr>...........<th.scope="r
dd200 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ow">.............<pre><code><spa
dd220 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6c 69 6e 6b 73 65 63 74 69 6f 6e 3c 2f 73 70 n.class="tok-kw">linksection</sp
dd240 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 68 3e an></code></pre>...........</th>
dd260 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 54 68 65 20 ...........<td>.............The.
dd280 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6c 69 6e 6b 73 <code><span.class="tok-kw">links
dd2a0 65 63 74 69 6f 6e 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 63 61 6e ection</span></code>.keyword.can
dd2c0 20 62 65 20 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 77 68 61 74 20 73 65 63 74 69 6f 6e .be.used.to.specify.what.section
dd2e0 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 .the.function.or.global.variable
dd300 20 77 69 6c 6c 20 62 65 20 70 75 74 20 69 6e 74 6f 20 28 65 2e 67 2e 20 3c 63 6f 64 65 3e 2e 74 .will.be.put.into.(e.g..<code>.t
dd320 65 78 74 3c 2f 63 6f 64 65 3e 29 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 ext</code>)............</td>....
dd340 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>.........
dd360 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c ..<th.scope="row">.............<
dd380 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6e pre><code><span.class="tok-kw">n
dd3a0 6f 61 6c 69 61 73 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 oalias</span></code></pre>......
dd3c0 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 .....</th>...........<td>.......
dd3e0 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ......The.<code><span.class="tok
dd400 2d 6b 77 22 3e 6e 6f 61 6c 69 61 73 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f -kw">noalias</span></code>.keywo
dd420 72 64 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 20 20 rd..............<ul>............
dd440 20 20 20 3c 6c 69 3e 54 4f 44 4f 20 61 64 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f ...<li>TODO.add.documentation.fo
dd460 72 20 6e 6f 61 6c 69 61 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e r.noalias</li>.............</ul>
dd480 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>..
dd4a0 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 20 73 63 6f 70 65 3d .......<tr>...........<th.scope=
dd4c0 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 "row">.............<pre><code><s
dd4e0 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6e 6f 69 6e 6c 69 6e 65 3c 2f 73 70 61 pan.class="tok-kw">noinline</spa
dd500 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 68 3e 0a n></code></pre>...........</th>.
dd520 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 63 6f 64 65 ..........<td>.............<code
dd540 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6e 6f 69 6e 6c 69 6e 65 3c 2f ><span.class="tok-kw">noinline</
dd560 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 69 73 61 6c 6c 6f 77 73 20 66 75 6e 63 74 69 6f 6e 20 span></code>.disallows.function.
dd580 74 6f 20 62 65 20 69 6e 6c 69 6e 65 64 20 69 6e 20 61 6c 6c 20 63 61 6c 6c 20 73 69 74 65 73 2e to.be.inlined.in.all.call.sites.
dd5a0 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>...............
dd5c0 3c 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 <li>See.also.<a.href="#Functions
dd5e0 22 3e 46 75 6e 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 20 ">Functions</a></li>............
dd600 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 3c .</ul>...........</td>.........<
dd620 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 68 20 /tr>.........<tr>...........<th.
dd640 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 scope="row">.............<pre><c
dd660 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6e 6f 73 75 73 70 65 ode><span.class="tok-kw">nosuspe
dd680 6e 64 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 nd</span></code></pre>..........
dd6a0 20 3c 2f 74 68 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 .</th>...........<td>...........
dd6c0 20 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ..The.<code><span.class="tok-kw"
dd6e0 3e 6e 6f 73 75 73 70 65 6e 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 >nosuspend</span></code>.keyword
dd700 20 63 61 6e 20 62 65 20 75 73 65 64 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 61 20 62 6c 6f 63 6b .can.be.used.in.front.of.a.block
dd720 2c 20 73 74 61 74 65 6d 65 6e 74 20 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 74 6f 20 6d 61 ,.statement.or.expression,.to.ma
dd740 72 6b 20 61 20 73 63 6f 70 65 20 77 68 65 72 65 20 6e 6f 20 73 75 73 70 65 6e 73 69 6f 6e 20 70 rk.a.scope.where.no.suspension.p
dd760 6f 69 6e 74 73 20 61 72 65 20 72 65 61 63 68 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 oints.are.reached..............I
dd780 6e 20 70 61 72 74 69 63 75 6c 61 72 2c 20 69 6e 73 69 64 65 20 61 20 3c 63 6f 64 65 3e 3c 73 70 n.particular,.inside.a.<code><sp
dd7a0 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6e 6f 73 75 73 70 65 6e 64 3c 2f 73 70 61 an.class="tok-kw">nosuspend</spa
dd7c0 6e 3e 3c 2f 63 6f 64 65 3e 20 73 63 6f 70 65 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c n></code>.scope:.............<ul
dd7e0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 55 73 69 6e 67 20 74 68 65 20 3c 63 >...............<li>Using.the.<c
dd800 6f 64 65 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 70 65 6e 64 ode><span.class="tok-kw">suspend
dd820 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 72 65 73 75 6c 74 73 20 69 </span></code>.keyword.results.i
dd840 6e 20 61 20 63 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 n.a.compile.error.</li>.........
dd860 20 20 20 20 20 20 3c 6c 69 3e 55 73 69 6e 67 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 ......<li>Using.<code><span.clas
dd880 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 65 3e 20 6f s="tok-kw">await</span></code>.o
dd8a0 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 72 61 6d 65 20 77 68 69 63 68 20 68 61 73 6e 27 74 20 n.a.function.frame.which.hasn't.
dd8c0 63 6f 6d 70 6c 65 74 65 64 20 79 65 74 20 72 65 73 75 6c 74 73 20 69 6e 20 73 61 66 65 74 79 2d completed.yet.results.in.safety-
dd8e0 63 68 65 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 checked.<a.href="#Undefined-Beha
dd900 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 2e 3c 2f 6c vior">Undefined.Behavior</a>.</l
dd920 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6c 6c 69 6e 67 20 61 6e 20 i>...............<li>Calling.an.
dd940 61 73 79 6e 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 72 65 73 75 6c 74 20 69 6e 20 73 61 66 async.function.may.result.in.saf
dd960 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 69 6e 65 64 2d ety-checked.<a.href="#Undefined-
dd980 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 2f 61 3e Behavior">Undefined.Behavior</a>
dd9a0 2c 20 62 65 63 61 75 73 65 20 69 74 27 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c 63 6f ,.because.it's.equivalent.to.<co
dd9c0 64 65 3e 61 77 61 69 74 20 61 73 79 6e 63 20 73 6f 6d 65 5f 61 73 79 6e 63 5f 66 6e 28 29 3c 2f de>await.async.some_async_fn()</
dd9e0 63 6f 64 65 3e 2c 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 3c 63 6f 64 65 3e 3c code>,.which.contains.an.<code><
dda00 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>
dda20 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 3c 2f 75 6c 3e 0a </code>.</li>.............</ul>.
dda40 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 64 65 20 69 6e 73 69 64 65 20 61 20 3c 63 6f 64 65 3e ............Code.inside.a.<code>
dda60 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6e 6f 73 75 73 70 65 6e 64 3c 2f <span.class="tok-kw">nosuspend</
dda80 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 73 63 6f 70 65 20 64 6f 65 73 20 6e 6f 74 20 63 61 75 73 span></code>.scope.does.not.caus
ddaa0 65 20 74 68 65 20 65 6e 63 6c 6f 73 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 62 65 63 6f e.the.enclosing.function.to.beco
ddac0 6d 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 me.an.<a.href="#Async-Functions"
ddae0 3e 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 20 20 20 20 20 >async.function</a>.............
ddb00 20 3c 75 6c 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 .<ul>...............<li>See.also
ddb20 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 41 73 79 6e .<a.href="#Async-Functions">Asyn
ddb40 63 20 46 75 6e 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 20 c.Functions</a></li>............
ddb60 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 3c .</ul>...........</td>.........<
ddb80 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 68 20 /tr>.........<tr>...........<th.
ddba0 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 scope="row">.............<pre><c
ddbc0 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 70 61 71 75 65 3c ode><span.class="tok-kw">opaque<
ddbe0 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>...........</
ddc00 74 68 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 th>...........<td>.............<
ddc20 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 70 61 71 75 65 code><span.class="tok-kw">opaque
ddc40 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 66 69 6e 65 73 20 61 6e 20 6f 70 61 71 75 65 </span></code>.defines.an.opaque
ddc60 20 74 79 70 65 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 .type..............<ul>.........
ddc80 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 22 23 6f 70 61 ......<li>See.also.<a.href="#opa
ddca0 71 75 65 22 3e 6f 70 61 71 75 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 que">opaque</a></li>............
ddcc0 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 3c .</ul>...........</td>.........<
ddce0 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 68 20 /tr>.........<tr>...........<th.
ddd00 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 scope="row">.............<pre><c
ddd20 6f 64 65 3e 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 ode><span.class="tok-kw">or</spa
ddd40 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 68 3e 0a n></code></pre>...........</th>.
ddd60 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 54 68 65 20 62 ..........<td>.............The.b
ddd80 6f 6f 6c 65 61 6e 20 6f 70 65 72 61 74 6f 72 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 oolean.operator.<code><span.clas
ddda0 73 3d 22 74 6f 6b 2d 6b 77 22 3e 6f 72 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 s="tok-kw">or</span></code>.....
dddc0 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>
ddde0 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 65 72 61 74 6f 72 73 22 3e 4f 70 See.also.<a.href="#Operators">Op
dde00 65 72 61 74 6f 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 erators</a></li>.............</u
dde20 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 3c 2f 74 72 3e l>...........</td>.........</tr>
dde40 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 68 20 73 63 6f 70 .........<tr>...........<th.scop
dde60 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e e="row">.............<pre><code>
dde80 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 73 70 61 <span.class="tok-kw">orelse</spa
ddea0 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 68 3e 0a n></code></pre>...........</th>.
ddec0 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 63 6f 64 65 ..........<td>.............<code
ddee0 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 73 70 ><span.class="tok-kw">orelse</sp
ddf00 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 65 76 61 6c 75 61 an></code>.can.be.used.to.evalua
ddf20 74 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 66 20 74 68 65 20 65 78 70 72 65 73 73 69 te.an.expression.if.the.expressi
ddf40 6f 6e 20 62 65 66 6f 72 65 20 69 74 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 75 6c 6c 2e 0a on.before.it.evaluates.to.null..
ddf60 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>...............<
ddf80 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 74 69 6f 6e 61 6c 73 22 li>See.also.<a.href="#Optionals"
ddfa0 3e 4f 70 74 69 6f 6e 61 6c 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 4f 70 65 72 61 74 >Optionals</a>,.<a.href="#Operat
ddfc0 6f 72 73 22 3e 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 ors">Operators</a></li>.........
ddfe0 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>.......
de000 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 3c ..</tr>.........<tr>...........<
de020 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 th.scope="row">.............<pre
de040 3e 3c 63 6f 64 65 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 ><code><span.class="tok-kw">pack
de060 65 64 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 ed</span></code></pre>..........
de080 20 3c 2f 74 68 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 .</th>...........<td>...........
de0a0 20 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 ..The.<code><span.class="tok-kw"
de0c0 3e 70 61 63 6b 65 64 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6b 65 79 77 6f 72 64 20 62 65 >packed</span></code>.keyword.be
de0e0 66 6f 72 65 20 61 20 73 74 72 75 63 74 20 64 65 66 69 6e 69 74 69 6f 6e 20 63 68 61 6e 67 65 73 fore.a.struct.definition.changes
de100 20 74 68 65 20 73 74 72 75 63 74 27 73 20 69 6e 2d 6d 65 6d 6f 72 79 20 6c 61 79 6f 75 74 0a 20 .the.struct's.in-memory.layout..
de120 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 74 68 65 20 67 75 61 72 61 6e 74 65 65 64 20 3c 63 6f ...........to.the.guaranteed.<co
de140 64 65 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 65 64 3c 2f de><span.class="tok-kw">packed</
de160 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 6c 61 79 6f 75 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 span></code>.layout.............
de180 20 3c 75 6c 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 .<ul>...............<li>See.also
de1a0 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 6b 65 64 .<a.href="#packed-struct">packed
de1c0 20 73 74 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 2f 75 .struct</a></li>.............</u
de1e0 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 3c 2f 74 72 3e l>...........</td>.........</tr>
de200 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 68 20 73 63 6f 70 .........<tr>...........<th.scop
de220 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e e="row">.............<pre><code>
de240 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><
de260 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 68 3e 0a 20 20 20 /code></pre>...........</th>....
de280 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 .......<td>.............The.<cod
de2a0 65 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 e><span.class="tok-kw">pub</span
de2c0 3e 3c 2f 63 6f 64 65 3e 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 61 20 74 6f 70 20 6c 65 76 65 6c ></code>.in.front.of.a.top.level
de2e0 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6d 61 6b 65 73 20 74 68 65 20 64 65 63 6c 61 72 61 74 69 .declaration.makes.the.declarati
de300 6f 6e 20 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 72 65 66 65 on.available.............to.refe
de320 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 20 74 68 61 6e rence.from.a.different.file.than
de340 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 0a 20 20 20 20 .the.one.it.is.declared.in......
de360 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 53 ........<ul>...............<li>S
de380 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e 69 6d 70 6f 72 74 ee.also.<a.href="#import">import
de3a0 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 20 20 </a></li>.............</ul>.....
de3c0 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 20 20 20 ......</td>.........</tr>.......
de3e0 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 ..<tr>...........<th.scope="row"
de400 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 >.............<pre><code><span.c
de420 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 2f 63 6f 64 lass="tok-kw">resume</span></cod
de440 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 e></pre>...........</th>........
de460 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 ...<td>.............<code><span.
de480 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 2f 63 6f class="tok-kw">resume</span></co
de4a0 64 65 3e 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 de>.will.continue.execution.of.a
de4c0 20 66 75 6e 63 74 69 6f 6e 20 66 72 61 6d 65 20 61 66 74 65 72 20 74 68 65 20 70 6f 69 6e 74 20 .function.frame.after.the.point.
de4e0 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 77 61 73 20 73 75 73 70 65 6e 64 65 64 2e 0a 20 20 20 20 the.function.was.suspended......
de500 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 20 20 20 ......</td>.........</tr>.......
de520 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 ..<tr>...........<th.scope="row"
de540 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 >.............<pre><code><span.c
de560 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
de580 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 e></pre>...........</th>........
de5a0 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 ...<td>.............<code><span.
de5c0 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
de5e0 64 65 3e 20 65 78 69 74 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 61 20 76 61 6c 75 de>.exits.a.function.with.a.valu
de600 65 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 20 20 20 e..............<ul>.............
de620 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 46 75 6e 63 74 69 6f ..<li>See.also.<a.href="#Functio
de640 6e 73 22 3e 46 75 6e 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 ns">Functions</a></li>..........
de660 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>........
de680 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 3c 74 .</tr>.........<tr>...........<t
de6a0 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e h.scope="row">.............<pre>
de6c0 3c 63 6f 64 65 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 <code><span.class="tok-kw">struc
de6e0 74 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 t</span></code></pre>...........
de700 3c 2f 74 68 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 </th>...........<td>............
de720 20 3c 63 6f 64 65 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 .<code><span.class="tok-kw">stru
de740 63 74 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 74 72 75 63 ct</span></code>.defines.a.struc
de760 74 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 20 20 20 t..............<ul>.............
de780 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 74 72 75 63 74 22 ..<li>See.also.<a.href="#struct"
de7a0 3e 73 74 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 2f 75 >struct</a></li>.............</u
de7c0 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 3c 2f 74 72 3e l>...........</td>.........</tr>
de7e0 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 68 20 73 63 6f 70 .........<tr>...........<th.scop
de800 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e e="row">.............<pre><code>
de820 3c 73 70 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 <span.class="tok-kw">suspend</sp
de840 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 68 3e an></code></pre>...........</th>
de860 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 63 6f 64 ...........<td>.............<cod
de880 65 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 70 65 6e 64 3c 2f e><span.class="tok-kw">suspend</
de8a0 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 77 69 6c 6c 20 63 61 75 73 65 20 63 6f 6e 74 72 6f 6c 20 span></code>.will.cause.control.
de8c0 66 6c 6f 77 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 74 68 65 20 63 61 6c 6c 20 73 69 74 65 20 flow.to.return.to.the.call.site.
de8e0 6f 72 20 72 65 73 75 6d 65 72 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 or.resumer.of.the.function......
de900 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b ........<code><span.class="tok-k
de920 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 6e 20 61 6c 73 w">suspend</span></code>.can.als
de940 6f 20 62 65 20 75 73 65 64 20 62 65 66 6f 72 65 20 61 20 62 6c 6f 63 6b 20 77 69 74 68 69 6e 20 o.be.used.before.a.block.within.
de960 61 20 66 75 6e 63 74 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 20 61 6c 6c 6f 77 a.function,.............to.allow
de980 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 73 73 20 74 6f 20 69 74 73 20 66 72 61 6d .the.function.access.to.its.fram
de9a0 65 20 62 65 66 6f 72 65 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 72 65 74 75 72 6e 73 20 74 6f e.before.control.flow.returns.to
de9c0 20 74 68 65 20 63 61 6c 6c 20 73 69 74 65 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a .the.call.site............</td>.
de9e0 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>......
dea00 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 .....<th.scope="row">...........
dea20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 ..<pre><code><span.class="tok-kw
dea40 22 3e 73 77 69 74 63 68 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 ">switch</span></code></pre>....
dea60 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 64 3e 0a 20 20 20 20 .......</th>...........<td>.....
dea80 20 20 20 20 20 20 20 20 41 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b ........A.<code><span.class="tok
deaa0 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 65 73 -kw">switch</span></code>.expres
deac0 73 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 74 65 73 74 20 76 61 6c 75 65 73 20 sion.can.be.used.to.test.values.
deae0 6f 66 20 61 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 of.a.common.type..............<c
deb00 6f 64 65 3e 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 ode><span.class="tok-kw">switch<
deb20 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 73 65 73 20 63 61 6e 20 63 61 70 74 75 72 65 20 /span></code>.cases.can.capture.
deb40 66 69 65 6c 64 20 76 61 6c 75 65 73 20 6f 66 20 61 20 3c 61 20 68 72 65 66 3d 22 23 54 61 67 67 field.values.of.a.<a.href="#Tagg
deb60 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 2e 0a 20 20 20 20 ed-union">Tagged.union</a>......
deb80 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 53 ........<ul>...............<li>S
deba0 65 65 20 61 6c 73 6f 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 ee.also.<a.href="#switch">switch
debc0 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 20 20 </a></li>.............</ul>.....
debe0 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 20 20 20 ......</td>.........</tr>.......
dec00 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 ..<tr>...........<th.scope="row"
dec20 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 >.............<pre><code><span.c
dec40 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 3c 2f 63 6f 64 65 3e lass="tok-kw">test</span></code>
dec60 3c 2f 70 72 65 3e 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 </pre>...........</th>..........
dec80 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 3c 73 70 61 .<td>.............The.<code><spa
deca0 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 3c 2f 63 6f n.class="tok-kw">test</span></co
decc0 64 65 3e 20 6b 65 79 77 6f 72 64 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 65 6e 6f 74 de>.keyword.can.be.used.to.denot
dece0 65 20 61 20 74 6f 70 2d 6c 65 76 65 6c 20 62 6c 6f 63 6b 20 6f 66 20 63 6f 64 65 0a 20 20 20 20 e.a.top-level.block.of.code.....
ded00 20 20 20 20 20 20 20 20 75 73 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 62 65 68 61 76 69 ........used.to.make.sure.behavi
ded20 6f 72 20 6d 65 65 74 73 20 65 78 70 65 63 74 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 or.meets.expectations...........
ded40 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 53 65 65 20 61 6c ...<ul>...............<li>See.al
ded60 73 6f 20 3c 61 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 so.<a.href="#Zig-Test">Zig.Test<
ded80 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 20 20 20 /a></li>.............</ul>......
deda0 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>........
dedc0 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e .<tr>...........<th.scope="row">
dede0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c .............<pre><code><span.cl
dee00 61 73 73 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 3c ass="tok-kw">threadlocal</span><
dee20 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 68 3e 0a 20 20 20 /code></pre>...........</th>....
dee40 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 63 6f 64 65 3e 3c 73 .......<td>.............<code><s
dee60 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 63 61 6c 3c 2f pan.class="tok-kw">threadlocal</
dee80 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 70 65 63 span></code>.can.be.used.to.spec
deea0 69 66 79 20 61 20 76 61 72 69 61 62 6c 65 20 61 73 20 74 68 72 65 61 64 2d 6c 6f 63 61 6c 2e 0a ify.a.variable.as.thread-local..
deec0 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>...............<
deee0 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 54 68 72 65 61 64 2d 4c 6f 63 li>See.also.<a.href="#Thread-Loc
def00 61 6c 2d 56 61 72 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 al-Variables">Thread.Local.Varia
def20 62 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 2f 75 6c 3e 0a bles</a></li>.............</ul>.
def40 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>...
def60 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 ......<tr>...........<th.scope="
def80 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 row">.............<pre><code><sp
defa0 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 3c 2f 63 6f an.class="tok-kw">try</span></co
defc0 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 de></pre>...........</th>.......
defe0 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e ....<td>.............<code><span
df000 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 3c 2f 63 6f 64 65 .class="tok-kw">try</span></code
df020 3e 20 65 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 >.evaluates.an.error.union.expre
df040 73 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 69 74 20 69 73 20 61 6e 20 65 ssion..............If.it.is.an.e
df060 72 72 6f 72 2c 20 69 74 20 72 65 74 75 72 6e 73 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e rror,.it.returns.from.the.curren
df080 74 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 65 72 72 6f 72 2e 0a t.function.with.the.same.error..
df0a0 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 65 78 70 72 65 ............Otherwise,.the.expre
df0c0 73 73 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 6e 20 74 68 65 20 75 6e 77 72 61 70 70 65 64 20 76 ssion.results.in.the.unwrapped.v
df0e0 61 6c 75 65 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 alue..............<ul>..........
df100 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 22 23 74 72 79 22 .....<li>See.also.<a.href="#try"
df120 3e 74 72 79 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 >try</a></li>.............</ul>.
df140 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>...
df160 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 ......<tr>...........<th.scope="
df180 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 row">.............<pre><code><sp
df1a0 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 3c 2f an.class="tok-kw">union</span></
df1c0 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 68 3e 0a 20 20 20 20 code></pre>...........</th>.....
df1e0 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 ......<td>.............<code><sp
df200 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 3c 2f an.class="tok-kw">union</span></
df220 63 6f 64 65 3e 20 64 65 66 69 6e 65 73 20 61 20 75 6e 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 code>.defines.a.union...........
df240 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 53 65 65 20 61 6c ...<ul>...............<li>See.al
df260 73 6f 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 3c 2f 6c so.<a.href="#union">union</a></l
df280 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>...........<
df2a0 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>.
df2c0 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 ..........<th.scope="row">......
df2e0 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 .......<pre><code><span.class="t
df300 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 65 3e ok-kw">unreachable</span></code>
df320 3c 2f 70 72 65 3e 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 </pre>...........</th>..........
df340 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c .<td>.............<code><span.cl
df360 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 3c ass="tok-kw">unreachable</span><
df380 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 61 73 73 65 72 74 20 74 68 61 /code>.can.be.used.to.assert.tha
df3a0 74 20 63 6f 6e 74 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 t.control.flow.will.never.happen
df3c0 20 75 70 6f 6e 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 6c 6f 63 61 74 69 6f 6e 2e 0a 20 20 20 .upon.a.particular.location.....
df3e0 20 20 20 20 20 20 20 20 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 62 75 69 6c 64 20 .........Depending.on.the.build.
df400 6d 6f 64 65 2c 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 mode,.<code><span.class="tok-kw"
df420 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 6d 61 79 20 65 >unreachable</span></code>.may.e
df440 6d 69 74 20 61 20 70 61 6e 69 63 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 mit.a.panic..............<ul>...
df460 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 45 6d 69 74 73 20 61 20 70 61 6e 69 63 20 69 6e ............<li>Emits.a.panic.in
df480 20 3c 63 6f 64 65 3e 44 65 62 75 67 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 52 65 .<code>Debug</code>.and.<code>Re
df4a0 6c 65 61 73 65 53 61 66 65 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 20 6f 72 20 77 68 65 6e 20 75 leaseSafe</code>.mode,.or.when.u
df4c0 73 69 6e 67 20 3c 6b 62 64 3e 7a 69 67 20 74 65 73 74 3c 2f 6b 62 64 3e 2e 3c 2f 6c 69 3e 0a 20 sing.<kbd>zig.test</kbd>.</li>..
df4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 44 6f 65 73 20 6e 6f 74 20 65 6d 69 74 20 61 .............<li>Does.not.emit.a
df500 20 70 61 6e 69 63 20 69 6e 20 3c 63 6f 64 65 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 63 6f 64 .panic.in.<code>ReleaseFast</cod
df520 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 52 65 6c 65 61 73 65 53 6d 61 6c 6c 3c 2f 63 6f 64 65 3e e>.and.<code>ReleaseSmall</code>
df540 20 6d 6f 64 65 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 .mode.</li>...............<li>Se
df560 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 75 6e e.also.<a.href="#unreachable">un
df580 72 65 61 63 68 61 62 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 reachable</a></li>.............<
df5a0 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 3c 2f 74 /ul>...........</td>.........</t
df5c0 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 68 20 73 63 r>.........<tr>...........<th.sc
df5e0 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 ope="row">.............<pre><cod
df600 65 3e 3c 73 70 61 6e 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 e><span.class="tok-kw">usingname
df620 73 70 61 63 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 space</span></code></pre>.......
df640 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 ....</th>...........<td>........
df660 20 20 20 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e .....<code><span.class="tok-kw">
df680 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 69 73 20 usingnamespace</span></code>.is.
df6a0 61 20 74 6f 70 2d 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 68 61 74 20 69 6d 70 a.top-level.declaration.that.imp
df6c0 6f 72 74 73 20 61 6c 6c 20 74 68 65 20 70 75 62 6c 69 63 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 orts.all.the.public.declarations
df6e0 20 6f 66 20 74 68 65 20 6f 70 65 72 61 6e 64 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 .of.the.operand,.............whi
df700 63 68 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 75 63 74 2c 20 75 6e 69 6f 6e 2c 20 6f 72 20 65 ch.must.be.a.struct,.union,.or.e
df720 6e 75 6d 2c 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 2e 0a 20 20 20 num,.into.the.current.scope.....
df740 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>
df760 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 See.also.<a.href="#usingnamespac
df780 65 22 3e 75 73 69 6e 67 6e 61 6d 65 73 70 61 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 e">usingnamespace</a></li>......
df7a0 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>....
df7c0 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>.........
df7e0 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c ..<th.scope="row">.............<
df800 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 pre><code><span.class="tok-kw">v
df820 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 20 20 20 ar</span></code></pre>..........
df840 20 3c 2f 74 68 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 .</th>...........<td>...........
df860 20 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b 2d 6b 77 22 3e 76 61 72 ..<code><span.class="tok-kw">var
df880 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 20 64 65 63 6c 61 72 65 73 20 61 20 76 61 72 69 61 62 </span></code>.declares.a.variab
df8a0 6c 65 20 74 68 61 74 20 6d 61 79 20 62 65 20 6d 6f 64 69 66 69 65 64 2e 0a 20 20 20 20 20 20 20 le.that.may.be.modified.........
df8c0 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 53 65 65 20 .....<ul>...............<li>See.
df8e0 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 56 61 72 69 61 62 6c 65 73 22 3e 56 61 72 69 61 62 also.<a.href="#Variables">Variab
df900 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 2f 75 6c 3e 0a 20 les</a></li>.............</ul>..
df920 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>....
df940 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 .....<tr>...........<th.scope="r
df960 6f 77 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 ow">.............<pre><code><spa
df980 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 61 6e 3e n.class="tok-kw">volatile</span>
df9a0 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 68 3e 0a 20 20 </code></pre>...........</th>...
df9c0 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 63 6f 64 65 3e 3c ........<td>.............<code><
df9e0 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
dfa00 61 6e 3e 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 65 6e 6f 74 65 an></code>.can.be.used.to.denote
dfa20 20 6c 6f 61 64 73 20 6f 72 20 73 74 6f 72 65 73 20 6f 66 20 61 20 70 6f 69 6e 74 65 72 20 68 61 .loads.or.stores.of.a.pointer.ha
dfa40 76 65 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 74 20 ve.side.effects..............It.
dfa60 63 61 6e 20 61 6c 73 6f 20 6d 6f 64 69 66 79 20 61 6e 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 can.also.modify.an.inline.assemb
dfa80 6c 79 20 65 78 70 72 65 73 73 69 6f 6e 20 74 6f 20 64 65 6e 6f 74 65 20 69 74 20 68 61 73 20 73 ly.expression.to.denote.it.has.s
dfaa0 69 64 65 20 65 66 66 65 63 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 ide.effects..............<ul>...
dfac0 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 68 72 65 66 ............<li>See.also.<a.href
dfae0 3d 22 23 76 6f 6c 61 74 69 6c 65 22 3e 76 6f 6c 61 74 69 6c 65 3c 2f 61 3e 2c 20 3c 61 20 68 72 ="#volatile">volatile</a>,.<a.hr
dfb00 65 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 3c 2f 6c 69 3e ef="#Assembly">Assembly</a></li>
dfb20 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 74 .............</ul>...........</t
dfb40 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>...
dfb60 20 20 20 20 20 20 20 20 3c 74 68 20 73 63 6f 70 65 3d 22 72 6f 77 22 3e 0a 20 20 20 20 20 20 20 ........<th.scope="row">........
dfb80 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 6f 6b .....<pre><code><span.class="tok
dfba0 2d 6b 77 22 3e 77 68 69 6c 65 3c 2f 73 70 61 6e 3e 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 -kw">while</span></code></pre>..
dfbc0 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 64 3e 0a 20 20 .........</th>...........<td>...
dfbe0 20 20 20 20 20 20 20 20 20 20 41 20 3c 63 6f 64 65 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 ..........A.<code><span.class="t
dfc00 6f 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 20 65 78 70 72 65 ok-kw">while</span></code>.expre
dfc20 73 73 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 70 65 61 74 65 64 6c 79 20 ssion.can.be.used.to.repeatedly.
dfc40 74 65 73 74 20 61 20 62 6f 6f 6c 65 61 6e 2c 20 6f 70 74 69 6f 6e 61 6c 2c 20 6f 72 20 65 72 72 test.a.boolean,.optional,.or.err
dfc60 6f 72 20 75 6e 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 or.union.expression,............
dfc80 20 61 6e 64 20 63 65 61 73 65 20 6c 6f 6f 70 69 6e 67 20 77 68 65 6e 20 74 68 61 74 20 65 78 70 .and.cease.looping.when.that.exp
dfca0 72 65 73 73 69 6f 6e 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 66 61 6c 73 65 2c 20 6e 75 6c 6c ression.evaluates.to.false,.null
dfcc0 2c 20 6f 72 20 61 6e 20 65 72 72 6f 72 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 20 20 20 ,.or.an.error,.respectively.....
dfce0 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>
dfd00 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c See.also.<a.href="#while">while<
dfd20 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 20 20 20 /a></li>.............</ul>......
dfd40 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>........
dfd60 20 3c 2f 74 62 6f 64 79 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 3c .</tbody>.......</table>.......<
dfd80 2f 64 69 76 3e 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 70 70 65 /div>...............<h2.id="Appe
dfda0 6e 64 69 78 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 41 70 70 ndix"><a.href="nav.xhtml#toc-App
dfdc0 65 6e 64 69 78 22 3e 41 70 70 65 6e 64 69 78 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 64 endix">Appendix</a>.<a.class="hd
dfde0 72 22 20 68 72 65 66 3d 22 23 41 70 70 65 6e 64 69 78 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 32 3e 0a r".href="#Appendix">..</a></h2>.
dfe00 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 6f 6e 74 61 69 6e 65 72 73 22 3e 3c 61 20 68 72 .......<h3.id="Containers"><a.hr
dfe20 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 43 6f 6e 74 61 69 6e 65 72 73 22 3e 43 6f ef="nav.xhtml#toc-Containers">Co
dfe40 6e 74 61 69 6e 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 ntainers</a>.<a.class="hdr".href
dfe60 3d 22 23 43 6f 6e 74 61 69 6e 65 72 73 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 ="#Containers">..</a></h3>......
dfe80 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 20 3c 65 6d 3e 63 6f 6e 74 61 69 6e 65 72 3c 2f 65 6d 3e ..<p>.......A.<em>container</em>
dfea0 20 69 6e 20 5a 69 67 20 69 73 20 61 6e 79 20 73 79 6e 74 61 63 74 69 63 61 6c 20 63 6f 6e 73 74 .in.Zig.is.any.syntactical.const
dfec0 72 75 63 74 20 74 68 61 74 20 61 63 74 73 20 61 73 20 61 20 6e 61 6d 65 73 70 61 63 65 20 74 6f ruct.that.acts.as.a.namespace.to
dfee0 20 68 6f 6c 64 20 3c 61 20 68 72 65 66 3d 22 23 43 6f 6e 74 61 69 6e 65 72 2d 4c 65 76 65 6c 2d .hold.<a.href="#Container-Level-
dff00 56 61 72 69 61 62 6c 65 73 22 3e 76 61 72 69 61 62 6c 65 3c 2f 61 3e 20 61 6e 64 20 3c 61 20 68 Variables">variable</a>.and.<a.h
dff20 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e 66 75 6e 63 74 69 6f 6e 3c 2f 61 3e 20 64 65 ref="#Functions">function</a>.de
dff40 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 43 6f 6e 74 61 69 6e 65 72 73 20 61 72 65 clarations........Containers.are
dff60 20 61 6c 73 6f 20 74 79 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 77 68 69 63 68 20 63 61 6e .also.type.definitions.which.can
dff80 20 62 65 20 69 6e 73 74 61 6e 74 69 61 74 65 64 2e 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d .be.instantiated........<a.href=
dffa0 22 23 73 74 72 75 63 74 22 3e 53 74 72 75 63 74 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 "#struct">Structs</a>,.<a.href="
dffc0 23 65 6e 75 6d 22 3e 65 6e 75 6d 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f #enum">enums</a>,.<a.href="#unio
dffe0 6e 22 3e 75 6e 69 6f 6e 73 3c 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 23 6f 70 61 71 75 65 22 n">unions</a>,.<a.href="#opaque"
e0000 3e 6f 70 61 71 75 65 73 3c 2f 61 3e 2c 20 61 6e 64 20 65 76 65 6e 20 5a 69 67 20 73 6f 75 72 63 >opaques</a>,.and.even.Zig.sourc
e0020 65 20 66 69 6c 65 73 20 74 68 65 6d 73 65 6c 76 65 73 20 61 72 65 20 63 6f 6e 74 61 69 6e 65 72 e.files.themselves.are.container
e0040 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 41 6c s........</p>.......<p>.......Al
e0060 74 68 6f 75 67 68 20 63 6f 6e 74 61 69 6e 65 72 73 20 28 65 78 63 65 70 74 20 5a 69 67 20 73 6f though.containers.(except.Zig.so
e0080 75 72 63 65 20 66 69 6c 65 73 29 20 75 73 65 20 63 75 72 6c 79 20 62 72 61 63 65 73 20 74 6f 20 urce.files).use.curly.braces.to.
e00a0 73 75 72 72 6f 75 6e 64 20 74 68 65 69 72 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 74 68 65 79 20 surround.their.definition,.they.
e00c0 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 6f 6e 66 75 73 65 64 20 77 69 74 68 20 3c 61 20 68 should.not.be.confused.with.<a.h
e00e0 72 65 66 3d 22 23 42 6c 6f 63 6b 73 22 3e 62 6c 6f 63 6b 73 3c 2f 61 3e 20 6f 72 20 66 75 6e 63 ref="#Blocks">blocks</a>.or.func
e0100 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 43 6f 6e 74 61 69 6e 65 72 73 20 64 6f 20 6e 6f 74 20 63 tions........Containers.do.not.c
e0120 6f 6e 74 61 69 6e 20 73 74 61 74 65 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 ontain.statements........</p>...
e0140 20 20 20 20 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 47 72 61 6d 6d 61 72 22 3e 3c 61 20 ............<h3.id="Grammar"><a.
e0160 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 23 74 6f 63 2d 47 72 61 6d 6d 61 72 22 3e 47 72 61 href="nav.xhtml#toc-Grammar">Gra
e0180 6d 6d 61 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 47 mmar</a>.<a.class="hdr".href="#G
e01a0 72 61 6d 6d 61 72 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 66 69 67 75 rammar">..</a></h3>........<figu
e01c0 72 65 3e 3c 66 69 67 63 61 70 74 69 6f 6e 20 63 6c 61 73 73 3d 22 70 65 67 2d 63 61 70 22 3e 3c re><figcaption.class="peg-cap"><
e01e0 63 69 74 65 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 67 72 61 6d 6d 61 72 2e 70 65 67 3c 2f 63 cite.class="file">grammar.peg</c
e0200 69 74 65 3e 3c 2f 66 69 67 63 61 70 74 69 6f 6e 3e 3c 70 72 65 3e 3c 63 6f 64 65 3e 52 6f 6f 74 ite></figcaption><pre><code>Root
e0220 20 26 6c 74 3b 2d 20 73 6b 69 70 20 63 6f 6e 74 61 69 6e 65 72 5f 64 6f 63 5f 63 6f 6d 6d 65 6e .&lt;-.skip.container_doc_commen
e0240 74 3f 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 2a 20 54 t?.ContainerMembers.eof..#.***.T
e0260 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 20 26 6c op.level.***.ContainerMembers.&l
e0280 74 3b 2d 20 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 61 72 61 74 69 6f 6e 2a 20 28 43 6f 6e 74 61 t;-.ContainerDeclaration*.(Conta
e02a0 69 6e 65 72 46 69 65 6c 64 20 43 4f 4d 4d 41 29 2a 20 28 43 6f 6e 74 61 69 6e 65 72 46 69 65 6c inerField.COMMA)*.(ContainerFiel
e02c0 64 20 2f 20 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 61 72 61 74 69 6f 6e 2a 29 0a 0a 43 6f 6e 74 d./.ContainerDeclaration*)..Cont
e02e0 61 69 6e 65 72 44 65 63 6c 61 72 61 74 69 6f 6e 20 26 6c 74 3b 2d 20 54 65 73 74 44 65 63 6c 20 ainerDeclaration.&lt;-.TestDecl.
e0300 2f 20 43 6f 6d 70 74 69 6d 65 44 65 63 6c 20 2f 20 64 6f 63 5f 63 6f 6d 6d 65 6e 74 3f 20 4b 45 /.ComptimeDecl./.doc_comment?.KE
e0320 59 57 4f 52 44 5f 70 75 62 3f 20 44 65 63 6c 0a 0a 54 65 73 74 44 65 63 6c 20 26 6c 74 3b 2d 20 YWORD_pub?.Decl..TestDecl.&lt;-.
e0340 4b 45 59 57 4f 52 44 5f 74 65 73 74 20 28 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 53 49 4e 47 4c KEYWORD_test.(STRINGLITERALSINGL
e0360 45 20 2f 20 49 44 45 4e 54 49 46 49 45 52 29 3f 20 42 6c 6f 63 6b 0a 0a 43 6f 6d 70 74 69 6d 65 E./.IDENTIFIER)?.Block..Comptime
e0380 44 65 63 6c 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 6f 63 Decl.&lt;-.KEYWORD_comptime.Bloc
e03a0 6b 0a 0a 44 65 63 6c 0a 20 20 20 20 26 6c 74 3b 2d 20 28 4b 45 59 57 4f 52 44 5f 65 78 70 6f 72 k..Decl.....&lt;-.(KEYWORD_expor
e03c0 74 20 2f 20 4b 45 59 57 4f 52 44 5f 65 78 74 65 72 6e 20 53 54 52 49 4e 47 4c 49 54 45 52 41 4c t./.KEYWORD_extern.STRINGLITERAL
e03e0 53 49 4e 47 4c 45 3f 20 2f 20 4b 45 59 57 4f 52 44 5f 69 6e 6c 69 6e 65 20 2f 20 4b 45 59 57 4f SINGLE?./.KEYWORD_inline./.KEYWO
e0400 52 44 5f 6e 6f 69 6e 6c 69 6e 65 29 3f 20 46 6e 50 72 6f 74 6f 20 28 53 45 4d 49 43 4f 4c 4f 4e RD_noinline)?.FnProto.(SEMICOLON
e0420 20 2f 20 42 6c 6f 63 6b 29 0a 20 20 20 20 20 2f 20 28 4b 45 59 57 4f 52 44 5f 65 78 70 6f 72 74 ./.Block)....../.(KEYWORD_export
e0440 20 2f 20 4b 45 59 57 4f 52 44 5f 65 78 74 65 72 6e 20 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 53 ./.KEYWORD_extern.STRINGLITERALS
e0460 49 4e 47 4c 45 3f 29 3f 20 4b 45 59 57 4f 52 44 5f 74 68 72 65 61 64 6c 6f 63 61 6c 3f 20 47 6c INGLE?)?.KEYWORD_threadlocal?.Gl
e0480 6f 62 61 6c 56 61 72 44 65 63 6c 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 75 73 69 6e 67 obalVarDecl....../.KEYWORD_using
e04a0 6e 61 6d 65 73 70 61 63 65 20 45 78 70 72 20 53 45 4d 49 43 4f 4c 4f 4e 0a 0a 46 6e 50 72 6f 74 namespace.Expr.SEMICOLON..FnProt
e04c0 6f 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 66 6e 20 49 44 45 4e 54 49 46 49 45 52 3f 20 4c o.&lt;-.KEYWORD_fn.IDENTIFIER?.L
e04e0 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 79 74 65 41 PAREN.ParamDeclList.RPAREN.ByteA
e0500 6c 69 67 6e 3f 20 41 64 64 72 53 70 61 63 65 3f 20 4c 69 6e 6b 53 65 63 74 69 6f 6e 3f 20 43 61 lign?.AddrSpace?.LinkSection?.Ca
e0520 6c 6c 43 6f 6e 76 3f 20 45 58 43 4c 41 4d 41 54 49 4f 4e 4d 41 52 4b 3f 20 54 79 70 65 45 78 70 llConv?.EXCLAMATIONMARK?.TypeExp
e0540 72 0a 0a 56 61 72 44 65 63 6c 50 72 6f 74 6f 20 26 6c 74 3b 2d 20 28 4b 45 59 57 4f 52 44 5f 63 r..VarDeclProto.&lt;-.(KEYWORD_c
e0560 6f 6e 73 74 20 2f 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 onst./.KEYWORD_var).IDENTIFIER.(
e0580 43 4f 4c 4f 4e 20 54 79 70 65 45 78 70 72 29 3f 20 42 79 74 65 41 6c 69 67 6e 3f 20 41 64 64 72 COLON.TypeExpr)?.ByteAlign?.Addr
e05a0 53 70 61 63 65 3f 20 4c 69 6e 6b 53 65 63 74 69 6f 6e 3f 0a 0a 47 6c 6f 62 61 6c 56 61 72 44 65 Space?.LinkSection?..GlobalVarDe
e05c0 63 6c 20 26 6c 74 3b 2d 20 56 61 72 44 65 63 6c 50 72 6f 74 6f 20 28 45 51 55 41 4c 20 45 78 70 cl.&lt;-.VarDeclProto.(EQUAL.Exp
e05e0 72 29 3f 20 53 45 4d 49 43 4f 4c 4f 4e 0a 0a 43 6f 6e 74 61 69 6e 65 72 46 69 65 6c 64 20 26 6c r)?.SEMICOLON..ContainerField.&l
e0600 74 3b 2d 20 64 6f 63 5f 63 6f 6d 6d 65 6e 74 3f 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d t;-.doc_comment?.KEYWORD_comptim
e0620 65 3f 20 21 4b 45 59 57 4f 52 44 5f 66 6e 20 28 49 44 45 4e 54 49 46 49 45 52 20 43 4f 4c 4f 4e e?.!KEYWORD_fn.(IDENTIFIER.COLON
e0640 29 3f 20 54 79 70 65 45 78 70 72 20 42 79 74 65 41 6c 69 67 6e 3f 20 28 45 51 55 41 4c 20 45 78 )?.TypeExpr.ByteAlign?.(EQUAL.Ex
e0660 70 72 29 3f 0a 0a 23 20 2a 2a 2a 20 42 6c 6f 63 6b 20 4c 65 76 65 6c 20 2a 2a 2a 0a 53 74 61 74 pr)?..#.***.Block.Level.***.Stat
e0680 65 6d 65 6e 74 0a 20 20 20 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 ement.....&lt;-.KEYWORD_comptime
e06a0 20 43 6f 6d 70 74 69 6d 65 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 .ComptimeStatement....../.KEYWOR
e06c0 44 5f 6e 6f 73 75 73 70 65 6e 64 20 42 6c 6f 63 6b 45 78 70 72 53 74 61 74 65 6d 65 6e 74 0a 20 D_nosuspend.BlockExprStatement..
e06e0 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 73 75 73 70 65 6e 64 20 42 6c 6f 63 6b 45 78 70 72 53 ..../.KEYWORD_suspend.BlockExprS
e0700 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 64 65 66 65 72 20 42 6c tatement....../.KEYWORD_defer.Bl
e0720 6f 63 6b 45 78 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 ockExprStatement....../.KEYWORD_
e0740 65 72 72 64 65 66 65 72 20 50 61 79 6c 6f 61 64 3f 20 42 6c 6f 63 6b 45 78 70 72 53 74 61 74 65 errdefer.Payload?.BlockExprState
e0760 6d 65 6e 74 0a 20 20 20 20 20 2f 20 49 66 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2f 20 4c ment....../.IfStatement....../.L
e0780 61 62 65 6c 65 64 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 2f 20 53 77 69 74 63 68 45 78 70 abeledStatement....../.SwitchExp
e07a0 72 0a 20 20 20 20 20 2f 20 56 61 72 44 65 63 6c 45 78 70 72 53 74 61 74 65 6d 65 6e 74 0a 0a 43 r....../.VarDeclExprStatement..C
e07c0 6f 6d 70 74 69 6d 65 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 omptimeStatement.....&lt;-.Block
e07e0 45 78 70 72 0a 20 20 20 20 20 2f 20 56 61 72 44 65 63 6c 45 78 70 72 53 74 61 74 65 6d 65 6e 74 Expr....../.VarDeclExprStatement
e0800 0a 0a 49 66 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 26 6c 74 3b 2d 20 49 66 50 72 65 66 69 78 ..IfStatement.....&lt;-.IfPrefix
e0820 20 42 6c 6f 63 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 .BlockExpr.(.KEYWORD_else.Payloa
e0840 64 3f 20 53 74 61 74 65 6d 65 6e 74 20 29 3f 0a 20 20 20 20 20 2f 20 49 66 50 72 65 66 69 78 20 d?.Statement.)?....../.IfPrefix.
e0860 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 57 4f 52 44 AssignExpr.(.SEMICOLON./.KEYWORD
e0880 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 0a 0a 4c 61 62 65 _else.Payload?.Statement.)..Labe
e08a0 6c 65 64 53 74 61 74 65 6d 65 6e 74 20 26 6c 74 3b 2d 20 42 6c 6f 63 6b 4c 61 62 65 6c 3f 20 28 ledStatement.&lt;-.BlockLabel?.(
e08c0 42 6c 6f 63 6b 20 2f 20 4c 6f 6f 70 53 74 61 74 65 6d 65 6e 74 29 0a 0a 4c 6f 6f 70 53 74 61 74 Block./.LoopStatement)..LoopStat
e08e0 65 6d 65 6e 74 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 ement.&lt;-.KEYWORD_inline?.(For
e0900 53 74 61 74 65 6d 65 6e 74 20 2f 20 57 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 29 0a 0a 46 6f 72 Statement./.WhileStatement)..For
e0920 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 26 6c 74 3b 2d 20 46 6f 72 50 72 65 66 69 78 20 42 6c Statement.....&lt;-.ForPrefix.Bl
e0940 6f 63 6b 45 78 70 72 20 28 20 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 53 74 61 74 65 6d 65 6e 74 ockExpr.(.KEYWORD_else.Statement
e0960 20 29 3f 0a 20 20 20 20 20 2f 20 46 6f 72 50 72 65 66 69 78 20 41 73 73 69 67 6e 45 78 70 72 20 .)?....../.ForPrefix.AssignExpr.
e0980 28 20 53 45 4d 49 43 4f 4c 4f 4e 20 2f 20 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 53 74 61 74 65 (.SEMICOLON./.KEYWORD_else.State
e09a0 6d 65 6e 74 20 29 0a 0a 57 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 26 6c 74 3b 2d ment.)..WhileStatement.....&lt;-
e09c0 20 57 68 69 6c 65 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 .WhilePrefix.BlockExpr.(.KEYWORD
e09e0 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 20 20 20 _else.Payload?.Statement.)?.....
e0a00 20 2f 20 57 68 69 6c 65 50 72 65 66 69 78 20 41 73 73 69 67 6e 45 78 70 72 20 28 20 53 45 4d 49 ./.WhilePrefix.AssignExpr.(.SEMI
e0a20 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
e0a40 61 74 65 6d 65 6e 74 20 29 0a 0a 42 6c 6f 63 6b 45 78 70 72 53 74 61 74 65 6d 65 6e 74 0a 20 20 atement.)..BlockExprStatement...
e0a60 20 20 26 6c 74 3b 2d 20 42 6c 6f 63 6b 45 78 70 72 0a 20 20 20 20 20 2f 20 41 73 73 69 67 6e 45 ..&lt;-.BlockExpr....../.AssignE
e0a80 78 70 72 20 53 45 4d 49 43 4f 4c 4f 4e 0a 0a 42 6c 6f 63 6b 45 78 70 72 20 26 6c 74 3b 2d 20 42 xpr.SEMICOLON..BlockExpr.&lt;-.B
e0aa0 6c 6f 63 6b 4c 61 62 65 6c 3f 20 42 6c 6f 63 6b 0a 0a 23 20 41 6e 20 65 78 70 72 65 73 73 69 6f lockLabel?.Block..#.An.expressio
e0ac0 6e 2c 20 61 73 73 69 67 6e 6d 65 6e 74 2c 20 6f 72 20 61 6e 79 20 64 65 73 74 72 75 63 74 75 72 n,.assignment,.or.any.destructur
e0ae0 65 2c 20 61 73 20 61 20 73 74 61 74 65 6d 65 6e 74 2e 0a 56 61 72 44 65 63 6c 45 78 70 72 53 74 e,.as.a.statement..VarDeclExprSt
e0b00 61 74 65 6d 65 6e 74 0a 20 20 20 20 26 6c 74 3b 2d 20 56 61 72 44 65 63 6c 50 72 6f 74 6f 20 28 atement.....&lt;-.VarDeclProto.(
e0b20 43 4f 4d 4d 41 20 28 56 61 72 44 65 63 6c 50 72 6f 74 6f 20 2f 20 45 78 70 72 29 29 2a 20 45 51 COMMA.(VarDeclProto./.Expr))*.EQ
e0b40 55 41 4c 20 45 78 70 72 20 53 45 4d 49 43 4f 4c 4f 4e 0a 20 20 20 20 20 2f 20 45 78 70 72 20 28 UAL.Expr.SEMICOLON....../.Expr.(
e0b60 41 73 73 69 67 6e 4f 70 20 45 78 70 72 20 2f 20 28 43 4f 4d 4d 41 20 28 56 61 72 44 65 63 6c 50 AssignOp.Expr./.(COMMA.(VarDeclP
e0b80 72 6f 74 6f 20 2f 20 45 78 70 72 29 29 2b 20 45 51 55 41 4c 20 45 78 70 72 29 3f 20 53 45 4d 49 roto./.Expr))+.EQUAL.Expr)?.SEMI
e0ba0 43 4f 4c 4f 4e 0a 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 COLON..#.***.Expression.Level.**
e0bc0 2a 0a 0a 23 20 41 6e 20 61 73 73 69 67 6e 6d 65 6e 74 20 6f 72 20 61 20 64 65 73 74 72 75 63 74 *..#.An.assignment.or.a.destruct
e0be0 75 72 65 20 77 68 6f 73 65 20 4c 48 53 20 61 72 65 20 61 6c 6c 20 6c 76 61 6c 75 65 20 65 78 70 ure.whose.LHS.are.all.lvalue.exp
e0c00 72 65 73 73 69 6f 6e 73 2e 0a 41 73 73 69 67 6e 45 78 70 72 20 26 6c 74 3b 2d 20 45 78 70 72 20 ressions..AssignExpr.&lt;-.Expr.
e0c20 28 41 73 73 69 67 6e 4f 70 20 45 78 70 72 20 2f 20 28 43 4f 4d 4d 41 20 45 78 70 72 29 2b 20 45 (AssignOp.Expr./.(COMMA.Expr)+.E
e0c40 51 55 41 4c 20 45 78 70 72 29 3f 0a 0a 53 69 6e 67 6c 65 41 73 73 69 67 6e 45 78 70 72 20 26 6c QUAL.Expr)?..SingleAssignExpr.&l
e0c60 74 3b 2d 20 45 78 70 72 20 28 41 73 73 69 67 6e 4f 70 20 45 78 70 72 29 3f 0a 0a 45 78 70 72 20 t;-.Expr.(AssignOp.Expr)?..Expr.
e0c80 26 6c 74 3b 2d 20 42 6f 6f 6c 4f 72 45 78 70 72 0a 0a 42 6f 6f 6c 4f 72 45 78 70 72 20 26 6c 74 &lt;-.BoolOrExpr..BoolOrExpr.&lt
e0ca0 3b 2d 20 42 6f 6f 6c 41 6e 64 45 78 70 72 20 28 4b 45 59 57 4f 52 44 5f 6f 72 20 42 6f 6f 6c 41 ;-.BoolAndExpr.(KEYWORD_or.BoolA
e0cc0 6e 64 45 78 70 72 29 2a 0a 0a 42 6f 6f 6c 41 6e 64 45 78 70 72 20 26 6c 74 3b 2d 20 43 6f 6d 70 ndExpr)*..BoolAndExpr.&lt;-.Comp
e0ce0 61 72 65 45 78 70 72 20 28 4b 45 59 57 4f 52 44 5f 61 6e 64 20 43 6f 6d 70 61 72 65 45 78 70 72 areExpr.(KEYWORD_and.CompareExpr
e0d00 29 2a 0a 0a 43 6f 6d 70 61 72 65 45 78 70 72 20 26 6c 74 3b 2d 20 42 69 74 77 69 73 65 45 78 70 )*..CompareExpr.&lt;-.BitwiseExp
e0d20 72 20 28 43 6f 6d 70 61 72 65 4f 70 20 42 69 74 77 69 73 65 45 78 70 72 29 3f 0a 0a 42 69 74 77 r.(CompareOp.BitwiseExpr)?..Bitw
e0d40 69 73 65 45 78 70 72 20 26 6c 74 3b 2d 20 42 69 74 53 68 69 66 74 45 78 70 72 20 28 42 69 74 77 iseExpr.&lt;-.BitShiftExpr.(Bitw
e0d60 69 73 65 4f 70 20 42 69 74 53 68 69 66 74 45 78 70 72 29 2a 0a 0a 42 69 74 53 68 69 66 74 45 78 iseOp.BitShiftExpr)*..BitShiftEx
e0d80 70 72 20 26 6c 74 3b 2d 20 41 64 64 69 74 69 6f 6e 45 78 70 72 20 28 42 69 74 53 68 69 66 74 4f pr.&lt;-.AdditionExpr.(BitShiftO
e0da0 70 20 41 64 64 69 74 69 6f 6e 45 78 70 72 29 2a 0a 0a 41 64 64 69 74 69 6f 6e 45 78 70 72 20 26 p.AdditionExpr)*..AdditionExpr.&
e0dc0 6c 74 3b 2d 20 4d 75 6c 74 69 70 6c 79 45 78 70 72 20 28 41 64 64 69 74 69 6f 6e 4f 70 20 4d 75 lt;-.MultiplyExpr.(AdditionOp.Mu
e0de0 6c 74 69 70 6c 79 45 78 70 72 29 2a 0a 0a 4d 75 6c 74 69 70 6c 79 45 78 70 72 20 26 6c 74 3b 2d ltiplyExpr)*..MultiplyExpr.&lt;-
e0e00 20 50 72 65 66 69 78 45 78 70 72 20 28 4d 75 6c 74 69 70 6c 79 4f 70 20 50 72 65 66 69 78 45 78 .PrefixExpr.(MultiplyOp.PrefixEx
e0e20 70 72 29 2a 0a 0a 50 72 65 66 69 78 45 78 70 72 20 26 6c 74 3b 2d 20 50 72 65 66 69 78 4f 70 2a pr)*..PrefixExpr.&lt;-.PrefixOp*
e0e40 20 50 72 69 6d 61 72 79 45 78 70 72 0a 0a 50 72 69 6d 61 72 79 45 78 70 72 0a 20 20 20 20 26 6c .PrimaryExpr..PrimaryExpr.....&l
e0e60 74 3b 2d 20 41 73 6d 45 78 70 72 0a 20 20 20 20 20 2f 20 49 66 45 78 70 72 0a 20 20 20 20 20 2f t;-.AsmExpr....../.IfExpr....../
e0e80 20 4b 45 59 57 4f 52 44 5f 62 72 65 61 6b 20 42 72 65 61 6b 4c 61 62 65 6c 3f 20 45 78 70 72 3f .KEYWORD_break.BreakLabel?.Expr?
e0ea0 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 45 78 70 72 0a 20 20 ....../.KEYWORD_comptime.Expr...
e0ec0 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 6e 6f 73 75 73 70 65 6e 64 20 45 78 70 72 0a 20 20 20 20 .../.KEYWORD_nosuspend.Expr.....
e0ee0 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6e 74 69 6e 75 65 20 42 72 65 61 6b 4c 61 62 65 6c 3f 0a ./.KEYWORD_continue.BreakLabel?.
e0f00 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 72 65 73 75 6d 65 20 45 78 70 72 0a 20 20 20 20 20 ...../.KEYWORD_resume.Expr......
e0f20 2f 20 4b 45 59 57 4f 52 44 5f 72 65 74 75 72 6e 20 45 78 70 72 3f 0a 20 20 20 20 20 2f 20 42 6c /.KEYWORD_return.Expr?....../.Bl
e0f40 6f 63 6b 4c 61 62 65 6c 3f 20 4c 6f 6f 70 45 78 70 72 0a 20 20 20 20 20 2f 20 42 6c 6f 63 6b 0a ockLabel?.LoopExpr....../.Block.
e0f60 20 20 20 20 20 2f 20 43 75 72 6c 79 53 75 66 66 69 78 45 78 70 72 0a 0a 49 66 45 78 70 72 20 26 ...../.CurlySuffixExpr..IfExpr.&
e0f80 6c 74 3b 2d 20 49 66 50 72 65 66 69 78 20 45 78 70 72 20 28 4b 45 59 57 4f 52 44 5f 65 6c 73 65 lt;-.IfPrefix.Expr.(KEYWORD_else
e0fa0 20 50 61 79 6c 6f 61 64 3f 20 45 78 70 72 29 3f 0a 0a 42 6c 6f 63 6b 20 26 6c 74 3b 2d 20 4c 42 .Payload?.Expr)?..Block.&lt;-.LB
e0fc0 52 41 43 45 20 53 74 61 74 65 6d 65 6e 74 2a 20 52 42 52 41 43 45 0a 0a 4c 6f 6f 70 45 78 70 72 RACE.Statement*.RBRACE..LoopExpr
e0fe0 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 45 78 70 72 20 .&lt;-.KEYWORD_inline?.(ForExpr.
e1000 2f 20 57 68 69 6c 65 45 78 70 72 29 0a 0a 46 6f 72 45 78 70 72 20 26 6c 74 3b 2d 20 46 6f 72 50 /.WhileExpr)..ForExpr.&lt;-.ForP
e1020 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 45 78 70 72 29 3f 0a refix.Expr.(KEYWORD_else.Expr)?.
e1040 0a 57 68 69 6c 65 45 78 70 72 20 26 6c 74 3b 2d 20 57 68 69 6c 65 50 72 65 66 69 78 20 45 78 70 .WhileExpr.&lt;-.WhilePrefix.Exp
e1060 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 45 78 70 72 29 3f 0a r.(KEYWORD_else.Payload?.Expr)?.
e1080 0a 43 75 72 6c 79 53 75 66 66 69 78 45 78 70 72 20 26 6c 74 3b 2d 20 54 79 70 65 45 78 70 72 20 .CurlySuffixExpr.&lt;-.TypeExpr.
e10a0 49 6e 69 74 4c 69 73 74 3f 0a 0a 49 6e 69 74 4c 69 73 74 0a 20 20 20 20 26 6c 74 3b 2d 20 4c 42 InitList?..InitList.....&lt;-.LB
e10c0 52 41 43 45 20 46 69 65 6c 64 49 6e 69 74 20 28 43 4f 4d 4d 41 20 46 69 65 6c 64 49 6e 69 74 29 RACE.FieldInit.(COMMA.FieldInit)
e10e0 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 52 41 43 45 20 45 78 *.COMMA?.RBRACE....../.LBRACE.Ex
e1100 70 72 20 28 43 4f 4d 4d 41 20 45 78 70 72 29 2a 20 43 4f 4d 4d 41 3f 20 52 42 52 41 43 45 0a 20 pr.(COMMA.Expr)*.COMMA?.RBRACE..
e1120 20 20 20 20 2f 20 4c 42 52 41 43 45 20 52 42 52 41 43 45 0a 0a 54 79 70 65 45 78 70 72 20 26 6c ..../.LBRACE.RBRACE..TypeExpr.&l
e1140 74 3b 2d 20 50 72 65 66 69 78 54 79 70 65 4f 70 2a 20 45 72 72 6f 72 55 6e 69 6f 6e 45 78 70 72 t;-.PrefixTypeOp*.ErrorUnionExpr
e1160 0a 0a 45 72 72 6f 72 55 6e 69 6f 6e 45 78 70 72 20 26 6c 74 3b 2d 20 53 75 66 66 69 78 45 78 70 ..ErrorUnionExpr.&lt;-.SuffixExp
e1180 72 20 28 45 58 43 4c 41 4d 41 54 49 4f 4e 4d 41 52 4b 20 54 79 70 65 45 78 70 72 29 3f 0a 0a 53 r.(EXCLAMATIONMARK.TypeExpr)?..S
e11a0 75 66 66 69 78 45 78 70 72 0a 20 20 20 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 61 73 79 6e uffixExpr.....&lt;-.KEYWORD_asyn
e11c0 63 20 50 72 69 6d 61 72 79 54 79 70 65 45 78 70 72 20 53 75 66 66 69 78 4f 70 2a 20 46 6e 43 61 c.PrimaryTypeExpr.SuffixOp*.FnCa
e11e0 6c 6c 41 72 67 75 6d 65 6e 74 73 0a 20 20 20 20 20 2f 20 50 72 69 6d 61 72 79 54 79 70 65 45 78 llArguments....../.PrimaryTypeEx
e1200 70 72 20 28 53 75 66 66 69 78 4f 70 20 2f 20 46 6e 43 61 6c 6c 41 72 67 75 6d 65 6e 74 73 29 2a pr.(SuffixOp./.FnCallArguments)*
e1220 0a 0a 50 72 69 6d 61 72 79 54 79 70 65 45 78 70 72 0a 20 20 20 20 26 6c 74 3b 2d 20 42 55 49 4c ..PrimaryTypeExpr.....&lt;-.BUIL
e1240 54 49 4e 49 44 45 4e 54 49 46 49 45 52 20 46 6e 43 61 6c 6c 41 72 67 75 6d 65 6e 74 73 0a 20 20 TINIDENTIFIER.FnCallArguments...
e1260 20 20 20 2f 20 43 48 41 52 5f 4c 49 54 45 52 41 4c 0a 20 20 20 20 20 2f 20 43 6f 6e 74 61 69 6e .../.CHAR_LITERAL....../.Contain
e1280 65 72 44 65 63 6c 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 erDecl....../.DOT.IDENTIFIER....
e12a0 20 20 2f 20 44 4f 54 20 49 6e 69 74 4c 69 73 74 0a 20 20 20 20 20 2f 20 45 72 72 6f 72 53 65 74 ../.DOT.InitList....../.ErrorSet
e12c0 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 72 6f 74 6f Decl....../.FLOAT....../.FnProto
e12e0 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 61 62 65 6c ....../.GroupedExpr....../.Label
e1300 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 0a 20 20 20 edTypeExpr....../.IDENTIFIER....
e1320 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 52 0a 20 20 ../.IfTypeExpr....../.INTEGER...
e1340 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 70 72 0a 20 .../.KEYWORD_comptime.TypeExpr..
e1360 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 54 49 46 49 ..../.KEYWORD_error.DOT.IDENTIFI
e1380 45 52 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 61 6e 79 66 72 61 6d 65 0a 20 20 20 20 20 ER....../.KEYWORD_anyframe......
e13a0 2f 20 4b 45 59 57 4f 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 /.KEYWORD_unreachable....../.STR
e13c0 49 4e 47 4c 49 54 45 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 INGLITERAL....../.SwitchExpr..Co
e13e0 6e 74 61 69 6e 65 72 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 ntainerDecl.&lt;-.(KEYWORD_exter
e1400 6e 20 2f 20 4b 45 59 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 n./.KEYWORD_packed)?.ContainerDe
e1420 63 6c 41 75 74 6f 0a 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 clAuto..ErrorSetDecl.&lt;-.KEYWO
e1440 52 44 5f 65 72 72 6f 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 RD_error.LBRACE.IdentifierList.R
e1460 42 52 41 43 45 0a 0a 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 BRACE..GroupedExpr.&lt;-.LPAREN.
e1480 45 78 70 72 20 52 50 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 Expr.RPAREN..IfTypeExpr.&lt;-.If
e14a0 50 72 65 66 69 78 20 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 Prefix.TypeExpr.(KEYWORD_else.Pa
e14c0 79 6c 6f 61 64 3f 20 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 yload?.TypeExpr)?..LabeledTypeEx
e14e0 70 72 0a 20 20 20 20 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 pr.....&lt;-.BlockLabel.Block...
e1500 20 20 20 2f 20 42 6c 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 .../.BlockLabel?.LoopTypeExpr..L
e1520 6f 6f 70 54 79 70 65 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 oopTypeExpr.&lt;-.KEYWORD_inline
e1540 3f 20 28 46 6f 72 54 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 ?.(ForTypeExpr./.WhileTypeExpr).
e1560 0a 46 6f 72 54 79 70 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 .ForTypeExpr.&lt;-.ForPrefix.Typ
e1580 65 45 78 70 72 20 28 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 eExpr.(KEYWORD_else.TypeExpr)?..
e15a0 57 68 69 6c 65 54 79 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 WhileTypeExpr.&lt;-.WhilePrefix.
e15c0 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?.
e15e0 54 79 70 65 45 78 70 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 TypeExpr)?..SwitchExpr.&lt;-.KEY
e1600 57 4f 52 44 5f 73 77 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 WORD_switch.LPAREN.Expr.RPAREN.L
e1620 42 52 41 43 45 20 53 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 BRACE.SwitchProngList.RBRACE..#.
e1640 2a 2a 2a 20 41 73 73 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 ***.Assembly.***.AsmExpr.&lt;-.K
e1660 45 59 57 4f 52 44 5f 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 EYWORD_asm.KEYWORD_volatile?.LPA
e1680 52 45 4e 20 45 78 70 72 20 41 73 6d 4f 75 74 70 75 74 3f 20 52 50 41 52 45 4e 0a 0a 41 73 6d 4f REN.Expr.AsmOutput?.RPAREN..AsmO
e16a0 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 74 20 utput.&lt;-.COLON.AsmOutputList.
e16c0 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 20 4c AsmInput?..AsmOutputItem.&lt;-.L
e16e0 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 52 49 BRACKET.IDENTIFIER.RBRACKET.STRI
e1700 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 54 79 NGLITERAL.LPAREN.(MINUSRARROW.Ty
e1720 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 73 6d peExpr./.IDENTIFIER).RPAREN..Asm
e1740 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 20 41 Input.&lt;-.COLON.AsmInputList.A
e1760 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 2d 20 smClobbers?..AsmInputItem.&lt;-.
e1780 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 52 LBRACKET.IDENTIFIER.RBRACKET.STR
e17a0 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 0a 41 INGLITERAL.LPAREN.Expr.RPAREN..A
e17c0 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 69 73 smClobbers.&lt;-.COLON.StringLis
e17e0 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 65 61 t..#.***.Helper.grammar.***.Brea
e1800 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 0a 42 kLabel.&lt;-.COLON.IDENTIFIER..B
e1820 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 4f 4e lockLabel.&lt;-.IDENTIFIER.COLON
e1840 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 45 52 ..FieldInit.&lt;-.DOT.IDENTIFIER
e1860 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 20 26 .EQUAL.Expr..WhileContinueExpr.&
e1880 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 50 41 lt;-.COLON.LPAREN.AssignExpr.RPA
e18a0 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 5f 6c REN..LinkSection.&lt;-.KEYWORD_l
e18c0 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 0a 41 inksection.LPAREN.Expr.RPAREN..A
e18e0 64 64 72 53 70 61 63 65 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 61 64 64 72 73 70 61 63 65 ddrSpace.&lt;-.KEYWORD_addrspace
e1900 20 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 41 52 45 4e 0a 0a 23 20 46 6e 20 73 70 65 63 69 66 .LPAREN.Expr.RPAREN..#.Fn.specif
e1920 69 63 0a 43 61 6c 6c 43 6f 6e 76 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 63 61 6c 6c 63 6f ic.CallConv.&lt;-.KEYWORD_callco
e1940 6e 76 20 4c 50 41 52 45 4e 20 45 78 70 72 20 52 50 41 52 45 4e 0a 0a 50 61 72 61 6d 44 65 63 6c nv.LPAREN.Expr.RPAREN..ParamDecl
e1960 0a 20 20 20 20 26 6c 74 3b 2d 20 64 6f 63 5f 63 6f 6d 6d 65 6e 74 3f 20 28 4b 45 59 57 4f 52 44 .....&lt;-.doc_comment?.(KEYWORD
e1980 5f 6e 6f 61 6c 69 61 73 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 29 3f 20 28 49 _noalias./.KEYWORD_comptime)?.(I
e19a0 44 45 4e 54 49 46 49 45 52 20 43 4f 4c 4f 4e 29 3f 20 50 61 72 61 6d 54 79 70 65 0a 20 20 20 20 DENTIFIER.COLON)?.ParamType.....
e19c0 20 2f 20 44 4f 54 33 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 ./.DOT3..ParamType.....&lt;-.KEY
e19e0 57 4f 52 44 5f 61 6e 79 74 79 70 65 0a 20 20 20 20 20 2f 20 54 79 70 65 45 78 70 72 0a 0a 23 20 WORD_anytype....../.TypeExpr..#.
e1a00 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 72 65 66 69 78 20 26 Control.flow.prefixes.IfPrefix.&
e1a20 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 70 72 20 52 50 41 52 lt;-.KEYWORD_if.LPAREN.Expr.RPAR
e1a40 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 69 78 20 26 6c 74 3b EN.PtrPayload?..WhilePrefix.&lt;
e1a60 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 70 72 20 52 50 41 52 -.KEYWORD_while.LPAREN.Expr.RPAR
e1a80 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 6e 75 65 45 78 70 72 EN.PtrPayload?.WhileContinueExpr
e1aa0 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 44 5f 66 6f 72 20 4c ?..ForPrefix.&lt;-.KEYWORD_for.L
e1ac0 50 41 52 45 4e 20 46 6f 72 41 72 67 75 6d 65 6e 74 73 4c 69 73 74 20 52 50 41 52 45 4e 20 50 74 PAREN.ForArgumentsList.RPAREN.Pt
e1ae0 72 4c 69 73 74 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 rListPayload..#.Payloads.Payload
e1b00 20 26 6c 74 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 .&lt;-.PIPE.IDENTIFIER.PIPE..Ptr
e1b20 50 61 79 6c 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 Payload.&lt;-.PIPE.ASTERISK?.IDE
e1b40 4e 54 49 46 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 NTIFIER.PIPE..PtrIndexPayload.&l
e1b60 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 49 45 52 20 28 43 t;-.PIPE.ASTERISK?.IDENTIFIER.(C
e1b80 4f 4d 4d 41 20 49 44 45 4e 54 49 46 49 45 52 29 3f 20 50 49 50 45 0a 0a 50 74 72 4c 69 73 74 50 OMMA.IDENTIFIER)?.PIPE..PtrListP
e1ba0 61 79 6c 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 ayload.&lt;-.PIPE.ASTERISK?.IDEN
e1bc0 54 49 46 49 45 52 20 28 43 4f 4d 4d 41 20 41 53 54 45 52 49 53 4b 3f 20 49 44 45 4e 54 49 46 49 TIFIER.(COMMA.ASTERISK?.IDENTIFI
e1be0 45 52 29 2a 20 43 4f 4d 4d 41 3f 20 50 49 50 45 0a 0a 23 20 53 77 69 74 63 68 20 73 70 65 63 69 ER)*.COMMA?.PIPE..#.Switch.speci
e1c00 66 69 63 0a 53 77 69 74 63 68 50 72 6f 6e 67 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 69 6e fic.SwitchProng.&lt;-.KEYWORD_in
e1c20 6c 69 6e 65 3f 20 53 77 69 74 63 68 43 61 73 65 20 45 51 55 41 4c 52 41 52 52 4f 57 20 50 74 72 line?.SwitchCase.EQUALRARROW.Ptr
e1c40 49 6e 64 65 78 50 61 79 6c 6f 61 64 3f 20 53 69 6e 67 6c 65 41 73 73 69 67 6e 45 78 70 72 0a 0a IndexPayload?.SingleAssignExpr..
e1c60 53 77 69 74 63 68 43 61 73 65 0a 20 20 20 20 26 6c 74 3b 2d 20 53 77 69 74 63 68 49 74 65 6d 20 SwitchCase.....&lt;-.SwitchItem.
e1c80 28 43 4f 4d 4d 41 20 53 77 69 74 63 68 49 74 65 6d 29 2a 20 43 4f 4d 4d 41 3f 0a 20 20 20 20 20 (COMMA.SwitchItem)*.COMMA?......
e1ca0 2f 20 4b 45 59 57 4f 52 44 5f 65 6c 73 65 0a 0a 53 77 69 74 63 68 49 74 65 6d 20 26 6c 74 3b 2d /.KEYWORD_else..SwitchItem.&lt;-
e1cc0 20 45 78 70 72 20 28 44 4f 54 33 20 45 78 70 72 29 3f 0a 0a 23 20 46 6f 72 20 73 70 65 63 69 66 .Expr.(DOT3.Expr)?..#.For.specif
e1ce0 69 63 0a 46 6f 72 41 72 67 75 6d 65 6e 74 73 4c 69 73 74 20 26 6c 74 3b 2d 20 46 6f 72 49 74 65 ic.ForArgumentsList.&lt;-.ForIte
e1d00 6d 20 28 43 4f 4d 4d 41 20 46 6f 72 49 74 65 6d 29 2a 20 43 4f 4d 4d 41 3f 0a 0a 46 6f 72 49 74 m.(COMMA.ForItem)*.COMMA?..ForIt
e1d20 65 6d 20 26 6c 74 3b 2d 20 45 78 70 72 20 28 44 4f 54 32 20 45 78 70 72 3f 29 3f 0a 0a 23 20 4f em.&lt;-.Expr.(DOT2.Expr?)?..#.O
e1d40 70 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 perators.AssignOp.....&lt;-.ASTE
e1d60 52 49 53 4b 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 41 53 54 45 52 49 53 4b 50 49 50 45 45 51 55 RISKEQUAL....../.ASTERISKPIPEEQU
e1d80 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 2f 20 50 45 52 43 AL....../.SLASHEQUAL....../.PERC
e1da0 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 20 20 20 20 20 2f ENTEQUAL....../.PLUSEQUAL....../
e1dc0 20 50 4c 55 53 50 49 50 45 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 4d 49 4e 55 53 45 51 55 41 4c .PLUSPIPEEQUAL....../.MINUSEQUAL
e1de0 0a 20 20 20 20 20 2f 20 4d 49 4e 55 53 50 49 50 45 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 4c 41 ....../.MINUSPIPEEQUAL....../.LA
e1e00 52 52 4f 57 32 45 51 55 41 4c 0a 20 20 20 20 20 2f 20 4c 41 52 52 4f 57 32 50 49 50 45 45 51 55 RROW2EQUAL....../.LARROW2PIPEEQU
e1e20 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 20 41 4d AL....../.RARROW2EQUAL....../.AM
e1e40 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 4c 0a 20 PERSANDEQUAL....../.CARETEQUAL..
e1e60 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 53 4b 50 ..../.PIPEEQUAL....../.ASTERISKP
e1e80 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 54 45 51 ERCENTEQUAL....../.PLUSPERCENTEQ
e1ea0 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 20 20 20 UAL....../.MINUSPERCENTEQUAL....
e1ec0 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 2d 20 45 ../.EQUAL..CompareOp.....&lt;-.E
e1ee0 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 41 52 4b QUALEQUAL....../.EXCLAMATIONMARK
e1f00 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 52 52 4f EQUAL....../.LARROW....../.RARRO
e1f20 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 41 52 52 W....../.LARROWEQUAL....../.RARR
e1f40 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 41 4d 50 OWEQUAL..BitwiseOp.....&lt;-.AMP
e1f60 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 50 45 0a ERSAND....../.CARET....../.PIPE.
e1f80 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 4b 45 59 ...../.KEYWORD_orelse....../.KEY
e1fa0 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 4f 70 0a WORD_catch.Payload?..BitShiftOp.
e1fc0 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 4f 57 32 ....&lt;-.LARROW2....../.RARROW2
e1fe0 0a 20 20 20 20 20 2f 20 4c 41 52 52 4f 57 32 50 49 50 45 0a 0a 41 64 64 69 74 69 6f 6e 4f 70 0a ....../.LARROW2PIPE..AdditionOp.
e2000 20 20 20 20 26 6c 74 3b 2d 20 50 4c 55 53 0a 20 20 20 20 20 2f 20 4d 49 4e 55 53 0a 20 20 20 20 ....&lt;-.PLUS....../.MINUS.....
e2020 20 2f 20 50 4c 55 53 32 0a 20 20 20 20 20 2f 20 50 4c 55 53 50 45 52 43 45 4e 54 0a 20 20 20 20 ./.PLUS2....../.PLUSPERCENT.....
e2040 20 2f 20 4d 49 4e 55 53 50 45 52 43 45 4e 54 0a 20 20 20 20 20 2f 20 50 4c 55 53 50 49 50 45 0a ./.MINUSPERCENT....../.PLUSPIPE.
e2060 20 20 20 20 20 2f 20 4d 49 4e 55 53 50 49 50 45 0a 0a 4d 75 6c 74 69 70 6c 79 4f 70 0a 20 20 20 ...../.MINUSPIPE..MultiplyOp....
e2080 20 26 6c 74 3b 2d 20 50 49 50 45 32 0a 20 20 20 20 20 2f 20 41 53 54 45 52 49 53 4b 0a 20 20 20 .&lt;-.PIPE2....../.ASTERISK....
e20a0 20 20 2f 20 53 4c 41 53 48 0a 20 20 20 20 20 2f 20 50 45 52 43 45 4e 54 0a 20 20 20 20 20 2f 20 ../.SLASH....../.PERCENT....../.
e20c0 41 53 54 45 52 49 53 4b 32 0a 20 20 20 20 20 2f 20 41 53 54 45 52 49 53 4b 50 45 52 43 45 4e 54 ASTERISK2....../.ASTERISKPERCENT
e20e0 0a 20 20 20 20 20 2f 20 41 53 54 45 52 49 53 4b 50 49 50 45 0a 0a 50 72 65 66 69 78 4f 70 0a 20 ....../.ASTERISKPIPE..PrefixOp..
e2100 20 20 20 26 6c 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 ...&lt;-.EXCLAMATIONMARK....../.
e2120 4d 49 4e 55 53 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 MINUS....../.TILDE....../.MINUSP
e2140 45 52 43 45 4e 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 ERCENT....../.AMPERSAND....../.K
e2160 45 59 57 4f 52 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 EYWORD_try....../.KEYWORD_await.
e2180 0a 50 72 65 66 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 .PrefixTypeOp.....&lt;-.QUESTION
e21a0 4d 41 52 4b 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 61 6e 79 66 72 61 6d 65 20 4d 49 4e MARK....../.KEYWORD_anyframe.MIN
e21c0 55 53 52 41 52 52 4f 57 0a 20 20 20 20 20 2f 20 53 6c 69 63 65 54 79 70 65 53 74 61 72 74 20 28 USRARROW....../.SliceTypeStart.(
e21e0 42 79 74 65 41 6c 69 67 6e 20 2f 20 41 64 64 72 53 70 61 63 65 20 2f 20 4b 45 59 57 4f 52 44 5f ByteAlign./.AddrSpace./.KEYWORD_
e2200 63 6f 6e 73 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 const./.KEYWORD_volatile./.KEYWO
e2220 52 44 5f 61 6c 6c 6f 77 7a 65 72 6f 29 2a 0a 20 20 20 20 20 2f 20 50 74 72 54 79 70 65 53 74 61 RD_allowzero)*....../.PtrTypeSta
e2240 72 74 20 28 41 64 64 72 53 70 61 63 65 20 2f 20 4b 45 59 57 4f 52 44 5f 61 6c 69 67 6e 20 4c 50 rt.(AddrSpace./.KEYWORD_align.LP
e2260 41 52 45 4e 20 45 78 70 72 20 28 43 4f 4c 4f 4e 20 45 78 70 72 20 43 4f 4c 4f 4e 20 45 78 70 72 AREN.Expr.(COLON.Expr.COLON.Expr
e2280 29 3f 20 52 50 41 52 45 4e 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6e 73 74 20 2f 20 4b 45 59 57 )?.RPAREN./.KEYWORD_const./.KEYW
e22a0 4f 52 44 5f 76 6f 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 ORD_volatile./.KEYWORD_allowzero
e22c0 29 2a 0a 20 20 20 20 20 2f 20 41 72 72 61 79 54 79 70 65 53 74 61 72 74 0a 0a 53 75 66 66 69 78 )*....../.ArrayTypeStart..Suffix
e22e0 4f 70 0a 20 20 20 20 26 6c 74 3b 2d 20 4c 42 52 41 43 4b 45 54 20 45 78 70 72 20 28 44 4f 54 32 Op.....&lt;-.LBRACKET.Expr.(DOT2
e2300 20 28 45 78 70 72 3f 20 28 43 4f 4c 4f 4e 20 45 78 70 72 29 3f 29 3f 29 3f 20 52 42 52 41 43 4b .(Expr?.(COLON.Expr)?)?)?.RBRACK
e2320 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 20 ET....../.DOT.IDENTIFIER....../.
e2340 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 41 DOTASTERISK....../.DOTQUESTIONMA
e2360 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 4e RK..FnCallArguments.&lt;-.LPAREN
e2380 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 63 .ExprList.RPAREN..#.Ptr.specific
e23a0 0a 53 6c 69 63 65 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 28 .SliceTypeStart.&lt;-.LBRACKET.(
e23c0 43 4f 4c 4f 4e 20 45 78 70 72 29 3f 20 52 42 52 41 43 4b 45 54 0a 0a 50 74 72 54 79 70 65 53 74 COLON.Expr)?.RBRACKET..PtrTypeSt
e23e0 61 72 74 0a 20 20 20 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 art.....&lt;-.ASTERISK....../.AS
e2400 54 45 52 49 53 4b 32 0a 20 20 20 20 20 2f 20 4c 42 52 41 43 4b 45 54 20 41 53 54 45 52 49 53 4b TERISK2....../.LBRACKET.ASTERISK
e2420 20 28 4c 45 54 54 45 52 43 20 2f 20 43 4f 4c 4f 4e 20 45 78 70 72 29 3f 20 52 42 52 41 43 4b 45 .(LETTERC./.COLON.Expr)?.RBRACKE
e2440 54 0a 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 T..ArrayTypeStart.&lt;-.LBRACKET
e2460 20 45 78 70 72 20 28 43 4f 4c 4f 4e 20 45 78 70 72 29 3f 20 52 42 52 41 43 4b 45 54 0a 0a 23 20 .Expr.(COLON.Expr)?.RBRACKET..#.
e2480 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 65 72 ContainerDecl.specific.Container
e24a0 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 70 65 DeclAuto.&lt;-.ContainerDeclType
e24c0 20 4c 42 52 41 43 45 20 63 6f 6e 74 61 69 6e 65 72 5f 64 6f 63 5f 63 6f 6d 6d 65 6e 74 3f 20 43 .LBRACE.container_doc_comment?.C
e24e0 6f 6e 74 61 69 6e 65 72 4d 65 6d 62 65 72 73 20 52 42 52 41 43 45 0a 0a 43 6f 6e 74 61 69 6e 65 ontainerMembers.RBRACE..Containe
e2500 72 44 65 63 6c 54 79 70 65 0a 20 20 20 20 26 6c 74 3b 2d 20 4b 45 59 57 4f 52 44 5f 73 74 72 75 rDeclType.....&lt;-.KEYWORD_stru
e2520 63 74 20 28 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 ct.(LPAREN.Expr.RPAREN)?....../.
e2540 4b 45 59 57 4f 52 44 5f 6f 70 61 71 75 65 0a 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 65 6e KEYWORD_opaque....../.KEYWORD_en
e2560 75 6d 20 28 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 um.(LPAREN.Expr.RPAREN)?....../.
e2580 4b 45 59 57 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 KEYWORD_union.(LPAREN.(KEYWORD_e
e25a0 6e 75 6d 20 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 num.(LPAREN.Expr.RPAREN)?./.Expr
e25c0 29 20 52 50 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 ).RPAREN)?..#.Alignment.ByteAlig
e25e0 6e 20 26 6c 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 n.&lt;-.KEYWORD_align.LPAREN.Exp
e2600 72 20 52 50 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 r.RPAREN..#.Lists.IdentifierList
e2620 20 26 6c 74 3b 2d 20 28 64 6f 63 5f 63 6f 6d 6d 65 6e 74 3f 20 49 44 45 4e 54 49 46 49 45 52 20 .&lt;-.(doc_comment?.IDENTIFIER.
e2640 43 4f 4d 4d 41 29 2a 20 28 64 6f 63 5f 63 6f 6d 6d 65 6e 74 3f 20 49 44 45 4e 54 49 46 49 45 52 COMMA)*.(doc_comment?.IDENTIFIER
e2660 29 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 )?..SwitchProngList.&lt;-.(Switc
e2680 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
e26a0 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.
e26c0 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
e26e0 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)*
e2700 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;-
e2720 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
e2740 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
e2760 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
e2780 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?..#
e27a0 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 62 69 6e .***.Tokens.***.eof.&lt;-.!..bin
e27c0 20 26 6c 74 3b 2d 20 5b 30 31 5d 0a 62 69 6e 5f 20 26 6c 74 3b 2d 20 27 5f 27 3f 20 62 69 6e 0a .&lt;-.[01].bin_.&lt;-.'_'?.bin.
e27e0 6f 63 74 20 26 6c 74 3b 2d 20 5b 30 2d 37 5d 0a 6f 63 74 5f 20 26 6c 74 3b 2d 20 27 5f 27 3f 20 oct.&lt;-.[0-7].oct_.&lt;-.'_'?.
e2800 6f 63 74 0a 68 65 78 20 26 6c 74 3b 2d 20 5b 30 2d 39 61 2d 66 41 2d 46 5d 0a 68 65 78 5f 20 26 oct.hex.&lt;-.[0-9a-fA-F].hex_.&
e2820 6c 74 3b 2d 20 27 5f 27 3f 20 68 65 78 0a 64 65 63 20 26 6c 74 3b 2d 20 5b 30 2d 39 5d 0a 64 65 lt;-.'_'?.hex.dec.&lt;-.[0-9].de
e2840 63 5f 20 26 6c 74 3b 2d 20 27 5f 27 3f 20 64 65 63 0a 0a 62 69 6e 5f 69 6e 74 20 26 6c 74 3b 2d c_.&lt;-.'_'?.dec..bin_int.&lt;-
e2860 20 62 69 6e 20 62 69 6e 5f 2a 0a 6f 63 74 5f 69 6e 74 20 26 6c 74 3b 2d 20 6f 63 74 20 6f 63 74 .bin.bin_*.oct_int.&lt;-.oct.oct
e2880 5f 2a 0a 64 65 63 5f 69 6e 74 20 26 6c 74 3b 2d 20 64 65 63 20 64 65 63 5f 2a 0a 68 65 78 5f 69 _*.dec_int.&lt;-.dec.dec_*.hex_i
e28a0 6e 74 20 26 6c 74 3b 2d 20 68 65 78 20 68 65 78 5f 2a 0a 0a 6f 78 38 30 5f 6f 78 42 46 20 26 6c nt.&lt;-.hex.hex_*..ox80_oxBF.&l
e28c0 74 3b 2d 20 5b 5c 32 30 30 2d 5c 32 37 37 5d 0a 6f 78 46 34 20 26 6c 74 3b 2d 20 27 5c 33 36 34 t;-.[\200-\277].oxF4.&lt;-.'\364
e28e0 27 0a 6f 78 38 30 5f 6f 78 38 46 20 26 6c 74 3b 2d 20 5b 5c 32 30 30 2d 5c 32 31 37 5d 0a 6f 78 '.ox80_ox8F.&lt;-.[\200-\217].ox
e2900 46 31 5f 6f 78 46 33 20 26 6c 74 3b 2d 20 5b 5c 33 36 31 2d 5c 33 36 33 5d 0a 6f 78 46 30 20 26 F1_oxF3.&lt;-.[\361-\363].oxF0.&
e2920 6c 74 3b 2d 20 27 5c 33 36 30 27 0a 6f 78 39 30 5f 30 78 42 46 20 26 6c 74 3b 2d 20 5b 5c 32 32 lt;-.'\360'.ox90_0xBF.&lt;-.[\22
e2940 30 2d 5c 32 37 37 5d 0a 6f 78 45 45 5f 6f 78 45 46 20 26 6c 74 3b 2d 20 5b 5c 33 35 36 2d 5c 33 0-\277].oxEE_oxEF.&lt;-.[\356-\3
e2960 35 37 5d 0a 6f 78 45 44 20 26 6c 74 3b 2d 20 27 5c 33 35 35 27 0a 6f 78 38 30 5f 6f 78 39 46 20 57].oxED.&lt;-.'\355'.ox80_ox9F.
e2980 26 6c 74 3b 2d 20 5b 5c 32 30 30 2d 5c 32 33 37 5d 0a 6f 78 45 31 5f 6f 78 45 43 20 26 6c 74 3b &lt;-.[\200-\237].oxE1_oxEC.&lt;
e29a0 2d 20 5b 5c 33 34 31 2d 5c 33 35 34 5d 0a 6f 78 45 30 20 26 6c 74 3b 2d 20 27 5c 33 34 30 27 0a -.[\341-\354].oxE0.&lt;-.'\340'.
e29c0 6f 78 41 30 5f 6f 78 42 46 20 26 6c 74 3b 2d 20 5b 5c 32 34 30 2d 5c 32 37 37 5d 0a 6f 78 43 32 oxA0_oxBF.&lt;-.[\240-\277].oxC2
e29e0 5f 6f 78 44 46 20 26 6c 74 3b 2d 20 5b 5c 33 30 32 2d 5c 33 33 37 5d 0a 0a 23 20 46 72 6f 6d 20 _oxDF.&lt;-.[\302-\337]..#.From.
e2a00 68 74 74 70 73 3a 2f 2f 6c 65 6d 69 72 65 2e 6d 65 2f 62 6c 6f 67 2f 32 30 31 38 2f 30 35 2f 30 https://lemire.me/blog/2018/05/0
e2a20 39 2f 68 6f 77 2d 71 75 69 63 6b 6c 79 2d 63 61 6e 2d 79 6f 75 2d 63 68 65 63 6b 2d 74 68 61 74 9/how-quickly-can-you-check-that
e2a40 2d 61 2d 73 74 72 69 6e 67 2d 69 73 2d 76 61 6c 69 64 2d 75 6e 69 63 6f 64 65 2d 75 74 66 2d 38 -a-string-is-valid-unicode-utf-8
e2a60 2f 0a 23 20 46 69 72 73 74 20 42 79 74 65 20 20 20 20 20 20 53 65 63 6f 6e 64 20 42 79 74 65 20 /.#.First.Byte......Second.Byte.
e2a80 20 20 20 20 54 68 69 72 64 20 42 79 74 65 20 20 20 20 20 20 46 6f 75 72 74 68 20 42 79 74 65 0a ....Third.Byte......Fourth.Byte.
e2aa0 23 20 5b 30 78 30 30 2c 30 78 37 46 5d 0a 23 20 5b 30 78 43 32 2c 30 78 44 46 5d 20 20 20 20 20 #.[0x00,0x7F].#.[0xC2,0xDF].....
e2ac0 5b 30 78 38 30 2c 30 78 42 46 5d 0a 23 20 20 20 20 30 78 45 30 20 20 20 20 20 20 20 20 20 5b 30 [0x80,0xBF].#....0xE0.........[0
e2ae0 78 41 30 2c 30 78 42 46 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 0a 23 20 5b 30 78 45 xA0,0xBF].....[0x80,0xBF].#.[0xE
e2b00 31 2c 30 78 45 43 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 20 20 20 20 20 5b 30 78 38 1,0xEC].....[0x80,0xBF].....[0x8
e2b20 30 2c 30 78 42 46 5d 0a 23 20 20 20 20 30 78 45 44 20 20 20 20 20 20 20 20 20 5b 30 78 38 30 2c 0,0xBF].#....0xED.........[0x80,
e2b40 30 78 39 46 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 0a 23 20 5b 30 78 45 45 2c 30 78 0x9F].....[0x80,0xBF].#.[0xEE,0x
e2b60 45 46 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 EF].....[0x80,0xBF].....[0x80,0x
e2b80 42 46 5d 0a 23 20 20 20 20 30 78 46 30 20 20 20 20 20 20 20 20 20 5b 30 78 39 30 2c 30 78 42 46 BF].#....0xF0.........[0x90,0xBF
e2ba0 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 ].....[0x80,0xBF].....[0x80,0xBF
e2bc0 5d 0a 23 20 5b 30 78 46 31 2c 30 78 46 33 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 20 ].#.[0xF1,0xF3].....[0x80,0xBF].
e2be0 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 0a ....[0x80,0xBF].....[0x80,0xBF].
e2c00 23 20 20 20 20 30 78 46 34 20 20 20 20 20 20 20 20 20 5b 30 78 38 30 2c 30 78 38 46 5d 20 20 20 #....0xF4.........[0x80,0x8F]...
e2c20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 20 20 20 20 20 5b 30 78 38 30 2c 30 78 42 46 5d 0a 0a 6d ..[0x80,0xBF].....[0x80,0xBF]..m
e2c40 62 5f 75 74 66 38 5f 6c 69 74 65 72 61 6c 20 26 6c 74 3b 2d 0a 20 20 20 20 20 20 20 6f 78 46 34 b_utf8_literal.&lt;-........oxF4
e2c60 20 20 20 20 20 20 6f 78 38 30 5f 6f 78 38 46 20 6f 78 38 30 5f 6f 78 42 46 20 6f 78 38 30 5f 6f ......ox80_ox8F.ox80_oxBF.ox80_o
e2c80 78 42 46 0a 20 20 20 20 20 2f 20 6f 78 46 31 5f 6f 78 46 33 20 6f 78 38 30 5f 6f 78 42 46 20 6f xBF....../.oxF1_oxF3.ox80_oxBF.o
e2ca0 78 38 30 5f 6f 78 42 46 20 6f 78 38 30 5f 6f 78 42 46 0a 20 20 20 20 20 2f 20 6f 78 46 30 20 20 x80_oxBF.ox80_oxBF....../.oxF0..
e2cc0 20 20 20 20 6f 78 39 30 5f 30 78 42 46 20 6f 78 38 30 5f 6f 78 42 46 20 6f 78 38 30 5f 6f 78 42 ....ox90_0xBF.ox80_oxBF.ox80_oxB
e2ce0 46 0a 20 20 20 20 20 2f 20 6f 78 45 45 5f 6f 78 45 46 20 6f 78 38 30 5f 6f 78 42 46 20 6f 78 38 F....../.oxEE_oxEF.ox80_oxBF.ox8
e2d00 30 5f 6f 78 42 46 0a 20 20 20 20 20 2f 20 6f 78 45 44 20 20 20 20 20 20 6f 78 38 30 5f 6f 78 39 0_oxBF....../.oxED......ox80_ox9
e2d20 46 20 6f 78 38 30 5f 6f 78 42 46 0a 20 20 20 20 20 2f 20 6f 78 45 31 5f 6f 78 45 43 20 6f 78 38 F.ox80_oxBF....../.oxE1_oxEC.ox8
e2d40 30 5f 6f 78 42 46 20 6f 78 38 30 5f 6f 78 42 46 0a 20 20 20 20 20 2f 20 6f 78 45 30 20 20 20 20 0_oxBF.ox80_oxBF....../.oxE0....
e2d60 20 20 6f 78 41 30 5f 6f 78 42 46 20 6f 78 38 30 5f 6f 78 42 46 0a 20 20 20 20 20 2f 20 6f 78 43 ..oxA0_oxBF.ox80_oxBF....../.oxC
e2d80 32 5f 6f 78 44 46 20 6f 78 38 30 5f 6f 78 42 46 0a 0a 61 73 63 69 69 5f 63 68 61 72 5f 6e 6f 74 2_oxDF.ox80_oxBF..ascii_char_not
e2da0 5f 6e 6c 5f 73 6c 61 73 68 5f 73 71 75 6f 74 65 20 26 6c 74 3b 2d 20 5b 5c 30 30 30 2d 5c 30 31 _nl_slash_squote.&lt;-.[\000-\01
e2dc0 31 5c 30 31 33 2d 5c 30 34 36 5c 30 35 30 2d 5c 31 33 33 5c 31 33 35 2d 5c 31 37 37 5d 0a 0a 63 1\013-\046\050-\133\135-\177]..c
e2de0 68 61 72 5f 65 73 63 61 70 65 0a 20 20 20 20 26 6c 74 3b 2d 20 26 71 75 6f 74 3b 5c 5c 78 26 71 har_escape.....&lt;-.&quot;\\x&q
e2e00 75 6f 74 3b 20 68 65 78 20 68 65 78 0a 20 20 20 20 20 2f 20 26 71 75 6f 74 3b 5c 5c 75 7b 26 71 uot;.hex.hex....../.&quot;\\u{&q
e2e20 75 6f 74 3b 20 68 65 78 2b 20 26 71 75 6f 74 3b 7d 26 71 75 6f 74 3b 0a 20 20 20 20 20 2f 20 26 uot;.hex+.&quot;}&quot;....../.&
e2e40 71 75 6f 74 3b 5c 5c 26 71 75 6f 74 3b 20 5b 6e 72 5c 5c 74 27 26 71 75 6f 74 3b 5d 0a 63 68 61 quot;\\&quot;.[nr\\t'&quot;].cha
e2e60 72 5f 63 68 61 72 0a 20 20 20 20 26 6c 74 3b 2d 20 6d 62 5f 75 74 66 38 5f 6c 69 74 65 72 61 6c r_char.....&lt;-.mb_utf8_literal
e2e80 0a 20 20 20 20 20 2f 20 63 68 61 72 5f 65 73 63 61 70 65 0a 20 20 20 20 20 2f 20 61 73 63 69 69 ....../.char_escape....../.ascii
e2ea0 5f 63 68 61 72 5f 6e 6f 74 5f 6e 6c 5f 73 6c 61 73 68 5f 73 71 75 6f 74 65 0a 0a 73 74 72 69 6e _char_not_nl_slash_squote..strin
e2ec0 67 5f 63 68 61 72 0a 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 g_char.....&lt;-.char_escape....
e2ee0 20 20 2f 20 5b 5e 5c 5c 26 71 75 6f 74 3b 5c 6e 5d 0a 0a 63 6f 6e 74 61 69 6e 65 72 5f 64 6f 63 ../.[^\\&quot;\n]..container_doc
e2f00 5f 63 6f 6d 6d 65 6e 74 20 26 6c 74 3b 2d 20 28 27 2f 2f 21 27 20 5b 5e 5c 6e 5d 2a 20 5b 20 5c _comment.&lt;-.('//!'.[^\n]*.[.\
e2f20 6e 5d 2a 20 73 6b 69 70 29 2b 0a 64 6f 63 5f 63 6f 6d 6d 65 6e 74 20 26 6c 74 3b 2d 20 28 27 2f n]*.skip)+.doc_comment.&lt;-.('/
e2f40 2f 2f 27 20 5b 5e 5c 6e 5d 2a 20 5b 20 5c 6e 5d 2a 20 73 6b 69 70 29 2b 0a 6c 69 6e 65 5f 63 6f //'.[^\n]*.[.\n]*.skip)+.line_co
e2f60 6d 6d 65 6e 74 20 26 6c 74 3b 2d 20 27 2f 2f 27 20 21 5b 21 2f 5d 5b 5e 5c 6e 5d 2a 20 2f 20 27 mment.&lt;-.'//'.![!/][^\n]*./.'
e2f80 2f 2f 2f 2f 27 20 5b 5e 5c 6e 5d 2a 0a 6c 69 6e 65 5f 73 74 72 69 6e 67 20 26 6c 74 3b 2d 20 28 ////'.[^\n]*.line_string.&lt;-.(
e2fa0 26 71 75 6f 74 3b 5c 5c 5c 5c 26 71 75 6f 74 3b 20 5b 5e 5c 6e 5d 2a 20 5b 20 5c 6e 5d 2a 29 2b &quot;\\\\&quot;.[^\n]*.[.\n]*)+
e2fc0 0a 73 6b 69 70 20 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 .skip.&lt;-.([.\n]./.line_commen
e2fe0 74 29 2a 0a 0a 43 48 41 52 5f 4c 49 54 45 52 41 4c 20 26 6c 74 3b 2d 20 26 71 75 6f 74 3b 27 26 t)*..CHAR_LITERAL.&lt;-.&quot;'&
e3000 71 75 6f 74 3b 20 63 68 61 72 5f 63 68 61 72 20 26 71 75 6f 74 3b 27 26 71 75 6f 74 3b 20 73 6b quot;.char_char.&quot;'&quot;.sk
e3020 69 70 0a 46 4c 4f 41 54 0a 20 20 20 20 26 6c 74 3b 2d 20 26 71 75 6f 74 3b 30 78 26 71 75 6f 74 ip.FLOAT.....&lt;-.&quot;0x&quot
e3040 3b 20 68 65 78 5f 69 6e 74 20 26 71 75 6f 74 3b 2e 26 71 75 6f 74 3b 20 68 65 78 5f 69 6e 74 20 ;.hex_int.&quot;.&quot;.hex_int.
e3060 28 5b 70 50 5d 20 5b 2d 2b 5d 3f 20 64 65 63 5f 69 6e 74 29 3f 20 73 6b 69 70 0a 20 20 20 20 20 ([pP].[-+]?.dec_int)?.skip......
e3080 2f 20 20 20 20 20 20 64 65 63 5f 69 6e 74 20 26 71 75 6f 74 3b 2e 26 71 75 6f 74 3b 20 64 65 63 /......dec_int.&quot;.&quot;.dec
e30a0 5f 69 6e 74 20 28 5b 65 45 5d 20 5b 2d 2b 5d 3f 20 64 65 63 5f 69 6e 74 29 3f 20 73 6b 69 70 0a _int.([eE].[-+]?.dec_int)?.skip.
e30c0 20 20 20 20 20 2f 20 26 71 75 6f 74 3b 30 78 26 71 75 6f 74 3b 20 68 65 78 5f 69 6e 74 20 5b 70 ...../.&quot;0x&quot;.hex_int.[p
e30e0 50 5d 20 5b 2d 2b 5d 3f 20 64 65 63 5f 69 6e 74 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 20 20 20 P].[-+]?.dec_int.skip....../....
e3100 20 20 64 65 63 5f 69 6e 74 20 5b 65 45 5d 20 5b 2d 2b 5d 3f 20 64 65 63 5f 69 6e 74 20 73 6b 69 ..dec_int.[eE].[-+]?.dec_int.ski
e3120 70 0a 49 4e 54 45 47 45 52 0a 20 20 20 20 26 6c 74 3b 2d 20 26 71 75 6f 74 3b 30 62 26 71 75 6f p.INTEGER.....&lt;-.&quot;0b&quo
e3140 74 3b 20 62 69 6e 5f 69 6e 74 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 26 71 75 6f 74 3b 30 6f 26 t;.bin_int.skip....../.&quot;0o&
e3160 71 75 6f 74 3b 20 6f 63 74 5f 69 6e 74 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 26 71 75 6f 74 3b quot;.oct_int.skip....../.&quot;
e3180 30 78 26 71 75 6f 74 3b 20 68 65 78 5f 69 6e 74 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 20 20 20 0x&quot;.hex_int.skip....../....
e31a0 20 20 64 65 63 5f 69 6e 74 20 20 20 73 6b 69 70 0a 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 53 49 ..dec_int...skip.STRINGLITERALSI
e31c0 4e 47 4c 45 20 26 6c 74 3b 2d 20 26 71 75 6f 74 3b 5c 26 71 75 6f 74 3b 26 71 75 6f 74 3b 20 73 NGLE.&lt;-.&quot;\&quot;&quot;.s
e31e0 74 72 69 6e 67 5f 63 68 61 72 2a 20 26 71 75 6f 74 3b 5c 26 71 75 6f 74 3b 26 71 75 6f 74 3b 20 tring_char*.&quot;\&quot;&quot;.
e3200 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 3b 2d 20 53 54 52 skip.STRINGLITERAL.....&lt;-.STR
e3220 49 4e 47 4c 49 54 45 52 41 4c 53 49 4e 47 4c 45 0a 20 20 20 20 20 2f 20 28 6c 69 6e 65 5f 73 74 INGLITERALSINGLE....../.(line_st
e3240 72 69 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 29 2b 0a 49 44 45 4e ring.................skip)+.IDEN
e3260 54 49 46 49 45 52 0a 20 20 20 20 26 6c 74 3b 2d 20 21 6b 65 79 77 6f 72 64 20 5b 41 2d 5a 61 2d TIFIER.....&lt;-.!keyword.[A-Za-
e3280 7a 5f 5d 20 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 5d 2a 20 73 6b 69 70 0a 20 20 20 20 20 2f 20 26 71 z_].[A-Za-z0-9_]*.skip....../.&q
e32a0 75 6f 74 3b 40 26 71 75 6f 74 3b 20 53 54 52 49 4e 47 4c 49 54 45 52 41 4c 53 49 4e 47 4c 45 0a uot;@&quot;.STRINGLITERALSINGLE.
e32c0 42 55 49 4c 54 49 4e 49 44 45 4e 54 49 46 49 45 52 20 26 6c 74 3b 2d 20 26 71 75 6f 74 3b 40 26 BUILTINIDENTIFIER.&lt;-.&quot;@&
e32e0 71 75 6f 74 3b 5b 41 2d 5a 61 2d 7a 5f 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 5d 2a 20 73 6b 69 70 quot;[A-Za-z_][A-Za-z0-9_]*.skip
e3300 0a 0a 0a 41 4d 50 45 52 53 41 4e 44 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 ...AMPERSAND............&lt;-.'&
e3320 61 6d 70 3b 27 20 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 41 4d 50 45 52 53 amp;'......![=]......skip.AMPERS
e3340 41 4e 44 45 51 55 41 4c 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 61 6d 70 3b 3d 27 20 20 20 ANDEQUAL.......&lt;-.'&amp;='...
e3360 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 41 53 54 45 52 49 53 4b 20 20 20 20 20 20 20 ............skip.ASTERISK.......
e3380 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2a 27 20 20 20 20 20 20 21 5b 2a 25 3d 7c 5d 20 20 20 73 ......&lt;-.'*'......![*%=|]...s
e33a0 6b 69 70 0a 41 53 54 45 52 49 53 4b 32 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 kip.ASTERISK2............&lt;-.'
e33c0 2a 2a 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 41 53 54 45 52 49 53 4b 45 **'...............skip.ASTERISKE
e33e0 51 55 41 4c 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2a 3d 27 20 20 20 20 20 20 20 20 20 20 QUAL........&lt;-.'*='..........
e3400 20 20 20 20 20 73 6b 69 70 0a 41 53 54 45 52 49 53 4b 50 45 52 43 45 4e 54 20 20 20 20 20 20 26 .....skip.ASTERISKPERCENT......&
e3420 6c 74 3b 2d 20 27 2a 25 27 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 41 53 54 lt;-.'*%'.....![=]......skip.AST
e3440 45 52 49 53 4b 50 45 52 43 45 4e 54 45 51 55 41 4c 20 26 6c 74 3b 2d 20 27 2a 25 3d 27 20 20 20 ERISKPERCENTEQUAL.&lt;-.'*%='...
e3460 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 41 53 54 45 52 49 53 4b 50 49 50 45 20 20 20 20 ...........skip.ASTERISKPIPE....
e3480 20 20 20 20 20 26 6c 74 3b 2d 20 27 2a 7c 27 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b .....&lt;-.'*|'.....![=]......sk
e34a0 69 70 0a 41 53 54 45 52 49 53 4b 50 49 50 45 45 51 55 41 4c 20 20 20 20 26 6c 74 3b 2d 20 27 2a ip.ASTERISKPIPEEQUAL....&lt;-.'*
e34c0 7c 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 43 41 52 45 54 20 20 20 20 20 |='..............skip.CARET.....
e34e0 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 5e 27 20 20 20 20 20 20 21 5b 3d 5d 20 20 ...........&lt;-.'^'......![=]..
e3500 20 20 20 20 73 6b 69 70 0a 43 41 52 45 54 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 26 6c ....skip.CARETEQUAL...........&l
e3520 74 3b 2d 20 27 5e 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 43 4f 4c 4f t;-.'^='...............skip.COLO
e3540 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 3a 27 20 20 20 20 20 20 N................&lt;-.':'......
e3560 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 43 4f 4d 4d 41 20 20 20 20 20 20 20 20 20 20 20 20 ..........skip.COMMA............
e3580 20 20 20 20 26 6c 74 3b 2d 20 27 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 ....&lt;-.','................ski
e35a0 70 0a 44 4f 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2e 27 p.DOT..................&lt;-.'.'
e35c0 20 20 20 20 20 20 21 5b 2a 2e 3f 5d 20 20 20 20 73 6b 69 70 0a 44 4f 54 32 20 20 20 20 20 20 20 ......![*.?]....skip.DOT2.......
e35e0 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2e 2e 27 20 20 20 20 20 21 5b 2e 5d 20 20 20 ..........&lt;-.'..'.....![.]...
e3600 20 20 20 73 6b 69 70 0a 44 4f 54 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 ...skip.DOT3.................&lt
e3620 3b 2d 20 27 2e 2e 2e 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 44 4f 54 41 53 ;-.'...'..............skip.DOTAS
e3640 54 45 52 49 53 4b 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2e 2a 27 20 20 20 20 20 20 TERISK..........&lt;-.'.*'......
e3660 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 44 4f 54 51 55 45 53 54 49 4f 4e 4d 41 52 4b 20 20 20 .........skip.DOTQUESTIONMARK...
e3680 20 20 20 26 6c 74 3b 2d 20 27 2e 3f 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 ...&lt;-.'.?'...............skip
e36a0 0a 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 3d 27 20 .EQUAL................&lt;-.'='.
e36c0 20 20 20 20 20 21 5b 26 67 74 3b 3d 5d 20 20 20 20 20 73 6b 69 70 0a 45 51 55 41 4c 45 51 55 41 .....![&gt;=].....skip.EQUALEQUA
e36e0 4c 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 3d 3d 27 20 20 20 20 20 20 20 20 20 20 L...........&lt;-.'=='..........
e3700 20 20 20 20 20 73 6b 69 70 0a 45 51 55 41 4c 52 41 52 52 4f 57 20 20 20 20 20 20 20 20 20 20 26 .....skip.EQUALRARROW..........&
e3720 6c 74 3b 2d 20 27 3d 26 67 74 3b 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a lt;-.'=&gt;'...............skip.
e3740 45 58 43 4c 41 4d 41 54 49 4f 4e 4d 41 52 4b 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 21 27 20 20 EXCLAMATIONMARK......&lt;-.'!'..
e3760 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 45 58 43 4c 41 4d 41 54 49 4f 4e 4d 41 ....![=]......skip.EXCLAMATIONMA
e3780 52 4b 45 51 55 41 4c 20 26 6c 74 3b 2d 20 27 21 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RKEQUAL.&lt;-.'!='..............
e37a0 20 73 6b 69 70 0a 4c 41 52 52 4f 57 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d .skip.LARROW...............&lt;-
e37c0 20 27 26 6c 74 3b 27 20 20 20 20 20 20 21 5b 26 6c 74 3b 3d 5d 20 20 20 20 20 73 6b 69 70 0a 4c .'&lt;'......![&lt;=].....skip.L
e37e0 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 26 6c 74 3b 26 ARROW2..............&lt;-.'&lt;&
e3800 6c 74 3b 27 20 20 20 20 20 21 5b 3d 7c 5d 20 20 20 20 20 73 6b 69 70 0a 4c 41 52 52 4f 57 32 45 lt;'.....![=|].....skip.LARROW2E
e3820 51 55 41 4c 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 6c 74 3b 26 6c 74 3b 3d 27 20 20 QUAL.........&lt;-.'&lt;&lt;='..
e3840 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 4c 41 52 52 4f 57 32 50 49 50 45 20 20 20 20 ............skip.LARROW2PIPE....
e3860 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 26 6c 74 3b 26 6c 74 3b 7c 27 20 20 20 20 21 5b 3d 5d 20 ......&lt;-.'&lt;&lt;|'....![=].
e3880 20 20 20 20 20 73 6b 69 70 0a 4c 41 52 52 4f 57 32 50 49 50 45 45 51 55 41 4c 20 20 20 20 20 26 .....skip.LARROW2PIPEEQUAL.....&
e38a0 6c 74 3b 2d 20 27 26 6c 74 3b 26 6c 74 3b 7c 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b lt;-.'&lt;&lt;|='.............sk
e38c0 69 70 0a 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 ip.LARROWEQUAL..........&lt;-.'&
e38e0 6c 74 3b 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 lt;='...............skip.LBRACE.
e3900 20 20 20 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 ..............&lt;-.'{'.........
e3920 20 20 20 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 .......skip.LBRACKET............
e3940 20 26 6c 74 3b 2d 20 27 5b 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 4c .&lt;-.'['................skip.L
e3960 50 41 52 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 PAREN...............&lt;-.'('...
e3980 20 20 20 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 .............skip.MINUS.........
e39a0 20 20 20 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 7c 5d .......&lt;-.'-'......![%=&gt;|]
e39c0 20 20 20 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 ...skip.MINUSEQUAL...........&lt
e39e0 3b 2d 20 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 ;-.'-='...............skip.MINUS
e3a00 50 45 52 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 PERCENT.........&lt;-.'-%'.....!
e3a20 5b 3d 5d 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 [=]......skip.MINUSPERCENTEQUAL.
e3a40 20 20 20 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 ...&lt;-.'-%='..............skip
e3a60 0a 4d 49 4e 55 53 50 49 50 45 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2d 7c 27 .MINUSPIPE............&lt;-.'-|'
e3a80 20 20 20 20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 4d 49 4e 55 53 50 49 50 45 45 51 55 .....![=]......skip.MINUSPIPEEQU
e3aa0 41 4c 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2d 7c 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 AL.......&lt;-.'-|='............
e3ac0 20 20 73 6b 69 70 0a 4d 49 4e 55 53 52 41 52 52 4f 57 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b ..skip.MINUSRARROW..........&lt;
e3ae0 2d 20 27 2d 26 67 74 3b 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 50 45 52 -.'-&gt;'...............skip.PER
e3b00 43 45 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 25 27 20 20 20 20 20 CENT..............&lt;-.'%'.....
e3b20 20 21 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 50 45 52 43 45 4e 54 45 51 55 41 4c 20 20 20 20 .![=]......skip.PERCENTEQUAL....
e3b40 20 20 20 20 20 26 6c 74 3b 2d 20 27 25 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b .....&lt;-.'%='...............sk
e3b60 69 70 0a 50 49 50 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 7c ip.PIPE.................&lt;-.'|
e3b80 27 20 20 20 20 20 20 21 5b 7c 3d 5d 20 20 20 20 20 73 6b 69 70 0a 50 49 50 45 32 20 20 20 20 20 '......![|=].....skip.PIPE2.....
e3ba0 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 7c 7c 27 20 20 20 20 20 20 20 20 20 20 20 ...........&lt;-.'||'...........
e3bc0 20 20 20 20 73 6b 69 70 0a 50 49 50 45 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 20 26 6c ....skip.PIPEEQUAL............&l
e3be0 74 3b 2d 20 27 7c 3d 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 t;-.'|='...............skip.PLUS
e3c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2b 27 20 20 20 20 20 20 .................&lt;-.'+'......
e3c20 21 5b 25 2b 3d 7c 5d 20 20 20 73 6b 69 70 0a 50 4c 55 53 32 20 20 20 20 20 20 20 20 20 20 20 20 ![%+=|]...skip.PLUS2............
e3c40 20 20 20 20 26 6c 74 3b 2d 20 27 2b 2b 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 ....&lt;-.'++'...............ski
e3c60 70 0a 50 4c 55 53 45 51 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2b 3d p.PLUSEQUAL............&lt;-.'+=
e3c80 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 50 45 52 43 45 4e 54 '...............skip.PLUSPERCENT
e3ca0 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2b 25 27 20 20 20 20 20 21 5b 3d 5d 20 20 20 ..........&lt;-.'+%'.....![=]...
e3cc0 20 20 20 73 6b 69 70 0a 50 4c 55 53 50 45 52 43 45 4e 54 45 51 55 41 4c 20 20 20 20 20 26 6c 74 ...skip.PLUSPERCENTEQUAL.....&lt
e3ce0 3b 2d 20 27 2b 25 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 0a 50 4c 55 53 50 ;-.'+%='..............skip.PLUSP
e3d00 49 50 45 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 2b 7c 27 20 20 20 20 20 21 IPE.............&lt;-.'+|'.....!
e3d20 5b 3d 5d 20 20 20 20 20 20 73 6b 69 70 0a 50 4c 55 53 50 49 50 45 45 51 55 41 4c 20 20 20 20 20 [=]......skip.PLUSPIPEEQUAL.....
e3d40 20 20 20 26 6c 74 3b 2d 20 27 2b 7c 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 6b 69 70 ...&lt;-.'+|='..............skip
e3d60 0a 4c 45 54 54 45 52 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 63 27 20 .LETTERC..............&lt;-.'c'.
e3d80 20 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 4d 41 52 4b ...............skip.QUESTIONMARK
e3da0 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 20 20 20 20 .........&lt;-.'?'..............
e3dc0 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 26 6c 74 3b ..skip.RARROW...............&lt;
e3de0 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 6b 69 70 0a -.'&gt;'......![&gt;=].....skip.
e3e00 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 26 67 74 3b RARROW2..............&lt;-.'&gt;
e3e20 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 52 4f 57 32 &gt;'.....![=]......skip.RARROW2
e3e40 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 3b 3d 27 20 EQUAL.........&lt;-.'&gt;&gt;='.
e3e60 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 4c 20 20 20 .............skip.RARROWEQUAL...
e3e80 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 20 20 20 20 .......&lt;-.'&gt;='............
e3ea0 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 20 26 6c 74 ...skip.RBRACE...............&lt
e3ec0 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 42 52 41 43 ;-.'}'................skip.RBRAC
e3ee0 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 20 20 20 20 KET.............&lt;-.']'.......
e3f00 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 20 20 20 20 .........skip.RPAREN............
e3f20 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 73 6b 69 70 ...&lt;-.')'................skip
e3f40 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 27 3b 27 20 .SEMICOLON............&lt;-.';'.
e3f60 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 20 20 20 20 ...............skip.SLASH.......
e3f80 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 20 20 20 20 .........&lt;-.'/'......![=]....
e3fa0 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 26 6c 74 3b ..skip.SLASHEQUAL...........&lt;
e3fc0 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 4c 44 45 20 -.'/='...............skip.TILDE.
e3fe0 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 20 20 20 20 ...............&lt;-.'~'........
e4000 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 74 3b 2d 20 ........skip..end_of_word.&lt;-.
e4020 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 64 64 72 73 ![a-zA-Z0-9_].skip.KEYWORD_addrs
e4040 70 61 63 65 20 20 20 26 6c 74 3b 2d 20 27 61 64 64 72 73 70 61 63 65 27 20 20 20 65 6e 64 5f 6f pace...&lt;-.'addrspace'...end_o
e4060 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 61 6c 69 67 6e 20 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_align.......&lt;-
e4080 20 27 61 6c 69 67 6e 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 .'align'.......end_of_word.KEYWO
e40a0 52 44 5f 61 6c 6c 6f 77 7a 65 72 6f 20 20 20 26 6c 74 3b 2d 20 27 61 6c 6c 6f 77 7a 65 72 6f 27 RD_allowzero...&lt;-.'allowzero'
e40c0 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 61 6e 64 20 20 20 20 20 20 ...end_of_word.KEYWORD_and......
e40e0 20 20 20 26 6c 74 3b 2d 20 27 61 6e 64 27 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'and'.........end_of_wo
e4100 72 64 0a 4b 45 59 57 4f 52 44 5f 61 6e 79 66 72 61 6d 65 20 20 20 20 26 6c 74 3b 2d 20 27 61 6e rd.KEYWORD_anyframe....&lt;-.'an
e4120 79 66 72 61 6d 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 61 yframe'....end_of_word.KEYWORD_a
e4140 6e 79 74 79 70 65 20 20 20 20 20 26 6c 74 3b 2d 20 27 61 6e 79 74 79 70 65 27 20 20 20 20 20 65 nytype.....&lt;-.'anytype'.....e
e4160 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 61 73 6d 20 20 20 20 20 20 20 20 20 26 nd_of_word.KEYWORD_asm.........&
e4180 6c 74 3b 2d 20 27 61 73 6d 27 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'asm'.........end_of_word.K
e41a0 45 59 57 4f 52 44 5f 61 73 79 6e 63 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 61 73 79 6e 63 27 EYWORD_async.......&lt;-.'async'
e41c0 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 77 61 69 74 .......end_of_word.KEYWORD_await
e41e0 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 61 77 61 69 74 27 20 20 20 20 20 20 20 65 6e 64 5f 6f .......&lt;-.'await'.......end_o
e4200 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 62 72 65 61 6b 20 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_break.......&lt;-
e4220 20 27 62 72 65 61 6b 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 .'break'.......end_of_word.KEYWO
e4240 52 44 5f 63 61 6c 6c 63 6f 6e 76 20 20 20 20 26 6c 74 3b 2d 20 27 63 61 6c 6c 63 6f 6e 76 27 20 RD_callconv....&lt;-.'callconv'.
e4260 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 63 61 74 63 68 20 20 20 20 ...end_of_word.KEYWORD_catch....
e4280 20 20 20 26 6c 74 3b 2d 20 27 63 61 74 63 68 27 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'catch'.......end_of_wo
e42a0 72 64 0a 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 20 20 20 20 26 6c 74 3b 2d 20 27 63 6f rd.KEYWORD_comptime....&lt;-.'co
e42c0 6d 70 74 69 6d 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 63 mptime'....end_of_word.KEYWORD_c
e42e0 6f 6e 73 74 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 63 6f 6e 73 74 27 20 20 20 20 20 20 20 65 onst.......&lt;-.'const'.......e
e4300 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 63 6f 6e 74 69 6e 75 65 20 20 20 20 26 nd_of_word.KEYWORD_continue....&
e4320 6c 74 3b 2d 20 27 63 6f 6e 74 69 6e 75 65 27 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'continue'....end_of_word.K
e4340 45 59 57 4f 52 44 5f 64 65 66 65 72 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 64 65 66 65 72 27 EYWORD_defer.......&lt;-.'defer'
e4360 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 6c 73 65 20 .......end_of_word.KEYWORD_else.
e4380 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 65 6c 73 65 27 20 20 20 20 20 20 20 20 65 6e 64 5f 6f .......&lt;-.'else'........end_o
e43a0 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 65 6e 75 6d 20 20 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_enum........&lt;-
e43c0 20 27 65 6e 75 6d 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 .'enum'........end_of_word.KEYWO
e43e0 52 44 5f 65 72 72 64 65 66 65 72 20 20 20 20 26 6c 74 3b 2d 20 27 65 72 72 64 65 66 65 72 27 20 RD_errdefer....&lt;-.'errdefer'.
e4400 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 6f 72 20 20 20 20 ...end_of_word.KEYWORD_error....
e4420 20 20 20 26 6c 74 3b 2d 20 27 65 72 72 6f 72 27 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'error'.......end_of_wo
e4440 72 64 0a 4b 45 59 57 4f 52 44 5f 65 78 70 6f 72 74 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 65 78 rd.KEYWORD_export......&lt;-.'ex
e4460 70 6f 72 74 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 65 port'......end_of_word.KEYWORD_e
e4480 78 74 65 72 6e 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 65 78 74 65 72 6e 27 20 20 20 20 20 20 65 xtern......&lt;-.'extern'......e
e44a0 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 66 6e 20 20 20 20 20 20 20 20 20 20 26 nd_of_word.KEYWORD_fn..........&
e44c0 6c 74 3b 2d 20 27 66 6e 27 20 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'fn'..........end_of_word.K
e44e0 45 59 57 4f 52 44 5f 66 6f 72 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 66 6f 72 27 20 20 EYWORD_for.........&lt;-.'for'..
e4500 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 69 66 20 20 20 .......end_of_word.KEYWORD_if...
e4520 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 69 66 27 20 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f .......&lt;-.'if'..........end_o
e4540 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 69 6e 6c 69 6e 65 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_inline......&lt;-
e4560 20 27 69 6e 6c 69 6e 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 .'inline'......end_of_word.KEYWO
e4580 52 44 5f 6e 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 RD_noalias.....&lt;-.'noalias'..
e45a0 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 6e 6f 73 75 73 70 65 6e 64 ...end_of_word.KEYWORD_nosuspend
e45c0 20 20 20 26 6c 74 3b 2d 20 27 6e 6f 73 75 73 70 65 6e 64 27 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'nosuspend'...end_of_wo
e45e0 72 64 0a 4b 45 59 57 4f 52 44 5f 6e 6f 69 6e 6c 69 6e 65 20 20 20 20 26 6c 74 3b 2d 20 27 6e 6f rd.KEYWORD_noinline....&lt;-.'no
e4600 69 6e 6c 69 6e 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 6f inline'....end_of_word.KEYWORD_o
e4620 70 61 71 75 65 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 6f 70 61 71 75 65 27 20 20 20 20 20 20 65 paque......&lt;-.'opaque'......e
e4640 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 6f 72 20 20 20 20 20 20 20 20 20 20 26 nd_of_word.KEYWORD_or..........&
e4660 6c 74 3b 2d 20 27 6f 72 27 20 20 20 20 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b lt;-.'or'..........end_of_word.K
e4680 45 59 57 4f 52 44 5f 6f 72 65 6c 73 65 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 6f 72 65 6c 73 65 EYWORD_orelse......&lt;-.'orelse
e46a0 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 70 61 63 6b 65 '......end_of_word.KEYWORD_packe
e46c0 64 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 70 61 63 6b 65 64 27 20 20 20 20 20 20 65 6e 64 5f 6f d......&lt;-.'packed'......end_o
e46e0 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 70 75 62 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d f_word.KEYWORD_pub.........&lt;-
e4700 20 27 70 75 62 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 .'pub'.........end_of_word.KEYWO
e4720 52 44 5f 72 65 73 75 6d 65 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 72 65 73 75 6d 65 27 20 20 20 RD_resume......&lt;-.'resume'...
e4740 20 20 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 72 65 74 75 72 6e 20 20 20 ...end_of_word.KEYWORD_return...
e4760 20 20 20 26 6c 74 3b 2d 20 27 72 65 74 75 72 6e 27 20 20 20 20 20 20 65 6e 64 5f 6f 66 5f 77 6f ...&lt;-.'return'......end_of_wo
e4780 72 64 0a 4b 45 59 57 4f 52 44 5f 6c 69 6e 6b 73 65 63 74 69 6f 6e 20 26 6c 74 3b 2d 20 27 6c 69 rd.KEYWORD_linksection.&lt;-.'li
e47a0 6e 6b 73 65 63 74 69 6f 6e 27 20 65 6e 64 5f 6f 66 5f 77 6f 72 64 0a 4b 45 59 57 4f 52 44 5f 73 nksection'.end_of_word.KEYWORD_s
e47c0 74 72 75 63 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 truct......&lt;-.'struct'......e
e47e0 6e 64 5f 6f 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 nd_of_word.KEYWORD_suspend.....&
e4800 6c 74 3b 2d 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 lt;-.'suspend'.....end_of_word.K
e4820 45 59 57 4f 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 EYWORD_switch......&lt;-.'switch
e4840 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 74 65 73 74 20 '......end_of_word.KEYWORD_test.
e4860 20 20 20 20 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 .......&lt;-.'test'........end_o
e4880 66 5f 77 6f 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 f_word.KEYWORD_threadlocal.&lt;-
e48a0 20 27 74 68 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 .'threadlocal'.end_of_word.KEYWO
e48c0 52 44 5f 74 72 79 20 20 20 20 20 20 20 20 20 26 6c 74 3b 2d 20 27 74 72 79 27 20 20 20 20 20 20 RD_try.........&lt;-.'try'......
e48e0 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 20 20 20 20 ...end_of_word.KEYWORD_union....
e4900 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 66 5f 77 6f ...&lt;-.'union'.......end_of_wo
e4920 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 20 27 75 6e rd.KEYWORD_unreachable.&lt;-.'un
e4940 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 52 44 5f 75 reachable'.end_of_word.KEYWORD_u
e4960 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 6d 65 73 70 singnamespace.&lt;-.'usingnamesp
e4980 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 20 20 20 20 ace'.end_of_word.KEYWORD_var....
e49a0 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 5f 6f 66 5f .....&lt;-.'var'.........end_of_
e49c0 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 3b 2d 20 27 word.KEYWORD_volatile....&lt;-.'
e49e0 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 57 4f 52 44 volatile'....end_of_word.KEYWORD
e4a00 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 20 20 20 20 _while.......&lt;-.'while'......
e4a20 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 4b 45 59 57 .end_of_word..keyword.&lt;-.KEYW
e4a40 4f 52 44 5f 61 64 64 72 73 70 61 63 65 20 2f 20 4b 45 59 57 4f 52 44 5f 61 6c 69 67 6e 20 2f 20 ORD_addrspace./.KEYWORD_align./.
e4a60 4b 45 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 6e 64 0a KEYWORD_allowzero./.KEYWORD_and.
e4a80 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 61 6e 79 66 72 61 6d 65 20 2f 20 4b 45 ........./.KEYWORD_anyframe./.KE
e4aa0 59 57 4f 52 44 5f 61 6e 79 74 79 70 65 20 2f 20 4b 45 59 57 4f 52 44 5f 61 73 6d 20 2f 20 4b 45 YWORD_anytype./.KEYWORD_asm./.KE
e4ac0 59 57 4f 52 44 5f 61 73 79 6e 63 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 61 YWORD_async........../.KEYWORD_a
e4ae0 77 61 69 74 20 2f 20 4b 45 59 57 4f 52 44 5f 62 72 65 61 6b 20 2f 20 4b 45 59 57 4f 52 44 5f 63 wait./.KEYWORD_break./.KEYWORD_c
e4b00 61 6c 6c 63 6f 6e 76 20 2f 20 4b 45 59 57 4f 52 44 5f 63 61 74 63 68 0a 20 20 20 20 20 20 20 20 allconv./.KEYWORD_catch.........
e4b20 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6d 70 74 69 6d 65 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f ./.KEYWORD_comptime./.KEYWORD_co
e4b40 6e 73 74 20 2f 20 4b 45 59 57 4f 52 44 5f 63 6f 6e 74 69 6e 75 65 20 2f 20 4b 45 59 57 4f 52 44 nst./.KEYWORD_continue./.KEYWORD
e4b60 5f 64 65 66 65 72 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 65 6c 73 65 20 2f _defer........../.KEYWORD_else./
e4b80 20 4b 45 59 57 4f 52 44 5f 65 6e 75 6d 20 2f 20 4b 45 59 57 4f 52 44 5f 65 72 72 64 65 66 65 72 .KEYWORD_enum./.KEYWORD_errdefer
e4ba0 20 2f 20 4b 45 59 57 4f 52 44 5f 65 72 72 6f 72 20 2f 20 4b 45 59 57 4f 52 44 5f 65 78 70 6f 72 ./.KEYWORD_error./.KEYWORD_expor
e4bc0 74 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 65 78 74 65 72 6e 20 2f 20 4b 45 t........../.KEYWORD_extern./.KE
e4be0 59 57 4f 52 44 5f 66 6e 20 2f 20 4b 45 59 57 4f 52 44 5f 66 6f 72 20 2f 20 4b 45 59 57 4f 52 44 YWORD_fn./.KEYWORD_for./.KEYWORD
e4c00 5f 69 66 0a 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 69 6e 6c 69 6e 65 20 2f 20 _if........../.KEYWORD_inline./.
e4c20 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 6e 6f 73 75 73 70 KEYWORD_noalias./.KEYWORD_nosusp
e4c40 65 6e 64 20 2f 20 4b 45 59 57 4f 52 44 5f 6e 6f 69 6e 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 end./.KEYWORD_noinline..........
e4c60 2f 20 4b 45 59 57 4f 52 44 5f 6f 70 61 71 75 65 20 2f 20 4b 45 59 57 4f 52 44 5f 6f 72 20 2f 20 /.KEYWORD_opaque./.KEYWORD_or./.
e4c80 4b 45 59 57 4f 52 44 5f 6f 72 65 6c 73 65 20 2f 20 4b 45 59 57 4f 52 44 5f 70 61 63 6b 65 64 0a KEYWORD_orelse./.KEYWORD_packed.
e4ca0 20 20 20 20 20 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 70 75 62 20 2f 20 4b 45 59 57 4f 52 44 ........./.KEYWORD_pub./.KEYWORD
e4cc0 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 59 57 4f _resume./.KEYWORD_return./.KEYWO
e4ce0 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 57 4f 52 RD_linksection........../.KEYWOR
e4d00 44 5f 73 74 72 75 63 74 20 2f 20 4b 45 59 57 4f 52 44 5f 73 75 73 70 65 6e 64 20 2f 20 4b 45 59 D_struct./.KEYWORD_suspend./.KEY
e4d20 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 0a 20 20 20 20 20 WORD_switch./.KEYWORD_test......
e4d40 20 20 20 20 2f 20 4b 45 59 57 4f 52 44 5f 74 68 72 65 61 64 6c 6f 63 61 6c 20 2f 20 4b 45 59 57 ..../.KEYWORD_threadlocal./.KEYW
e4d60 4f 52 44 5f 74 72 79 20 2f 20 4b 45 59 57 4f 52 44 5f 75 6e 69 6f 6e 20 2f 20 4b 45 59 57 4f 52 ORD_try./.KEYWORD_union./.KEYWOR
e4d80 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 4f 52 44 D_unreachable........../.KEYWORD
e4da0 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 20 2f 20 _usingnamespace./.KEYWORD_var./.
e4dc0 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 69 6c 65 KEYWORD_volatile./.KEYWORD_while
e4de0 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 66 69 67 75 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 </code></pre></figure>..........
e4e00 20 20 20 20 3c 68 33 20 69 64 3d 22 5a 65 6e 22 3e 3c 61 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 ....<h3.id="Zen"><a.href="nav.xh
e4e20 74 6d 6c 23 74 6f 63 2d 5a 65 6e 22 3e 5a 65 6e 3c 2f 61 3e 20 3c 61 20 63 6c 61 73 73 3d 22 68 tml#toc-Zen">Zen</a>.<a.class="h
e4e40 64 72 22 20 68 72 65 66 3d 22 23 5a 65 6e 22 3e c2 a7 3c 2f 61 3e 3c 2f 68 33 3e 0a 0a 20 20 20 dr".href="#Zen">..</a></h3>.....
e4e60 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6d 6d 75 6e 69 63 61 74 65 20 ...<ul>.........<li>Communicate.
e4e80 69 6e 74 65 6e 74 20 70 72 65 63 69 73 65 6c 79 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c intent.precisely.</li>.........<
e4ea0 6c 69 3e 45 64 67 65 20 63 61 73 65 73 20 6d 61 74 74 65 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 li>Edge.cases.matter.</li>......
e4ec0 20 20 20 3c 6c 69 3e 46 61 76 6f 72 20 72 65 61 64 69 6e 67 20 63 6f 64 65 20 6f 76 65 72 20 77 ...<li>Favor.reading.code.over.w
e4ee0 72 69 74 69 6e 67 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 6e riting.code.</li>.........<li>On
e4f00 6c 79 20 6f 6e 65 20 6f 62 76 69 6f 75 73 20 77 61 79 20 74 6f 20 64 6f 20 74 68 69 6e 67 73 2e ly.one.obvious.way.to.do.things.
e4f20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 75 6e 74 69 6d 65 20 63 72 61 73 68 65 </li>.........<li>Runtime.crashe
e4f40 73 20 61 72 65 20 62 65 74 74 65 72 20 74 68 61 6e 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 20 20 20 s.are.better.than.bugs.</li>....
e4f60 20 20 20 20 20 3c 6c 69 3e 43 6f 6d 70 69 6c 65 20 65 72 72 6f 72 73 20 61 72 65 20 62 65 74 74 .....<li>Compile.errors.are.bett
e4f80 65 72 20 74 68 61 6e 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 2e 3c 2f 6c 69 3e 0a 20 20 er.than.runtime.crashes.</li>...
e4fa0 20 20 20 20 20 20 3c 6c 69 3e 49 6e 63 72 65 6d 65 6e 74 61 6c 20 69 6d 70 72 6f 76 65 6d 65 6e ......<li>Incremental.improvemen
e4fc0 74 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 76 6f 69 64 20 6c 6f 63 61 6c ts.</li>.........<li>Avoid.local
e4fe0 20 6d 61 78 69 6d 75 6d 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 64 75 .maximums.</li>.........<li>Redu
e5000 63 65 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 6e 65 20 6d 75 73 74 20 72 65 6d 65 6d 62 65 72 2e ce.the.amount.one.must.remember.
e5020 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 6f 63 75 73 20 6f 6e 20 63 6f 64 65 20 </li>.........<li>Focus.on.code.
e5040 72 61 74 68 65 72 20 74 68 61 6e 20 73 74 79 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 rather.than.style.</li>.........
e5060 3c 6c 69 3e 52 65 73 6f 75 72 63 65 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 6d 61 79 20 66 61 69 6c <li>Resource.allocation.may.fail
e5080 3b 20 72 65 73 6f 75 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 ;.resource.deallocation.must.suc
e50a0 63 65 65 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4d 65 6d 6f 72 79 20 69 73 ceed.</li>.........<li>Memory.is
e50c0 20 61 20 72 65 73 6f 75 72 63 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 6f .a.resource.</li>.........<li>To
e50e0 67 65 74 68 65 72 20 77 65 20 73 65 72 76 65 20 74 68 65 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a gether.we.serve.the.users.</li>.
e5100 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 0a 20 20 20 20 20 20 ......</ul>.....................
e5120 3c 2f 6d 61 69 6e 3e 3c 2f 64 69 76 3e 0a 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 3c 2f 62 6f 64 </main></div>.....</div>...</bod
e5140 79 3e 0a 3c 2f 68 74 6d 6c 3e 0a 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 6f 61 ab 2c 14 y>.</html>.PK............!Roa.,.
e5160 00 00 00 14 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 69 6d 65 74 79 70 .........................mimetyp
e5180 65 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 6f 92 d0 0a fc 00 00 00 fc 00 00 00 16 00 00 ePK............!Ro..............
e51a0 00 00 00 00 00 00 00 00 00 00 00 3a 00 00 00 4d 45 54 41 2d 49 4e 46 2f 63 6f 6e 74 61 69 6e 65 ...........:...META-INF/containe
e51c0 72 2e 78 6d 6c 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 cd 62 3e 26 c4 02 00 00 c4 02 00 r.xmlPK............!R.b>&.......
e51e0 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 01 00 00 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 ...............j...OEBPS/content
e5200 2e 6f 70 66 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 a9 23 1a fa 25 88 00 00 25 88 00 00 .opfPK............!R.#..%...%...
e5220 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 5d 04 00 00 4f 45 42 50 53 2f 6e 61 76 2e 78 68 74 6d ..............]...OEBPS/nav.xhtm
e5240 6c 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 00 5d 48 e7 6d c4 0d 00 6d c4 0d 00 11 00 00 lPK............!R.]H.m...m......
e5260 00 00 00 00 00 00 00 00 00 00 00 af 8c 00 00 4f 45 42 50 53 2f 69 6e 64 65 78 2e 78 68 74 6d 6c ...............OEBPS/index.xhtml
e5280 50 4b 05 06 00 00 00 00 05 00 05 00 35 01 00 00 4b 51 0e 00 00 00 PK..........5...KQ....