file build/site-targets/arrays/zx/arrays.zx bundle entry arrays:main laws 0 waivers 0 assets 0 module arrays from arrays.zi function Sum(numbers:[]s32) -> s32 @ arrays.zi:2:1 stmt 0 decl name=total type=s32 expr=%0 text="total: s32 = 0;" stmt 1 block_open text="{" stmt 2 decl name=it_index type=s64 expr=%1 text="it_index: s64 = 0" stmt 3 while expr=%5 loop=1 text="while it_index < numbers.count {" stmt 4 decl name=it type=s32 expr=%8 text="it := numbers[it_index]" stmt 5 assign expr=%9 lhs=%10 text="total += it;" stmt 6 assign expr=%11 lhs=%12 text="it_index += 1" stmt 7 block_close text="}" stmt 8 block_close text="}" stmt 9 return expr=%13 text="return total;" %0 int type=integer text="0" %1 int type=integer text="0" %2 ident type=s64 name=it_index text="it_index" %3 ident type=[]s32 name=numbers text="numbers" %4 member type=s64 name=count op=. left=%3 text="numbers.count" %5 binary type=bool op=< left=%2 right=%4 text="it_index < numbers.count" %6 ident type=[]s32 name=numbers text="numbers" %7 ident type=s64 name=it_index text="it_index" %8 index type=s32 left=%6 right=%7 text="numbers[it_index]" %9 ident type=s32 name=it text="it" %10 ident type=s32 name=total text="total" %11 int type=integer text="1" %12 ident type=s64 name=it_index text="it_index" %13 ident type=s32 name=total text="total" function main() -> void @ arrays.zi:8:1 stmt 0 decl name=empty type=[5]s32 text="empty: [5]s32;" stmt 1 expr expr=%16 text="print(\"empty: % % % % %\\n\", empty[0], empty[1], empty[2], empty[3], empty[4]);" stmt 2 decl name=numbers type=[5]s32 expr=%27 text="numbers := s32.[1, 2, 3, 4, 5];" stmt 3 assign expr=%28 lhs=%31 text="numbers[4] = 100;" stmt 4 expr expr=%38 text="print(\"set: %, count: %\\n\", numbers[4], numbers.count);" stmt 5 decl name=middle type=[]s32 expr=%42 text="middle := numbers[1:4];" stmt 6 expr expr=%49 text="print(\"middle has % items starting with %\\n\", middle.count, middle[0]);" stmt 7 expr expr=%54 text="print(\"sum of all: %\\n\", Sum(numbers[:]));" stmt 8 expr expr=%58 text="print(\"sum of middle: %\\n\", Sum(middle));" %0 string type=string next=%3 text="\"empty: % % % % %\\n\"" %1 ident type=[5]s32 name=empty text="empty" %2 int type=integer text="0" %3 index type=s32 left=%1 right=%2 next=%6 text="empty[0]" %4 ident type=[5]s32 name=empty text="empty" %5 int type=integer text="1" %6 index type=s32 left=%4 right=%5 next=%9 text="empty[1]" %7 ident type=[5]s32 name=empty text="empty" %8 int type=integer text="2" %9 index type=s32 left=%7 right=%8 next=%12 text="empty[2]" %10 ident type=[5]s32 name=empty text="empty" %11 int type=integer text="3" %12 index type=s32 left=%10 right=%11 next=%15 text="empty[3]" %13 ident type=[5]s32 name=empty text="empty" %14 int type=integer text="4" %15 index type=s32 left=%13 right=%14 text="empty[4]" %16 call type=void name=print child=%0 text="print(\"empty: % % % % %\\n\", empty[0], empty[1], empty[2], empty[3], empty[4])" %17 int type=integer text="1" %18 field_initializer type=s32 right=%17 next=%20 text="1" %19 int type=integer text="2" %20 field_initializer type=s32 right=%19 next=%22 text="2" %21 int type=integer text="3" %22 field_initializer type=s32 right=%21 next=%24 text="3" %23 int type=integer text="4" %24 field_initializer type=s32 right=%23 next=%26 text="4" %25 int type=integer text="5" %26 field_initializer type=s32 right=%25 text="5" %27 compound type=[5]s32 name=[5]s32 child=%18 text="s32.[1, 2, 3, 4, 5]" %28 int type=integer text="100" %29 ident type=[5]s32 name=numbers text="numbers" %30 int type=integer text="4" %31 index type=s32 left=%29 right=%30 text="numbers[4]" %32 string type=string next=%35 text="\"set: %, count: %\\n\"" %33 ident type=[5]s32 name=numbers text="numbers" %34 int type=integer text="4" %35 index type=s32 left=%33 right=%34 next=%37 text="numbers[4]" %36 ident type=[5]s32 name=numbers text="numbers" %37 member type=s64 name=count op=. left=%36 text="numbers.count" %38 call type=void name=print child=%32 text="print(\"set: %, count: %\\n\", numbers[4], numbers.count)" %39 ident type=[5]s32 name=numbers text="numbers" %40 int type=integer text="1" %41 int type=integer text="4" %42 slice type=[]s32 left=%39 right=%40 third=%41 text="numbers[1:4]" %43 string type=string next=%45 text="\"middle has % items starting with %\\n\"" %44 ident type=[]s32 name=middle text="middle" %45 member type=s64 name=count op=. left=%44 next=%48 text="middle.count" %46 ident type=[]s32 name=middle text="middle" %47 int type=integer text="0" %48 index type=s32 left=%46 right=%47 text="middle[0]" %49 call type=void name=print child=%43 text="print(\"middle has % items starting with %\\n\", middle.count, middle[0])" %50 string type=string next=%53 text="\"sum of all: %\\n\"" %51 ident type=[5]s32 name=numbers text="numbers" %52 slice type=[]s32 left=%51 text="numbers[:]" %53 call type=s32 name=Sum child=%52 text="Sum(numbers[:])" %54 call type=void name=print child=%50 text="print(\"sum of all: %\\n\", Sum(numbers[:]))" %55 string type=string next=%57 text="\"sum of middle: %\\n\"" %56 ident type=[]s32 name=middle text="middle" %57 call type=s32 name=Sum child=%56 text="Sum(middle)" %58 call type=void name=print child=%55 text="print(\"sum of middle: %\\n\", Sum(middle))"