// https://bugzilla.gdcproject.org/show_bug.cgi?id=122 // { dg-do compile } struct map(alias fun) { @property run() { } } struct Task(Args) { Args _args; } class TaskPool { template reduce(functions...) { auto reduce(Args)(Args args) { alias RTask = Task!(typeof(args)); auto task = RTask(); } } } TaskPool taskPool() { return new TaskPool; } void test122() { enum delta = 1; taskPool.reduce!"a + b"(map!({ immutable x = delta; })()); }