blob: b2b0429c0b7beb35794a5367cf6c2f0515b5d422 [file]
/*
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;
}