//! returns: 0 /// Distinct backing strings with multi-digit generated suffixes. constant WORDS: [*[u8]; 12] = ["a", "bb", "ccc", "dddd", "eeeee", "ffffff", "ggggggg", "hhhhhhhh", "iiiiiiiii", "jjjjjjjjjj", "kkkkkkkkkkk", "llllllllllll"]; /// A separate declaration with some identical string contents. constant OTHER: [*[u8]; 3] = ["ccc", "a", "bb"]; /// Backing strings include zero-length and embedded-zero payloads. constant SPECIAL: [*[u8]; 3] = ["", "a\0b", "\0"]; /// Check that generated names retain the correct backing bytes. @default fn main() -> u32 { for index in 0..WORDS.len { let word = WORDS[index]; assert word.len == index + 1; for byte in word { assert byte as u32 == 97 + index; } } assert OTHER[0] == WORDS[2]; assert OTHER[1] == WORDS[0]; assert OTHER[2] == WORDS[1]; let empty = ""; let embedded = "a\0b"; let zero = "\0"; assert empty.len == 0; assert SPECIAL[0].len == 0; assert embedded.len == 3; assert embedded[0] == 'a'; assert embedded[1] == 0; assert embedded[2] == 'b'; assert zero.len == 1; assert zero[0] == 0; assert SPECIAL[1] == embedded; assert SPECIAL[2] == zero; return 0; }