On Thursday, 16 May 2019 at 21:56:52 UTC, Steven Schveighoffer
wrote:
On 5/16/19 10:21 PM, Max Haughton wrote:
https://run.dlang.io/is/cKFsXh
Should this compile, or is return scope T* down to the user to
not escape (Returning &local directly does not compile)
Answer to subject: no. This is a bug. Please file.
Not sure what the solution is, because dip1000 makes scope a
storage class. So there's no way to tag what the input
parameter points at.
-Steve
The parameter pointer outlives the the &local, i.e. cannot be
guaranteed that it doesn't escape, which is sufficient grounds to
not allow the assignment. Hopefully, this is a implementation
rather specification error (If my understanding of the DIP is
correct)