//! returns: 0 //! Test that array literal type hints propagate through optionals. /// Return an optional array literal. fn optArray() -> ?[i32; 3] { return [1, 2, 3]; } /// Return an optional array repeat literal. fn optRepeat() -> ?[i32; 4] { return [0; 4]; } /// Test optional array literal hint propagation. fn testOptArrayLit() -> i32 { if let a = optArray() { assert a.len == 3; assert a[0] == 1; assert a[1] == 2; assert a[2] == 3; } else { return 1; } return 0; } /// Test optional array repeat literal hint propagation. fn testOptRepeat() -> i32 { if let a = optRepeat() { assert a.len == 4; assert a[0] == 0; assert a[1] == 0; assert a[2] == 0; assert a[3] == 0; } else { return 1; } return 0; } @default fn main() -> i32 { assert testOptArrayLit() == 0; assert testOptRepeat() == 0; return 0; }