make_range func(calls @mut i32, end usize) range { calls^ = calls^ + 1 return 0..end } global_range :: 0..1 main func() i32 { total i32 = 0 first u8 = 254 last u8 = 255 for first..=last |value| { _ = value total = total + 1 } signed_start i8 = -2 signed_end i8 = 1 for signed_start..signed_end |value| { _ = value total = total + 1 } limit usize = 3 for 0..(limit + 1) |value| { _ = value total = total + 1 } for 0..2 |outer| { _ = outer for 0..3 |inner| { _ = inner total = total + 1 } } for 5..2 |value| { _ = value total = total + 100 } empty [0]i32 = [] for empty |value| { _ = value total = total + 100 } pointed i32 = 3 pointers [1]@mut i32 = [&pointed] for pointers |pointer| { total = total + pointer^ } calls i32 = 0 for make_range(&calls, 2) |value| { _ = value total = total + 1 } for global_range |value| { _ = value total = total + 1 } if calls == 1 { total = total + 21 } return total }