d: Merge upstream dmd, druntime 26f049fb26, phobos 330d6a4fd.
[official-gcc.git] / gcc / testsuite / gdc.test / compilable / test15711.d
blobba7a93d930cc4337f6fad5f21ebb24648fdbc6ae
1 // https://issues.dlang.org/show_bug.cgi?id=15711
3 struct Quu {
4 string val;
7 string[] result = foo!(0, [Quu(['z']), Quu("")]);
9 template foo(size_t i, Quu[] data, string[] results = []) {
10 static if (i < data.length) {
11 enum def = data[i];
12 enum foo = foo!(i+1, data, results ~ def.val);
14 else {
15 enum foo = results;
19 // Run-time version already works
21 string[] result_rt = foo_rt(0, [Quu(['z']), Quu("")]);
23 string[] foo_rt(size_t i, Quu[] data, string[] results = []) {
24 if (i < data.length) {
25 auto def = data[i];
26 return foo_rt(i+1, data, results ~ def.val);
28 else {
29 return results;