/* TEST_OUTPUT: --- fail_compilation/fail20551.d(15): Error: taking address of lazy parameter `e` is not allowed in a `@safe` function fail_compilation/fail20551.d(26): Error: template instance `fail20551.LazyStore!int.LazyStore.opAssign!int` error instantiating --- */ struct LazyStore(T) { T delegate() @safe dg; void opAssign(E)(lazy E e) @safe { dg = cast(typeof(dg)) &e; } T test() @safe{ return dg(); } } static LazyStore!int f; void main(string[] args) @safe { int x = 1; f = x + x + 20 + x * 20; }