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/>