package lambdas Test :: struct len: S64 test: Test member := test.len thing: Memory.Allocator_Kind = Memory.Allocator_Kind.Heap a_type :: S64 pointer_type :: *S64 // null_pointer: pointer_type = null if_stmt :: (cond: S64): type new_types.basic_type_assignment() CONSTANT :: 10 thing := 10 if i := thing + cond, cond > CONSTANT return i + CONSTANT else if cond < CONSTANT return i - CONSTANT else return CONSTANT for_stmt :: () for i := 0, i < 10, i+=1 out_of_order_resolving() out_of_order_resolving :: () i := 10 add_10 :: (size: S64): S64 add_20 :: (new_size: S64): S64 return 20 add :: (a: S64, b: S64 = 10): S64 return a + b constant :: 20; result := constant + 10 v3 := add(1,2) // v2 := add(a = 1, b = 2) // v1 := add(a = 1) // // v_err := add([0] = 1) // v4 := add(b = 1, a = 2) // // v_err := add([0] = 1, [1] = 2) // // v_err := add([0] = 1, 10) // illegal // // v_err := add([1] = 1) // illegal // // v_err := add() // illegal v4 := constant return v4 return_constant :: (): S64 constant :: 10 return constant returning_void :: (insert: S64) // val1: S64 = return_constant() // val2: S64 = add_10(val1) return type :: a_type