https://issues.dlang.org/show_bug.cgi?id=24754

--- Comment #5 from Luís Ferreira <[email protected]> ---
> If `&e` is the address of an int inside the `Foo.foo` array, then that is 
> fine so long as the array is null or GC allocated.

Specification guarantees that only safe assignments are made, so, whatever is
assigned to `foo`, unless its `= void` assignment, its safe to de-reference it,
again, as long as the assignment is safe.

> However, if Foo.foo is changed to `int[1] foo;`, it still won't error and it 
> should

The code you presented escapes variables. The code I presented doesn't escape
anything beyond its own scope, which is conceptually not escaping. Escaping is
defined via DIP1000, and I'm not expecting the code to compile when escaping
without defining `return` attribute to the member function.

--

Reply via email to