blob: b30d15197040502debeee2c35fdf8c1d59e93ce1 [file] [log] [blame]
/*
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;
}