www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - DIP1000: Should this compile

reply Max Haughton <maxhaton gmail.com> writes:
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)
May 16 2019
next sibling parent reply Steven Schveighoffer <schveiguy gmail.com> writes:
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
May 16 2019
parent Max Haughton <maxhaton gmail.com> writes:
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)
May 16 2019
prev sibling parent Simen =?UTF-8?B?S2rDpnLDpXM=?= <simen.kjaras gmail.com> writes:
On Thursday, 16 May 2019 at 21:21:51 UTC, 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)
This is a bug, as can be showed by repeating the call to (*boi).writeln - suddenly the output changes between calls. Filed: https://issues.dlang.org/show_bug.cgi?id=19881 -- Simen
May 16 2019