//! returns: 0
// Test the @sliceOf builtin with mutable slice.

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

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

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

    // Double each element via the slice
    slice[0] *= 2;
    slice[1] *= 2;
    slice[2] *= 2;
    slice[3] *= 2;

    // Sum the modified elements
    let mut sum: i32 = 0;
    sum += slice[0];
    sum += slice[1];
    sum += slice[2];
    sum += slice[3];

    return (sum) - 200;
}
