Warning, /frameworks/syntax-highlighting/autotests/reference/test.zig.ref is written in an unsupported language. File is not indexed.

0001 <Modifiers>const</Modifiers><Normal Text> std </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@import</Builtin Functions><Normal Text>(</Normal Text><String>"std"</String><Normal Text>);</Normal Text><br/>
0002 <Normal Text></Normal Text><br/>
0003 <Comment>/// This is a doc comment</Comment><br/>
0004 <Comment>// This is a comment</Comment><br/>
0005 <Keyword>fn</Keyword><Normal Text> getData() </Normal Text><Symbol>!</Symbol><Type>u32</Type><Normal Text> {</Normal Text><br/>
0006 <Normal Text>    </Normal Text><Control Flow>return</Control Flow><Normal Text> </Normal Text><Decimal>666</Decimal><Normal Text>;</Normal Text><br/>
0007 <Normal Text>}</Normal Text><br/>
0008 <Normal Text></Normal Text><br/>
0009 <Comment>// multiline string</Comment><br/>
0010 <Modifiers>const</Modifiers><Normal Text> hello_world_in_c </Normal Text><Symbol>=</Symbol><br/>
0011 <Normal Text>    </Normal Text><String>\\#include <stdio.h></String><br/>
0012 <Normal Text>    </Normal Text><String>\\</String><br/>
0013 <Normal Text>    </Normal Text><String>\\int main(int argc, char **argv) {</String><br/>
0014 <Normal Text>    </Normal Text><String>\\    printf("hello world\n");</String><br/>
0015 <Normal Text>    </Normal Text><String>\\    return 0;</String><br/>
0016 <Normal Text>    </Normal Text><String>\\}</String><br/>
0017 <Normal Text>;</Normal Text><br/>
0018 <Normal Text></Normal Text><br/>
0019 <Comment>// Top-level declarations are order-independent:</Comment><br/>
0020 <Modifiers>const</Modifiers><Normal Text> print </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@import</Builtin Functions><Normal Text>(</Normal Text><String>"std"</String><Normal Text>)</Normal Text><Symbol>.</Symbol><Normal Text>debug</Normal Text><Symbol>.</Symbol><Normal Text>print;</Normal Text><br/>
0021 <Normal Text></Normal Text><br/>
0022 <Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> main() </Normal Text><Symbol>!</Symbol><Type>void</Type><Normal Text> {</Normal Text><br/>
0023 <Normal Text>    </Normal Text><Keyword>inline</Keyword><Normal Text> </Normal Text><Control Flow>for</Control Flow><Normal Text> (values) </Normal Text><Symbol>|</Symbol><Normal Text>v</Normal Text><Symbol>,</Symbol><Normal Text> i</Normal Text><Symbol>|</Symbol><Normal Text> {</Normal Text><br/>
0024 <Normal Text>        </Normal Text><Control Flow>if</Control Flow><Normal Text> (i </Normal Text><Symbol>!=</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>) </Normal Text><Control Flow>continue</Control Flow><Normal Text>;</Normal Text><br/>
0025 <Normal Text>        </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(v);</Normal Text><br/>
0026 <Normal Text>    }</Normal Text><br/>
0027 <Normal Text></Normal Text><br/>
0028 <Normal Text>    </Normal Text><Comment>// error union</Comment><br/>
0029 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> number_or_error</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>anyerror</Type><Symbol>!</Symbol><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Symbol>.</Symbol><Normal Text>ArgNotFound;</Normal Text><br/>
0030 <Normal Text></Normal Text><br/>
0031 <Normal Text>    print(</Normal Text><String>"</String><String Char>\n</String Char><String>error union 2</String><String Char>\n</String Char><String>type: {}</String><String Char>\n</String Char><String>value: {!}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><br/>
0032 <Normal Text>        </Normal Text><Builtin Functions>@TypeOf</Builtin Functions><Normal Text>(number_or_error)</Normal Text><Symbol>,</Symbol><Normal Text> number_or_error</Normal Text><Symbol>,</Symbol><br/>
0033 <Normal Text>    });</Normal Text><br/>
0034 <Normal Text></Normal Text><br/>
0035 <Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> stdout </Normal Text><Symbol>=</Symbol><Normal Text> std</Normal Text><Symbol>.</Symbol><Normal Text>io</Normal Text><Symbol>.</Symbol><Normal Text>getStdOut()</Normal Text><Symbol>.</Symbol><Normal Text>writer();</Normal Text><br/>
0036 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> stdout</Normal Text><Symbol>.</Symbol><Normal Text>print(</Normal Text><String>"Hello, {s}!</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><String>"world"</String><Normal Text>});</Normal Text><br/>
0037 <Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> bytes </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"hello"</String><Normal Text>;</Normal Text><br/>
0038 <Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Builtin Functions>@TypeOf</Builtin Functions><Normal Text>(bytes)}); </Normal Text><Comment>// *const [5:0]u8</Comment><br/>
0039 <Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{bytes[</Normal Text><Decimal>5</Decimal><Normal Text>]}); </Normal Text><Comment>// 0</Comment><br/>
0040 <Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Character>'e'</Character><Normal Text> </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Character>'</Character><String Char>\x65</String Char><Character>'</Character><Normal Text>}); </Normal Text><Comment>// true</Comment><br/>
0041 <Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Character>'</Character><String Char>\u{1f4a9}</String Char><Character>'</Character><Normal Text>});                     </Normal Text><Comment>// 128169</Comment><br/>
0042 <Normal Text>    print(</Normal Text><String>"{d}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Character>'💯'</Character><Normal Text>});                            </Normal Text><Comment>// 128175</Comment><br/>
0043 <Normal Text>    print(</Normal Text><String>"{}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{mem</Normal Text><Symbol>.</Symbol><Normal Text>eql(</Normal Text><Type>u8</Type><Symbol>,</Symbol><Normal Text> </Normal Text><String>"hello"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"h</String><String Char>\x65</String Char><String>llo"</String><Normal Text>)}); </Normal Text><Comment>// true</Comment><br/>
0044 <Normal Text>    print(</Normal Text><String>"0x{x}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><String>"</String><String Char>\xff</String Char><String>"</String><Normal Text>[</Normal Text><Decimal>0</Decimal><Normal Text>]}); </Normal Text><Comment>// non-UTF-8 strings are possible with \xNN notation.</Comment><br/>
0045 <Normal Text>    print(</Normal Text><String>"{u}</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{</Normal Text><Character>'âš¡'</Character><Normal Text>});</Normal Text><br/>
0046 <Normal Text></Normal Text><br/>
0047 <Normal Text>    _ </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@import</Builtin Functions><Normal Text>(</Normal Text><String>"introducing_zig_test.zig"</String><Normal Text>);</Normal Text><br/>
0048 <Normal Text>}</Normal Text><br/>
0049 <Normal Text></Normal Text><br/>
0050 <Comment>// Declare an enum.</Comment><br/>
0051 <Modifiers>const</Modifiers><Normal Text> Type </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>enum</Keyword><Normal Text> {</Normal Text><br/>
0052 <Normal Text>    ok</Normal Text><Symbol>,</Symbol><br/>
0053 <Normal Text>    not_ok</Normal Text><Symbol>,</Symbol><br/>
0054 <Normal Text>};</Normal Text><br/>
0055 <Normal Text></Normal Text><br/>
0056 <Keyword>test</Keyword><Normal Text> </Normal Text><String>"async skip test"</String><Normal Text> {</Normal Text><br/>
0057 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> frame </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Modifiers>async</Modifiers><Normal Text> func();</Normal Text><br/>
0058 <Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> result </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Modifiers>await</Modifiers><Normal Text> frame;</Normal Text><br/>
0059 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> std</Normal Text><Symbol>.</Symbol><Normal Text>testing</Normal Text><Symbol>.</Symbol><Normal Text>expect(result </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>);</Normal Text><br/>
0060 <Normal Text>}</Normal Text><br/>
0061 <Normal Text></Normal Text><br/>
0062 <Keyword>fn</Keyword><Normal Text> func() </Normal Text><Type>i32</Type><Normal Text> {</Normal Text><br/>
0063 <Normal Text>    </Normal Text><Keyword>suspend</Keyword><Normal Text> {</Normal Text><br/>
0064 <Normal Text>        </Normal Text><Keyword>resume</Keyword><Normal Text> @frame();</Normal Text><br/>
0065 <Normal Text>    }</Normal Text><br/>
0066 <Normal Text>    </Normal Text><Control Flow>return</Control Flow><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>;</Normal Text><br/>
0067 <Normal Text>}</Normal Text><br/>
0068 <Normal Text></Normal Text><br/>
0069 <Keyword>pub</Keyword><Normal Text> </Normal Text><Modifiers>extern</Modifiers><Normal Text> </Normal Text><String>"c"</String><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> @</Normal Text><String>"error"</String><Normal Text>() </Normal Text><Type>void</Type><Normal Text>;</Normal Text><br/>
0070 <Keyword>pub</Keyword><Normal Text> </Normal Text><Modifiers>extern</Modifiers><Normal Text> </Normal Text><String>"c"</String><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> @</Normal Text><String>"fstat$INODE64"</String><Normal Text>(fd</Normal Text><Symbol>:</Symbol><Normal Text> c</Normal Text><Symbol>.</Symbol><Normal Text>fd_t</Normal Text><Symbol>,</Symbol><Normal Text> buf</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol>*</Symbol><Normal Text>c</Normal Text><Symbol>.</Symbol><Normal Text>Stat) </Normal Text><Type>c_int</Type><Normal Text>;</Normal Text><br/>
0071 <Normal Text></Normal Text><br/>
0072 <Modifiers>const</Modifiers><Normal Text> Color </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>enum</Keyword><Normal Text> {</Normal Text><br/>
0073 <Normal Text>  red</Normal Text><Symbol>,</Symbol><br/>
0074 <Normal Text>  @</Normal Text><String>"really red"</String><Symbol>,</Symbol><br/>
0075 <Normal Text>};</Normal Text><br/>
0076 <Modifiers>const</Modifiers><Normal Text> color</Normal Text><Symbol>:</Symbol><Normal Text> Color </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>@</Normal Text><String>"really red"</String><Normal Text>;</Normal Text><br/>
0077 <Normal Text></Normal Text><br/>
0078 <Modifiers>var</Modifiers><Normal Text> y</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> add(</Normal Text><Decimal>10</Decimal><Symbol>,</Symbol><Normal Text> x);</Normal Text><br/>
0079 <Modifiers>const</Modifiers><Normal Text> x</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> add(</Normal Text><Decimal>12</Decimal><Symbol>,</Symbol><Normal Text> </Normal Text><Decimal>34</Decimal><Normal Text>);</Normal Text><br/>
0080 <Normal Text></Normal Text><br/>
0081 <Keyword>test</Keyword><Normal Text> </Normal Text><String>"comptime vars"</String><Normal Text> {</Normal Text><br/>
0082 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> x</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>;</Normal Text><br/>
0083 <Normal Text>    </Normal Text><Modifiers>comptime</Modifiers><Normal Text> </Normal Text><Modifiers>var</Modifiers><Normal Text> y</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>;</Normal Text><br/>
0084 <Normal Text></Normal Text><br/>
0085 <Normal Text>    x </Normal Text><Symbol>+=</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>;</Normal Text><br/>
0086 <Normal Text>    y </Normal Text><Symbol>+=</Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text>;</Normal Text><br/>
0087 <Normal Text></Normal Text><br/>
0088 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(x </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>);</Normal Text><br/>
0089 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(y </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>);</Normal Text><br/>
0090 <Normal Text></Normal Text><br/>
0091 <Normal Text>    </Normal Text><Control Flow>if</Control Flow><Normal Text> (y </Normal Text><Symbol>!=</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text>) {</Normal Text><br/>
0092 <Normal Text>        </Normal Text><Comment>// This compile error never triggers because y is a comptime variable,</Comment><br/>
0093 <Normal Text>        </Normal Text><Comment>// and so `y != 2` is a comptime value, and this if is statically evaluated.</Comment><br/>
0094 <Normal Text>        </Normal Text><Builtin Functions>@compileError</Builtin Functions><Normal Text>(</Normal Text><String>"wrong y value"</String><Normal Text>);</Normal Text><br/>
0095 <Normal Text>    }</Normal Text><br/>
0096 <Normal Text>}</Normal Text><br/>
0097 <Normal Text></Normal Text><br/>
0098 <Modifiers>const</Modifiers><Normal Text> decimal_int </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>98222</Decimal><Normal Text>;</Normal Text><br/>
0099 <Modifiers>const</Modifiers><Normal Text> hex_int </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex>0xff</Hex><Normal Text>;</Normal Text><br/>
0100 <Modifiers>const</Modifiers><Normal Text> another_hex_int </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex>0xFF</Hex><Normal Text>;</Normal Text><br/>
0101 <Modifiers>const</Modifiers><Normal Text> octal_int </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Octal>0o755</Octal><Normal Text>;</Normal Text><br/>
0102 <Modifiers>const</Modifiers><Normal Text> binary_int </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Binary>0b11110000</Binary><Normal Text>;</Normal Text><br/>
0103 <Normal Text></Normal Text><br/>
0104 <Comment>// underscores may be placed between two digits as a visual separator</Comment><br/>
0105 <Modifiers>const</Modifiers><Normal Text> one_billion </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1_000_000_000</Decimal><Normal Text>;</Normal Text><br/>
0106 <Modifiers>const</Modifiers><Normal Text> binary_mask </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Binary>0b1_1111_1111</Binary><Normal Text>;</Normal Text><br/>
0107 <Modifiers>const</Modifiers><Normal Text> permissions </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Octal>0o7_5_5</Octal><Normal Text>;</Normal Text><br/>
0108 <Modifiers>const</Modifiers><Normal Text> big_address </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex>0xFF80_0000_0000_0000</Hex><Normal Text>;</Normal Text><br/>
0109 <Normal Text></Normal Text><br/>
0110 <Modifiers>const</Modifiers><Normal Text> floating_point </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>123.0E+77</Float><Normal Text>;</Normal Text><br/>
0111 <Modifiers>const</Modifiers><Normal Text> another_float </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>123.0</Float><Normal Text>;</Normal Text><br/>
0112 <Modifiers>const</Modifiers><Normal Text> yet_another </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>123.0e+77</Float><Normal Text>;</Normal Text><br/>
0113 <Normal Text></Normal Text><br/>
0114 <Modifiers>const</Modifiers><Normal Text> hex_floating_point </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex Float>0x103.70p-5</Hex Float><Normal Text>;</Normal Text><br/>
0115 <Modifiers>const</Modifiers><Normal Text> another_hex_float </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex Float>0x103.70</Hex Float><Normal Text>;</Normal Text><br/>
0116 <Modifiers>const</Modifiers><Normal Text> yet_another_hex_float </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex Float>0x103.70P-5</Hex Float><Normal Text>;</Normal Text><br/>
0117 <Normal Text></Normal Text><br/>
0118 <Comment>// underscores may be placed between two digits as a visual separator</Comment><br/>
0119 <Modifiers>const</Modifiers><Normal Text> lightspeed </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>299_792_458.000_000</Float><Normal Text>;</Normal Text><br/>
0120 <Modifiers>const</Modifiers><Normal Text> nanosecond </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Float>0.000_000_001</Float><Normal Text>;</Normal Text><br/>
0121 <Modifiers>const</Modifiers><Normal Text> more_hex </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Hex Float>0x1234_5678.9ABC_CDEFp-10</Hex Float><Normal Text>;</Normal Text><br/>
0122 <Normal Text></Normal Text><br/>
0123 <Modifiers>const</Modifiers><Normal Text> A </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Normal Text>{One};</Normal Text><br/>
0124 <Modifiers>const</Modifiers><Normal Text> B </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Normal Text>{Two};</Normal Text><br/>
0125 <Normal Text>(A </Normal Text><Symbol>||</Symbol><Normal Text> B) </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Keyword>error</Keyword><Normal Text>{One</Normal Text><Symbol>,</Symbol><Normal Text> Two}</Normal Text><br/>
0126 <Normal Text></Normal Text><br/>
0127 <Modifiers>const</Modifiers><Normal Text> x</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>1234</Decimal><Normal Text>;</Normal Text><br/>
0128 <Modifiers>const</Modifiers><Normal Text> ptr </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol>&</Symbol><Normal Text>x;</Normal Text><br/>
0129 <Normal Text>ptr</Normal Text><Symbol>.*</Symbol><Normal Text> </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>1234</Decimal><br/>
0130 <Normal Text></Normal Text><br/>
0131 <Comment>// get the size of an array</Comment><br/>
0132 <Modifiers>comptime</Modifiers><Normal Text> {</Normal Text><br/>
0133 <Normal Text>    assert(message</Normal Text><Symbol>.</Symbol><Normal Text>len </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>5</Decimal><Normal Text>);</Normal Text><br/>
0134 <Normal Text>}</Normal Text><br/>
0135 <Normal Text></Normal Text><br/>
0136 <Keyword>test</Keyword><Normal Text> </Normal Text><String>"iterate over an array"</String><Normal Text> {</Normal Text><br/>
0137 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> sum</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Decimal>0</Decimal><Normal Text>;</Normal Text><br/>
0138 <Normal Text>    </Normal Text><Control Flow>for</Control Flow><Normal Text> (message) </Normal Text><Symbol>|</Symbol><Normal Text>byte</Normal Text><Symbol>|</Symbol><Normal Text> {</Normal Text><br/>
0139 <Normal Text>        sum </Normal Text><Symbol>+=</Symbol><Normal Text> byte;</Normal Text><br/>
0140 <Normal Text>    }</Normal Text><br/>
0141 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(sum </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Character>'h'</Character><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Character>'e'</Character><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Character>'l'</Character><Normal Text> </Normal Text><Symbol>*</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Normal Text> </Normal Text><Symbol>+</Symbol><Normal Text> </Normal Text><Character>'o'</Character><Normal Text>);</Normal Text><br/>
0142 <Normal Text>}</Normal Text><br/>
0143 <Normal Text></Normal Text><br/>
0144 <Comment>// use compile-time code to initialize an array</Comment><br/>
0145 <Modifiers>var</Modifiers><Normal Text> fancy_array </Normal Text><Symbol>=</Symbol><Normal Text> init</Normal Text><Symbol>:</Symbol><Normal Text> {</Normal Text><br/>
0146 <Normal Text>    </Normal Text><Modifiers>var</Modifiers><Normal Text> initial_value</Normal Text><Symbol>:</Symbol><Normal Text> [</Normal Text><Decimal>10</Decimal><Normal Text>]Point </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Constant>undefined</Constant><Normal Text>;</Normal Text><br/>
0147 <Normal Text>    </Normal Text><Control Flow>for</Control Flow><Normal Text> (initial_value) </Normal Text><Symbol>|*</Symbol><Normal Text>pt</Normal Text><Symbol>,</Symbol><Normal Text> i</Normal Text><Symbol>|</Symbol><Normal Text> {</Normal Text><br/>
0148 <Normal Text>        pt</Normal Text><Symbol>.*</Symbol><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> Point{</Normal Text><br/>
0149 <Normal Text>            </Normal Text><Symbol>.</Symbol><Normal Text>x </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@intCast</Builtin Functions><Normal Text>(</Normal Text><Type>i32</Type><Symbol>,</Symbol><Normal Text> i)</Normal Text><Symbol>,</Symbol><br/>
0150 <Normal Text>            </Normal Text><Symbol>.</Symbol><Normal Text>y </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Builtin Functions>@intCast</Builtin Functions><Normal Text>(</Normal Text><Type>i32</Type><Symbol>,</Symbol><Normal Text> i) </Normal Text><Symbol>*</Symbol><Normal Text> </Normal Text><Decimal>2</Decimal><Symbol>,</Symbol><br/>
0151 <Normal Text>        };</Normal Text><br/>
0152 <Normal Text>    }</Normal Text><br/>
0153 <Normal Text>    </Normal Text><Control Flow>break</Control Flow><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text>init initial_value;</Normal Text><br/>
0154 <Normal Text>};</Normal Text><br/>
0155 <Normal Text></Normal Text><br/>
0156 <Keyword>test</Keyword><Normal Text> </Normal Text><String>"switch on non-exhaustive enum"</String><Normal Text> {</Normal Text><br/>
0157 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(result);</Normal Text><br/>
0158 <Normal Text>    </Normal Text><Modifiers>const</Modifiers><Normal Text> is_one </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Control Flow>switch</Control Flow><Normal Text> (number) {</Normal Text><br/>
0159 <Normal Text>        </Normal Text><Symbol>.</Symbol><Normal Text>one </Normal Text><Symbol>=></Symbol><Normal Text> </Normal Text><Constant>true</Constant><Symbol>,</Symbol><br/>
0160 <Normal Text>        </Normal Text><Control Flow>else</Control Flow><Normal Text> </Normal Text><Symbol>=></Symbol><Normal Text> </Normal Text><Constant>false</Constant><Symbol>,</Symbol><br/>
0161 <Normal Text>    };</Normal Text><br/>
0162 <Normal Text>    </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(is_one);</Normal Text><br/>
0163 <Normal Text></Normal Text><br/>
0164 <Normal Text>    </Normal Text><Control Flow>if</Control Flow><Normal Text> (a </Normal Text><Symbol>!=</Symbol><Normal Text> b) {</Normal Text><br/>
0165 <Normal Text>        </Normal Text><Control Flow>try</Control Flow><Normal Text> expect(</Normal Text><Constant>true</Constant><Normal Text>);</Normal Text><br/>
0166 <Normal Text>    } </Normal Text><Control Flow>else</Control Flow><Normal Text> </Normal Text><Control Flow>if</Control Flow><Normal Text> (a </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Decimal>9</Decimal><Normal Text>) {</Normal Text><br/>
0167 <Normal Text>        </Normal Text><Keyword>unreachable</Keyword><Normal Text>;</Normal Text><br/>
0168 <Normal Text>    } </Normal Text><Control Flow>else</Control Flow><Normal Text> {</Normal Text><br/>
0169 <Normal Text>        </Normal Text><Keyword>unreachable</Keyword><Normal Text>;</Normal Text><br/>
0170 <Normal Text>    }</Normal Text><br/>
0171 <Normal Text>}</Normal Text><br/>
0172 <Normal Text></Normal Text><br/>
0173 <Keyword>fn</Keyword><Normal Text> deferErrorExample(is_error</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>bool</Type><Normal Text>) </Normal Text><Symbol>!</Symbol><Type>void</Type><Normal Text> {</Normal Text><br/>
0174 <Normal Text>    print(</Normal Text><String>"</String><String Char>\n</String Char><String>start of function</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{});</Normal Text><br/>
0175 <Normal Text></Normal Text><br/>
0176 <Normal Text>    </Normal Text><Comment>// This will always be executed on exit</Comment><br/>
0177 <Normal Text>    </Normal Text><Control Flow>defer</Control Flow><Normal Text> {</Normal Text><br/>
0178 <Normal Text>        print(</Normal Text><String>"end of function</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{});</Normal Text><br/>
0179 <Normal Text>    }</Normal Text><br/>
0180 <Normal Text></Normal Text><br/>
0181 <Normal Text>    </Normal Text><Control Flow>errdefer</Control Flow><Normal Text> {</Normal Text><br/>
0182 <Normal Text>        print(</Normal Text><String>"encountered an error!</String><String Char>\n</String Char><String>"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>{});</Normal Text><br/>
0183 <Normal Text>    }</Normal Text><br/>
0184 <Normal Text>}</Normal Text><br/>
0185 <Normal Text></Normal Text><br/>
0186 <Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>fn</Keyword><Normal Text> syscall3(number</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg1</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Symbol>,</Symbol><Normal Text> arg3</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Normal Text>) </Normal Text><Type>usize</Type><Normal Text> {</Normal Text><br/>
0187 <Normal Text>    </Normal Text><Control Flow>return</Control Flow><Normal Text> </Normal Text><Keyword>asm</Keyword><Normal Text> </Normal Text><Modifiers>volatile</Modifiers><Normal Text> (</Normal Text><String>"syscall"</String><br/>
0188 <Normal Text>        </Normal Text><Symbol>:</Symbol><Normal Text> [ret] </Normal Text><String>"={rax}"</String><Normal Text> (</Normal Text><Symbol>-></Symbol><Normal Text> </Normal Text><Type>usize</Type><Normal Text>)</Normal Text><br/>
0189 <Normal Text>        </Normal Text><Symbol>:</Symbol><Normal Text> [number] </Normal Text><String>"{rax}"</String><Normal Text> (number)</Normal Text><Symbol>,</Symbol><br/>
0190 <Normal Text>          [arg1] </Normal Text><String>"{rdi}"</String><Normal Text> (arg1)</Normal Text><Symbol>,</Symbol><br/>
0191 <Normal Text>          [arg2] </Normal Text><String>"{rsi}"</String><Normal Text> (arg2)</Normal Text><Symbol>,</Symbol><br/>
0192 <Normal Text>          [arg3] </Normal Text><String>"{rdx}"</String><Normal Text> (arg3)</Normal Text><br/>
0193 <Normal Text>        </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><String>"rcx"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"r11"</String><br/>
0194 <Normal Text>    );</Normal Text><br/>
0195 <Normal Text>}</Normal Text><br/>