int foo(alias pred)(int val) { return pred(val); } int bar(int val) { scope pred = (int a) => a + val; //<- causes allocation return foo!(pred)(2); } void main() { bar(3) == 5 || assert(0); } ---- Related to resolved http://d.puremagic.com/issues/show_bug.cgi?id=7120
https://github.com/D-Programming-Language/dmd/commit/d9428f6ac23e019abe30cbac55db605ff6ec2421