//! returns: 100
// Test @sliceOf builtin: create a slice from a pointer and length.

@default unsafe fn main() -> i32 {
    let mut arr: [i32; 4] = [10, 20, 30, 40];

    // Get a pointer to the first element
    let ptr: *unsafe i32 = &arr[0];

    // Create a slice from the pointer and length
    let slice: *unsafe [i32] = @sliceOf(ptr, 4);

    // Access elements via the slice and sum them
    let mut sum: i32 = 0;
    set sum += slice[0];
    set sum += slice[1];
    set sum += slice[2];
    set sum += slice[3];

    return sum;
}
