//! returns: 0 //! Test `else continue` in a for loop with let-else. record Field: Copy { name: ?*[u8], value: i32, } fn findField(fields: *[Field], target: *[u8]) -> ?i32 { for i in 0..fields.len { let name = fields[i].name else continue; if name.len == target.len { let mut eq = true; for j in 0..name.len { if name[j] <> target[j] { set eq = false; } } if eq { return fields[i].value; } } } return nil; } @default fn main() -> i32 { let mut fields: [Field; 4] = undefined; set fields[0] = Field { name: nil, value: 10 }; set fields[1] = Field { name: "foo", value: 20 }; set fields[2] = Field { name: nil, value: 30 }; set fields[3] = Field { name: "bar", value: 40 }; let v1 = findField(&fields[..], "foo") else { return 1; }; assert v1 == 20; let v2 = findField(&fields[..], "bar") else { return 3; }; assert v2 == 40; if let _ = findField(&fields[..], "baz") { return 5; } return 0; }