blob: 1a417b3235933b0ecd959616d7bb321857c109f7 [file] [log] [blame]
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97843
// { dg-additional-options "-fmain -funittest" }
// { dg-do run }
// { dg-skip-if "needs gcc/config.d" { ! d_runtime } }
struct Sdtor
{
int value;
~this() { }
}
Sdtor sum(Sdtor[] sdtors)
{
int result;
foreach (s; sdtors)
result += s.value;
return Sdtor(result);
}
uint sum(uint[] ints)
{
uint result;
foreach(i; ints)
result += i;
return result;
}
unittest
{
Sdtor[] sdtors = [Sdtor(0), Sdtor(1)];
sdtors ~= sum(sdtors);
assert(sdtors == [Sdtor(0), Sdtor(1), Sdtor(1)]);
uint[] ints = [0, 1];
ints ~= ints.sum;
assert(ints == [0, 1, 1]);
}