//! returns: 0 // Test the @sliceOf builtin with mutable slice. @default unsafe fn main() -> i32 { let mut arr: [i32; 4] = [10, 20, 30, 40]; // Get a mutable pointer to the first element let ptr: *unsafe mut i32 = &mut arr[0]; // Create a mutable slice from the pointer and length let slice: *unsafe mut [i32] = @sliceOf(ptr, 4); // Double each element via the slice set slice[0] *= 2; set slice[1] *= 2; set slice[2] *= 2; set slice[3] *= 2; // Sum the modified elements let mut sum: i32 = 0; set sum += slice[0]; set sum += slice[1]; set sum += slice[2]; set sum += slice[3]; return (sum) - 200; }