/* RUN_OUTPUT: --- Success --- */ import core.stdc.stdio; /**************************************************/ void test1() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; foreach (uint u; a) { i++; u++; } assert(i == 2); assert(a["hello"] == 73); assert(a["world"] == 82); } /**************************************************/ void test2() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; foreach (ref uint u; a) { i++; u++; } assert(i == 2); assert(a["hello"] == 74); assert(a["world"] == 83); } /**************************************************/ void test3() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; foreach (ref uint u; a) { i++; if (i) break; u++; } assert(i == 1); assert(a["hello"] == 73); assert(a["world"] == 82); } /**************************************************/ void test4() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; foreach (ref uint u; a) { i++; if (i == 1) continue; u++; } assert(i == 2); assert((a["hello"] == 73 && a["world"] == 83) || (a["hello"] == 74 && a["world"] == 82)); } /**************************************************/ void test5() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; Loop: while (1) { foreach (ref uint u; a) { i++; if (i) break Loop; u++; } } assert(i == 1); assert(a["hello"] == 73); assert(a["world"] == 82); } /**************************************************/ void test6() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; Loop: while (1) { foreach (ref uint u; a) { i++; if (i == 1) continue Loop; u++; } break; } assert(i == 3); assert(a["hello"] == 74); assert(a["world"] == 83); } /**************************************************/ void test7() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; foreach (ref uint u; a) { i++; if (i) goto Label; u++; } assert(0); Label: assert(i == 1); assert(a["hello"] == 73); assert(a["world"] == 82); } /**************************************************/ void test8_x(uint[char[]] a) { int i; foreach (ref uint u; a) { i++; if (i) return; u++; } } void test8() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; test8_x(a); assert(i == 0); assert(a["hello"] == 73); assert(a["world"] == 82); } /**************************************************/ int test9_x(uint[char[]] a) { int i; foreach (ref uint u; a) { i++; if (i) return 67; u++; } return 23; } void test9() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; i = test9_x(a); assert(i == 67); assert(a["hello"] == 73); assert(a["world"] == 82); } /**************************************************/ int test10_x(uint[char[]] a) { int i; foreach (ref uint u; a) { i++; if (i) return i; u++; } return 23; } void test10() { uint[char[]] a; int i; a["hello"] = 73; a["world"] = 82; i = test10_x(a); assert(i == 1); assert(a["hello"] == 73); assert(a["world"] == 82); } /**************************************************/ int main() { test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9(); test10(); printf("Success\n"); return 0; }