// https://issues.dlang.org/show_bug.cgi?id=23799 // REQUIRED_ARGS: -betterC struct Data { Data[] range; string test; } Data[] foo() { Data[] ret; if (__ctfe) { Data tmp; tmp.range ~= Data.init; ret ~= tmp; } return ret; } void func(Data dat)() { } void bar(Data dat)() { if (dat.test.length) func!(dat.range[0])(); } extern (C) void main() { static immutable data = foo(); bar!(data[0])(); }